Выбор алгоритма шифрования
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Шифрование — это одна из нескольких защит, доступных администратору, который хочет защитить экземпляр SQL Server.
Алгоритмы шифрования определяют преобразования данных, которые не могут быть легко отменены несанкционированными пользователями. Администраторы и разработчики могут выбрать один из нескольких алгоритмов в SQL Server, включая DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-разрядный RC4, DESX, 128-разрядный AES, 192-разрядный AES и 256-разрядный AES.
Начиная с SQL Server 2016 (13.x), все алгоритмы, отличные от AES_128
, AES_192
и AES_256
не рекомендуется. Чтобы использовать старые алгоритмы (что не рекомендуется), необходимо установить уровень совместимости базы данных 120 или ниже.
Выбор правильного алгоритма
Ни один алгоритм не идеально подходит для всех ситуаций, и руководство по преимуществам каждого из них выходит за рамки этой статьи. Однако можно руководствоваться следующими общими принципами:
Надежные алгоритмы шифрования обычно потребляют больше ресурсов ЦП, чем менее надежные средства шифрования.
Использование длинных ключей, как правило, дает более надежные результаты, чем шифрование с помощью коротких ключей.
Асимметричное шифрование медленнее симметричного.
Длинные сложные пароли надежнее, чем короткие пароли.
Симметричное шифрование рекомендуется использовать, если ключ хранится только локально. Асимметричное шифрование рекомендуется использовать, когда ключи должны быть общими в проводной сети.
При шифровании большого количества данных необходимо зашифровать данные с помощью симметричного ключа и зашифровать симметричный ключ асимметричным ключом.
Зашифрованные данные нельзя сжать, но сжатые данные можно зашифровать. При использовании сжатия данных, выполняйте эту операцию до их шифрования.
Дополнительные сведения о алгоритмах шифрования и технологии шифрования см. в разделе "Основные понятия безопасности".
Устаревший алгоритм RC4
Алгоритм RC4 поддерживается только в целях обратной совместимости. Новый материал можно зашифровать только с помощью RC4
или RC4_128
когда база данных находится на уровне совместимости 90 или 100 (не рекомендуется). Используйте вместо этого более новые алгоритмы, например AES. В SQL Server 2012 (11.x) и более поздних версиях материалы, зашифрованные с помощью RC4
или RC4_128
можно расшифровать на любом уровне совместимости.
Повторяющееся использование одного или RC4_128
KEY_GUID
нескольких RC4
блоков данных приводит к тому же ключу RC4, так как SQL Server не предоставляет соль автоматически. Использование одного и того же ключа RC4 неоднократно является известной ошибкой, которая приводит к слабому шифрованию. Поэтому мы не рекомендуем RC4
использовать ключевые слова и RC4_128
ключевые слова. Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Уточнение алгоритмов DES
DESX был именован неправильно. Симметричные ключи, созданные с использованием шифра Triple DES с ALGORITHM = DESX
192-разрядным ключом. Алгоритм DESX не предоставляется. Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Симметричные ключи, созданные с использованием Triple DES с ALGORITHM = TRIPLE_DES_3KEY
192-разрядным ключом.
Симметричные ключи, созданные с использованием Triple DES с ALGORITHM = TRIPLE_DES
128-разрядным ключом.