La guida di un software engineer alla crittografia: Come non sbagliare

Digitree - Disruptive technologies for secure smart workers / Sicurezza informatica  / La guida di un software engineer alla crittografia: Come non sbagliare
crittografia_dati

La guida di un software engineer alla crittografia: Come non sbagliare

La crittografia è un argomento difficile e complicato, accompagnato da un insieme di incomprensibili abbreviazioni ed acronimi, e comprendere come funziona richiede un bel po’ di anni di studio in matematica superiore.
Ci sarebbe un modo semplice per aiutarti a selezionare una tecnologia crittografica appropriata alla maggior parte degli utilizzi business, ma quell’approccio può non garantire quello che ci si aspetta ed è un buon esempio del perché essere compliant ed essere sicuri non siano la stessa cosa. Oggigiorno, il più importante criterio è utilizzare un algoritmo crittografico che sia stato validato rispetto allo standard statunitense Security Requirements for Cryptographic Modules, conosciuto anche come FIPS 140-2. Comprendere però i motivi per cui questo abbia effettivamente senso richiede una piccola digressione in campo economico.

Presta fede alla crittografia

Gli economisti dividono i beni in tre tipi —search goods, experience goods e credence goods—la cui differenza dipende dalla diversa facilità di verificarne le proprietà da parte dei consumatori.

  • I search goods hanno attributi che sono facilmente verificabili prima del loro acquisto. Se siete alla ricerca di una macchina rossa, per esempio, è semplice controllare se il potenziale acquisto è, di fatto, rosso. Pochissimi, o forse nessuno, dei prodotti IT security rientrano in questa categoria.
  • Gli experience goods hanno attributi che non sono palesi prima del loro consumo ma la cui verifica avviene dopo il consumo stesso in modo molto facile. Se si è alla ricerca di un automobile a basso consumo, non è possibile dire a prima vista che un’automobile fa, ad esempio, 14 chilometri con un litro a condizioni di guida standard (seppure sia per tale ragione che questa informazione deve essere fornita obbligatoriamente ai consumatori). Ma il controllo può essere effettuato facilmente. Molti prodotti di sicurezza sono probabilmente experience goods: non si può dire se un software antivirus o un sistema di rilevazione delle intrusioni (IDS), per esempio, proteggeranno realmente la propria rete prima che vengano effettivamente implementati. Ma si possono osservare i messaggi di avvertimento e rivedere file di log dei prodotti installati per verificare che essi stanno di fatto funzionando correttamente.
  • I credence goods invece hanno proprietà che non possono venire facilmente verificate né prima né dopo il loro consumo. I prodotti di agricoltura biologica o la carne di animali allevati in modo non intensivo sono esempi di credence goods, è molto difficile verificare questi particolari attributi, perfino dopo aver consumato prodotti che dichiarano di possederli. Molti farmaci sono credence goods perché è difficile dire se la guarigione sia effettivamente avvenuta grazie ad essi, per un effetto placebo o per lo spontaneo recupero dell’organismo stesso.

I prodotti che implementano la crittografia sono molto probabilmente credence goods: ci vogliono capacità dispendiose e non ordinarie per verificare che i dati risultano realmente protetti dall’utilizzo della crittografia, e la maggior parte delle persone non è in grado di distinguere facilmente tra una crittografia molto debole ed una molto forte. Anche dopo aver adottato la crittografia, non si è mai del tutto sicuri che ci stia effettivamente proteggendo.

E’ sempre possibile che un avversario intelligente possa sviluppare un tipo di attacco che gli consenta di violare la crittografia che stai utilizzando e lo metta in pratica, e forse anche riesca a leggere i tuoi messaggi criptati, e che tu non abbia assolutamente idea che egli lo stia facendo.

I prodotti non possono sempre essere puramente classificati come search goods, experience goods, o credence goods, ed i prodotti reali spesso sono una combinazione di più di una categoria. Le automobili hanno alcune caratteristiche search, come il colore, ed altre experience, come l’efficienza dei consumi.

Similmente i prodotti di sicurezza informatica possono avere caratteristiche che appartengono a più di una categoria. Si può facilmente rivedere i file di log dell’IDS che si è installato e verificare che effettivamente è in grado di bloccare alcuni attacchi sulla nostra rete, quindi il sistema ha alcune caratteristiche experience. Allo stesso tempo, il bilancio tra errori di Tipo I (falsi positivi) ed errori di Tipo II (falsi negativi)* che bisogna considerare in un IDS per valutarne la sensibilità significa che il sistema sta presumibilmente mancando di rilevare qualche attacco alla rete, del quale tu non ne puoi essere consapevole. Il fatto che percentuale di attacchi non rilevati possa essere accettabilmente bassa, seppure non verificabile, costituisce una caratteristica credence dell’IDS.

D’altra parte, i prodotti crittografici sembrano possedere molti attributi dei credence goods e pochi degli altri tipi di bene. Non si può certamente affermare che un prodotto di questo tipo funziona come pubblicizzato prima di averlo provato, perciò probabilmente non ci sono caratteristiche search in esso. E, poiché è difficile e costoso verificare che la crittografia fornisce una forte protezione delle informazioni o che una firma digitale è davvero difficile da contraffare, anche dopo averli utilizzati, i prodotti crittografici mostrano più caratteristiche dei credence goods rispetto agli quelli experience.

L’incertezza sulla reale qualità associata ai credence goods può condurre a risultati bizzarri, come prezzi inferiori alle attese e piuttosto uniformi anche a fronte di significative differenze di qualità.

Se i consumatori di un prodotto non sono in grado di distinguere facilmente tra prodotti di alta e bassa qualità, anche dopo averli effettivamente consumati, ci si può aspettare che i produttori non possano facilmente differenziare i loro prodotti da quelli dei concorrenti. In questo caso, ci si dovrebbe aspettare che i prezzi di prodotti concorrenti siano approssimativamente gli stessi.

Non potendo i consumatori essere consapevoli delle carenze dei prodotti di bassa qualità, i produttori di questo genere tenderanno a chiedere un prezzo più alto per essi. Similmente, la pressione competitiva tenderà a contenere i prezzi dei prodotti di alta qualità. George Akerlof è stato il primo a descrivere questa situazione del suo articolo degli anni 70, ormai divenuto un classico, “The Market for ‘Lemons’: Quality Uncertainty and the Market Mechanism” e di fatto ha vinto il premio Nobel per l’economia nel 2001 per il suo lavoro in quest’area.

Nel peggiore dei casi, I prodotti di bassa qualità scalzeranno quelli di alta qualità dal mercato se i produttori di questi ultimi rifiuteranno di vendere i loro prodotti al basso prezzo che il mercato impone loro.

FIPS 140-2: Ignoralo a tuo rischio

Standard come il FIPS 140-2 sono concepiti per evitare tali carenze del mercato e forniscono ai clienti un indicatore del fatto che essi stanno acquistantdo una crittografia di alta qualità.

E poiché è difficile anche per gli auditor dire se una particolare forma di crittografia sia buona o cattiva, molti di loro semplicemente richiedono che essa segua gli standard FIPS 140-2. La regola HIPAA relativa alla notificazione dei data breach, per esempio, esime dai requisiti di riportare i data breach soltanto quando le informazioni sanitarie sono state criptate con algoritmi validati FIPS 140-2.

Seguire gli standard FIPS 140-2 è anche grandemente raccomandato in altre attività, come i servizi finanziari concernenti servizi di pagamento, dove i requisiti del PCI Security Standards Council relativi alla crittografia punto-a-punto così come definita nel “Payment Card Industry (PCI) Point-to-Point Encryption Solution Requirements and Testing Procedures,” esplicitamente consentono l’utilizzo di tecniche crittografiche che siano state validate FIPS 140-2 e richiedono un processo aggiuntivo di certificazione per quelle tecniche che non lo sono.

Nelle organizzazioni governative (statunitensi), essere conformi agli standard FIPS 140-2 è richiesto con forza ancora maggiore. Dal punto di vista degli auditor governativi (ispettori generali), le informazioni confidenziali crittografate con un metodo difforme agli standard FIPS 10-2 sono considerate come se non fossero state affatto crittografate.

Cioè, le agenzie federali possono utilizzare tecnologie di crittografia perfettamente sicure, ma se tali tecnologie non sono validate FIPS 140-2, i dati crittografati sono trattati come se non lo fossero e non avessero alcun tipo di protezione. Ciò significa che è possibile che un’agenzia federale stia utilizzando una crittografia completamente sicura, ma per i suoi auditor è possibile a loro volta decidere che quella agenzia ha subito un data breach per il fatto di avere esposto informazioni riservate su internet.

Può sembrare un atteggiamento un po’ draconiano, ma le ragioni di questa rigidità dovrebbero a questo punto essere chiare. Poiché la tecnologia crittografica è un credence good, è molto difficile dire se sia o no efficace, e la stretta aderenza agli standard FIPS 140-2 è un modo del governo per affrontare questa difficoltà.

I limiti del FIPS 140-2

Il FIPS 140-2 è un insieme fisso di requisiti in base ai quali validare una tecnologia crittografica. I requisiti sono stati concepiti per indicare che una particolare implementazione crittografica è sicura. Ma questo significa che le altre tecnologie sono insicure? Non necessariamente. Solo un piccolo numero di algoritmi crittografici possono essere usati in accordo al FIPS 140-2, e ci vogliono molti anni prima che il governo aggiunga un nuovo algoritmo alla lista di quelli approvati. Così il fatto che un particolare algoritmo crittografico non sia approvato in accordo al FIPS 140-2 non significa che esso non sia sicuro. Può semplicemente significare che non ne è stato ancora approvato l’uso in base allo standard.

Nel corso di almeno dieci anni a questa parte, gli articoli accademici sulla crittografia hanno contenuto rigorose prove matematiche sul fatto che gli approcci fossero sicuri. Tali prove offrono una forte evidenza che queste nuove tecniche sono davvero sicure.

Prima di avvalersi di queste prove matematiche, il fatto che nessun altro crittografo fosse in grado di trovare una debolezza di un algoritmo dopo molti anni di tentativi costituiva la migliore garanzia che un tale algoritmo fosse probabilmente sicuro. Ma questo procedimento è di gran lunga più suscettibile agli errori rispetto ad un approccio rigorosamente matematico. Poiché peraltro tali prove sono ancora inacessibili ai non specialisti, non risulta chiaro se possano essere utili per l’utente-tipo della crittografia. Costui resta perciò incapace di giudicare accuratamente se un nuovo modello crittografico (un credence good) sia o meno sicuro. Seguire semplicemente uno standard consolidato come il FIPS 140-2 è la soluzione più pratica a questa difficoltà.

Conclusioni

Ci sono molte cose da considerare scegliendo il tipo di crittografia da utilizzare ed il modo di impiegarla nel modo più efficace per proteggere i propri dati sensibili, ma un criterio risulta più importante di tutti gli altri: se o meno una data tecnologia sia stata validata in base allo standard FIPS 140-2. Se si sceglie un algoritmo che soddisfa questo criterio, è praticamente sicuro che verrà accettato dai tuoi auditor, il che è importante così come ogni altro aspetto di una tecnologia.

 

Luther Martin
Distinguished Technologist
Hewlett Packard Enterprise

Per la versione originale in inglese: http://techbeacon.com/software-engineers-guide-encryption-how-not-fail

No Comments
Post a Comment