2010-05-10 2 views
0

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

Проблема возникает, когда мне нужно переместить эти данные на производственный сервер.

Вот код ключа, который был создан:

CREATE MASTER KEY ENCRYPTION BY PASSWORD='#########' 
CREATE ASYMMETRIC KEY UserEncryptionKey 
WITH ALGORITHM = RSA_2048 

Теперь, когда я запускаю это на сервере, он создает ключ просто отлично. Однако, когда я запускаю свой sproc для получения пароля, он возвращает NULL.

SQL:

SELECT EncryptByAsymKey(AsymKey_ID('UserEncryptionKey'), Password) 
    FROM Users WHERE UserName = '######' 

Любые мысли о том, что мне нужно сделать, чтобы получить зашифрованное поле для работы на нескольких серверах SQL?

Пожалуйста, дайте мне знать, если мне нужно что-то прояснить.

Благодаря

ответ

0

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

При обмене данными между сайтами обычная процедура отделяет управление ключами и развертывание от передачи данных. Данные дешифруются до передачи и используются схемы шифрования для передачи данных, такие как TLS и SSL, которые устраняют проблему развертывания и обмена фактическими ключами шифрования.

Asa side note, как правило, никто не шифрует данные с помощью асимметричных клавиш. Они слишком медленны для операций с данными. Все, что они делают, это шифрование данных симметричным ключом, а затем шифрование симметричного ключа с помощью асимметричного ключа.

+0

Хорошо, спасибо, спасибо! – CodeLikeBeaker

Смежные вопросы