2009-06-15 17 views
5

Stavo leggendo questo:Perché non dovrebbe essere memorizzata una chiave privata verbatim o in testo normale sul computer locale?

http://msdn.microsoft.com/en-us/library/tswxhw92(VS.80).aspx

La prima frase dice: "chiavi private asimmetriche non devono mai essere memorizzati testualmente o in formato testo sul computer locale."

Qual è il problema con questo? E come risolve un contenitore di chiavi.

Il motivo per cui sto chiedendo è che voglio generare una coppia di chiavi asimmetriche. L'applicazione che sto scrivendo crittograferà le informazioni che mi invia con la chiave pubblica. Stavo pensando di memorizzare la coppia di chiavi pubblica/privata nel nostro sistema di controllo del codice sorgente in modo che venga eseguito il backup. Non dovrei farlo? In caso contrario, come devo archiviare la chiave privata in modo che possa essere salvata in modo affidabile?

Grazie. -scott

Aggiornamento: "mai" nella frase citata significa davvero mai. O significa che non dovrei conservare le chiavi per il controllo del codice sorgente a meno che non sia disposto a correre il rischio che un hacker possa potenzialmente recuperare le chiavi dal nostro sistema di controllo del codice sorgente o da un backup preso da esso.

+0

s/hacker/dipendente licenziato o insoddisfatto/e si dispone dello scenario più comune. – MSalters

risposta

4

Sì, il "mai" nella frase citata significa davvero mai.

Se la chiave è archiviata in chiaro, chiunque può accedere a quel file può leggere o duplicare la chiave, quindi utilizzarla per impersonare l'utente. Se visualizzi quel file sullo schermo per qualsiasi motivo (guardando la chiave, apri il file sbagliato, modificando altre informazioni nel file, ecc.), Allora chiunque passi oltre può vederlo, potenzialmente memorizzarlo e usarlo per impersonare tu.

Una chiave crittografica privata è un segreto non condiviso. Se non lo mantieni non condiviso e segreto, non può fare il suo lavoro correttamente.

+0

Hmm. Devo riporlo da qualche parte. Non penso che nessuno lo memorizzerà perché è lungo e molto casuale - non ho alcuna possibilità di ricordarlo. Quindi, penso ancora che sarà necessario andare su disco. Dovrò solo assicurarmi che il disco non cada nelle mani dei cattivi. Suppongo che potrei crittografarlo per memorizzarlo, ma poi, ho ancora il problema di cosa devo fare con la chiave con cui l'ho crittografato. –

+1

Sì, deve essere memorizzato da qualche parte e sei finito nel posto giusto con la conclusione che dovresti memorizzarlo in un formato crittografato. La chiave per decriptarlo è generalmente sotto forma di passphrase, inserita dall'utente all'avvio del programma. –

2

Poiché un utente malintenzionato può leggere la chiave, se riceve i file. Non sono sicuro, cosa fa il contenitore delle chiavi, ma suppongo che crittografa le chiavi prima di scriverle su un file.

3

Una soluzione comune è crittografare le chiavi private nel portachiavi, ad es. utilizzando uno schema di crittografia basato su password.

La chiave privata è necessaria per decodificare i bit crittografati con la chiave pubblica e viceversa. Poiché la chiave pubblica è pubblica per definizione, si desidera mantenere segreta la controparte privata.

Soprattutto quando si utilizza la crittografia a chiave pubblica per le firme digitali, è importante mantenere la chiave privata segreta. Essere in grado di produrre firme digitali che possono essere verificate con la tua chiave pubblica dimostra essenzialmente che chiunque abbia fatto la firma ha avuto accesso alla tua chiave privata.

Se è possibile garantire che nessuno tranne te o il software di cui ti fidi possa accedere ai file sul tuo computer, non è necessario crittografare le tue chiavi private. Ma queste sono dure ipotesi da fare.

+0

Stai parlando di crittografare le chiavi private con una password che è persistente nella memoria umana? –

+0

@Scott Langham: Sì, o più come una passphrase più lunga. Certo che non è l'unica forma di protezione.Non si condividono ancora le chiavi private con nessuno ma le si memorizza in un luogo non facilmente accessibile. Per esempio. utilizzando le protezioni offerte dal sistema operativo come permessi del file system o componenti speciali del keystore. – laalto

Problemi correlati