HSM — Hardware Security Module

Un HSM e un dispozitiv hardware specializat care păstrează chei criptografice într-un mediu securizat.

Ce este un HSM?

Un HSM (Hardware Security Module) e un dispozitiv hardware specializat care generează, păstrează și gestionează chei criptografice într-un mediu securizat — fizic și logic.

Spre deosebire de stocarea cheilor pe disc sau în RAM (unde un atacator le poate citi dacă compromite sistemul), un HSM nu permite niciodată ca o cheie să părăsească hardware-ul securizat decât în formă criptată sau prin proxy. Chiar și administratorul sistemului nu poate „vedea" cheile — doar le poate folosi prin operații autorizate.

Ce face un HSM

Operațiile tipice executate în interiorul unui HSM:

| Operație | Descriere | |---|---| | Generare chei | RSA, ECC, AES, HMAC — cu entropie hardware | | Semnătură digitală | Semnează documente, certificate, tranzacții | | Decriptare | Decriptează date fără a expune cheia | | Derivare chei | HKDF, PBKDF2, chei dependente de context | | Emitere carduri | Generare PIN, personalizare chip + bandă magnetică | | HSM-to-HSM | Migrare chei între HSM-uri criptat | | Backup/Restore | Chei salvate în formă criptată pe token-uri USB sau pe hârtie |

Principiul fundamental: Cheia nu iese niciodată din HSM decât:

  • Criptată sub o altă cheie (wrapping)
  • Distrusă (la sfârșitul ciclului de viață)

Arhitectură

┌─────────────────────────────────────────────┐
│           Network Interface (TLS)            │
├─────────────────────────────────────────────┤
│           API Layer (PKCS#11, JCE)           │
├─────────────────────────────────────────────┤
│         Policy Engine + Audit Log            │
├─────────────────────────────────────────────┤
│         Cryptographic Engine                 │
│  ┌─────────┬──────────┬────────────────┐     │
│  │ RSA     │ ECC      │ AES / ChaCha    │     │
│  ├─────────┼──────────┼────────────────┤     │
│  │ RNG     │ Key Gen  │ Hash / HMAC     │     │
│  └─────────┴──────────┴────────────────┘     │
├─────────────────────────────────────────────┤
│         Secure Key Storage                   │
│  ┌─────────────────────────────────────┐     │
│  │  Battery-backed RAM  sau  Secure EEPROM │   │
│  └─────────────────────────────────────┘     │
├─────────────────────────────────────────────┤
│  Tamper Detection (shreds chei la atac)     │
└─────────────────────────────────────────────┘

Componente critice

| Componentă | Rol | |---|---| | Secure element | Cip specializat care stochează chei și execută operații criptografice — izolat fizic de CPU-ul principal | | True RNG | Generator de numere aleatoare hardware (bazat pe zgomot termic, oscilatoare, sau fenomene cuantice) | | Tamper detection | Senzori de lumină, temperatură, tensiune, perforare — la detectarea unui atac fizic, cheile sunt șterse instantaneu | | Battery-backed RAM | Memorie volatilă care păstrează cheile cât timp bateria e conectată — la deconectare, datele dispar |

Securitate fizică — tamper protection

Un HSM e proiectat să se autodistrugă dacă cineva încearcă să îl deschidă:

| Atac | Reacția HSM-ului | |---|---| | Deschidere carcasă | Senzor mecanic → ștergere chei | | Variație temperatură | Senzor termic → ștergere chei | | Tăiere cu laser | Senzor de lumină în carcasă → ștergere chei | | Radiografie / SEM | Ecranare electromagnetică | | Freeze (azot lichid) | Senzor de temperatură → ștergere chei | | Bus probing | Criptare pe magistrală între cipuri |

Zeroizare: Termenul tehnic pentru ștergerea instantanee a tuturor cheilor — numit după zerourile care rămân în urmă.

Tipuri de HSM-uri

1. HSM enterprise (Thales Luna, Utimaco, Entrust)

💰 $10k - $100k
📦 Rack 1U-2U, conectare rețea
🏦 Bănci centrale, procesatori de plăți, CA-uri
⚡ 1.000 - 100.000 semnături/sec

Folosite pentru infrastructura critică a băncilor: semnarea tranzacțiilor interbancare (SWIFT), emiterea cardurilor, root CA.

2. HSM cloud (AWS CloudHSM, Azure Dedicated HSM)

💰 ~$1-5/h (plata pe oră)
☁️ Virtualizat, dar dedicat fizic per tenant
🏦 Bănci în cloud, fintech-uri

HSM-ul fizic e în datacenter-ul cloud-ului, dar doar tu ai cheile. Nici măcar AWS nu le poate accesa.

3. HSM embedded (YubiHSM, Microchip ATECC608)

💰 $20 - $500
📦 Cip sau USB stick
🔐 IoT, startup-uri, chei de firmware

HSM-uri mici, ieftine, pentru aplicații embedded. YubiHSM 2 e un HSM real într-un stick USB de $500 — suficient pentru o mică firmă care trebuie să semneze documente.

API-uri standard

PKCS#11

Standardul cel mai vechi și mai răspândit. Definește o interfață C pentru acces la operații criptografice:

CK_SESSION_HANDLE session;
CK_OBJECT_HANDLE priv_key;

// Deschide sesiune pe slot-ul HSM-ului
C_OpenSession(slot_id, CKF_SERIAL_SESSION, NULL, NULL, &session);

// Semnează un hash cu cheia privată din HSM
C_SignInit(session, CKM_RSA_PKCS, &priv_key);
C_Sign(session, hash, hash_len, signature, &sig_len);

// Cheia NU părăsește HSM-ul — doar semnătura iese

JCE (Java Cryptography Extension)

Provider JCE care expune HSM-ul ca pe un KeyStore standard Java:

KeyStore ks = KeyStore.getInstance("Luna");
ks.load(null, null);
PrivateKey key = (PrivateKey) ks.getKey("bank-key", null);
Signature sig = Signature.getInstance("SHA256withRSA");
sig.initSign(key);
sig.update(data);
byte[] sign = sig.sign();

Cine folosește HSM-uri

| Domeniu | Aplicație | |---|---| | Bănci | SWIFT, emitere carduri, ATM-uri, semnătura documentelor | | Procesatori de plăți | Visa, Mastercard — autorizare tranzacții | | Certificate Authority | Emiterea certificatelor SSL/TLS root și intermediate | | Guverne | E-ID, pașapoarte electronice, semnături legale | | Industrie | Semnarea firmware-ului, protejarea IP-ului | | Telecom | Autentificare SIM, eSIM |

HSM + seL4 + Rust — nivelul următor

Un HSM tradițional rulează de obicei un Linux embedded sau un RTOS proprietar. Probleme:

| Problemă | Risc | |---|---| | Linux e imens (5-50 MB) | Suprafață de atac uriașă | | Bug de memorie în stack-ul TLS | Poate duce la scurgere de chei | | Izolare OS-level (procese) | Un kernel exploit = totul compromis | | Certificare limitată | Common Criteria EAL4+ e greu de atins |

Soluția: seL4 + Rust

seL4 → kernel de 50 KB, verificat matematic
Rust → fără bug-uri de memorie în userspace
Combinația → certificare EAL7 posibilă

Cu seL4, chiar dacă stack-ul TLS e complet compromis, atacatorul nu poate accesa memoria componentei care execută operațiile criptografice. Asta nu e o „opțiune de securitate" — e o proprietate demonstrată matematic a kernelului.

Prețul unui HSM enterprise normal: $5k-20k Prețul unui HSM seL4 + Rust certificat EAL7: $50k+ (pentru că oferă garanții pe care niciun concurent nu le poate egala)

Exemple de produse

| Produs | Tip | Preț | |---|---|---| | Thales Luna SA | Enterprise (rack) | $15k - $100k | | Utimaco SecurityServer | Enterprise (rack) | $10k - $80k | | Entrust nShield | Enterprise (rack) | $20k - $100k | | AWS CloudHSM | Cloud | ~$1-5/h | | YubiHSM 2 | USB stick | $500 | | ProtectServer | PCIe card | $3k - $10k | | SoftHSM | Software (doar test) | Gratis |

Concluzie

Un HSM e piatra de temelie a securității criptografice enterprise. Fără el, cheile băncilor ar sta pe disc — accesibile oricărui atacator care pătrunde în rețea. Cu el, chiar și un atacator care controlează complet serverul nu poate fura cheile — pentru că ele nu există în afara HSM-ului.

Combinația cu seL4 și Rust reprezintă stadiul tehnic actual al securității criptografice: un kernel verificat matematic, cod fără bug-uri de memorie, și izolare hardware garantată.