Вопрос

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

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

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

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?

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

Спасибо

Это было полезно?

Решение

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

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

Side Note ASA, как правило, не зашифрует данные с асимметричными клавишами. Они слишком медленные для операций с данными. Что каждый делает, они зашифруют данные с симметричным ключом, а затем шифруют симметричную клавишу с асимметричным ключом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top