@GCoda

Возможно ли реализовать двухфакторная аутенфикация в голове?

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

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

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

Меня не покидает ощущение что нечто подобное ктото уже это делал, или это просто не имеет смысла, так как перебрать все варианты можно будет за то время пока человек складывает 1+2+3 для первого входа...
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Не имеет смысла по двум причинам.
1. Легко вскрывается.
2. Даже при незнании PIN слишком велика вероятность подбора.

Второе связано с тем, что цифры у нас от 0 до 9 — а значит, сумма из трёх будет в пределах от 0 до 27. Что же с первым? Если у нас N цифр — код восстанавливается за N линейно независимых линейных комбинаций. Например, мы не знаем c и d, но комбинации 2a+b, a+2b и a+b линейно зависимы, и если раскрыты любые две комбинации, раскроется и третья. Для этого надо решить систему линейных алгебраических уравнений:
{ 2a + b = 10
{ a + 2b = 11
Отсюда a = 3, b = 4, и a + b = 7.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ocelot
@Ocelot
Идея "подтвердить знание пароля, не сообщая сам пароль" плохо реализуется на человеческих мозгах. Человек не может быстро проводить в уме сложные (криптостойкие) вычисления. А все, что легко считается в уме, либо легко позволяет вычислить пароль, либо дает большую вероятность пройти проверку случайнно, не зная пароля.

В свое время была вот такая интересная реализация, но там нужно много серий "запрос-ответ".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы