Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Criptare i dati su SQL Server
lunedì 29 settembre 2008 - 11.12
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
lun 29 set 2008 - 11:12
Ciao a tutti,
avrei bisogno di qualche idea sulla sicurezza di dati sensibili in un db su sql server 2005 ... spero di non essere troppo banale o complicato nello spiegarmi.
Provo con un esempio ...
Un db server ha N database collegati, potrebbero essere della stessa organizzazione o no. L'amministratore (uno o più) del server può ovviamente
farsi per conto suo dei grant sui vari db.
Su alcune tabelle ci sono però dei campi con valori "sensibili". Io vorrei che solo il "mio" utente vedesse in chiaro questi dati.
La mia applicazione ASP.NET accede al db, potrei pensare di gestire lì la decriptazione dei dati (li salvo su db in forma criptata e poi in qualche modo
li decripto da codice), ma mi sembra una gestione pesante. E' possibile gestire la cosa a livello sql? E' possibile creare un utente con questi privilegi?
Qualche idea?
Davide
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 29 set 2008 - 11:30
>E' possibile gestire la cosa a livello sql?
Ciao Davide,
A partire con SQL Server 2005 è stato introdotto un sistema encryption a livello di engine molto articolato ed efficiente che ti permette di utilizzare certificati, chiavi simmetriche e asimmetriche.
In questo articolo di Luca troverai tantissime informazioni utili:
http://www.visual-basic.it/articoli/lbSQLprotection.htm
SQL Server 2008 amplia ulteriormente le funzionalità di encryption introducendo il Transparent Data Encryption:
http://msdn.microsoft.com/en-us/library/bb934049.aspx
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
mar 7 ott 2008 - 15:01
Ciao Lorenzo,
grazie. Ho letto l'articolo. Al momento pensavo di usare:
- DecryptByPassPhrase(@MIA_CHIAVE, MioCampo)
- EncryptByPassPhrase(@MIA_CHIAVE MioCampo).
@MIA_CHIAVE la passo come parametro (da codice, da vb per esempio, in modo da non averlo salvato su db) a quelle poche stored procedure
che devono inserire o leggere un campo criptato. Ho già provato, fin qui tutto ok.
C'è però ancora una cosa che mi lascia per perplesso, molto perplesso.
Ad esempio, un utente sa che ha quindi le credenziali di amministratore, potrebbe aprirsi una
procedura in modalità ALTER, modificarla (inserirci un SELECT @MIA_CHIAVE INTO ... )
e quindi alla fine disporre della chiave in chiaro.
Sai mica se c'è la possibilità di salvare funzioni / procedure sul db (al momento uso sql server 2005)
in modalità read-only o qualcosa di simile? ... mi servirebbe un qualcosa che le renda non editabili.
Davide
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 7 ott 2008 - 15:05
>C'è però ancora una cosa che mi lascia per perplesso, molto perplesso.
>Ad esempio, un utente sa che ha quindi le credenziali di amministratore,
>potrebbe aprirsi una
>procedura in modalità ALTER, modificarla (inserirci un SELECT
>@MIA_CHIAVE INTO ... )
>e quindi alla fine disporre della chiave in chiaro.
E chi avrebbe fornito la chiave al sysadmin?
>Sai mica se c'è la possibilità di salvare funzioni / procedure
>sul db (al momento uso sql server 2005)
>in modalità read-only o qualcosa di simile? ... mi servirebbe
>un qualcosa che le renda non editabili.
Non esiste.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !