Полезность шифрования столбцов 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, вам может потребоваться обеспечить шифрование области резервных копий.