Mi è stato detto da un amico prima che
Encrypting something that needs to be reversed is a bad idea as it gives the illusion of security
È vero? Per come la vedo io, in realtà non può ferire per crittografare i dati.
Devi solo crittografare le cose che devono essere invertite. Se non hanno bisogno di essere invertiti (come le password memorizzate), dovrebbero essere un hash unidirezionale con un algoritmo di hash sicuro.
Per definizione, qualcosa che è crittografato deve essere in grado di essere decodificato. Pertanto, le informazioni crittografate sono sicure solo quanto la chiave utilizzata per crittografarlo.
La sicurezza chiave è l'aspetto più importante della crittografia. Un strong algoritmo con una chiave compromessa non è più sicuro del semplice testo.
Per crittografare la corrispondenza e-mail, alcune implementazioni di PGP (ad es. OpenPGP) sono lo standard del settore: link
EDIT: per crittografare i file memorizzati localmente (come un archivio email), consiglio TrueCrypt: link
Importante! Tieni presente che se dimentichi o perdi la chiave di crittografia, in base alla progettazione, i dati crittografati sono completamente inutili e irrecuperabili. Non crittografare i backup di importanza vitale a meno che tu non sia assolutamente sicuro che la chiave non andrà persa.
Dipende da quale sia l'obiettivo. Un sacco di persone incorporano la crittografia per offuscare i dati. Altri strumenti come Armadillo vanno anche molto oltre quando si tratta di offuscare il codice. Nota che il tuo amico ha ragione che non ti darà alcuna sicurezza. Questo è vero, ma può rallentare le persone cercando di sfruttare o invertire il codice.
Non sono sicuro di cosa intendi con "qualcosa che deve essere invertito". Suppongo che tu stia parlando di qualcuno che sta eseguendo una valutazione di sicurezza sulla tua applicazione. È vero che ciò rende più difficile in alcuni casi. Il consiglio che darei ai clienti che usano tale offuscamento è ... dammi l'accesso al codice sorgente. Alla fine stai rallentando qualcuno cercando di valutare la sicurezza della tua app.
Ora ricorda che questa persona sarà presente finché paghi, se è difficile potrebbe non essere in grado di coprire la tua domanda correttamente perché lo stai rendendo (l'attaccante) più difficile. Questo è buono in una situazione di vita reale, ma è brutto quando stai cercando di scoprire problemi di sicurezza.
Quindi il mio consiglio, l'offuscamento è buono, ma fornisci il codice sorgente alla persona che sta tentando di valutare la tua domanda. Altrimenti pagherai un sacco di soldi con un'alta probabilità che il valutatore non trovi tutti i problemi nella tua applicazione.
Leggi altre domande sui tag encryption