Supponiamo qui di parlare di un design serio per le e-mail, cioè senza un server di fiducia centralizzato (abbiamo già Gmail, se dobbiamo fidarci di un potenziale malvagio signore, possiamo anche scegliere uno competente).
Quando si utilizza un sito Web, si utilizza l'interfaccia del sito Web, che può causare problemi alle spalle. Lo stesso vale per ogni software, ma il Web è particolarmente dinamico : per definizione, viene scaricato di nuovo ogni volta che ci si connette. Con un'applicazione installata localmente, puoi fare una revisione una volta (ad esempio compilando GnuPG dal sorgente); se l'applicazione è "pulita", rimane pulita; e se era a casa, allora, almeno, puoi conservare una copia come prova per l'analisi post mortem. Queste cose sono molto più difficili con un sito Web.
Quindi una soluzione basata sul Web può tradirti facilmente.
Inoltre, sappiamo che la gestione delle chiavi, compresa la generazione e l'archiviazione, è sottile. Poiché le chiavi si concentrano in segreto, sono obiettivi di alto valore e dovrebbero essere protette di conseguenza. GnuPG utilizza mlock()
(o il suo equivalente Windows) per impedire che la chiave venga scritta nello spazio di swap. Non è possibile farlo in Javascript ... Allo stesso modo, alcune attività crittografiche correlate alle password (ad es. Crittografia basata su password di un portachiavi) necessitano di alcuni hashing lento e salato ( bcrypt & co) per far fronte alla debolezza intrinseca delle password come password. L'hashing lento richiede un po 'di muscoli. Javascript è molto debole a tale riguardo. E se vogliamo essere seri sulla gestione delle chiavi, allora vogliamo smart card , a cui sarà di nuovo difficile accedere da Applicazione Web.
Quindi sostengo che è molto difficile creare una soluzione basata sul Web corretta per email sicure, anche quando tutti gli sviluppatori sono di prim'ordine.
E, naturalmente, come puoi sapere se un dato sito Web è stato sviluppato correttamente, da persone che conoscono il loro mestiere?