Для защиты информационного взаимодействия в Интернет между Клиентами и WWW-сервером, Банк использует программный продукт
Inter-PRO, компании
Сигнал-Ком, предназначенный для защиты WWW-приложений, в составе которого реализуется свободный от экспортных ограничений протокол SSL, дополненный российскими криптографическими стандартами, и обеспечивающий возможность формирования электронной подписи под html формами.
Технология, реализуемая в программном продукте
Inter-PRO, не накладывает никаких серьезных ограничений на тип применяемых WWW-серверов и браузеров и совместима с реализованными в них версиями протокола
SSL. Стандартный
SSL протокол дополнен отечественными криптографическими алгоритмами (ГОСТ28147-89). Реализована возможность формирования и проверки цифровой подписи пользователя под электронной формой (POST/GET), заполняемой им в процессе взаимодействия с WWW-сервером.
В качестве дополнительной меры защиты WWW-сервера используется фильтрация входящих запросов по принципу "доступ разрешен всем, кроме..." или "доступ запрещен всем, кроме...", где в качестве параметра фильтрации выступают атрибуты сертификата клиента.
Открытые и секретные ключи формируются самими пользователями Inter-PRO с помощью вcтроенной процедуры генерации ключей.
ПРОТОКОЛ SSL. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ
Для защищенного обмена информацией между Web-браузером и Web-сервером используется протокол SSL (Secure Socket Layer) версии 2.0 (далее просто SSL), предложенный компанией Netscape Communications Corporation для обеспечения безопасной связи в Интернет.
В настоящее время протокол SSL поддерживается программным обеспечением серверов и браузеров, выпускаемых рядом западных компаний, в частности, компаниями Netscape и Microsoft (Netscape Navigator, Microsoft Explorer, Netsite Commerce Server и др.).
Традиционные требования к системам защиты информации состоят в обеспечении:
- аутентификации (подтверждении подлинности) взаимодействующих сторон;
- конфиденциальности передаваемой информации
- целостности передаваемой информации.
В контексте разработки систем защиты информационного взаимодействия в среде "клиент-сервер" эти требования интерпретируются следующим образом:
- пользователь, подключаясь к серверу, должен быть уверен, что он обменивается информацией не с подставным сервером, а именно с тем, который ему нужен; во многих приложениях необходимо также, чтобы и сервер мог надежно идентифицировать клиента, не ограничиваясь парольной защитой;
- после установления соединения между сервером и клиентом весь информационный поток между ними должен быть защищен от несанкционированного доступа;
- при обмене информацией стороны должны быть уверены в отсутствии случайных или умышленных искажений при ее передаче.
Один из вариантов решения проблемы безопасности в Интернет был предложен компанией Netscape Communications Corp., разработавшей протокол защищенного обмена информацией между клиентом и сервером - SSL (Secure Sockets Layer).
В настоящее время протокол SSL является наиболее распространенным протоколом защиты информации в Интернет, обеспечивающим конфиденциальность и целостность информационного взаимодействия между Интернет-приложениями. В многоуровневой иерархии протоколов он занимает место между надежным транспортным протоколом и протоколами прикладного уровня. Независимость от протоколов прикладного уровня предоставляет возможность использования SSL для защиты целого ряда приложений, построенных по технологии "клиент-сервер" (в частности, HTTP, FTP, Telnet и др.).
Протокол SSL позволяет серверу и клиенту перед началом информационного взаимодействия аутентифицировать друг друга, согласовать алгоритм шифрования и сформировать общие криптографические ключи.
Конфиденциальность информации, передаваемой по установленному защищенному соединению, обеспечивается путем шифрования потока данных на сформированном общем ключе с использованием симметричных криптографических алгоритмов, а контроль целостности передаваемых блоков данных - за счет использования так называемых кодов аутентификации сообщений (Message Autentification Code - MAC), вычисляемых с помощью хэш-функций.
Протокол SSL включает два этапа взаимодействия сторон защищаемого соединения:
- установление SSL сессии;
- защита потока данных.
1) На этапе установления SSL сессии осуществляется аутентификация сервера и (опционально) клиента, стороны договариваются об используемых криптографических алгоритмах и формируют общий "секрет", на основе которого создаются общие сеансовые ключи для последующей защиты соединения.
Этот этап называют также процедурой "рукопожатия". При установлении повторных соединений между клиентом и сервером стороны могут, по взаимному соглашению, формировать новые сеансовые ключи на основе "старого" общего "секрета" (данная процедура называется "продолжением" SSL сессии).
2) На втором этапе (защита потока данных) информационные сообщения прикладного уровня нарезаются на блоки, для каждого блока вычисляется MAC, затем данные шифруются и отправляются приемной стороне. Приемная сторона производит обратные действия: дешифрование, проверку MAC, сборку сообщений, передачу на прикладной уровень.
Реализованная версия протокола SSL предусматривает использование различных криптографических алгоритмов. На этапе "рукопожатия" для аутентификации и формирования общих секретных сеансовых ключей используется двухключевая криптосистема RSA.
Для шифрования потока данных могут быть использованы алгоритмы RC2 (длина ключа 128 бит), RC4 (128 бит), IDEA (128 бит), DES (56 бит), "тройной" DES (168 бит), ГОСТ 28147-89/3/4 (256 бит) и др. Вычисление MAC осуществляется по алгоритму MD5 и ГОСТ 28147-89/5.
В соответствии с процедурой аутентификации, используемой протоколом SSL, у каждой аутентифицируемой стороны (сервера или клиента) предполагается наличие пары ключей - секретного и открытого. Секретный ключ должен быть доступен только самому владельцу и храниться в тайне, а открытый ключ должен быть известен той стороне, которая выполняет процедуру аутентификации. При этом открытый ключ может распространяться только в составе сертификатов, выдаваемых Сертификационными Авторитетами (СА).
Сертификат представляет собой блок данных, содержащий следующую информацию:
- имя СА;
- уникальное имя владельца сертификата;
- открытый ключ владельца сертификата;
- серийный номер сертификата;
- период действия сертификата;
- идентификатор и параметры криптографических алгоритмов;
- цифровую подпись СА.
Цифровая подпись СА в составе сертификата обеспечивает достоверность и однозначность соответствия открытого ключа и его владельца.
Сертификационный Авторитет выполняет роль нотариуса, заверяющего подлинность открытых ключей, что позволяет их владельцам пользоваться услугами защищенного взаимодействия без предварительной личной встречи. Будучи защищены цифровой подписью СА, сертификаты пользователей могут распространяться свободно, без опасности искажения либо подмены.
Чтобы иметь возможность проверки целостности любого сертификата, каждый пользователь криптосистемы должен получить открытый ключ СА.