Architecture des modules
Architecture des modules
Une vue de haut niveau des modules fonctionnels du scanner et de la responsabilité de chacun
Vue d'ensemble des modules
Le scanner est organisé en un petit ensemble de domaines fonctionnels qui forment un pipeline clair — de la ligne de commande, à travers l'analyse (scan) et l'évaluation, jusqu'à la sortie formatée.
| Module | Responsabilité |
|---|---|
| Interface en ligne de commande | Analyser les arguments, valider les entrées, charger la configuration, initialiser la journalisation et déléguer à un mode d'analyse |
| Analyse principale | Détecter les algorithmes cryptographiques et calculer les scores de risque |
| Scanners | Implémenter les modes d'analyse (agent, système de fichiers, domaine, réseau) |
| Analyseurs | Lire les formats pris en charge de certificats, de magasins de clés et de configuration |
| Sortie | Restituer les résultats au format JSON, YAML, SARIF ou en rapport terminal |
| Utilitaires | Journalisation, gestion des erreurs et aides spécifiques à la plateforme |
Analyse principale
Identifie l'algorithme cryptographique utilisé par un certificat et évalue sa vulnérabilité quantique. Elle détermine la famille d'algorithme et la taille de clé, puis renvoie une valeur de risque quantique. Les catégories reconnues incluent RSA, ECDSA, DSA, Ed25519, 3DES, RC4, les algorithmes post-quantiques (PQC) et une catégorie « inconnu » par défaut pour tout ce qu'elle ne peut pas classer.
Transforme chaque constat en un score de risque unique assorti d'un niveau de priorité dérivé (de P0 Critique à P4 Info) et d'une brève ventilation expliquant comment le score a été obtenu. Le modèle détaillé est documenté dans Notation QRS.
Lorsqu'un certificat est analysé, les métadonnées suivantes sont extraites et utilisées tout au long du reste du pipeline :
| Champ | Description |
|---|---|
| Subject | Nom distinctif du sujet du certificat |
| Issuer | Nom distinctif de l'émetteur |
| Serial | Numéro de série du certificat |
| Valide de / jusqu'à | Période de validité |
| Algorithm | Algorithme cryptographique détecté |
| Taille de clé | Taille de la clé publique |
| Vulnérable au quantique | Indique si le certificat est vulnérable à une attaque quantique |
Une liste de référence des algorithmes connus (indexée par identifiant d'objet) enregistre le nom de chaque algorithme, sa catégorie, sa vulnérabilité quantique et son statut d'obsolescence.
Scanners
Agent
Effectue une analyse système complète de l'hôte local : il inspecte les magasins de certificats du système d'exploitation et, sauf désactivation, examine également les processus en cours d'exécution et le système de fichiers (avec une gestion dédiée des magasins de certificats pour Linux, Windows et macOS). Tous les éléments découverts sont agrégés en un seul résultat.
Système de fichiers
Parcourt récursivement une arborescence de répertoires (avec une profondeur configurable et un suivi facultatif des liens symboliques) et inspecte les fichiers en parallèle, en acheminant chacun vers le bon analyseur selon son type : PEM/CRT/CER, DER, PKCS#12 (.p12/.pfx) et magasins de clés Java (.jks/.jceks). Les fichiers non reconnus sont ignorés.
Domaine
Se connecte à un hôte et un port cibles via TLS, récupère la chaîne de certificats présentée, analyse chaque certificat et peut énumérer les suites de chiffrement prises en charge par le serveur.
Réseau
Capture passivement le trafic réseau et réassemble les flux TCP pour extraire les négociations TLS ; la capture et l'analyse s'exécutent simultanément jusqu'à ce qu'une durée configurée s'écoule ou que l'analyse soit interrompue. Les certificats observés dans les négociations sont analysés et rapportés.
Analyseurs
Sortie
Utilitaires
Modèle de données
Une analyse produit un résultat unique qui regroupe :
- Métadonnées d'analyse — version du scanner, mode d'analyse, date, nom d'hôte et durée.
- Constats — chacun décrit un actif découvert : un identifiant, son type (certificat ou magasin de clés), son emplacement, les informations de certificat extraites et son évaluation de risque.
- Statistiques — décomptes agrégés sur l'ensemble des constats.