{
"regles": [
{
"id": "PQC-CASSE-MD5-01",
"categorie": "casse",
"theme": "hachage_casse",
"niveau": "haute",
"description": "Fonction de hachage MD5 — cryptographiquement cassée (collisions praticables depuis 2004).",
"motif": "(?i)\\bmd5",
"action_recommandee": "Remplacer par SHA-3 ou BLAKE3 pour tout usage d'intégrité ou de sécurité ; MD5 ne doit plus servir qu'à un éventuel checksum non-sécuritaire explicitement documenté comme tel."
},
{
"id": "PQC-CASSE-SHA1-01",
"categorie": "casse",
"theme": "hachage_casse",
"niveau": "haute",
"description": "Fonction de hachage SHA-1 — cryptographiquement cassée (collisions démontrées publiquement depuis 2017).",
"motif": "(?i)\\bsha-?1(?!\\d)",
"action_recommandee": "Remplacer par SHA-3 ou BLAKE3."
},
{
"id": "PQC-CASSE-RC4-01",
"categorie": "casse",
"theme": "chiffrement_casse",
"niveau": "haute",
"description": "Chiffrement de flux RC4 — cryptographiquement cassé, biais statistiques exploitables.",
"motif": "(?i)\\brc4",
"action_recommandee": "Remplacer par ChaCha20-Poly1305 ou AES-256-GCM."
},
{
"id": "PQC-CASSE-3DES-01",
"categorie": "casse",
"theme": "chiffrement_casse",
"niveau": "haute",
"description": "Chiffrement 3DES/DES-EDE3 — bloc de 64 bits, obsolète (attaque Sweet32).",
"motif": "(?i)\\b3des|\\bdes-ede3",
"action_recommandee": "Remplacer par AES-256-GCM ou ChaCha20-Poly1305."
},
{
"id": "PQC-CLASSIQUE-RSA-01",
"categorie": "classique_asymetrique",
"theme": "asymetrique_pre_quantique",
"niveau": "info",
"description": "Cryptographie RSA — vulnérable à terme à un ordinateur quantique suffisamment puissant (algorithme de Shor).",
"motif": "(?i)\\brsa",
"action_recommandee": "Évaluer une migration hybride vers ML-KEM (échange de clé) et/ou ML-DSA (signature) en complément, selon le calendrier de menace « harvest now, decrypt later »."
},
{
"id": "PQC-CLASSIQUE-ECDSA-01",
"categorie": "classique_asymetrique",
"theme": "asymetrique_pre_quantique",
"niveau": "info",
"description": "Signature ECDSA — vulnérable à terme à un ordinateur quantique suffisamment puissant.",
"motif": "(?i)\\becdsa",
"action_recommandee": "Évaluer une migration hybride vers ML-DSA en complément."
},
{
"id": "PQC-CLASSIQUE-ECDH-01",
"categorie": "classique_asymetrique",
"theme": "asymetrique_pre_quantique",
"niveau": "info",
"description": "Échange de clé ECDH — vulnérable à terme à un ordinateur quantique suffisamment puissant.",
"motif": "(?i)\\becdh",
"action_recommandee": "Évaluer une migration hybride vers ML-KEM en complément."
},
{
"id": "PQC-CLASSIQUE-DH-01",
"categorie": "classique_asymetrique",
"theme": "asymetrique_pre_quantique",
"niveau": "info",
"description": "Échange de clé Diffie-Hellman classique — vulnérable à terme à un ordinateur quantique suffisamment puissant.",
"motif": "(?i)diffie.?hellman",
"action_recommandee": "Évaluer une migration hybride vers ML-KEM en complément."
},
{
"id": "PQC-CLE-SYMETRIQUE-FAIBLE-01",
"categorie": "cle_symetrique_faible",
"theme": "symetrique_taille_reduite",
"niveau": "moyenne",
"description": "Taille de clé symétrique réduite (AES-128) — la recommandation CNSA 2.0 pour la résistance à un adversaire post-quantique (algorithme de Grover) est AES-256.",
"motif": "(?i)aes-?128",
"action_recommandee": "Migrer vers AES-256 (ou ChaCha20-Poly1305 avec clé 256 bits) pour aligner sur CNSA 2.0."
},
{
"id": "PQC-NATIF-01",
"categorie": "pqc",
"theme": "post_quantique",
"niveau": "info",
"description": "Primitive post-quantique détectée (ML-KEM, ML-DSA, Kyber, Dilithium, Falcon, SPHINCS+, CRYSTALS ou mention explicite CNSA 2.0 / post-quantique).",
"motif": "(?i)\\bml[-_]?kem|\\bml[-_]?dsa|\\bkyber|\\bdilithium|\\bcrystals|\\bfalcon(?:-?\\d)|\\bsphincs|post-?quantiqu|post-?quantum|cnsa\\s*2\\.0",
"action_recommandee": "Aucune — signalement informatif, confirme une posture post-quantique déjà en place."
}
],
"extensions_scannees": [
".rs", ".py", ".js", ".ts", ".go", ".java", ".rb", ".php", ".c", ".cpp",
".toml", ".yaml", ".yml"
],
"dossiers_ignores": [
"target", "node_modules", ".git", "__pycache__", "dist", "build",
"venv", ".venv", ".mypy_cache", ".pytest_cache", "vendor"
]
}