Se si desidera assicurarsi che il server non sia in grado di decodificare il file, non è necessario rivelare la password al server. Pertanto
- la password di crittografia non deve essere utilizzata per l'autenticazione lato server;
- i dati devono essere crittografati sul lato client .
Puoi costruire architetture complesse, ma fondamentalmente, se non ti fidi del server, non dargli la tua password.
Una semplice applicazione web (PHP lato server più JavaScript lato client) che fa questo è ZeroBin . Raccomando di leggere questo articolo su Ars Technica su un sito basato su Zerobin . ZeroBin non esegue alcuna autenticazione, che può o non può essere quello che vuoi - questo è solo un esempio (open source) per illustrare il principio.
Per essere sicuri che ZeroBin non riveli i tuoi dati al server, devi rivedere il codice JavaScript che viene eseguito nel browser e convincerti che si comporta come pubblicizzato.
In alternativa, se si desidera eseguire la crittografia lato server, è necessario assicurarsi che il server sia sufficientemente sicuro per le proprie esigenze. Ciò significa che devi fidarti (o avere qualcuno di terze parti (che ti fidi) verificare attraverso un audit) che:
- Il server non memorizza o perde le password.
- Il codice server si comporta come pubblicizzato; in particolare, memorizza solo dati crittografati e cancella prontamente eventuali copie temporanee di testo in chiaro.
- I dati in transito sono protetti correttamente.
- Il server è fisicamente sicuro, in modo che nessun intruso possa accedere ai tuoi dati o alla tua password mentre è in uso.
- Le persone con accesso legittimo al server (ad esempio amministratori di sistema) sono affidabili.
- Questo stato di cose rimarrà vero finché usi il servizio.