Полезность шифрования столбцов SQL

Я следовал за http://msdn.microsoft.com/en-us/library/ms179331.aspx для шифрования столбца в SQL Server.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'T3stP@ssword'

CREATE CERTIFICATE TestCert WITH SUBJECT = 'SSN Encryption'

CREATE SYMMETRIC KEY HRKey
    WITH ALGORITHM = DES
    ENCRYPTION BY CERTIFICATE TestCert;

OPEN SYMMETRIC KEY HRKey
   DECRYPTION BY CERTIFICATE TestCert;

UPDATE [dbo].[Person]
   SET [EncryptedSSN] = EncryptByKey(Key_GUID('HRKey'), CAST(SSN AS varchar(10)));


SELECT TOP 10 * FROM Person

1   Tom Thomson 111111111 0x0026DA624DBCA04CBCBF621FD5F......
2   Steve   Stephenson  222222222 0x0026DA624DBCA04CBCBF6.....       

Показывает, что я зашифровал данные, что я и хотел.

OPEN SYMMETRIC KEY HRKey
   DECRYPTION BY CERTIFICATE TestCert;

SELECT PersonID, Firstname, Lastname [SSN], 
    CONVERT(VARCHAR, DecryptByKey([EncryptedSSN])) 
    AS 'Decrypted SSN'
    FROM [dbo].[Person]


1   Tom Thomson     111111111   111111111
2   Steve   Stephenson  222222222   222222222

   Close SYMMETRIC KEY HRKey  

Игнорируя, что у меня все еще есть незашифрованный столбец, вопрос в том, что это действительно улучшило, мне просто открыть ключ и использовать его для расшифровки данных. Я предполагаю, что мне не хватает некоторого понимания.

1 ответ

Решение

Ключ связан с учетной записью пользователя, что означает, что для доступа к ключу необходимы учетные данные. Если хакер может похитить эту личность, ваши опасения применимы. Однако простого копирования или кражи подсистемы ввода-вывода недостаточно, чтобы нарушить шифрование, равно как и доступ к подсистеме ввода-вывода с другой учетной записью.

Кроме того, для полной безопасности носитель резервного копирования также должен быть защищен. Резервное копирование незашифрованных данных создает еще один вектор атаки. Если вы используете SaaS для более крупных клиентов или должны соблюдать такие стандарты, как HIPAA или PCI, вам может потребоваться обеспечить шифрование области резервных копий.

Другие вопросы по тегам