Рассмотрим следующее изображение, на котором показана иерархия шифрования, используемая в SQL Server.Обратите внимание на первый синий блок, в котором говорится, что SMK зашифрован с использованием DPAPI .DPAPI использует учетные данные пользователя (+ еще), зашедшие в систему, для шифрования данных, поэтому он зависит от компьютера.Это означает, что SMK (а также DMK и любой производный пароль) будут зависеть от компьютера (на самом деле он генерируется установкой SQL Server).OTOH, я могу создать / сделать резервную копию сертификата X.509 в SQL Server (используя CREATE CERTIFICATE, BACKUP CERTIFICATE и т. Д.).
Сценарий / вопрос:
Я занимаюсь разработкой веб-приложения, которое должно шифровать и хранить информацию CC в столбце базы данных.Мне нужно получить доступ к этим данным, позже на другой машине, так что резервная копия базы данных должна быть фактически читаемой при восстановлении на другой машине (хотя для того, кто получил доступ к вышеупомянутому сертификату).
ЯИнтересно, как мне восстановить резервную копию на другом компьютере, если SMK относится к текущему экземпляру SQL Server?Что я должен сделать, чтобы получить доступ к этим зашифрованным данным после их восстановления на другом компьютере?
ОБНОВЛЕНИЕ: Поправьте меня, если я ошибаюсь!Мы могли бы использовать команду BACKUP SERVICE MASTER KEY TO FILE
для поддержки текущего используемого SMK.Этот ключ, однако, может быть восстановлен на любом другом SQLServer (в / из того же компьютера) с помощью команды RESTORE SERVICE MASTER KEY FROM FILE
.Когда SMK восстанавливается, он снова шифруется с использованием DPAPI, так что сам ключ может храниться где-то на машине.
Любая помощь будет принята с благодарностью,
