【问题标题】:http.sys and winhttp.dll have SSL/TLS "session resumption" and "false start"?http.sys 和 winhttp.dll 有 SSL/TLS“会话恢复”和“错误启动”?
【发布时间】:2017-02-02 12:20:54
【问题描述】:

我有一个用 Delphi 编写的应用程序,它附加客户端 winhttp.dll,在服务器端它使用 mORMot(SOA/ORM 客户端-服务器库,附加“http.sys”以实现 Web 服务器功能)。下一步也将是一个用 JS 编写的 Web 客户端。

因此,对于每个延迟约 100 毫秒的正常连接,包含 SSL/TLS 握手的时间将 > 350 毫秒。

我通过“会话恢复”和“错误启动”(通过重用证书和更快地推送数据)了解到延迟可能类似于

所以我的问题是:“http.sys”(服务器)结合“winhttp.dll”(客户端)可以使用这些改进吗?如果是,来自哪个版本?

注意:我想从 Win8.1 和 Win Server 2012 开始这是真的,但我找不到任何文档,只有 >= IIS 8.5 具有会话恢复功能。

【问题讨论】:

标签: ssl winhttp http.sys mormot


【解决方案1】:

我也在尝试查找这方面的文档,但肯定很难找到。 IISpeed.com 只是说:

“配置前向保密密码以启用 TLS 错误启动。” (https://www.iispeed.com/pagespeed/recommendations)

这里有一些 PowerShell 脚本可能会有所帮助。谨慎使用 - https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12

Ilya Grigorik 更详细地介绍了浏览器对 TLS 错误启动的要求:

要在所有浏览器中启用 TLS False Start,服务器应通过 ALPN 扩展(例如“h2, http/1.1”)公布支持的协议列表,并配置为支持和首选启用前向保密的密码套件。 (https://hpbn.co/transport-layer-security-tls/#deploying-tls-false-start)

一个经过良好调整的 TLS 部署应该最多添加一个额外的往返来协商 TLS 连接,无论它是新的还是恢复的,并避免所有其他延迟陷阱:配置会话恢复,并启用前向保密以启用 TLS False开始。 (https://hpbn.co/transport-layer-security-tls/#enable-1-rtt-tls-handshakes)

但是,除了 www.hass.de 上的那个页面之外,我还没有找到可以逐步指导您完成的实施指南。 (H2 包含在 Ilya 的 HTTP Header 建议中,但 TLS False Start 不需要。)

不要忘记优化服务器 TLS 性能的其他方法。请务必阅读 Ilya 的书 https://hpbn.co/,或者至少阅读他的清单以利用其他性能提升。 https://hpbn.co/transport-layer-security-tls/#optimizing-for-tls https://hpbn.co/transport-layer-security-tls/#enable-http-strict-transport-security-hsts

【讨论】:

    猜你喜欢
    • 2020-05-21
    • 2019-03-18
    • 2012-09-22
    • 2015-01-08
    • 2016-09-10
    • 2011-12-08
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多