Come memorizzare in modo sicuro le chiavi private degli utenti? [chiuso]

-1

Sto costruendo un'applicazione che deve memorizzare una coppia di chiavi pubblica / privata generata dall'utente. Qual'è il miglior modo per farlo? Criptare la chiave privata nel db con qualche segreto generato dall'applicazione? Cripta la chiave privata con qualche segreto specifico dell'utente?

    
posta A.N. 23.09.2014 - 06:43
fonte

2 risposte

1

Per non essere d'accordo con i commenti precedenti. È OK (ma molto insolito) memorizzare coppie di chiavi private / pubbliche in un database, a seconda della tua infrastruttura. Ad esempio, potremmo parlare di speciali PKI basati su Identy. Quindi, quello che devi fornire, è più informazioni sulla tua infrastruttura, per ottenere una risposta adeguata. Tuttavia, come hai dato i due esempi:

"crittografa dal segreto generato dall'applicazione" - sì, ma devi proteggere anche quel segreto, quindi sembra che sia una specie di ciclomatico. L'unica cosa che puoi fare è limitare l'accesso al database.

"Crittografa la chiave privata con qualche segreto specifico dell'utente" - sembra essere una contraddizione, poiché non si memorizzerebbe mai la chiave privata di un utente se l'utente tiene anche questa chiave privata e se detiene un segreto per crittografare questa chiave privata, potrebbe invece contenere la chiave privata al suo posto.

    
risposta data 23.09.2014 - 10:27
fonte
1

Risposta breve: non lo fai. Le chiavi private sono, per definizione, destinate a rimanere private. Se hai bisogno di memorizzare un segreto per ogni utente, le probabilità sono che la crittografia simmetrica sia più adatta.

Dovresti modificare la tua query con maggiori dettagli su ciò che stai cercando di realizzare. Se c'è un difetto nel tuo progetto come immagino, possiamo fornirti consigli per migliorarlo. E se ti capita davvero di avere una buona ragione per archiviare la chiave privata di un utente sarei molto interessato a leggerlo.

    
risposta data 23.09.2014 - 11:05
fonte

Leggi altre domande sui tag