Ho un'idea per un'applicazione web di cui vorrei discutere. Mi piace molto, ma è probabile che mi sia sfuggito un evidente buco di sicurezza. Oppure, forse fa schifo.
L'idea è un gestore di note di testo sicuro basato sul web, con le seguenti caratteristiche:
- perché è web, è accessibile da qualsiasi luogo;
- importazione / esportazione di note crittografate;
- l'unica cosa memorizzata sul server sono note crittografate (nessun account utente! di seguito);
- versione locale (usata sul tuo server);
- la password non viene mai memorizzata da nessuna parte (non come hash o altro).
Ecco come funziona:
Il server conserva un database di note, dove ogni nota ha:
- email dell'autore;
- contenuto crittografato;
- metadati (tempo modificato, ecc.)
Quando un utente apre l'app Web per la prima volta, richiede un'email.
(Oops, i nuovi utenti non sono autorizzati a pubblicare immagini! Si prega di seguire questo link per uno screenshot: dl.dropbox.com/u/456669/Screenshots/3EqQx.png)
Se questa e-mail non è stata utilizzata su questo dispositivo in precedenza, viene inviato un messaggio con il link di convalida. (Link, ovviamente, scade molto presto).
dl.dropbox.com/u/456669/Screenshots/VJXPN.png
Dopo la convalida, la combinazione dispositivo + email viene salvata in un cookie. Le note crittografate vengono caricate dal server.
Dopodiché, tutto il lavoro viene eseguito con Javascript, senza interazione con il server.
L'app chiede la password.
dl.dropbox.com/u/456669/Screenshots/O4iOp.png
Le note sono decifrate con password. Poi, c'è l'interfaccia utente reale per la gestione delle note (sarà molto bello, ma non è l'argomento della discussione).
Quando si salvano le modifiche per una nota, questa viene crittografata con la password inserita (che viene memorizzata nella variabile Javascript, o in modalità paranoico, nuovamente richiesta). La nota crittografata è sincronizzata con il server.
Perché mi piace l'idea
Ho accesso alle mie note sicure da qualsiasi luogo (casa, lavoro, ospiti, viaggi).
Posso essere sicuro che nessuno può accedere ai miei appunti. Se qualcuno inserisce la mia email, ricevo un'email di convalida, che rifiuto.
Se la mia e-mail è compromessa e un hacker accede alle mie note, ha ancora bisogno di una password per decrittografarle.
La password viene utilizzata solo per decrittografare le note. In altre parole, password errata significa semplicemente note disordinate sullo schermo.
Open source significa che posso installarlo sul mio server di casa e non mi fido di un servizio di terze parti.
Non perfetto
Mentre scrivevo ciò, mi è venuto in mente un problema. Poiché l'app non può controllare se una password è corretta (è l'idea!), Ci deve essere un modo per impedire all'utente di inserire la password errata, ottenere note "disordinate" e quindi salvarle sul server. Hmm! ...
Ad ogni modo, grazie per aver letto e grazie in anticipo per i tuoi pensieri e feedback!