it-swarm.dev

Quali cifre SSL / TLS possono essere considerate sicure?

sito Web OpenSSL fornisce un lungo elenco di diverse cifre disponibili per SSL e TLS. La mia domanda è: quale di questi numeri può essere considerato sicuro al giorno d'oggi. Sono particolarmente interessato a HTTPS, se questo dovrebbe importare, anche se immagino che non lo sia. Sono a conoscenza del Raccomandazione Apache per usare SSLCipherSuite HIGH:MEDIUM e sono d'accordo che questa è la migliore pratica.

Quello che sto cercando è uno standard ufficiale o un recente documento da una fonte accettata e riconosciuta come un'organizzazione di sicurezza ben nota. Se esiste un documento del genere che include stime su quanto a lungo alcune cifre con una specifica lunghezza della chiave saranno considerate sicure, ciò sarebbe ancora meglio. Esiste una cosa del genere?

33
Demento

Le suite di cifratura con "NULL" non offrono la crittografia dei dati, ma solo il controllo dell'integrità. Questo significa "non sicuro" per la maggior parte degli usi.

Le suite di cifratura con "EXPORT" sono, per progettazione, deboli. Essi sono crittografati, ma solo con chiavi abbastanza piccole da poter essere craccate anche con hardware amatoriale (diciamo, un PC di casa base - crittografia simmetrica basata su 40- tasti bit). Queste suite sono state definite per conformarsi alle regole di esportazione statunitensi sui sistemi crittografici, regole che erano piuttosto rigide prima del 2000. Oggi, queste restrizioni sono state revocate e non ha senso sostenere le suite di crittografia "EXPORT".

La crittografia viene visualizzata con "DES" (non "3DES ") si affida alla crittografia simmetrica su DES , un vecchio codice a blocchi che utilizza tecnicamente una chiave a 56 bit (, utilizza una chiave a 64 bit, ma ignora 8 di quei bit, quindi la dimensione della chiave effettiva è di 56 bit. Una chiave a 56 bit è crackabile, anche se non in cinque minuti con un PC. Deep crack era una macchina per scopi speciali costruita nel 1998 per circa 250.000 $ e poteva craccare una chiave a 56 bit DES entro 4,5 giorni in media. La tecnologia è progredita e questo può essere riprodotto con poche decine di FPGA . Ancora non hardware standardizzato a Walmart, ma alla portata di molti individui.

Tutte le altre suite di crittografia supportate da OpenSSL non sono deboli; se hai un problema con loro, non sarà dovuto a una debolezza crittografica negli algoritmi stessi. Potresti voler evitare le suite di crittografia che presentano "MD5 ", non a causa di un'effettiva debolezza nota, ma per le pubbliche relazioni. MD5 , come funzione hash, è" rotto "perché possiamo trovare in modo efficiente molte collisioni per quella funzione. Questo non è un problema per MD5 come viene utilizzato in SSL; tuttavia, è abbastanza per MD5 avere una cattiva reputazione e è meglio evitarlo.

Si noti che la suite di crittografia non impone nulla sulla dimensione della chiave del server (la chiave pubblica nel certificato del server), che deve essere abbastanza grande da fornire un'adeguata robustezza (per RSA o DSS, andare per almeno 1024 bit, 1536 bit essere migliore - ma non spingerlo troppo, perché il sovraccarico computazionale aumenta bruscamente con la dimensione della chiave).


NIST , un'organizzazione federale degli Stati Uniti che è accettata e ben nota come può essere qualsiasi organizzazione di sicurezza, ha pubblicato alcune raccomandazioni (vedere in particolare le tabelle alle pagine 22 e 23); questo è del 2005 ma è ancora valido oggi. Si noti che il NIST opera su una base "approvata/non approvata": non sostengono in alcun modo che gli algoritmi "non approvati" siano deboli in alcun modo; solo che loro, come organizzazione, non garantiscono per loro.

37
Thomas Pornin

Hai letto SSL e TLS: progettazione e costruzione di sistemi sicuri , di Eric Rescorla? È il classico accettato su SSL, scritto da uno dei principali collaboratori del gruppo di lavoro sugli standard IETF su SSL. Mi aspetto che possa contenere opportune dichiarazioni sulla forza di vari cifrari SSL.

Se ciò non soddisfa le tue esigenze, potresti andare nella tua biblioteca amichevole e controllare tutti i manuali di crittografia e sicurezza che hanno e leggere le sezioni scritte su SSL/TLS.

Fondamentalmente, se stai cercando un riferimento per documentare fatti che ogni esperto di sicurezza già conosce, allora potresti aver bisogno di fare qualche lavoro per conto tuo per trovare la migliore citazione.

4
D.W.

Alcune piccole aggiunte alla risposta di Thomas Pornin: mentre NIST SP800-52 rimane ufficiale (anche se un po 'obsoleto) per TLS in generale, per le dimensioni delle chiavi in ​​particolare è sostituito da SP800-57: la parte 1 copre le dimensioni delle chiavi e le vite in generale, revisionate solo l'ultima anno 2012; la parte 3 copre alcune applicazioni specifiche tra cui TLS rilasciato nel 2010. In breve, hanno cercato di richiedere RSA DSA e DH 2048 bit e ECC 224 bit nel 2011, ma c'era troppo pushback quindi ora è il 2014 - in arrivo! (DSA a 2048 o 3072 bit è specificato da FIPS 186-3 nel 2009, ma non vedo ancora molta implementazione. Anche openssl l'ha fatto piuttosto goffamente.) Www.CABforum.org con RSA 2048 nel 2014; mentre non è necessario ottenere il certificato da una CA "ufficiale", fare una pratica visibilmente inferiore rispetto alla pratica "standard" comune tende a farti curare con scetticismo. FWIW NIST attualmente afferma che la forza (Z_n 2048, ECC 224, simmetrico 112) è "accettabile" fino al 2030, dopo di che è richiesto il 3072/256/128; anche se risultano essere sbagliati, se vai con loro hai una buona scusa che puoi trovare, e avrai sicuramente molta buona compagnia. Infine, csrc.nist.gov è un URL di partenza migliore per la sicurezza informatica (NIST nel suo insieme fa molte altre cose).

3
Dave Thompson

Il recupero delle raccomandazioni ufficiali potrebbe essere un'attività scoraggiante per la maggior parte degli utenti.

Il modo più rapido per ottenere un elenco aggiornato di cifre moderne è controllare periodicamente Mozilla SSL Configuration Generator .

A partire da agosto 2016, l'elenco (ordinato) è:

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256

Oltre ad applicare semplicemente queste cifre, assicurati di:

  • imposta la versione TLS su 1.2 (o successiva)
  • usa una curva sicura (come definita su safecurves.cr.yp.to ).

Nota: tutte queste cifre sono compatibili con il (imminente) TLS1.3.

2
ATo