.net最小化ssl握手数据流量

时间:2014-08-19 12:53:59

标签: c# ssl x509certificate

我有一个使用TLS1.1进行身份验证的服务器应用程序。使用RSA-1进行加密。 此服务器与Windows客户端应用程序之间的通信正常,但在现实世界中,服务器应用程序与内存有限的小型设备进行通信。 事实证明,初始握手产生的数据包太大而设备无法处理(增加缓冲区大小不在我的控制范围内),所以我的问题是:

是否可以在.net中更详细地配置ssl握手过程,如果是,如何? 我正在考虑最小化服务器发送给客户端的可分辨名称列表(在证书请求期间),它用于构建“acceptedIssuers”列表(没有实际删除所有可信CA证书)或任何其他方式来捏一个几个字节的握手过程? 谢谢。

2 个答案:

答案 0 :(得分:1)

最大的部分是服务器发送的证书。要减小这个尺寸:

  • 仅发送必要的证书。当然,您需要叶证书(来自服务器)。
  • 如果您有任何中间证书,请尝试在客户端安装它们,以便您不需要发送它们。
  • 当然,不要发送root-CA的证书,无论如何都应该在客户端。

如果这还不够,您可能需要获得另一个密钥大小较小的证书,即使用1024位而不是2048. 512位今天太小,即使使用1024位,您可能会在几年内遇到麻烦

答案 1 :(得分:1)

根据第一篇文章的第一条评论中的建议,更改注册表设置以从握手中删除专有名称列表:

HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制\ SecurityProviders \ SCHANNEL

Method 3: Configure Schannel to no longer send the list of trusted root certificate authorities during the TLS/SSL handshake process