Differenza tra teoria e pratica della sicurezza e crittografia?


21

Quali sono le differenze interessanti tra teoria e pratica della sicurezza e della crittografia?

I più interessanti saranno ovviamente esempi che suggeriscono nuove strade per la ricerca teorica basata sull'esperienza pratica :).

Le risposte potrebbero includere (ma non sono limitate a):

  • Esempi in cui la teoria suggerisce che qualcosa è possibile ma non viene mai utilizzato nella pratica
  • Esempi in cui la teoria suggerisce che qualcosa è sicuro che non è sicuro nella pratica
  • Esempi di qualcosa in uso pratico diffuso hanno poca teoria dietro.

...

Avvertimento

Se la tua risposta è essenzialmente della forma "La teoria riguarda gli asintotici, ma la pratica non lo è", allora la teoria dovrebbe essere davvero centrale, o la risposta dovrebbe includere esempi specifici in cui l'esperienza pratica su istanze del mondo reale differisce dalle aspettative basate sulla teoria.


Un esempio che conosco: valutazione sicura dei circuiti. Molto potente in teoria, ma troppo complicato per poterlo mai usare in pratica, perché implicherebbe prendere il codice, srotolarlo in un circuito e quindi fare una valutazione sicura di ciascun gate uno alla volta.


Cordiali saluti, questa domanda è stata ispirata da alcuni della retorica / discussione su quest'altra domanda: cstheory.stackexchange.com/questions/453/…
Joshua Grochow

Risposte:


23

Oh ragazzo, da dove cominciare.

Quello grande è sicuramente scatole nere. I ricercatori di Crypto si preoccupano di cose come il problema di inaffidabilità del modello Oracle casuale. I ricercatori della sicurezza sono all'estremo opposto e vorrebbero che tutto fosse utilizzabile come una scatola nera, non solo funzioni di hash. Questa è una fonte costante di tensione.

Per illustrare, se si esamina l'analisi formale dei protocolli di sicurezza, ad esempio la logica BAN , si vedrà che la crittografia simmetrica viene trattata come un "codice a blocchi ideale". C'è una sottile distinzione qui: la logica BAN (e altre tecniche di analisi del protocollo) non pretendono di essere prove di sicurezza; piuttosto, sono tecniche per trovare difetti. Pertanto non è strettamente vero che qui è coinvolto il modello di cifratura ideale. Tuttavia, è empiricamente vero che la maggior parte dell'analisi della sicurezza tende ad essere limitata al modello formale, quindi l'effetto è lo stesso.

Non abbiamo ancora nemmeno parlato dei praticanti. Questi tipi in genere non hanno nemmeno la minima idea che cripto-primitivi non siano destinati a essere scatole nere, e dubito che questo cambierà mai - decenni di tentativi di battere questo nella loro testa non hanno fatto la differenza.

Per vedere quanto è grave il problema, considera questo avviso di sicurezza relativo alla perdibilità della firma API. Il bug è in parte dovuto all'attacco di estensione della lunghezza nella costruzione Merkle-Damgard (che è qualcosa di veramente fondamentale), e colpisce Flickr, DivShare, iContact, Mindmeister, Myxer, RememberTheMilk, Scribd, Vimeo, Voxel, Wizehhive e Zoomr. Gli autori notano che questo non è un elenco completo.

Penso che i praticanti meritino la parte del leone della colpa per questo triste stato di cose. D'altra parte, forse anche i teorici delle criptovalute devono ripensare la loro posizione. La loro linea è stata: "le scatole nere sono impossibili da costruire; non ci proveremo nemmeno". Al che dico, dato che è chiaro che le tue costruzioni verranno comunque usate (mis) come scatole nere, perché non provare almeno a renderle il più vicino possibile alle scatole nere?

Il documento Merkle-Damgard Revisited è un ottimo esempio di ciò di cui sto parlando. Studiano l'idea di sicurezza secondo cui "la funzione di hash di lunghezza arbitraria H deve comportarsi come un oracolo casuale quando il blocco predefinito a lunghezza fissa è visto come un oracolo casuale o un cifrario a blocchi ideale". Questo tipo di ricerca teorica ha il potenziale per essere estremamente utile nella pratica.

Ora passiamo al tuo esempio di valutazione del circuito. Mi permetto di non essere d'accordo con il tuo ragionamento. Non è come se prendessi un binario compilato e lo trasformassi ciecamente in un circuito. Piuttosto, applicheresti la valutazione del circuito solo alla funzione di confronto sottostante che di solito è abbastanza semplice. Fairplay è un'implementazione della valutazione del circuito. Un mio collega con cui ha lavorato mi dice che è sorprendentemente veloce. Mentre è vero che l'efficienza è un problema con la valutazione dei circuiti (e conosco le istanze del mondo reale in cui è stata respinta per questo motivo), è tutt'altro che uno showtopper.

La seconda ragione per cui non sono d'accordo con te è che se pensi ad alcuni dei tipici scenari di vita reale in cui potresti voler realizzare una valutazione del circuito inconsapevole - per esempio, quando due società stanno scoprendo se unire - i costi di calcolo il coinvolgimento è banale rispetto allo sforzo e al budget umani complessivi.

Allora perché allora nessuno usa in pratica la valutazione generica delle funzioni sicure? Ottima domanda Questo mi porta alla mia seconda differenza tra teoria e pratica: la fiducia esiste davvero nella pratica! Non tutto deve essere fatto nel modello paranoico. L'insieme di problemi che le persone vogliono effettivamente risolvere utilizzando la crittografia è molto, molto più piccolo di quanto i crittografi immaginino.

Conosco qualcuno che ha avviato un'azienda che cerca di vendere servizi di calcolo multiparty sicuri a clienti aziendali. Indovina un po '- nessuno lo voleva. Il modo in cui affrontano questi problemi è di firmare un contratto specificando cosa è possibile e cosa non si può fare con i dati e che si distruggeranno i dati dopo aver finito di usarli per lo scopo previsto. La maggior parte delle volte funziona perfettamente.

Il mio ultimo punto di differenza tra teoria e pratica riguarda la PKI. I criptovalute spesso attaccano una frase da qualche parte che dice "assumiamo un PKI". Sfortunatamente, i certificati digitali per gli utenti finali (al contrario di siti Web o dipendenti in un contesto aziendale, dove esiste una gerarchia naturale) non si sono mai materializzati. Questo documento classico descrive l'ilarità che ne consegue quando chiedi alle persone normali di usare PGP. Mi è stato detto che il software è migliorato molto da allora, ma i problemi di progettazione e architettura e le limitazioni umane non sono molto diversi oggi.

Non credo che i crittografi dovrebbero fare qualcosa di diverso in conseguenza di questa mancanza di una PKI nel mondo reale, tranne che essere consapevoli del fatto che limita l'applicabilità nel mondo reale dei protocolli crittografici. L'ho lanciato perché è qualcosa che sto cercando di risolvere.


Bella risposta! (Anche se ammetto di non averlo seguito del tutto, dovrò seguire alcuni dei tuoi link e leggerli, ma un'altra volta.) Per quanto riguarda la valutazione dei circuiti sicuri: adoro ascoltarli. L'opinione che ho affermato era fondamentalmente la mia sensazione dopo aver seguito un corso di introduzione alla teoria della criptovaluta e aver chiesto al mio professore se fosse mai stato utilizzato in pratica.
Joshua Grochow,

Grazie. A proposito, sono nuovo su StackExchange e non so se il wiki della community significhi che la scrittura in prima persona non è accettabile. In tal caso, sentiti libero di apportare modifiche.
randomwalker,

Vorrei poter votare questa risposta più di una volta.
Jeffε

FairPlay è insicuro in base a modelli di minaccia realistici (non è sicuro contro gli aggressori malintenzionati; è sicuro solo se crediamo che l'avversario non si comporti in modo avverso / malizioso). L'efficienza è semplice se la sicurezza non è importante e la sicurezza è semplice se l'efficienza non è importante, ma al momento non è noto come raggiungere entrambi contemporaneamente.
DW

Il tuo commento sui praticanti è in realtà generoso. Mi sono imbattuto in una società il cui unico prodotto era l'elaborazione dei pagamenti per carte di credito che utilizzava il codice Vigenère con una chiave più corta di alcuni frammenti di testo in chiaro noto. E poi non mi hanno creduto che fosse insicuro fino a quando non ho inviato loro un codice di attacco.
Peter Taylor,

12

La risposta di Randomwalker è molto buona. Il mio divario preferito tra teoria e pratica è il modello dell'oracolo casuale. Sembra una pratica euristica molto sicura (supponendo che le persone non facciano qualcosa di stupido e almeno facciano correttamente l'estensione della lunghezza, vedi anche la risposta di randomwalker) ma non abbiamo risultati teorici positivi a riguardo. In effetti, tutti i risultati teorici su questa euristica sono negativi. Penso che questa sia una grande domanda di ricerca e spero che un giorno vengano dimostrati interessanti risultati positivi su questo modello.

Per quanto riguarda l'offuscamento, per quanto ne so anche in pratica, sebbene sia ampiamente diffuso, l'offuscamento non è considerato sicuro come la crittografia e non è prudente usare l'offuscamento per nascondere un segreto a lungo termine e molto sensibile. (A differenza della crittografia che utilizza l'oracolo casuale, di cui le persone sono completamente a proprio agio per questo.) Quindi, in questo senso, il divario tra teoria e pratica non è così grande. (vale a dire, l'offuscamento è un'area estremamente interessante che siamo lontani dalla comprensione sia in teoria che in pratica.)


10

La crittografia omomorfa e la comunicazione multiparty sicura sono due delle grandi e recenti scoperte della crittografia che non sono ancora state sufficientemente studiate per renderle pratiche: gli sforzi di ricerca come PROCEED si stanno muovendo in questa direzione per identificare quale tipo di modello di programmazione potremmo usare per scrivere questo una sorta di calcolo, oltre a trovare ottimizzazioni per gli algoritmi crittografici di base che li fanno funzionare in tempi ragionevoli. Questo è un evento abbastanza comune nella crittografia: iniziamo con algoritmi (relativamente) semplici che richiedono molto tempo per essere eseguiti, e quindi i crittografi impiegano anni a usare la matematica per ottimizzare ulteriormente gli algoritmi.


10

Esempi in cui la teoria suggerisce che qualcosa è possibile ma non viene mai utilizzato nella pratica:

È abbastanza facile trovare esempi di cose risolte in teoria, ma (1) sono troppo inefficienti da usare in pratica o (2) a nessuno importa. Esempi: (1) prove (generiche) a conoscenza zero, (2) firme innegabili. In effetti, guarda qualsiasi conferenza crittografica e almeno la metà dei documenti probabilmente rientrerà in una di queste categorie.

Esempi in cui la teoria suggerisce che qualcosa è sicuro che non è sicuro nella pratica:

Questa domanda è un po 'vaga, quindi non sono sicuro che questo risponda, ma ci sono molti esempi di schemi "dimostrabilmente sicuri" che si rompono in pratica perché la definizione di sicurezza non corrispondeva allo scenario di distribuzione. Solo negli ultimi anni ci sono stati attacchi a (provabili varianti di) SSH e IPSec, tra gli altri.

Esempi di qualcosa in uso pratico diffuso ha poca teoria dietro:

Presumo che tu intenda nel mondo delle criptovalute, non nel mondo della sicurezza generale. Un buon esempio sono le firme DSS, che non hanno alcuna prova di sicurezza.


9

MM'M'wMwM'wMwM'MM'M

Ci sono molte società commerciali che offrono soluzioni binarie di offuscamento e ci sono anche diverse soluzioni open source. I metodi esatti per l'offuscamento, ovviamente, sono tenuti segreti; il paradigma dell'offuscamento prevalente nell'industria è euristico, quindi conoscere gli algoritmi usati per offuscare un binario in questo contesto garantirà generalmente qualche vantaggio nella deobfuscazione. L'offuscamento nell'industria è noto come "sicurezza attraverso l'oscurità".

Esistono approcci teorici al problema dell'offuscamento che formalizzano i desideri dell'industria ma si basano su una nozione strettamente più forte di sicurezza basata sull'intrattabilità computazionale (immagina di sostituire i test di equivalenza di numeri interi e stringhe con test di equivalenza della funzione a una via). In particolare, è stato avanzato lo studio dell'offuscamento del punto compostabile per cercare di risolvere il problema dell'offuscamento interessante per l'industria. Sfortunatamente al modello teorico più diffuso per l'offuscamento basato su un modello ispirato all'hardware a prova di manomissione è stato dato un risultato di impossibilità nel 2001 da Barak et al nel documento " Sulla (im) possibilità di offuscare i programmi ". (Da allora anche molti altri modelli hanno dato risultati di impossibilità).

In questo momento la teoria dell'offuscamento del programma è in uno stato di flusso, che richiede un nuovo modello (probabilmente meno restrittivo). In effetti, il problema principale con la teoria è la mancanza di un modello concordato (e quindi di garanzie formali). Il recente avvento della crittografia completamente omomorfa può fornire una base del genere (si tratta puramente di speculazioni da parte di questo autore).

Per chiarire, l'offuscamento corrisponde al tuo terzo esempio: "Gli esempi di qualcosa in uso pratico diffuso hanno dietro poca teoria". L'offuscamento è oggi ampiamente utilizzato sia dall'industria che da quelli con scopi più nefasti. L'offuscamento nell'industria non è attualmente basato su alcuna teoria rigorosa nonostante i tentativi.


8

C'è un divario significativo anche quando si tratta di primitivi di base come i generatori pseudocasuali. Consideriamo ad esempio le funzioni pseudocasuali. In pratica le persone usano cose come AES , che differiscono dai candidati teorici (Goldreich, Goldwasser, Micali; Naor, Reingold; ecc.) Lungo diverse dimensioni: in primo luogo, i parametri sono completamente diversi, ad esempio AES può avere una lunghezza della chiave uguale alla lunghezza di input , che è inaudito nelle costruzioni teoriche. Forse ancora più importante, AES (e molti altri cifrari a blocchi) seguono il cosiddetto paradigma della rete di permutazione della sostituzione che è abbastanza diverso dal modo in cui vanno le costruzioni teoriche (ad esempio quelle menzionate sopra).

I più interessanti saranno ovviamente esempi che suggeriscono nuove strade per la ricerca teorica basata sull'esperienza pratica :).

Penso che quanto sopra sia un esempio del genere, vedi ad esempio questo articolo con Eric Miles (dal quale essenzialmente viene presa questa risposta).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.