Поделиться через


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

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

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

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

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

  • Длинные ключи обычно обеспечивают более строгое шифрование, чем короткие ключи.

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

  • Блочные шифры с длинными ключами сильнее, чем шифры потоков.

  • Длинные сложные пароли сильнее коротких паролей.

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

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

Это важно

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

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

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

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

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

  • Симметричные ключи, созданные с помощью алгоритма "TRIPLE_DES_3KEY", используют TRIPLE DES с 192-разрядным ключом.

  • Симметричные ключи, созданные с помощью АЛГОРИТМА = TRIPLE_DES, используют TRIPLE DES с 128-разрядным ключом.

Шифрование с помощью симметричного ключа. СОЗДАТЬ СИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
Шифрование с помощью асимметричного ключа. CREATE ASYMMETRIC KEY (Transact-SQL)
Шифрование с помощью сертификата. CREATE CERTIFICATE (Transact-SQL)
Шифрование файлов базы данных с помощью прозрачного шифрования данных. Прозрачное шифрование данных (TDE)
Как зашифровать один столбец таблицы. Шифрование столбца данных

См. также

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