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

DES и Triple DES

Алгоритм DES (Data Encryption Standard, стандарт шифрования данных) был утвержден еще более 20 лет назад и до сих пор является наиболее часто используемым из алгоритмов симметричного блочного шифрования (см. врезку «Что общего у классических алгоритмов симметричного шифрования»). DES реализуется везде: в различных программах шифрования, в средствах сетевой защиты, в смарт-картах и т. д.

Однако за 20 лет компьютеры сделали немыслимый скачок в скорости вычислений, и сейчас не так уж трудно сломать этот алгоритм путем полного перебора всех возможных вариантов ключей (а DES использует всего 8-байтный), что недавно казалось совершенно невозможным.

Появившийся позднее Triple DES («тройной DES» — так как трижды шифрует информацию «обычным» DES?ом) свободен от основного недостатка прежнего варианта — короткого ключа; он здесь в два раза длиннее. Но зато, как оказалось, Triple DES унаследовал другие слабые стороны своего предшественника: отсутствие возможностей для параллельных вычислений при шифровании и низкую скорость.

AES и Rijndael

Понимая, что эпоха DES закончилась, Институт стандартов и технологий США (NIST, National Institute of Standards and Technology) в январе 1997 г. объявил конкурс алгоритмов на новый стандарт шифрования. В нем могли принять участие как криптографы, представляющие организации, так и частные лица. Предполагалось, что новый алгоритм получит название AES (Advanced Encryption Standard, новый стандарт шифрования) и будет рекомендован к повсеместному применению в США, что автоматически приведет к его признанию во всем мире.

Несколько позже (в сентябре того же года) NIST объявил требуемые параметры алгоритмов симметричного шифрования, претендующих на звание AES: размер блока — 16 байт, длина используемых ключей — 16, 24 и 32 байт.

В конкурсе участвовало 15 алгоритмов, характеристики которых были опубликованы для всеобщего ознакомления. В течение этого периода NIST принимал отзывы о них от криптографов всего мира. После детального анализа в апреле 1999 г. NIST выбрал пять лучших претендентов, которые подверглись более глубокому изучению. В октябре 2000 г. победителем конкурса был объявлен алгоритм Rijndael, разработанный двумя криптографами из Бельгии V. Rijmen и J. Daemen и названный по начальным буквам их фамилий.

И хотя Rijndael, использующий нетрадиционную схему, не похож на классические блочные симметричные алгоритмы, существовавшие ранее, он обладает массой достоинств. К их числу относятся:

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

RSA

Известный алгоритм электронной цифровой подписи (ЭЦП) и асимметричного шифрования, для которого RSA является фактическим стандартом (аналогично DES — для симметричного).

MD, SHA

MD (Message Digest, дайджест-сообщения) — ряд наиболее распространенных алгоритмов хэширования. Например, алгоритм MD5 используется в последних версиях Microsoft Windows для преобразования пароля пользователя в 16-байтную строку.

SHA (Secure Hash Algorithm, алгоритм защищенного хэширования) — аналог МD, вычисляет 20-байтный хэш входных данных. Также очень широко используется в сетевых протоколах защиты информации (о них - далее).

Отечественные криптостандарты

Есть у нас и свои криптографические алгоритмы, как минимум не уступающие западным разработкам, например секретный в прошлом ГОСТ 28147—89, разработанный еще спецслужбами Советского Союза. Несмотря на то что этот алгоритм всего на 10 лет моложе DES, при разработке в него был заложен такой огромный запас прочности, что данный ГОСТ является актуальным до сих пор. И неудивительно: его ключ шифрования длиной в 32 байта вчетверо больше ключа DES! Необходимое же на перебор ключей время при этом возрастает вовсе не в четыре раза, а в 25632-8 = 25624, что выливается уже в астрономические цифры.

Есть и другие криптостандарты: ГОСТ Р 34.11—94 — на функцию хэширования и работающие с ним в паре ЭЦП ГОСТ Р 34.10—94 и ГОСТ Р 34.10—2001. Последний, кстати, является совсем новым и вступит в действие только с 1 июля текущего года. Он использует криптографические возможности эллиптических кривых, о которых будет сказано ниже.

VPN, IPSec, ESP, AH, IKE

IPSec (Security Architecture for IP, протокол безопасности для IP) — основной протокол для построения виртуальных частных сетей (VPN, Virtual Private Network), которые были подробно рассмотрены ранее (см. «Мир ПК», № 4/02, с. 92). IPSec обеспечивает безопасную передачу данных в IP-сетях путем создания защищенных туннелей. С его помощью решаются следующие задачи:

  • аутентификация пользователей (или компьютеров) при создании туннеля;
  • шифрование и контроль целостности передаваемых данных;
  • автоматическое распределение ключей в рамках туннелей.

В IPSec предусмотрено ведение базы данных политики безопасности, которая, по сути, есть набор критериев для создания туннелей и фильтрации IP-пакетов. В этом протоколе предусмотрено все необходимое, и для разработки, например, программного VPN-агента достаточно лишь грамотно реализовать IPSec и предусмотреть интерфейс для его администрирования.

Основа IPSec — протоколы AH, ESP и IKE. Первый их них (Authentication Header, заголовок аутентификации) предназначен для аутентификации и контроля целостности; ESP (Encapsulation Security Payload, инкапсулирующее защищенное вложение) — для шифрования данных и защиты целостности; IKE (Internet Key Exchange, обмен ключами в Интернете) — для обмена ключами, используется он на этапе создания туннеля.

Кстати, поскольку IPSec реализуется на уровне протокола IP, созданными с его помощью туннелями могут пользоваться и протоколы более высоких уровней, например TCP или UDP. А основной недостаток IPSec — способность работать только в IP-сетях — нейтрализуется путем его применения в комбинации с протоколами L2F (Layer 2 Forwarding, переадресация на уровне 2) и L2TP (Layer 2 Tunneling Protocol, протокол туннелирования на уровне 2), которые осуществляют инкапсуляцию пакетов другой архитектуры в IP-пакеты.

SSL и TLS

Протоколы SSL (Secure Socket Layer, протокол защищенных соединений) и TLS (Transport Layer Security, защита на транспортном уровне) предназначены для создания защищенного канала связи. TLS — более современный вариант, его версия 1.0 базируется на версии 3.0 протокола SSL. Однако, несмотря на общие цели и отсутствие принципиальных различий, между SSL и TLS нет совместимости.

TLS состоит из двух протоколов:

  • TLS Handshake Protocol (протокол установления соединения) - выполняет двустороннюю аутентификацию и обмен ключевой информацией; предназначен для создания защищенной сессии.
  • TLS Record Protocol (протокол записи) - обеспечивает шифрование и контроль целостности передаваемых данных.

SSL и TLS встроены в популярные Интернет-браузеры и наиболее часто используются для защиты обмена по протоколу HTTP.

SET

Стандарт SET (Secure Electronic Transaction, защищенная электронная транзакция) — это набор протоколов, предназначенных, как видно из его названия, для защиты электронных платежей. SET позволяет:

  • Обеспечить конфиденциальность при совершении платежа. Такая информация, как персональные данные покупателя, номер его кредитной карточки, баланс счета и т. д., должна быть надежно защищена.
  • Гарантировать целостность всей передаваемой между участниками платежа информации, которая контролируется с помощью ЭЦП.
  • Провести двустороннюю аутентификацию участников платежа, что не позволит, например, злоумышленнику действовать под видом ложного Интернет-магазина.

Для всех этих целей SET использует электронные сертификаты (см. PKI), которые должны быть предварительно получены участниками платежа в одном из соответствующих центров.

Kerberos, KD

Протокол Kerberos обеспечивает аутентификацию и обмен ключевой информацией в системах клиент—сервер. Он учитывает вероятность полного контроля злоумышленника над системой, который может, например:

  • маскироваться под легального пользователя;
  • иметь доступ к участвующим в соединении компьютерам (кроме сервера, на котором установлены службы Kerberos, - он должен быть надежно защищен);
  • перехватывать любые пакеты, изменять их и передавать повторно.

Из-за таких предположений аутентификация с помощью Kerberos — задача весьма сложная, но это не доставляет каких-либо неудобств пользователю, поскольку весь процесс выполняется автоматически. Однако именно возможность безошибочной аутентификации при активных действиях хакера является главным достоинством Kerberos.

Основной же недостаток — невозможность аутентификации при атаках на отказ в обслуживании (DoS-атаки, подробнее см. ниже).

Ведущая служба Kerberos — Центр распределения ключей (KDC, Key Distribution Center). Обмен данными в процессе аутентификации сторон производится именно между KDC и клиентом.

Кстати, Kerberos используется в Microsoft Windows, начиная с версии 2000.

S/MIME

S/MIME (Secure/Multipurpose Internet Mail Extensions, защищенные/многоцелевые расширения почты Интернета) служит дополнением к известному стандарту почтовых сообщений MIME и позволяет отправлять зашифрованные и/или подписанные сообщения.

Шифрование писем S/MIME производит симметричными алгоритмами, а добавляемого затем ключа — уже асимметричными.

Стандарт S/MIME используется во многих популярных почтовых программах, например в Netscape Messenger и Microsoft Exchange.

PKI и X.509

PKI (Public Key Infrastructure, инфраструктура открытых ключей) представляет собой набор средств и правил управления ключами, используемыми в алгоритмах ЭЦП и асимметричного шифрования. Цель PKI — стандартизация форматов, способов получения, распространения и хранения ключей, что необходимо для совместимости различных систем защиты информации.

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

ECC

ECC (Elliptic Curve Cryptography, криптография на эллиптических кривых) — это новое направление в алгоритмах асимметричного шифрования и ЭЦП, успешно и динамично развивающееся. ECC появилась вовсе не из-за претензий к стойкости алгоритма RSA, который достаточно давно применяется для решения подобных задач. RSA выдержит любые атаки при увеличении размера ключа. Но чем больше ключ, тем дольше он шифрует, причем эта зависимость вовсе не линейная. Для обычных компьютеров это не страшно, а для смарт-карт, сотовых телефонов и т. д., а также серверных компонентов многопользовательских систем (скажем, шифрующих одновременно разные сообщения) такое замедление весьма ощутимо. Отсюда и появилась необходимость в принципиально новом алгоритме, способном добиться серьезной криптостойкости при небольшой ресурсоемкости. ECC удовлетворяет этим требованиям, позволяя, в частности, в несколько раз уменьшить размеры используемых ключей.

Не сильно вдаваясь в математические подробности, скажу лишь, что в ECC все вычисления производятся над точками эллиптической кривой, т. е., например, вместо обычного сложения двух чисел выполняется по определенным правилам сложение двух точек, при этом в качестве результата обязательно получается третья

ОБ АВТОРЕ

Сергей Петрович Панасенко — начальник отдела разработки программного обеспечения фирмы «АНКАД», тел.: (095) 531-00-00, e-mail: develop@ancud.ru.

Окончание в следующем номере.


Что общего у классических алгоритмов симметричного шифрования

Шифрование происходит так:

  1. Информация разбивается на блоки одинаковой длины, может производиться ее перестановка по какому-либо принципу.
  2. Выполняется основное криптографическое преобразование с помощью ключа шифрования.
  3. Промежуточный результат модифицируется обычно с помощью таблицы (например, по каждым двум байтам промежуточного результата из таблицы выбирается соответствующее им новое значение, - это называется "табличной подстановкой").
  4. Снова выполняется криптопреобразование и т. д., в цикле это происходит несколько раз (сколько именно - зависит от конкретного алгоритма).
  5. За последним циклом следует финальная перестановка, ее результат и считается зашифрованной информацией.

Кроме размеров ключей алгоритмы различаются тем, какое именно используется криптопреобразование. Оно обычно состоит из множества действий («криптографических примитивов»), использующих входные данные и значение ключа. Это могут быть табличные подстановки, сдвиги на фиксированное и переменное число бит, выполнение операции XOR («исключающее или») и т. д.

Стойкость алгоритма зависит от длины ключа (чем длиннее, тем лучше) и от качества используемого криптопреобразования (отсутствие слабых мест не оставит шансов злоумышленнику). Большинство алгоритмов симметричного шифрования похожи в своей основе друг на друга. Их даже можно представить в виде одной общей схемы:

назад


Что почитать на тему

Ясно, что приведенные здесь термины — капля в море используемых специалистами по компьютерной безопасности.

Тем, кому это «море по колено», рекомендую книги, посвященные данной теме:

  1. Брассар Ж. Современная криптология.
  2. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в современных компьютерных системах.
  3. Петров А.А. Компьютерная безопасность: криптографические методы защиты.
  4. Мамаев М., Петренко С. Технологии защиты информации в Интернете.
  5. Медведовский И.Д., Семьянов П.В., Леонов Д.Г. Атака на Internet.
  6. Лукацкий А.В. Обнаружение атак.