Vue d'ensemble de l'architecture
Architecture du DuoKey PQC Scanner
Vue d'ensemble complète de l'architecture, des composants et des modes de fonctionnement du DuoKey PQC Scanner
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
Scanners d'infrastructure
E/S asynchronesScanners avancés
ExtensibleÉvaluation de la préparation PQC
Inventaire cryptographique complet avec notation de la vulnérabilité quantique et feuille de route de migration
Flux de l'architecture
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.
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.
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.
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.
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 :
| Domaine | Bibliothèques | Objectif |
|---|---|---|
| TLS et cryptographie | rustls, x509-parser, der, pem | TLS 1.2/1.3 en Rust pur, analyse de certificats X.509 et décodage DER/PEM |
| Runtime asynchrone | tokio | E/S asynchrones pour le réseau et l'analyse concurrente |
| CLI et sérialisation | clap, serde, serde_json, serde_yaml | Analyse de la ligne de commande et sérialisation JSON/YAML |
| Journalisation et gestion des erreurs | tracing, tracing-subscriber, anyhow, thiserror | Journalisation structurée et types d'erreurs applicatifs et de bibliothèque flexibles |
| Système de fichiers et parallélisme | walkdir, rayon | Parcours récursif de répertoires avec parallélisme de données |
| Capture de paquets réseau | pcap, pnet | Capture de paquets basée sur libpcap et analyse de paquets |
| Indication de progression | indicatif, ratatui | Barres 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 :
| Domaine | Responsabilité |
|---|---|
| CLI | Analyse de la ligne de commande et répartition des commandes |
| Core | Détection d'algorithmes cryptographiques, notation du risque quantique, opérations X.509 et base de données des algorithmes cryptographiques |
| Scanners | Les quatre modes d'analyse -- agent système, système de fichiers, TLS/domaine et capture de paquets réseau |
| Analyseurs | Analyseurs de formats pour JKS, PKCS#12, PEM, DER et fichiers de configuration nginx/apache |
| Sortie | Formateurs de sortie -- JSON, YAML, SARIF (pour CI/CD) et terminal |
| Utilitaires | Journalisation, 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 :
1. Mode Agent - Scanner système
Découverte complète d'actifs cryptographiques au niveau système sur l'hôte local. Analyse les magasins de certificats, découvre les magasins de clés, inspecte les processus en cours d'exécution. Nécessite des privilèges élevés.
2. Mode Système de fichiers - Scanner de fichiers et magasins de clés
Recherche récursive de certificats et de magasins de clés dans des répertoires spécifiés. Prend en charge JKS, PKCS#12, PEM, DER et les fichiers de configuration. Traitement parallèle avec Rayon.
3. Mode Domaine - Scanner TLS/SSL
Analyse de connexion TLS externe pour les domaines et les adresses IP. Test TLS multi-versions, extraction de la chaîne de certificats, énumération des suites de chiffrement.
4. Mode Réseau - Capture de paquets passive
Analyse passive du trafic réseau pour l'inspection des négociations TLS. Capture basée sur libpcap, réassemblage de flux TCP, statistiques en temps réel avec TUI.
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 :
| Facteur | Pondération |
|---|---|
| Risque quantique | 30 % |
| Criticité métier | 25 % |
| Sensibilité des données | 20 % |
| Exposition | 10 % |
| Conformité | 10 % |
| Complexité de migration | 3 % |
| Coût de migration | 2 % |
Le score obtenu est mappé à l'un des cinq niveaux de priorité :
| Priorité | Signification | Action recommandée |
|---|---|---|
| P0 | Critique | Action immédiate requise |
| P1 | Élevé | Action sous 3 mois |
| P2 | Moyen | Action sous 6 mois |
| P3 | Faible | Action sous 12 mois |
| P4 | Info | Surveiller |
Algorithmes vulnérables détectés
| Algorithme | Taille de clé | Score de risque quantique | Gravité |
|---|---|---|---|
| RSA | < 2048 bits | 10/10 | Critique |
| RSA | 2048 bits | 8/10 | Élevé |
| RSA | 3072 bits | 6/10 | Moyen |
| RSA | 4096 bits | 4/10 | Moyen |
| ECDSA | P-256 | 8/10 | Élevé |
| ECDSA | P-384 | 7/10 | Élevé |
| ECDSA | P-521 | 6/10 | Moyen |
| DSA | Toute | 9/10 | Critique |
| 3DES | N/A | 10/10 | Critique |
| RC4 | N/A | 10/10 | Critique |
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
| Plateforme | Statut | Remarques |
|---|---|---|
| Linux | Prise en charge complète | Plateforme privilégiée, toutes les fonctionnalités |
| macOS | Prise en charge complète | Intel et Apple Silicon |
| Windows | Prise en charge complète | Windows 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
| Mode | Privilège requis |
|---|---|
| Mode Agent | Nécessite root/administrateur pour un accès système complet |
| Mode Réseau | Nécessite CAP_NET_RAW ou équivalent |
| Mode Système de fichiers | Les privilèges d'utilisateur standard suffisent |
| Mode Domaine | Les privilèges d'utilisateur standard suffisent |
Protection des données
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.