Безопасный протокол электронных платежей SET
Безопасный протокол электронных платежей SET
Для операций с кредитными карточками используется протокол SET (Secure Electronic transactions), разработанный компаниями Visa, MasterCard, Netscape и Microsoft. Протокол SET узко специализирован. Целью является обеспечение необходимого уровня безопасности для платежного механизма, в котором участвует три или более субъектов. При этом предполагается, что транзакция реализуется через Интернет. На базовом уровне SET осуществляет следующие функции:
1. Аутентификация. Все участники кредитных операций идентифицируются с помощью электронных подписей. Это касается клиента-покупателя, продавца, банкира, выдавшего кредитную карточку, и банкира продавца.
2. Конфиденциальность. Все операции производятся в зашифрованном виде.
3. Целостность сообщений. Информация не может быть подвергнута модификации по дороге в противном случае это будет сразу известно.
4. Подсоединение. SET позволяет подключить к базовому сообщению дополнительный текст и послать его одному из партнеров.
5. Безопасность. Протокол должен обеспечить максимально возможную безопасность операции, достижимую в имеющихся условиях.
6. Совместимость. Должна быть предусмотрена совместимость с любыми программными продуктами и с любыми сервис-провайдерами.
Рекомендуемые материалы
7. Независимость от транспортного протокола. Безопасность операций не должна зависеть от уровня безопасности транспортного протокола.
На высоком уровне протокол SET поддерживает возможности, предоставляемые кредитными карточками:
1. Регистрацию держателя карточки;
2. Регистрацию продавца;
3. Запрос покупки;
4. Авторизацию платежа;
5. Перевод денег;
6. Кредитные операции;
7. Возврат денег;
8. Отмену кредита;
9. Дебитные операции.
Окончательная версия протокола SET была выпущена в мае 1997 года. Протокол работает с четырьмя субъектами:
1. Владельцем кредитной карточки,
2. Банком, выпустившим карточку (эмитент),
3. Продавцом (merchant),
4. Банком, где помещен счет продавца (acquirer).
Помимо этих субъектов в процессе обычно (опционно) участвует центры сертификации, в задачу которых входит подтверждение подлинности предъявляемых параметров аутентификации, причем в случае крупных сделок с этими центрами должны взаимодействовать все участники. Основной целью сертификатов является подтверждение того, что присланный общедоступный ключ прибыл от настоящего отправителя.
Практика электронной торговли позволяет выделить семь этапов сделки:
1. Владелец карты просматривает позиции каталога продавца: в реальном масштабе времени на WEB-сервере, на CD-диске на своей рабочей станции, читая бумажную версию каталога, через поисковую систему посредника;
2. Владелец карты выбирает понравившийся товар или услугу;
3. Владельцу карты предоставляется форма заказа, содержащая список позиций, цены, стоимости доставки, уровни платежей по налогам, возможные скидки и т.д. Такая форма может быть доставлена по сети с сервера продавца или сформирована торговой программой владельца карты;
4. Владелец карты выбирает средство платежа. SET предполагает применение различных кредитных и платежных карт;
5. Владелец карты посылает продавцу заполненную форму заказа и платежные инструкции. В данной спецификации предполагается, что заказ и инструкции подписываются владельцем карты электронным образом с привлечением имеющихся в его распоряжении сертификатов.
6. Продавец запрашивает платежную авторизацию от эмитента карты;
7. Продавец посылает подтверждение заказа;
8. Продавец доставляет заказанный товар или услугу;
9. Продавец посылает запрос на оплату товара или услуги финансовой организации владельца карты.
Порядок следования этапов при определенных условиях может варьироваться. Спецификация SET определяет функции и технику реализации этапов 5, 6, 7 и 9. Таким образом, работа протокола SET инициализируется владельцем карты. Владельцем карты может быть как частное лицо, так и корпоративный клиент.
Многие современные WEB-браузеры поддерживают протокол SET, что позволяет осуществлять торговлю товарами и услугами с использованием WWW-технологии.
Схема взаимодействия субъектов в протоколе SET показана на рис. 2.
Рис. 2. Схема взаимодействия субъектов протокола SET.
Протокол SET помогает реализовать следующие процедуры.
1. Покупатель инициализирует покупку. При этом покупатель выбирает продавца, просматривает его WEB-сайт, принимает решение о покупке, заполняет бланк заказа. Все это делается до вступления в дело протокола SET. Реально взаимодействие участников сделки регламентируется протоколом IOTP.
2. SET начинает свою работу, когда покупатель нажимает клавишу оплаты. При этом сервер посылает станции покупателя сообщение, которое и запускает соответствующую программу. Процедура эта может быть реализована с помощью PHP- или CGI-скрипта, или JAVA-аплета.
3. Программа клиента посылает заказ и информацию об оплате. Для этого формируется два сообщения, одно содержит данные о полной стоимости покупки и номере заказа, второе - номер кредитной карточки покупателя и банковскую информацию. Сообщение о заказе шифруется с использованием симметричного метода, например, DES и вкладывается в цифровой конверт, где используется общедоступный ключ продавца. Сообщение об оплате шифруется с привлечением общедоступного ключа банка (эмитента кредитной карты). Таким образом продавец не получает доступа к номеру кредитной карточки покупателя. Программа генерирует хэш-дайджест обоих сообщений с использованием секретного ключа покупателя. Это позволяет продавцу и банкиру проконтролировать целостность сообщения, но препятствует прочтению части, ему не предназначенной, например, номера кредитной карты продавцом.
4. Продавец выделяет часть, адресованную банкиру, и направляет ее по месту назначения. Программа SET WEB-сервера продавца генерирует запрос авторизации серверу банка, где находится счет продавца. При формировании запроса авторизации используется электронная подпись продавца, базирующаяся на его секретном ключе, что позволяет однозначно его идентифицировать. Этот запрос шифруется с помощью ключа сессии и вкладывается в цифровой конверт, где используется общедоступный ключ банка.
5. Банк проверяет действительность кредитной карточки, дешифрует запрос авторизации продавца и идентифицирует продавца.
6. После этого осуществляется проверка авторизации покупателя. При этом посылается запрос авторизации, снабженный электронной подписью, банку, выпустившему кредитную карточку.
7. Банк, выпустивший карточку, выполняет авторизацию и подписывает чек, если кредитная карточка покупателя в порядке. Отклик, снабженный соответствующей подписью, посылается банку продавца. Номер кредитной карточки имеет определенную структуру. Первые четыре цифры - код банка, выпустившего карточку. Последняя цифра представляет собой контрольную сумму номера. Вычисление этой контрольной суммы производится по следующему алгоритму. Каждая цифра номера умножается на его “вес”. Веса меняются 1,2,1,2. Для карт с четным числом цифр, последовательность весов начинается с 2, в противном случае с 1. Если взвешенное число больше 9, из него вычитается 9. Далее вычисляется сумма по модулю 10. Результат всегда должен получаться равным нулю (с учетом кода контрольной суммы).
8. Банк продавца авторизует данную операцию, и посылает подтверждение, подписанное электронным образом, WEB-серверу продавца.
9. WEB-сервер продавца завершает операцию, выдавая клиенту подтверждение на экран, и заносит результат операции в соответствующую базу данных.
10. Продавец осуществляет подтверждение выполнения операции своему банку, Деньги покупателя переводятся на счет продавца.
Если Вам понравилась эта лекция, то понравится и эта - Газопроводы.
11. Банк, выпустивший карточку, посылает счет покупателю и SET уведомляет покупателя об изменениях на его счету (раз в месяц).
Видно, что каждый шаг реализации протокола SET сопровождается аутентификацией. Это препятствует внешнему субъекту стать посредником и видоизменять сообщения. Для нормальной работы протокола SET все участники должны зарегистрироваться и снабдить партнеров своим общедоступным ключом. Протокол SET может использоваться не только в рамках Интернет, но и при заказах по почте или телефону (Mail Order/Telephone Order).
Сертификаты владельцев карт являются электронным представлением самих платежных карт. Так как они подписаны цифровым образом, их не сможет модифицировать третья сторона. Сертификат владельца карты не содержит номера счета и срока ее действия. Вместо этого там закодирована информация о счете и секретный код, известный только программе владельца карты. В рамках протокола SET владелец карты передает информацию о счете и секретный код расчетному центру, где эта информация верифицируется.
Сертификат посылается владельцу карты только в случае, когда это одобряется финансовой организацией, выпустившей эту карту. Запрос сертификата указывает на то, что владелец карты намерен выполнить какую-то коммерческую операцию. Полученный сертификат передается продавцу в рамках запроса покупки вместе с платежными инструкциями. Получив сертификат владельца карты, продавец может быть уверен, что счет владельца карты существует и действует, что подтверждено эмитентом карты или его агентом. В рамках SET сертификаты владельцев карты опционны и оставлены на усмотрение платежной системы.
Когда сертификационный центр получает запрос владельца карты, он дешифрует цифровой конверт, получает симметричный ключ, информацию о счете и секретный код, генерируемый программой владельца карты. Запрос сертификата дешифруется с помощью симметричного ключа. Центр использует общедоступный ключ, присланный в запросе, чтобы проверить подпись, сформированную с помощью секретного ключа владельца карты. Если с подписью все в порядке, процесс обработки запроса продолжается. Далее производится верификация самого запроса с привлечением информации о счете. На этом этапе центр взаимодействует с эмитентом карты. Это взаимодействие не регламентируется протоколом SET. Если верификация запроса прошла успешно, сертификат формируется и пересылается владельцу карты. При этом центр сначала генерирует случайное число, которое комбинируется с секретным кодом, присланным в запросе. Полученный код используется в сертификате для защиты информации о счете владельца карты. Номер счета, срок его действия и секретный код преобразуются с помощью хэш-алгоритма. Полученный результат помещается в сертификат. Если номер счета, срок его действия и секретный код известны, сертификат можно верифицировать. После данной процедуры центр цифровым образом подписывает сертификат. Время действия сертификата часто оказывается равным сроку работы платежной карты.
Сертификаты продавца индицируют поддержку определенной платежной системы. Так как сертификаты продавца снабжены цифровой подписью, они не могут быть модифицированы третьей стороной. Эти сертификаты одобряются банком продавца и предоставляют гарантию того, что продавец имеет официальное соглашение со своим банком. Для работы в среде SET продавец должен иметь как минимум пару сертификатов для каждой разновидности, поддерживаемой им платежной системы.