Бесконтактные платежи

17 октября 2011 г.

Java Card

Прежде всего рассмотрим технологию Java Card. Эта технология представляет собой интерфейс для создания приложений, работающих на смарт картах. То есть чип в SIM карте телефона, чип внутри пластиковой карты: внутри они имеют Java машину со сборкой мусора и запускают только код, вшитый на заводе. В дополнение к этому, информацию, добавленную на этот чип, крайне сложно прочесть: необходимо будет использовать дорогостоящий микроскоп и аккуратно снимать слой за слоем с карты. Для сравнения: данные с чипа внутри модема Yota считывают программатором едва ли не в домашних условиях. А SIM карту сотового оператора так легко не склонировать.
Итого, что имеем от этой технологии:

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

Сразу отмечу, что изначально технология JavaCard не использовала радиопередачу данных: SIM карты работают только при контакте с телефоном. Потом к технологии добавили возможность зарядки от магнитного поля, создаваемое терминалом, и беспроводную передачу данных в высокочастотном диапазоне.

Алгоритм работы

Итак, Вы подошли к терминалу оплаты, и с Вас хотят взять 100 рублей за гамбургер. Далее следуют действия:

  1. Терминал составляет структуру со следующими данными:
    • Сумма к оплате.
    • Временный token терминала (она образуется с помощью алгоритма согласования: терминал запрашивает сервер для создания временного token`а, сервер создает и подписывает его). Фактически, сервер подписывает информацию, что доверенный терминал хочет снять со счета 100 рублей. И этот token действителен только ограниченное время.
  2. Терминал просит Вас провести каточкой перед ним. Из-за малого радиуса действия, общение с карточкой на большом расстоянии невозможно, следовательно просто так у Вас никто данные не считает.
  3. Создается соединение с картой отплаты:
    • Терминал отсылает карте данные временный token (напомню: подписанный сервером).
    • Карта всё проверяет и подписывает своим паролем. Этот же пароль знает главный сервер. Подписанная структура отсылается обратно терминалу.
  4. Терминал отправляет данные на сервер.
  5. Сервер отвечает одним из вариантов:
    • Если сумма меньше N рублей и всё хорошо со счетом – Accepted
    • Если со счета деньги не могут быть сняты – Fail
    • Если необходима дополнительная авторизация: сервер говорит, что еще необходимо (pin-код, подпись + паспорт)

Отличия от магнитной пластиковой карты

Как Вы видите, основная разница: в том, что пока Вашу карту не украли и не склонировали, у Вас не могут снять более N рублей за раз и M рублей в сутки. Чтобы склонировать карту, необходимо её деформировать. Клонирование старых карточек делается с помощью магнитофона – считывающее устройство аналогично такому же для старых кассет.
Так что безопасность усиливается – это факт. Но остается одна из уязвимостей: подмена монитора, где Вы видете сумму. Вам могут показать там совершенно другие деньги. К сожалению, эта проблема до сих пор решается только правовым способом: жалоба, суд и пр. Напомню, что за подобные действия во многих странах полагается уголовная ответственноть и большие штрафы.

Данные взяты с MasterCard Paypass

Теги: рубрика Интернет