Titolo

La guerra alla crittografia - alcune questioni tecniche

5 commenti (espandi tutti)

Giorgio, grazie per la risposta.

Ho capito benissimo lo scopo dell'articolo e il pubblico a cui è rivolto. Proprio per questo motivo, a me sembra che hai dato un'introduzione tecnica all'argomento eccessivamente sbilanciata, rispetto alla parte socio-politica. L'intera questione "privacy/sicurezza" può essere divulgata senza scendere troppo nei dettagli, e anzi dovrebbe essere divulgata in questo modo proprio per permettere una partecipazione anche ai non addetti ai lavori.

Premesso quanto sopra:

- A che pro menzionare la questione dei numeri primi, quando la crittografia a chiave pubblica può essere spiegata astraendo completamente dal substrato matematico, con ottimi esempi pedagogici (vedi il libro di Simon Singh "Codici e Segreti", dove viene spiegata in termini di chiavi e lucchetti)?

- Critichi la mia tendenza a scadere in tecnicismi che sono oscuri al pubblico generico. La cosa probabilmente è anche vera (vedere punto successivo), però mi viene da domandarti: credi che quella tirata sul principio di Landauer, sfere di Dyson, ecc. siano argomentazioni apprezzabili dal pubblico generico? Non sono tecnicismi inutili anch'essi, che potevano essere riassunti in modo molto più sintetico, senza tirare in ballo necessariamente la termodinamica? Noto peraltro che hai glissato completamente sulla mia osservazione che hai riproposto in modo non originale un'argomentazione di un altro autore senza dargli credito. Allo stesso modo, è davvero necessario mettersi a parlare di entropia di una password, senza dare una chiara idea di cosa si tratti?

- Come ho già detto in conclusione del mio precedente commento, mi scuso per la prolissità e la pignoleria del mio intervento. Il problema divulgativo del tuo articolo, per come la vedo io, si può considerare in due modi:

a) O si tiene la parte tecnica al livello più superficiale possibile, e si fa uno sforzo di comunicare i principi alla base della crittografia (senza tirare in ballo entropia, termodinamica, ecc.), concentrandosi di più sulla parte socio-politica che è inevitabilmente più interessante per il pubblico di questo blog;

b) Oppure, se si vuole entrare maggiormente nei dettagli tecnici, lo si fa correttamente evitando di scrivere inesattezze come hai fatto tu in questo articolo, e su cui tra l'altro non hai speso una parola per rispondere a un singolo punto di quelli che ho sollevato. Noto tra l'altro che tipicamente occorre versare molto più inchiostro per correggere un'inesattezza che non a scriverla. Ciò spiega, almeno in parte, il fatto che il mio intervento è stato molto lungo: dire le cose esattamente come stanno è già un lavoro tedioso e lungo di per sé. Se poi bisogna anche correggere errori, il lavoro si allunga ulteriormente perché occorre argomentare con esempi, controesempi ecc. Poi, sicuramente, gioca una parte rilevante anche la mia pignoleria personale :)

Luca, non esiste una ricetta unica per scrivere un articolo divulgativo. Ognuno ha il proprio stile. Il mio stile e' quello di dare una infarinatura tecnica comprensibile ai piu', facendo un compromesso tra semplificazioni e onesta' intellettuale e poi, si' spiegare, ma soprattutto instaurare un grado di fascinazione verso l'argomento che promuova una ricerca spontanea nel lettore: se al 10% di chi legge e' venuta la curiosita' di googlare cos'e' una sfera di dyson o una trapdoor function o come i numeri primi sono coinvolti con crittografia, io ho raggiunto un buon obiettivo. A me premeva far capire che ci sono tre strategie per decrittare un messaggio e che maths is not the weakest ring in the chain. Se a te il mio stile non piace, me ne faro' una ragione.

Non ti ho risposto punto per punto perche' francamente non ne vedo la necessita'. Cosa vuoi che ti dica? Che si' e' vero che ci sono algoritmi meno noti di RSA che non si basano su numeri primi? O forse dobbiamo metterci a fare una discussione su hybrid attacks e l'intersezione tra dictionary attacks, brute force and rainbow table? 

Evidentemente abbiamo approcci alla divulgazione differenti. Ciononostante, rimango dell'idea che se si vuole dare un'infarinatura tecnica ad un qualsiasi argomento scientifico, va bene sì semplificare ed affascinare il pubblico, ma senza scadere in errori marchiani. Francamente, non so che idea possa farsi una persona di quel 10% che googlando "trapdoor function" legge che in realtà si tratta di una cosa diversa da quella che hai scritto tu. Nella migliore delle ipotesi, secondo me, resterà confuso. Nella peggiore, penserà di avere capito qualcosa, e probabilmente sarà anche la cosa sbagliata. Poi magari sono io che sottovaluto la maturità intellettuale del layman.

Notare inoltre che per falsificare la mia affermazione "non hai risposto a un singolo punto di quelli che ho sollevato" non è necessario rispondermi punto per punto, ma ne basta uno. In particolare, mi accontenterei se potessi rispondere almeno a queste tre domande sparse nel mio primo intervento:

- Quale pensi che sia la relazione tra web of trust e crittografia a chiave pubblica?

- Cosa intendi per "unicità" di una chiave/password?

- Dove ti sei documentato per la parte sui limiti termodinamici degli attacchi brute-force?

A scanso di equivoci, non sto insinuando alcuna disonestà intellettuale da parte tua, specialmente riguardo la terza domanda, su cui magari avevo dubbi appena letto l'articolo. Il fatto però che non mi hai risposto a riguardo mi fa pensare che effettivamente tu non conoscessi la provenienza di quell'argomentazione, e si tratta a questo punto di una curiosità personale.

- Quale pensi che sia la relazione tra web of trust e crittografia a chiave pubblica?

Come sarebbe "quale penso?". Web of Trust e' necessario per associare identita' reali a chiavi pubbliche in alternative a CAs. 

- Cosa intendi per "unicità" di una chiave/password?

intendo dictionary attacks e password reuse, come ho gia' scritto.

- Dove ti sei documentato per la parte sui limiti termodinamici degli attacchi brute-force?

Se vuoi sapere da dove vengono i numeri sono da "Applied Cryptography: Protocols, Algorithms, and Source Code in C" di Bruce Schneier. pg 157

«Come sarebbe "quale penso?". Web of Trust e' necessario per associare identita' reali a chiavi pubbliche in alternative a CAs. »

E per associare l'identità reale di A alla sua chiave pubblica ciò che si fa nel WoT è firmare con la chiave privata di qualche altro utente la chiave pubblica di A, in modo completamente decentralizzato. Quindi per realizzare il WoT occorre impiegare gli strumenti della crittografia a chiave pubblica, e non il contrario come invece si evince dal tuo articolo. Curioso tra l'altro che hai perfino citato il WoT, dato che è stato un flop totale e in pratica nel mondo reale si utilizzano le public key infrastructures per risolvere il problema di autenticazione delle chiavi, ovvero l'alternativa tramite CA che hai menzionato nel tuo commento precedente. Voglio dire, la cosa è curiosa considerando il fatto che come esempio di crittosistema a chiave pubblica hai alluso a RSA e ai numeri primi (che, come ha osservato anche agori nel commento sotto, è quello che "va per la maggiore"), mentre per il problema dell'autenticazione hai citato una soluzione di nicchia che quasi nessuno utilizza, almeno non in ambito industriale. Mi pare di capire che la tua visione sia abbastanza distorta verso le soluzioni proposte nell'ambito del free/open source software, e quindi non è molto rappresentativa dello stato dell'arte.

«intendo dictionary attacks e password reuse, come ho gia' scritto.»

Che non vuol dire assolutamente nulla, almeno cercando di collegare la tua risposta con quanto hai scritto nell'articolo. Cito:

«Ovviamente brute forcing dipende largamente dall'entropia della password ma anche dalla sua unicità. Una password ad entropia molto alta ma poco unica, è comunque abbastanza facile da indovinare»

Mi spieghi in che modo una password che viene riutilizzata da un utente in altri servizi, ma con un'entropia alta, sarebbe più facile da indovinare? Viceversa, se parliamo di dictionary attacks, allora non stiamo parlando di brute forcing, visto che per definizione si vanno a tentare tutte le password più probabili contenute in un determinato dizionario, e non tutte le password possibili indistintamente.

Un'ultima precisazione relativa alla tua discussione con Giovanni Federico: non mi risulta che i terroristi di Parigi abbiano usato ROT-13 per comunicare tra di loro, ma solo messaggi in chiaro. Probabilmente hai equivocato da questo articolo, il cui titolo era sarcastico:

Paris Terrorists Used Double ROT-13 Encryption