Common Criteria — certificarea securității IT

Common Criteria (ISO 15408) e standardul internațional pentru evaluarea securității produselor IT.

Ce este Common Criteria?

Common Criteria (CC) e un standard internațional (ISO 15408) care definește un cadru pentru evaluarea și certificarea securității produselor IT. Scopul: să poți spune cu încredere că un produs face exact ce pretinde din punct de vedere al securității — și nimic în plus.

Spre deosebire de certificări precum PCI DSS (care auditează procese) sau ISO 27001 (care auditează organizații), Common Criteria evaluează produsul în sine — codul, arhitectura, documentația, și procesul de dezvoltare.

Istoric

| An | Eveniment | |---|---| | 1985 | TCSEC (USA, "Orange Book") — primul standard de securitate IT | | 1991 | ITSEC (Europa) — separă funcționalitatea de asigurare | | 1996 | Common Criteria v1.0 — unifică TCSEC + ITSEC | | 1999 | ISO 15408 — devine standard internațional | | 2005 | CC v3.1 — versiunea curentă | | 2020+ | CC:2022 — actualizări pentru IoT, cloud, AI |

Țări membre

Common Criteria e recunoscut de 31 de țări prin CCRA (Common Criteria Recognition Arrangement). Un produs certificat în Germania e acceptat și în Japonia, Canada, Franța, etc. Fără această recunoaștere, fiecare țară ar trebui să evalueze produsul separat.

Arhitectura Common Criteria

CC e structurat pe 3 dimensiuni principale:

┌─────────────────────────────────────────────────────────┐
│                   Common Criteria                        │
├────────────┬────────────────────┬───────────────────────┤
│  Partea 1  │     Partea 2       │      Partea 3         │
│  Introducere│  Functional        │  Assurance            │
│  + model   │  Requirements (SFR)│  Requirements (SAR)   │
├────────────┼────────────────────┼───────────────────────┤
│  Ce face   │  Ce funcții de     │  Cât de riguros e     │
│  standardul│  securitate        │  procesul de evaluare │
└────────────┴────────────────────┴───────────────────────┘

1. Protection Profile (PP)

Un PP e o specificație de securitate reutilizabilă pentru o clasă de produse. De exemplu:

| PP | Pentru | |---|---| | PP-OS | Sisteme de operare | | PP-DB | Baze de date | | PP-HSM | Hardware Security Modules | | PP-Smartcard | Carduri cu cip | | PP-VPN | Gateway-uri VPN | | PP-IC | Circuite integrate (cipuri) |

Un producător care face un HSM poate pretinde conformitatea cu PP-HSM — nu trebuie să scrie de la zero cerințele de securitate.

2. Security Target (ST)

ST e documentul specific produsului tău. El spune:

  • Ce PP-uri respectă
  • Ce funcții de securitate implementează (SFR)
  • Ce nivel de asigurare (EAL) atinge
  • Arhitectura și modelul de amenințări

3. SFR — Security Functional Requirements

Funcțiile concrete pe care produsul trebuie să le implementeze. Din Partea 2 a standardului:

| Clasă | Familie | Exemplu | |---|---|---| | FAU | Audit | Logare evenimente de securitate | | FDP | Protecția datelor | Control acces, izolare | | FIA | Identificare/Autentificare | Autentificare cu 2 factori | | FCS | Criptografie | AES-256, RSA-4096 | | FPT | Protecție TSF | Auto-test, integritate | | FTA | Acces sesiune | Timeout, limitare încercări |

EAL — Evaluation Assurance Levels

Cele 7 niveluri de asigurare:

| Nivel | Nume | Ce implică | Cost estimativ | |---|---|---|---| | EAL1 | Testat funcțional | Testare, review documentație | $10k-50k | | EAL2 | Testat structural | Testare + analiză arhitectură | $50k-200k | | EAL3 | Testat metodic | Ca EAL2 + configurare controlată | $100k-400k | | EAL4 | Proiectat metodic | Analiză design, teste independente | $300k-1M | | EAL5 | Proiectat semiformal | Design semiformal, analiză modulară | $1M-3M | | EAL6 | Verificat semiformal | Implementare verificată, testare completă | $3M-8M | | EAL7 | Verificat formal | Demonstrație matematică, model formal | $8M-20M+ |

Observație: EAL nu înseamnă "mai sigur". Un produs EAL1 poate fi mai bine proiectat decât unul EAL4 — dar ai mai puține dovezi că e corect.

EAL7 — ce înseamnă

EAL7 e cel mai înalt nivel de asigurare. Pentru a-l atinge, trebuie:

  1. Model formal complet al produsului (de obicei în teorema prover: Isabelle/HOL, Coq)
  2. Demonstrație matematică că implementarea respectă modelul
  3. Testare exhaustivă a tuturor căilor critice
  4. Analiză modulară — fiecare componentă e verificată izolat
  5. Configurare complet documentată — nimic nu e lăsat la voia întâmplării

În practică, foarte puține produse au atins EAL7. Motivul: costul.

Produse certificate EAL7

seL4 — primul microkernel EAL7

seL4 e cel mai cunoscut exemplu de produs EAL7. Verificarea lui formală a demonstrat:

  • Corectitudine funcțională: Implementarea C respectă specificația
  • Absența deadlock-ului: Sistemul nu se blochează
  • Integritatea memoriei: Un task nu poate accesa memoria altuia
  • Izolarea capabilităților: Accesul e controlat strict

Raport demonstrație/cod: ~23:1 (200.000 linii demonstrație pentru 8.700 linii C)

Alte produse EAL7

| Produs | Tip | An | |---|---|---| | seL4 | Microkernel | 2009 (primul EAL7) | | Integrity-178B | RTOS | 2011 | | VxWorks 653 | RTOS (DO-178C) | 2014 | | Green Hills INTEGRITY | RTOS | 2008 |

Restul certificărilor EAL7 sunt în principal cipuri și carduri smartcard — domenii unde costul e justificat de volum.

EAL și costurile

De ce e EAL7 atât de scump?

| Factor | Impact | |---|---| | Echipa de evaluare | Laboratoare acreditate (ex: BSI Germania, ANSSI Franța) — costă $200-500/h | | Timp | Evaluarea EAL7 durează 2-5 ani | | Tooling | Theorem provers, model checkers, licențe | | Documentație | Sute de pagini de specificații formale | | Resurse umane | Experți în verificare formală — foarte rari și scumpi |

Comparație cu testarea clasică

| Abordare | Cost | Erori găsite | Garanție | |---|---|---|---| | Testare manuală | $10k | ~30% din bug-uri | Nimic | | Testare automată | $50k | ~60% | Nimic | | Fuzzing | $100k | ~80% (bug-uri de memorie) | Nimic | | EAL4 | $500k | ~90% | Design documentat | | EAL7 | $5M+ | ~99.99% | Demonstrație matematică |

Common Criteria vs alte certificări

| Certificare | Ce evaluează | Pentru cine | Cost | |---|---|---|---| | Common Criteria | Produsul IT | Guverne, militari, bănci | $50k-20M | | PCI DSS | Procese de plată | Procesatori de carduri | $10k-500k/an | | ISO 27001 | Organizația | Toate industriile | $5k-50k | | DO-178C | Software avionic | Aeronautică | $1M-50M | | IEC 61508 | Sisteme sigure | Industrial | $100k-10M | | FedRAMP | Cloud | Guvernul SUA | $500k-5M |

Ciclul unei certificări

1. Definire ST + PP
       ↓
2. Dezvoltare produs (cu cerințe CC)
       ↓
3. Autoevaluare (producătorul verifică)
       ↓
4. Evaluare formală (laborator acreditat)
       ↓
5. Certificare (autoritatea națională)
       ↓
6. Mentenanță (monitorizare continuă)

Durată totală: 1-5 ani, în funcție de EAL.

Laboratoare acreditate

| Țară | Autoritate | Laboratoare | |---|---|---| | Germania | BSI | TÜViT, atsec | | Franța | ANSSI | Oppida, Serma | | USA | NIAP | Leidos, Booz Allen | | UK | NCSC | Aiuk, Correlog | | Canada | CSEC | EWA-Canada, CGI | | Japonia | IPA | Miech, Mayasato |

Certificare în practică

Exemplu: certificarea unui HSM

timeline
    title Certificare HSM EAL4+
    2025-01 : Definire Security Target (ST)
    2025-03 : Dezvoltare conform cerințelor
    2025-06 : Autoevaluare internă
    2025-09 : Depunere la laborator
    2025-12 : Evaluare formală
    2026-06 : Certificare EAL4+

Pentru HSM, EAL4+ e standardul minim acceptat de bănci. Un HSM seL4 + Rust poate atinge EAL6+ — un diferențiator comercial major.

Critici și limitări

Common Criteria nu e perfect:

  1. Costul prohibitiv: EAL7 e accesibil doar pentru produse cu sute de mii de utilizatori
  2. Durata: Până când termini certificarea EAL7, produsul poate fi depășit
  3. Recunoaștere limitată: CCRA nu include toate țările (China, Rusia au propriile standarde)
  4. "Certified but broken": CC certifică securitatea conform specificației, nu în termeni absoluți. Un produs EAL4 poate avea bug-uri — doar că ele nu sunt în ceea ce s-a evaluat
  5. Flexibilitate redusă: Odată certificat, orice modificare necesită reevaluare — încetinesc inovația
  6. Competența evaluatorilor: Calitatea evaluării depinde de expertiza laboratorului — variază semnificativ

Concluzie

Common Criteria rămâne standardul de aur pentru certificarea securității în domenii critice. EAL7 — cu verificarea sa formală — e cea mai apropiată garanție de "acest produs e corect" pe care o poți obține azi.

Pentru proiectul tău (seL4 + Rust + HSM), CC e relevant pentru că:

  • seL4 e deja certificat EAL7 — ai cel mai înalt nivel de asigurare a kernelului
  • Rust reduce riscul de bug-uri de memorie în aplicație — ușurează certificarea
  • Un HSM pe seL4 poate pretinde EAL6+ — un avantaj competitiv real față de HSM-urile Linux care ajung la EAL4