Thales Luna 8 - ce qu'un HSM certifié garantit vraiment, et où se trouve le risque réel
La plateforme HSM 2026 de Thales est bien réelle, et ses certifications aussi. Mais une certification couvre un périmètre précis : en sortir, c'est déplacer le risque. On démonte le marketing sans rien inventer, sources à l'appui.
00 En bref - l'angle honnête
Avant de plonger : ni « c'est troué », ni « c'est inviolable ». La vérité est plus utile que les deux.
✓ Ce qui est vrai
- Luna 8 existe : nouvelle plateforme matérielle lancée le 4 août 2026 (modèles réseau Luna 100 / 150 / 190), à ne pas confondre avec un firmware.
- Un HSM Luna = coffre-fort cryptographique matériel : les clés ne sortent jamais en clair du boîtier anti-intrusion.
- Les certifications sont réelles et vérifiables : FIPS 140-3 niveau 3 (CMVP #4684), CC EAL4+, QSCD eIDAS.
⚠ Ce qu'on ne te vendra pas
- La seule CVE publique propre à Luna est CVE-2015-5464 (2015, sévérité Low, nécessite un utilisateur déjà authentifié).
- Le vrai sujet n'est pas le matériel : c'est la config PKCS#11, les rôles, les attributs de clés et la chaîne de confiance.
- Hors mode FIPS, le HSM sort de son périmètre certifié - la doc Thales le dit elle-même.
Une certification protège un périmètre précis. En dehors de ce périmètre, rien n'est « 100 % sûr ». Ce dossier montre exactement ce que la certification couvre, où le risque se trouve réellement, et comment le corriger.
01 Luna 8, c'est quoi vraiment
« Luna 8 » n'est pas un numéro de firmware. C'est la génération matérielle 2026, distincte de la génération Luna 7.
La plateforme Luna 8 (2026)
Annoncée le 4 août 2026, la plateforme Luna 8 Network HSM se décline en trois modèles réseau. Elle embarque un processeur cryptographique conçu par Thales (custom), une architecture multi-conteneurs, et une source d'entropie double incluant un QRNG (générateur quantique).
conteneur · 128 MB de stockage de clés
conteneurs · 1024 MB de stockage de clés
conteneurs · 4096 MB de stockage de clés
- Chaque appliance peut contenir 1 ou 2 crypto-modules ; chaque module héberge jusqu'à 15 instances HSM → max 30 instances / appliance. Chaque conteneur = une instance HSM isolée, jusqu'à 10 partitions.
- Possibilité de faire tourner plusieurs versions de firmware Luna 8 dans des conteneurs isolés sur le même matériel.
- Réseau : 4×10G SFP+ (fibre mono/multimode) + RJ45, port BMC 1G.
- Annoncée 20× plus efficace énergétiquement par transaction que Luna 7 (chiffre marketing, voir §04).
vs la génération Luna 7
La génération précédente reste très répandue - c'est elle qui porte aujourd'hui les certificats détaillés plus bas.
| Modèle (Luna 7) | Mémoire | Partitions (max) | RSA-2048 | ECC P-256 | AES-GCM |
|---|---|---|---|---|---|
| A700 | 2 MB (4 MB dès fw 7.7.0) | 5 (5) | 1 000 tps | 2 000 tps | 2 000 tps |
| A750 | 16 MB (32 MB dès 7.7.0) | 5 (20) | 5 000 tps | 10 000 tps | 10 000 tps |
| A790 | 32 MB (64 MB dès 7.7.0) | 10 (100) | 10 000 tps | 22 000 tps | 17 000 tps |
Appliance 1U, double alim hot-swap, IPv4/IPv6, port bonding, MTBF 171 308 h. Autres form factors de la gamme : Luna PCIe HSM 7, Luna USB HSM 7, Luna Backup HSM 7 (G7), et Luna Cloud HSM / DPoD (service cloud).
Sources : annonce Luna 8 (Thales, 4 août 2026) · Luna 8 Network HSM - Product Brief (PDF) · Luna 7 Network HSM - Product Brief (PDF).
- Ne dimensionne pas sur un slogan : « 20× plus efficace » ou « orders of magnitude » ne remplacent pas une mesure. Avant achat ou migration, exige des chiffres sur ta charge (algos, tailles de clés, nombre de partitions) et compare-les aux tps publiés de la datasheet.
- Luna 7 ou Luna 8 ? Si ton contexte exige une certification accordée aujourd'hui, c'est la génération Luna 7 / K7 qui la porte (§04).
02 Ce que ça fait (le rôle réel)
Un HSM stocke et protège les clés, et exécute les opérations crypto à la place des serveurs - en gardant les clés dans du matériel inviolable.
🔑 Coffre crypto
Génération et stockage de clés dans le matériel. Les clés marquées non-exportables restent dans le HSM : elles n'en sortent jamais en clair. Le boîtier est « tamper-evident » (inviolable à preuve d'effraction).
👤 Rôles séparés
HSM SO (Security Officer) et Partition SO pour l'administration ; Crypto Officer (CO) = gestion des clés + opérations ; Crypto User (CU) = usage des clés seulement. La séparation des rôles est le premier rempart.
🖐 Authentification PED
Deux modes : par mot de passe (série A) ou multifacteur PED (série S, haute assurance) avec clés PED colorées - bleu = SO, noir = CO, gris = CU/LCO.
🧱 Partitions
Plusieurs HSM virtuels isolés dans un même boîtier (multi-tenant). Backup/restore matériel-à-matériel, haute dispo (HA) / load-balancing, clustering « quantum-safe ».
🎲 QRNG
Sur Luna 8, source d'entropie double incluant un générateur quantique (QRNG) + source externe possible. Sur Luna 7, RNG conçu pour AIS 20/31 DRG.4 + HMAC_DRBG conforme NIST SP 800-90A.
🔌 Interfaces
Administration via LunaSH (console série / SSH), connexion applicative via client PKCS#11 (+ Java JCA/JCE, CAPI/CNG, OpenSSL), transport NTLS en TLS mutuel sur le port 1792.
Clés non-exportables ≠ système sûr. Un HSM ne protège pas d'une application mal codée qui signe n'importe quoi, d'un rôle CO compromis, ou d'un attribut CKA_DERIVE laissé ouvert par défaut. Le risque se déplace vers la configuration et le code - c'est là qu'on travaille.
- Séparation des rôles stricte : SO, CO et CU sur des personnes distinctes ; le CU (usage seul) pour les applications, jamais le CO.
- Authentification forte pour les opérations sensibles : PED (série S) et quorum M-of-N plutôt que mot de passe seul.
- Attributs de clés durcis dès la génération (CKA_SENSITIVE=TRUE, CKA_EXTRACTABLE=FALSE, CKA_DERIVE=FALSE) - détail dans le tuto §10.
- Contrôle applicatif : l'application qui demande une signature doit elle-même valider ce qu'elle fait signer ; le HSM exécute, il ne juge pas.
03 Crypto & post-quantique (avec les versions de firmware)
Le détail compte : tel algorithme PQC n'existe qu'à partir de telle version de firmware, avec telles limites honnêtes.
Asymétrique & ECC
- RSA jusqu'à 4096 bits (PKCS#1 v1.5, OAEP, PSS).
- ECC NIST P-192…P-521, Brainpool P192–P512, secp256k1 (BIP32), Montgomery X25519/X448, Edwards Ed25519/Ed448. ECDSA/ECDH/ECIES.
Symétrique & hash
- AES 128/192/256 (ECB, CBC, CBC-PAD, CTR, GCM, GMAC, Key Wrap, AES-XTS 512-bit), ARIA, SEED ; 3DES legacy (déchiffrement/unwrap).
- SHA-2 et SHA-3 (224–512), HMAC, SHAKE-128/256, KDF SP 800-108, Key Wrapping SP 800-38F.
Télécom & wallet
- MILENAGE, TUAK, COMP128 (authentification abonné 3GPP/5G).
- BIP32 et SLIP10 (HD keys / portefeuilles).
RNG
- Luna 7 : AIS 20/31 DRG.4 (bruit matériel) + HMAC_DRBG NIST 800-90A.
- Luna 8 : entropie double dont QRNG.
Post-quantique (PQC) - ce qui marche à partir de quelle version
| Algorithme | Standard | Dispo à partir de | Limites honnêtes |
|---|---|---|---|
| LMS / HSS signatures à base de hachage |
RFC 8554 · NIST SP 800-208 | firmware 7.8.9 (client 10.8.0+) |
Clés HSS non clonables → pas de backup/restore, pas de HA. |
| ML-DSA | FIPS 204 | firmware 7.9.0+ | Clés clonables, sauvegardables et utilisables en HA. |
| ML-KEM | FIPS 203 | firmware 7.9.0+ | Clés clonables, sauvegardables et utilisables en HA. |
| Multi-part signing HSS | - | firmware 7.9.1 | - |
Luna 8 annonce ML-KEM, ML-DSA et LMS/HSS en standard. Mécanismes LMS/HSS : CKM_HSS, CKM_HSS_KEY_PAIR_GEN.
- Vérifie ta version avant de promettre du PQC : firmware ≥ 7.8.9 + client 10.8.0+ pour LMS/HSS, firmware ≥ 7.9.0 pour ML-DSA/ML-KEM.
- Clés HSS non clonables → pas de backup ni de HA : documente une procédure de perte/remplacement de clé avant la mise en production, et réserve HSS aux usages qui la tolèrent.
- Pour les usages qui exigent sauvegarde et haute dispo, privilégie ML-DSA / ML-KEM, clonables et utilisables en HA.
Sources : Thales - Post-Quantum Algorithms · Release notes firmware 7.8.9 · LMS & HSS.
04 Certifications réelles (certifié vs marketing)
Les certificats existent, portent des numéros, des versions de firmware et des dates. Mais ils ne couvrent qu'un périmètre précis.
FIPS 140-3 (NIST CMVP)
Thales Luna K7 Cryptographic Module - niveau global 3, type « Multi-Chip Embedded » (carte PCIe). Firmwares validés 7.8.4 et 7.8.5. Sunset 1/4/2029.
Luna T7 (variante Thales TCT, US) - FIPS 140-3 niveau 3, sunset 28/7/2031.
Contexte réel : le CMVP n'accepte plus de soumissions 140-2, et les certifs 140-2 deviennent « historical » à partir de septembre 2026. Thales revendique avoir été le premier HSM à obtenir FIPS 140-3 niveau 3.
Common Criteria / eIDAS
- CC EAL4+ - certificat NSCIB-CC-2400054-01, EAL4 augmenté (ALC_FLR.2 + AVA_VAN.5), conformité stricte au profil EN 419221-5:2018. Émis le 5 sept. 2025, valide jusqu'au 5 sept. 2030. Certificat (PDF)
- QSCD eIDAS - certificat eIDAS-2400055-01 (TrustCB, organisme désigné néerlandais), même périmètre, émis 2025-09-05. Liste eIDAS TrustCB
- Certificat CC antérieur (Singapour) CSA_CC_19003, EAL4+ AVA_VAN.5, émis 20/11/2020, expiré le 19/11/2025.
1. Le périmètre est étroit. C'est un module précis (le K7, carte PCIe interne), dans une config évaluée précise, pour des firmwares précis (7.7.0–7.7.2 et 7.8.5 côté CC ; 7.8.4/7.8.5 côté FIPS). Le certificat ne s'applique qu'à ces versions/configs.
2. Hors mode FIPS = hors périmètre. La doc Thales l'écrit elle-même : les pleines capacités du HSM dépassent les limites prescrites par FIPS ; pour être conforme, il faut configurer/restreindre le HSM. Donc un Luna sorti du mode FIPS n'est plus dans son périmètre certifié.
3. Pour Luna 8, c'est encore « in process ». Les certifs FIPS 140-3 niveau 3 et CC EAL4+ sont marquées « in process » / « being independently assessed » dans la datasheet d'août 2026 - annoncées, pas encore accordées.
4. Le reste est du marketing. « quantum-safe root of trust », « unparalleled performance », « 20× plus efficace » : les perfs chiffrées (§01) sont sourcées, mais les superlatifs ne sont pas des faits certifiés.
- Aligne ta version sur le certificat : garde un tableau « firmware en production ↔ firmwares couverts par le certificat » (7.8.4/7.8.5 pour FIPS #4684) et vérifie-le à chaque mise à jour.
- Active et vérifie le mode FIPS si ton contexte exige la conformité : c'est la seule configuration dans le périmètre certifié.
- Luna 8 : pas de conformité sur parole. Tant que le certificat n'apparaît pas sur csrc.nist.gov / commoncriteriaportal.org, considère la conformité comme « non acquise » dans tes dossiers d'audit.
- Surveille les dates : sunset du #4684 (1/4/2029), fin du CC (5/9/2030), certifs 140-2 « historical » dès septembre 2026, CSA_CC_19003 déjà expiré.
Source clé : Thales - FIPS compliance.
05 Le processeur crypto « custom » - faits matériels (K7 / Luna 8)
Le « custom crypto processor » du K7 a un nom et une architecture réels : PowerPC 476 + co-processeur Andretta, pas une boîte noire magique. Tout ce qui suit vient des docs de certification publiques - sauf pour Luna 8, où on reste au conditionnel.
Nature du module K7
Le « Thales Luna K7 Cryptographic Module » est un module « multi-chip embedded » au sens ISO/IEC 19790:2012 : plusieurs puces sur un même circuit imprimé, sous forme de carte PCIe logée dans l'appliance. La frontière cryptographique est l'enceinte métallique sur les faces supérieure et inférieure de la carte. Ventilateurs, dissipateurs et batterie de backup amovible sont dans la frontière mais hors des exigences de test. Le K7 n'est ni un FPGA ni un simple ASIC générique : c'est un assemblage multi-puces sous résine (les termes « ASIC » ou « SoC » n'apparaissent pas dans les docs).
| Composant | Fait documenté | Source |
|---|---|---|
| CPU | PowerPC 476 - « Luna K7 Cryptographic Library » (firmware 7.0.1) validée CAVP (SHA2, ECDSA, RSA, AES, DSA, KAS) | CAVP product=8382 |
| Co-processeur | Andretta 2.0 - micro-code programmable une seule fois (OTP) chargé pendant la fabrication ; l'utilisateur ne peut pas lire la version du micro-code ensuite | CC Security Target, note 1 p.9 |
| TRNG | « Thales K7 Hardware Platform TRNG », ESV #98 - bruit physique en direct, conditionnement SHA2-512, SP 800-90B, full entropy | FIPS Security Policy #4684 |
| DRBG | CTR_DRBG AES-256, SP 800-90A r1, 256 bits de sécurité (cert algo #C1707) | FIPS SP, table 2-2 |
| EFP | 3 rails (5 V, 3,3 V, 1,8 V) + température. Seuils −2 °C / +80 °C ; ex. 5 V hors 4,76–5,26 V → shutdown (et effacement des clés sur K7+) | FIPS SP §7.3, table 7-2 |
| Effacements | Signal externe (jumper) et retrait du slot PCIe détectés à chaud ET hors tension → effacement de la TVK (Token Variable Key), journalisation | FIPS SP §7.1.2–7.1.3 |
Nuance RNG : la Security Policy FIPS documente un CTR_DRBG AES-256 ; la mention HMAC_DRBG / AIS 20/31 DRG.4 vient des datasheets produit. Les deux formulations coexistent - on les cite prudemment.
Anti-tamper : deux niveaux souvent amalgamés
Enceinte métallique opaque + résine époxy dure et opaque coulée directement sur le PCB : toute tentative de retrait endommage et rend le module inopérant, et l'opacité empêche l'inspection visuelle du design et le sondage physique (probing). Mais le niveau de détection dépend de la variante :
Simple coating époxy. Détection passive uniquement - une intrusion se constate a posteriori, à l'inspection.
✗ Pas d'effacement actif des clés sur intrusion physique.
Blindage électriquement câblé. Détection active ET passive - une attaque du blindage déclenche l'effacement.
✓ Efface toutes les clés en cas d'intrusion.
Le marketing « tamper-resistant » recouvre deux niveaux très différents. Le K7 « de base » repose sur la détection visuelle ; seul le K7+ efface les clés sur attaque du blindage. Un acheteur doit savoir lequel il prend. (CC ST §1.4.1 table 1-2, §7.7.2–7.7.3 ; FIPS SP §7)
- Demande explicitement la variante (K7 ou K7+) et vérifie-la dans la Security Policy / le Security Target, pas dans la plaquette.
- Si ta menace inclut l'accès physique, choisis le K7+ (effacement actif des clés).
- Avec un K7 « de base » (détection passive) : inspection visuelle régulière et journalisée de l'enceinte, contrôle d'accès physique à la baie - une détection passive n'a de valeur que si quelqu'un regarde.
Lignée de la puce
Propriété : SafeNet → Gemalto (clôture le 8 janvier 2015) → Thales (2019). Après 2015, la marque « Luna » a un temps été retirée au profit de « SafeNet », puis réintroduite sous Thales. Le G5 désigne un form factor USB / Backup HSM, pas une génération de puce. Sources : CAVP K6 (product=3364) · CAVP K7 (product=8382) · Gemalto finalise le rachat de SafeNet · Thales - rebranding.
Et Luna 8 ?
Sourcé (datasheet) : 1 ou 2 crypto-modules par appliance, jusqu'à 15 instances HSM par module (30 par appliance), Luna 100/150/190, 4×10G, entropie double incluant un QRNG.
Marketing, non vérifiable à ce jour : « processeur cryptographique custom conçu par Thales », « orders of magnitude faster », « 20× plus efficace par transaction que Luna 7 », « side-channel protection ». Le type exact de la puce Luna 8 (ASIC ? SoC ? FPGA ? fondeur ?) n'est pas divulgué. Certifs encore « in process » : les Security Policy / Security Target qui révéleraient le vrai matériel n'existent pas encore publiquement. À surveiller sur csrc.nist.gov et commoncriteriaportal.org.
Confirmé vs non confirmable
✓ Confirmé publiquement (K7)
- Multi-chip embedded, carte PCIe, frontière = enceinte métallique.
- CPU PowerPC 476 + co-processeur custom Andretta 2.0 (micro-code OTP).
- Époxy opaque + potting ; K7 = passif (visuel), K7+ = actif avec effacement des clés.
- EFP : rails 5/3,3/1,8 V, −2/+80 °C ; détection retrait PCIe et signal externe à chaud et hors tension.
- TRNG ESV #98 (bruit physique, SHA2-512, SP 800-90B, full entropy) + CTR_DRBG AES-256.
- Lignée SafeNet → Gemalto (2015) → Thales (2019) ; K5 (ARM) → K6 (PPC440EPx) → K7 (PPC476).
✗ Non confirmable publiquement
- Le fondeur exact des puces K7 et le détail interne d'Andretta (micro-code propriétaire, non lisible - le Security Target le dit explicitement).
- Pour Luna 8 : type de puce, fondeur, architecture réelle, validité des « 20× » / « orders of magnitude » → marketing non encore adossé à une Security Policy/ST publique.
- Toute mesure réelle de résistance side-channel (hors l'évaluation AVA_VAN.5 déjà obtenue pour le K7).
Démonter le marketing, ici, c'est être précis : une archi réelle nommée, deux niveaux de protection à ne pas confondre, une entropie validée NIST (fait, pas pub), et pour Luna 8 des superlatifs à garder au conditionnel. La vraie force pédagogique : savoir lire un rapport de certification pour distinguer le certifié du slogan.
- Luna 8 : attends la Security Policy / le Security Target publics pour toute affirmation sur la puce, le QRNG ou la résistance side-channel ; d'ici là, garde tes rapports au conditionnel.
- Pour un déploiement réglementé aujourd'hui, appuie-toi sur un module dont la Security Policy est publiée (K7, #4684).
- Pour la résistance side-channel, la seule référence vérifiable reste l'évaluation AVA_VAN.5 du K7 - cite-la, ne la remplace pas par un slogan.
06 Un HSM = un assemblage multi-fournisseurs
« Processeur crypto Thales » ? Le K7 n'est pas une puce Thales unique : c'est un assemblage de composants d'origines différentes, dont un CPU d'origine IBM. Et les autres gammes de HSM Thales reposent sur des architectures différentes.
Ce qu'il y a dans le K7
Sources : phys.org (IBM 476FP, 2009) · EE Times (IBM + LSI, 45 nm) · CAVP #8382 (« PowerPC 476 ») · CC Security Target + FIPS Security Policy (voir §05).
Nuance de lignée : 440 ≠ 476
En 2004, AMCC a racheté à IBM la gamme PowerPC 400 + une licence Power : le cœur du K6 est donc un PPC 400 ex-IBM commercialisé par AMCC/Applied Micro. Le 476, plus récent, est resté chez IBM. SEC/EDGAR (accord AMCC–IBM, 2004).
Les autres gammes : autres architectures
| Gamme | Architecture | Statut |
|---|---|---|
| Luna K7 | PowerPC 476 (IBM) + Andretta (Thales) | confirmé |
| ProtectServer (ex-Eracom) | K5 = ARM (PSE/PSI-E, little-endian) → K6 = PowerPC (PSE2/PSI-E2, big-endian) | confirmé migration guide 5.2 · 5.0 |
| payShield 10K (paiement) | PS10-S/D/F, 25 → 10 000 cps, LMK, FPE - silicium non divulgué | non confirmé datasheet |
| DPoD / Luna Cloud HSM | service cloud adossé à des HSM Luna - pas une puce distincte | confirmé |
| Luna 8 | « processeur custom Thales » - type de puce et fondeur non divulgués | non confirmé |
nShield = gamme Entrust (ex-nCipher). Thales a cédé nCipher à Entrust en 2019. Attribuer un résultat nShield à Thales - ou l'inverse - est une erreur fréquente. Même logique que §08 : ProtectServer ≠ Luna, et nShield ≠ Thales.
✓ Confirmé
- CPU K7 = PowerPC 476 (IBM/LSI, 45 nm SOI) - presse + CAVP.
- Co-processeur Andretta (Thales) - CC Security Target.
- ProtectServer K5 = ARM, K6 = PowerPC - guides de migration Thales.
- nShield = Entrust, pas Thales.
✗ Non confirmable publiquement
- Le fondeur exact des puces assemblées par Thales.
- La présence éventuelle d'un secure element / smartcard chip / TPM / FPGA distinct dans le K7, au-delà d'Andretta et du PPC476.
- L'architecture silicium de payShield et de Luna 8.
- Raisonne en chaîne d'approvisionnement, pas en marque : un HSM = plusieurs fournisseurs. Dans ton analyse de risque, liste les composants documentés (CPU, co-processeur, TRNG, capteurs) et marque explicitement ce qui n'est pas documenté.
- Exige la Security Policy du module exact que tu achètes : c'est elle qui fixe la frontière cryptographique et les composants couverts - pas la plaquette commerciale.
- Ne transpose jamais un résultat d'une gamme à l'autre (ProtectServer, payShield, nShield, Luna) : vérifie la gamme, la génération et le firmware avant de citer une faille ou une garantie.
- Ce qui n'est pas divulgué (fondeur, SE/TPM/FPGA, silicium Luna 8) reste au conditionnel dans tes rapports.
Sources en accès libre - ce qu'on trouve vraiment
On a cherché des « open directories » (dorks intitle:"index of" "parent directory" et variantes) sur toute la gamme. Résultat honnête : aucune fuite sensible, surtout d'anciens guides officiels en accès libre.
| Trouvaille | Contenu | Crédibilité |
|---|---|---|
| public.dhe.ibm.com/cloud/bluemix/hsm/ open directory live (HTTP 200 vérifié le 16/10/2026) |
3 guides officiels SafeNet Luna 7.2 : Appliance Administration Guide (2,0 Mo), Installation Guide (4,2 Mo), LunaSH Command Reference (2,1 Mo) - déposés par IBM pour son offre Bluemix/Cloud HSM. Version 7.2, ancienne. | haute miroir officiel IBM |
| sc-journal.com/gemalto-docs/ | Manuel d'installation SafeNet Luna Network HSM 7.0 - agrégateur de manuels non officiel, à recouper. | moyenne miroir tiers |
| thalesdocs.com - index des firmwares | Source canonique, firmwares Luna 7 jusqu'à 7.9.3. Firmwares = packages signés (.spkg appliance, .fuf PCIe) - téléchargeables mais inexploitables hors HSM. | haute officiel |
| Faux positifs | « Luna » = instruments optiques de Luna Innovations ; « Thales » = composants semi-conducteurs (diacrodes/tubes/diodes) ; rôle Ansible OpenStack = code d'intégration, pas une datasheet. | écartés homonymie |
Notre discipline de cotation s'appuie sur la revue systématique OSINT + IA / GELSI (Ghioni, Taddeo, Floridi, AI & Society, 2024 - 571 publications) haute. L'OSINT y pèse 80–90 % de l'activité de renseignement, et les risques relevés sont la vie privée (même sur données publiques), l'effet mosaïque, les biais algorithmiques, l'admissibilité en justice, la provenance et l'intégrité des sources, et la sur-confiance dans l'automatisation. Deux enseignements pour nous : (1) « Open ≠ True » - toute trouvaille, dont celles de §08, est vérifiée et corroborée avant d'être présentée ; (2) on reste en reconnaissance passive, on respecte le RGPD et la vie privée, on documente la provenance. publication (ResearchGate)
Sources marketing / concurrentielles
Fortanix « HSM migration » marketing
Page commerciale d'un concurrent : HSM « nouvelle génération » FIPS 140-2 niveau 3, cloud / on-prem / hybride (HSMaaS), API PKCS#11, migration « sans rip-and-replace ». Superlatifs (« minutes, not months ») non vérifiables.
Valeur technique sur le K7 : nulle - point de comparaison concurrentiel uniquement. page Fortanix
Thales ebook « Foundations of Digital Trust » vendeur
HSM comme ancre de confiance (SSL, DNS, paiements mobiles, identité, 5G, IoT), clés stockées en matériel, appliance tamper-evident / FIPS-validated, intégration Crypto Command Center - des faits déjà corroborés ailleurs.
« highest level of security », « rigorous design » = slogans. Rien de neuf sur le silicium. ebook Thales
- Prends la doc à la source : thalesdocs.com pour la version que tu exploites réellement - un guide 7.2 trouvé en open directory ne décrit pas un firmware 7.9.x.
- Cote chaque source (officielle / miroir tiers / marketing / anonyme) et recoupe un miroir tiers avec la source officielle avant de t'en servir.
- Écarte les homonymes (Luna Innovations, composants Thales) avant toute conclusion.
- Côté éditeurs et hébergeurs : un open directory, même de docs publiques, mérite un inventaire régulier - on vérifie ce qui est exposé plutôt que de le découvrir par hasard.
- Ne fonde aucune décision technique sur une plaquette (Fortanix, ebook Thales) : exige le certificat et la Security Policy correspondants.
07 Faiblesses réelles (et anti-sensationnalisme)
Une seule CVE propre à Luna, plus une classe d'attaque académique qui vise la norme PKCS#11, pas un bug matériel Thales.
CVE-2015-5464 - la seule CVE publique propre à Luna
« The Gemalto SafeNet Luna HSM allows remote authenticated users to bypass intended key-export restrictions by leveraging (1) crypto-user or (2) crypto-officer access to an HSM partition. »
- Sévérité Low (EPSS ~0,05 %), CWE-284 (Improper Access Control). Publiée le 22/07/2015.
- Il faut déjà être authentifié comme CO ou CU sur la partition. Ce n'est pas une extraction de clé à distance non authentifiée.
- Produits affectés selon l'avis Thales : Luna SA 5.4.1 & 5.4.2 et Luna SP 3 ; la plupart des autres produits Luna = No impact.
- Racine du problème : le mécanisme PKCS#11 C_Derive avec CKM_EXTRACT_KEY_FROM_KEY. Toute implémentation PKCS#11 conforme supportant ce mécanisme est concernée - ce n'est pas propre à Thales.
- Mitigation : CKA_DERIVE=CK_FALSE, CKA_MODIFIABLE=CK_FALSE, restreindre CKA_ALLOWED_MECHANISMS, limiter les rôles.
- Restreins les mécanismes de dérivation que tu n'utilises pas : CKA_DERIVE=CK_FALSE, CKA_ALLOWED_MECHANISMS minimal (sans CKM_EXTRACT_KEY_FROM_KEY si inutile).
- Verrouille les attributs : CKA_MODIFIABLE=CK_FALSE pour qu'un utilisateur authentifié ne puisse pas les rouvrir.
- Limite les comptes CO/CU et surveille leur usage - la CVE exige un utilisateur authentifié : le contrôle des comptes est la première barrière.
- Applique l'avis Thales sur les produits concernés (Luna SA 5.4.1/5.4.2, Luna SP 3).
Recherche académique PKCS#11 (pas des CVE Thales)
Tookan - CCS 2010
« Attacking and Fixing PKCS#11 Security Tokens », Bortolozzo, Centenaro, Focardi, Steel. Rétro-ingénierie de l'API PKCS#11 de tokens réels, modélisation formelle, attaques d'extraction de clés : 9 tokens sur 17 testés étaient vulnérables.
DOI · PDF · projet Tookan
Nature de ces travaux : ils visent la norme PKCS#11 et ses mauvaises configurations, pas un bug matériel Luna spécifique. C'est l'angle pédagogique le plus solide (voir §10). Pour les pistes non officielles, voir §08.
Peu de CVE ≠ invulnérable. Pour un matériel propriétaire, fermé, à firmware signé, l'absence de CVE reflète surtout la difficulté d'audit externe autant qu'une vraie robustesse. À dire tel quel, sans surinterpréter.
Et on n'invente rien. Un avis Luna de janvier 2021 circule chez un agrégateur (vigilance.fr) mais aucun ID CVE ni détail technique public n'a pu être confirmé → non confirmé. Aucune CVE trouvée pour le client Luna / KSP / CKLog → non trouvé. Affirmer qu'il existe une faille non publiée serait de l'invention.
- Peu de CVE publiques = audite toi-même ce que tu contrôles : templates de clés, rôles, mécanismes autorisés, versions - c'est là que se trouvent les risques mesurables.
- Intègre les leçons Tookan/Clulow : une clé = un usage (jamais CKA_WRAP et CKA_DECRYPT sur la même clé), templates imposés, attributs « sticky » (approche CryptokiX).
- Suis les avis éditeur et documente ce qui reste « non confirmé » au lieu de le combler.
08 Pistes underground / non officielles - avec note de crédibilité
Ce qui circule hors doc officielle : talks de conf, rapports académiques, blogs de chercheurs, fils de commentaires. Chaque trouvaille porte une note haute moyenne faible selon qu'elle est sourcée, nommée, reproductible et corroborée - ou simple rumeur.
Rien ici n'est à présenter comme un fait acquis sur le K7 actuel. La plupart de ces travaux visent d'anciennes générations (Chrysalis / Luna CA3) ou une autre gamme Thales (ProtectServer, lignée Eracom). Le hack Ledger de 2019 porte sur le ProtectServer PSI-E2/PSE2, pas sur Luna - Gemalto l'a confirmé publiquement. Dire « le Luna a été dumpé » est faux.
| Travail | Cible réelle | Crédibilité | Vise le K7 actuel ? |
|---|---|---|---|
| Unwrapping the Chrysalis Cambridge, 2004 | Luna CA3 (Chrysalis) | haute | Non (ancêtre) |
| Ledger « This is a Robbery! » Black Hat USA 2019 | ProtectServer PSI-E2/PSE2 | haute | Non (autre gamme) |
| LunaSP unsigned code Black Hat Europe 2021 | LunaSP (couche Java) | haute moyenne fait / détails | Non (couche appli) |
| Random Oracle / CVE-2015-5464 2015 | SafeNet Luna 2015 (G5…) | haute | Non (gén. antérieure, auth requise) |
| Forum « Luna 7 = puce différente » commentaire, 2019 | - | faible | Indirectement cohérent |
| Teardown K7 / Andretta dédié | K7 / PPC476 | non trouvé | - |
Unwrapping the Chrysalis haute
Rétro-ingénierie du token Chrysalis-ITS Luna CA³ (PCMCIA) : lecture du code ARM/flash, interception du bus PCMCIA, abus du protocole de cloning pour extraire des clés privées PKCS#11 en clair (fonctions ajoutées acceptant n'importe quel certificat, même auto-signé). Mike Bond, Daniel Cvrček, Steven J. Murdoch - rapport UCAM-CL-TR-592, juin 2004.
Portée : Luna CA3 de ~2003-2004, pas le K7 ; l'attaque exigeait aussi l'autorisation d'un Security Officer. Valeur pédagogique/historique.
Ledger, BH USA 2019 haute
14 vulnérabilités (corruptions mémoire) trouvées par fuzzing de l'implémentation PKCS#11, dont une type-confusion exploitable sans authentification → exécution de code, extraction des clés, et firmware non signé persistant via un bug de vérification de signature. Jean-Baptiste Bédrune & Gabriel Campana. Divulgation responsable, correctifs confirmés.
⚠ Cible = ProtectServer, PAS Luna. Leçon transférable : l'implémentation PKCS#11 d'un vendeur est la vraie surface d'attaque, et un module FIPS 140-2 L3 n'y est pas immunisé.
LunaSP, BH EU 2021 haute moyenne
Contournement de la vérification de signature JAR de LunaSP via réécriture/patch de ZIP → exécution de code non signé dans la couche applicative protégée. Przemysław Duda (Intel).
Haute sur l'existence et l'auteur (talk officiel), moyenne sur les détails (pas de write-up long public). Vise la plateforme Java, pas le module crypto K7.
Random Oracle - CVE-2015-5464 haute
Write-up des découvreurs : extraction via les mécanismes PKCS#11 extract-key-from-key et XOR-base-and-data, récupération octet par octet par brute-force HMAC (« quelques secondes sur Luna G5 »).
Gamme SafeNet Luna de 2015, utilisateur authentifié requis ; mitigation = attributs PKCS#11 (§07). Transférable conceptuellement, pas une faille du K7 actuel.
Forum « Luna 7 = puce différente » faible
Commentaire anonyme (blog Schneier, 2019) : Luna 6 et PS2 auraient la même puce avec des FW différents, Luna 7 une puce et un FW totalement différents, plus orientés ECC.
Non sourcé - mais cohérent avec les faits officiels (K7 = PPC476 vs K6 = PPC440EPx, voir §05). À citer comme « cohérent avec les faits », jamais comme preuve.
Teardown K7 / Andretta non trouvé
Aucun talk DEFCON, CCC ou Hardwear.io ni teardown public spécifique au K7 (Andretta / PPC476) trouvé. L'absence de résultat n'est pas une preuve d'inexistence.
« cklog », parfois cité côté offensif, est en fait le Cryptoki Logging Facility officiel de Thales (journalisation des appels PKCS#11 pour debug) - pas un exploit ; masque les données sensibles par défaut depuis UC 10.9.1. haute doc officielle
Il existe un vrai corpus de recherche offensive sérieuse sur les HSM SafeNet/Thales, mais aucune attaque publique vérifiée ne porte directement sur le module K7 / Luna 7 certifié #4684. La surface faible récurrente et transférable : l'implémentation PKCS#11 et la chaîne de vérification de signature (firmware / JAR) - bien plus que la puce crypto elle-même. C'est exactement ce que le tuto ci-dessous travaille, sans prétendre que le K7 d'aujourd'hui est cassé.
| Piste | Leçon | Correctif recommandé |
|---|---|---|
| Chrysalis (CA3) | Abus du protocole de cloning | Restreins le cloning / backup aux HSM de ta propre infrastructure, sous autorisation SO + quorum, et journalise chaque opération de clonage. |
| Ledger (ProtectServer) | Bugs mémoire dans l'implémentation PKCS#11 + vérif de signature firmware | Applique les correctifs éditeur sans délai, limite l'accès réseau à l'interface PKCS#11 (clients enregistrés, NTLS mutuel), n'installe que du firmware signé et suis sa version. |
| LunaSP (couche Java) | Contournement de la vérif de signature JAR | Contrôle strict de ce qui est déployé dans la couche applicative (liste blanche, origine, intégrité) et mises à jour éditeur appliquées. |
| CVE-2015-5464 | Dérivation / extraction via PKCS#11 | Attributs durcis (CKA_DERIVE=FALSE, CKA_MODIFIABLE=FALSE, mécanismes restreints), comptes CO/CU limités - voir §07 et le tuto §10. |
| Rumeur / forum | Info non sourcée | Ne publie jamais sans corroboration officielle (« Open ≠ True », §06) ; cote-la « faible ». |
| cklog | Outil officiel de journalisation PKCS#11 | Client ≥ UC 10.9.1 (masquage des données sensibles par défaut), activation limitée au temps du debug, journaux protégés puis purgés. |
09 Ce qu'on peut analyser sans matériel Thales
Soyons clairs sur ce qui est à notre portée en labo, et ce qui exige l'appliance physique.
✓ Analysable sans matériel
- Toute la doc publique (thalesdocs.com), rapports de certification (CMVP, NSCIB/TrustCB), datasheets.
- Comportement du client PKCS#11 sur une bibliothèque générique (SoftHSM, p11-kit) - une appliance de test n'est pas obligatoire.
- Reproduire la classe d'attaque CVE-2015-5464 sur un HSM logiciel → démonstration pédagogique légale et sans matériel Thales.
- Observer le protocole NTLS (TLS, port 1792) en labo si on dispose d'un client + d'une appliance de test.
- Littérature académique reproductible (Tookan / CryptokiX).
⚠ Exige l'appliance physique
- Analyse side-channel (consommation, EM, timing) et tampering physique.
- Extraction/analyse de firmware (signé, chiffré - impossible de flasher un firmware non signé).
- Validation des perfs réelles, du vrai QRNG, du vrai comportement NTLS/PED.
- Résistance side-channel effective : seule l'évaluation AVA_VAN.5 existe, pas nos propres mesures.
Sans appliance Thales, l'ÉOH fait un travail d'analyse documentaire + reproduction en labo sur HSM logiciel, pas d'attaque matérielle. C'est exactement ce que le tuto ci-dessous assume - honnêtement.
- Pour ce qui exige l'appliance, ne conclus pas sans mesure : appuie-toi sur les rapports d'évaluation publics (AVA_VAN.5, Security Policy) et cite-les comme tels.
- Un besoin réel d'analyse side-channel ou firmware passe par un cadre contractuel avec le fournisseur (accord écrit, appliance de test, périmètre défini) - jamais par du matériel en production ou appartenant à un tiers.
- Côté exploitant : si tu ne peux pas mesurer, réduis ce qui en dépend - accès physique contrôlé, variante K7+ si la menace est physique, supervision syslog/SNMP.
10 Lab pratique ÉOH - COMPRENDS → MONTE → TESTE → CORRIGE
Devise : « Comprendre pour mieux défendre ». On ne te donne pas un catalogue d'exploits : on te donne une expérience en labo isolé, sur SoftHSM2 (HSM logiciel open source), pour voir de tes yeux où le risque se déplace - puis le correctif. Pas de matériel Thales, pas de cible réelle.
- Tout se fait sur ton propre poste, en labo isolé (VM, conteneur, machine dédiée). Aucun HSM, aucune partition, aucun service tiers.
- SoftHSM2 = simulateur logiciel open source : 100 % légal, aucun matériel Thales, aucune licence Thales. Ce qu'on observe ici illustre une classe de mauvaise configuration PKCS#11, pas une faille Luna / K7.
- Ne teste jamais ces commandes sur un HSM, une appliance ou un service que tu ne possèdes pas, ou pour lequel tu n'as pas d'autorisation écrite explicite.
- Finalité défensive : comprendre pour durcir. Pas de démo à sensation, pas de catalogue d'exploits - une école de défense. Si une vraie trouvaille émerge un jour : divulgation responsable (esprit YesWeHack).
1 · Comprends - ce qu'un HSM garantit, et ce qu'il ne garantit pas
✓ Ce que le HSM garantit
- Clés marquées non-exportables restent dans le matériel.
- Opérations crypto exécutées en matériel (pas sur le serveur).
- Rôles séparés (SO / CO / CU), anti-tamper (selon variante).
✗ Ce qu'il ne garantit PAS
- Une appli qui signe n'importe quoi.
- Un rôle CO compromis.
- Des attributs PKCS#11 laxistes (CKA_EXTRACTABLE, CKA_DERIVE, wrap+decrypt).
Le lab montre concrètement ce troisième point : deux clés AES, mêmes commandes PKCS#11, deux attributs différents → l'une sort en clair, l'autre refuse. La robustesse ne vient pas (seulement) du matériel - elle vient de la configuration. C'est exactement la leçon de CVE-2015-5464 et de Clulow/Tookan (§07–§08), transférable à toute implémentation PKCS#11.
2 · Monte ton lab SoftHSM2 (Debian / Kali)
Copie le script ci-dessous, sauvegarde-le sous eoh-lab-setup.sh, rends-le exécutable, lance-le. Il installe SoftHSM2 + OpenSC, crée un token isolé dans ~/eoh-lab/, et exporte les variables d'environnement.
bash - eoh-lab-setup.sh (copier-coller)#!/usr/bin/env bash # Echoes of Hackers - lab SoftHSM2 isolé # Usage : bash eoh-lab-setup.sh # Cadre : labo local uniquement. SoftHSM = HSM logiciel. Aucun matériel Thales. set -euo pipefail LAB_DIR="${HOME}/eoh-lab" TOKEN_DIR="${LAB_DIR}/tokens" CONF="${LAB_DIR}/softhsm2.conf" MODULE="/usr/lib/softhsm/libsofthsm2.so" LABEL="eoh-lab" SO_PIN="3737" USER_PIN="1234" echo "[ÉOH] 1/4 - installation SoftHSM2 + OpenSC (nécessite sudo)…" if ! command -v softhsm2-util >/dev/null || ! command -v pkcs11-tool >/dev/null; then sudo apt-get update -qq sudo apt-get install -y softhsm2 opensc fi # chemin du module selon la distro for cand in /usr/lib/softhsm/libsofthsm2.so /usr/lib/*/softhsm/libsofthsm2.so; do [ -f "$cand" ] && MODULE="$cand" && break done [ -f "$MODULE" ] || { echo "Module SoftHSM introuvable"; exit 1; } echo "[ÉOH] 2/4 - lab isolé dans ${LAB_DIR}" mkdir -p "${TOKEN_DIR}" cat > "${CONF}" <<EOF directories.tokendir = ${TOKEN_DIR} objectstore.backend = file log.level = ERROR EOF export SOFTHSM2_CONF="${CONF}" echo "[ÉOH] 3/4 - init token « ${LABEL} » (SO_PIN=${SO_PIN}, PIN=${USER_PIN})" # --free choisit un slot libre ; le token est ensuite réassigné softhsm2-util --init-token --free --label "${LABEL}" \ --so-pin "${SO_PIN}" --pin "${USER_PIN}" echo "[ÉOH] 4/4 - variables d'environnement" cat > "${LAB_DIR}/env.sh" <<EOF export SOFTHSM2_CONF="${CONF}" export EOH_P11_MODULE="${MODULE}" export EOH_PIN="${USER_PIN}" alias eoh-p11='pkcs11-tool --module ${MODULE}' EOF cat <<MSG [ÉOH] Lab prêt. source ${LAB_DIR}/env.sh eoh-p11 --list-slots MSGbash - eoh-lab-reset.sh (nettoyage / reset)
#!/usr/bin/env bash # Efface le token SoftHSM du lab ÉOH et le réinitialise à zéro. set -euo pipefail LAB_DIR="${HOME}/eoh-lab" CONF="${LAB_DIR}/softhsm2.conf" export SOFTHSM2_CONF="${CONF}" echo "[ÉOH] Suppression des tokens dans ${LAB_DIR}/tokens …" rm -rf "${LAB_DIR}/tokens" mkdir -p "${LAB_DIR}/tokens" softhsm2-util --init-token --free --label eoh-lab \ --so-pin 3737 --pin 1234 echo "[ÉOH] Lab remis à zéro. Relance : source ${LAB_DIR}/env.sh"
source ~/eoh-lab/env.sh eoh-p11 --list-slots # pas besoin de --login pour lister
Tu dois voir un token nommé eoh-lab. Si oui, le lab tourne - on passe aux tests.
3 · Teste toi-même - mauvaise config, puis durcissement
Deux temps nettement séparés. Les sorties marquées sortie réelle SoftHSM ont été capturées sur SoftHSM2 dans ce lab. Les commandes non exécutées ici sont marquées résultat attendu - on ne fabrique rien.
On génère volontairement une clé AES avec --extractable (soit CKA_EXTRACTABLE=TRUE, CKA_SENSITIVE=FALSE). C'est la faute classique : un utilisateur déjà authentifié (comme dans CVE-2015-5464) peut alors lire la clé en clair.
bash - générer une clé faiblesource ~/eoh-lab/env.sh eoh-p11 --login --pin 1234 --keygen --key-type aes:32 \ --label cle-faible --extractablesortie réelle SoftHSM (extrait)
Key generated: Secret Key Object; AES length 32 VALUE: 86f6ef7a069274b2a376db5c6ea3dd6f59e8811a073e9cc33994acc337340616 label: cle-faible Usage: encrypt, decrypt, sign, verify, wrap, unwrap Access: extractable, local
Ce qu'on observe : la clé est affichée en clair dès la génération. Les usages par défaut cumulent déjà wrap et decrypt - le conflit d'attributs décrit par Clulow (CHES 2003).
bash - relire la valeur brute (CKA_VALUE)eoh-p11 --login --pin 1234 \
--read-object --type secrkey --label cle-faible | od -An -tx1
sortie réelle SoftHSM
86 f6 ef 7a 06 92 74 b2 a3 76 db 5c 6e a3 dd 6f 59 e8 81 1a 07 3e 9c c3 39 94 ac c3 37 34 06 16
Ce qu'on observe : 32 octets - la clé AES entière - sortent du « HSM ». SoftHSM n'est qu'un fichier sur disque ; sur un vrai HSM, la même logique d'attributs ouvre une porte de sortie à tout utilisateur authentifié.
bash - lister et comparer les Accesseoh-p11 --login --pin 1234 --list-objects --type secrkey
Ce qu'on observe (réel) : Access: extractable, local pour cle-faible.
C_Derive / CKM_EXTRACT_KEY_FROM_KEY (racine de CVE-2015-5464) : SoftHSM2 n'implémente pas ce mécanisme. On ne montre donc pas de sortie SoftHSM pour une dérivation réussie - ce serait inventer. La leçon reste valable : CKA_DERIVE=TRUE + mécanismes de dérivation = porte ouverte sur toute implémentation qui les expose (dont d'anciens Luna, cf. §07). Ici on démontre le cousin direct et observable : CKA_EXTRACTABLE qui laisse sortir CKA_VALUE.
Conflit wrap+decrypt (Clulow) : SoftHSM accepte de créer une clé avec WRAP et DECRYPT à la fois (observé). Son mécanisme AES_KEY_WRAP refuse ensuite de « décrypter » le blob wrappé (MechanismInvalid / EncryptedDataLenRange - observé). SoftHSM est donc mieux bâti que les tokens vulnérables de Tookan sur ce point précis ; la mauvaise pratique d'attributs, elle, reste visible et doit être corrigée partout.
Même API, autres attributs : --sensitive --private → CKA_SENSITIVE=TRUE, CKA_EXTRACTABLE=FALSE.
bash - générer une clé durcieeoh-p11 --login --pin 1234 --keygen --key-type aes:32 \ --label cle-durcie --sensitive --privatesortie réelle SoftHSM (à la génération)
warning: C_GetAttributeValue(VALUE) failed: rv = CKR_ATTRIBUTE_SENSITIVE (0x11) Key generated: Secret Key Object; AES length 32 label: cle-durcie Usage: encrypt, decrypt, sign, verify, wrap, unwrap Access: sensitive, always sensitive, never extractable, local
Ce qu'on observe : SoftHSM refuse déjà d'afficher VALUE à la génération. L'accès est never extractable.
bash - même tentative de lecture qu'en Aeoh-p11 --login --pin 1234 \
--read-object --type secrkey --label cle-durcie
sortie réelle SoftHSM
warning: C_GetAttributeValue(VALUE) failed: rv = CKR_ATTRIBUTE_SENSITIVE (0x11) error: get CKA_VALUE failed Aborting. # code retour = 1
Ce qu'on observe : la même commande qui récupérait 32 octets en clair échoue maintenant. Deux attributs, deux mondes.
Attributs cibles (template applicatif) - à fixer dans ton code
résultat attendu - SoftHSM via pkcs11-tool ne permet pas de fixer tous ces attributs en une ligne CLI ; ils se fixent dans le template C_GenerateKey de ton application (Java JCE, Python python-pkcs11, C…). Cible :
CKA_SENSITIVE = CK_TRUE # la clé ne sort jamais en clair CKA_EXTRACTABLE = CK_FALSE # interdit l'extraction / wrap sortant CKA_DERIVE = CK_FALSE # coupe C_Derive (racine CVE-2015-5464) CKA_MODIFIABLE = CK_FALSE # empêche de rouvrir les attributs après coup CKA_ALLOWED_MECHANISMS = {liste minimale} # réduit la surface # + une clé de WRAP ≠ une clé de DECRYPT (usages exclusifs - leçon Clulow) # + sur un vrai Luna : activer le MODE FIPS = rester dans le périmètre certifié (§04)
La même API PKCS#11, deux configs : l'une laisse fuir la clé, l'autre renvoie CKR_ATTRIBUTE_SENSITIVE. Un HSM certifié avec de mauvais attributs n'est pas plus sûr qu'un SoftHSM bien configuré sur ce point précis. La certification couvre un périmètre - la config décide du reste.
4 · Corrige - checklist de durcissement & divulgation responsable
- Attributs de clés : CKA_SENSITIVE=TRUE, CKA_EXTRACTABLE=FALSE, CKA_DERIVE=FALSE, CKA_MODIFIABLE=FALSE.
- Réduire CKA_ALLOWED_MECHANISMS au strict nécessaire ; une clé = un usage (jamais wrap + decrypt sur la même clé).
- Mode FIPS activé sur un vrai Luna → rester dans le périmètre certifié (§04).
- Séparation des rôles SO / CO / CU ; authentification PED et quorum M-of-N pour les opérations sensibles.
- Rotation des clés, backup/restore maîtrisé (attention aux clés HSS non clonables, §03).
- Supervision : syslog / SNMP, suivi des accès partition ; cklog seulement le temps du debug, client ≥ UC 10.9.1 (§08).
- Transport : NTLS en TLS mutuel (port 1792), activer STC si disponible.
- Chaîne d'approvisionnement : firmware signé uniquement, version alignée sur le certificat (§04–§06).
- Rejoue ce lab après chaque changement de template applicatif - la régression d'attributs se voit en une commande.
Si une vraie trouvaille émerge (sur un HSM que tu es autorisé à tester) : documente, préviens l'éditeur en privé, laisse un délai de correction raisonnable, publie après. Pas de démo à sensation, pas de CVE inventée. « Découvrir les failles et proposer des correctifs » - dans cet ordre, et avec le correctif toujours au bout. C'est l'esprit YesWeHack, c'est la ligne ÉOH.
Ce lab SoftHSM couvre la classe PKCS#11 (attributs, extraction, conflits d'usage) - surface faible historique (§08). Il ne couvre pas : side-channel (conso, EM, timing), tampering physique, extraction/analyse de firmware signé, vraies latences, vrai QRNG, vrai comportement NTLS/PED. Ces analyses exigeraient l'appliance et un accord écrit du fournisseur. C'est une perspective, pas une promesse - et surtout pas un prétexte pour toucher à un matériel qui ne t'appartient pas. En attendant : appuie-toi sur les rapports publics (AVA_VAN.5, Security Policy #4684) et cite-les comme tels.
11 Sources vérifiables
Tout ce dossier s'appuie uniquement sur ces références publiques. Vérifie par toi-même - c'est le principe.
Produit & datasheets
- Annonce Luna 8 (4 août 2026)
- Luna 8 Network HSM - Product Brief
- Luna 7 Network HSM - Product Brief
- Luna 7 - Product Overview
- Page produit Network HSMs
Crypto & PQC
Certifications
- CMVP #4684 (FIPS 140-3 niv. 3)
- CMVP #5450 (Luna T7)
- CC EAL4+ NSCIB-CC-2400054-01
- QSCD eIDAS (TrustCB)
- Thales - FIPS compliance
- Thales - FIPS 140-3 validation (blog)
Matériel K7 (docs de certification)
- FIPS Security Policy #4684 (002-010935-003 Rev. U)
- CC Security Target K7 (002-010985-001 Rev. W)
- CAVP Luna K7 Cryptographic Library
- CAVP Luna K6 Cryptographic Library
- Gemalto finalise le rachat de SafeNet
- Thales - rebranding Luna/SafeNet
Faiblesses & recherche
- CVE-2015-5464 (NVD) · CVE.org
- Déclaration Utimaco (racine PKCS#11)
- Tookan, CCS 2010 (PDF) · DOI
- Clulow, CHES 2003 · CryptokiX
Assemblage & sources ouvertes
- phys.org - IBM 476FP · EE Times - IBM/LSI 45 nm
- SEC/EDGAR - AMCC rachète la gamme PowerPC 400 (2004)
- ProtectServer Migration Guide 5.2 · 5.0
- payShield 10K - datasheet
- Open directory IBM (guides Luna 7.2) · thalesdocs - index firmwares
- Ghioni, Taddeo, Floridi - OSINT/GELSI (AI & Society, 2024)
- Marketing : Fortanix · ebook Thales
Pistes non officielles
Mentions « non confirmé / non trouvé » assumées : avis Luna de janv. 2021 (vigilance.fr) sans ID CVE public ; aucune CVE publique pour le client Luna / KSP / CKLog à ce jour.