Che cosa è una pratica migliore - RSA Encryption vs autenticazione di Windows

1

Ho due macchine con sistema operativo Windows con IIS e sistema operativo Windows con MS SQL. Nel file web.config di produzione configuro IIS per utilizzare un nome utente e una password quando ci si connette al DB e quindi lo crittografo con una chiave utilizzando RSA. La chiave verrà generata utilizzando aspnet_regiis ed esportata in tutte le macchine IIS. Ogni server di produzione contiene solo il file web.config crittografato (e una chiave importata nel protetto in IIS).

L'altro approccio sarà definire in web.config una connessione usando l'autenticazione di Windows. Questo sarà molto meno lavoro dalla mia parte.

Quale pratica è migliore? Quale è più sicuro?

    
posta Bick 25.02.2013 - 07:47
fonte

2 risposte

2

Qui non ci sono abbastanza informazioni per rispondere. Se si dispone di un mezzo sicuro per l'archiviazione delle chiavi (come un buon TPM (Trusted Platform Module) o un HSM (Hardware Security Module) in grado di archiviare le chiavi nell'hardware, disporre di un file di configurazione crittografato sarebbe più sicuro rispetto all'autenticazione in il chiaro.

Detto questo, le informazioni necessarie per interrompere entrambi i sistemi sono presenti sul computer poiché IIS può accedervi. Se un utente malintenzionato ha un controllo sufficiente del sistema, nessuno dei due sistemi sarà di grande aiuto poiché può essere mascherato come IIS e inviare la decrittografia.

Onestamente, penso che l'installazione dell'autenticazione di Windows sia corretta, ma lo farei facendo in modo che il sito venga eseguito come un utente particolare. Quindi concedere a quell'utente il permesso di connettersi al DB. Affinché un utente malintenzionato possa violare il sistema, è necessario accedere a un account che ha accesso alle credenziali dell'account del servizio (a quel punto, in ogni caso, avrebbero il controllo dell'applicazione in questione) e se hanno il controllo dell'applicazione, ottenere la chiave non sarà così difficile.

Non conosco alcun modo più elaborato per aggiungere sicurezza al setup, sebbene qualcun altro possa avere un'idea migliore di me.

    
risposta data 25.02.2013 - 15:17
fonte
2

"Meno lavoro" dovrebbe essere un incentivo abbastanza potente ...

Regola generica: giocando meno giochi con la crittografia, riduci i rischi di sbagliare. In crittografia, "less" significa "migliore".

In questo caso specifico, vorrai che la tua macchina sia in grado di riavviarsi in modo incustodito (ad esempio dopo un'interruzione di corrente nelle prime ore della notte). Quindi ciò che la tua macchina contiene è sufficiente per accedere al database ed è protetto solo dal livello di sicurezza intrinseco del sistema operativo. Chiunque possa ottenere l'accesso amministrativo ai propri server sarà in grado di prelevare i dati dal database, indipendentemente dal fatto che si sia fatto un ballo rituale complicato con le chiavi RSA o semplicemente utilizzato l'autenticazione di Windows.

Dal momento che non fa alcuna differenza effettiva per la sicurezza, allora si potrebbe anche scegliere la semplice strategia di utilizzare l'autenticazione di Windows. Bonus: non puoi essere incolpato di rottura quando segui le regole di Microsoft.

    
risposta data 25.02.2013 - 22:20
fonte

Leggi altre domande sui tag