Выбор алгоритма шифрования

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

Шифрование — это одна из нескольких защит, доступных администратору, который хочет защитить экземпляр SQL Server.

Алгоритмы шифрования определяют преобразования данных, которые не могут быть легко отменены несанкционированными пользователями. Администратор istrator и разработчики могут выбрать один из нескольких алгоритмов в 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_128KEY_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-разрядным ключом.