An open-source PKCS#11 v3.2 cryptographic module under Simorgh Labs
English version:
AVA_VAN.md. In case of discrepancy, the English version prevails.
TOE : FreeHSM Cryptographic Module (la version que vous avez construite ; v1.0.0-FIPS, dans les brouillons antérieurs, était un espace réservé et n’a jamais existé comme release)
Classe CC : AVA (Évaluation de vulnérabilités) — augmenté à AVA_VAN.5 (analyse méthodique avancée)
Potentiel d’attaque cible : Au-dessus du Haut (Beyond-High)
Auteur : première passe interne ; ré-analyse indépendante par labo requise avant soumission.
On suit la CEM (Common Evaluation Methodology) §10 et on applique le scoring à quatre critères de la CEM Annexe B (table B.3) :
Total < 25 = pratique, < 35 = modéré, < 45 = haut, ≥ 45 = au-dessus du haut. AVA_VAN.5 exige la résistance à toutes les attaques notées < 45.
.so, aux logs d’audit et aux tokens. L’accès en écriture est contraint par les permissions du filesystem.Le document anglais (AVA_VAN.md §3) détaille 9 vulnérabilités candidates avec scoring CEM complet pour chaque. Synthèse en français :
| # | Vulnérabilité | Score | Défense principale | Risque résiduel |
|---|---|---|---|---|
| 3.1 | Canal temporel sur vérification PIN | 6 (pratique) | Throttle avant PBKDF2 + fhsm_ct_memcmp |
Négligeable |
| 3.2 | Cache attack T-tables AES | 18 (modéré) | OpenSSL FIPS provider utilise AES-NI constant-time | Négligeable |
| 3.3 | RSA-PSS branchement sur secret | 21 (modéré) | BN_FLG_CONSTTIME dans OpenSSL FIPS |
Négligeable |
| 3.4 | Exfiltration cold-boot DEK | 9 (pratique) | Secure heap mlock + zéroize + PR_SET_DUMPABLE=0 |
Hors-OE (physique) |
| 3.5 | Injection de faute sur intégrité | 30 (haut) | Compare constant-time + état ERROR latché 2x | Acceptable Niveau 1 |
| 3.6 | Injection dans le log d’audit | 4 (pratique) | Refus de bytes hors safe-ASCII + chaîne HMAC | Négligeable |
| 3.7 | Brute-force PIN | 12 (pratique) | PBKDF2 200k iter + throttle exponentiel + lockout | Acceptable PIN ≥ 8c |
| 3.8 | Compromission de l’état DRBG | 17 (modéré) | Provider FIPS secure heap + dumpable=0 + reseed | Négligeable |
| 3.9 | Downgrade hybride | 9 (pratique) | Combiner hashe ct_pq → tampering échoue MAC en aval |
Négligeable ; mécanisme désannoncé depuis #17, non atteignable par l’API |
Toutes les vulnérabilités sont notées < 45 (au-dessus du haut) et sont soit atténuées, soit hors-champ per FIPS 140-3 §7.7.
Le labo effectue une passe pen-test indépendante pendant l’évaluation AVA_VAN.5. Zones flaggées pour attention focalisée :
fhsm_pkcs11.c), parseur de paramètres TLV (src/dispatch/fhsm_dispatch_common.c::fhsm_tlv_find), parseur .rsp (kat/fhsm_kat_rsp.c). Corpus AFL++ seedés avec les vecteurs CAVP.C_Login avec PINs adversariaux (binaire, très long, unicode), C_Encrypt avec mismatch de mécanisme, C_DestroyObject sur session étrangère.pwntools.checksec sur le .so livré ; attendu RELRO=Full, NX=Yes, PIE=Yes, Stack canary=Yes.Un scénario red-team mené par le labo est recommandé : un co-tenant malveillant sur le même utilisateur Linux tente d’extraire une DEK d’un long-running FreeHSM process via gdb attach, ptrace, inspection /proc, ou injection en shared memory.
Toute vulnérabilité notée < 45 (au-dessus du haut) est soit atténuée ci-dessus, soit hors champ per les hypothèses environnementales FIPS 140-3 §7.7 (accès physique contrôlé, OS durci). Aucune vulnérabilité résiduelle notée sous practical/moderate/high AVA_VAN.5 ne reste ouverte.
La demande de certification est donc soumise contre AVA_VAN.5 avec l’attente d’une résistance à des attaquants à fort potentiel d’attaque per CEM §10.2.7.
Une nouvelle passe AVA_VAN.5 est requise sur n’importe lequel des :
Dockerfile.build changent)