http.sys和winhttp.dll有SSL / TLS"会话恢复"和"错误的开始"?

时间:2016-09-24 21:25:10

标签: ssl winhttp http.sys mormot

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

因此,对于具有~100ms延迟的每个正常连接,将是>包含SSL / TLS握手的350ms。

我通过"会话恢复"并且"错误启动"(通过重用证书并更快地推送数据)延迟可以是类似的< 200毫秒,这对我来说是一个非常大的收获。

所以我的问题是:" http.sys"(服务器)与" winhttp.dll"(客户端)结合可以使用这些进步?如果是,从哪个版本?

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

1 个答案:

答案 0 :(得分:0)

我也试图找到关于此的文档,这绝对很难找到。 IISpeed.com只是说:

  

“配置前向保密密码以启用TLS False Start。” (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 False Start的要求:

  

要在所有浏览器中启用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