La divisione del RNG in fonti di entropia "privata" e "pubblica" riduce i rischi di compromissione?

0

Sto leggendo i documenti di s2n ( link ) dove si afferma che:

link

The security of TLS and its associated encryption algorithms depends upon secure random number generation. s2n provides every thread with two separate random number generators. One for "public" randomly generated data that may appear in the clear, and one for "private" data that should remain secret. This approach lessens the risk of potential predictability weaknesses in random number generation algorithms from leaking information across contexts.

In che modo questo aiuta contro i guasti in modalità comune o gli utenti malintenzionati sovvertono gli algoritmi? Lo fa (con due RNG) introduce superfici di attacco extra (specialmente dato che la crypto effettiva viene esternalizzata dalla libreria s2n a librerie esterne come OpenSSL)?

    
posta Deer Hunter 30.06.2015 - 23:27
fonte

2 risposte

2

Diamo un'occhiata a come potrebbe accadere una cosa del genere:

Un esempio classico è il DRBG dual-EC che impiega un RNG back-doored per creare un attacco generale contro TLS. L'altra metà di questo attacco oltre il vulnerabile RNG è un meccanismo per rivelare all'attaccante lo stato dell'RNG al momento dell'uso per consentire all'aggressore di prevedere il rimanente contenuto "casuale" prodotto da il RNG della vittima.

Pertanto, in TLS è implementata una funzione non standard denominata Casuale esteso , attraverso il quale un server TLS scarica una serie di output del suo RNG nella negoziazione TLS, che viene rivelata a chiunque orecchi la conversazione. Infatti, è stato calcolato che questa funzione migliora l'attacco Dual EC di un fattore 64000X.

Quindi un sistema che utilizza un RNG diverso per il componente "Extended Random" rispetto alla derivazione della chiave sarebbe significativamente (64000x) meglio protetto da questo attacco.

Ma non completamente immune. L'RNG è di per sé vulnerabile, anche se si mantiene separata la casualità "di alto valore". Una seconda istanza RNG è utile, ma non infallibile.

L'obiettivo di un tale sistema è di proteggere dall'ignoto, quindi misurare la sua utilità è al massimo difficile. E altre protezioni potrebbero funzionare meglio.

Ad esempio, i valori casuali XORed con qualsiasi cosa sono ancora casuali. Pertanto, se l'applicazione esegue più RNG e XOR come output, la qualità della casualità ottenuta è uguale alla massima qualità di tutti gli RNG di input. Quindi, se un'applicazione XORs un intero elenco di RNG di qualità variabile, quindi se uno qualsiasi degli RNG è sicuro, anche l'output sarà sicuro.

Quindi quanto sarebbe buona questa tecnica nella protezione da minacce sconosciute? Non lo sappiamo Ma quello che possiamo dire è che proteggerebbe contro le minacce conosciute come la doppia backdoor EC sopra menzionata.

    
risposta data 01.07.2015 - 01:42
fonte
1

Esistono alcune classi di debolezze PRNG che richiedono all'utente malintenzionato di ottenere più numeri per prevedere il prossimo numero nella sequenza. L'utilizzo di due PRNG compartimenterebbe il rischio, nel caso in cui la catena "pubblica" possa essere prevista, i numeri "segreti" potrebbero essere ancora imprevedibili.

Onestamente non lo considererei così significativo, ma potrebbe indurire le chiavi segrete in determinati scenari. Non fornirebbe alcun beneficio in un'intera classe di difetti in cui il PRNG è imprevedibile ma ripetibile in quanto ciò può portare a un compromesso chiave attraverso le fughe di informazioni.

    
risposta data 01.07.2015 - 01:12
fonte

Leggi altre domande sui tag