PQC docker화된 도구 키트 가이드

이 가이드는 PQC Docker화 도구 키트에 대해 설명합니다. DigiCert PQC 도구 키트 설정에 대한 설명은 PQC 도구 키트 설정 가이드를 참조하십시오.

소개

DigiCert의 PQC(포스트퀀텀 암호화) Docker화 도구 키트는 하이브리드 TLS 인증서를 만들 수 있는 Docker 환경을 빠르게 설정하기 위해 필요한 모든 것을 포함합니다. 이 하이브리드 인증서는 전통적 암호화 알고리즘을 연결하여 포스트퀀텀 암호화 알고리즘을 사용할 것입니다. 이전 버전과의 호환성을 유지하면서도 포스트퀀텀 하이브리드 TLS 인증서의 배포의 가능성을 테스트할 수 있게 합니다.

이 가이드는 DigiCert PQC Docker화 도구 키드를 사용하는 방법을 안내합니다.

  • docker-compose를 사용하여 Docker 컨테이너를 시작합니다.
  • 작동하는 PQC 컨테이너를 입력합니다.
  • 포함된 데모 스크립트를 실행하여 예제 PQC 인증서를 테스트합니다.
  • 포스트퀀텀 암호화 키를 생성합니다.
  • 루트, 중간 및 서버 인증서를 포함하여 전체 하이브리드 인증서 체인을 만듭니다.
  • OpenSSL의 s_servers_client 유티리티를 사용하여 인증서를 테스트합니다.

DigiCert PQC Docker화 도구 키트는 모든 Secure Site Pro 고객에게 다운로드 가능합니다. 각 Secure Site Pro 인증서에 포함된 사항에 대해 자세히 알아봅니다.

PQC docker화된 도구 키트 콘텐츠

DigiCert PQC Docker화 도구 키트는 다음 파일을 포함합니다:

  • Dockerfile
  • docker-compose.yml
  • ISARA Catalyst OpenSSL Connector를 패치한 컴파일된 OpenSSL
  • 데모 인증서 및 구성 파일
  • 인증서 생성 및 기능을 테스트하는 Bash 스크립트

사전 요구 사항

이 가이드를 사용하기 전에 다음 사전 요구 사항을 충족하는지 확인합니다.

Docker 버전 확인

PQC Docker화 도구 키트를 다운로드하기 전에 Docker Engine 및 Docker Compose가 시스템에 설치되어 있는지 확인하십시오.

이 명령이 인식되지 않는 경우, Docker는 시스템에 설치되지 않았습니다. 시스템에 Docker 설치에 대한 정보는 사전 요구 사항을 참조하십시오.

Linux/macOS

터미널 창을 열고 docker --versiondocker-compose --version을 실행합니다. 다음과 유사한 결과를 반환해야 합니다.

bash
$ docker --version
Docker version 18.03.0-ce, build 0520e24

$ docker-compose --version
docker-compose version 1.20.1, build 5d8c71b

Windows

명령 프롬프트 또는 PowerShell 창을 열고 docker --version을 실행합니다. 다음과 유사한 결과를 반환해야 합니다.

powershell
> docker --version
Docker version 18.03.0-ce, build 0520e24

PQC Docker화 도구 키트를 다운로드 및 압축 풀기

  1. CertCentral 계정에 로그인
  2. 사이드바 메뉴에서 인증서 > 주문을 클릭합니다.
  3. 주문 페이지에서 Secure Site Pro 인증서 주문을 찾고 주문 번호를 클릭합니다.
  4. 인증서의 주문 상세 정보 페이지에서 PQC 도구 키트를 클릭합니다.
  5. PQC(포스트-퀀텀 암호화) 페이지에서 Docker 지원 파일 다운로드를 클릭하고 zip 파일을 저장합니다.
  6. 저장한 zip 파일(DigiCert-PQC.zip)을 찾아서 콘텐츠의 압축을 풉니다.

PQC 도구 키트 컨테이너를 빌드 및 실행

PQC Docker화 도구 키트를 다운로드하여 압축을 풀었으면 docker-compose를 사용하여 컨테이너를 빌드할 준비가 되었습니다.

터미널 창을 열고 추출한 digicert-pqc-docker 디렉터리를 탐색합니다.

bash
cd [path/to/dir/]digicert-pqc-docker

다음으로 PQC 토구 키트 컨테이너를 빌드합니다. 이것은 모든 이미지 종속성을 다운로드하고 컨테이너 환경을 구성합니다.

명령을 처음 사용하는 것인 경우, 필요한 Ubuntu 이미지가 Docker Hub에서 다운로드되기를 기다려야 할 수 있습니다.

bash
docker-compose build

이제 분리 모드에서 PQC 도구 키트 컨테이너를 시작할 준비가 되었습니다.

bash
docker-compose up -d
Starting digicert-pqc-docker_pqc_1 ... done

축하합니다! PQC Docker화 도구 키트 컨테이너가 실행 중입니다.

컨테이너 환경에 액세스하여 실험을 시작하려면 컨테이너에 진입을 참조하십시오.

컨테이너에 진입

포함된 데모 스크립트 및 수정된 OpenSSL 앱을 실험하려면 먼저 컨테이너 환경에 진입해야 합니다.

실행하고 있는 컨테이너 내에서 bash 세션을 시작하려면 docker-compose exec을 사용합니다.

bash
docker-compose exec pqc /bin/bash

디렉터리 트리

컨테이너에 처음 진입하면 /app 디렉터리에 있을 것입니다. 이 디렉터리는 전체 PQC 도구 키트 및 보조적 리소스의 홈 디렉터리입니다. 다음 표는 /app 디렉터리에 있는 중요한 하위 디렉터리 및 파일을 설명합니다.

디렉터리/파일 설명
digicert-pqc/ 주요 도구 키트 디렉터리입니다.
 certs/ 생성된 인증서를 저장하는 디렉터리입니다.
 connector/ ISARA Catalyst OpenSSL Connector 리소스입니다.
 demo/ 데모 스크립트 및 리소스입니다.
  certs/ 생성된 데모 인증서를 저장하는 디렉터리입니다.
  configs/ 데모 인증서를 생성할 때 사용되는 인증서 구성 파일을 포함합니다.
   demo.html 웹 서버 모드에서 실행할 때 run_server.sh 스크립트를 통하여 서비스할 수 있는 HTML 파일입니다.
   cert_gen_demo.sh /app/digicert-pqc/demo/configs에 위치한 구성 파일을 사용하여 퀀텀 컴퓨터에 대해 안전한 전체 인증서 체인을 생성 및 테스트합니다.
데모 인증서 생성을 참조하십시오.
   run_client.sh OpenSSL의 s_client 유틸리티를 사용하여 실행하는 s_server에 연결하여 인증서 기능을 테스트합니다.
기본 모드: run_client.sh 스크립트를 사용하여 연결을 참조하십시오.
   run_server.sh OpenSSL의 s_server 유틸리티를 사용하여 기본 웹 서버를 시작하고 /app/digicert-pqc/demo/certs에 위치한 인증서를 로드합니다.
데모 서버 시작을 참조하십시오.
 pqpki-openssl-1.0.2r/ ISARA OpenSSL Connector 패치를 사용하여 수정된 컴파일한 OpenSSL 버전 1.0.2r입니다.
resources/ 보조 PQC 도구 키트 리소스 파일입니다.

데모 인증서 생성

인증서의 필드 값을 사용자 지정하려면 인증서의 구성 파일(/app/digicert-pqc/demo/configs에 위치)을 수정합니다.

퀀텀 컴퓨터에 대해 안전한 전체 인증서 체인을 생성하려면 cert_gen_demo.sh 스크립트(/app/digicert-pqc/demo에 위치)를 사용합니다. 실행하면 다음과 같이 됩니다.

  • /app/digicert-pqc/demo/certs 디렉터리의 모든 파일은 삭제됩니다.
  • 퀀텀 컴퓨터에 대해 안전한 전체 하이브리드 인증서 체인(루트, 중간 및 서버 인증서를 포함)이 생성됩니다. 파일은 /app/digicert-pqc/demo/certs에 저장됩니다.
  • 레거시 암호화를 사용하여 인증서 체인을 확인합니다.
  • 퀀텀 컴퓨터에 대해 안전한 암호화를 사용하여 인증서 체인을 확인합니다.

데모 인증서를 생성하기 전에 현재 디렉터리가 /app/digicert-pqc/demo인지 확인합니다.

다음으로 스크립트를 실행합니다.

bash
cd /app/digicert-pqc/demo
./cert_gen_demo.sh

다음과 같은 결과가 있어야 합니다.

bash
engine "IQREngine" set.
XMSS key pair has been generated:
engine "IQREngine" set.
DILITHIUM key pair has been generated:
engine "IQREngine" set.
RAINBOW key pair has been generated:
engine "IQREngine" set.
engine "IQREngine" set.
engine "IQREngine" set.
Generating a EC private key
writing new private key to '/app/digicert-pqc/demo/certs/ecdsa_without_xmss_catalyst_mixed_chain_root_private_key.pem'
-----
Signature ok
subject=/C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Root
Getting Private key
engine "IQREngine" set.
Successfully created XMSS signature
Generating a EC private key
writing new private key to '/app/digicert-pqc/demo/certs/ecdsa_without_dilithium_catalyst_mixed_chain_intermediate_private_key.pem'
-----
engine "IQREngine" set.
Signature ok
subject=/C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=DigiCert PQC Test Intermediate CA
Getting CA Private Key
engine "IQREngine" set.
Successfully created XMSS signature
Generating a EC private key
writing new private key to '/app/digicert-pqc/demo/certs/ecdsa_without_rainbow_catalyst_mixed_chain_private_key.pem'
-----
engine "IQREngine" set.
Signature ok
subject=/C=US/ST=Utah/L=Lehi/O=DigiCert, Inc./OU=DigiCert PQC/CN=digicert.pqc
Getting CA Private Key
engine "IQREngine" set.
engine "IQREngine" set.
/app/digicert-pqc/demo/certs/rainbow_ecdsa_x509_catalyst_mixed_chain_server_certificate.pem: OK
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!!

데모 서버를 시작

생성된 데모 인증서를 테스트하려면 run_server.sh 스크립트를 실행합니다. 스크립트는 두 개(기본 또는 HTTP) 중 한 개 모드로 실행할 수 있습니다.

  • 기본 모드에서는 옵션 http 인수를 제외합니다.
  • HTTP 모드에서는 옵션 http 인수를 포함합니다.
모드 명령 설명
기본 ./run_server.sh OpenSSL s_client 유틸리티를 사용하여 연결을 수락하는 OpenSSL s_server을(를) 시작합니다.
HTTP ./run_server.sh http 포트 443번에서 HTTPS 연결을 수락하는 OpenSSL s_server을(를) 시작합니다.

실행하고 있는 s_server을(를) 중지하려면, 실행하고 있는 서버의 터미널 창에서 CTRL+C을(를) 누릅니다.

기본 모드에서 서버를 시작

기본 모드에서 데모 서버를 시작하기 전에 현재 디렉터리가 /app/digicert-pqc/demo이고 데모 인증서를 생성했는지 확인합니다.

다음으로 스크립트를 실행합니다.

bash
./run_server.sh

다음과 같은 결과가 있어야 합니다.

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

이제 s_server 유틸리티는 기본 모드에 있으며 s_client을(를) 통해 연결을 수락할 수 있습니다. 실행 중인 데모 서버에 연결하려면 기본 모드: run_client.sh 스크립트를 사용하여 연결을 참조하십시오.

HTTP 모드에서 서버를 시작

HTTP 모드에서 데모 서버를 시작하기 전에 현재 디렉터리가 /app/digicert-pqc/demo이고 데모 인증서를 생성했는지 확인합니다.

다음으로 http 인수를 포함하여 스크립트를 실행합니다.

bash
./run_server.sh http

다음과 같은 결과가 있어야 합니다.

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

이제 s_server 유틸리티는 HTTP 모드에서 실행 중이며 포트 443번에서 HTTPS를 통해 연결을 수락할 수 있습니다. 실행 중인 데모 서버에 연결하려면 cURL을 사용하여 연결을 참조하십시오.

실행 중인 데모 서버에 연결

run_server.sh 스크립트를 실행하여 데모 서버를 시작한 후에는 데모 서버에 연결하여 데모 인증서 체인을 테스트할 준비가 되었습니다.

실행 중인 데모 서버에 연결하는 방법은 서버를 시작하는 데 사용하는 모드에 따라 다릅니다.

기본 모드: run_client.sh 스크립트를 사용하여 연결

run_client.sh 스크립트는 OpenSSL s_client 유틸리티를 사용하여 실행 중인 s_server에 연결합니다. 이 스크립트를 실행하기 전에 run_server.sh 스크립트를 기본 모드에서 실행하여 s_server을(를) 시작했는지 확인합니다. 기본 모드에서 서버를 시작을 참조하십시오.

한 터미널 창에서 활성 s_server이(가) 기본 모드로 작동하는 상태에서 새 터미널 창을 시작합니다. 새 창에서 docker-compose exec(으)로 다른 bash 세션을 시작합니다.

bash
cd [path/to/dir/]digicert-pqc-docker
docker-compose exec pqc /bin/bash

데모 디렉터리로 탐색하여 run_client.sh 스크립트를 실행합니다.

bash
cd /app/digicert-pqc/demo
./run_client.sh

다음과 같은 결과가 있어야 합니다.

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

HTTP 모드: cURL을 사용하여 연결

cURL을 사용하여 실행 중인 s_server에 연결하려면, s_server을(를) HTTP 모드에서 시작했는지 확인합니다. HTTP 모드에서 서버를 시작을 참조하십시오.

한 터미널 창에서 활성 데모 서버가 HTTP 모드로 실행 중인 상태에서 먼저 새 터미널 창을 시작합니다. 새 창에서 docker-compose exec(으)로 다른 bash 세션을 시작합니다.

bash
cd [path/to/dir/]digicert-pqc-docker
docker-compose exec pqc /bin/bash

이제 cURL을 사용하여 실행 중인 서버에 연결합니다. 생성한 데모 인증서는 자체 서명이며 신뢰할 수 없는 인증서 경고가 발생할 것입니다. 이 경고를 무시하려면 -k 스위치를 포함해야 합니다.

bash
curl -k https://digicert.pqc/demo.html

다음과 같은 결과가 있어야 합니다.

bash
<html>
<head></head>
<body>
  <h1>Hello world! PQC FUTURE IS HERE!</h1>
</body>
</html>

그리고 활성 s_server이(가) 실행 중인 다른 터미널 창에서 다음과 같은 결과가 있어야 합니다.

bash
read from 0x556d44ced1e0 [0x556d44cf61a3] (5 bytes => 5 (0x5))
0000 - 16 03 01 02 00                                    .....
read from 0x556d44ced1e0 [0x556d44cf61a8] (512 bytes => 512 (0x200))
0000 - 01 00 01 fc 03 03 a3 d2-a7 5e 12 44 88 93 78 fd   .........^.D..x.
[...]
write to 0x556d44ced1e0 [0x556d44d05120] (94 bytes => 94 (0x5E))
0000 - 16 03 03 00 59 02 00 00-55 03 03 36 a7 a4 2d 57   ....Y...U..6..-W
[...]
write to 0x556d44ced1e0 [0x556d44cffc53] (4954 bytes => 4954 (0x135A))
0000 - 16 03 03 13 55 0b 00 13-51 00 13 4e 00 13 4b 30   ....U...Q..N..K0
[...]
write to 0x556d44ced1e0 [0x556d44d05120] (220 bytes => 220 (0xDC))
0000 - 16 03 03 00 d7 0c 00 00-d3 03 00 17 41 04 5a 06   ............A.Z.
[...]
write to 0x556d44ced1e0 [0x556d44d05120] (9 bytes => 9 (0x9))
0000 - 16 03 03 00 04 0e 00 00-00                        .........
read from 0x556d44ced1e0 [0x556d44cf61a3] (5 bytes => 5 (0x5))
0000 - 16 03 03 00 46                                    ....F
read from 0x556d44ced1e0 [0x556d44cf61a8] (70 bytes => 70 (0x46))
0000 - 10 00 00 42 41 04 c3 ce-7a a8 53 76 28 fc 55 c5   ...BA...z.Sv(.U.
[...]
0040 - 6b c7 1a 5e f5 0e                                 k..^..
read from 0x556d44ced1e0 [0x556d44cf61a3] (5 bytes => 5 (0x5))
0000 - 14 03 03 00 01                                    .....
read from 0x556d44ced1e0 [0x556d44cf61a8] (1 bytes => 1 (0x1))
0000 - 01                                                .
read from 0x556d44ced1e0 [0x556d44cf61a3] (5 bytes => 5 (0x5))
0000 - 16 03 03 00 28                                    ....(
read from 0x556d44ced1e0 [0x556d44cf61a8] (40 bytes => 40 (0x28))
0000 - 77 07 27 75 71 54 a9 bc-89 2f 69 df 45 6a 6c d8   w.'uqT.../i.Ejl.
[...]
write to 0x556d44ced1e0 [0x556d44d05120] (6 bytes => 6 (0x6))
0000 - 14 03 03 00 01 01                                 ......
write to 0x556d44ced1e0 [0x556d44d05120] (45 bytes => 45 (0x2D))
0000 - 16 03 03 00 28 78 f8 92-c1 cd d0 73 6b 72 6e 4c   ....(x.....skrnL
[...]
read from 0x556d44ced1e0 [0x556d44cf61a3] (5 bytes => 5 (0x5))
0000 - 17 03 03 00 6d                                    ....m
read from 0x556d44ced1e0 [0x556d44cf61a8] (109 bytes => 109 (0x6D))
0000 - 77 07 27 75 71 54 a9 bd-0c 8f e3 9c f3 90 35 a1   w.'uqT........5.
[...]
FILE:demo.html
write to 0x556d44ced1e0 [0x556d44cffc53] (117 bytes => 117 (0x75))
0000 - 17 03 03 00 70 78 f8 92-c1 cd d0 73 6c 14 de 14   ....px.....sl...
[...]
ACCEPT

축하합니다! 성공적으로 PQC Docker화 도구 키트 환경을 설정하여 테스트했습니다. 인증서 만들기 및 퀀텀 컴퓨터에 대해 안전한 연결 수립하기를 실험해 보세요.