Pull to refresh

Автоподстановка кода из SMS на Android

by Dolgo.polo Dev Android

Есть такая магия — SMS приходит на телефон, а приложение его автоматически читает и подставляет в поле для ввода OTP (one-time password)

На первый взгляд механизм понятен:

система получает SMS -> кидает Intent в приложение -> Broadcast Receiver получается Intent с текстом SMS

Но есть подвох — это опасно. Если все приложения будут получать этот Intent, то они смогут перехватить OTP (читать "аккаунт украден")

Поэтому вводятся дополнительные степени защиты

Первая:

  1. Ограничение по времени — приложение получает Intent только в течение 5 минут после начала ожидания OTP

А вторая на выбор:


2.1 Или показываем пользователю системную диаложку "Вы ТОЧНО хотите вставить этот код в это приложение?"
2.2 Или в SMS должен быть зашит hash-код приложения

Подход 2.1 называется One-tap SMS verification (потому что требует от юзера одного нажатия на кнопку "да, ТОЧНО"

Подход 2.2 вообще не требует от юзера тапов

hash-код для 2.2 формирутеся из подписи приложения и заранее сообщается бекенду, который отправляет SMS

бекенд вставляет hash-код в конец текста SMS

Например,

"Никому не сообщайте код 110011, Ваш Банк? Sdnjh!a+iDn",
где Sdnjh!a+iDn — hash-код приложения

остальные посты об Android

Tags:
Total votes 5: ↑4 and ↓1+3
Comments11

Articles