SQL Server 2008 симметричный ключ с разными паролями - PullRequest
1 голос
/ 30 декабря 2011

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

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

Я знаю, что есть возможность добавить пароли к существующему симметричному ключу, используя

ALTER KEY MySymKey ADD ENCRYPTION BY PASSWORD = 'newpasswd'

Вопрос состоит в том, делает ли это добавление нового шифрования с помощью пароля, и каждый пароль будет открывать его, или ключ просто дополнительно шифруется новым паролем, и необходимо предоставить все пароли и /или другие данные шифрования (сертификаты, другие ключи и т. д.), чтобы открыть этот ключ?

Если последнее верно, как я могу создать несколько дубликатов одного и того же симметричного ключа, но с разными паролями?

1 Ответ

1 голос
/ 30 декабря 2011

Я использую симметричный ключ для шифрования моего асимметричного ключа

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

Что касается вашего вопроса: добавление нового шифрования к ключу не сбрасываетсяпредыдущие шифрования.Несколько паролей могут быть добавлены к ключу.Хотя, судя по вашему примеру, вы планируете добавить пароль к симметричному ключу, который, вероятно, неверен.

Причина, по которой иерархия имеет значение, обусловлена ​​двумя факторами:

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

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

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

...