Приложение secure element application не отвечает
Разбираемся, как защищают платежные данные в смартфонах, которые поддерживают бесконтактные платежи.
Современные смартфоны уже давно и успешно совмещают в себе не только средство связи, фотоаппарат и музыкальный плеер, но заодно еще и проездной, и даже кошелек. Это, естественно, заставляет задуматься о безопасности хранения данных на них. Давайте разберемся, насколько надежно смартфоны защищают самую ценную информацию и как работает ее главный страж — миниатюрный чип под названием Secure Element.
Давайте познакомимся с Secure Element
Специальный чип для надежного хранения платежных данных перекочевал на смартфоны с бесконтактных банковских карточек. Вы, наверное, слышали про стандарт EMV (Europay, MasterCard, Visa) — самый надежный на сегодняшний день? Он предполагает, что платежная информация хранится на защищенной микросхеме, которую практически невозможно взломать. Собственно, карты стандарта EMV в просторечии так и называют — карты с чипом.
По сути, Secure Element в вашем телефоне — это примерно тот же самый чип, что и в пластиковых картах. На нем работает отдельная операционная система (да, на банковских карточках тоже есть своя ОС, в которой работают свои программы). Вся необходимая информация записывается в память этого чипа, откуда ее нельзя ни прочитать, ни скопировать, — доступа к ней нет даже у родной ОС смартфона или планшета, не говоря уже об установленных в ней приложениях. А на самом Secure Element могут работать только специальные доверенные программы, например электронные кошельки, — и то не все.
Кошелек в телефоне — как все начиналось
Успех производителя iPhone привлек внимание его конкурентов, и в 2015 году аналогичный сервис появился у Samsung. Кстати, обе эти системы подразумевают использование встроенного чипа Secure Element (именно поэтому старые iPhone и недорогие модели Samsung не поддерживают бесконтактные платежи).
В попытке расширить спектр функций своих устройств корейцы даже приобрели компанию LoopPay — ту самую, что разработала систему мобильных платежей на основе магнитной ленты. А еще через несколько месяцев Google представила систему Android Pay (в начале 2018 года переименованную в Google Pay).
Secure Element — встроенный, внешний или даже облачный
На самом деле, Secure Element не обязательно должен быть встроен в смартфон. Его можно сделать съемным, например, в формате карты памяти. А некоторые сотовые операторы выпускают симки с возможностью хранить в них банковскую карточку или проездной. Но эти варианты так и не стали популярны.
Компания Google, в отличие от Apple или Samsung, производит в основном не сами мобильные устройства, а программное обеспечение для них. Поэтому ее собственная платежная система на начальном этапе столкнулась с некоторыми трудностями. В частности, в большинстве Android-смартфонов не было чипов Secure Element. Заставить независимых производителей установить защищенную микросхему компания не могла, заставить пользователей покупать какую-то экзотическую карточку — тоже. А без Secure Element реализовать бесконтактные платежи не получалось.
Сначала в Google попытались выйти из положения, разместив свое приложение-кошелек на симках с Secure Element, однако ведущие американские сотовые операторы — Verizon, At&T и T-Mobile — отказались сотрудничать с компанией, решив продвигать собственную программу, которая изначально называлась Isis Wallet, а потом была переименована в Softcard из политических соображений. Примечательно, что впоследствии эту систему приобрела Google, ради патентов.
Однако прежде, чем это случилось, в компании придумали более изящное решение проблемы. Раз в Android-смартфонах нет настоящих защищенных чипов — надо просто сделать виртуальные, разместив их у себя в облаке. Так и поступили. Эта технология получила имя Host Card Emulation (HCE).
Эксперты говорят, что технически использовать HCE менее безопасно, чем реальный Secure Element: чем больше данные странствуют по сети, тем больше шансов их перехватить. Однако технологией HCE предусмотрены дополнительные механизмы защиты, компенсирующие это слабое место, — например, в ней используются не постоянные платежные ключи, а временные, которые нельзя применить повторно.
Продолжение следует
Недавно мы приглашали владельцев HTC One принять участие в тестировании NFC платежей и теперь хотим поблагодарить всех, кто включился и поспособствовал развитию бесконтактных платежей в нашей стране. Сегодня приложение «Кошелек» уже стало доступно для всех владельцев HTC One и Philips Xenium W336 после обновления прошивки, а в ближайшее время им также смогут пользоваться обладатели HTC One Dual SIM, HTC One Max, HTC One SV, HTC Desire 500, HTC Desire 600 и Philips Xenium W8555.
В комментариях к предыдущему посту и хабродиалогах было много вопросов о том, как работает «Кошелек» и что нужно сделать, чтобы поместить в него банковскую карту или проездной билет, не снимая задней крышки телефона и не используя двухсторонний скотч. В данном посте я попробую ответить на эти вопросы и рассказать, как это работает.
Как устроены платежные карты
Платежная карта (смарт-карта) — это микропроцессор, помещенный в кусок пластика стандартизированного размера, который при контакте со считывателем получает достаточное для работы питание и запускает операционную систему с установленным в ней платежным приложением (чаще всего Java-applet в *nix-подобной операционной системе). Бесконтактные смарт-карты, которыми уже давно являются карты оплаты проезда в городском транспорте и стремительно становятся банковские карты (MasterCard PayPass, VISA PayWave), работают по тому же принципу, только питание получают от электромагнитного поля считывателя на кассе или турникете. Все бесконтактные банковские карты и подавляющее большинство транспортных объединяет стандарт ISO 14443.
Банк или транспортная компания закупают «болванки» карт и записывают на них свое приложение с «платежными данными» клиента. Этот процесс, называемый персонализацией, осуществляется в так называемых персобюро, которые могут быть как внутренними подразделениями поставщиков услуг, так и отдельными компаниями на рынке. В процессе персонализации данные на карте зашифровываются и закрываются ключами, что делает невозможным их изменение. Более того, архитектура современных смарт-карт позволяет на аппаратном уровне различать их состояние до и после персонализации, что полностью исключает возможность изменения (подделки), например, ваших платежных данных после того, как карта выпущена.
Эволюция карт от магнитной полосы (MagStripe) до смарт-карт с чипом (EMV) и бесконтактным интерфейсом (RFID) привела к тому, что форм-фактор карты перестал иметь значение. Это дает возможность использовать в качестве «носителя» карты любой объект: пластиковую карту, часы, браслет, стикер, брелок и, конечно же, смартфон.
Как устроены NFC-телефоны
NFC — это всего лишь технология беспроводной передачи данных. Такая же, как Bluetooth или WiFi, только работает на небольшом расстоянии и не очень высокой частоте (13,56 MHz), что является ее преимуществом, так как исключает вероятность «случайного» соединения.
В то же время NFC — это расширение существующего стандарта бесконтактных смарт-карт ISO 14443, который, как мы уже отметили, используется в современных банковских картах, пропусках в офис и на парковку, проездных билетах в метро, «Тройках» и «Подорожниках». Другими словами, стандарт NFC наследует весь стандарт ISO 14443, за счет чего реализуется 100% совместимость NFC-смартфонов, бесконтактных карт и существующей инфраструктуры приема.
В NFC-совместимом телефоне, чтобы он был полноценным NFC-устройством, кроме NFC-антенны и NFC-контроллера должен быть так называемый Secure Element — отдельный микропроцессор, подобный тому, что находится в пластиковых картах. Он и будет отвечать за безопасное хранение и выполнение платежных приложений (например, MasterCard Mobile PayPass). Secure Element может быть встроенным (установленным на материнской плате телефона) или находиться на отделяемом модуле: UICC SIM-карте или SD карте памяти.
Запись платежной карты в телефон
Если в телефоне с поддержкой NFC находится такой же микропроцессор, как и в пластиковых картах, вывод напрашивается сам собой — в телефон можно записывать такие же платежные приложения и прикосновением телефона к считывателю осуществлять такие же бесконтактные платежи.
Первую попытку поместить карту в телефон в РФ осуществили сотовые операторы, например, «МТС» и банк «Русский Стандарт», «Мегафон» и транспортная карта в г. Екатеринбург, «Билайн» и транспортная карта в г. Казань и т.п. Для этого им потребовалось закупить партию специальных UICC SIM-карт с Secure Element, договориться с банком или транспортной компанией о предварительной записи туда платежного или транспортного приложения, отвезти SIM-карты в персобюро для осуществления привычного в отрасли процесса «контактной персонализации», а потом обменивать старые SIM-карты абонентов на новые в центрах обслуживания.
Да, поместить карту в телефон таким образом можно, и это работает. Но что делать, если вам нужен другой банк? Или транспортная компания в другом городе? А может, в двух городах? SIM-карте придется как следует попутешествовать по всем инстанциям перед попаданием в ваши руки, а сотовому оператору — договориться со всеми этими компаниями. При этом для перевыпуска банковской карты, например, по причине окончания срока действия, операцию придется повторить.
Удаленная персонализация и платформа TSM
К счастью, в отличие от пластиковой карточки, телефон является интерактивным устройством, которое всегда на связи (будь то Wi-Fi или сотовая сеть), а значит записывать в него карточки можно, во-первых, удаленно, а во-вторых, только тех поставщиков услуг, которые нужны именно вам. Для осуществления этой функции была сформулирована роль TSM (Trusted Service Manager) — доверенного посредника, объединяющего, с одной стороны, поставщиков услуг (банки, транспорт и т.д.), а с другой — чипы Secure Element во всех их формах. Именно такую платформу TSM мы разработали в компании i-Free и сертифицировали на соответствие всем необходимым стандартам.
Основные функции TSM:
-
Агрегация различных поставщиков услуг. Банк или другой поставщик услуг подключается к TSM по стандартному протоколу и получает доступ ко множеству Secure Element, т.е. получает возможность выпускать карты для множества пользователей. При этом ему не нужно договариваться отдельно с каждым сотовым оператором или с каждым производителем телефонов. Эту часть TSM называют SP TSM (Service Provider TSM).
Как работает платформа TSM
Платформа TSM обеспечивает удаленное управление чипами Secure Element в телефонах пользователей через безопасный канал связи. По указанию поставщика услуги TSM записывает (или удаляет, например, в случае утери смартфона) персонализационные данные карты в Secure Element телефона, используя сам телефон исключительно как модем. Кроме того, платформа позволяет сервис-провайдерам удаленно «заглянуть» в данные выпущенных ими карт, например, для проведения аудита или отображения на экране телефона актуального баланса по картам оплаты проезда или картам лояльности (если остаток хранится на карте).
Ключи от Secure Element хранятся на узкоспециализированных серверах HSM (Hardware Security Module), являющихся неотъемлемой частью платформы TSM. Без участия последнего получить доступ к чипу невозможно — точно по такому принципу работает индустрия пластиковых карт, только ключи находятся в ведении банка или транспортной компании, выпустившей карту.
Какой именно картой оплачивать покупку, выбирает пользователь через приложение «Кошелек», которое отображает выпущенные и доступные для выпуска карты, а также принимает заявки на выпуск новых карт. Заявка отправляется к поставщику услуги, который вместо записи платежных данных на пластиковую карту, передает эти данные через TSM в Secure Element телефона.
Пользовательское приложение
Приложение «Кошелек» работает в операционной системе телефона, которая по определению не является безопасной, и, соответственно, «Кошелек» не несет в себе никаких функций, связанных с безопасностью. Основная роль приложения, кроме демонстрации выпущенных и доступных к выпуску карт, заключается в обеспечении канала связи между Secure Element и TSM, а также предоставлении пользователю интерактивных интерфейсов к приложениям (картам), загруженным в Secure Element.
В большинстве случаев, если приложение «Кошелек» использует встроенный в телефоны Secure Element, то зачастую нет смысла выкладывать его в Google.Play, так как партнерство с производителями телефонов обеспечивает важное преимущество: производитель предустанавливает пользовательское приложение в телефон вместе с прошивкой, его не нужно продвигать, не нужно скачивать или устанавливать — оно уже в телефоне — такое же родное, как «Калькулятор».
Любая карта в любом телефоне
Для превращения телефона в банковскую карту TSM должен получить доступ к Secure Element либо от производителя этого телефона, либо от владельца SIM-карты (сотового оператора). Так как платежные карты в телефон не переносятся и не «привязываются» (иначе они будут считаться «дубликатами»), а выпускаются заново, то для выпуска в телефон банковской карты какого-либо банка этот банк должен подключиться к TSM.
Таким образом, любую карту в любой телефон выпустить пока не получится, но движение в этом направлении уже идет, и всем участникам рынка очевидно, что это закономерный эволюционный шаг. В этом заинтересованы и производители телефонов (новая функциональность, которая покруче лишнего мегапикселя в камере), и сотовые операторы (примерно по той же причине), и поставщики услуг (новая аудитория и канал продаж с интерактивным взаимодействием), и пользователи (уставшие от множества различных пластиковых карточек).
Сегодня в «Кошельке» можно выпустить банковскую карту «ТКС Банка», до конца года будет доступна также оплата проезда в транспорте: в качестве пилотной зоны стартуют города Вологда и Чебоксары. В следующем году доступных для выпуска карт станет значительно больше. Бесконтактных вам впечатлений!
В прошлый раз я рассказывал краткую историю технологии мобильных платежей с применением Secure Element (SE). Сегодня расскажу, как эта технология работает.
Давайте вспомним, зачем вообще нужен этот Secure Element, почему вокруг него было столько ажиотажа. Да, это как бы кусочек пластиковой карты (главная ее часть), но чем он таким занимается? В принципе, я много об этом писал, но повторить не помешает, repetitio est mater studiorum (не зря же я в детстве заучивал несколько латинских фраз).
Итак, чип пластиковой карты (и чип Secure Element) устроен так, что данные туда записать можно, а вытащить - нельзя. Ниппель. В смысле, какие-то данные он наружу выдает, конечно же, но - строго осмысленные. Так что если вы захотите записать в него PIN-код, то это можно сделать довольно-таки смело: наружу он потом этот код не отдаст даже под пытками. Более того, если чип заподозрит, что его пытаются взломать, он может необратимо заблокироваться. Вполне себе такой сейф.
Если требуется проверить PIN, так вы просто отправляйте ему комманду: "дорогой чип, проверь, пожалуйста, подходит ли тебе PIN 1234?". И он в ответ скажет, подошло или нет. А если вы несколько раз подряд спросите неверный PIN - он через сколько-то попыток заблокируется. Ну не весь, только платежное приложение на нем. Так что подобрать перебором не выйдет, чип не дурак. Т.е. внутри себя он хранит много какой информации, бОльшая часть которой недоступна извне. И внутри себя умеет использовать эту информацию, как того требует процедура проверки, электронной подписи, шифрования и т.д.
Чтобы записать в этот чип какое-то приложение, надо предъявить чипу управляющий ключ, который туда попал, если кратко, при его производстве, и этот ключ производитель секретно передает эмитенту (банку в случае с банковской картой, оператору сотовой связи в случае с симкой или производителю телефона в случае с embedded SE). В чип записывается в итоге платежное приложение, с помощью которого происходят платежные транзакции. Однако одного приложения мало, для работы ему еще нужны ключи, с помощью которых рассчитываются криптограммы для транзакционных запросо. Эти ключи туда тоже помещает издатель (банк). Их тоже просто так не запишешь, надо управляющий ключ чипу предъявить.
В общем, очень продуманная штука, реально цифровой мини-сейф. Вот такой чип в виде специальной SIM-карты, или в виде встроенного на плату Secure Element, или в виде комбинированной MicroSD-SE карты и находится в телефоне.
Чтобы ваш телефон стал "банковской картой", надо установить платежное приложение с необходимыми настройками и записать ключи банка-издателя (предъявив управляющий ключ). А в нашем случае есть много контор, у кого этот управляющий ключ может быть. Если у нас смартфон со встроенным SE - то ключ есть у производителя телефона. Если у нас SIM-centric решение, то ключ - у сотового оператора. Если у нас специальная MicroSD-SE - то ключ у производителя этой карты.
Нда. Сложновато выстраивать бизнесс-процессы. Причем каждая из этих контор просто так не позволит записывать ваши приложения и ключи, они хотят денег. И как я говорил, рынок не выдержал такой сложности. Кроме одной экосистемы.
Экосистема Apple - это та система, где такое решение прижилось, что совершенно не удивительно. Потому что это очень закрытая экосистема, полностью контроллируемая одним вендором. Тут даже близко нет такого разнообразия решений, как есть на других мобильных платформах. Если прибавить к этому достаточно жесткую политику Apple по контролю над софтом их смартфонов, то неожиданно получается довольно управляемая платформа. При всем моем неприятии многих ценностей этой платформы, не могу не оценить преимущества, которые в данном случае имеются.
Именно поэтому единственной достаточно масштабной системой, построенной вокруг Secure Element, был и остается Apple. Он же был пионером на рынке платежей с помощью смартфонов. Остальной игрок подтянулся немного позже.
Кстати, в часах - отдельный Secure Element.
Итак, на ваш смартфон надо записать данные вашей пластиковой карты, и тогда смартфон сможет прикинуться картой.
"Добавление" карты в телефон на любой платформе - интересный и многоступенчатый процесс, который заслуживает отдельного поста (а может быть, и нескольких), и мы сейчас в деталях его разбирать не будем. Главное, что после этого самого процесса в Secure Element телефона (независимо от конкретной платформы) оказывается некий токен и ключи для платежного приложения.
Токен с т.зр. терминала очень похож на платежную карту, это номер вроде PAN, и обрабатывается он практически так же, за исключением некоторых деталей, о которых я тоже расскажу в другой части. Если не придираться к подробностям, то теримнал не видит разницы между приложенной к нему бесконтактной картой и телефоном.
Транзакционный запрос должен быть подписана криптограммой, а для этого используются ключи, находящиеся в Secure Element. Точно так же, как бесконтактная карта подписывает запрос ключами, находящимися в ее чипе.
Обратите внимание, все это время я говорю о некоем платежном приложении, которое находится в самом чипе Secure Element. Пользователь с ним напрямую не взаимодействует, и, чаще всего даже не догадывается о его существовании. Взаимодействуем мы с приложением на самом телефоне, которое выполняется на операционной системе телефона. А вот уже это телефонное приложение умеет немного взаимодействовать с Secure Element (например, предъявлять ему результаты проверки пользователя - пароля там или отпечатка пальца).
В итоге у вас получается так, что все необходимое для формирования и подписи транзакционного запроса есть на борту телефона. И для этой работы ему не нужен не только интернет, но даже и подключение к сотовой сети.
Один из режимов работы NFC-контроллера - эмуляция карты, и платеж как раз проходит в этом режиме.
Кассир вводит сумму, считыватель включает электромагнитное поле, передавая запрос на считывание. Вы подносите телефон, и телефон "слышит" запрос с помощью NFC-контроллера, который включен в режим эмуляции карты. Между терминалом и NFC-контроллером происходит диалог, как если бы вместо телефона была обычная бесконтактная карта. В какой-то момент приложение в Secure Element подписывает транзакционный запрос спрятанными в чипе ключами и выдает через NFC-контроллер подписанный запрос терминалу. Терминал, если не брать во внимание пару деталей, даже не понимает, что перед ним не карта, а телефон.
Дальше запрос передается в банк-эквайер, и. дальше похоже на обычный путь транзакции , за исключением того, что в один момент вместо токена появляется оригинальный PAN вашей карты. Но это мы в другой раз разберем.
В общем, тут вообще не надо, чтобы телефон был подключен к интернету или даже вообще сеть ловил. Все необходимое есть в Secure Element.
Телефон с NFC и Secure Element теоретически может быть даже выключен: бесконтактной карте достаточно наведенного поля считывателя теримнала, чтобы включиться и ответить. Так и NFC-контроллер теоретически может работать без всего остального телефона, взаимодействуя напрямую с Secure Element. Это один из режимов работы NFC-контроллера.
Но так сейчас не делают - несекьюрно, поэтому севшим телефоном расплатиться все-таки не выйдет. Что ж поделать. У всего в этом мире есть цена.
Подытожим
Наличие на борту телефона Secure Element делает его независимым от сетевого подключения, и вообще говоря, является самым защищенным решением во всех технологиях токенизации. Но благодаря обилию мобильных платформ, полноценно это прижилось только в экосистеме Apple. А в остальных экосистемах есть менее надежный, но более универсальный способ обойтись без Secure Element, о чем и начнем говорить в следующий раз .
Существует масса способов защитить данные, хранящиеся в памяти смартфона, от раскрытия или утечки, однако основными всё-таки являются пароли, биометрия и шифрование. Первые блокируют доступ к устройству перед посторонними, вторая позволяет владельцу не вводить при каждом входе защитные комбинации, а третье направлено на защиту от перехвата или попыток обойти пароль. Но почему-то практически никто не думает о том, что и пароли, и биометрию, и даже ключи шифрования тоже нужно как-то защитить, а плодить сущности, пытаясь защитить одно другим, в этом деле совершенно бессмысленно. Поэтому Samsung пошла по пути Apple, которая съела собаку на обеспечении безопасности своих пользователей.
Samsung заботится о вашей безопасности. Но о безопасности владельцев Galaxy S20 она заботится больше
Galaxy S20 стал первым смартфоном Samsung, который получил выделенный сопроцессор Secure Element, предназначенный для безопасного хранения паролей, платёжных данных, биометрии и криптовалютных аккаунтов. В его основе лежит микросхема безопасности S3K250AF. Сомневаюсь, что вам о чём-либо говорить это сочетание цифр и букв, поэтому просто скажу, что эта микросхема прошла все необходимые проверки и получила сертификат о самом высоком уровне защиты данных среди мобильных устройств. У Apple есть аналогичный сопроцессор, который называется Secure Enclave, правда, оценивал ли кто-то его по такому же принципу, как Secure Element, неизвестно.
Что такое Secure Element
Galaxy S20 стал почти таким же защищённым, как iPhone
Secure Element – это комплексный компонент, который отвечает не только за безопасное хранение данных, но и противодействие разного рода атакам, эффективно распознавая их и блокируя в автоматическом режиме. По сути, он представляет собой аппаратный аналог программной технологии Knox, применяемой во всех смартфонах и планшетах Samsung, за тем лишь исключением, что он не просто шифрует конфиденциальные сведения, но и создаёт для них отдельный раздел в памяти, получить доступ к которому будет ещё сложнее, чем взломать алгоритмы Knox.
Samsung Knox – это специальное ПО для мобильных устройств Samsung, направленное на безопасное хранение личной и корпоративной информации, обеспечивая их шифрование. Кроме того, Knox выступает в качестве электронного предохранителя, который блокирует часть функций смартфона в случае получения root-прав. С этого момента пользователь больше не сможет оплачивать покупки через Samsung Pay, а также обращаться к данным, хранящимся в безопасном пространстве Knox, что в свою очередь может служить причиной для отказа в гарантийном обслуживании.
Как производители защищают свои смартфоны
Несмотря на то что необходимость в безопасном хранении конфиденциальных данных и биометрической информации существует уже давно, до настоящего момента только некоторые производители уделяли внимание этому аспекту. В число наиболее известных вендоров, которые обеспечивали защиту своих устройств при помощи выделенного сопроцессора, входят Apple и Google. А вот остальные в большинстве своём ограничивались только программной реализацией безопасного хранилища, предпочитая не раскошеливаться на выделенный аппаратный компонент.
Не берусь судить, насколько в реальности совершенен механизм Secure Element, но со стопроцентной уверенностью могу сказать, что от собственной глупости и халатности он вас не защитит. Возможно, он действительно убережёт образ вашего отпечатка и пароли доступа к аккаунтам от кражи, но если вы самостоятельно установите на устройство вредоносную программу и раздадите ей все запрошенные привилегии, будьте готовы к тому, что все SMS, звонки, фотографии и прочая информация легко и просто окажутся в руках злоумышленников, и никакие аппаратные датчики вас от этого не защитят.
Читайте также: