Как сгенерировать сертификат с параметрами DH - PullRequest
0 голосов
/ 03 октября 2019

Мне нужно поддерживать шифрование Диффи-Хеллмана, теперь, чтобы проверить это, мне нужно создать сертификат с параметрами ключа DH, например. длина ключа - 2048 и т. д.

Теперь, насколько я понимаю, DH не работает с самозаверяющими сертификатами, поэтому в основном мне нужно создать сертификат, выпущенный какой-либо доверенной третьей стороной, содержащий параметры ключа DH.

Я много искал, но, похоже, не могу найти правильное направление, нет, где я могу найти способ создания сертификата с параметрами DH.

Может ли кто-нибудь указать мне правильное направление ?? Заранее спасибо !!

1 Ответ

0 голосов
/ 03 октября 2019

Мне нужно поддерживать шифрование Диффи-Хеллмана

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

Мне нужно создать сертификат с параметрами ключа DH, например. длина ключа - 2048 и т. д.

Нет ничего похожего на параметры DH в сертификате.

DH - это только один из способов использования открытого ключа,Вы можете сгенерировать открытый ключ DH с указанной длиной (например, 2048 бит) и выполнить обмен DH, но это не имеет ничего общего с параметрами сертификата. (Разве вы не хотели создавать пару ключей, а не сертификат?).

Действительно, для обмена ключами DH нужны другие параметры (p, g), но эти параметры являются частью протокола, а не сертификата. В TLS даже параметры DH могут быть случайными и аутентифицированными с помощью открытого ключа сертификата - это называется эфемерным обменом ключами Диффи-Хеллмана.

Вы можете генерировать параметры DH (p, g) отдельно:

 openssl dhparam -out dhparams.pem 4096

Может ли кто-нибудь указать мне правильное направление ??

Теперь я предполагаю, что вы хотите установить зашифрованный канал (TLS) с использованием DH. Самый простой способ - указать разрешенные параметры для SSL для библиотеки. Это пример конфигурации httpd , где вы можете принудительно осуществлять обмен ключами DH. Каждый разумный SSL-фреймворк или сервер имеет возможность установить параметры.

Если вы хотите самостоятельно выполнить обмен ключами DH (не в составе TLS), я бы посоветовал использовать готовый к использованию зрелыйбиблиотека для вашего языка программирования.

...