【问题标题】:How to create a TLS 1.3 CertificateVerify message with OpenSSL in C/C++?如何在 C/C++ 中使用 OpenSSL 创建 TLS 1.3 CertificateVerify 消息?
【发布时间】:2021-06-06 10:07:48
【问题描述】:

我需要自己实现 TLS 1.3 协议,使用 OpenSSL 作为加密后端。我卡在服务器 CertificateVerify 消息上 - 不知道如何创建它。这是一个code and some files at git(单个cpp 文件,216 行代码,但只关注main())。 “文件”文件夹中的所有二进制消息都是由 openssl s_server 应用程序制作的,还有参考 CertificateVerify 消息,我需要使用 openssl 函数手动重现(请参阅代码中的注释)。

请帮助我构建一个有效的 openssl 方法调用堆栈,以使“我的 CertificateVerify”与参考方法匹配(并了解 RSA-PSS 的工作原理)。

【问题讨论】:

  • 出于什么目的?在使用您的代码之前将执行哪些安全和代码审查?您计划支持 TLS 实施多少年?如您所见,自行实施 TLS 是一个坏主意,尤其是稍后将在可通过 Internet 访问的设备中使用它时。
  • @Robert,在我的项目中使用它。 OpenSSL 的协议实现有一个缺点——它需要为每个会话分配新的SSL_CTX 并使用所有相关的 BIO 缓冲区释放它。它无法为其他会话重用先前分配的结构。我不喜欢它,希望我的服务器在网络 I/O 和安全方面更高效
  • OpenSSL 不是唯一可用的 TLS 实现。在开始重新实施对安全至关重要的东西之前,请始终检查替代方案。例如 Google 的 OpenSSL fork BoringSSL 或 GnuTLS。

标签: c++ openssl rsa handshake tls1.3


【解决方案1】:

我在 OpenSSL 源代码中找到了它。答案是here

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2022-07-08
    相关资源
    最近更新 更多