SSL 会话票证与会话 ID

2024-04-16

为了提高不保留(短)连接的 SSL 握手性能,有两个广为人知的独立功能:

  • TLS 会话 ID
  • TLS 会话票证

如果有很多短连接会话,就性能开销而言,哪种机制更可取并且应该使用?

我知道服务器需要缓存会话 ID,并且在负载平衡的情况下会话票证也很容易共享,但我们假设有一个服务器在单个端口上侦听(无负载平衡),并且它接收很多短传入 TLS 连接会话。

那么在这种情况下哪种方法(会话或票证)更可取呢?


当服务器发送“Server Hello”消息时,它可以包含会话标识符。客户端应存储它并在下一个会话的“Client Hello”消息中呈现它。如果服务器在其缓存中找到相应的会话并接受恢复会话,它将发回相同的会话标识符,并继续进行简短的 SSL 握手。否则,它将发出新的会话标识符并切换到完整握手。 RFC 5246 中详细介绍了此机制。它是最常见的机制,因为它自早期版本的 SSL 起就存在。

在完整 SSL 握手的最后一次交换中,服务器可以包含一条“新会话票证”消息(未在图中描述的握手中表示),该消息将包含完整的会话状态(包括客户端和客户端之间协商的主密钥)服务器和使用的密码套件)。因此,该状态由只有服务器知道的密钥进行加密和完整性保护。这种不透明的数据称为会话票证。详细信息参见 RFC 5077,它取代了 RFC 4507。

票证机制是 TLS 扩展。客户端可以通过在“Client Hello”消息中发送空的“Session Ticket”扩展来宣传其支持。如果服务器支持,它将在其“Server Hello”消息中以空的“Session Ticket”扩展进行应答。如果其中之一不支持此扩展,则可以回退到 SSL 中内置的会话标识符机制。

RFC 5077 标识了需要票证而不是会话标识符的情况。主要改进是避免维护服务器端会话缓存的需要,因为整个会话状态是由客户端而不是服务器记住的。会话缓存在内存方面可能会很昂贵,并且当请求在服务器之间进行负载平衡时,可能很难在多个主机之间共享。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSL 会话票证与会话 ID 的相关文章

  • 如何以编程方式创建证书签名请求 (CSR)?

    如何用C实现呢 openssl req new key cert key out cert csr openssl x509 req in cert csr CA rootCA crt CAkey rootCA key CAcreatese
  • 通过 HTTPS 包含 Twitter Widgets.js

    当我们包含以下内容时 我在我们网站上的 HTTPS 服务页面上的混合内容方面遇到了一个小问题http platform twitter com widgets js http platform twitter com widgets js
  • SSL 连接在 MySQL Workbench 中有效,但在 DBeaver 中无效

    为当今读者编辑 这是旧版本 DBeaver 中的一个错误 随后已修复 我尝试在 DBeaver 中使用 SSL 连接到 Google Cloud SQL MySQL 实例时遇到 访问被拒绝 错误 我能够 在 MySQL Workbench
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • Java FTPS 无法检索文件列表(FileZilla 客户端工作正常)

    我正在使用 Apache Commons Net v3 5 和 Java 8 连接到远程 FTPS 站点 即在互联网上 我可以轻松连接 Windows 10 计算机上的 FileZilla 客户端 但我的 Java 程序无法完成相同的步骤
  • 如何将 OpenSSL 与 WinSock 一起使用?

    我在网上搜索过 但没有找到任何与此相关的内容 有谁有使用 WinSock 和 OpenSSL 的简单代码示例吗 我正在寻找一个简单的 Visual C 2005 或更高版本的代码示例 它创建并打开一个 Winsock 连接 并使用 Open
  • Curl 和 Php 5.3.3 中的 SSL 连接错误

    我的网站自 3 年来一直运行良好 代码如下 现在突然从 2 天开始出现以下错误 SSL 连接错误 在 Curl error 中 下面是我的代码
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能
  • 同时使用 SSL 加密和 NTLM 身份验证的 HttpClient 失败

    我尝试在使用 SSL 加密 https 以及 NTLM 身份验证的 Sharepoint 2010 服务器上执行简单的 REST 调用 当服务器设置为不需要 SSL 仅用于测试时 服务器在生产中将需要 SSL 时 我的 NTLM 身份验证和
  • 双向 SSL 说明

    我对双向 SSL 的工作原理有些困惑 客户端如何创建其证书以发送到服务器 是从服务器生成并分发给客户端吗 另外 双向 SSL 相对于单向 SSL 有何优势 两个证书在连接之前都应该存在 它们通常由证书颁发机构创建 不一定相同 在其他情况下
  • 自动 IIS6 403.4 重定向到 SSL 不起作用

    我的 ASP Net 网站中有一个目录需要启用 SSL 对于所有其他目录 我不希望启用 SSL 使用 IIS 我为我想要需要 SSL 的文件夹选中了 需要安全通道 SS 和 128 位加密复选框 现在 当用户在我的安全目录中输入 http
  • Asp.Net Core 中的 SSL 不起作用

    我从 Visual Studio 创建了一个简单的 Web 应用程序Web Application Net Core 具有个人用户帐户授权的模板 然后 我启用了 SSLProject gt MyProject Properties 将带有
  • 如何在docker的keycloak中添加SSL

    我在将 SSL 证书添加到在 docker 上运行的 Keycloak 时遇到问题 我通过负载均衡器从 AWS EC2 获得了 SSL 证书 但不知道如何将其添加到 docker 上的 Keycloak 中 我正在通过谷歌搜索 但尚未找到任
  • 使用普通用户和 https 的 gitea

    我正在尝试设置 gitea 以使用 https 和我从 LetsEncrypt 获得的证书 运行该服务作为普通用户 我已经让它与普通用户在端口 80 上使用 http 一起工作git并使用 iptables 将端口 80 重定向到端口 30
  • 在 apache 上托管多个 SSL 证书

    我希望有人能帮我解决这个问题 我有 2 个 IP 可用于执行此操作 并且需要在同一台 Apache 服务器上托管 2 个不同的安全 SSL 域 我已经读到 从 Apache 2 2 开始 可以使用某种插件来使用单个 IP 但我希望保持尽可能
  • Apache 2.4.9 在启用 ssl 模块并设置 ssl 证书后失败

    Apache 在尝试设置 ssl 证书后抛出以下错误 ssl emerg pid 30907 AH02572 Failed to configure at least one certificate and key for localhos
  • 信任库是否需要子 ca 证书?

    我正在尝试设置分层 PKI 我是否可以创建仅包含根 ca 证书的信任库 这是否意味着我的应用程序信任由子 ca 证书签名的证书 而子 ca 证书又由根 ca 签名 顺便说一句 您似乎必须提供整个证书链 包括根 ca 证书 当然 如果根 ca
  • Google Chrome 中的 ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED

    我有一个使用 SSL 客户端证书授权的网站 所有客户端证书都是使用 OpenSSL 生成的并且是自签名的 一切都适用于所有网络浏览器 但推荐的是 Google Chrome 因为它使用与 IE 相同的 SSL 仓库 因此证书安装非常简单 点
  • 出站连接的 SSL 配置在 websphere-liberty 17.0.0.2 中不起作用

    我正在尝试将 websphere liberty 服务器配置为对所有出站连接 实际上是 REST 调用 使用默认密钥库和 trustore 对于入站连接使用自定义密钥和信任库 但当尝试调用外部 REST 服务时 它会失败并出现 SSLHan
  • Azure 共享计划上的 SSL?

    我有 1 个网站 1 个数据库和 1 个 SSL 托管在 azure 上 我曾经拥有 基本 托管套餐 但每个月要支付 70 美元才能获得基本设置 并且所有内容都具有最小的缩放比例 我意识到我的低流量站点不需要专用计算机 因此我尝试转向共享计

随机推荐

  • Kotlin 返回 Null 不能是非 null 类型的值

    我正在尝试为 Kotlin 函数返回空值 它给了我错误Null cannot be a value of a non null type 但我希望能够返回 null 尽管看起来该函数可以为 void 但它是一个接口重写 在这种情况下没有返回
  • 在 .NET 4.6 项目中引用 .NET Core 库

    也许我不明白 NET Core Library 的含义 但是当我尝试使用 Visual Studio 2015 在 NET 4 6 程序集中添加 NET Core Library 时 出现错误 无法添加对 的引用 我是不是理解错了什么 这是
  • codeigniter echo 查询结果数组

    模型内部的方法 public function get fichas query this gt db gt query SELECT FROM fichas return query gt result 然后 我尝试将此数据传递给控制器
  • 如何在 Python 中通过 Swig 使用 float **?

    我正在为一些 c 函数编写 swig 绑定 这些函数之一需要一个浮点数 我已经在使用了指针 i http www swig org Doc1 3 Library html Library nn4对于正常的指针并进行了研究卡瑞斯 i http
  • 长文本在 ICS 上会转到下一行,但在 GB 及以下版本上不会

    我第一次注意到这一点是在 AlertDialogs 中将整个消息放在第一行 即使我指定了新行 n 在 ICS 上它显示正确的方式 但对于我的生活 我无法让它在 GB 上工作 最近我又遇到了 我看不出它在 ICS 上运行良好但在 GB 及以下
  • 使用连续内存并具有保留功能的映射和集合

    我使用了几张地图和套件 缺乏连续内存以及大量的分配 解除 是性能瓶颈 我需要一个主要与 STL 兼容的映射和集合类 它可以将连续的内存块用于内部对象 或多个块 它还需要有一个reserve函数 以便我可以预先分配预期的大小 在我自己编写之前
  • 如何在循环期间的任意时刻检查按键按下情况?

    我正在尝试制作一个倒数到 0 然后开始向上计数的计时器 我正在使用时间和键盘模块 这keyboard https pypi org project keyboard来自 PyPi 的模块 一切都按预期进行 我可以按一个按钮关闭程序 但它只在
  • C# Linq where 子句作为变量

    我正在尝试创建一个 LINQ 语句 其中 where 子句来自变量 例如 string whereClause address zip 23456 var x from something in someList where whereCl
  • 如何使可变参数模板类方法将函数指针作为参数,并使用从函数模板派生的类型?

    抱歉 标题很拗口 我正在研究一个类似于所讨论的数组类here https stackoverflow com questions 26766617 我想定义一个 映射 函数 它接受用户定义的函数并将其应用于数组的每个元素 出于类型检查的目的
  • 表单标签的 CSS 样式

    据我所知 一个
  • Java、HashMap 和使用字符串作为键 - 字符串值是否会存储两次?

    如果我有一个如下所示的 HashMap HashMap
  • Viewpager 延迟加载数据

    ViewPager有一个公共函数setOffscreenPageLimit http developer android com reference android support v4 view ViewPager html setOff
  • MVC 3 列表的不引人注目的验证

    Question 我创建了一个服务器端属性级别验证属性 但我没有将其应用于单个字段 而是将其应用于列表 这使我能够从整体上验证模型 我现在需要知道如何使用 MVC 3 中内置的不显眼的客户端验证将其转换为工作 我当前的代码如下来说明我的问题
  • div背景图片+jquery的幻灯片

    我在标题处有一个大的 div 元素 div 中有很多文本内容和一些框 我有一个大的 img 作为这个 div 的背景 现在我需要为这个 div 的背景制作一个幻灯片 如何为 div 的背景图像制作幻灯片 我研究了很多 但找不到任何东西 多谢
  • Bash if 语句中何时需要方括号?

    通常 我在 if 语句中使用方括号 if name Bob then 但是 当我检查是否grep成功了我不使用方括号 if grep q text file then 什么时候需要方括号if陈述 方括号是同义词test命令 一个if语句检查
  • 分层代码优先 EF 绑定到 WPF Treeview...不可能

    在过去 我不得不求助于使用数据集和数据表 因为使用绑定来做到这一点仍然让我困惑 顶层 我在 VB 2012 中创建了一系列类 对它们进行了注释 并使用 Code First 在 EF6 中创建了 EF 模型 这个想法是表示路由器配置 配置的
  • 随机值生成 JavaScript

    我有一些代码用于将数组中的随机值存储到变量中 如下所示 Quest value1 value2 value3 value4 var random Math floor Math random Quest length var questio
  • 将控制台窗口添加到 ASP.NET Core 应用程序

    我有一个 ASP NET Core 2 0 应用程序在 NET Core 2 0 中的 Windows 上运行 命令行 C Program Files dotnet dotnet exe 执行 C Users zippy documents
  • 如何在 mysql 查询中将行放在顶部。

    您好 我的 SQL 表中有 100 条记录 我想按名称对它们进行 ASC 排序 但我需要在所有记录 nr 43 之上添加一条记录 有没有办法我可以先拉出这个记录 43 然后再按名称按 ASC 顺序排列其他所有内容 技巧是在一个查询中完成它
  • SSL 会话票证与会话 ID

    为了提高不保留 短 连接的 SSL 握手性能 有两个广为人知的独立功能 TLS 会话 ID TLS 会话票证 如果有很多短连接会话 就性能开销而言 哪种机制更可取并且应该使用 我知道服务器需要缓存会话 ID 并且在负载平衡的情况下会话票证也