Aller au contenu principal

Vue d'ensemble de l'architecture

S'applique à :
PQC ScannerRustLinuxmacOSWindows

Introduction​

Le DuoKey PQC Scanner est un outil complet d'évaluation de la préparation à la cryptographie post-quantique (PQC) développé en Rust pour la découverte et l'analyse d'actifs cryptographiques haute performance et multiplateformes.

Architecture de haut niveau​

Architecture du scanner PQC

CLI Rust haute performance pour la découverte cryptographique post-quantique et l'évaluation des risques

Ffilesystem
Ddomain
Aagent
Nnetwork
Ssourcecode
Ccompliance
Wserve
Ici
Nservicenow
Bcbom
Clap 4.5Tokio Async10 sous-commandes
Répartition des commandes
▼

Scanners d'infrastructure

E/S asynchrones
Système de fichiers
PEM, DER, JKS, PKCS#12
Domaine / TLS
Capture du handshake Rustls
Agent
Inventaire à l'échelle du système
Réseau
Capture passive de paquets
+
SCAN

Scanners avancés

Extensible
Code source
150+ règles, 8 langages
KMS cloud
AWS, Azure, GCP
Clés SSH
Algorithmes de clés d'hôte
Conformité
8+ référentiels
Données cryptographiques brutes
▼
Couche d'analyse syntaxique
PEM
x509-parser
DER
x509-parser
PKCS#12
x509-parser
Win Store
schannel
CBOM
serde
▼
Détecteur cryptographique
Identification des algorithmes via recherche d'OID
RSAECDSADSAEd25519PQC
Évaluateur de risques
Score pondéré de vulnérabilité quantique à 7 facteurs
P0
P1
P2
P3
P4
Résultats notés
▼
Formateurs de sortie
{}
JSON
Lisible par machine
Ym
YAML
Lisible par l'humain
<>
HTML
Rapports pour les parties prenantes
>>_
Terminal
Sortie couleur ANSI
Cd
CycloneDX
Export CBOM 1.7
Sr
SARIF
Intégration CI/CD
Rapport généré
▼

Évaluation de la préparation PQC

Inventaire cryptographique complet avec notation de la vulnérabilité quantique et feuille de route de migration

Découverte+Score de risque= Prêt pour le quantique
Binaire unique
Exécutable natif par plateforme, sans dépendances d'exécution
Asynchrone d'abord
Tokio pour les E/S, Rayon pour les tâches gourmandes en CPU
Zéro OpenSSL
TLS en Rust pur via Rustls, sans dépendances C
Scanners modulaires
Chaque commande est indépendante et extensible

Flux de l'architecture​

1

Point d'entrée CLI (Clap 4.5)

Analyse l'une des 10 sous-commandes (filesystem, domain, agent, network, serve, ci, sourcecode, compliance, servicenow, cbom). Valide les entrées et délègue au scanner correspondant.

2

Exécution du scanner

Le scanner sélectionné collecte les données cryptographiques brutes -- négociations TLS, fichiers de certificats, motifs dans le code source, métadonnées de KMS cloud ou clés d'hôte SSH. Les scanners utilisent Tokio pour les E/S asynchrones et Rayon pour le parcours de fichiers parallélisé sur le CPU.

3

Couche d'analyse (PEM / DER / PKCS#12)

Les données brutes sont transmises à des analyseurs spécifiques au format qui extraient les métadonnées de certificat, les algorithmes de clé et les schémas de signature à l'aide des crates x509-parser et schannel.

4

Notation du risque (0-10)

Chaque constat analysé passe par le moteur de notation du risque, qui attribue un score de risque quantique de 0 à 10, le mappe à un niveau de gravité (de Critique à Info), lui affecte une priorité (P0-P4) et génère des recommandations.

5

Formatage de la sortie

Le ScanResult noté est sérialisé par le formateur de sortie choisi -- JSON, YAML, HTML, terminal ANSI ou CBOM CycloneDX 1.7 -- et écrit dans un fichier ou sur la sortie standard.

Pile technologique​

Rust (stable, dernière version)

  • Sécurité mémoire sans ramasse-miettes
  • Abstractions à coût nul
  • Concurrence sans crainte
  • Prise en charge multiplateforme (Linux, macOS, Windows)

Le scanner s'appuie sur un ensemble de bibliothèques Rust bien établies, regroupées selon le rôle qu'elles jouent :

DomaineBibliothèquesObjectif
TLS et cryptographierustls, x509-parser, der, pemTLS 1.2/1.3 en Rust pur, analyse de certificats X.509 et décodage DER/PEM
Runtime asynchronetokioE/S asynchrones pour le réseau et l'analyse concurrente
CLI et sérialisationclap, serde, serde_json, serde_yamlAnalyse de la ligne de commande et sérialisation JSON/YAML
Journalisation et gestion des erreurstracing, tracing-subscriber, anyhow, thiserrorJournalisation structurée et types d'erreurs applicatifs et de bibliothèque flexibles
Système de fichiers et parallélismewalkdir, rayonParcours récursif de répertoires avec parallélisme de données
Capture de paquets réseaupcap, pnetCapture de paquets basée sur libpcap et analyse de paquets
Indication de progressionindicatif, ratatuiBarres de progression et interface terminal utilisée en mode réseau

Architecture des modules​

Le scanner est organisé en domaines fonctionnels distincts, chacun ayant une responsabilité précise :

DomaineResponsabilité
CLIAnalyse de la ligne de commande et répartition des commandes
CoreDétection d'algorithmes cryptographiques, notation du risque quantique, opérations X.509 et base de données des algorithmes cryptographiques
ScannersLes quatre modes d'analyse -- agent système, système de fichiers, TLS/domaine et capture de paquets réseau
AnalyseursAnalyseurs de formats pour JKS, PKCS#12, PEM, DER et fichiers de configuration nginx/apache
SortieFormateurs de sortie -- JSON, YAML, SARIF (pour CI/CD) et terminal
UtilitairesJournalisation, gestion des erreurs et aides spécifiques au système d'exploitation

Quatre modes d'analyse​

Le scanner fonctionne selon quatre modes distincts, chacun optimisé pour des scénarios de découverte spécifiques :

Algorithme de notation du risque quantique​

Le scanner utilise un système de notation multicritère qui combine plusieurs facteurs pondérés en un score final de 0 à 100, ensuite mappé à un niveau de priorité. Les facteurs et leurs pondérations sont :

FacteurPondération
Risque quantique30 %
Criticité métier25 %
Sensibilité des données20 %
Exposition10 %
Conformité10 %
Complexité de migration3 %
Coût de migration2 %

Le score obtenu est mappé à l'un des cinq niveaux de priorité :

PrioritéSignificationAction recommandée
P0CritiqueAction immédiate requise
P1ÉlevéAction sous 3 mois
P2MoyenAction sous 6 mois
P3FaibleAction sous 12 mois
P4InfoSurveiller

Algorithmes vulnérables détectés

AlgorithmeTaille de cléScore de risque quantiqueGravité
RSA< 2048 bits10/10Critique
RSA2048 bits8/10Élevé
RSA3072 bits6/10Moyen
RSA4096 bits4/10Moyen
ECDSAP-2568/10Élevé
ECDSAP-3847/10Élevé
ECDSAP-5216/10Moyen
DSAToute9/10Critique
3DESN/A10/10Critique
RC4N/A10/10Critique

Formats de sortie​

Le scanner prend en charge plusieurs formats de sortie pour différents cas d'usage :

Le format lisible par machine par défaut. Chaque rapport JSON contient les métadonnées d'analyse, la liste des constats, un résumé du risque et un ensemble de recommandations.

Caractéristiques de performance​

Extensibilité

  • Points de terminaison TLS : peut analyser des milliers par heure
  • Système de fichiers : traite efficacement plus de 100 000 fichiers grâce à l'analyse parallèle
  • Mémoire : faible empreinte mémoire (<100 Mo typique)
  • CPU : multithreadé pour des performances optimales

Tests de performance

L'analyse du système de fichiers est très efficace : lors de tests internes, le scanner traite environ 1 000 certificats PEM en environ 50 millisecondes.

Prise en charge multiplateforme​

PlateformeStatutRemarques
LinuxPrise en charge complètePlateforme privilégiée, toutes les fonctionnalités
macOSPrise en charge complèteIntel et Apple Silicon
WindowsPrise en charge complèteWindows 10/11, Server 2019+

Capacités d'intégration​

Le scanner peut être intégré comme bibliothèque. Un appelant configure une analyse -- en choisissant le mode (par exemple, domaine), les cibles et le format de sortie --, l'exécute et récupère les résultats, y compris le score global de préparation PQC.

Considérations de sécurité​

Exigences de privilèges

ModePrivilège requis
Mode AgentNécessite root/administrateur pour un accès système complet
Mode RéseauNécessite CAP_NET_RAW ou équivalent
Mode Système de fichiersLes privilèges d'utilisateur standard suffisent
Mode DomaineLes privilèges d'utilisateur standard suffisent

Protection des données

Important

Les clés privées ne sont jamais extraites ni exportées. Seules les métadonnées et les informations publiques sont collectées. Toutes les communications réseau sont chiffrées (TLS 1.3). La journalisation d'audit est activée pour toutes les opérations.

Étapes suivantes​