Архивы: по дате | по разделам | по авторам

PGP/MIME vs. S/MIME. Философия борьбы

Архив
автор : Сергей Баричев   08.12.1997

Библейская притча в наши дни

В теме прошлого номера (#225) рассматривается удивительный феномен программы PGP, программы, созданной одним человеком, но вызвавшей живой интерес миллионов людей. Таких программ немного. Фил Зиммерманн, автор PGP, снискал славу Прометея наших дней, укравшего у богов огонь и одарившего им людей. "Гнев богов" не заставил себя долго ждать. Нет, к скале Фила, конечно, не приковали, но нервы помотали изрядно.

Тем не менее дело сделано, программой PGP пользуется множество людей, желающих скрыть свою электронную корреспонденцию от чужого взгляда. Активно действует на рынке молодая и задиристая компания PGP Inc., а Рабочая группа по стандартам Интернета (IETF) рассматривает PGP как возможный официальный стандарт глобальной сети, который будет рекомендован всем производителям программного обеспечения.

Но не все так гладко. У PGP есть серьезный соперник, имя которому RSA. Компания RSA Data Security, гигант криптографической индустрии, с не меньшей активностью продвигает в качестве Интернет-стандарта свои криптографические алгоритмы под названием S/MIME (Secure MIME). Делает это она давно и с упорством, достойным уважения. Так, в начале ноября была предложена уже третья версия S/MIME, в то время как PGP год назад представила первую, и последнюю, версию PGP/MIME.

Вот об этой борьбе двух стандартов мне бы и хотелось поговорить в статье. Борьба эта ведется тихо и напряженно и больше напоминает исторический поединок Остапа Бендера и отца Федора, перетягивавших карандаш через замочную скважину. Победит ли молодость?

Вообще в этом противостоянии больше философии, нежели технологии. Ведь каждый из стандартов по-своему хорош. Поэтому другой, более глубокой аналогией борьбы PGP и RSA является схватка Давида и Голиафа. Авторы библейского рассказа очень тонко схватили философию сражения молодого, компактного, подвижного со старым, огромным, но неповоротливым. Так невидимый глазу вирус укладывает в постель здорового человека, молодой Александр Македонский завоевывает весь цивилизованный мир, а небольшая компания Netscape отваживается бросить вызов такому монстру, как Microsoft. Кстати, и Microsoft когда-то играла роль Давида.

Кто в поединке RSA - PGP Давид, а кто Голиаф, читатель, наверное, догадался, а если нет, то пусть обратиться к врезкам, где дана информация об этих компаниях 1. Ну а кто из них победит, еще неизвестно. Может быть, соперники согласятся на ничью. Мы же просто заглянем за кулисы этой борьбы.

История вопроса

Что хотят предложить PGP и RSA простым пользователям? Простое и удобное средство конфиденциальной переписки по e-mail. Конечным пользователям желательно, чтобы оно было максимально интегрировано с почтовыми программами (Eudora, Internet Mail и т. д.). Но для этого надо принять единый стандарт, чтобы пользователи, работая с разными почтовыми клиентами, могли бы свободно обмениваться конфиденциальными сообщениями. В качестве такого стандарта RSA Data Security предлагает S/MIME, а PGP Inc. - PGP/MIME.

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

Прежде определим, какие же задачи следует решить, чтобы обеспечить конфиденциальность почтового обмена. Отправитель А, подготовив сообщение для получателя Б может пожелать:

а) зашифровать сообщение. То есть преобразовать исходное сообщение таким образом, чтобы его смог прочитать только получатель Б. Для этого сейчас используются алгоритмы с открытым ключом;

б) подписать сообщение. То есть добавить к нему кодовую последовательность, которая однозначно удостоверяет, что сообщение написал именно отправитель и именно в том виде, в каком оно попало к получателю;

в) зашифровать и подписать сообщение;

г) управлять ключами (импортировать/экспортировать открытые ключи, сертифицировать и проверять сертификацию открытых ключей других пользователей).

Как эти задачи решить теоретически, прекрасно описано в статье Ф. Зиммерманна. Практически же сообщения, передаваемые по e-mail, до недавнего времени защитить было трудно. На то были разные причины. Конечно, многие использовали криптографические алгоритмы и раньше (алгоритмы Диффи - Хеллмана, RSA, DES были разработаны более двадцати лет назад!), но единого стандарта как такового не было. Справедливости ради следует упомянуть стандарт PEM (Privacy Enhanced Mail), принятый IETF. Он использовал RSA, DES и MD-5, однако трудно поддавался интеграции в почтовые программы.

Основная же проблема состояла в том, что использовался примитивный (отнюдь не в пренебрежительном смысле) почтовый стандарт RFC-822. С его помощью можно было передавать только 7-битные текстовые сообщения (так называемый plain text). Для передачи 8-битного текста (с национальными символами) и двоичных файлов приходилось их перекодировать. На этом этапе пользователь, если хотел зашифровать сообщение, должен был подготовить его в виде отдельного файла, обработать внешней криптографической программой и лишь затем передать в программу почтовую. Если для отправителя это было еще относительно просто, то от получателя требовало определенных усилий, и правильная расшифровка из-за малейшей несовместимости могла стать невозможной.

Ситуация изменилась, когда был принят новый стандарт почтовых сообщений под названием MIME (Multi-purpose Internet Mail Extensions). Его изюминка заключалась в том, что единое сообщение могло быть составлено из отдельных независимых блоков данных: текста (в том числе 8-битного), присоединенных файлов (attachments) и служебной информации. Теперь стало возможным разделить в электронном письме исходное сообщение, зашифрованное сообщение и электронную подпись. Почтовая программа, пользуясь заголовками блока, легко может отделить одно от другого. Вот тогда и возникла очевидная идея, расширив стандарт MIME, утвердить единый формат для блоков, обеспечивающих конфиденциальность переписки. Первой "подсуетилась" компания RSA, предложив S/MIME, позже М. Элкинс из Aerospace Corp. предложил PGP/MIME.

Теперь эксперты IETF рассматривают оба стандарта, причем с одинаковым вниманием. А соперники пока, не теряя времени, активно вербуют сторонников, в первую очередь среди тех, кто делает программы для Интернета. Сейчас уже и RSA, и PGP предложили пакеты SDK для программистов, желающих внедрять криптографические алгоритмы в свою продукцию. Оба алгоритма активно внедряются в известные программы для Интернета. Если сравнить количество реализаций, то счет будет таким:

RSA: MS Internet Mail, Mozilla;

PGP: MS Outlook/Express, Eudora, Mail'97, Pegasus 2.

Сравним

Стандарты PGP/MIME и S/MIME различаются столь незначительно, что нет смысла рассматривать их подробно. Те, кого интересуют подробности, могут удовлетворить свое любопытство, заглянув на сайт www.ietf.org (а также www.imc.org).

Здесь же отметим, что и PGP/MIME, и S/MIME согласно рекомендациям RFC 1847 предлагают использовать специальные блоки (multipart/signed и multipart/encrypted) в теле сообщения для хранения шифрованной части и электронной подписи (см. врезку). Переменная protocol в заголовке блока определяет алгоритм (и его подвид), с помощью которого следует обработать принятое сообщение, а переменная boundary определяет строку, используемую в качестве разделителя блоков. RSA, правда, предлагает и альтернативную схему электронной подписи под названием signedData, которая в принципе более устойчива к неожиданным действиям со стороны почтовых серверов, однако при условии окончательного перехода последних на современные почтовые протоколы, не так уж и нужна. Именно в силу того, что при столкновении с 8-битными блоками данных некоторые серверы могут действовать непредсказуемым образом, оба стандарта соглашаются с тем, что исходное сообщение следует обязательно перекодировать в 7-битные символы (для этого используются принятые во всем мире алгоритмы Base-64 - точнее, его аналог Radix-64 - и Quoted printable).

Сильной стороной PGP является опора на открытые криптографические стандарты. Открытость следует понимать двояко. Во-первых, эти алгоритмы свободны от патентного права, то есть либо не запатентованы, либо срок патента на них истек. Во-вторых, алгоритмы, использованные в PGP, хорошо известны и доступны для изучения и реализации. То же касается и PGP в целом. Имеется открытый документ (RFC 1991), который подробно описывает структуру сообщений, зашифрованных и подписанных с помощью PGP.

Именно благодаря открытости PGP получил такое распространение среди частных пользователей, а количество программ, защищающих информацию с помощью PGP, исчисляется десятками. Многие из этих программ созданы за пределами США, так что PGP/MIME, если он будет утвержден, упадет на подготовленную и удобренную почву.

Этого нельзя сказать о S/MIME. Подробности многих алгоритмов, которые планируется использовать в S/MIME, недоступны. В качестве знака доверия компания RSA Data Security опубликовала подробности лишь одного алгоритма - RC4. На некоторые алгоритмы RSA имеет патент 3 и не собирается ни с кем ими делиться (см., например, в разделе новостей статью "Из зала суда", "Компьютерра" #221); правда, срок патента истекает через три года. Таким образом, производители ПО, для того чтобы внедрить в свои программы поддержку S/MIME, должны будут ехать в Калифорнию на поклон к руководству RSA Data Security и просить разрешения на использование алгоритмов. Крупным компаниям (в первую очередь американским, что доказывает пример Netscape и Microsoft) это будет сделать не трудно (и по соседству, и деньги имеются), а вот средним и малым компаниям придется либо приложить большие усилия, либо вовсе отказаться от поддержки S/MIME.

О главном

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

Заметим, что классический криптоанализ, опиравшийся на статистический анализ зашифрованного сообщения, уже утратил свою актуальность, ибо современные криптографические алгоритмы не оставляют от семантической структуры текста камня на камне. Так, при шифровании и формировании электронной подписи по стандарту PGP исходное сообщение подвергается сжатию с помощью известного алгоритма ZIP (скорее всего, это делается и в алгоритмах RSA). После сжатия сообщение представляет собой случайную последовательность символов. Теперь, если оно будет подвергнуто криптографическому преобразованию, восстановить его можно только "пробой на ключ", то есть перебирая все возможные ключи. Это доказывают результаты конкурса, проводимого RSA (см. "Компьютерра" #221), - все успешные попытки взлома различных типов шифра осуществлялись методом лобовой атаки. В этом плане и S/MIME, и PGP/MIME дают пользователям одинаково надежный инструмент шифрования, при условии, конечно, что они будут использовать ключи достаточной длины.

Еще одна проблема связана с распространением информации об открытых ключах пользователей. В настоящее время принят стандарт Х.509 (источник - ISO/CCITT), определяющий структуру так называемых сертификатов, включающих:

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

На сегодняшний день X.509 поддерживается только в S/MIME. PGP/MIME опирается на использование своего формата PGP key, состоящего только из имени и открытого ключа. Однако в будущем обещается и поддержка X.509. Собственно, это не так уж и важно, ибо в Интернете уже сложилась неформальная инфраструктура сведений об открытых ключах (яркий пример - pgp.net), чем, кстати, не может похвастаться RSA. Вообще, большой плюс PGP/MIME заключается в совместимости с текстовым форматом вывода программ PGP 2.6.х и PGP 5.x. Если этот стандарт и не будет поддерживаться конкретной почтовой программой, то пользователь всегда сможет "вручную" расшифровать или проверить электронную подпись с помощью указанных версий PGP.

В отличие от PGP, выпустившей одну-единственную версию стандарта, компания RSA находится в постоянном поиске (вспомним, что она предлагает уже третью версию S/MIME; ни одна из трех, правда, так и не была окончательно утверждена). И если компания PGP вряд ли будет менять свой стандарт - он и так хорош, - то у RSA в запасе есть несколько интересных ходов. Это предлагаемые компанией расширения стандарта S/MIME:

  1. "Тройная обертка сообщения". Расширение предусматривает подпись сообщения, затем его шифрование и еще одну подпись. Это позволит исключить внесение изменений в уже зашифрованное сообщение, - как случайное (со стороны почтовых агентов), так и умышленное. "Тройная обертка" может использоваться как самостоятельно, так и при реализации остальных расширений.
  2. Квитанции за получение зашифрованного сообщения. Благодаря этому расширению отправитель может получить заверенное подтверждение от получателя о том, что сообщение принято, и именно в том виде, в котором оно было отправлено.
  3. Списки конфиденциальной рассылки. Пользователь может дать задание специальной программе MLA (Maillist Agent) разослать сообщение по списку рассылки. Задание будет выполнено с использованием открытых ключей абонентов, которые хранит MLA. Причем отправитель может сам определить специфический вид отправленного сообщения для каждого из получателей (как говорится, "в части касающейся").

Насколько эти расширения нужны, предстоит решить IETF. Мы же краткое сравнение стандартов S/MIME и PGP/MIME на этом закончим.

И все-таки?

Не знаю, какое сложилось мнение у читателя после прочтения этой статьи; автор старался лишь объективно рассмотреть два стандарта, призванных обеспечить нам "просто приятную приватность". Но чьи шансы на победу выше? Наиболее вероятными представляются два варианта исхода борьбы:

1. IETF принимает оба стандарта, оставляя производителям и пользователям право самим определяться в своих симпатиях.

2. IETF призывает обе стороны создать единый метастандарт (такой стандарт под названием MOSS уже был принят, однако он был слишком неконкретным, чтобы стать руководством для производителей ПО), объединив в нем сильные стороны обоих претендентов.

Конечно, у частных пользователей больше симпатий вызывает PGP, распространенный и хорошо испытанный способ защиты сообщений. Но стоит ли отвергать и предложения RSA? Главное, чтобы пользователи получили действительно простое и единое (но немонополизированное) средство защиты электронной переписки. Ведь слово "приватность", фигурирующее в названии темы номера ("Компьютерра" #224), следует понимать не только как невмешательство в общение людей, но и как право этих людей самим определять, что и как они буду защищать от постороннего взгляда.

Здесь вспоминаются слова Фила Зиммерманна: "Speak truth to power", что можно перевести как "сила в правде". Фил беспокоился о том, чтобы эти слова были переведены на русский язык адекватно. Думаю, об этом можно не беспокоиться, ибо это одна из ключевых истин русской философии (вспомним хотя бы "правдоискательство" Достоевского). Нам нужна правда, владея ею, мы сильны, а если мы сильны, то сами сможем решить, как нам действовать.

Ну а спор PGP/MIME с S/MIME решит только время. Хотя немалую роль, конечно, сыграет и решение IETF. Это достаточно демократическая организация для того, чтобы принятое решение было объективным. Мы же можем только прогнозировать исход борьбы двух стандартов, "борьбы" в хорошем смысле, ибо если она будет вестись честно, то в выигрыше останемся мы с вами.

Автор выражает признательность Максиму Отставнову за ценные замечания и конструктивную критику.

 

Информация к размышлению: компания Pretty Good Privacy Inc.

Компания занимается разработкой криптографической продукции для конечных пользователей, компаний и OEM-производителей.

Целью создания PGP Inc. в марте 1996 года стала разработка коммерческих версий продуктов на основе алгоритма PGP, предложенного в 1991 году Ф. Зиммерманном. С момента основания компанию возглавляет президент Фил Данкелбергер (Phil Dunkelberger). Сам Зиммерманн исполняет обязанности CTO (Chief Technology Officer). PGP Inc. обладает исключительными правами на торговую марку "PGP", но предоставила права на использование open PGP и PGP/MIME Консорциуму электронной почты Internet (IMC).


 

Информация к размышлению: компания RSA Data Security

RSA Data Security занимается разработкой криптографических алгоритмов и их реализацией. Основные клиенты - крупные производители компьютеров и программного обеспечения. Компания основана в 1982 году. Президентом является Джим Бидзос (Jim Bidzos). Из трех авторов алгоритма RSA в компании остался только Рон Ривест, продолжающий заниматься исследованиями. RSA Data Security является владельцем торговой марки "RSA", а также нескольких патентов на известные криптографические алгоритмы (RSA, RC2, RC4, RC5). C недавнего времени компания вошла в состав Security Dynamics. Подробности: www.rsa.com.


 

Примеры конфиденциальных сообщений PGP/MIME и S/MIME

Пример зашифрованного сообщения:

From: Alexey Dudkin <adudkin@berdjansk.ua>

To: Ivan Poddubny <ipoddubny@moscow.ru>

Subject: About security

MIME-Version: 1.0

Content-Type: multipart/encrypted; protocol="TYPE/STYPE";

boundary="Encrypted Boundary"

--Encrypted Boundary

Content-Type: TYPE/STYPE

Здесь находится служебная информация для алгоритма,

указанного переменной protocol.

--Encrypted Boundary

Content-Type: application/octet-stream

Content-Type: text/plain; charset="us-ascii"

Здесь находится зашифрованное сообщение.

Алгоритм шифрования указан переменной protocol.

--Encrypted Boundary-

Пример подписанного сообщения:

From: Alexey Dudkin <adudkin@berdjansk.ua>

To: Ivan Poddubny <ipoddubny@moscow.ru>

Subject: About security

MIME-Version: 1.0

Content-Type: multipart/signed; protocol="TYPE/STYPE";

micalg="MICALG"; boundary="Signed Boundary"

--Signed Boundary

Content-Type: text/plain; charset="us-ascii"

Здесь находится текст сообщения (в 7-битной кодировке),

который заверен электронной подписью.

--Signed Boundary

Content-Type: TYPE/STYPE

Здесь находится служебная информация, необходимая

для проверки электронной подписи.

--Signed Boundary-



1 Хотя PGP Inc., играя сегодня роль Давида, завтра может оказаться Голиафом, опыт Microsoft подсказывает: сегодня Давид - завтра Голиаф.

2 Не считая модулей plug-ins к браузерам и почтовым программам, поддерживающих RSA и PGP.

3 Хотя S/MIME-3 поддерживает и патентно открытые алгоритмы (например DH/E).

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.