Открыть сервис

Набор шифров

Набор шифров — это совокупность алгоритмов симметричного шифрования, используемых для защиты данных, передаваемых по незащищённым каналам связи или хранящихся на носителях информации. В контексте криптографии и информационной безопасности набор шифров представляет собой стандартизированный перечень криптографических примитивов, таких как блочные и поточные шифры, а также режимы их работы, предназначенные для обеспечения конфиденциальности, целостности и аутентичности данных. Наборы шифров являются ключевым компонентом протоколов защищённого соединения, в частности TLS (Transport Layer Security) и его предшественника SSL (Secure Sockets Layer), а также используются в VPN-протоколах, беспроводных сетях (Wi-Fi) и системах шифрования дисков.

История

Понятие набора шифров возникло с развитием протоколов защищённой передачи данных в Интернете. В 1994 году компания Netscape Communications разработала протокол SSL 2.0, который впервые ввёл механизм согласования криптографических параметров между клиентом и сервером. В рамках этого протокола набор шифров определял, какие алгоритмы шифрования, хеширования и аутентификации будут использоваться для установления защищённого соединения. Первоначально наборы шифров были жёстко закодированы в реализации протокола и включали относительно слабые алгоритмы, такие как RC4 (алгоритм потокового шифрования) и MD5 (хеш-функция с 128-битным дайджестом).

С развитием криптоанализа и ростом вычислительных мощностей наборы шифров претерпели значительные изменения. В 1999 году был опубликован стандарт TLS 1.0 (RFC 2246), который заменил SSL 3.0 и ввёл более гибкую систему идентификации наборов шифров. Каждому набору присваивался уникальный двухбайтовый код, что позволяло протоколу поддерживать десятки различных комбинаций алгоритмов. В последующих версиях TLS (1.1, 1.2, 1.3) наборы шифров постоянно обновлялись: устаревшие и небезопасные алгоритмы (например, RC4, DES, экспортные варианты шифров) исключались, а новые, более стойкие (AES, ChaCha20, SHA-256) добавлялись.

Значительным этапом стало принятие в 2018 году стандарта TLS 1.3 (RFC 8446), который радикально сократил количество поддерживаемых наборов шифров. Вместо десятков вариантов осталось лишь пять, использующих современные алгоритмы: AES-128-GCM, AES-256-GCM и ChaCha20-Poly1305, а также хеш-функции SHA-256 и SHA-384. Это упростило реализацию протокола и повысило его безопасность за счёт исключения уязвимых конфигураций.

Структура и компоненты

Набор шифров состоит из нескольких обязательных компонентов, каждый из которых выполняет определённую функцию в процессе защищённой передачи данных:

Алгоритм обмена ключами

Определяет способ, которым клиент и сервер договариваются о сеансовом ключе. Наиболее распространённые алгоритмы: RSA (основан на задаче факторизации больших чисел), Diffie-Hellman (DH) и его вариант на эллиптических кривых ECDH. В современных наборах шифров предпочтение отдаётся протоколам с совершенной прямой секретностью (PFS), таким как ECDHE (Elliptic Curve Diffie-Hellman Ephemeral), которые гарантируют, что компрометация долговременного ключа не позволит расшифровать прошлые сеансы.

Алгоритм аутентификации

Обеспечивает проверку подлинности сторон соединения. Обычно реализуется с помощью цифровых сертификатов X.509 и алгоритмов электронной подписи: RSA, DSA, ECDSA. В некоторых наборах шифров аутентификация может отсутствовать (анонимные наборы), но такие конфигурации уязвимы для атак «человек посередине» и практически не используются в современных системах.

Алгоритм шифрования

Отвечает за конфиденциальность данных. Используются блочные шифры (AES, Camellia, ARIA) или поточные (ChaCha20). Блочные шифры применяются в различных режимах работы: ECB (не рекомендуется), CBC, GCM, CCM. Режимы GCM и CCM обеспечивают одновременно шифрование и аутентификацию (AEAD — Authenticated Encryption with Associated Data), что повышает безопасность.

Алгоритм контроля целостности

Гарантирует, что данные не были изменены в процессе передачи. Для этого используются хеш-функции (SHA-1, SHA-256, SHA-384) или коды аутентификации сообщений (HMAC). В современных наборах шифров с AEAD-режимами (GCM, ChaCha20-Poly1305) отдельный алгоритм контроля целостности не требуется, так как аутентификация встроена в шифрование.

Идентификация и согласование

Наборы шифров идентифицируются уникальными кодами, определёнными в реестре Internet Assigned Numbers Authority (IANA). Код представляет собой двухбайтовое шестнадцатеричное число (например, 0xC02F для набора TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256). В процессе установления соединения TLS клиент отправляет серверу список поддерживаемых наборов шифров в порядке предпочтения. Сервер выбирает первый из списка, который соответствует его собственным возможностям и политике безопасности.

Согласование набора шифров — критически важный этап, так как от него зависит стойкость всего соединения. Если обе стороны поддерживают только слабые алгоритмы (например, экспортные шифры с 40-битным ключом), соединение может быть легко скомпрометировано. Современные реализации TLS по умолчанию отвергают устаревшие наборы шифров.

Классификация

Наборы шифров классифицируются по нескольким признакам:

По версии протокола

По типу используемых алгоритмов

По режиму шифрования

Примеры наборов шифров

Ниже приведены примеры наборов шифров с указанием их кодов и характеристик:

Код (hex)Набор шифровАлгоритм обмена ключамиАутентификацияШифрованиеХеш/АутентификацияСтатус
0xC02FTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256ECDHERSAAES-128-GCMSHA-256 (встроена в GCM)Активный, рекомендуется
0xC030TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384ECDHERSAAES-256-GCMSHA-384 (встроена в GCM)Активный, рекомендуется
0x1301TLS_AES_128_GCM_SHA256ECDHE (TLS 1.3)ECDSA или RSAAES-128-GCMSHA-256TLS 1.3, обязательный
0x1302TLS_AES_256_GCM_SHA384ECDHE (TLS 1.3)ECDSA или RSAAES-256-GCMSHA-384TLS 1.3, обязательный
0x1303TLS_CHACHA20_POLY1305_SHA256ECDHE (TLS 1.3)ECDSA или RSAChaCha20-Poly1305SHA-256TLS 1.3, обязательный
0x009FTLS_DHE_RSA_WITH_AES_128_GCM_SHA256DHERSAAES-128-GCMSHA-256Активный, альтернативный
0x003CTLS_RSA_WITH_AES_128_CBC_SHARSARSAAES-128-CBCSHA-1 (HMAC)Устаревший, не рекомендуется

Применение

Наборы шифров используются в широком спектре протоколов и систем:

Веб-безопасность (HTTPS)

Протокол TLS, лежащий в основе HTTPS, использует наборы шифров для защиты соединений между браузерами и веб-серверами. Современные браузеры (Google Chrome, Mozilla Firefox, Microsoft Edge) поддерживают только наборы шифров TLS 1.2 и TLS 1.3, отвергая устаревшие варианты.

VPN и корпоративные сети

Протоколы VPN, такие как OpenVPN, IPsec и WireGuard, также используют наборы шифров. Например, OpenVPN поддерживает комбинации AES-256-GCM с ECDHE, а WireGuard использует фиксированный набор шифров на основе ChaCha20-Poly1305.

Беспроводные сети (Wi-Fi)

Стандарты WPA2 и WPA3 определяют наборы шифров для защиты трафика в беспроводных сетях. WPA2 использует AES-CCMP, а WPA3 — AES-GCM с обязательной аутентификацией.

Системы шифрования дисков

Программы шифрования дисков (BitLocker, LUKS) могут использовать наборы шифров, аналогичные TLS, для защиты данных на жёстких дисках. Например, BitLocker поддерживает AES-128 и AES-256 в режимах XTS и CBC.

Критика и уязвимости

Наборы шифров неоднократно становились объектом критики из-за уязвимостей, выявленных в различных алгоритмах:

В ответ на эти уязвимости были разработаны новые версии TLS и рекомендации по исключению слабых наборов шифров. Организации, такие как Internet Engineering Task Force (IETF) и Национальный институт стандартов и технологий США (NIST), публикуют рекомендации по безопасным наборам шифров.

Перспективы развития

С развитием квантовых вычислений возникает угроза для многих современных алгоритмов асимметричной криптографии (RSA, ECDH, ECDSA). В связи с этим разрабатываются постквантовые криптографические алгоритмы, которые будут включены в будущие версии наборов шифров. IETF уже ведёт работу над стандартами TLS с постквантовой поддержкой, включая алгоритмы на основе решёток (CRYSTALS-Kyber, CRYSTALS-Dilithium) и хеш-функций (SPHINCS+). Ожидается, что первые версии таких наборов шифров появятся в середине 2020-х годов.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →