ste72:Ho letto un pò di tutto in giro circa le varie nuove tecniche di criptazione fornite da SQL 2005 ma mi rimane il dubbio che un utente con privilegi di sysadmin possa sempre e comunque decriptare i miei dati
Beh si...anche perchè *qualcuno* deve pur poterlo fare altrimenti ci potrebbe essere il rischio di perderli.
Tieni conto che a parte una o due persone in una società nessuno dobvrebbe agire come sysadmin.
ste72:anche usando la EncryptByPassPhrase un utente esperto tramite il profiler può comunue interecettare la chiave...
Esatto, infatti il modo più sicuro sarebbe quello di criptare il tutto tramite certificato digitale (EncryptByKey o EncryptByCert. Il problema rimane cmq il trasporto. Poi anche decidere di utilizzare IPSec o SSL e criptare tutto, ma rimanese sempre il fatto che un amminstratore della macchina può agire in modo tale da rimuovere tale meccanismo di sicurezza. (che se puoi sviluppare la tua applicazione in modo che richieda esplicitamente una connessione protetta: http://msdn2.microsoft.com/en-us/library/ms254500(VS.80).aspx e http://support.microsoft.com/kb/318605)
ste72:mi sembrerre quindi che dato il requisito l'unica sia di cifrate integralmente i dati a livello applicativo e memorizzare sul db il dato già cifrato... il tutto quindi senza usare alcuna funzionalità di cifratura di SQL...
Se devi essere sicuro che *neanche* l'amministratore di sistema possa leggere quei dati allora l'unico modo è effettivamente questo.