C'è qualche & libero strumento open source per la crittografia a chiave pubblica, in cui la chiave privata è solo una password scelta?
Ecco di cosa ho bisogno:
- Voglio fare i backup ogni ora usando uno script
- Voglio utilizzare solo strumenti open source.
- I backup devono essere crittografati,
- Devo essere in grado di decrittografarli senza file.
Non posso usare la crittografia simmetrica per i backup, perché la password non può essere fornita nello script in testo semplice e non posso essere chiesta ogni volta che viene effettuato un backup per la password (ad es. perché quando sono in vacanza di 1 mese, i backup devono essere ancora fatti).
Quindi ho pensato alla crittografia a chiave pubblica, ma tutti gli strumenti che ho letto su memorizzano la chiave privata in un file. Ho paura di perderlo, proprio come tutti gli altri dati (è per questo che sto facendo i backup in primo luogo). Immagina che il mio disco soffra di guasti hardware, qualcuno lo ruba, brucia in un incendio, ecc. Certo, ho dei backup, ma non riesco a decodificarli senza il file della chiave privata, che ora è perso! Naturalmente potrei avere i backup del mio file di chiave privata, ma semplicemente non voglio fare affidamento su un file per decrittografare i miei dati.
Ho trovato una soluzione (almeno dal punto di vista matematico, perché non riesco a trovare nessuno strumento che la implementa). Diciamo che ho la mia password. Facciamo generare una coppia di numeri primi (p1, p2) usando la seguente funzione p2rsapk:
(p1,p2) = p2rsapk(password) = {
bits = password as vector of bits
(n1,n2) = split bits into two parts in deterministic way, e.g. just take halves
p1 = find prime based on n1, e.g. lowest prime p1 s.t. p1 > 2^n1-2
p2 = find prime based on n2
}
Voila! Abbiamo appena preso una password e l'abbiamo trasformata nella nostra coppia di chiavi privata / pubblica. Ora potrei crittografare il mio backup con la chiave pubblica (usata dallo script) e decodificarlo quando devo senza la necessità di alcun file di chiave privata (perché la mia password è la mia chiave privata con l'aiuto della funzione p2rsapk).
Potrei anche inviare la mia chiave pubblica agli amici, in modo che possano inviarmi messaggi crittografati e posso decrittografarli da qualsiasi luogo senza l'accesso al mio file di chiave privata non più necessario.
Tuttavia, mentre l'idea è abbastanza semplice, non ho trovato nessuno strumento che la implementa. È noto questo approccio? E ci sono strumenti per questo?
EDIT: Non posso sottolineare abbastanza quanto sia importante per me non fare affidamento su un file come chiave privata. Sono ben consapevole dell'approccio in cui si memorizza la chiave privata in un file (eventualmente protetto da password) e i suoi vantaggi e svantaggi, e riconosco che è il modo più sicuro per affrontare molti scenari. Ci sono molti libri, tutorial e pagine man che descrivono come procedere se si desidera la chiave privata in un file. Lo so, ma quando rispondi tieni presente che è un requisito rigoroso che non ci siano file per l'archiviazione della chiave privata.
EDIT2: Sono perfettamente consapevole dei problemi con password deboli. So che la password è il link più debole, quindi supponiamo che userò una password sicura (minimo 50 caratteri incluse lettere maiuscole e minuscole, cifre, simboli e nessuna parola del dizionario).