代码之家  ›  专栏  ›  技术社区  ›  Andrew Lipscomb

将ECDHE TLS与Boost ASIO一起使用

  •  1
  • Andrew Lipscomb  · 技术社区  · 6 年前

    TL;DR版本

    我想知道:

    • ECDHE的使用规范是在哪里定义的(在SSL上下文的cert参数或服务器配置中,或其他地方)?
    • 在非自制证书设置中,谁负责定义ECDHE公共和私人信息(最终用户或证书提供商)?
    • 是否可以创建一个似乎未使用ECDHE的现有证书,而不会导致证书出现问题?
    • 是否有人在Boost::ASIO中使用SSL进行ECDHE设置的示例?

    较长版本

    我们一直在构建一个应用程序,该应用程序使用来自外部证书颁发机构的适当付费证书。该应用程序使用基于Boost ASIO和Boost Beast的home Roll服务器设置,我们最近才注意到它与iOS的配合不太好-ASIO表示没有共享密码。

    通过阅读TLS的工作原理,我发现服务器的某些部分阻止我们使用ECDHE-*密码套件(iOS似乎想要)为TLS提供服务,但我很难弄清楚如何将ASIO和我们当前的证书/密钥结合起来为ECDHE提供服务。

    我所尝试的:

    • 使用相同的证书和密钥,添加 openssl dhparam 进入ASIO使用 set_tmp_dh ,然后指定密码。Curl报告这允许使用 DHE 但不是 ECDHE 。指定仅使用 ECDHE公司 连接时导致错误。
    • 正在尝试传递的输出 openssl ecparam 使用与上述类似的方法发送至ASIO。我无法格式化ASIO接受的内容。
    • 尝试查看是否有一种方法可以使用 openssl ecparam 使用另一个组合函数将原始证书修改为使用 ECDHE公司 。我从 the OpenSSL wiki 建议如果证书不包含行 ASN1 OID: prime256v1 (或类似的命名曲线),则不适合ECDHE使用。

    目前,我不确定问题真正在哪里(在ASIO、证书或我如何将其组合在一起),我可以在互联网上找到的大多数信息都与从头开始的家庭滚动相关,而不是与现有证书相关。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Andrew Lipscomb    5 年前

    19年5月11日更新

    https://github.com/chriskohlhoff/asio/pull/117 为ASIO和ECDHE引入更改。将需要等待一段时间,以查看将其转换为哪个Boost-lib版本。

    原始答案

    我似乎已经为任何谷歌搜索者找到了答案——在撰写本文时,ASIO似乎并不支持ECDHE。 This issue 从主要回购协议来看,ECDHE有望获得支持,但尚未实施。

        2
  •  0
  •   conz27    5 年前

    以下是自2016年以来一直等待合并的ECDHE实施的链接: https://github.com/chriskohlhoff/asio/pull/117

    +1引起Boost ASIO维护人员的注意;他做得很慢。