Non sarai in grado di convincere i potenziali utenti che la tua app di gestione delle password è sicura e affidabile senza specificare dettagli sufficienti dell'architettura in modo che gli utenti possano prendere una decisione informata.
Prima di tutto, devi dire quale algoritmo di crittografia viene utilizzato e la forza chiave. Speriamo che, qualunque cosa sia, è attuale e generalmente accettata come infrangibile contro le tattiche moderne.
Devi anche parlare di come il tuo codice gestisce la decrittografia dei dati. Sulla piattaforma Windows si ha la classe SecureString che fa un lavoro ragionevolmente buono per evitare che i dati non crittografati vengano archiviati in memoria in testo normale e / o in memoria più a lungo del necessario. Non sarebbe positivo se gli utenti scoprissero che se l'app interrompe i dati si trova nel file di crash dump in testo in chiaro.
I dettagli del test di penetrazione che è stato fatto dovrebbero essere forniti insieme ai dettagli. Idealmente, dovresti sollecitare i tester competenti per la penetrazione a battere la tua app per rivelare eventuali punti deboli. Quali difese attive ha l'app contro i metodi di attacco comuni, ad es. rileverà e rifiuterà di funzionare se è in esecuzione una delle app di keylogger più comuni?
Infine, non dimenticare l'elemento umano. Cosa succede quando l'utente dimentica la chiave, o più probabilmente se l'app in qualche modo corrompe o perde la metà? C'è una funzione di recupero? Qual è il processo intorno a questo? Se i dati sono semplicemente andati via senza alcun modo di recuperarli, questo non verrà abbracciato molto bene. Se c'è un processo per recuperare i dati, allora quel processo deve essere esaminato attentamente. Non sarà bello se riuscirò a recuperare i dati crittografati semplicemente trovando la madre del mio obiettivo su Facebook e conoscendo il nome da nubile.
Non tentare di scoraggiare, ma è molto rischioso commercializzare un'app di questa natura. Sarai in competizione con aziende che sono state in questo business da decenni e hanno le risorse per assumere le migliori menti al mondo per sviluppare e / o testare il prodotto.
Anche se potessi farlo, avresti comunque bisogno di una dichiarazione di non responsabilità legale molto rigorosa per proteggerti dalla responsabilità. Che cosa succede se ti svegliassi una mattina ed è finita la notizia che le classi di crittografia in .Net sono state sfruttate in un modo che rende la tua app vulnerabile? Potresti aver fatto tutto esattamente nel tuo codice e nei processi di supporto, ma sei dipendente dalle librerie di classi al di fuori del tuo controllo diretto.