Sto usando alcune chiavi segrete per crittografare la data sensibile. Qual è il modo migliore per proteggere le chiavi? In un file che si trova sul mio server? All'interno del databse SGBG stesso? Oppure ...?
Sto usando alcune chiavi segrete per crittografare la data sensibile. Qual è il modo migliore per proteggere le chiavi? In un file che si trova sul mio server? All'interno del databse SGBG stesso? Oppure ...?
È necessario memorizzare le chiavi in modo tale da minimizzare i rischi che la chiave venga esposta a terze parti non autorizzate, consentendo comunque un funzionamento efficiente da parte dei sistemi che devono utilizzare la chiave. Se un tale sistema (il tuo "server") è sotto controllo ostile, allora hai perso comunque. Quindi la domanda su dove la chiave dovrebbe essere memorizzata ha senso solo per quanto riguarda le violazioni parziali , in cui un utente malintenzionato ottiene un accesso a una parte del server, non a il tutto.
Questo è il massimo che si possa dire in generale. Il contesto conta.
Se il tuo contesto riguarda una sorta di server Web, alimentato da un framework programmatico (ad esempio, PHP) con un database SQL per l'archiviazione dei dati, allora potremmo obiettare che un tipo molto comune di violazione parziale è Iniezione SQL , che consente principalmente a chi attacca di ottenere l'accesso di sola lettura (o lettura-scrittura) a (parti di) database, senza impatto diretto la sicurezza del server stesso. In questo senso, si può dire che il database sia "più esposto" rispetto al resto del server; corrispondentemente, le chiavi non dovrebbero essere memorizzate nel database stesso. Tuttavia, ricorda che questa è solo un'affermazione molto generica che si applica necessariamente al tuo caso specifico. Il contesto conta .
Ancora genericamente, potremmo affermare che se il tuo sistema operativo offre alcune strutture dedicate all'archiviazione di valori segreti, utilizzarli è probabilmente una buona idea. In un sistema Windows, questo punta a DPAPI . Non è chiaro se effettivamente sarà di aiuto (dipende, di nuovo, dal contesto - il contesto conta) ma non dovrebbe arrecare danno.
Leggi altre domande sui tag encryption