Guide de la boîte à outils dockerisés PQC

Ce guide porte sur la boîte à outils dockerisés PQC. Pour obtenir des instructions sur la mise en place de la boîte à outils PQC de DigiCert, consultez le guide de configuration de la boîte à outils PQC.

Introduction

La boîte à outils de cryptographie post-quantique (PQC) de DigiCert contient tout ce dont vous avez besoin pour créer un certificat TLS hybride. Ce certificat hybride utilise un algorithme de chiffrement post-quantique associé à un algorithme de chiffrement classique. Ainsi, vous pouvez tester la viabilité du déploiement de certificats TLS hybrides post-quantiques tout en bénéficiant d’une rétrocompatibilité complète.

Le présent guide vous aide à utiliser la boîte à outils dockerisés PQC de DigiCert pour exécuter les tâches suivantes :

  • Démarrez le conteneur Docker en utilisant docker-compose.
  • Entrez le conteneur PQC en cours d'exécution.
  • Exécutez les scripts de démonstration inclus pour tester des exemples de certificats PQC.
  • Générer des clés cryptographiques post-quantiques.
  • Créer une chaîne de certificats hybrides complète, comprenant les certificats racine, intermédiaire et serveur.
  • Tester les certificats en exécutant les utilitaires s_server et s_client d’OpenSSL.

La boîte à outils dockerisés PQC de DigiCert est disponible pour tous les clients Secure Site Pro sous forme de ressource téléchargeable. Découvrez les éléments inclus avec chaque certificat Secure Site Pro.

Contenus de la boîte à outils dockerisés PQC

La boîte à outils dockerisés PQC de DigiCert contient les fichiers suivants :

  • fichier Dockerfile
  • docker-compose.yml
  • OpenSSL compilé corrigé avec ISARA Catalyst OpenSSL Connector
  • Certificats de démonstration et fichiers de configuration
  • Scripts de dépistage pour tester la génération et la fonctionnalité des certificats

Conditions préalables

Avant d’utiliser ce guide, assurez-vous que les conditions préalables suivantes sont remplies :

Vérifiez votre version du Docker

Avant de télécharger la boîte à outils dockerisée PQC, vérifiez que Docker Engine et Docker Compose sont installés sur votre système.

Si ces commandes ne sont pas reconnues, cela signifie que Docker n'est pas installé sur votre système. Consultez la page Conditions préalables pour obtenir des informations sur l'installation de Docker sur votre système.

Linux/macOS

Ouvrez une fenêtre du point de terminaison et exécutez docker --version et docker-compose --version. Le résultat devrait être similaire à celui présenté ci-dessous.

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

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

Windows

Ouvrez une invite de commande ou une fenêtre PowerShell et exécutez docker --version. Le résultat devrait être similaire à celui présenté ci-dessous.

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

Télécharger et extraire la boîte à outils dockerisés PQC

  1. Connectez-vous à votre compte CertCentral.
  2. Dans le menu latéral, cliquez sur Certificates > Orders (Certificats > Commandes).
  3. Sur la page « Orders » (Commandes) repérez votre commande de certificat Secure Site Pro et cliquez sur le numéro.
  4. Sur la page de détails de la commande du certificat, cliquez sur PQC toolkit (Boîte à outils PQC).
  5. Sur la page Cryptographie post-quantique (PQC), cliquez sur Download Docker support files (Télécharger les fichiers de prise en charge Docker) et enregistrez le fichier zip.
  6. Localisez le fichier zip sauvegardé (DigiCert-PQC.zip) et extrayez son contenu.

Créer et exécuter le conteneur de la boîte à outils PQC

Avec la boîte à outils dockerisés du PQC téléchargée et extraite, vous êtes prêt à construire le conteneur en utilisant docker-compose.

Ouvrez une fenêtre du point de terminaison et rendez-vous sur le répertoire digicert-pqc-docker extrait.

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

Construisez alors le conteneur de la boîte à outils PQC. Cela permet de télécharger toutes les dépendances des images et de configurer l'environnement du conteneur.

Si c'est la première fois que vous exécutez la commande, il se peut que vous deviez attendre que l'image Ubuntu requise soit téléchargée depuis le Docker Hub.

bash
docker-compose build

Vous êtes maintenant prêt à lancer le conteneur de la boîte à outils PQC en mode détaché.

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

Félicitations ! Le conteneur de la boîte à outils dockerisés du PQC est opérationnel.

Pour accéder à l'environnement du conteneur et commencer à expérimenter, consultez la page Entrer dans le conteneur.

Entrer dans le conteneur

Pour expérimenter les scripts de démonstration inclus et l'application OpenSSL modifiée, vous devez d'abord entrer dans l'environnement du conteneur.

Utilisez docker-compose exec pour démarrer une session de dépistage à l'intérieur du conteneur en cours d'exécution.

bash
docker-compose exec pqc /bin/bash

Arbre de répertoires

La première fois que vous entrez dans le conteneur, vous vous trouvez dans le répertoire /app. Ce répertoire contient l'ensemble des outils et des ressources complémentaires PQC. Le tableau suivant décrit les sous-répertoires et les fichiers importants qui se trouvent dans le répertoire /app.

Répertoire/fichier Description
digicert-pqc/ Répertoire principal de la boîte à outils.
 certs/ Répertoire pour stocker les certificats générés.
 connector/ ISARA Catalyst OpenSSL Connector resources.
 demo/ Scripts et ressources de démonstration.
  certs/ Répertoire pour stocker les certificats de démonstration générés.
  configs/ Contient les fichiers de configuration des certificats qui sont utilisés lors de la génération des certificats de démonstration.
   demo.html Fichier HTML qui peut être servi via le script run_server.sh lorsqu'il est exécuté en mode serveur web.
   cert_gen_demo.sh Génère et teste une chaîne complète de certificats à sécurité quantique à l'aide de fichiers de configuration situés dans /app/digicert-pqc/demo/configs.
Consultez la page Générer des certificats de démonstration.
   run_client.sh Se connecte à un s_server en cours d'exécution en utilisant l'utilitaire s_client d'OpenSSL pour tester la fonctionnalité du certificat.
Consultez la page Mode de base : Connexion à l'aide du script run_client.sh..
   run_server.sh Démarre un serveur web de base en utilisant l'utilitaire s_server OpenSSL et charge les certificats situés dans /app/digicert-pqc/demo/certs.
Consultez la page Démarrer un serveur de démo.
 pqpki-openssl-1.0.2r/ OpenSSL compilé version 1.0.2r modifié en utilisant le correcteur ISARA OpenSSL Connector.
ressources/ Fichiers de ressources supplémentaires de la boîte à outils PQC.

Générer des certificats de démonstration

Pour personnaliser les valeurs des champs du certificat, modifiez les fichiers de configuration du certificat (situés dans /app/digicert-pqc/demo/configs).

Pour générer une chaîne de certificats complète résistants aux menaces quantiques, utilisez le script cert_gen_demo.sh (situé dans /app/digicert-pqc/demo). Une fois exécuté, voici ce qui se passe :

  • Tous les fichiers dans le répertoire /app/digicert-pqc/demo/certs sont supprimés.
  • Une chaîne de certificats complète résistants aux menaces quantiques (y compris les certificats racine, intermédiaire et serveur) est générée. Les fichiers sont enregistrés dans le répertoire /app/digicert-pqc/demo/certs.
  • La chaîne de certificats est vérifiée à l'aide de la cryptographie existante.
  • La chaîne de certificats est vérifiée à l'aide d'une cryptographie résistante aux menaces quantiques.

Avant de générer des certificats de démonstration, assurez-vous que vous êtes dans le répertoire /app/digicert-pqc/demo.

Puis, exécutez le script.

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

Le résultat suivant s'affichera :

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!!

Démarrer un serveur de démo

Pour tester les certificats de démo générés, exécutez le script run_server.sh. Ce script peut être exécuté selon l'un des deux modes suivants : de base ou HTTP.

  • Pour le mode de base, omettez l'argument http facultatif.
  • Pour le mode HTTP, incluez l'argument http facultatif.
Mode Commande Description
de base ./run_server.sh Démarre un s_server OpenSSL qui accepte les connexions utilisant l'utilitaire s_client OpenSSL.
HTTP ./run_server.sh http Démarre un s_server OpenSSL qui accepte les connexions HTTPS sur le port 443.

Pour arrêter une connexion s_server, dans la fenêtre du terminal qui exécute le serveur, appuyez sur CTRL+C.

Démarrer un serveur en mode de base

Avant de démarrer un serveur de démonstration en mode de base, assurez-vous que vous êtes dans le répertoire /app/digicert-pqc/demo et que vous avez généré les certificats de démonstration.

Puis, exécutez le script.

bash
./run_server.sh

Le résultat suivant s'affichera :

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

L'utilitaire s_server fonctionne désormais en mode de base et peut accepter des connexions via s_client. Pour vous connecter à un serveur de démonstration en cours d'exécution, consultez la page Mode de base : Connexion à l'aide du script run_client.sh.

Démarrer un serveur en mode HTTP

Avant de démarrer un serveur de démonstration en mode HTTP, assurez-vous que vous êtes dans le répertoire /app/digicert-pqc/demo et que vous avez généré les certificats de démonstration.

Ensuite, exécutez le script et incluez l'argument http.

bash
./run_server.sh http

Le résultat suivant s'affichera :

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

L'utilitaire s_server fonctionne désormais en mode HTTP et peut accepter des connexions via HTTPS sur le port 443. Pour vous connecter à un serveur de démonstration en cours d'exécution, consultez la page Connexion à l’aide de la commande cURL.

Se connecter à un serveur de démonstration en cours d'exécution

Après avoir exécuté le script run_server.sh pour lancer un serveur de démonstration, vous êtes prêt à vous y connecter et à tester la chaîne de certificats de démonstration.

Votre connexion au serveur de démonstration en cours d'exécution dépend du mode utilisé pour démarrer le serveur.

Mode de base : Connexion à l'aide du script run_client.sh.

Le script run_client.sh utilise l'utilitaire s_client OpenSSL pour se connecter à un s_server en cours d'exécution. Avant d'exécuter ce script, assurez-vous que vous avez lancé un s_server en exécutant le script run_server.sh en mode de base. Consultez la page Démarrer un serveur en mode de base.

Avec un mode de base actif s_server en cours d'exécution dans l'une de vos fenêtres du point de terminaison, ouvrez une nouvelle fenêtre du point de terminaison. Dans la nouvelle fenêtre, démarrez une autre session de dépistage avec docker-compose exec.

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

Naviguez dans le répertoire de démonstration et exécutez le script run_client.sh.

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

Le résultat suivant s'affichera :

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)
---

Et dans votre autre fenêtre du point de terminaison avec le s_server actif en cours d'exécution, le résultat suivant s'affichera :

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

Mode HTTP : Connexion à l’aide de la commande cURL.

Pour utiliser la commande cURL afin de se connecter à un s_server en cours d'exécution, assurez-vous que vous avez lancé un s_server en mode HTTP. Consultez la page Démarrer un serveur en mode HTTP.

Avec un serveur de démonstration actif fonctionnant en mode HTTP dans l'une de vos fenêtres du point de terminaison, la première chose à faire est d'ouvrir une nouvelle fenêtre de point de terminaison. Dans la nouvelle fenêtre, démarrez une autre session de dépistage avec docker-compose exec.

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

À présent, connectez-vous au serveur en cours d'exécution à l'aide de la commande cURL. Les certificats de démonstration que vous avez générés sont auto-signés et déclenchent un avertissement de non-fiabilité du certificat. Pour ignorer ces avertissements, vous devez inclure le commutateur -k.

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

Le résultat suivant s'affichera :

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

Et dans votre autre fenêtre du point de terminaison avec le s_server actif en cours d'exécution, le résultat suivant s'affichera :

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

Félicitations ! Vous avez configuré et testé avec succès votre environnement de boîte à outils dockerisés PQC. Vous pouvez expérimenter librement la création de certificats et l'établissement de connexions résistantes aux menaces quantiques.