Quanto sono sicuri i membri di appartenenza e ruolo ASP.NET predefiniti per Sql Server?

8

Ho un'idea molto semplice di come funzionano. Li ho usati molte volte quando avevo bisogno di un sistema di gestione degli utenti piuttosto che scrivere il mio. Ma dovrei usare questi per un sistema di produzione? Gli account utente di Windows in realtà forniscono più sicurezza di questi account nelle tabelle del database, data una piccola base di utenti con la verifica dei nuovi utenti prima dell'attivazione?

Credo che questo sistema sia sicuramente più sicuro di qualsiasi cosa io possa scrivere, ma ci sono delle misure di sicurezza che dovrei prendere o un fornitore di terze parti che è molto meglio?

    
posta Peter Smith 17.06.2011 - 23:07
fonte

1 risposta

3

Quanto sono sicuri dipende interamente da ciò che vuoi difendere e da ciò che vuoi difendere. Difendersi da un dipendente interno che vuole esaminare i dati delle vendite dei propri colleghi è diverso da un aggressore esterno che vuole sottrarre informazioni ai clienti, che è diverso dalla difesa contro un governo che vuole rubare i propri progetti proprietari.

In generale, questi provider non sono insicuri in quanto seguono le raccomandazioni di base come la salatura delle password, consentendo di modificare l'algoritmo hash, ecc. (incluse anche le informazioni non crittografiche). Tuttavia, si entra nei problemi di configurazione come assicurarsi che la connessione a SQL sia sicura, la pagina in cui POST le credenziali sono su SSL, o che i cookie di sessione siano protetti tramite SSL, l'accesso al database stesso sia sicuro, ecc.

In confronto, l'autenticazione di Windows ha problemi simili, quindi si entra in problemi di limiti di sicurezza, poiché diventa complicato utilizzare Windows Auth su Internet.

Nella teoria un archivio di Active Directory probabilmente sarà più sicuro di un database SQL Server medio, ma in realtà se tutto ciò che si sta utilizzando è l'autenticazione dell'utente su un sito Web pubblico, è probabile che MOLTO insicuro perché probabilmente non è trattato come l'AD aziendale. Poi di nuovo, corporate AD probabilmente non è trattato bene (in generale, non necessariamente nel tuo caso).

I database SQL sono soggetti agli attacchi di SQL injection, gli archivi di Active Directory sono soggetti a attacchi specifici di Windows. I database SQL tendono a causare l'espansione delle identità ... più account utente per più applicazioni distribuite su più database. Active Directory conduce account centralizzati. O potrebbe essere buono o cattivo, dipende da cosa stai cercando di realizzare.

La scrittura dei propri fornitori di solito non è raccomandata in quanto non sono stati sottoposti a scrutinio pubblico, mentre i provider integrati in .NET lo hanno. I fornitori di terze parti si imbattono nello stesso problema di base. Come sono stati testati?

E poi questo fa sorgere una domanda sul perché stai lasciando che l'applicazione gestisca l'autenticazione stessa? Forse è meglio lasciare che qualcun altro lo faccia tramite l'autenticazione basata sulle attestazioni. Ciò spinge il rischio su un altro sistema come Google, Facebook o Windows Live.

    
risposta data 20.06.2011 - 18:00
fonte

Leggi altre domande sui tag