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

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

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

Алгоритмы шифрования определяют преобразования данных, которые не могут с легкостью отменить неавторизованные пользователи. SQL Server позволяет администраторам и разработчикам выбирать из нескольких алгоритмов, в том числе DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 со 128-разрядным ключом, DESX, AES со 128-разрядным ключом, AES со 192-разрядным ключом и AES с 256-разрядным ключом.

Примечание

Начиная с версии SQL Server 2016 (13.x);все алгоритмы, отличные от AES_128, AES_192 и AES_256, являются нерекомендуемыми. Чтобы использовать старые алгоритмы (что не рекомендуется), необходимо установить уровень совместимости базы данных 120 или ниже.

Не существует одного алгоритма, идеально подходящего для всех случаев. Информация по качеству каждого из них лежит за пределами электронной документации по SQL Server . Однако можно руководствоваться следующими общими принципами:

  • Надежные алгоритмы шифрования обычно потребляют больше ресурсов ЦП, чем менее надежные средства шифрования.

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

  • Асимметричное шифрование медленнее симметричного.

  • Длинные сложные пароли надежнее, чем короткие пароли.

  • Симметричное шифрование обычно рекомендуется использовать, только если ключ хранится локально; асимметричное — если ключи должны передаваться по каналу связи.

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

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

Важно!

Алгоритм RC4 поддерживается только в целях обратной совместимости. Когда база данных имеет уровень совместимости 90 или 100, новые материалы могут шифроваться только с помощью алгоритмов RC4 или RC4_128. (Не рекомендуется.) Используйте вместо этого более новые алгоритмы, например AES. В SQL Server 2012 (11.x) и более поздних версиях материалы, зашифрованные с помощью алгоритмов RC4 или RC4_128, могут быть расшифрованы на любом уровне совместимости.

Многократное использование одного и того же RC4 или RC4_128 KEY_GUID для различных блоков данных приведет к одному и тому же ключу RC4, так как SQL Server не предоставляет рассеивание автоматически. Повторное использование ключа RC4 является типичной ошибкой, снижающей надежность шифра. Таким образом, ключевые слова RC4 и RC4_128 являются устаревшими. В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Дополнительные сведения об алгоритмах шифрования и о технологии шифрования см. в разделе Основные понятия безопасности руководства разработчика для платформы .NET Framework в сети MSDN.

Пояснение к алгоритмам DES:

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

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

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

Задача Тип
Шифрование с помощью симметричного ключа. CREATE SYMMETRIC KEY (Transact-SQL)
Шифрование с помощью асимметричного ключа. CREATE ASYMMETRIC KEY (Transact-SQL)
Кодирование с использованием сертификата. Инструкция CREATE CERTIFICATE (Transact-SQL)
Шифрование файлов базы данных с помощью прозрачного шифрования данных. Прозрачное шифрование данных (TDE)
Как зашифровать столбец таблицы. Шифрование столбца данных

См. также:

Шифрование SQL Server
Иерархия средств шифрования