Криптографические протоколы передачи данных
Используемые сейчас повсеместно интернетовские сетевые протоколы изначально не содержат никаких встроенных средств защиты передаваемой информации. Еще в 1989 г. Стивен Белловин, авторитетный исследователь из компании AT&T Research, в своей ставшей классической работе "Проблемы безопасности стека протоколов TCP/IP" указал основные уязвимости базовых механизмов межсетевого взаимодействия. Тем не менее основные концепции протоколов TCP/IP не полностью удовлетворяют (а по ряду требований и противоречат) современным представлениям о компьютерной безопасности, так как создавались более 30 лет назад. Рассмотрим, что же такое криптографический протокол.
Под защищенным сетевым протоколом понимается алгоритм, определяющий порядок взаимодействия участников транзакции и форматы сообщений, которыми участники транзакции обмениваются друг с другом в целях обеспечения процессов авторизации и защищенной доставки сообщений.
Криптографическим протоколом называют набор правил и процедур взаимодействия объектов, обеспечивающий необходимый уровень безопасности и аутентификации при передаче, хранении и обработке информации.
Одним из широко применяемых аутентификационных протоколов является протокол электронной цифровой подписи (ЭЦП), заключающийся в передаче вместе с блоком информации значения ее хэш-функции (необратимая функция), зашифрованного секретным ключом асимметричного алгоритма шифрования, принадлежащим отправителю. Проверка ЭЦП состоит в расшифровке хэш-значения открытым ключом отправителя и проверке соответствия результата исходному блоку информации.
Другим протоколом, обеспечивающим целостность, аутентичность и закрытость при передаче конфиденциальной информации, является "электронный конверт". Его принцип работы основан на использовании симметричной криптосистемы для шифрования исходного сообщения. Используется генератор случайных последовательностей для формирования случайного секретного ключа симметричного алгоритма. Защиту обеспечивает криптосистема с открытым ключом для шифрования сеансового ключа и протокола ЭЦП для аутентификации (удостоверении взаимодействующих сторон).
Существует также семейство протоколов, позволяющее решать проблемы безопасного распределения ключей, и протоколы "разделенного знания", "с нулевым разглашением" для распределения общего секрета между ненадежными партнерами.
В первую очередь при ведении бизнеса в Интернете корпорациями используется электронная коммерция. Есть два основных типа электронного бизнеса: B2C (Business to Consumer) Бизнес-Потребитель и B2B (Business to Business) Бизнес-Бизнесу (взаиморасчеты между предприятиями). Реализация электронной коммерции в открытой сети немыслима без применения криптографических протоколов.
Сегодня в мире реализовано множество протоколов, содержащих криптографические элементы. Одни создатели пошли по пути совершенствования уже существующих и широко распространенных протоколов: IPv6, Ipsec, S-HTTP, SimpleMD5 (построен на основе HTTP/1.0), HTTPD. Были также созданы принципиально новые протоколы: SET, SSL (предложенный фирмой Netscape), SKIP, PGP/PEM, Shen, SSH.
В настоящее время наиболее распространенным протоколом, используемым при построении систем электронной коммерции, является SSL. В то же время SSL не считается сложным алгоритмом, что, возможно, явилось причиной его популярности и распространенности.
Протокол SSL
SSL-протокол был представлен на рассмотрение в качестве стандарта для Интернета. Фирма Netscape активно проводила программу стандартизации SSL в рамках отдела IETF по стандартам, она работает с промышленными консалтинговскими группами для обеспечения существования открытых и интероперационных стандартов.
Протокол SSL включает два этапа взаимодействия сторон защищаемого соединения:
установление SSL-сессии;
защита потока данных.
На этапе установления SSL-сессии осуществляется аутентификация сервера и (опционально) клиента. Взаимодействующие стороны "договариваются" об используемых криптографических алгоритмах и формируют общий "секрет", на основе которого создаются общие сеансовые ключи для последующей защиты соединения. Этот этап называют также процедурой "рукопожатия" ("handshake").
На втором этапе (защита потока данных) информационные сообщения прикладного уровня разделяются на блоки, для каждого блока вычисляется код аутентификации сообщений. Затем данные шифруются и отправляются приемной стороне. Приемная сторона производит обратные действия: дешифрование, проверку кода аутентификации сообщения, сборку сообщений и передачу на прикладной уровень (в программу пользователя).
Конфиденциальность сообщений обеспечивается путем применения комбинированной схемы с использованием криптографии с открытыми и симметричными ключами. Весь поток сообщений между клиентом и сервером шифруется при помощи сессионного ключа, который был выработан на начальной стадии установления SSL-соединения. Шифрование потока данных позволяет скрыть содержание сообщений даже при перехвате.
Достоверность и целостность сообщений обеспечиваются электронной подписью. Электронная подпись - результат шифрования секретным ключом отправителя краткого содержания сообщения, вычисленного с помощью специальных математических функций. Расшифровать подпись может любой человек, знающий открытый ключ отправителя (а он не является секретом), но, если даже злоумышленник и внесет изменения в текст, он не сможет изменить и вновь зашифровать электронную подпись, так как секретный ключ известен лишь отправителю.
Взаимная аутентификация позволяет клиенту убедиться в подлинности соединения с требуемым сервером, а серверу - в достоверности клиента. Это достигается путем взаимообмена сертификатами.
Получив сертификат клиента, сервер заставляет его зашифровать своим секретным ключом случайное число, а затем расшифровывает сообщение клиента открытым ключом, указанным в сертификате. Эта процедура необходима, поскольку сам по себе сертификат не аутентифицирует клиента, он передается по сети в открытом виде.
Идентифицировать клиента можно только с помощью схемы, использующей сертификат и соответствующий секретный ключ клиента. Тот, кто обладает секретным ключом, и является действительным владельцем сертификата. По этой же схеме клиент может провести аутентификацию сервера.
Широкое распространение протокола SSL объясняется в первую очередь тем, что он входит в состав всех известных браузеров и веб-серверов.
Другими достоинствами SSL являются простота протокола для понимания всех участников транзакции и хорошие операционные показатели (скорость реализации транзакции). Последнее достоинство связано с тем, что протокол в процессе передачи данных использует симметричные алгоритмы шифрования, которые на 2-4 порядка быстрее асимметричных при том же уровне криптостойкости.
В то же время протокол SSL обладает рядом существенных недостатков. Так, из-за отсутствия аутентификации клиента в схемах SSL мошенник может успешно провести транзакцию, зная только реквизиты законного клиента.
Требуется создание иерархической инфраструктуры центров сертификации (по аналогии с тем, как это делается в протоколе SET). Без создания такой инфраструктуры все разговоры об обеспечении взаимной аутентификации участников транзакции не имеют смысла.
Проверка сертификата сервера торговой точки производится только по адресу сервера из-за того, что так устроены все известные браузеры на рабочих местах клиентов. Протокол SSL позволяет передавать приложениям, работающим через браузер, информацию, которая может анализироваться этими приложениями (например, имя владельца сертификата, время и дату начала установления сессии и т.п.). На основе анализа полученных данных приложение может вмешиваться в процесс работы протокола (например, признать аутентификацию одного из участников SSL-сессии неуспешной и прервать сессию). Чтобы такой дополнительный анализ был возможен, требуется специальное приложение, использующее функциональность браузера.
Протокол SSL не поддерживает цифровой подписи, что затрудняет процесс разрешения конфликтных ситуаций, возникающих при взаимодействии через Интернет. Для доказательства проведения транзакции требуется хранить в электронном виде весь диалог клиента и сервера (включая процесс установления сессии), что дорого с точки зрения затрат ресурсов памяти и на практике не используется.
При использовании SSL не обеспечивается конфиденциальность данных о реквизитах клиента для сервера.
Одной из причин, препятствовавших созданию российскими разработчиками систем защищенного электронного документооборота (в частности, систем электронной торговли либо систем банк - клиент) на основе веб-приложений, являлось наличие экспортных ограничений на средства криптографии. Практически все продукты, поддерживающие протокол SSL, были реализованы в США и из-за экспортных ограничений были доступны лишь в усеченном варианте. Они позволили работать с криптографическими ключами только ограниченной длины.
Сейчас американское правительство смягчило свои ограничения на экспорт средств шифрования. Но события 11 сентября 2002 г. побуждают американских сенаторов пересмотреть свое решение.
В настоящее время обнаружены некоторые уязвимости протокола SSL, однако требующие серьезных технических и экономических ресурсов для их использования, что делает неэффективными попытки взлома транзакций, оперирующих с небольшими суммами. Благодаря своей простоте и тому, что все распространенные браузеры и веб-серверы включили поддержку этого протокола, SSL является в данный момент наиболее популярным в сфере B2C (розница) электронной коммерции. Его популярности также способствовала развитая схема сертификационных центров, охватывающая весь мир и предоставляющая простой способ проверки взаимодействующих сторон посредством встроенных в каждый браузер механизмов.
Для проведения операций с крупными суммами, например для межбанковских расчетов, используется более сложный и надежный протокол SET. Например, платежная система VISA требует, чтобы ее партнеры для проведения транзакций применяли исключительно этот протокол.
Описание протокола SET
Устойчивый криптографический протокол должен обеспечивать на уровне криптостойкости алгоритмов цифровой подписи и шифрования:
аутентификацию участниками транзакции друг друга;
аутентификацию клиента другими участниками транзакции;
аутентификацию сервера клиентами;
конфиденциальность сообщений, которыми обмениваются участники транзакции через Интернет;
конфиденциальность информации о реквизитах клиента для остальных участников транзакции (не центрального сервера);
целостность данных, которыми обмениваются участники транзакции;
невозможность отказа от транзакции (non-repudiation) - наличие для каждого участника транзакции электронного, практически неопровержимого доказательства факта совершения транзакции.
Как следует из требований, протокол SSL не является устойчивым.
В протоколе SET центр сертификации имеет 4-уровневую архитектуру, основанную на использовании протокола X.509. Основные функции системы центра сертификации - генерация и распределение сертификатов открытых ключей, обновление сертификатов, а также генерация и распределение списков отозванных ключей (Certificate Revocation Lists, CRL).
На верхнем уровне располагается Корневой центр сертификации (Root Certificate Authority, RCA), который отвечает за генерацию сертификатов для центров сертификации следующего нижележащего уровня, генерацию сертификатов для собственных открытых ключей, а также генерацию и распределение CRL для возможно скомпрометированных ключей центра сертификации уровня BCA. Оператором RCA является компания SETCo, специально созданная для развития и распространения стандарта SET.
На втором уровне иерархии находятся центры сертификации международных платежных систем (Brand Certificate Authority, BCA). В настоящее время такие центры созданы в платежных системах VISA, Europay/MasterCard, American Express. Центр сертификации уровня BCA отвечает за генерацию сертификатов для центров сертификации следующих уровней - GCA, CCA, MCA, PCA, а также за генерацию, поддержку и распространение CRL для сертификатов, ранее подписанных данным BCA. Оператором BCA является соответствующая платежная система.
На третьем уровне системы центра сертификатов SET располагается Геополитический центр сертификации (Geo-Political Certificate Authority, GCA). Наличие центра сертификации уровня GCA позволяет платежной системе проводить более гибкую политику генерации и распределения сертификатов ключей для центров сертификации уровня ССА, МСА, РСА в отдельных геополитических зонах земного шара, а также повышать эффективность процедур генерации, поддержания и распространения CRL по сертификатам, эмитированным GCA. Оператор центра сертификации уровня GCA определяется правилами соответствующей платежной системы. Например, по правилам систем VISA и MasterCard оператором GCA может быть либо сама платежная система, либо Group Member - банк, имеющий статус группового участника платежной системы.
На четвертом, нижнем уровне системы центра сертификации SET располагаются три так называемых оконечных (End-Entity) типа центра сертификации: центр сертификации для владельцев платежных карт (Cardholder Certificate Authority, ССА), центр сертификации для торговых точек (Merchant Certificate Authority, МСА) и центры сертификации для платежных шлюзов (Payment Gateway Certificate Authority, РСА). Центры сертификации уровня End-Entity отвечают за генерацию сертификатов для основных участников транзакции - для владельца карты, торговой точки и платежного шлюза. В этом смысле все остальные центры сертификации играют вспомогательную роль, обеспечивая единую общую инфраструктуру центров доверия, позволяющую любым двум непосредственным участникам транзакции надежно аутентифицировать друг друга.
В протоколе SET используются четыре типа пар асимметричных ключей, отличающихся друг от друга по своему назначению:
ключ для подписи (Digital Signature Key, используется для идентификации владельца ключа);
ключ для шифрования данных (Key Encipherment/Data Encipherment Key, или иначе KeyExchange Key, применяется для шифрования данных в процессе проведения транзакции);
ключ для подписания сертификатов (Certificate Signature Key);
ключ для подписания списков отозванных сертификатов CRL (CRL Signature Key).
Разнообразие типов ключей не только способствует повышению безопасности системы в целом, но и придает больше гибкости при проектировании платежной системы. Это достигается за счет того, что для реализации различных функций появляется возможность использовать ключи различной длины, что позволяет повысить производительность и эффективность системы в целом.
Размер асимметричных ключей, используемых в протоколе SET, не фиксирован и может со временем меняться.
Формат сертификата открытого ключа в протоколе SET удовлетворяет стандарту Х.509 v.3. Подлинность SET-сертификатов удостоверяется с помощью иерархической цепи проверок. Любой центр сертификации, выдавший сертификат следующему за ним в иерархии звену, в свою очередь должен иметь действительный сертификат от вышестоящей организации. Удостоверение происходит путем сравнения на предмет равенства содержимого некоторых полей сертификата нижнего уровня и сертификата более высокого уровня.
Хотя протокол SET является более устойчивым, его использование в корпоративной сети обходится на порядок дороже, чем использование протокола SSL. Несмотря на отказ крупнейших платежных систем VISA, MasterCard, Europay, AmEx, Diners Club, работать с партнерами, не поддерживающими протокол SET, данный протокол не получил широкого развития. Кроме того, он ориентирован на транзакции электронной платежной системы и не может использоваться в качестве универсального криптографического сетевого протокола.
Все описанные протоколы работают поверх стандартных интернетовских протоколов (TCP/IP). Именно в этих протоколах более низкого уровня и кроются многие сетевые уязвимости. Чтобы повысить уровень безопасности и надежности данных низкоуровневых сетевых протоколов, была разработана новая версия основного интернетовского протокола IP (Internet Protocol).
Защищенное поколение протокола IP - IPv6
IPv6 включает следующие возможности, отсутствующие у IPv4:
расширенное адресное пространство - IPv6 использует 128-битовые адреса вместо 32-битовых IPv4. В результате адресное пространство увеличивается в 296 раз, что сейчас кажется достаточным даже в случае неэффективного распределения сетевых адресов;
улучшенные возможности маршрутизации - в связи с увеличением межсетевого трафика, связанного с обработкой больших объемов мультимедийной информации и расширением использования сети Интернет в различных сферах деятельности, весьма существенной является необходимость обеспечения высоких скоростей маршрутизации. Без применения эффективных алгоритмов обработки пакетов данных становится невозможным повысить скорость работы маршрутизаторов до уровня, сравнимого со скоростью передачи информации по каналам связи;
управление доставкой информации - IPv6 позволяет отмечать соответствие конкретного пакета определенным условиям его передачи, заданным отправителем. В результате достигается регулирование скорости передачи определенных потоков данных, что обеспечивает эффективную поддержку специальных протоколов (например, видео в режиме реального времени и др.);
средства обеспечения безопасности - IPv6 гарантирует защиту от атак, связанных с подменой исходных адресов пакетов, и от несанкционированного доступа к полям данных пакетов. Данные возможности достигаются за счет применения алгоритмов аутентификации и шифрования.
Заключение
Сетевые протоколы, используемые в сети Интернет, уже применяют на практике современные наработки теории криптографических преобразований, что позволяет успешно решать множество задач, связанных с электронной коммерцией, электронными платежами и обменом секретными сообщениями с использованием сети Интернет, охватывающей весь земной шар. Это в свою очередь способствует быстрому развитию данных направлений бизнеса, государственной и человеческой деятельности.
А. Теренин,
к.т.н, руководитель группы
тестирования ПО, GE Money Bank
"Финансовая газета. Региональный выпуск", N 25, июнь 2007 г.
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Газета "Финансовая газета. Региональный выпуск"
Учредитель: Редакция Международного финансового еженедельника "Финансовая газета"
Газета зарегистрирована в Роскомпечати 3 октября 1994 г.
Регистрационное свидетельство N 012947
Адрес редакции: г. Москва, ул. Ткацкая, д. 5, стр. 3
Телефон +7 (499) 166 03 71