Информация >> Публикации сотрудников компании >>"Inter-PRO" - новая технология защиты информации в Internet
"Connect", №9, 1997 декабрь

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

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

Традиционные требования к системам защиты информации состоят в обеспечении:

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

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

В контексте разработки систем защиты информационного взаимодействия в среде WWW эти требования интерпретируются следующим образом:

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

Один из вариантов решения проблемы безопасности в Интернет был предложен компанией Netscape Communications Corp.. Ею был разработан протокол защищенного обмена информацией между клиентом и сервером - SSL (Secure Sockets Layer), расположенный между надежным транспортным протоколом (например, TCP) и протоколами прикладного уровня, такими как HTTP, FTP, Telnet и др. Протокол SSL обеспечивает аутентификацию сервера (с возможной аутентификацией клиента), конфиденциальность передаваемых данных по установленному соединению и контроль их целостности.

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

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

Двухключевые методы криптографии обладают следующими свойствами:

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

В качестве двухключевого алгоритма для аутентфикации сторон и формирования совместных секретных сеансовых ключей протокол SSL чаще всего использует алгоритм RSA (разработки RSA Data Security Inc.).

Следует отметить, что последняя версия протокола SSL поддерживает три режима аутентификации:

  • взаимная аутентификация сторон;
  • односторонняя аутентификация сервера (без аутентификации клиента) и
  • полная анонимность.

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

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

  • имя центра сертификации;
  • имя владельца сертификата;
  • открытый ключ владельца сертификата;
  • период действия сертификата;
  • идентификатор и параметры алгоритма крипто-обработки;
  • цифровую подпись ЦС, заверяющую все данные в составе сертификата.

Цифровая подпись ЦС в составе сертификата обеспечивает достоверность и однозначность соответствия открытого ключа и его владельца.

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

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

Одним из таких центров в Интернет является компания VeriSign, учрежденная RSA Data Security Inc., при участии компаний Visa, IBM, Netscape, Microsoft и Oracle.

С учетом вышеизложенного процедура установления защищенного режима взаимодействия между клиентом и WWW-сервером в соответствии с протоколом SSL при некоторых упрощениях выглядит следующим образом (рассматривается вариант односторонней аутентификации сервера со стороны клиента).

1. Этап установления SSL-сессии ("рукопожатие").

а) КЛИЕНТ посылает серверу запрос на установление защищенного соединения, в котором передает некоторые формальные параметры этого соединения:

  • текущее время и дату;
  • случайную последовательность (RAND_CL);
  • набор поддерживаемых клиентом одноключевых криптографических алгоритмов (например, RC4_128, RC4_40, RC2_128, RC2_40, DES40 и др.) и хэш-алгоритмов (MD5, SHA), используемых при формировании кода для проверки целостности передаваемого сообщения (MAC - Message Authentication Code);
  • набор поддерживаемых алгоритмов сжатия и др.

б) СЕРВЕР обрабатывает запрос от клиента и передает ему согласованный набор параметров:

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

в) КЛИЕНТ проверяет полученный сертификат сервера с помощью открытого ключа ЦС, который ему известен; при положительном результате проверки клиент выполняет следующие действия (при отрицательном результате проверки сессия закрывается):

  • генерирует случайную 48-байтную последовательность Pre_MasterSecret (часть совместного секрета, известного только серверу и клиенту); шифрует ее на открытом ключе сервера, полученном в сертификате сервера, и посылает серверу;
  • с помощью согласованных хэш-алгоритмов формирует главный совместный секрет (MasterSecret), используя в качестве параметров часть совместного секрета Pre_MasterSecret, посланную серверу на предыдущем шаге случайную последовательность RAND_CL и полученную от него случайную последовательность RAND_SERV;
  • используя MasterSecret, вычисляет криптографические параметры SSL-сессиии: формирует общие с сервером сеансовые секретные ключи одноключевого алгоритма шифрования (для приема и для передачи) и секреты для вычисления MAC;
  • переходит в режим защищенного взаимодействия.

г) СЕРВЕР расшифровывает полученный Pre_MasterSecret с помощью своего секретного ключа и выполняет над ним те же операции, что и клиент:

  • с помощью согласованных хэш-алгоритмов формирует главный совместный секрет (MasterSecret), используя в качестве параметров Pre_MasterSecret, посланную клиенту на предыдущем шаге случайную последовательность RAND_SERV и полученную от него случайную последовательность RAND_CL;
  • используя MasterSecret, вычисляет криптографические параметры SSL-сессиии: формирует общие с клиентом сеансовые секретные ключи одноключевого алгоритма шифрования и секрет для вычисления MAC;
  • переходит в режим защищенного взаимодействия.

д) Т.к. при формировании параметров SSL-сессии и клиент и сервер пользовались одними и теми же исходными данными (согласованными алгоритмами, общим секретом Pre_MasterSecret и случайными последовательностями RAND_CL и RAND_SERV), то очевидно, что в результате описанных выше действий они выработали одинаковые сеансовые секретные ключи шифрования и секреты, используемые для защиты целостности передаваемых сообщений. Для проверки идентичности параметров SSL-сессии клиент и сервер посылают друг другу тестовые сообщения, содержание которых известно каждой из сторон:

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

2. Этап защищенного взаимодействия с установленными криптографическими параметрами SSL-сессии.

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

Описанная процедура установления SSL-сессии безусловно не обладает полнотой изложения, однако дает представление о возможностях протокола SSL.

В настоящее время протокол SSL поддерживается программным обеспечением серверов и браузеров, выпускаемых рядом западных компаний, в частности, компаниями Netscape и Microsoft (Netscape Navigator, Microsoft Explorer, Netsite Commerce Server).

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

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

Во-вторых, практически все существующие продукты, поддерживающие протокол SSL, реализованы в США и из-за экспортных ограничений доступны только в усеченном варианте (с длиной сеансового ключа 40 бит для одноключевых алгоритмов шифрования и параметром 512 бит для алгоритма RSA, используемого на этапе установления SSL-сессии), что на сегодняшний день явно недостаточно.

В-третьих, законодательные ограничения многих стран (в том числе и России) при защите информации разрешают использовать только национальные криптографические стандарты.

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

Решением проблемы представляется внедрение новой уникальной технологии на базе прораммного продукта "Inter-PRO", предлагаемого ЗАО "Сигнал-КОМ".

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

Предлагаемая технология предназначена для организации защищенного информационного взаимодействия в Интернет-приложениях (WWW,FTP,SMTP...), основана на принципах открытого интерфейса и обеспечивает:

  • конфиденциальность передаваемой информации,
  • целостность информации,
  • аутентификацию взаимодействующих сторон.

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

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

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

Технология, реализуемая в программном продукте "Inter-PRO", не накладывает никаких серьезных ограничений на тип применяемых Web-серверов и браузеров и совместима с реализованными в них версиями протокола SSL.

Меню-ориентированный интерфейс "Inter-Pro" позволяет легко и быстро настроить его на необходимый режим работы, в зависимости от места установки - на стороне клиента или на стороне Web-сервера.

"Inter-PRO" работает в среде WINDOWS 95 и WINDOWS NT, при этом он может устанавливаться либо на одном компьютере с браузером или сервером, либо соединяться с ними через Интернет (Интранет), что снимает ограничения на платформенную совместимость

Допускается обслуживание одним модулем "Inter-PRO" нескольких клиентов (серверов).

В настоящее время планируется реализация версии, функционирующей в среде UNIX, и расширение перечня Интернет-приложений, защищаемых программным продуктом "Inter-PRO".