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

Относится к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics 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 или RC4_128KEY_GUID для разных блоков данных приводит к получению одного и того же ключа RC4, так как SQL Server не добавляет соль автоматически. Использование одного и того же ключа RC4 неоднократно является известной ошибкой, которая приводит к слабому шифрованию. Поэтому мы объявили ключевые слова RC4 и RC4_128 устаревшими. Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Уточнение алгоритмов DES

DESX был именован неправильно. Симметричные ключи, созданные с помощью ALGORITHM = DESX, на самом деле используют шифр Triple DES с 192-битным ключом. Алгоритм DESX не предоставляется. Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Симметричные ключи, созданные с помощью ALGORITHM = TRIPLE_DES_3KEY, используют Triple DES с 192-битным ключом.

Симметричные ключи, созданные с помощью ALGORITHM = TRIPLE_DES, используют алгоритм Triple DES с 128-битным ключом.