Руководство по установке набора инструментов PQC

Настоящее руководство относится к инструментарию PQC. Инструкции по настройке упакованного в контейнер Docker инструментария PQC от DigiCert содержатся в Руководстве по упакованному в контейнер Docker инструментарию PQC.

Введение

Постквантовый криптографический набор инструментов (PQC) от DigiCert содержит все необходимое для создания гибридного сертификата TLS. Этот гибридный сертификат использует алгоритм постквантовой криптографии в комбинации с классическим криптографическим алгоритмом, позволяя вам тестировать различные развертываемые постквантовые гибридные сертификаты TLS с сохранением обратной совместимости.

Для этой первой итерации постквантовый криптографический алгоритм сопрягается с криптографическим алгоритмом на основе эллиптической кривой.

Настоящее руководство по настройке содержит инструкции по использованию инструментария PQC DigiCert для:

  • Применения исправления ISARA PQC к исходным файлам OpenSSL.
  • Компилирования своей модифицированной программы OpenSSL.
  • Создания постквантовых криптографических ключей.
  • Создания полную цепочки гибридных сертификатов, включая корневые, промежуточные и серверные сертификаты.
  • Протестируйте сертификаты, используя утилиты OpenSSL s_server и s_client.

Набор инструментов PQC DigiCert доступен для всех клиентов Secure Site Pro. Ознакомьтесь с более подробной информацией о том, что входит в каждый сертификат Secure Site Pro.

Содержимое инструментария PQC

Инструментарий PQC от DigiCert содержит следующие файлы:

  • ISARA Catalyst OpenSSL Connector
  • Модифицированный openssl.cnf
  • Файлы конфигурации сертификата
  • Пример цепочки гибридных сертификатов

Предварительные условия

Прежде чем начать использовать настоящее руководство, убедитесь в том, что выполнены следующие предварительные требования:

  • Доступ к файлам ресурсов инструментария PQC от DigiCert
  • 64-битная Ubuntu 16.04 или более поздняя версия (настоящее руководство составлено с использованием Ubuntu 18.04 LTS)
  • Пользователь без полномочий root с доступом sudo («выполнить от имени суперпользователя»)

Для защиты вашей системы или производственной среды от проблем рекомендуем вам выполнить данные шаги, используя тестовую среду или виртуальную среду.

Подготовленная среда

Перед скачиванием и исправлением файлов подготовьте свою среду.

Сначала установите необходимые зависимости и инструменты.

bash
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install curl unzip make cmake gcc wget zlib1g-dev libjansson-dev

Затем создайте структуру каталогов, в которую вы будете скачивать и компилировать исходные файлы и ресурсы инструментария.

bash
mkdir -p /app/digicert-pqc/connector
mkdir -p /app/digicert-pqc/certs/configs
mkdir /app/resources

Скачайте и извлеките инструментарий

Теперь загрузите инструментарий PQC от DigiCert и распакуйте его содержимое.

Скачайте инструментарий PQC

  1. Войдите в свою учетную запись CertCentral

  2. В меню на боковой панели нажмите Сертификаты > Заказы.

  3. На странице «Заказы» найдите свой заказ на сертификат Secure Site Pro и нажмите на номер заказа.

  4. На странице данных заказа на сертификат нажмите Инструментарий PQC.

  5. Нас странице постквантовой криптографии (PQC) нажмите Скачать инструментарий ISARA PQC и сохраните набор инструментов в каталоге /app/resources.

Извлеките файлы инструментария PQC

Затем извлеките содержимое из набора инструментов.

bash
cd /app/resources
unzip ./DigiCert_PQC_Toolkit.zip

Инструментарий PQC содержит архив ISARA OpenSSL Connector. Извлеките его в /app/digicert-pqc/connector.

bash
cd /app/digicert-pqc/connector
tar xzvf /app/resources/digicert-pqc-toolkit_2019-07-26/openssl_connector-Linux-2019-05-27.tgz

Исправление и компиляция OpenSSL

После того, как вы настроите среду и извлечете все файлы, исправьте и скомпилируйте OpenSSL.

Для начала скачайте OpenSSL версии 1.0.2r в каталог /app/resources.

bash
cd /app/resources
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2r.tar.gz

Затем извлеките исходные файлы в каталог /app/digicert-pqc.

bash
cd /app/digicert-pqc
tar xzvf /app/resources/openssl-1.0.2r.tar.gz

Теперь примените исправление ISARA OpenSSL к извлеченным исходным файлам. При этом будут применены все необходимые изменения OpenSSL для генерирования квантово-безопасных криптографических алгоритмов.

bash
cd openssl-1.0.2r/
patch -p2 < ../connector/OpenSSL_1_0_2r_ISARA.patch

После завершения исправления замените существующий файл openssl.cfg на модифицированную версию из инструментария. Этот модифицированный файл конфигурации содержит динамическую запись механизма, которая указывает на ISARA OpenSSL IQREngine.

bash
cp /app/resources/digicert-pqc-toolkit_2019-07-26/openssl.cnf ./apps

Теперь вы должны изменить модифицированный файл конфигурации таким образом, чтобы он указывал на местоположение ISARA OpenSSL IQREngine.

  1. Откройте скопированный openssl.cnf в удобном для вас текстовом редакторе.

bash
vi ./apps/openssl.cnf
  1. Найдите запись dynamic_path в строке 32.

  2. Измените эту запись на следующую:

bash
dynamic_path = /app/digicert-pqc/connector/lib/libiqre_engine.so
  1. Сохраните и закройте файл.

Так как вы создаете совместно используемую библиотеку OpenSSL, вам необходимо настроить нестандартные пути перед компилированием исходных файлов.

bash
./config --prefix=/app/digicert-pqc/pqpki-openssl-1.0.2r --openssldir=/app/digicert-pqc/pqpki-openssl-1.0.2r shared

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

bash
make depend
make all
sudo make install

После успешного завершения компилирования измененного исходного файла OpenSSL используйте переменную LD_LIBRARY_PATH, чтобы указать два динамических расположения библиотеки. Данный параметр указывает вашей системе, где располагаются обе ваши измененные совместно используемые библиотеки OpenSSL, а также движок ISARA PQC, используемый для обработки квантово-безопасных криптографических алгоритмов.

bash
export LD_LIBRARY_PATH=/app/digicert-pqc/pqpki-openssl-1.0.2r:/app/digicert-pqc/connector/lib

Если ваша система уже использует переменную LD_LIBRARY_PATH, вы можете добавить :$LD_LIBRARY_PATH к указанной выше команде, чтобы, не нарушая структуру, добавить новые пути.

Создайте цепочку гибридных сертификатов

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

Сначала скопируйте файлы конфигурации сертификатов, которые были включены в инструментарий PQC, в каталог /app/digicert-pqc/certs. Эти файлы конфигурации содержат всю информацию, необходимую для генерирования каждого запроса на сертификат и сертификата.

bash
cd /app/digicert-pqc/certs
cp /app/resources/digicert-pqc-toolkit_2019-07-26/certificates/root_req.cfg ./configs
cp /app/resources/digicert-pqc-toolkit_2019-07-26/certificates/intermediate_req.cfg ./configs
cp /app/resources/digicert-pqc-toolkit_2019-07-26/certificates/server_req.cfg ./configs

Сгенерируйте частный и открытый ключи

Затем сгенерируйте квантово-безопасные закрытые ключи для каждого сертификата в цепочке, обязательно используя измененную программу OpenSSL, а также IQREngine.

Корневой частный ключ:

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl genpkey -engine IQREngine -algorithm xmss -pkeyopt tree_height:10 -pkeyopt strategy:cpu_constrained -pkeyopt state_filename:xmss_catalyst_mixed_chain_root_private_key_state.bin -out xmss_catalyst_mixed_chain_root_private_key.pem

Промежуточный частный ключ:

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl genpkey -engine IQREngine -algorithm dilithium -pkeyopt parameter_set:A -out dilithium_catalyst_mixed_chain_intermediate_private_key.pem

Частный ключ сервера:

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl genpkey -engine IQREngine -algorithm rainbow -pkeyopt parameter_set:A -out rainbow_catalyst_mixed_chain_private_key.pem

После того как вы сгенерируете закрытый ключ каждого сертификата, извлеките их открытые ключи.

Корневой открытый ключ:

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl pkey -engine IQREngine -in xmss_catalyst_mixed_chain_root_private_key.pem -pubout -out xmss_catalyst_mixed_chain_root_public_key.pem

Промежуточный открытый ключ:

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl pkey -engine IQREngine -in dilithium_catalyst_mixed_chain_intermediate_private_key.pem -pubout -out dilithium_catalyst_mixed_chain_intermediate_public_key.pem

Открытый ключ сервера:

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl pkey -engine IQREngine -in rainbow_catalyst_mixed_chain_private_key.pem -pubout -out rainbow_catalyst_mixed_chain_public_key.pem

Выберите кривую для сертификата со смешанной цепочкой ECC.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl ecparam -out ecdsa_catalyst_mixed_chain_parameters.pem -name secp384r1

Создайте CSR и сгенерируйте сертификаты

При наличии всех сгенерированных криптографических ключей вы готовы к созданию CSR для каждого сертификата в цепочке и генерации корневого и промежуточного сертификатов, а также сертификата сервера.

Сначала создайте CSR для стороны, выпускающей корневой сертификат.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl req -new -newkey ec:ecdsa_catalyst_mixed_chain_parameters.pem -keyout ecdsa_without_xmss_catalyst_mixed_chain_root_private_key.pem -out ecdsa_without_xmss_x509_catalyst_mixed_chain_root_req.pem -config ./configs/root_req.cfg -nodes

Далее вы должны создать самоподписанный сертификат X509 для корня.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl x509 -req -set_serial 8026 -extfile ./configs/root_req.cfg -in ecdsa_without_xmss_x509_catalyst_mixed_chain_root_req.pem -signkey ecdsa_without_xmss_catalyst_mixed_chain_root_private_key.pem -out ecdsa_without_xmss_x509_catalyst_mixed_chain_root_certificate.pem

После этого расширьте корневой сертификат до гибридного корневого сертификата.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl x509QSDirectExtend -engine /app/digicert-pqc/connector/lib/libiqre_engine.so -x509in ecdsa_without_xmss_x509_catalyst_mixed_chain_root_certificate.pem -x509out xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem -privin ecdsa_without_xmss_catalyst_mixed_chain_root_private_key.pem -pubqs xmss_catalyst_mixed_chain_root_public_key.pem -privqs xmss_catalyst_mixed_chain_root_private_key.pem::xmss_catalyst_mixed_chain_root_private_key_state.bin -privqs_engine

Теперь вы можете создать CSR для промежуточного сертификата.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl req -new -newkey ec:ecdsa_catalyst_mixed_chain_parameters.pem -keyout ecdsa_without_dilithium_catalyst_mixed_chain_intermediate_private_key.pem -out ecdsa_without_dilithium_x509_catalyst_mixed_chain_intermediate_req.pem -config ./configs/intermediate_req.cfg -nodes

Расширьте CSR промежуточного сертификата до CSR гибридного сертификата.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl reqQSExtend -engine /app/digicert-pqc/connector/lib/libiqre_engine.so -reqin ecdsa_without_dilithium_x509_catalyst_mixed_chain_intermediate_req.pem -reqout dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_req.pem -privin ecdsa_without_dilithium_catalyst_mixed_chain_intermediate_private_key.pem -pubqs dilithium_catalyst_mixed_chain_intermediate_public_key.pem -privqs dilithium_catalyst_mixed_chain_intermediate_private_key.pem

После этого сгенерируйте промежуточный сертификат.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl x509 -req -set_serial 8014 -extfile ./configs/intermediate_req.cfg -in dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_req.pem -CA xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem -CAkey ecdsa_without_xmss_catalyst_mixed_chain_root_private_key.pem -out ecdsa_without_dilithium_x509_catalyst_mixed_chain_intermediate_certificate.pem

Расширьте промежуточный сертификат до гибридного промежуточного сертификата.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl x509QSExtend -engine /app/digicert-pqc/connector/lib/libiqre_engine.so -x509in ecdsa_without_dilithium_x509_catalyst_mixed_chain_intermediate_certificate.pem -x509out dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem -reqin dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_req.pem -privqs xmss_catalyst_mixed_chain_root_private_key.pem::xmss_catalyst_mixed_chain_root_private_key_state.bin -privqs_engine

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

Сначала вы должны создать CSR для сертификата сервера.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl req -new -newkey ec:ecdsa_catalyst_mixed_chain_parameters.pem -keyout ecdsa_without_rainbow_catalyst_mixed_chain_private_key.pem -out ecdsa_without_rainbow_x509_catalyst_mixed_chain_req.pem -config ./configs/server_req.cfg -nodes

Затем расширьте CSR сертификата сервера до CSR гибридного сертификата.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl reqQSExtend -engine /app/digicert-pqc/connector/lib/libiqre_engine.so -reqin ecdsa_without_rainbow_x509_catalyst_mixed_chain_req.pem -reqout rainbow_ecdsa_x509_catalyst_mixed_chain_server_req.pem -privin ecdsa_without_rainbow_catalyst_mixed_chain_private_key.pem -pubqs rainbow_catalyst_mixed_chain_public_key.pem -privqs rainbow_catalyst_mixed_chain_private_key.pem

После этого вы можете генерировать сертификат сервера.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl x509 -req -set_serial 8015 -req -extfile ./configs/server_req.cfg -in rainbow_ecdsa_x509_catalyst_mixed_chain_server_req.pem -CA dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem -CAkey ecdsa_without_dilithium_catalyst_mixed_chain_intermediate_private_key.pem -out ecdsa_without_rainbow_x509_catalyst_mixed_chain_certificate.pem

Наконец, расширьте сертификат сервера до гибридного сертификата сервера.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl x509QSExtend -engine /app/digicert-pqc/connector/lib/libiqre_engine.so -x509in ecdsa_without_rainbow_x509_catalyst_mixed_chain_certificate.pem -x509out rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem -reqin rainbow_ecdsa_x509_catalyst_mixed_chain_server_req.pem -privqs dilithium_catalyst_mixed_chain_intermediate_private_key.pem

Проверьте цепочку сертификатов

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

Сначала убедитесь в том, что цепочка гибридных сертификатов работает, используя унаследованную криптографию.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl verify -engine IQREngine -verbose -CAfile xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem -untrusted dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem

Вы должны получить следующий результат:

bash
engine "IQREngine" set.
rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem: OK

Далее, убедитесь в том, что цепочка гибридных сертификатов работает, используя квантово-безопасную криптографию.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl x509QSVerify -engine /app/digicert-pqc/connector/lib/libiqre_engine.so -root xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem -untrusted dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem -cert rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem

Которая должна привести к следующему результату:

bash
engine "IQREngine" set.
2 : ok : /C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Root
1 : ok : /C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Test Intermediate CA
0 : ok : /C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=digicert.pqc
Success!!

И проверьте, все ли файлы созданы, выполнив команду ls. Если процедура выполнена успешно, вы должны увидеть примерно такой результат:

bash
configs
dilithium_catalyst_mixed_chain_intermediate_private_key.pem
dilithium_catalyst_mixed_chain_intermediate_public_key.pem
dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem
dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_req.pem
ecdsa_catalyst_mixed_chain_parameters.pem
ecdsa_without_dilithium_catalyst_mixed_chain_intermediate_private_key.pem
ecdsa_without_dilithium_x509_catalyst_mixed_chain_intermediate_certificate.pem
ecdsa_without_dilithium_x509_catalyst_mixed_chain_intermediate_req.pem
ecdsa_without_rainbow_catalyst_mixed_chain_private_key.pem
ecdsa_without_rainbow_x509_catalyst_mixed_chain_certificate.pem
ecdsa_without_rainbow_x509_catalyst_mixed_chain_req.pem
ecdsa_without_xmss_catalyst_mixed_chain_root_private_key.pem
ecdsa_without_xmss_x509_catalyst_mixed_chain_root_certificate.pem
ecdsa_without_xmss_x509_catalyst_mixed_chain_root_req.pem
rainbow_catalyst_mixed_chain_private_key.pem
rainbow_catalyst_mixed_chain_public_key.pem
rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem
rainbow_ecdsa_x509_catalyst_mixed_chain_server_req.pem
xmss_catalyst_mixed_chain_root_private_key.pem
xmss_catalyst_mixed_chain_root_private_key_state.bin
xmss_catalyst_mixed_chain_root_public_key.pem
xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem

Проверьте вашу цепочку сертификатов, используя s_server и s_client

Чтобы протестировать свою цепочку квантово-безопасных гибридных сертификатов, используйте утилиты OpenSSL s_server и s_client. Чтобы использовать обе утилиты одновременно, откройте два сеанса работы с терминалом: один для сервера и один для клиента.

Сначала добавьте значение CN сертификата сервера в файл хостов.

bash
echo "$(hostname -I) digicert.pqc" | sudo tee -a /etc/hosts

Затем убедитесь в том, что вы находитесь в каталоге /app/digicert-pqc/certs.

bash
cd /app/digicert-pqc/certs

Затем на одном из ваших открытых терминалов запустите сервер.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl s_server -engine IQREngine -cert dilithium_ecdsa_x509_catalyst_mixed_chain_intermediate_certificate.pem -certform PEM -key dilithium_catalyst_mixed_chain_intermediate_private_key.pem -keyform PEM -debug -tls1_2

После выполнения указанной выше команды должен появиться увидеть этот результат:

bash
engine "IQREngine" set.
Using default temp DH parameters
ACCEPT

Затем переключитесь в окно второго терминала и убедитесь в том, что вы находитесь в каталоге /app/digicert-pqc/certs.

bash
cd /app/digicert-pqc/certs

Затем с помощью утилиты s_client подключитесь к работающему серверу.

bash
/app/digicert-pqc/pqpki-openssl-1.0.2r/bin/openssl s_client -engine IQREngine -CAfile xmss_ecdsa_x509_catalyst_mixed_chain_root_certificate.pem -showcerts -tls1_2 -cipher 'ECDHE-NHDH-DILM-AES256-GCM-SHA384'

Если все настроено правильно, в окне терминала, на котором запущена утилита s_client, должен появиться этот результат:

bash
engine "IQREngine" set.
CONNECTED(00000003)
depth=1 C = US, ST = Utah, L = Lehi, O = "DigiCert, Inc.", OU = DigiCert PQC, CN = DigiCert PQC Root
verify return:1
depth=0 C = US, ST = Utah, L = Lehi, O = "DigiCert, Inc.", OU = DigiCert PQC, CN = DigiCert PQC Test Intermediate CA
verify return:1
---
Certificate chain
 0 s:/C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Test Intermediate CA
   i:/C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Root
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
---
Server certificate
subject=/C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Test Intermediate CA
issuer=/C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Root
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 9868 bytes and written 2331 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-NHDH-DILM-AES256-GCM-SHA384
Server public key is 521 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-NHDH-DILM-AES256-GCM-SHA384
    Session-ID: {{Session-ID}}
    Session-ID-ctx: 
    Master-Key: {{Master-Key}}
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    [...]


    Start Time: 1563994600
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---

В окне терминала, на котором запущена утилита s_server, должен появиться этот результат:

bash
read from 0x5581e0750b80 [0x5581e07656f3] (5 bytes => 5 (0x5))
0000 - 16 03 01 00 96                                    .....
read from 0x5581e0750b80 [0x5581e07656f8] (150 bytes => 150 (0x96))
0000 - 01 00 00 92 03 03 d9 c0-5a 73 35 d0 4e f2 31 f6   ........Zs5.N.1.
[...]
write to 0x5581e0750b80 [0x5581e076e100] (71 bytes => 71 (0x47))
0000 - 16 03 03 00 42 02 00 00-3e 03 03 c2 3b df 2f 01   ....B...>...;./.
[...]
write to 0x5581e0750b80 [0x5581e0769c43] (4953 bytes => 4953 (0x1359))
0000 - 16 03 03 13 54 0b 00 13-50 00 13 4d 00 13 4a 30   ....T...P..M..J0
[...]
write to 0x5581e0750b80 [0x5581e0769c43] (4609 bytes => 4609 (0x1201))
0000 - 16 03 03 11 fc 0c 00 11-f8 03 00 17 41 04 0d 97   ............A...
[...]
write to 0x5581e0750b80 [0x5581e076e100] (9 bytes => 9 (0x9))
0000 - 16 03 03 00 04 0e 00 00-00                        .........
read from 0x5581e0750b80 [0x5581e07656f3] (5 bytes => 5 (0x5))
0000 - 16 03 03 08 48                                    ....H
read from 0x5581e0750b80 [0x5581e07656f8] (2120 bytes => 2120 (0x848))
0000 - 10 00 08 44 41 04 29 0a-07 84 0c f3 a4 e4 3e d1   ...DA.).......>.
[...]
read from 0x5581e0750b80 [0x5581e07656f3] (5 bytes => 5 (0x5))
0000 - 14 03 03 00 01                                    .....
read from 0x5581e0750b80 [0x5581e07656f8] (1 bytes => 1 (0x1))
0000 - 01                                                .
read from 0x5581e0750b80 [0x5581e07656f3] (5 bytes => 5 (0x5))
0000 - 16 03 03 00 28                                    ....(
read from 0x5581e0750b80 [0x5581e07656f8] (40 bytes => 40 (0x28))
0000 - e1 d7 30 8b 12 ef d1 dc-31 90 97 d0 0e 54 9c aa   ..0.....1....T..
[...]
write to 0x5581e0750b80 [0x5581e076e100] (175 bytes => 175 (0xAF))
0000 - 16 03 03 00 aa 04 00 00-a6 00 00 1c 20 00 a0 02   ............ ...
[...]
write to 0x5581e0750b80 [0x5581e076e100] (6 bytes => 6 (0x6))
0000 - 14 03 03 00 01 01                                 ......
write to 0x5581e0750b80 [0x5581e076e100] (45 bytes => 45 (0x2D))
0000 - 16 03 03 00 28 d0 99 97-94 6d a1 5c f8 b0 c0 65   ....(....m.\...e
[...]
-----BEGIN SSL SESSION PARAMETERS-----
[...]
-----END SSL SESSION PARAMETERS-----
Shared ciphers:ECDHE-NHDH-DILM-AES256-GCM-SHA384:ECDHE-NHDH-SIDH-DILM-AES256-GCM-SHA384
Signature Algorithms: RSA+SHA512:DSA+SHA512:ECDSA+SHA512:RSA+SHA384:DSA+SHA384:ECDSA+SHA384:RSA+SHA256:DSA+SHA256:ECDSA+SHA256:RSA+SHA224:DSA+SHA224:ECDSA+SHA224:RSA+SHA1:DSA+SHA1:ECDSA+SHA1:HSS+SHA512:XMSS+SHA512:XMSSmt+SHA512:DILITHIUM+SHA512:DILITHIUM+SHA512:0xE0+SHA512
Shared Signature Algorithms: RSA+SHA512:DSA+SHA512:ECDSA+SHA512:RSA+SHA384:DSA+SHA384:ECDSA+SHA384:RSA+SHA256:DSA+SHA256:ECDSA+SHA256:RSA+SHA224:DSA+SHA224:ECDSA+SHA224:RSA+SHA1:DSA+SHA1:ECDSA+SHA1:HSS+SHA512:DILITHIUM+SHA512:DILITHIUM+SHA512
Supported Elliptic Curve Point Formats: uncompressed:ansiX962_compressed_prime:ansiX962_compressed_char2
Supported Elliptic Curves: P-256:P-521:brainpoolP512r1:brainpoolP384r1:P-384:brainpoolP256r1:secp256k1:B-571:K-571:K-409:B-409:K-283:B-283:0xFE01
Shared Elliptic curves: P-256:P-521:brainpoolP512r1:brainpoolP384r1:P-384:brainpoolP256r1:secp256k1:B-571:K-571:K-409:B-409:K-283:B-283:UNDEF
CIPHER is ECDHE-NHDH-DILM-AES256-GCM-SHA384
Secure Renegotiation IS supported

Операция выполнена! Вы успешно создали цепочку квантово-безопасных гибридных сертификатов, используя инструментарий PQC от DigiCert и движок ISARA Catalyst OpenSSL Connector.