Использование ECDHE TLS с Boost ASIO

Версия TL; DR

Я хотел бы знать:

  • Где определяется спецификация для использования ECDHE (в параметре cert или конфигурации сервера в контекстах SSL или где-либо еще)?
  • При установке сертификата, не относящегося к дому, кто несет ответственность за определение общедоступной и частной информации ECDHE (конечный пользователь или поставщик сертификатов)?
  • Можно ли создать существующий сертификат, который, по-видимому, не использует ECDHE, не вызывая проблем с сертификатом?
  • Есть ли примеры использования SSL в Boost :: ASIO с настройкой ECDHE?

Более длинная версия

Мы создавали приложение, которое использует надлежащим образом оплаченный сертификат от внешнего центра сертификации. Приложение использует настройку собственного сервера, основанную на Boost ASIO и Boost Beast, и мы только недавно заметили, что это плохо работает с iOS — ASIO говорит, что общего шифра нет.

Ознакомление с принципами работы TLS привело меня к тому факту, что какая-то часть нашего сервера мешала нам обслуживать TLS с использованием набора шифров ECDHE- * (что, похоже, нужно iOS) — но у меня возникают трудности с выяснением того, как Спрячьте ASIO и наш текущий сертификат / ключ в обслуживание ECDHE.

Что я пробовал:

  • Используя тот же сертификат и ключ, добавив в результаты openssl dhparam в ASIO с помощью set_tmp_dh, затем указав шифры. Curl сообщает, что это позволяет использовать соединение DHE но нет ECDHE, Указание шифров, которые используют только ECDHE вызывает ошибки при подключении.
  • Пытаясь передать вывод openssl ecparam ASIO, используя метод, аналогичный описанному выше. Я не смог отформатировать то, что принимает ASIO.
  • Пытаясь увидеть, есть ли способ, которым вы можете использовать вывод openssl ecparam с другой функцией объединения для изменения исходного сертификата в тот, который использует ECDHE, Я узнал об этом от OpenSSL вики предполагая, что если сертификат не содержит строку ASN1 OID: prime256v1 (или аналогичная именованная кривая), тогда она не подходит для использования ECDHE.

На данный момент я не уверен относительно того, в чем действительно заключается проблема (в ASIO, в сертификатах или в том, как я все это собираю), и большая часть информации в Интернете, которую я могу найти, относится к продвижению по домам всего от царапина, а не работа с существующими сертификатами.

1

Решение

Кажется, я нашел ответ для любого гуглера — ASIO не поддерживает ECDHE изначально на момент написания статьи. Эта проблема Из основного репо предполагается, что ECDHE находится на картах для поддержки, но еще не реализован.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]