Приветствую, уважаемый читатель!
Отвлечемся немного от Splunk. Хочу затронуть тему стабильности работы сервисов 2-х факторной аутентификации в территориально распределённых ИТ-инфраструктурах. Уже не первый год усиление мер MFA является базовой рекомендацией для всех компаний, но помимо внедрения решений MFA важно обеспечить их стабильную работу для пользователей, в частности сервиса OTP (One-Time Password).
Итак, немного о предметной области OTP аутентификации.
Аутентификация пользователя или программного скрипта по OTP-коду чаще всего производится по алгоритму TOTP (Time-based One-Time Password). Это алгоритм аутентификации встречающийся при реализации MFA, при котором пользователь дополнительно к паролю или иному фактору аутентификации вводит одноразовый код, который генерируется на основе текущего времени и секретного ключа. Этот код действителен только в течение ограниченного времени, обычно 30 секунд.
Благодаря тому, что код чаще всего генерируется локально на устройстве пользователя (например, в специализированном приложении), для его формирования не требуется интернет. Интернет нужен только для передачи секретного ключа и синхронизации времени.
- сервер генерации секретных ключей и проверки вводимых пользователями OTP-кодов;
- приложение для генерации OTP-кодов;
- интерфейс, в который пользователь вводит OTP-код для аутентификации.
Так вот, ошибок и проблем с сервисом OTP много, но часто встречаются следующие 2:
- Ошибки проверки OTP-кода, связанные с долгим временем доставки кода от интерфейса (куда пользователь его ввел) до проверяющего сервера (чаще всего возникают из-за задержек в сети, плохого интернета и актуально для сценария: проверяющий сервер в Москве, интерфейс в деревне с плохим интернетом);
- Ошибки рассинхронизации времени на устройстве пользователя и проверяющем сервере;
Первую проблему часто решают увеличением количества 30-секундных интервалов для каждого пользователя или группы пользователей (OTP-код действует в текущем интервале или +\- 1 соседнем). Но, увеличения 30-секундного интервала может помочь компенсировать задержки доставки и снизить количество ошибок из-за просроченных кодов, но при этом может и снизить уровень кибербезопасности, так как окно действия кода фактически становится дольше.
Есть ещё один вариант, как можно решить первую проблему. Можно передавать вместе с OTP-кодом на проверяющий сервер метку времени, когда пользователь его ввел. Это позволяет:
- не увеличивать интервал проверки OTP-кодов для всех пользователей, а рассчитывать код исходя из метки времени;
- не снижать уровень кибербезопасности из-за увеличения интервалов проверки OTP-кода;
- автоматически выявлять устройства пользователей, на которых произошел рассинхрон времени и не блокировать работу пользователя.
Комментариев нет:
Отправить комментарий