Quali algoritmi crittografici non sono considerati sicuri, ma sono ancora ampiamente utilizzati e disponibili nelle librerie standard? Se applicabile, menziona un'alternativa sicura.
Quali algoritmi crittografici non sono considerati sicuri, ma sono ancora ampiamente utilizzati e disponibili nelle librerie standard? Se applicabile, menziona un'alternativa sicura.
Questi sono i più comuni:
A partire dalla fine del 2010, il governo degli Stati Uniti depreca questi algoritmi sulla base delle raccomandazioni degli esperti molto esperti del NIST:
MD5 non è mai stato un algoritmo accettabile per uso governativo, insieme a molti altri algoritmi meno recenti.
Per motivi di sicurezza fino all'anno 2030, raccomandano almeno SHA-224, 2048 bit per RSA o DSA, EDCSA a 224 bit e AES-128 o triple-DES a 3 tasti.
Questo è in lavorazione da diversi anni. Vedi questo post e i documenti del NIST a cui fa riferimento: link
Aggiornamento: Un'altra serie di consigli concisi e utili è Risposte giuste crittografiche di Colin Percival.
Gli algoritmi crittografici insicuri ma ampiamente utilizzati includono:
Funzioni hash: MD4, MD5, (SHA-1) (MD2 è anche insicuro ma non ampiamente utilizzato, SHA-1 è solo "indebolito"; MD4 e MD5 sono anche ampiamente usati in situazioni in cui la resistenza crittografica è non richiesto, quindi non è un problema)
crittografia simmetrica: DES (chiave a 56 bit), RC4 (non a caso - ma la maggior parte dei problemi di sicurezza con RC4 riguarda il modo in cui viene utilizzata, non a causa dell'algoritmo stesso), il codice di flusso nel Formato di archivio zip (le nuove utility Zip utilizzano AES)
crittografia asimmetrica: RSA con una chiave troppo breve (ovvero 768 bit o meno), RSA con padding improprio (ad es. ISO 9796-1), Diffie-Hellman modulo un numero primo troppo piccolo (768 bit o meno) (Diffie-Hellman non è in realtà un algoritmo di crittografia asimmetrico, ma un algoritmo di accordo chiave - ma la maggior parte degli usi della crittografia asimmetrica sono accordi chiave davvero dissimulati)
firme digitali: RSA con una chiave troppo breve (cioè 768 bit o meno)
molti (troppi) algoritmi fatti a mano da persone che si sono autoproclamate; un primo esempio è il CSS, la crittografia per il DVD
Alternative sicure: SHA-256 per l'hashing (SHA-512 se hai lo stesso feticcio delle dimensioni dell'esercito americano e / o se vuoi uccidere le prestazioni su sistemi a 32 bit), AES per la crittografia simmetrica. Per un accordo chiave, considerare ECDH (Diffie-Hellman su una curva ellittica) con una delle curve NIST standard (ad esempio P-224, K-233 o B-233 - ma P-256 è più ampiamente supportato). Per la crittografia asimmetrica, utilizzare RSA con una chiave sufficientemente grande (1024 bit per la protezione a breve termine, preferibilmente 1536 o 2048 bit) e PKCS # 1 padding (v1.5" old style "va bene, ma OAEP è più fine). Per le firme, considerare ECDSA (stesse curve che per ECDH) o RSA con una chiave abbastanza grande e il padding PKCS # 1 (v1.5 o PSS). Mai progetta il tuo algoritmo (o, se lo fai, mai credi che sia sicuro).
La maggior parte dei problemi di sicurezza, tuttavia, non sono nella scelta dell'algoritmo, ma nel modo in cui vengono utilizzati. WEP usa RC4, ma RC4 non è una delle numerose debolezze del WEP. Sony ha protetto PlayStation 3 con ECDSA, che è sicuro, ma ha creato un errore nel generatore di casualità, causando un errore catastrofico (esposizione della chiave privata ...).
Il contesto è importante. Sicuro per cosa ? In che modo si utilizza qualcosa?
Ad esempio:
Sebbene questo quesiton abbia già una risposta, mi mancano molte risposte.
Inoltre, dipende dall'uso e dallo scopo dell'algoritmo. Spezzare DES non è difficile, ma è piuttosto costoso. Considera chi sono i tuoi aggressori e quanto denaro e denaro possono spendere per rompere la sicurezza?
I link sottostanti possono aiutarti rapidamente a scegliere il metodo e la lunghezza della chiave adatti ai tuoi requisiti di sicurezza (evitando così metodi non sicuri):
"Questo sito web implementa formule matematiche e riepiloga i report di organizzazioni note che consentono di valutare rapidamente i requisiti minimi di sicurezza per il tuo sistema. Puoi anche confrontare facilmente tutte queste tecniche e trovare la lunghezza della chiave appropriata per il livello desiderato di protezione ".
Ovviamente ci sono tanti algoritmi rotti quanti sono i programmatori che scrivono sistemi di crittografia cresciuti in casa, ma in generale quelli sono limitati a un determinato pacchetto software. Alcuni esempi di schemi di "protezione della password" per documenti e archivi vengono in mente come esempi.
Ma l'unico algoritmo di crittografia general-purpose (non l'algoritmo di hashing come altri sono elencati) che è considerato "rotto" per l'uso normale a causa di difetti nell'algoritmo (piuttosto che lunghezza della chiave), e che è ancora ampiamente distribuito e accettato , è RC4.
Si noti che la ragione principale per cui RC4 si aggira, nonostante i suoi noti difetti, è che la vulnerabilità può essere mitigata eliminando i primi pochi output K. Inoltre, è l'unico codice di flusso ampiamente distribuito e molti programmatori non si rendono conto che è possibile trasformare un cifrario a blocchi in un codice di flusso utilizzando una modalità di concatenamento di blocchi appropriata.
RC4 è probabilmente il migliore da evitare. Il suo uso improprio è stato la causa dei problemi in WEP, il che suggerisce che sia difficile adattarsi anche agli esperti. Usarlo correttamente significa scegliere una chiave abbastanza grande (almeno 128 bit), mescolare chiave e IV in modo sicuro (p.es. hashing anziché concatenazione) e scartare la parte iniziale del keystream per mitigare gli attacchi con i tasti deboli (256 ottetti al minimo).
Utilizzo di un codice a blocchi come Blowfish o AES, se utilizzato in ECB (Electronic Code Book) modalità.
Leggi altre domande sui tag cryptography known-vulnerabilities