Principio di Kerckhoffs

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

In crittografia, il principio di Kerckhoffs (conosciuto anche come assunzione, assioma o legge di Kerckhoffs), fu enunciato dal crittografo olandese Auguste Kerckhoffs alla fine del 1880. Esso afferma che la sicurezza di un crittosistema non deve dipendere dal tenere celato il crittoalgoritmo ma solo dal tenere celata la chiave.

In altre parole, il sistema deve rimanere sicuro anche nell'ipotesi che il nemico conosca l'algoritmo di crittazione. Quest'ultimo può anche essere di pubblico dominio; l'unica cosa che importa è che rimanga segreta la chiave. Il principio è stato riformulato (o forse indipendentemente formulato) da Claude Shannon nella forma "il nemico conosce il sistema"[1]: “un sistema dovrebbe essere progettato sotto l'assunzione che il nemico guadagnerà immediatamente familiarità con esso”. In questa forma, il principio è noto come massima di Shannon.

È un principio apprezzato da molti crittografi ed è in netto contrasto al principio della sicurezza tramite segretezza.

Origini[modifica | modifica wikitesto]

Nel 1883 Auguste Kerckhoffs scrisse due articoli pubblicati ne La Cryptographie Militaire, nei quali stilò sei principi progettuali per i cifrari militari:[2]

  1. Il sistema deve essere praticamente, se non matematicamente, indecifrabile.
  2. Questo non deve essere segreto, deve essere in grado di cadere nelle mani del nemico senza inconvenienti.
  3. La sua chiave deve essere comunicabile senza l'aiuto di note scritte, e modificabile o modificabili a piacimento dei corrispondenti.
  4. Deve essere applicabile alla corrispondenza telegrafica.
  5. Deve essere portatile e il suo utilizzo e uso non deve richiedere il concorso di più persone.
  6. È necessario che la sua applicazione sia facile da usare e che non richieda la conoscenza e l'uso di una lunga serie di regole.

Alcuni non sono più validi dall'avvento dei computer, ma il secondo principio, noto oggi come principio di Kerckhoffs, è tutt'oggi di importanza critica.

Spiegazione del principio[modifica | modifica wikitesto]

Kerckhoffs considerava la crittografia come una sfida, e come una migliore alternativa alla tecnica steganografica, che era comune nel diciannovesimo secolo, per nascondere il significato dei messaggi militari. Il problema degli schemi di codifica è che fanno affidamento al fatto che gli uomini sappiano mantenere segreti i dizionari necessari alla decodifica. I dizionari steganografici, una volta rivelati, compromettono permanentemente il sistema di codifica corrispondente. Un altro problema è dato dal fattore rischio che aumenta con l'aumentare delle persone che sono a conoscenza dei dizionari.

La crittografia del diciannovesimo secolo, al contrario, usava semplici tabelle per la trasposizione di caratteri alfanumerici, generalmente date da intersezioni riga-colonna che potevano essere modificate da chiavi genericamente corte e numeriche e che potevano essere trasferite alla memoria umana. Il sistema era visto come indecifrabile in quella tabella e le chiavi non sembravano avere nessun senso compiuto ad un occhio esterno. Il messaggio segreto era compromesso solamente nel caso in cui la tabella, la chiave e il messaggio cadessero tutti nelle mani del nemico in un frame di tempo rilevante. Kerckhoff ha visto i messaggi tattici come se avessero solo poche ore di rilevanza. I sistemi non sono necessariamente compromessi, perché i loro componenti (ad esempio tabelle e tasti di caratteri alfanumerici) possono essere facilmente modificati.

Considerazioni Odierne[modifica | modifica wikitesto]

Un cambiamento odierno al principio di Kerckhoffs idealizza che la sicurezza di un criptosistema dovrebbe dipendere esclusivamente dalla segretezza della chiave e da un randomizzatore privato. Si può dire dunque che un metodo per decifrare e trasmettere informazioni segretamente dovrebbe essere sicuro anche se tutti sono a conoscenza del suo funzionamento. Sicuramente gli attaccanti hanno più familiarità col sistema in questione, ma mancheranno di conoscenza quando dovranno approcciarsi con tutte le possibili istanze che gli vengono presentate dal sistema.

Alcuni crittografi non sono d'accordo con questo e controbattono sul fatto che Kerckhoffs sentisse la necessità di mantenere segreta la chiave. Un altro fattore discordante è dato dal fatto che non si è sicuri della contrarietà di Kerckhoffs nel mantenere "segreti" altri componenti del sistema di crittografia (tabelle, protocolli, algoritmi, ecc.) fintanto che il sistema rimane "indecifrabile".

Vantaggio della chiave segreta[modifica | modifica wikitesto]

Utilizzare una crittografia sicura dovrebbe rimpiazzare il problema di mantenere i messaggi al sicuro con un metodo più facile da gestire, ovvero mantenere al sicuro chiavi di relativamente piccole dimensioni. Un sistema che richiede segretezza a lungo termine per qualcosa di così grande e complesso come l'intero progetto di un sistema crittografico non può ovviamente raggiungere questo obiettivo. Dunque se un sistema è sicuro anche quando il nemico conosce tutto tranne che la chiave, l'unica cosa da gestire è appunto mantenere le chiavi segrete.

Ovviamente ci sono un alto numero di metodi con i quali un attaccante può venire a conoscenza dei dettagli interni del sistema. Tra questi abbiamo la corruzione, il ricatto, oppure la minaccia diretta verso un membro dello staff o verso dei clienti che sono in grado di spiegare il funzionamento del sistema. In guerra, ad esempio, una parte probabilmente catturerà alcune attrezzature e persone dall'altra parte. Ogni parte userà anche spie per raccogliere informazioni. Se un metodo coinvolge un software, qualcuno potrebbe fare un dump della memoria o eseguire il software sotto il controllo di un debugger per capire il metodo. Se si utilizza l'hardware, qualcuno potrebbe acquistare o rubare parte dell'hardware e costruire qualsiasi programma o gadget necessario per testarlo. L'hardware può anche essere smontato in modo che i dettagli del chip possano essere esaminati al microscopio.

Mantenere la sicurezza[modifica | modifica wikitesto]

Una generalizzazione che alcuni fanno del principio di Kerckhoffs afferma: “Minori e semplici sono i segreti che uno deve mantenere per assicurare la sicurezza del sistema, più facile sarà mantenere la sicurezza del sistema.”

Ogni sistema di sicurezza dipende fondamentalmente sul mantenere qualcosa "segreto". Tuttavia l'obiettivo fondamentale del principio di Kerchoffs consiste nel tenere "nascosto" ciò che è meno dispendioso da cambiare in caso di eventi inaspettati e sgradevoli.

Ad esempio, un algoritmo crittografico può essere implementato da hardware e software ampiamente distribuiti tra gli utenti. Se la sicurezza dipende dal mantenerlo "segreto", la divulgazione porta a grandi difficoltà logistiche nello sviluppo, nella verifica e nella distribuzione di implementazioni di un nuovo algoritmo. D'altra parte, se la "segretezza" dell'algoritmo non è importante, ma solo le chiavi utilizzate con l'algoritmo devono essere nascoste, la divulgazione delle chiavi richiede semplicemente il processo più semplice e meno costoso di generare e distribuire nuove chiavi.

Applicazioni[modifica | modifica wikitesto]

In accordo con il principio di Kerckhoffs, la maggior parte dei crittografi civili utilizza algoritmi di dominio pubblico. Al contrario, i cifrari utilizzati per proteggere le informazioni governative o militari sono spesso mantenuti segreti. Tuttavia, non si deve presumere che i codici governativi / militari debbano essere tenuti segreti per mantenere la sicurezza. È piuttosto comune tra le aziende mantenere il sistema interno segreto. Il fulcro del dibattito consiste nel fatto che questa segretezza renda veramente il prodotto più sicuro e meno vulnerabile agli attacchi, oppure si tratti esclusivamente di una sicurezza a breve termine e nel lungo periodo saranno i sistemi che sono stati pubblicati ed analizzati ad essere i più sicuri ed affidabili.

Sicurezza tramite segretezza[modifica | modifica wikitesto]

Magnifying glass icon mgx2.svgLo stesso argomento in dettaglio: Sicurezza tramite segretezza.

Si tratta di un principio comune per le aziende, e talvolta anche per gli enti standard come nel caso del Content Scrambling System,allo scopo di mantenere "segreti" i meccanismi interni di un sistema. Alcuni sostengono che questa "sicurezza tramite segretezza" rende il prodotto più sicuro e meno vulnerabile agli attacchi. Una contro-argomentazione è che mantenere "nascosto" l'interno potrebbe migliorare la sicurezza a breve termine, ma a lungo termine dovrebbero essere considerati solo i sistemi che sono stati pubblicati e analizzati. Steve Bellovin commentò:[3]

«Il tema della sicurezza attraverso l'oscurità viene spesso affrontato. Penso che gran parte del dibattito avvenga perché la gente fraintende il problema. Aiuta, penso, a tornare al secondo principio di Kerckhoffs, spiegato come 'Il sistema non deve richiedere segretezza e può essere rubato dal nemico senza causare problemi', su http://petitcolas.net/fabien/kerckhoffs/. Kerckhoffs non ha detto che 'pubblica tutto' né 'tiene tutto segreto'; piuttosto, ha detto che il sistema dovrebbe essere sicuro anche se il nemico ne ha una copia. In altre parole: progetta il tuo sistema assumendo che i tuoi avversari lo sappiano in dettaglio. (Un ex funzionario del National Security Security Center della NSA mi disse che l'ipotesi standard era che il numero seriale 1 di ogni nuovo dispositivo fosse consegnato al Cremlino.) Dopo di ciò, però, non c'è niente di sbagliato nel cercare di mantenerlo segreto - è un altro ostacolo che il nemico deve superare. (Un ostacolo che gli inglesi hanno incontrato quando attaccavano il sistema tedesco Enigma era semplice: non conoscevano la mappatura non cifrata tra i tasti della tastiera e l'ingresso all'array di rotori.) Ma - non affidarsi alla segretezza.»

Note[modifica | modifica wikitesto]

  1. ^ Claude Shannon, Communication Theory of Secrecy Systems, in Bell System Technical Journal, vol. 28, 4 ottobre 1949, p. 662. URL consultato il 20 giugno 2014.
  2. ^ (EN) La cryptographie militaire, su petitcolas.net. URL consultato il 26 febbraio 2015 (archiviato l'11 ottobre 2014).
  3. ^ Steve Bellovin, Security through obscurity, in Risks Digest, June 2009.

Bibliografia[modifica | modifica wikitesto]

  • (FR) Auguste Kerckhoffs, La cryptographie militaire, in Journal des sciences militaires, vol. 9, gennaio 1883, pp. 5–83. URL consultato il 26 febbraio 2015.
  • (FR) Auguste Kerckhoffs, La cryptographie militaire, in Journal des sciences militaires, vol. 9, febbraio 1883, pp. 161–191. URL consultato il 26 febbraio 2015.