Sta generando una chiave RSA con la password e poi la si stacca più sicura di nessuna password?

6

Qualche tempo fa mi sono imbattuto in questa domanda su SO; chiede come rimuovere la passphrase da una chiave RSA esistente usando un equivalente PHP al comando openssl rss esistente.

Ho pubblicato una risposta con la soluzione, ma all'interno del thread del commento l'OP ha affermato quanto segue:

Encrypted key, which is later decrypted offers way better security than not encrypted at generation. source

Per me sembra un totale BS; in che modo una chiave potrebbe diventare più sicura generandola con una passphrase e poi rimuovendola?

Ma forse c'è un valido ragionamento dietro questo "fatto"?

    
posta Jack 27.10.2013 - 02:11
fonte

3 risposte

2

Disa si riferirebbe al fatto che se un utente malintenzionato ruba la chiave crittografata, deve anche rubare la passphrase che protegge la chiave.

Quindi Disa si riferisce alla sicurezza operativa invece della sicurezza matematica. La chiave crittografata non è più matematicamente sicura: il livello di entropia non è cambiato dal punto di vista di un attacco di forza bruta 1 . Ma il furto o la copia del disco rigido non perderà necessariamente la chiave per l'attaccante in quanto la passphrase potrebbe non essere mai memorizzata sul computer; al di fuori del proprio gestore di password.

1. A meno che l'entropia iniziale della coppia di chiavi fosse così male che la crittografia della chiave aggiunga temporaneamente più entropia ...

    
risposta data 28.10.2013 - 11:01
fonte
2

All'interno di OpenSSL, lo stesso identico codice viene utilizzato per generare una coppia di chiavi RSA, indipendentemente da ciò che viene fatto in seguito con quella chiave, ad es. se è memorizzato in un file con o senza un ulteriore livello di crittografia.

Si noti, tuttavia, che le chiavi private sono oggetti sensibili; ti sforzerai di farle scrivere su un supporto fisico il più raramente possibile. Questo è, in genere, un problema per le applicazioni che avvolgono l'utilità della riga di comando openssl , poiché tale utilità tende a creare file . Un'applicazione potrebbe desiderare di generare una coppia di chiavi nella RAM e usarla, e magari memorizzare la chiave privata "altrove", ma se l'applicazione si basa sulla chiamata di openssl , è probabile che una copia della chiave privata arrivi a qualche disco rigido. In questa situazione , assicurando che la copia spuria sia crittografata (con una passphrase casuale grassa che è conservata solo nella RAM) può migliorare la sicurezza. In uno scenario del genere, sarebbe meglio, tuttavia, utilizzare direttamente OpenSSL, la libreria , anziché lo strumento da riga di comando (che è sempre stato più di un helper di debug).

    
risposta data 28.10.2013 - 15:35
fonte
0

Per quanto posso dire (anche se non è ovvio nella nota di Disa), sembra che questo possa essere più sicuro soprattutto se la chiave non viene generata sul sistema in cui verrà utilizzata in seguito (o se sarà necessario memorizzare un backup della chiave da qualche parte).

In tal caso, la chiave verrà scritta sul file system in cui è stata generata, lasciando tracce anche dopo la normale cancellazione dei file, quindi la chiave dovrà essere trasmessa sul sistema di destinazione, sia dalla rete che da qualsiasi altra media (supporti rimovibili, ecc.), che entrambi lasciano tracce e possono essere potenzialmente intercettati. È meglio per queste tracce e il potenziale rischio di intercettazione influenzare una versione crittografata della chiave piuttosto che una chiara, anche se il server di destinazione utilizza effettivamente una versione chiara.

Pertanto, penso che questo porti solo più sicurezza nel processo di gestione delle chiavi che nella stessa chiave che rimane la stessa, dovrebbe essere generata crittografata o meno.

    
risposta data 04.11.2013 - 22:50
fonte

Leggi altre domande sui tag