SlideShare une entreprise Scribd logo
1  sur  41
Android как основа
для реализации
мобильного паспорта
Дмитрий Шорин
dsh@kvelka.com
О чем будет этот доклад...
• Поговорим о том, что такое биометрический паспорт
• Объясним, зачем мы этим занялись
• Разберем, как решить поставленную задачу
• Рассмотрим обзорно другие потенциальные области применения
Что такое паспорт и что мы о нем знаем?
Паспорт – это персональный идентификационный
документ, содержащий биометрические данные
владельца, применяющийся с целью
установления инспектирующими органами
личности предъявляющего.
Зачем нам знать про эти стандарты?
ISO/IEC 14443 – это базовый интерфейс технологии NFC.
ISO/IEC 7816 – это базовая технология интеллектуальных карт (smart
cards).
Причем же здесь Android?
Android, NFC и Host based Card Emulation…
Начиная в версии 4.4 KitKat (API level 19),
в Android появлятеся поддержка такой
функциональности, как Host based Card
Emulation (HCE).
Как мы к этому пришли....
Как мы распознали тенденцию....
Мы видим, что устройства на Android стали заменять нам
привычные монофункциональные вещи...
NFC HCE взамен интеллектуальных карт...
Все наверняка слышали об AndriodPay, ApplePay, SamsungPay и т.д.
P<UTOTOLSTOY<<LEO<<<<<<<<<<<<<<<<<<<<<<<<<<<
1234567897RUS2808288M2601010<<<<<<<<<<<<<<<4
Issuing Country: Utopia
Nationality: Russian
Surname: TOLSTOY
Name: LEO
Sex: Male
Date of Birth: 28/08/28
Validity Date: 26/01/01
Тот же самый подход, только для ID...
Так нам пришла в голову идея реализации идентификационного
документа на персональном мобильном устройстве.
Что не так в существующих паспортах?
• Паспорт изготавливается и выдается в течение 4-х недель и
требует посещения авторизованных органов минимум два раза
• Все больше и больше стран переходит на электронные визы
• При посещении некоторых стран иногда приходится иметь два
паспорта
Как и где это может применяться?
• Альтернатива существующим паспортам
• В качестве национального идентификационного удостоверения
• Как водительское удостоверение
• Средство контроля доступа
• Удостоверение болельщика ЧМ-2018
и т.д.
Как выглядит использование HCE...
https://developer.android.com/guide/topics/connectivity/nfc/hce.html
import android.nfc.cardemulation.HostApduService;
public class MyHostApduService extends HostApduService {
@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
...
}
@Override
public void onDeactivated(int reason) {
...
}
}
Как выглядит использование HCE...
https://developer.android.com/guide/topics/connectivity/nfc/hce.html
import android.nfc.cardemulation.HostApduService;
public class MyHostApduService extends HostApduService {
@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
...
}
@Override
public void onDeactivated(int reason) {
...
}
}
Реализовать класс, наследующий
HostApduService
Как выглядит использование HCE...
Затем прописать этот класс сервис в манифесте...
<service android:name=".MyHostApduService" android:exported="true"
android:permission="android.permission.BIND_NFC_SERVICE">
<intent-filter>
<action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
</intent-filter>
<meta-data android:name="android.nfc.cardemulation.host_apdu_service"
android:resource="@xml/apduservice"/>
</service>
Как выглядит использование HCE...
Затем прописать этот класс сервис в манифесте...
<service android:name=".MyHostApduService" android:exported="true"
android:permission="android.permission.BIND_NFC_SERVICE">
<intent-filter>
<action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
</intent-filter>
<meta-data android:name="android.nfc.cardemulation.host_apdu_service"
android:resource="@xml/apduservice"/>
</service>
Имя созданного класса
Как выглядит использование HCE...
Затем прописать этот класс сервис в манифесте...
<service android:name=".MyHostApduService" android:exported="true"
android:permission="android.permission.BIND_NFC_SERVICE">
<intent-filter>
<action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
</intent-filter>
<meta-data android:name="android.nfc.cardemulation.host_apdu_service"
android:resource="@xml/apduservice"/>
</service>
Системное разрешение для
использования в качестве
сервиса NFC
Как выглядит использование HCE...
Затем прописать этот класс сервис в манифесте...
<service android:name=".MyHostApduService" android:exported="true"
android:permission="android.permission.BIND_NFC_SERVICE">
<intent-filter>
<action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
</intent-filter>
<meta-data android:name="android.nfc.cardemulation.host_apdu_service"
android:resource="@xml/apduservice"/>
</service>
Индикатор обработчика события
приема комманд, адресованных
эмулируемой интеллектуальной карте
Как выглядит использование HCE...
Затем прописать этот класс сервис в манифесте...
<service android:name=".MyHostApduService" android:exported="true"
android:permission="android.permission.BIND_NFC_SERVICE">
<intent-filter>
<action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
</intent-filter>
<meta-data android:name="android.nfc.cardemulation.host_apdu_service"
android:resource="@xml/apduservice"/>
</service>
Метаданные, содержащие правила
доступа к приложению
Как выглядит использование HCE...
apduservice.xml выглядит так:
<host-apdu-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/servicedesc"
android:requireDeviceUnlock="false">
<aid-group android:description="@string/aiddescription"
android:category="other">
<aid-filter android:name="F0010203040506"/>
<aid-filter android:name="A0000002471001"/>
</aid-group>
</host-apdu-service>
Как выглядит использование HCE...
apduservice.xml выглядит так:
<host-apdu-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/servicedesc"
android:requireDeviceUnlock="false">
<aid-group android:description="@string/aiddescription"
android:category="other">
<aid-filter android:name="F0010203040506"/>
<aid-filter android:name="A0000002471001"/>
</aid-group>
</host-apdu-service>
Утвержденный стандартизацией
идентификатор паспортного
приложения
Android Java и Java Card
Существует технология реализации
приложений для интеллектуальных карт на
языке Java под названием Java Card.
Окружение, эмулирующее Java Card для Android, как например:
• jCardSim https://jcardsim.org
• ACardEmulator
https://github.com/frankmorgner/vsmartcard/tree/master/ACardEmul
ator
Промежуточный итог...
Итак, мы обсудили тенденцию, при которой монофункциональные
интеллектуальные карты, замещаются многофункциоальными
мобильными устройствами, способными их эмулировать. Таким
образом, мы показали техническую реализуемость такой
миграции.
Что же сдерживает технический прогресс?
Чем интеллектуальные карты лучше?
Почему безопасность важна?
Первый блин – комом...или опять неудача?
Плюсы:
• Паспорт работает назависимо от того есть ли покрытие сотовой
сети
• Персонализируется через бесконтактный интерфейс
• Подтверждает концепцию
Минусы:
• Сертификация на безопасность невозможна в виду уязвимости
Android и NFC HCE API, не нонсенс ли?..
Если Android небезопасна, то зачем NFC HCE API?
Посмотрим на опыт ApplePay и SamsungPay
Приложение APK Приложение в SE
Что такое Secure Element?
Secure Element (SE) – микросхема аналогичная интеллектуальной
карте, встраиваемая в мобильное устройство. Существуют SE,
поддерживающие технологию Java Card.
https://www.globalplatform.org/mediaguideSE.asp
http://simalliance.org/se/se-educational-resources/
Plan B: Паспорт на SE
Плюсы:
• Паспорт работает назависимо от того есть ли покрытие сотовой сети
• Персонализируется через SEAC и OMAPI в том числе и удаленно
• Может быть сертифицирован на требования безопасности
Минусы:
• Необходимы взаимоотношения с производителями мобильных
устройств
Что такое TEE и как оно может помочь?
TEE – это Trusted Execution Environment, технология, предоставляющая
приложению защищенное, изолированное пространство в памяти
ПЗУ/ОЗУ, а также внутри процессора, гарантируя безопасное
исполнения кода и целостность данных.
https://trustedcomputinggroup.org/work-groups/trusted-platform-module/
https://www.globalplatform.org/mediaguidetee.asp
Существующие реализации TEE…
• ARM TrustZone
• Intel Trusted Execution Technology
• AMD Secure Technology (based of ARM TrustZone)
• Trustonic
• Trusty TEE for Android
• FAMOCO Secure Android OS (единственное доступное решение на
рынке мобильных устройств)
https://en.wikipedia.org/wiki/Trusted_execution_environment
Паспорт в TEE
Плюсы:
• Паспорт работает назависимо от того есть ли покрытие сотовой сети
• Может быть сертифицирован на требования безопасности
• Перспективная технология
Минусы:
• Малая популярность
• Не разработаны методики проведения сертификации на безопасность
Опять тупик? Или посмотрим шире....
Паспорт в облаке
NFC
NFCHTTPS
разве не так поступил Google при реализации своего AndroidPay?..
Паспорт в облаке
Плюсы:
• Облачное решение может быть сертифицировано на требования
безопасности
• Персонализация клиентского приложения не требуется, все данные в базе
данных в облаке
• Единственная возможность развертывания, будучи независимым от
производителей устройств
Минусы:
• Паспорт работает только при покрытии сотовой сети
Подытог
Мы рассмотрели четыре различных подхода реализации паспортного
приложения на мобильном устройстве и провели анализ плюсов и минусов:
• Паспорт как приложение APK из Play Market
-> не отвечает требованиям безопасности
• Паспорт на SE
-> требуется авторизация производителем мобильного устройства
• Паспорт в TEE
-> технология недоступна для массового рынка
• Паспорт в облаке
-> способно решить аспекты безопасности, но будет работать только при доступе в
сеть
Если не паспорт, то что? Зачем нам HCE?
Ответ вытекает из анализа областей, в которых используются
интеллектуальные карты:
• Платежи
• Карты лояльности
• Модули ЭЦП
• Медицинские карты
• Транспортные карты
• Удостоверения, несовместимые со стандартами паспорта ICAO
HCE: Android vs iOS
Операционная система iOS не предоставляет API для работы с HCE
Выводы
Несмотря на открытые вопросы в отношении аспектов безопасности,
на сегодняшний день Android единственная операционная система,
предоставляющая HCE API независимым разработчикам.
Давайте поблагодарим ее за это!
Благодарю за внимание!
Дмитрий Шорин dsh@kvelka.com

Contenu connexe

Similaire à Android как основа для реализации мобильного паспорта / Дмитрий Шорин (ООО Квелка)

Обзор новых возможностей Contact Center Enterprise версии 10
Обзор новых возможностей Contact Center Enterprise версии 10 Обзор новых возможностей Contact Center Enterprise версии 10
Обзор новых возможностей Contact Center Enterprise версии 10 Cisco Russia
 
Платформа для Интернета вещей AggreGate
Платформа для Интернета вещей AggreGateПлатформа для Интернета вещей AggreGate
Платформа для Интернета вещей AggreGateTibbo
 
Локализация производства продукции компании Cisco на территории России. Расши...
Локализация производства продукции компании Cisco на территории России. Расши...Локализация производства продукции компании Cisco на территории России. Расши...
Локализация производства продукции компании Cisco на территории России. Расши...Cisco Russia
 
S-terra: Защита корпоративной среды
S-terra: Защита корпоративной средыS-terra: Защита корпоративной среды
S-terra: Защита корпоративной средыExpolink
 
VIT company profile (ru)
VIT company profile (ru)VIT company profile (ru)
VIT company profile (ru)VIT
 
Почему утекает конфиденциальная информация в госорганах?
Почему утекает конфиденциальная информация в госорганах?Почему утекает конфиденциальная информация в госорганах?
Почему утекает конфиденциальная информация в госорганах?Aleksey Lukatskiy
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераCisco Russia
 
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...Mail.ru Group
 
еще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийеще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийsnowytoxa
 
Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметраCisco Russia
 
Обзор мобильной платформы Bada
Обзор мобильной платформы BadaОбзор мобильной платформы Bada
Обзор мобильной платформы BadaEugene Mokeev
 
Защита корпоративной сети. От продуктов к решению.
Защита корпоративной сети. От продуктов к решению.Защита корпоративной сети. От продуктов к решению.
Защита корпоративной сети. От продуктов к решению.Expolink
 
Инструкция по настройке сервиса Daas на базе планшета android
Инструкция по настройке сервиса  Daas на базе планшета androidИнструкция по настройке сервиса  Daas на базе планшета android
Инструкция по настройке сервиса Daas на базе планшета androidЕлена Кузовкина
 
Визуализация взломов в собственной сети
Визуализация взломов в собственной сетиВизуализация взломов в собственной сети
Визуализация взломов в собственной сетиDenis Batrankov, CISSP
 
Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Illya Klymov
 
Обеспечение и контроль качества услуг
Обеспечение и контроль качества услугОбеспечение и контроль качества услуг
Обеспечение и контроль качества услугCisco Russia
 
S-Terra. Глеб Клименко, Александр Веселов "Защита корпоративной сети. От прод...
S-Terra. Глеб Клименко, Александр Веселов "Защита корпоративной сети. От прод...S-Terra. Глеб Клименко, Александр Веселов "Защита корпоративной сети. От прод...
S-Terra. Глеб Клименко, Александр Веселов "Защита корпоративной сети. От прод...Expolink
 
СЭД, которой можно доверять
СЭД, которой можно доверятьСЭД, которой можно доверять
СЭД, которой можно доверятьИнтерТраст
 

Similaire à Android как основа для реализации мобильного паспорта / Дмитрий Шорин (ООО Квелка) (20)

12 25 kin_nedap
12 25 kin_nedap12 25 kin_nedap
12 25 kin_nedap
 
Обзор новых возможностей Contact Center Enterprise версии 10
Обзор новых возможностей Contact Center Enterprise версии 10 Обзор новых возможностей Contact Center Enterprise версии 10
Обзор новых возможностей Contact Center Enterprise версии 10
 
Платформа для Интернета вещей AggreGate
Платформа для Интернета вещей AggreGateПлатформа для Интернета вещей AggreGate
Платформа для Интернета вещей AggreGate
 
Локализация производства продукции компании Cisco на территории России. Расши...
Локализация производства продукции компании Cisco на территории России. Расши...Локализация производства продукции компании Cisco на территории России. Расши...
Локализация производства продукции компании Cisco на территории России. Расши...
 
S-terra: Защита корпоративной среды
S-terra: Защита корпоративной средыS-terra: Защита корпоративной среды
S-terra: Защита корпоративной среды
 
VIT company profile (ru)
VIT company profile (ru)VIT company profile (ru)
VIT company profile (ru)
 
Why secrets leak
Why secrets leakWhy secrets leak
Why secrets leak
 
Почему утекает конфиденциальная информация в госорганах?
Почему утекает конфиденциальная информация в госорганах?Почему утекает конфиденциальная информация в госорганах?
Почему утекает конфиденциальная информация в госорганах?
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
 
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
 
еще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийеще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложений
 
Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметра
 
Обзор мобильной платформы Bada
Обзор мобильной платформы BadaОбзор мобильной платформы Bada
Обзор мобильной платформы Bada
 
Защита корпоративной сети. От продуктов к решению.
Защита корпоративной сети. От продуктов к решению.Защита корпоративной сети. От продуктов к решению.
Защита корпоративной сети. От продуктов к решению.
 
Инструкция по настройке сервиса Daas на базе планшета android
Инструкция по настройке сервиса  Daas на базе планшета androidИнструкция по настройке сервиса  Daas на базе планшета android
Инструкция по настройке сервиса Daas на базе планшета android
 
Визуализация взломов в собственной сети
Визуализация взломов в собственной сетиВизуализация взломов в собственной сети
Визуализация взломов в собственной сети
 
Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1
 
Обеспечение и контроль качества услуг
Обеспечение и контроль качества услугОбеспечение и контроль качества услуг
Обеспечение и контроль качества услуг
 
S-Terra. Глеб Клименко, Александр Веселов "Защита корпоративной сети. От прод...
S-Terra. Глеб Клименко, Александр Веселов "Защита корпоративной сети. От прод...S-Terra. Глеб Клименко, Александр Веселов "Защита корпоративной сети. От прод...
S-Terra. Глеб Клименко, Александр Веселов "Защита корпоративной сети. От прод...
 
СЭД, которой можно доверять
СЭД, которой можно доверятьСЭД, которой можно доверять
СЭД, которой можно доверять
 

Plus de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Plus de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Android как основа для реализации мобильного паспорта / Дмитрий Шорин (ООО Квелка)

  • 1. Android как основа для реализации мобильного паспорта Дмитрий Шорин dsh@kvelka.com
  • 2. О чем будет этот доклад... • Поговорим о том, что такое биометрический паспорт • Объясним, зачем мы этим занялись • Разберем, как решить поставленную задачу • Рассмотрим обзорно другие потенциальные области применения
  • 3. Что такое паспорт и что мы о нем знаем? Паспорт – это персональный идентификационный документ, содержащий биометрические данные владельца, применяющийся с целью установления инспектирующими органами личности предъявляющего.
  • 4. Зачем нам знать про эти стандарты? ISO/IEC 14443 – это базовый интерфейс технологии NFC. ISO/IEC 7816 – это базовая технология интеллектуальных карт (smart cards).
  • 6. Android, NFC и Host based Card Emulation… Начиная в версии 4.4 KitKat (API level 19), в Android появлятеся поддержка такой функциональности, как Host based Card Emulation (HCE).
  • 7. Как мы к этому пришли....
  • 8. Как мы распознали тенденцию.... Мы видим, что устройства на Android стали заменять нам привычные монофункциональные вещи...
  • 9. NFC HCE взамен интеллектуальных карт... Все наверняка слышали об AndriodPay, ApplePay, SamsungPay и т.д.
  • 10. P<UTOTOLSTOY<<LEO<<<<<<<<<<<<<<<<<<<<<<<<<<< 1234567897RUS2808288M2601010<<<<<<<<<<<<<<<4 Issuing Country: Utopia Nationality: Russian Surname: TOLSTOY Name: LEO Sex: Male Date of Birth: 28/08/28 Validity Date: 26/01/01 Тот же самый подход, только для ID... Так нам пришла в голову идея реализации идентификационного документа на персональном мобильном устройстве.
  • 11. Что не так в существующих паспортах? • Паспорт изготавливается и выдается в течение 4-х недель и требует посещения авторизованных органов минимум два раза • Все больше и больше стран переходит на электронные визы • При посещении некоторых стран иногда приходится иметь два паспорта
  • 12. Как и где это может применяться? • Альтернатива существующим паспортам • В качестве национального идентификационного удостоверения • Как водительское удостоверение • Средство контроля доступа • Удостоверение болельщика ЧМ-2018 и т.д.
  • 13. Как выглядит использование HCE... https://developer.android.com/guide/topics/connectivity/nfc/hce.html import android.nfc.cardemulation.HostApduService; public class MyHostApduService extends HostApduService { @Override public byte[] processCommandApdu(byte[] apdu, Bundle extras) { ... } @Override public void onDeactivated(int reason) { ... } }
  • 14. Как выглядит использование HCE... https://developer.android.com/guide/topics/connectivity/nfc/hce.html import android.nfc.cardemulation.HostApduService; public class MyHostApduService extends HostApduService { @Override public byte[] processCommandApdu(byte[] apdu, Bundle extras) { ... } @Override public void onDeactivated(int reason) { ... } } Реализовать класс, наследующий HostApduService
  • 15. Как выглядит использование HCE... Затем прописать этот класс сервис в манифесте... <service android:name=".MyHostApduService" android:exported="true" android:permission="android.permission.BIND_NFC_SERVICE"> <intent-filter> <action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> </intent-filter> <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice"/> </service>
  • 16. Как выглядит использование HCE... Затем прописать этот класс сервис в манифесте... <service android:name=".MyHostApduService" android:exported="true" android:permission="android.permission.BIND_NFC_SERVICE"> <intent-filter> <action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> </intent-filter> <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice"/> </service> Имя созданного класса
  • 17. Как выглядит использование HCE... Затем прописать этот класс сервис в манифесте... <service android:name=".MyHostApduService" android:exported="true" android:permission="android.permission.BIND_NFC_SERVICE"> <intent-filter> <action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> </intent-filter> <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice"/> </service> Системное разрешение для использования в качестве сервиса NFC
  • 18. Как выглядит использование HCE... Затем прописать этот класс сервис в манифесте... <service android:name=".MyHostApduService" android:exported="true" android:permission="android.permission.BIND_NFC_SERVICE"> <intent-filter> <action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> </intent-filter> <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice"/> </service> Индикатор обработчика события приема комманд, адресованных эмулируемой интеллектуальной карте
  • 19. Как выглядит использование HCE... Затем прописать этот класс сервис в манифесте... <service android:name=".MyHostApduService" android:exported="true" android:permission="android.permission.BIND_NFC_SERVICE"> <intent-filter> <action ndroid:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> </intent-filter> <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice"/> </service> Метаданные, содержащие правила доступа к приложению
  • 20. Как выглядит использование HCE... apduservice.xml выглядит так: <host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/servicedesc" android:requireDeviceUnlock="false"> <aid-group android:description="@string/aiddescription" android:category="other"> <aid-filter android:name="F0010203040506"/> <aid-filter android:name="A0000002471001"/> </aid-group> </host-apdu-service>
  • 21. Как выглядит использование HCE... apduservice.xml выглядит так: <host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/servicedesc" android:requireDeviceUnlock="false"> <aid-group android:description="@string/aiddescription" android:category="other"> <aid-filter android:name="F0010203040506"/> <aid-filter android:name="A0000002471001"/> </aid-group> </host-apdu-service> Утвержденный стандартизацией идентификатор паспортного приложения
  • 22. Android Java и Java Card Существует технология реализации приложений для интеллектуальных карт на языке Java под названием Java Card. Окружение, эмулирующее Java Card для Android, как например: • jCardSim https://jcardsim.org • ACardEmulator https://github.com/frankmorgner/vsmartcard/tree/master/ACardEmul ator
  • 23. Промежуточный итог... Итак, мы обсудили тенденцию, при которой монофункциональные интеллектуальные карты, замещаются многофункциоальными мобильными устройствами, способными их эмулировать. Таким образом, мы показали техническую реализуемость такой миграции. Что же сдерживает технический прогресс?
  • 26. Первый блин – комом...или опять неудача? Плюсы: • Паспорт работает назависимо от того есть ли покрытие сотовой сети • Персонализируется через бесконтактный интерфейс • Подтверждает концепцию Минусы: • Сертификация на безопасность невозможна в виду уязвимости
  • 27. Android и NFC HCE API, не нонсенс ли?.. Если Android небезопасна, то зачем NFC HCE API?
  • 28. Посмотрим на опыт ApplePay и SamsungPay Приложение APK Приложение в SE
  • 29. Что такое Secure Element? Secure Element (SE) – микросхема аналогичная интеллектуальной карте, встраиваемая в мобильное устройство. Существуют SE, поддерживающие технологию Java Card. https://www.globalplatform.org/mediaguideSE.asp http://simalliance.org/se/se-educational-resources/
  • 30. Plan B: Паспорт на SE Плюсы: • Паспорт работает назависимо от того есть ли покрытие сотовой сети • Персонализируется через SEAC и OMAPI в том числе и удаленно • Может быть сертифицирован на требования безопасности Минусы: • Необходимы взаимоотношения с производителями мобильных устройств
  • 31. Что такое TEE и как оно может помочь? TEE – это Trusted Execution Environment, технология, предоставляющая приложению защищенное, изолированное пространство в памяти ПЗУ/ОЗУ, а также внутри процессора, гарантируя безопасное исполнения кода и целостность данных. https://trustedcomputinggroup.org/work-groups/trusted-platform-module/ https://www.globalplatform.org/mediaguidetee.asp
  • 32. Существующие реализации TEE… • ARM TrustZone • Intel Trusted Execution Technology • AMD Secure Technology (based of ARM TrustZone) • Trustonic • Trusty TEE for Android • FAMOCO Secure Android OS (единственное доступное решение на рынке мобильных устройств) https://en.wikipedia.org/wiki/Trusted_execution_environment
  • 33. Паспорт в TEE Плюсы: • Паспорт работает назависимо от того есть ли покрытие сотовой сети • Может быть сертифицирован на требования безопасности • Перспективная технология Минусы: • Малая популярность • Не разработаны методики проведения сертификации на безопасность
  • 34. Опять тупик? Или посмотрим шире....
  • 35. Паспорт в облаке NFC NFCHTTPS разве не так поступил Google при реализации своего AndroidPay?..
  • 36. Паспорт в облаке Плюсы: • Облачное решение может быть сертифицировано на требования безопасности • Персонализация клиентского приложения не требуется, все данные в базе данных в облаке • Единственная возможность развертывания, будучи независимым от производителей устройств Минусы: • Паспорт работает только при покрытии сотовой сети
  • 37. Подытог Мы рассмотрели четыре различных подхода реализации паспортного приложения на мобильном устройстве и провели анализ плюсов и минусов: • Паспорт как приложение APK из Play Market -> не отвечает требованиям безопасности • Паспорт на SE -> требуется авторизация производителем мобильного устройства • Паспорт в TEE -> технология недоступна для массового рынка • Паспорт в облаке -> способно решить аспекты безопасности, но будет работать только при доступе в сеть
  • 38. Если не паспорт, то что? Зачем нам HCE? Ответ вытекает из анализа областей, в которых используются интеллектуальные карты: • Платежи • Карты лояльности • Модули ЭЦП • Медицинские карты • Транспортные карты • Удостоверения, несовместимые со стандартами паспорта ICAO
  • 39. HCE: Android vs iOS Операционная система iOS не предоставляет API для работы с HCE
  • 40. Выводы Несмотря на открытые вопросы в отношении аспектов безопасности, на сегодняшний день Android единственная операционная система, предоставляющая HCE API независимым разработчикам. Давайте поблагодарим ее за это!