Для начала опишу, как устроено ДБО в одном из европейских банков, с которым мне довелось познакомиться.
При открытии счета выдается логин (далее e-id), состоящий из цифр. Он используется для входа в ИБ, мобильное приложение. Возможно, нужен при звонках в поддержку, но тут у меня нет уверенности. Он никак не связан с данными клиента, картой, телефоном и т.д. Он также не связан с id клиента в банке. Его нельзя заменить на собственный. Если он будет скомпрометирован, банк выдаст новый.
Интернет-банк
Для первого входа в ИБ нужен e-id и код активации. Код активации присылают в смс, когда подключаешь ИБ в отделении банка. Код действителен 60 дней. Если не войти в ИБ за это время, придется запрашивать новый код активации через отделение банка или службу поддержки. При первом входе нужно будет установить пароль. Для последующих входов в ИБ есть две опции:
- сценарий, который банк считает основным: вводишь e-id на странице входа, банк в ответ показывает Authentication Identifier (число) и присылает пуш в мобильное приложение. При клике на пуш, запускается мобильное приложение, которое проверяет FaceID/TouchID (или запрашивает 5-значный код для входа в приложение). В мобильном приложении отображется экран подтверждения входа, на котором указан Authentication Identifier. Для подтверждения нужно нажать кнопку «Подтвердить». Пароль не нужен, одноразовые коды не нужны.
- запасной сценарий: вход по e-id + пароль + одноразовый смс-код.
Подтверждение операций в ИБ: при совершении операций в ИБ можно их подтвердить (подписать) сразу, или же сначала заполнить несколько поручений, а потом подписать пачкой. Способа подписания два:
- основной: направляется пуш в мобильное приложение, в мобильном приложении открывается экран со списком подтверждаемых операций и идентификатором пакета на подпись (можно сравнить с тем, что в ИБ отображается). Для подписания нужно нажать кнопку, коды и пароли не нужны.
- резервный способ: одноразовый код в смс.
Мобильное приложение
При первом входе (он же привязка устройства) нужен e-id, пароль и одноразовый код из смс. Смс предупреждает об опасности, а пароль написан так, что при взгляде не вычленяется сразу из текста, так что придется прочитать всю смс:
ATTENTION! You are about to grant access to your bank account on a new device. In case you did not initiate this request, please immediately contact us on this number: +1234567890. The password is NOT a login code, DO NOT provide it in web browsers, only use it in myBank mobile application. Your Mobile token activation password is: kcwacsdt. <здесь название банка>
Дальнейший вход в мобильное приложение по 5-значному коду, который придумываешь при первом входе, или по биометрии.
Подтверждение операций в приложении: заполняешь реквизиты по шагам, на последнем шаге поручение доступно для просмотра целиком и есть кнопка «Autorise». При ее нажатии приложение проверяет биометрию, одноразовые коды и пароли не запрашиваются.
Покупки в интернете (3DS)
Подтверждение оплат в интернете похоже на подтверждение обычных операций в ИБ: приходит пуш в МП. При тапе на пуш открывается МП, которое проверяет биометрию и показывает информацию об операции (сумму, магазин). Есть кнопка подтверждения и отказа. При подтверждении МП проверяет только биометрию, одноразовых кодов нет.
Резервный вариант, если приложение недоступно: подтверждение операции комбинацией статического PIN2, который нужно задать заранее в ИБ, и одноразового кода из смс.
Итог
С одной стороны у банка получилась система, в которой в большинстве сценариев не используются пароли и одноразовые коды. Основной вариант подтверждения — мобильное приложение, это примерно то самое беспарольное будущее, о котором нам рассказывают ведущие софтвеерные корпорации. С другой стороны, любые действия закрыты двумя факторами (доступ к смс и знание пароля; наличие смартфона с приложением и знание пароля от него или подтверждение биометрией), причем в качестве факторов не используется то, что может относительно легко стать известно третьим лицам (номер карты, номер телефона, номер счета, email).
Если злоумышленник получит доступ к мобильному приложению, то это большие проблемы. Но получить доступ к приложению опять же не так легко. Например, одновременная потеря карты и телефона не позволит ни войти в ИБ, ни в МБ, ни привязать МБ к новому устройству.
В реализациях росбанков меня раздражает, например, то, что при совершении операции в мобильном приложении банк пришлет одноразовый код в пуше на то же самое устройство и сам его подставит в форму. И будет ссылаться на этот код как на доказательсто того, что действие было выполнено клиентом. Это какая-то профанация. А если не подставит в форму сам, то это лишнее действие, которое нужно сделать клиенту. Но и оно ничего не добавляет в плане безопасности, потому что код отправляется на то же самое устройство.
Как считаете — описанная выше реализация несет больше плюсов или минусов? Безопаснее ли она? Удобнее ли?