Protos
@Protos
Спрашивай - отвечу

Какие есть OTP на основе текста?

Привет, подскажите какие существуют алгоритмы генерации ОТП на основе текста предоставленного клиентом. На основе счетчиков генерации ОТП TOTP, HOTP не подходят.
Цель: клиент скидывает платежку, мы на основе платежки генерируем ОТП и высылаем ОТП клиентк по SMS/PUSH, конечная цель в дальнейшем иметь возможность одновременно сгенерацией ОТП как бы создавать идентификатор платежки.
  • Вопрос задан
  • 733 просмотра
Решения вопроса 2
Sly_tom_cat
@Sly_tom_cat
.
А чем именно ОТП TOTP, HOTP не подходят?

Не нравится время и счетчик - засуньте на вход алгоритма хеш от вашего документа. Но только это будет уже не OTP, т.к. для одного документа всегда будет один и тот же пароль.
Ответ написан
@AlexanderMi
Software Developer
Ну так и берите HOTP, где в качестве счетчика пускай будет уникальный идентификатор документа.
Дальше вопрос в том, как превращать что-либо в число и кто и где это будет делать. Можете в sha512 загонять, можете CRC32 считать. Воля фантазии.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nmk2002
@nmk2002
работаю в ИБ
Есть алгоритм OATH OCRA (RFC 6287). Принцип такой:
пользователь видит в браузере запрос сервера, вводит его в генераторе OTP и на генераторе отображается одноразовый пароль. Этот пароль пользователь вводит в браузере. Правда это совсем не то, что вы описали. Тут сам пароль генерируется на стороне клиента. Но, то что вы хотите не может быть безопасным. Одноразовые коды, которые получает пользователь по каналам SMS/push для их дальнешего прямого использования в качестве паролей должны быть рандомно сгенерированы, и должны не зависеть от входных данных. В противном случае вся ваша безопасность будет держаться на незнании/сложности вашего алгоритма. Жизнь доказала уже неоднократно, что "security through obscurity" это плохая защита.
Раз уж вы рассматриваете канал push для взаимодействия с клиентом, то посмотрете на методы аутентификации и электронной подписи использующие смартфон, как токен. Только не OTP-токен, а криптографический токен с ассиметричными ключами. Все намного проще, чем может показаться на первый взгляд. При необходимости подписать документ (для аутентификации аналогично), пользователю на смартфон приходит push сообщение, по тапу на него открываются подробности транзакции, которые пользователь принимает и подписывает уже привычным ему способом (PIN, отпечаток, FaceID).
Могу ответить на вопросы по такому софту или, если хотите, продемонстрировать реализацию такой аутентификации/подписи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы