Летом этого года в России заработала Единая биометрическая система для юридически значимого и при этом простого для пользователя подтверждения личности. О том, как она устроена, мы писали в недавнем посте.
Чтобы системой было удобно пользоваться, необходимо приложение. Создание этого приложения — «Ключ Ростелеком» — открыло для нас целый бонусный уровень с новыми задачами, новыми вызовами. Которые, как несложно догадаться, направлены на повышение безопасности пользователей.
Вкратце об основном продукте. Единая биометрическая система позволяет с помощью комбинации биометрических данных проводить юридически значимую удаленную идентификацию человека без его личного присутствия. Так можно получить банковский кредит даже из какой-нибудь «глубины сибирских руд». При наличии интернета, разумеется.
Обычный пользователь начинает работу с системой с визита в банк, где он сдает биометрические данные для Единой биометрической системы и привязывает их к ЕСИА. После этого для него открываются новые возможности. Схема работы приложения «Ключ Ростелеком»:
Главный вопрос — это, конечно же, безопасность данных. Все каналы связи между тремя взаимодействующими системами — ЕСИА, Единой биометрической системой и банком — защищаются при помощи TLS-шлюзов с использованием российской криптографии.
В приложении пользователь может сравнить параметры сертификата в системе с параметрами сертификата, размещенного на сайте Единой биометрической системы. Так можно убедиться, что подключение идет действительно к Единой биометрической системы. ФСБ рекомендует проводить сравнение, чтобы исключить атаки man in the middle, когда все запросы пользователя перехватываются через TLS-шлюз злоумышленника.
Кроме того, реализована проверка контрольных сумм приложения и модуля криптографической защиты. Это происходит автоматически при запуске приложения, а также вручную в любое время в меню Настройки и безопасность. При несовпадении контрольных сумм приложение отключается и до устранения проблемы работает в офлайн-режиме.
В итоге механизмы защиты «Ключа Ростелекома» не полагаются на операционную систему — собственные средства шифрования и контроль целостности привязаны к приложению. На этапе верификации подставить чужую биометрию не получится — система определит подлог. Но из-за нарушений в безопасности на стороне ОС, в принципе, можно вклиниться между пользователем и приложением и перехватить передаваемые для авторизации данные. К сожалению, такое возможно, особенно на рутованных устройствах с троянами. Мы не можем взять на себя ответственность за среду функционирования. Приложение просто определяет наличие рута и не запускается, если он есть.
Изначально в плане UX все было организовано очень сложно. Пользовательский путь в «Ключе Ростелекома» включал 20 экранов, 13 из которых относились к безопасности. Но после оценки всего этого с точки зрения UX мы сократили эту часть до 3-4 экранов. Для такого прогресса потребовалось не одно обсуждение на разных уровнях.
Хранение и передача биометрических данных в России регламентируются несколькими актами:
Для прохождения сертификации необходимо предоставить в ФСБ полную информацию о том, какие в приложении используются механизмы защиты, что и какими функциями подписывается, а также исходные коды не только самого приложения, но и остальных точек взаимодействия. Эта процедура никак не регламентирована по времени и выливается в огромные финансовые затраты. Любое изменение кода банковского приложения требует повторения процедуры, что невозможно с релизами раз в квартал и тем более раз в месяц. И вообще, представьте, сколько в России банковских приложений. Похоже на тупик.
Но мы нашли выход из этого тупика. При работе с «Ключом Ростелекома» банковские приложения не взаимодействуют с биометрией, а лишь получают идентификатор пользовательской сессии. Таким образом приложения банков не попадают под действие Указания Банка России.
Еще одной проблемой стал обязательный поэкземплярный учет приложений, использующих российскую криптографию. Этот вопрос тоже удалось решить — при успешной аутентификации в систему передается идентификатор устройства и идентификатор пользователя ЕСИА, что позволяет серверу регистрации полностью идентифицировать пользователя и устройство.
На этом приключения не закончились. С точки зрения ФСБ, Google Play и AppStore не являются доверенными источниками, и приложения класса «Ключ Ростелеком» с их помощью распространять нельзя. Если же догружать модуль СКЗИ (средство криптографической защиты информации) «Ключ Ростелеком» в обычное приложение Ростелекома с доверенного источника, магазины приложений будут против. Потому что такие схемы стандартны для распространения троянов или шпионских модулей. И если Google Play нам пошел навстречу, то AppStore отказал категорически.
Теоретически есть еще один подход — устанавливать приложение с сервера самого Ростелекома. Но тогда мы приходим к парадоксу: для установки безопасного решения пользователям необходимо снизить защищенность среды, разрешив установку приложений из любых источников.
Мы потратили не одну неделю, обсуждая с регуляторами, как можно решить проблему. И в итоге нам удалось договориться, получить разрешение на распространение через Google Play и App Store приложения со встроенной в процесс работы российской криптографией.
Хотя напрямую это и не касается приложения «Ключ Ростелеком», мы хотим еще немного рассказать о том, как именно верифицируются данные в Единой биометрической системе.
Каждый биометрический фактор в отдельности — голос, лицо — можно подделать. Так что мы придерживаемся более сложного и надежного «поведенческого» подхода — анализируем факторы в совокупности. Пользователи сначала улыбаются, потом поворачивают голову и наконец произносят контрольную фразу. Сравнительно сложная последовательность действий, которая может варьироваться системой. Чем больше у нее подозрений, тем сложнее алгоритм. Дополнительный уровень защиты — это необходимость ввести логин и пароль от Госуслуг.
При анализе биометрических образцов одновременно используются разные биометрические процессоры с принципиально разными алгоритмами генерации и проверки шаблонов верификации. Если хотя бы один из них подозревает подмену, мы считаем это попыткой взлома и отправляем данные на анализ. Поэтому знать в деталях алгоритмику одного или даже пары процессоров будет недостаточно. На данный момент, к сожалению, это может привести к ошибкам верификации. Например, если у человека изменился голос, вокруг него мало света или много шума. Тем не менее лучше все равно перестраховаться: при появлении малейшего подозрения в обмане мы сообщаем об этом банку.
Параллельно мы применяем и вполне стандартные подходы к безопасности — например, ограничение на количество попыток входа. Если пользователь всегда входил в приложение из Москвы, а тут вдруг сначала поступил запрос из Бангладеш, а потом из Гонконга. Все это — повод посчитать профиль скомпрометированным.
В принципе, система позволяет выявлять и более сложные схемы мошенничества, с участием банковских сотрудников, собиравших биометрические данные. При обнаружении таких ситуаций мы блокируем нарушителя для всех банков и других организаций, использующих систему. В сложных случаях можно заблокировать всю биометрию, собранную банком.
По законам РФ биометрические данные (как и любую другая пользовательская информация) передаются следственным органам только по официальному запросу и по решению суда. Здесь действуют стандартные правила.
По умолчанию доступ к Единой биометрической системе имеет только ее оператор — Ростелеком. Банкам и любым другим организациям, с которыми сотрудничает пользователь, биометрические данные не предоставляются — организации получают лишь оценку результатов сравнения, вероятность того, что человек, осуществляющий вход в их мобильные приложения, совпадает с человеком, зарегистрированным в Единой биометрической системе.
Пока еще не все банки интегрированы с «Ключом Ростелекома». Систему биометрической аутентификации нельзя просто внедрить вместо личной явки. Переделать процессы на бэке банков с учетом скоринг-проверок — задача нетривиальная. Нужно организовать процесс так, чтобы клиент мог выбирать интересующие услуги банков еще до проверки личности.
Если вам интересна функциональность приложения, вы можете оценить ее с помощью демо-режима. «Ключ Ростелеком» сейчас доступен в Google Play и скоро появится в App Store.
Чтобы системой было удобно пользоваться, необходимо приложение. Создание этого приложения — «Ключ Ростелеком» — открыло для нас целый бонусный уровень с новыми задачами, новыми вызовами. Которые, как несложно догадаться, направлены на повышение безопасности пользователей.
Вкратце об основном продукте. Единая биометрическая система позволяет с помощью комбинации биометрических данных проводить юридически значимую удаленную идентификацию человека без его личного присутствия. Так можно получить банковский кредит даже из какой-нибудь «глубины сибирских руд». При наличии интернета, разумеется.
Как работает приложение
Обычный пользователь начинает работу с системой с визита в банк, где он сдает биометрические данные для Единой биометрической системы и привязывает их к ЕСИА. После этого для него открываются новые возможности. Схема работы приложения «Ключ Ростелеком»:
- Пользователь скачивает приложение «Ключ Ростелеком»
- Пользователь открывает приложение интересующего банка и выбирает услугу.
- Приложение банка отправляет пользователя в установленное приложение «Ключ Ростелеком», одновременно передавая идентификатор сессии по защищенному каналу связи в банк.
- В приложении «Ключ Ростелеком» пользователь авторизуется в ЕСИА (проще говоря, в Госуслугах) и получает токен авторизации — ЕСИА-ID;
- В приложении «Ключ Ростелеком» с полученным ЕСИА-ID идет обращение пользователя к Единой биометрической системе. Если ЕСИА-ID там зарегистрирован, приложение собирает биометрию — записывает видео со звуком голоса и изображением лица. Эти данные по защищенному каналу уходят в Единую биометрическую систему.
- Система сравнивает полученные данные с имеющимся образцом, определяет вероятность совпадения. В случае превышения установленного приказом Минкомсвязи уровня (99,99%) вероятность передается в банк.
- Банк получает ответ и при необходимости запрашивает по ЕСИА-ID дополнительную информацию о пользователе из ЕСИА. При этом данные передаются уже напрямую между ЕСИА и банковскими системами.
Как все защищено
Главный вопрос — это, конечно же, безопасность данных. Все каналы связи между тремя взаимодействующими системами — ЕСИА, Единой биометрической системой и банком — защищаются при помощи TLS-шлюзов с использованием российской криптографии.
В приложении пользователь может сравнить параметры сертификата в системе с параметрами сертификата, размещенного на сайте Единой биометрической системы. Так можно убедиться, что подключение идет действительно к Единой биометрической системы. ФСБ рекомендует проводить сравнение, чтобы исключить атаки man in the middle, когда все запросы пользователя перехватываются через TLS-шлюз злоумышленника.
Кроме того, реализована проверка контрольных сумм приложения и модуля криптографической защиты. Это происходит автоматически при запуске приложения, а также вручную в любое время в меню Настройки и безопасность. При несовпадении контрольных сумм приложение отключается и до устранения проблемы работает в офлайн-режиме.
В итоге механизмы защиты «Ключа Ростелекома» не полагаются на операционную систему — собственные средства шифрования и контроль целостности привязаны к приложению. На этапе верификации подставить чужую биометрию не получится — система определит подлог. Но из-за нарушений в безопасности на стороне ОС, в принципе, можно вклиниться между пользователем и приложением и перехватить передаваемые для авторизации данные. К сожалению, такое возможно, особенно на рутованных устройствах с троянами. Мы не можем взять на себя ответственность за среду функционирования. Приложение просто определяет наличие рута и не запускается, если он есть.
Изначально в плане UX все было организовано очень сложно. Пользовательский путь в «Ключе Ростелекома» включал 20 экранов, 13 из которых относились к безопасности. Но после оценки всего этого с точки зрения UX мы сократили эту часть до 3-4 экранов. Для такого прогресса потребовалось не одно обсуждение на разных уровнях.
Строгости закона
Хранение и передача биометрических данных в России регламентируются несколькими актами:
- Безопасность биометрических персональных данных — Указанием Банка России №4859-У от 9 июля 2018 г.
- Это указание ссылается на Приказ ФСБ России №378 от 10 июля 2014 г., который устанавливает необходимость использования защиты по классу КС1, а значит, требует использовать российскую криптографию для защиты канала связи между Единой биометрической системой и пользовательским устройством.
- При использовании российской криптографии для сертификации решений положение ПКЗ 2005 ФСБ РФ требует проводить в ФСБ так называемые тематические исследования создаваемых решений.
Для прохождения сертификации необходимо предоставить в ФСБ полную информацию о том, какие в приложении используются механизмы защиты, что и какими функциями подписывается, а также исходные коды не только самого приложения, но и остальных точек взаимодействия. Эта процедура никак не регламентирована по времени и выливается в огромные финансовые затраты. Любое изменение кода банковского приложения требует повторения процедуры, что невозможно с релизами раз в квартал и тем более раз в месяц. И вообще, представьте, сколько в России банковских приложений. Похоже на тупик.
Но мы нашли выход из этого тупика. При работе с «Ключом Ростелекома» банковские приложения не взаимодействуют с биометрией, а лишь получают идентификатор пользовательской сессии. Таким образом приложения банков не попадают под действие Указания Банка России.
Еще одной проблемой стал обязательный поэкземплярный учет приложений, использующих российскую криптографию. Этот вопрос тоже удалось решить — при успешной аутентификации в систему передается идентификатор устройства и идентификатор пользователя ЕСИА, что позволяет серверу регистрации полностью идентифицировать пользователя и устройство.
Первая российская криптография в Google Play и App Store
На этом приключения не закончились. С точки зрения ФСБ, Google Play и AppStore не являются доверенными источниками, и приложения класса «Ключ Ростелеком» с их помощью распространять нельзя. Если же догружать модуль СКЗИ (средство криптографической защиты информации) «Ключ Ростелеком» в обычное приложение Ростелекома с доверенного источника, магазины приложений будут против. Потому что такие схемы стандартны для распространения троянов или шпионских модулей. И если Google Play нам пошел навстречу, то AppStore отказал категорически.
Теоретически есть еще один подход — устанавливать приложение с сервера самого Ростелекома. Но тогда мы приходим к парадоксу: для установки безопасного решения пользователям необходимо снизить защищенность среды, разрешив установку приложений из любых источников.
Мы потратили не одну неделю, обсуждая с регуляторами, как можно решить проблему. И в итоге нам удалось договориться, получить разрешение на распространение через Google Play и App Store приложения со встроенной в процесс работы российской криптографией.
От анализа факторов к анализу поведения
Хотя напрямую это и не касается приложения «Ключ Ростелеком», мы хотим еще немного рассказать о том, как именно верифицируются данные в Единой биометрической системе.
Каждый биометрический фактор в отдельности — голос, лицо — можно подделать. Так что мы придерживаемся более сложного и надежного «поведенческого» подхода — анализируем факторы в совокупности. Пользователи сначала улыбаются, потом поворачивают голову и наконец произносят контрольную фразу. Сравнительно сложная последовательность действий, которая может варьироваться системой. Чем больше у нее подозрений, тем сложнее алгоритм. Дополнительный уровень защиты — это необходимость ввести логин и пароль от Госуслуг.
При анализе биометрических образцов одновременно используются разные биометрические процессоры с принципиально разными алгоритмами генерации и проверки шаблонов верификации. Если хотя бы один из них подозревает подмену, мы считаем это попыткой взлома и отправляем данные на анализ. Поэтому знать в деталях алгоритмику одного или даже пары процессоров будет недостаточно. На данный момент, к сожалению, это может привести к ошибкам верификации. Например, если у человека изменился голос, вокруг него мало света или много шума. Тем не менее лучше все равно перестраховаться: при появлении малейшего подозрения в обмане мы сообщаем об этом банку.
Параллельно мы применяем и вполне стандартные подходы к безопасности — например, ограничение на количество попыток входа. Если пользователь всегда входил в приложение из Москвы, а тут вдруг сначала поступил запрос из Бангладеш, а потом из Гонконга. Все это — повод посчитать профиль скомпрометированным.
В принципе, система позволяет выявлять и более сложные схемы мошенничества, с участием банковских сотрудников, собиравших биометрические данные. При обнаружении таких ситуаций мы блокируем нарушителя для всех банков и других организаций, использующих систему. В сложных случаях можно заблокировать всю биометрию, собранную банком.
Кто за кем следит?
По законам РФ биометрические данные (как и любую другая пользовательская информация) передаются следственным органам только по официальному запросу и по решению суда. Здесь действуют стандартные правила.
По умолчанию доступ к Единой биометрической системе имеет только ее оператор — Ростелеком. Банкам и любым другим организациям, с которыми сотрудничает пользователь, биометрические данные не предоставляются — организации получают лишь оценку результатов сравнения, вероятность того, что человек, осуществляющий вход в их мобильные приложения, совпадает с человеком, зарегистрированным в Единой биометрической системе.
Пока еще не все банки интегрированы с «Ключом Ростелекома». Систему биометрической аутентификации нельзя просто внедрить вместо личной явки. Переделать процессы на бэке банков с учетом скоринг-проверок — задача нетривиальная. Нужно организовать процесс так, чтобы клиент мог выбирать интересующие услуги банков еще до проверки личности.
Если вам интересна функциональность приложения, вы можете оценить ее с помощью демо-режима. «Ключ Ростелеком» сейчас доступен в Google Play и скоро появится в App Store.