Quali algoritmi crittografici non sono considerati sicuri? [chiuso]

24

Quali algoritmi crittografici non sono considerati sicuri, ma sono ancora ampiamente utilizzati e disponibili nelle librerie standard? Se applicabile, menziona un'alternativa sicura.

    
posta Olivier Lalonde 12.11.2010 - 00:08
fonte

9 risposte

20

Questi sono i più comuni:

  • MD5 - Usa SHA512
  • SHA1 - Usa SHA512 (nota che non è molto insicuro, ma mostra la sua età e sarà un frammento nei prossimi due anni ....)
  • DES / 3DES - Usa AES
risposta data 12.11.2010 - 00:12
fonte
15

A partire dalla fine del 2010, il governo degli Stati Uniti depreca questi algoritmi sulla base delle raccomandazioni degli esperti molto esperti del NIST:

  • SHA-1
  • RSA a 1024 bit o DSA
  • ECDSA a 160 bit (curve ellittiche)
  • 80/112-bit 2TDEA (due tasti triple DES)

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.

    
risposta data 23.12.2010 - 00:50
fonte
12

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 ...).

    
risposta data 28.04.2011 - 22:30
fonte
6

Il contesto è importante. Sicuro per cosa ? In che modo si utilizza qualcosa?

Ad esempio:

  • AES-256 è "sicuro". Fino a quando non decidi di crittografare un flusso di dati strutturati a blocchi con AES-256 in modalità ECB .
  • AES-256 è "sicuro". Fino a quando non crittografhi più messaggi in modalità CBC ma con la stessa chiave e la stessa IV .
  • AES-256 è "sicuro". Finché non utilizzi un'implementazione, il tempismo di cui varia con i bit della chiave o dei dati .
risposta data 04.05.2011 - 01:00
fonte
5

Sebbene questo quesiton abbia già una risposta, mi mancano molte risposte.

  • RC2, RC4
  • MD4 (è ancora disponibile in alcune librerie)

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?

    
risposta data 12.11.2010 - 13:26
fonte
4

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):

  • link
  • link
    (o una qualsiasi delle opzioni "Scegli un metodo")

"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 ".

    
risposta data 12.11.2010 - 01:06
fonte
2

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.

    
risposta data 29.04.2011 - 10:23
fonte
1

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).

    
risposta data 29.12.2014 - 01:16
fonte
0

Utilizzo di un codice a blocchi come Blowfish o AES, se utilizzato in ECB (Electronic Code Book) modalità.

    
risposta data 02.05.2011 - 22:28
fonte

Leggi altre domande sui tag