2012-12-13 3 views
2

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

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '[email protected]' 

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 

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

+2

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

ответ

1

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

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