Se cerco overflow dello stack per come crittografare in modo sicuro i dati , uno dei i primi successi sono lo schema di crittografia personalizzato di qualcuno. Ho visto diverse domande simili su questo sito, e in generale sono tutte destinate a essere gravemente difettose al meglio. La maggior parte delle persone abbastanza ingenue da tentare persino di inventare la propria crittografia non ha idea di quanti modi ci siano per rovinare tutto.
Ognuno sta facendo la testa fino a questo punto?
Ora, ciò che mi sorprende allora, probabilmente perché appartengo alla folla ingenua di cui sopra, è che non ci sono buoni consigli per quelli di noi che non sanno cosa fare. Mentre la risposta corretta potrebbe essere, "Non provarlo a casa", non è utile.
Hai bisogno di un server web pronto per la produzione? C'è Apache e Nginx. O un database? Per la maggior parte dei casi d'uso che non hanno bisogno di scalare le scale di Google / Facebook / Twitter, ci sono così tante scelte di produzione che risolveranno il tuo problema che non c'è motivo di elencarle. Qualcosa di più complicato? Le librerie di alta qualità per l'apprendimento automatico sono prontamente disponibili nella maggior parte delle lingue a cui puoi pensare e probabilmente in più.
Vuoi crittografare qualcosa? A male.
Ad esempio, diciamo che cerco "ruby encrypt data" in google. Alla fine trovo documentazione OpenSSL Cipher .
Si potrebbe pensare, "Fantastico, ho sentito che uno non dovrebbe mai inventare i propri schemi di crittografia, ed ecco un semplice pezzo di codice pronto per copiare / incollare", quindi probabilmente lo copio e mi muovo allegramente.
Con la mia comprensione abbastanza limitata dell'argomento, anche se riesco a vedere quello che sembra un enorme difetto: la parola integrità non è mai menzionata da nessuna parte. Non c'è HMAC dei dati, quindi l'applicazione risulta vulnerabile.
Se fai una ricerca simile per php, potresti essere abbastanza fortunato da ricevere l'avvertimento sull'integrità, ma non c'è una spiegazione solida del perché è importante, né menziona che usare una password non elaborata è pericoloso, a differenza del rubino docs.
Quindi, per tutti gli sviluppatori che vogliono crittografare le informazioni, siamo praticamente destinati a sbagliare.
Sono sicuro che c'è una buona ragione per la complessità, ma che cos'è?