HCE (Host Card Emulation)
HCE (Host Card Emulation) — технология, которая позволяет смартфону программно вести себя как бесконтактная карта при взаимодействии с NFC-считывателем. Благодаря этому совместимое приложение может обмениваться данными с платежным терминалом, турникетом или другой NFC-системой без обязательного использования отдельного защищенного чипа для эмуляции карты.
Чаще всего о HCE говорят в контексте оплаты смартфоном. Пользователь подносит телефон к терминалу примерно так же, как обычную банковскую карту, а необходимый обмен данными происходит через NFC и программную среду устройства.
При этом HCE сама по себе не является платежной системой, банковской картой или способом хранения денег. Это технологический механизм, поверх которого можно создавать платежные, транспортные, пропускные и другие сервисы.
Как HCE работает на смартфоне
У обычной бесконтактной карты есть микросхема, которая отвечает на запросы терминала. Смартфону для похожего взаимодействия нужно каким-то образом представить себя считывателю как совместимую карту.
При HCE эту роль берет на себя программная часть устройства.
Когда человек подносит смартфон к NFC-терминалу, происходит примерно следующее:
- терминал обнаруживает устройство на небольшом расстоянии;
- между терминалом и смартфоном начинается обмен по NFC;
- операционная система определяет, какое приложение или сервис должен обработать запрос;
- запрос передается в программную среду смартфона;
- формируется ответ для считывателя;
- терминал получает необходимые данные и продолжает операцию.
Для пользователя весь процесс занимает несколько секунд и выглядит как обычное прикладывание телефона к терминалу.
Простой пример
Предположим, клиент подключил банковскую карту к мобильному платежному сервису, который использует совместимую HCE-архитектуру.
В магазине он выбирает оплату телефоном, при необходимости разблокирует устройство и подносит его к терминалу.
Телефон устанавливает NFC-связь с терминалом и передает предусмотренные платежным решением данные. После этого операция обрабатывается банком, платежной системой и другими участниками расчетов так же, как предусмотрено для данного сервиса.
Пластиковую карту при этом доставать не нужно.
HCE и NFC — не одно и то же
Эти два термина часто встречаются рядом, поэтому их легко перепутать.
NFC — это технология беспроводного обмена информацией на очень небольшом расстоянии. С ее помощью телефон может взаимодействовать с платежным терминалом, NFC-меткой, транспортным валидатором и другими совместимыми устройствами.
HCE решает другую задачу. Она позволяет программно эмулировать определенный тип бесконтактной карты.
| Технология | За что отвечает |
|---|---|
| NFC | Обеспечивает беспроводной обмен данными между устройствами на небольшом расстоянии |
| HCE | Позволяет программному сервису смартфона выступать в роли совместимой бесконтактной карты |
Можно представить NFC как канал связи между телефоном и терминалом, а HCE — как один из способов определить, кто и как будет отвечать на запросы терминала через этот канал.
Поэтому наличие NFC на смартфоне еще не означает, что любое приложение сможет использовать HCE.
Зачем появился HCE
До распространения HCE для эмуляции бесконтактной карты на телефоне часто использовался Secure Element — отдельная защищенная среда, в которой могла работать платежная функциональность.
Такой подход обеспечивает аппаратную изоляцию, но усложняет запуск новых сервисов. Разработчику, банку или другому поставщику услуги необходимо учитывать особенности доступа к защищенному элементу и инфраструктуре устройства.
HCE предложила другой вариант: направлять запросы NFC-считывателя в основную программную среду телефона.
В Android такая возможность появилась начиная с версии 4.4. Приложения получили возможность эмулировать совместимые NFC-карты без обязательного размещения самой эмуляции в Secure Element.
HCE и Secure Element
Обе технологии могут использоваться для реализации бесконтактных сервисов, но устроены по-разному.
| HCE | Secure Element |
|---|---|
| Обработка NFC-запроса происходит в программной среде устройства | Запрос направляется в отдельный защищенный компонент |
| Не требует Secure Element именно для самой HCE-эмуляции | Использует выделенную защищенную среду |
| Проще интегрировать с некоторыми приложениями и онлайн-сервисами | Сильнее опирается на специальную аппаратную инфраструктуру |
| Безопасность зависит от всей архитектуры приложения и серверной части | Часть чувствительной логики может быть аппаратно изолирована |
Нельзя сказать, что один подход автоматически безопасен, а другой нет. Современный платежный сервис использует сразу несколько механизмов защиты, и способ эмуляции карты является только одной частью этой системы.
Безопасна ли HCE
Оценивать безопасность только по наличию HCE некорректно. Технология является частью более крупной системы.
В платежном приложении дополнительно могут использоваться токенизация, криптографические механизмы, проверка целостности устройства, ограничения для платежных данных, подтверждение владельца и серверные системы противодействия мошенничеству.
Android также изолирует приложения друг от друга с помощью собственной модели безопасности. HCE-сервис взаимодействует с NFC-контроллером через механизмы операционной системы.
Но программная архитектура означает, что разработчикам платежного решения необходимо отдельно защищать приложение, данные на устройстве и серверную инфраструктуру.
Что может сделать пользователь для безопасности
Большинство людей не выбирают между HCE и Secure Element самостоятельно. Они устанавливают банковское приложение или мобильный кошелек и пользуются той технологией, которую выбрал разработчик сервиса.
Со стороны владельца смартфона гораздо важнее базовые меры:
- установить блокировку экрана;
- не передавать PIN-код и пароль от устройства другим людям;
- скачивать банковские приложения из официальных источников;
- устанавливать обновления операционной системы и приложений;
- не отключать защитные функции ради установки подозрительного ПО;
- при потере телефона ограничить доступ к банковским и платежным сервисам.
Если смартфон потерян, стоит действовать так же серьезно, как при потере банковской карты: проверить возможность удаленной блокировки устройства и при необходимости связаться с банком.
Что важно знать
HCE позволяет смартфону программно эмулировать совместимую бесконтактную карту и взаимодействовать с NFC-считывателем без обязательного использования Secure Element для самой эмуляции.
NFC и HCE при этом не являются синонимами. NFC обеспечивает беспроводную связь, а HCE определяет один из способов программной обработки карточного взаимодействия.
Не стоит путать HCE и с токенизацией. Платежный токен может заменять реальные карточные реквизиты, тогда как HCE отвечает за другой участок технологии.
Для обычного пользователя важнее всего не название внутренней архитектуры, а совместимость конкретного телефона, банка и платежного приложения, а также соблюдение обычных правил безопасности смартфона.
Для более полного понимания механизма полезны понятия Tokenization, EMV, CVV, PCI DSS и Платежная карта.