在 .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 对称算法的主要内容,如果未能解决你的问题,请参考以下文章

BLAKE 哈希函数 及 ChaCha20流密码

详解 HTTPS 移动端对称加密套件优

启用chacha20和salsa20等加密方法

如何在 .net 中对 MemoryMappedFiles 使用 x64 互锁操作

如何在PyCharm中对自己的pySC2 Agent代码进行Debug

如何在PyCharm中对自己的pySC2 Agent代码进行Debug