Протокол SSL
Чаще всего для защиты карточных платежей в Internet используется протокол SSL (Secure Socket's Layer), который был предложен Netscape Communication Corporation. Этот протокол взаимодействия информационных серверов и универсальных клиентов обеспечивает шифрование данных, аутентификацию сервера, контроль целостности сообщения и выполнение некоторых других функций для семейства протоколов TCP/IP.
Основная цель протокола SSL — поддержание определенного уровня секретности и достоверности для двух взаимодействующих приложений. Уровень SSL Record Layer используется для инкапсуляции различных протоколов более высокого уровня. В частности, таким инкапсулированным протоколом является SSL Handshake (протокол «рукопожатия»), который позволяет серверу и клиенту гарантированно отождествлять друг друга, реализовывать алгоритм шифрования и обмен криптографическими ключами. После успешной аутентификации и формирования сеансовых ключей протокол уровня приложения может использоваться для безопасной передачи или безопасного приема данных. Одно из преимуществ SSL заключается в том, что он не зависит от протокола уровня приложений. Протокол SSL в соответствии с требованиями стандартов взаимодействия открытых систем прозрачен для протоколов высшего уровня.
SSL обеспечивает реализацию трех основных функций:
О секретность соединения;
О использование шифрования после выполнения протокола «рукопожатия» для определения секретного ключа;
О использование симметричного криптографического алгоритма для шифрования данных.
Разработано несколько версий протокола SSL. Он является открытым, бесплатным и может использоваться без ограничений, если это не
В SSL действует алгоритм RSA1 с открытым ключом, широко применяемый для аутентификации и шифрования в компьютерной индустрии.
Начало установки безопасного соединения предусматривает посылку клиентом сообщения CLIENT-HELLO. Там клиент помещает информацию о системе шифрования, которую он способен поддерживать. Сервер отправляет ответное сообщение SERVER-HELLO, которое включает идентификатор соединения, сертификат сервера и информацию о поддерживаемом протоколе шифрования.
Клиент проверяет сертификат сервера и извлекает открытый ключ сервера, а затем формирует сообщение CLIENT-MASTER-KEY. Сначала формируется случайно сгенерированная последовательность, которая будет использоваться в качестве мастер-ключа в текущем сеансе. Серверу посылается сообщение CLIENT-MASTER-KEY, содержащее мастер-ключ, зашифрованный открытым ключом сервера. Следующим клиент посылает сообщение CLIENT-FINISH, где содержится идентификатор соединения, зашифрованный секретным ключом клиента.
Сервер отвечает сообщением SERVER-VERIFY, в котором подтверждает свою подлинность. Для этого сервер, используя свой секретный ключ, расшифровывает мастер-ключ, созданный клиентом. Зашифровав его на своем секретном ключе, сервер отсылает зашифрованный мастер-ключ клиенту. Клиент, получив и расшифровав на открытом ключе сервера посланный ему ранее мастер-ключ, сравнивает результат с имеющимся. Если значения мастер-ключей совпадают, аутентификация считается успешной и начинается сеанс с шифрованием трафика на имеющемся у обеих сторон мастер-ключе.
Для обеспечения безопасности карточного платежа в Internet протокол SSL используется при передаче магазину информации о платежной карте. В этом случае участники сделки должны доверять друг другу, поскольку SSL защищает трафик только от внешних угроз. Данный подход характерен при осуществлении покупок на небольшие суммы, когда ни продавцу, ни покупателю обманывать нет смысла. Однако банк, который обслуживает таких партнеров, считает подобные дела рискованными и берет повышенную ставку комиссии за риск.