在 .NET 中对 HTTPS 使用 chacha20-poly1305 对称算法
Posted
技术标签:
【中文标题】在 .NET 中对 HTTPS 使用 chacha20-poly1305 对称算法【英文标题】:Use chacha20-poly1305 symmectric algorithm for HTTPS in .NET 【发布时间】:2018-06-02 18:20:49 【问题描述】:有谁知道是否可以使用带有 chacha20 的密码套件,例如 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 在以 .NET (v4.6.2) 编写的在 Windows 10 上运行的桌面客户端中?
我的场景是我有一个客户端需要通过 TLS 与服务器通信,服务器在嵌入式设备上运行,如果我可以使用 chacha20 而不是 AES,这将在性能方面受益良多。
我希望能够使用现有的 HttpClient 或 WebClient 类。
【问题讨论】:
【参考方案1】:在 .NET Framework 中,对 HTTP(以及扩展的 TLS)的内置支持由 ServicePoint
类处理。您可以通过 ServicePointManager
类配置基本参数(如 TLS 版本)以支持,但该类不提供任何扩展点来提供自定义算法。
框架委托给 Windows 来执行 TLS 握手,包括支持的算法。如果 Windows 支持 chacha20,你可能会有更好的机会,但据我所知,它不支持。
我现在考虑实现这一点的唯一方法是提供HttpMessageHandler
的自定义实现,它在裸套接字周围有自己的传输实现。
【讨论】:
以上是关于在 .NET 中对 HTTPS 使用 chacha20-poly1305 对称算法的主要内容,如果未能解决你的问题,请参考以下文章
如何在 .net 中对 MemoryMappedFiles 使用 x64 互锁操作