LINUX.ORG.RU

История изменений

Исправление theNamelessOne, (текущая версия) :

А как оно вообще работает?

Как работает TOTP? Тут всё просто:

  1. Есть сервис, для которого нужна двухфакторка.
  2. Сервис генерирует секретный ключ, сохраняет его у себя.
  3. Сервис показывает секретный ключ клиенту (в plain text или в виде QR-кода), чтобы OTP-прилага могла сохранить этот секретный ключ у себя.
  4. Когда клиенту необходимо аутентифицироваться по двухфакторке, OTP-приложение генерирует 6-значный код, который вычисляется как функция от секретного ключа и текущего времени (с шагом инкремента в 30 секунд по умолчанию).
  5. Клиент вводит в сервис сгенерированный код, сервис на основе описанного в предыдущем пункте алгоритма тоже генерирует код и сравнивает его с полученным от клиента.

Такая схема имеет следующие преимущества:

  1. Для прохождения проверки не нужно раскрывать секретный ключ.
  2. Если сгенерированный код утечёт, это не очень страшно, т.к. он будет действителен только на протяжении 30 секунд.

На практике есть некоторые особенности, такие, как leeway, но это уже не так важно.

Исходная версия theNamelessOne, :

А как оно вообще работает?

Как работает TOTP? Тут всё просто:

  1. Есть сервис, для которого нужна двухфакторка.
  2. Сервис генерирует секретный ключ, сохраняет его у себя.
  3. Сервис показывает секретный ключ (в plain text или в виде QR-кода), чтобы OTP-прилага могла сохранить этот секретный ключ у себя.
  4. Когда клиенту необходимо аутентифицироваться по двухфакторке, OTP-приложение генерирует 6-значный код, который вычисляется как функция от секретного ключа и текущего времени (с шагом инкремента в 30 секунд по умолчанию).
  5. Клиент вводит в сервис сгенерированный код, сервис на основе описанного в предыдущем пункте алгоритма тоже генерирует код и сравнивает его с полученным от клиента.

Такая схема имеет следующие преимущества:

  1. Для прохождения проверки не нужно раскрывать секретный ключ.
  2. Если сгенерированный код утечёт, это не очень страшно, т.к. он будет действителен только на протяжении 30 секунд.

На практике есть некоторые особенности, такие, как leeway, но это уже не так важно.