Come faccio a memorizzare e recuperare in modo sicuro una chiave di utilizzo a più riprese?

3

Sto eseguendo una crittografia / decodifica di database simmetrica in .net. Sto usando una singola chiave privata a 256 bit.

(1) Dove ripongo questa chiave quando non la usi?

(2) Come posso recuperare in modo sicuro questa chiave?

(3) Come uso in modo sicuro la chiave?

(4) Quali operazioni devo eseguire al termine della crittografia per mantenere la sicurezza?

    
posta crawfish 18.07.2012 - 20:08
fonte

1 risposta

2

Questa risposta tenta di guidarti verso la soluzione ideale. Idealmente, se un utente malintenzionato può leggere l'intero disco rigido, dovrebbe comunque essere impossibile (nella nostra vita) per ottenere la chiave e i dati e decifrare senza alcune intercettazioni aggiuntive. (ad esempio una password) . È possibile che questa soluzione ideale non sia fattibile per il tuo caso d'uso. Maggiori dettagli richiesti.

Where do I store this key when not in use?

Cripta la chiave e salvala sul disco rigido.

How do I securely retrieve this key?

Utilizzare una password per creare una chiave utilizzata per crittografare asimmetricamente la propria chiave di crittografia simmetrica. In questo modo, finché la password non viene intercettata, la chiave simmetrica è sconosciuta perché la chiave è stata crittografata. Ulteriori spiegazioni (La password può essere immessa all'avvio oppure può essere inserita all'accesso.) Ulteriori dettagli necessari. ) Assicurati che la routine di derivazione della chiave sia lenta (100-1000 ms) per rendere la forza bruta sufficientemente costosa.

How do I securely use the key?

Nel caso di un'operazione relativa al database SQL, eseguire la crittografia nell'applicazione. Non inviare la chiave o il testo non crittografato nel comando SQL, a meno che non si sia sicuri che non vi sia alcuna modifica della registrazione delle istruzioni (binlog), registrazione lenta delle istruzioni (rallentamenti), probabile intercettazione utilizzando il comando show processlist . Ulteriori letture, parzialmente pertinente (le mie informazioni sono orientate a MySQL)

Nota anche dove stai memorizzando le informazioni. Alcune intrusioni consentiranno l'accesso al proprio database SQL da parte dell'utente malintenzionato, mentre altre forniranno solo l'accesso non root al filesystem, il che significa che le autorizzazioni UNIX possono essere utilizzate per nascondere i dati. Alcuni attacchi forniranno accesso di sola lettura, altri forniranno read-write, il che significa che il codice potrebbe essere modificato per registrare le informazioni non crittografate.

What operations do I need to perform once encryption is finished to maintain security?

Forse renditi conto della possibilità di fare lo heap dump, scambiare la lettura. Si dovrebbe anche prendere in considerazione l'opportunità di consultare regolarmente lo stack di sicurezza IT Exchange per ampliare le proprie conoscenze in materia di sicurezza. (metà scherzando, metà serio)

È possibile che alla mia risposta manchino alcune misure importanti. Ti suggerirei di modificare la tua domanda per fornire ulteriori informazioni.

Puoi anche esaminare come stai usando la chiave, una volta che è resa disponibile. Con questo voglio dire, il protocollo di crittografia che viene utilizzato, così come gli algoritmi utilizzati per creare la crittografia del flusso al di fuori della crittografia del blocco sottostante, possono richiedere un esame. Ulteriori letture

Ho fiducia che gli esperti qui mi voteranno se ho ragione o commenterò dove mi sbaglio.

    
risposta data 18.07.2012 - 21:40
fonte

Leggi altre domande sui tag