Летом этого года в России заработала Единая биометрическая система для юридически значимого и при этом простого для пользователя подтверждения личности. О том, как она устроена, мы писали в недавнем посте.

Чтобы системой было удобно пользоваться, необходимо приложение. Создание этого приложения — «Ключ Ростелеком» — открыло для нас целый бонусный уровень с новыми задачами, новыми вызовами. Которые, как несложно догадаться, направлены на повышение безопасности пользователей.



Вкратце об основном продукте. Единая биометрическая система позволяет с помощью комбинации биометрических данных проводить юридически значимую удаленную идентификацию человека без его личного присутствия. Так можно получить банковский кредит даже из какой-нибудь «глубины сибирских руд». При наличии интернета, разумеется.

Как работает приложение


Обычный пользователь начинает работу с системой с визита в банк, где он сдает биометрические данные для Единой биометрической системы и привязывает их к ЕСИА. После этого для него открываются новые возможности. Схема работы приложения «Ключ Ростелеком»:

  1. Пользователь скачивает приложение «Ключ Ростелеком»
  2. Пользователь открывает приложение интересующего банка и выбирает услугу.
  3. Приложение банка отправляет пользователя в установленное приложение «Ключ Ростелеком», одновременно передавая идентификатор сессии по защищенному каналу связи в банк.
  4. В приложении «Ключ Ростелеком» пользователь авторизуется в ЕСИА (проще говоря, в Госуслугах) и получает токен авторизации — ЕСИА-ID;
  5. В приложении «Ключ Ростелеком» с полученным ЕСИА-ID идет обращение пользователя к Единой биометрической системе. Если ЕСИА-ID там зарегистрирован, приложение собирает биометрию — записывает видео со звуком голоса и изображением лица. Эти данные по защищенному каналу уходят в Единую биометрическую систему.
  6. Система сравнивает полученные данные с имеющимся образцом, определяет вероятность совпадения. В случае превышения установленного приказом Минкомсвязи уровня (99,99%) вероятность передается в банк.
  7. Банк получает ответ и при необходимости запрашивает по ЕСИА-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.

Комментарии (25)


  1. firedragon
    27.11.2018 10:48

    Хм. Я больше доверяю банку Тенькофф или ВТБ24. Извините. Ваша привычка ставить ADSL-WiFi с паролями по дефолту, меня нервирует.


  1. Kane
    27.11.2018 10:55
    +3

    По законам РФ биометрические данные (как и любую другая пользовательская информация) передаются следственным органам только по официальному запросу и по решению суда. Здесь действуют стандартные правила.

    Вот это интересный момент. Сейчас если ты используешь пароль для авторизации, то стандарты безопасности подразумевают, что пароль не хранится в открытом виде и никто ни по какому запросу его не получит. Если же ты авторизуешься через биометрию, то следственные органы могут получить твою биометрию и авторизоваться от твоего имени где им вздумается.


    Причём если произойдёт утечка, поменять биометрический "пароль" ты уже не сможешь, он будет скомпрометирован навсегда.


    1. rstepanov
      27.11.2018 11:16

      Почему навсегда? Пластические операции делают же. Дорого, опасно и вообще стрёмно, но возможно…


    1. Sinatr
      27.11.2018 11:30

      Вот это «разборчиво проговорите цифры ...» (и разные жесты головой/лицом/мимикой?) похоже на динамически генерируемый запрос от сервера, решающий проблему «однажды перехватив пароль». С другой стороны можно перехватить несколько запросов и потом, после некоторой (возможно ручной) обработки, генерировать ответ на лету. Ведь не хеш же от видео/аудио передается? Можно перехватить или даже записать человека на скрытую камеру и все…

      Для меня самый безопасный метод авторизации — это когда я отвечаю за хранилище (телефон, чип и тд) к которому злоумышленнику сложно получить доступ, а процес авторизации — это динамический запрос от сервера (ни разу не повторяющийся), на который клиент должен ответить по определенному правилу. Это практически невзламывая (ох и слово) удаленно защита, т.к. восстановления алгоритма даже по большому количеству перехваченных сообщений не возможно, при условии, что доступ к хранилищу контролируемый.

      В случае телеметрии это что ж, хиджаб носить, чтобы не скопировали фейс?


      1. Ark_V
        27.11.2018 12:37

        Это практически невзламывая (ох и слово) удаленно защита,

        невзламываемая, от взлом, взламывать, взламываемый, не?


  1. saag
    27.11.2018 11:25

    А разместить в магазинах приложений установщик, который бы закачивал программу с криптографией из нужного источника?


    1. tretyakovpe
      27.11.2018 11:57

      чем это отличается от трояна-даунлоадера?


      1. saag
        27.11.2018 13:52

        цифровой подписью


        1. qw1
          27.11.2018 20:17

          Любое приложение перед публикацией в маркете подписывается ключом автора.
          Ключ приложения google play принимает любой, хоть самоподписанный.
          То есть, ничем это не отличается от публикации самоподписанного трояна.


    1. dartraiden
      27.11.2018 15:22

      А какой уважающий себя магазин приложений пропустит такое? А если и пропустит (хотя, Apple и за меньшее даёт от ворот поворот), что вы предлагаете делать с запрещённой по умолчанию установкой из недоверенных источников?

      Цель ведь озвучена была какая — чтобы системой можно было удобно и безопасно пользоваться.


  1. larienovich
    27.11.2018 12:45

    опять все хранят в одном месте :( Мне больше понравилась идея ПОД персональные онлайн данные — все свою храню сам и если будет утечка то сам лопух. Не уж то нельзя такое замутить? В облаке хранить хэш сумы а при обращении клиент сам генерирует хэш для проверки и подтверждает любым за ранее указаным удобным ему каналом(телефон, майл, мессенджер)


    1. Protos
      27.11.2018 16:09

      Биометрия это не сравнение хэшей в идеале


    1. lostpassword
      30.11.2018 11:30

      Извините, а «в облаке» — это где? Какие хэш-суммы Вы хотите хранить и какой хэш генерировать для проверки? Не понял, что это за технология.


  1. Sabubu
    27.11.2018 13:44
    +2

    > По законам РФ биометрические данные (как и любую другая пользовательская информация) передаются следственным органам только по официальному запросу и по решению суда. Здесь действуют стандартные правила.

    Ага, как вконтакте — по пришедшему с ящика на mail.ru запросу, где в качестве обоснования приводится просто ссылка на закон «О полиции». Даже без заведения дела.

    Не стоит верить подобным заявлениям. И не стоит их тут даже писать. Государство у нас скрывает имена богачей-коррупционеров в реестре недвижимости, блокирует пол-интернета на основании якобы постановления прокуратуры, от которого она потом открещивается, взламывает Телеграм-аккаунты путем перехвата СМС в сговоре с сотовым оператором и выкладывает в сеть частную СМС-переписку.

    Точно так же украдут и ваши биометрические данные, если понадобится, и ни в каком суде вы ничего не докажете.


    1. qw1
      27.11.2018 20:19

      Да не надо красть биометрию. Нейросети сгенерируют всё что нужно
      habr.com/post/405269


  1. vikarti
    27.11.2018 14:03

    И в итоге нам удалось договориться, получить разрешение на распространение через Google Play и App Store приложения со встроенной в процесс работы российской криптографией.

    А можно подробнее — как?
    Особенно — в случае AppStore? ФСБ разрешила конкретно в данном случае считать Apple / Google — доверенными источниками? Apple разрешила таки подгрузку бинарных модулей с удаленного сервера?


  1. EvilLord
    27.11.2018 15:19

    При использовании российской криптографии для сертификации решений положение ПКЗ 2005 ФСБ РФ требует проводить в ФСБ так называемые тематические исследования создаваемых решений.


    Согласно ПКЗ-2005:
    43. СКЗИ реализуются (распространяются) вместе с правилами пользования ими, согласованными с ФСБ России.

    44. Реализация (распространение) СКЗИ и (или) РКД на них осуществляется юридическим лицом или индивидуальным предпринимателем, имеющим право на осуществление данного вида деятельности, связанного с шифровальными (криптографическими) средствами.

    Как вы обошли требования документа?


    1. Protos
      27.11.2018 16:03

      43 наверное есть на отдельной странице в приложении, на 44 тупо забили, примерно так как продаются токены тысячами, а формуляр к ним один и тот копия.


    1. BIO-RT Автор
      29.11.2018 17:48

      У Ростелекома, как у разработчика «Ключа», есть соответсвующее разрешение.

      Правила использования СКЗИ указаны в документации, описывающей правила использования и встраивания СКЗИ.
      Для встраивания СКЗИ в банках и в ядре «Ключа» формируются и согласовываются с ФСБ соответствующие технические задания.


  1. dEXPERTb
    27.11.2018 15:37

    «По умолчанию доступ к Единой биометрической системе имеет только ее оператор — Ростелеком. Банкам и любым другим организациям, с которыми сотрудничает пользователь, биометрические данные не предоставляются — организации получают лишь оценку результатов сравнения, вероятность того, что человек, осуществляющий вход в их мобильные приложения, совпадает с человеком, зарегистрированным в Единой биометрической системе.»
    А как же сбор данных при первичной явке для сдачи БДн ?(сбор в полном объеме)
    Как генерируется ID сессии пользователя? Ведь этот ID сессии де-факто признаётся банками как легитимными БДн, следовательно при получении данного ID по факту, можно в момент передачи воспользоваться сотнями услуг в сотни разных банков и запросы будут легитимными. (как ключ лицензий с неограниченным числом использования)
    Какое время жизни ID сессии? (тоже весьма интересный вопрос)


    1. BIO-RT Автор
      29.11.2018 17:53

      По умолчанию банки осуществляют сбор биометрии и передают её в «Ключ», не сохраняя у себя. Банки могут сохранить у себя биометрию только в том случае, если пользователь сам согласился на такое хранение и подписал соответствующий документ, предоставив обработку данных банку.

      Технические особенности формирования сессии пользователя при биометрической идентификации для получения банковских услуг подробно описаны в разделе 4.2.2 API биометрической верификации «Методических рекомендаций при работе с системой». (https://bio.rt.ru/upload/iblock/a8f/Metodicheskie-rekomendatsii-po-rabote-s-Edinoy-biometricheskoy-sistemoy-_Versiya-1.12-ot-13.09.2018_.pdf)


  1. Protos
    27.11.2018 16:04

    На картинках сертификат RSA, а по тексту речь про российскую криптографию


  1. EvilLord
    27.11.2018 16:27

    BIO-RT

    Это указание ссылается на Приказ ФСБ России №378 от 10 июля 2014 г., который устанавливает необходимость использования защиты по классу КС1, а значит, требует использовать российскую криптографию для защиты канала связи между Единой биометрической системой и пользовательским устройством.

    Подскажите, не могу найти в перечне средств защиты информации сертифицированных ФСБ России ваше приложение «Ключ Ростелеком», я не туда смотрю или у вас нет сертификата соответствия от ФСБ?

    PS: не могли бы вы выложить формуляр и документацию на ваше ПО?


  1. qw1
    27.11.2018 20:23

    С точки зрения ФСБ, Google Play и AppStore не являются доверенными источниками, и приложения класса «Ключ Ростелеком» с их помощью распространять нельзя
    Ох, детский сад. Если магазины приложений не доверенный источник, то и загрузчик доверенного приложения через них распространять нельзя — нет гарантии, что они не подменят загрузчик на фейковый, который загрузит фальшивый модуль из другого источника.

    По-хорошему, если требования такие жёсткие, это приложение нельзя устанавливать и на недоверенные операционные системы. А то они обновляются же постоянно из недоверенного источника.


  1. lostpassword
    29.11.2018 08:27

    Спасибо за статью и за приложение!
    Очень здорово, что появляются такие штуки. Как-нибудь постараюсь попробовать, когда будет свободное время)
    И просто прекрасно, что всё-таки удалось переубедить регуляторов и положить приложение в магазины. Может, скоро это станет привычной практикой — делать не только безопаснее, но и удобнее.
    Успехов вашему проекту!