Sto studiando per CISSP e so che chiederanno che tipo di crittografia utilizzare in diverse situazioni. Esiste un elenco di questo tipo o esiste una regola generale da usare?
Penso che in generale sia necessario comprendere la differenza tra la crittografia simmetrica e quella asimmetrica. Gli algoritmi simmetrici sono più veloci e più forti per bit della lunghezza della chiave rispetto agli algoritmi asimmetrici. Ma gli algoritmi simmetrici richiedono una chiave pre-condivisa e gli algoritmi asimmetrici no. Pertanto, in situazioni in cui è richiesta forza e velocità e è possibile pre-condividere in modo sicuro una chiave, si useranno algoritmi simmetrici come AES.
In pratica, gli hash crittografici, la crittografia simmetrica e asimmetrica vengono combinati per fornire una soluzione più completa. Ad esempio, la crittografia asimmetrica può essere utilizzata per scambiare le chiavi per la crittografia simmetrica. Ecco come funziona Secure Sockets Layer (SSL).
Il ragionamento generale ha questo aspetto:
Abbiamo alcuni dati sensibili che devono essere trasformati per preservarne la riservatezza. Ha bisogno di essere ricondotto? Se no, questo è un caso per hashing , non per la crittografia (come in "password storage": non vuoi recuperare la password, vuoi solo verificare che una determinata password corrisponda a ciò che è stato immagazzinato). L'hashing della password viene talvolta chiamato "crittografia" (è sbagliato, ma diffuso).
Supponendo di dover eseguire la crittografia effettiva, le persone che eseguono la crittografia saranno la stessa entità (moralmente) delle persone che eseguono la decrittazione ? Se entrambi sono la stessa entità (ad esempio, crittografate un file in modo che voi possano recuperarlo in seguito), allora è crittografia simmetrica (la crittografia e la decrittografia utilizzano la stessa chiave). Altrimenti, è crittografia asimmetrica (caso tipico: e-mail crittografate: crittografia da parte del mittente, decrittografia da parte del destinatario, che è qualcun altro ).
Se fai la crittografia simmetrica, usa AES - ma fallo in una modalità corretta come EAX , che garantisce l'integrità e della riservatezza. Esistono altri algoritmi di crittografia, alcuni dei quali forniscono prestazioni migliori in alcune situazioni, ma ci vuole un po 'di ingegneria creativa per trovare una situazione in cui la velocità di AES non è più che adeguata. Non inquinare la progettazione della sicurezza con preoccupazioni non comprovate sulle prestazioni.
Se esegui la crittografia asimmetrica, probabilmente dovrai utilizzare la crittografia ibrida : crittografa asimmetricamente una chiave casuale (un mucchio di byte), che utilizzerai per crittografia simmetrica rispetto ai dati reali. Gli algoritmi di crittografia asimmetrica (come RSA ) non gestiscono i dati collettivi; alcuni di questi in realtà non consentono di scegliere i dati da crittografare (questi sono algoritmi di scambio di chiavi come Diffie-Hellman ).
E, naturalmente, non farlo da solo . Gli algoritmi crittografici sono bestie sensibili; è facile sbagliare quando li si assemblano in protocolli. Dovresti fare affidamento sui protocolli esistenti il più possibile. Ad esempio, non crittografare un'e-mail; usi S / MIME o OpenPGP , che si occuperà di applicare la crittografia in modo appropriato.
Stai chiedendo in che modo sai quale "tipo di crittografia" applicare in una determinata situazione. Questo potrebbe significare una delle due cose.
Se vuoi sapere come applicare la crittografia come ingegnere, hai bisogno di una conoscenza approfondita di vari algoritmi, protocolli e attacchi. Se questo è il tuo obiettivo, egli Manuale di crittografia applicata ( HAC ) è una risorsa unica e cruciale. Questo è un libro tecnico destinato ai lettori con un background informatico, e la sua copertura dell'area è ineguagliabile in larghezza e dettaglio. Tuttavia è anche un po 'obsoleto, come tendono a essere i libri sulla crittografia. A tale proposito, dovresti anche recuperare le informazioni su riviste relative alla crittografia e lavorare su ellittiche curva crittografia (ECC) negli anni successivi dalla sua pubblicazione, e continuerà a seguire tali cose in futuro.
Dato che stai studiando per un CISSP, tuttavia, sospetto che tu voglia una visione di livello superiore. Tieni presente che perseguire questo percorso non ti ti qualificherà ad applicare la crittografia a livello di ingegneria. Ti supporterà nelle specifiche di alto livello dei prodotti e delle tecnologie, che è ciò che tende a fare CISSP - ma dovrai acquisire (o lavorare con qualcuno che abbia) conoscenze più approfondite per progettare, verificare e testare la sicurezza della tua applicazione crypto. Se questo è il tuo obiettivo, ci sono tutti i tipi di guide di studio CISSP, e anche la famosa Applied Cryptography di Bruce Schneier che offre una discreta indagine sugli algoritmi e le loro applicazioni particolari ma poco in termini di teoria. C'è anche Cryptography Engineering , che è una classica riduzione in stile Schneier del profilo di HAC in un libro che si legge come un articolo di InfoWorld dall'inizio alla fine .
Sarei negligente di non dare il solito avvertimento sulla cripta di olio di serpente. Scegli prodotti da progetti open source o fornitori altamente specializzati specializzati in sicurezza e crittografia. La crittografia di ingegneria non è un'abilità comune, o qualcosa di cui si deve dilettarsi. Persino gli esperti spesso non lo fanno bene.
Leggi altre domande sui tag encryption hash