otp token что это такое
Как работают одноразовые пароли
Вступление
Как показывает практика, существует определенное непонимание принципов работы одноразовых паролей (это те самые, которые используются в GMail, в спец. токенах платежных систем и так далее).
Прочитав эту небольшую статью, Вы разберетесь в принципе работы одноразовых паролей на основе хэшей, а заодно напишете на Python небольшую программу, которая умеет вычислять пароли для двухэтапной аутентификации Google.
Хэш-функция
Хэш-функция позволяет взять любые данные любой длины и построить по ним короткий «цифровой отпечаток пальца». Длина значения хэш-функции не зависит от длины исходного текста; например, в случае популярного алгоритма SHA-1 длина этого отпечатка составляет 160 бит.
Чтобы понять, почему значение всегда имеет одинаковую длину и не зависит от исходного текста, можно упрощенно представить хэш-функцию в виде кодового замка с колесиками. Вначале мы выставляем все колесики в «ноль», затем идем по тексту и для каждой буквы прокручиваем колесики в соответствии с некоторыми правилами. То число, которое окажется на замке в конце, и есть значение хэш-функции. Примерами таких функций являются MD5, SHA-1, ГОСТ_Р_34.11-94.
Не придумывайте свои хэш-функции, используйте стандартные реализации (например, в случае Python):
Идея хэш-функции в том, что она работает только в одном направлении: ее очень легко подсчитать для «Войны и мира», но практически невозможно по уже готовому значению хэш-функции найти документ, который даст такое же значение. Даже если изменить в документе всего одну букву, хэш изменится полностью:
В связи с этим возникает естественное желание использовать хэш-функцию для контроля целостности сообщений, которые Алиса посылает Бобу: Алиса подсчитывает для каждого своего сообщения значение SHA-1 и вкладывает его в конверт; Боб, самостоятельно подсчитав SHA-1 текста, может сравнить свой результат с Алисиным и удостовериться, что сообщение не было изменено где-то по дороге.
Однако мы забыли о Меллори, который находится где-то между Алисой и Бобом, перехватывает их переписку и вскрывает конверты! Он вполне может изменить сообщение, после чего подсчитать для него SHA-1 и приложить к письму; Боб сверит значения и ничего не заметит.
Проверка подлинности
Подумав, Алиса и Боб при встрече договариваются, что при подсчете SHA-1 они будут временно дописывать к тексту секретное слово, например, «Secret» (конечно, в реальности Алиса и Боб решили использовать куда более длинное слово, чтобы его было сложно подобрать). Меллори не знает это слово, а следовательно, даже если изменит сообщение, то не сможет скорректировать его хэш, не так ли?
К сожалению, тут есть проблемы. Да, Меллори не может изменить тело сообщения, но (раз он знает хэш от текущего текста) он всегда может дописать в конце «P.S. На самом деле все это чушь, нам пора расстаться, Боб» и просто досчитать хэш от остатка (вспомним аналогию с кодовым замком).
Чтобы защититься от этого, мы немного усложним нашу функцию:
Теперь дописывание чего-либо в конец сообщения полностью изменит исходные данные для «внешнего» вызова SHA-1 и Меллори остается вне игры.
Алиса и Боб только что придумали то, что называется HMAC (или hash-based message authentication code): основанный на хэш-функции код проверки подлинности сообщений. В реальности HMAC, принятый как стандарт RFC2104 выглядит чуть-чуть сложнее за счет выравнивания длины ключа, пары XOR’ов внутри, участия ключа во «внутреннем» хэше, но суть не меняется.
Не придумывайте свои реализации HMAC, используйте стандартные реализации, например, HMAC-SHA1:
Одноразовые пароли
Что такое «одноразовый пароль»? Это пароль, который бесполезно перехватывать с помощью кейлоггера, подглядывания через плечо или прослушивания телефонной линии — т.к. этот пароль используется ровно один раз.
Как можно было бы реализовать эту схему? Например, Алиса может сгененировать сотню случайных паролей и отдать копию Бобу. Когда Боб позвонит в следующий раз, он продиктует самый верхний пароль в списке, Алиса сверит его со своим, после чего оба вычеркнут его. При следующем звонке они используют очередной пароль и так далее, пока они не закончатся. Это не очень удобно: хранение списков, генерация новых паролей и так далее.
Лучше реализовать эту схему в виде алгоритма. Например, паролем является его номер по порядку, умноженный на секретное число. Пусть Алиса и Боб договорились, что секретным числом является 42; тогда первым паролем будет 42, вторым 84, третьим 126 и так далее. Меллори, не знающий алгоритма и секретного числа, никогда не догадается, какой пароль будет следующим!
Конечно, алгоритм лучше выбрать посложнее. Алиса вспоминает про HMAC и предлагает Бобу считать пароль номер N по формуле: HMAC(«Secret», номер-пароля). После этого им нужно договориться о ключе (в данном случае это «Secret»), зато потом Бобу нужно только помнить, какой по счету пароль он генерирует (например, двадцатый):
Впрочем, Бобу совсем не улыбается каждый раз диктовать такой длинный пароль. Они с Алисой договариваются, что будут использовать только его часть, например, последние 6 символов.
Некоторое время все идет хорошо. До момента, пока Бобу и Алисе не надоедает вести подсчет, какой по счету пароль они используют. Кто-то подсказывает им, что в качестве аргумента HMAC() вместо номера можно использовать все, к чему Алиса и Боб имеют одновременный доступ… например, текущее время!
Наши герои синхронизируют свои часы и договариваются, что будут в качестве аргумента HMAC() использовать unix time — количество секунд, прошедших с момента наступления эпохи UNIX (в UTC). Чтобы вводить пароль не торопясь, они решают разделить время на 30 секундные «окна»; таким образом, на протяжении 30 секунд действует один и тот же пароль. Естественно, Алиса, проверяющая пароли, в течение 30 секунд не позволяет использовать пароль повторно (просто запоминая его) и тем самым оставляет его по-настоящему «одноразовым».
Теперь пароль вычисляется по следующей формуле: HMAC(«Secret», unix_timestamp / 30).
Мы получили одноразовые пароли на основе текущего времени. Сгенерировать и проверить эти пароли может только тот, кто обладает ключом («Secret» в примере выше); иначе говоря, сервер и пользователь.
Следует отметить, что одноразовые пароли могут считаться и по другим алгоритмам; главное, чтобы алгоритм и секрет были известны обеим сторонам. Но т.к. у нас есть стандарт, дальше мы будем говорить именно о нем
OATH, TOTP, HOTP, RFC… WTF?
Итак, мы только что описали основные идеи, лежащие в основе:
1) HMAC, hash-based message authentication code: RFC2104
2) HOTP, hash-based one-time password: RFC4226
3) TOTP, time-based one-time password: RFC6238
Эти идеи — один из краеугольных камней инициативы Initiative For Open Authentication (OATH), направленной на стандартизацию методов аутентификации.
Двухэтапная аутентификация Google
Одноразовые пароли, основанные на времени (и подсчитываемые на основе алгоритма TOTP RFC 6238) используются также компанией Google в приложении Google Authenticator, которое можно установить на iOS, Android, BlackBerry. Это приложение автоматически генерирует одноразовые пароли раз в 30 секунд (в дополнение к основному паролю на Google Account). Это означает, что даже если Ваш основной пароль кто-то подглядит или перехватит, без очередного одноразового пароля в систему войти будет невозможно. Удобно.
ВНИМАНИЕ : Я НЕ НЕСУ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ВАШИ ДЕЙСТВИЯ С ВКЛЮЧЕНИЕМ И ВЫКЛЮЧЕНИЕМ ДВУХЭТАПНОЙ АУТЕНТИФИКАЦИИ GOOGLE; ВЫ СОГЛАСНЫ, ЧТО ВЫ ВЫПОЛНЯЕТЕ ИХ НА СВОЙ СТРАХ И РИСК.
На самом деле там нет ничего страшного (есть инструкции, есть trusted-компьютеры, есть резервные коды и т.д.), но если от души постараться, бездумно нажимая на кнопки, то вполне можно лишиться доступа к своему аккаунту. И все же: если не готовы экспериментировать, не трогайте Gmail; просто скачайте приложение Google Authenticator на телефон, вручную добавьте «ключ по времени» (например, «a abc def abc def abc» или просто отсканируйте QR-код ниже).
Для начала нам нужно получить секретный ключ, который используется для создания одноразового пароля. Его можно посмотреть на странице добавления Google Authenticator’а в настройках аккаунта, он находится под QR-кодом:
Обратите внимание, что если двухэтапная аутентификация уже включена, то старый ключ узнать нельзя: придется удалить старый и сгенерировать новый. Это несложно; главное, не забыть сразу обновить ключ и в Google Authenticator, если Вы им пользуетесь.
Ключ закодирован в Base32 (для удобства уберите пробелы и переведите буквы в верхний регистр).
Программа, которая подсчитывает текущий одноразовый пароль:
Теперь можно положить рядом запущенный Google Authenticator и сравнить значения.
upd #2: если хотите поиграть с 2-step verification от dropbox, в конце секрета допишите «======» (это необходимо для паддинга и корректной работы base32-декодера).
Токен Авторизации
В настоящее время киберпреступность стала проблемой мирового уровня. Например, Дмитрий Самарцев, директор BI.ZONE в сфере кибербезопасности привёл на Всемирном экономическом форуме следующие цифры. В 2018 году ущерб мировой экономики от киберпреступности составил по его словам 1.5 триллиона долларов. В 2022 году прогнозируются потери уже в 8 триллионов, а в 2030 ущерб от киберпреступлений может превысить 90 триллионов долларов. Чтобы уменьшить потери от киберпреступлений, необходимо совершенствовать методы обеспечения безопасности пользователей. В настоящее время существует множество методов аутентификации и авторизации, которые помогают реализовать надежную стратегию безопасности. Среди них многие эксперты выделяют в качестве лучшей авторизацию на основе токенов.
До появления токена авторизации повсеместно использовалась система паролей и серверов. Сейчас эта система всё ещё остаётся актуальной из-за своей простоты и доступности. Используемые традиционные методы гарантируют пользователям возможность получить доступ к их данным в любое время. Это не всегда эффективно.
Рассмотрим эту систему. Как правило, идеология их применения базируется на следующих принципах:
Осуществляется генерация аккаунтов, т.е. люди придумывают сочетание букв, цифр или любых известных символов, которые станут логином и паролем.
Для осуществления возможности входа на сервер, пользователю требуется сохранять эту уникальную комбинацию и всегда иметь к ней доступ.
При необходимость заново подключиться к серверу и авторизироваться под своим аккаунтом, пользователю требуется заново вводить пароль и логин.
Кража паролей – это далеко не уникальное событие. Один из первых задокументированных подобных случаев произошел еще в 1962 году. Людям не просто запоминать разные комбинации символов, поэтому они часто записывают все свои пароли на бумаге, используют один и тот же вариант в нескольких местах, лишь слегка модифицируют с помощью добавления символов или изменением регистра некий старый пароль, чтобы использовать его в новом месте, из-за чего два пароля становятся крайне схожи. Логины по той же причине часто делаются одинаковые, идентичные.
Помимо опасности кражи данных и сложности с хранением информации, пароли также требуют проверки подлинности сервера, что увеличивает нагрузку на память. Каждый раз, когда пользователь входит в систему, компьютер создает запись транзакции.
Типы токенов авторизации
Токены авторизации различаются по типам. Рассмотрим их:
Устройства, которые необходимо подключить физически. Например: ключи, диски и тому подобные. Тот, кто когда-либо использовал USB-устройство или смарт-карту для входа в систему, сталкивался с подключенным токеном.
Устройства, которые находятся достаточно близко к серверу, чтобы установить с ним соединение, но оно не подключаются физически. Примером такого типа токенов может служить «magic ring» от компании Microsoft.
устройства, которые могут взаимодействовать с сервером на больших расстояниях.
Во всех трех случаях пользователь должен что-то сделать, чтобы запустить процесс. Например, ввести пароль или ответить на вопрос. Но даже когда эти шаги совершаются без ошибок, доступ без токена получить невозможно.
Процесс токен авторизации
Авторизация с помощью токена происходит следующим образом. Сначала человек запрашивает доступ к серверу или защищенному ресурсу. Запрос обычно включает в себя ввод логина и пароля. Затем сервер определяет, может ли пользователь получить доступ. После этого сервер взаимодействует с устройством: ключ, телефон, USB или что-то ещё. После проверки сервер выдает токен и отправляет пользователю. Токен находится в браузере, пока работа продолжается. Если пользователь попытается посетить другую часть сервера, токен опять связывается с ним. Доступ предоставляется или, наоборот, запрещается на основе выданного токена.
Администраторы устанавливают ограничения на токены. Можно разрешить одноразовый токен, который немедленно уничтожается, когда человек выходит из системы. Иногда устанавливается маркер на самоуничтожение в конце определенного периода времени.
Что такое аутентификация на основе токенов?
аутентификация по паролю (обычное запоминание комбинации символов)
аутентификация по биометрии (отпечаток пальца, сканирование сетчатки глаза, FaceID)
Аутентификация токенов требует, чтобы пользователи получили сгенерированный компьютером код (или токен), прежде чем им будет предоставлен доступ в сеть. Аутентификация токенов обычно используется в сочетании с аутентификацией паролей для дополнительного уровня безопасности (двухфакторная аутентификация (2FA)). Если злоумышленник успешно реализует атаку грубой силы, чтобы получить пароль, ему придется обойти также уровень аутентификации токенов. Без доступа к токену получить доступ к сети становится труднее. Этот дополнительный уровень отпугивает злоумышленников и может спасти сети от потенциально катастрофических нарушений.
Как токены работают?
Во многих случаях токены создаются с помощью донглов или брелоков, которые генерируют новый токен аутентификации каждые 60 секунд в соответствии с заданным алгоритмом. Из-за мощности этих аппаратных устройств пользователи должны постоянно держать их в безопасности, чтобы они не попали в чужие руки. Таким образом, члены команды должны отказаться от своего ключа или брелока, если команда распадается.
Наиболее распространенные системы токенов содержат заголовок, полезную нагрузку и подпись. Заголовок состоит из типа полезной нагрузки, а также используемого алгоритма подписи. Полезная нагрузка содержит любые утверждения, относящиеся к пользователю. Подпись используется для доказательства того, что сообщение не подвергалось опасности при передаче. Эти три элемента работают вместе, чтобы создать высокоэффективную и безопасную систему аутентификации.
Хотя эти традиционные системы аутентификации токенов все еще действуют сегодня, увеличение количества смартфонов сделал аутентификацию на основе токенов проще, чем когда-либо. Смартфоны теперь могут быть дополнены, чтобы служить генераторами кодов, предоставляя конечным пользователям коды безопасности, необходимые для получения доступа к их сети в любой момент времени. В процессе входа в систему пользователи получают криптографически безопасный одноразовый код доступа, который ограничен по времени 30 или 60 секундами, в зависимости от настроек на стороне сервера. Эти мягкие токены генерируются либо приложением-аутентификатором на устройстве, либо отправляются по запросу через SMS.
Появление аутентификации на основе токенов смартфонов означает, что у большинства сотрудников уже есть оборудование для генерации кодов. В результате затраты на внедрение и обучение персонала сведены к минимуму, что делает эту форму аутентификации на основе токенов удобным и экономически выгодным вариантом для многих компаний.
Безопасно ли использование токенов?
По мере роста киберпреступности и усложнение методов атак должны совершенствоваться методы и политика защиты. Из-за растущего использования атак “грубой силой”, перебора по словарю и фишинга для захвата учетных данных пользователей становится совершенно очевидно, что аутентификации по паролю уже недостаточно, чтобы противостоять злоумышленникам.
Но, несмотря на множество преимуществ, связанных с платформой токенов, всегда остается небольшой риск. Конечно, токены на базе смартфонов невероятно удобны в использовании, но смартфоны также представляют собой потенциальные уязвимости. Токены, отправленные в виде текстов, более рискованны, потому что их можно перехватить во время передачи. Как и в случае с другими аппаратными устройствами, смартфоны также могут быть потеряны или украдены и оказаться в руках злоумышленников.
Рекомендации по аутентификации на основе токенов
Реализация надежной стратегии аутентификации имеет решающее значение, когда речь идет о том, чтобы помочь клиентам защитить свои сети от нарушения безопасности. Но для того, чтобы стратегия действительно была эффективной, требуется выполнение нескольких важных основных условий:
Правильный веб-токен. Хотя существует целый ряд веб-токенов, ни один из них не может обеспечить ту же надежность, которую предоставляет веб-токен JSON (JWT). JWT считается открытым стандартом (RFC 7519) для передачи конфиденциальной информации между несколькими сторонами. Обмен информацией осуществляется цифровой подписью с использованием алгоритма или сопряжения открытого и закрытого ключей для обеспечения оптимальной безопасности.
Использование HTTPS-соединений. HTTPS-соединения были построены с использованием протоколов безопасности, включающих шифрование и сертификаты безопасности, предназначенные для защиты конфиденциальных данных. Важно использовать HTTPS-соединение, а не HTTP или любой другой протокол соединения при отправке токенов, так как эти в ином случае возрастает риск перехвата со стороны злоумышленника.
Что такое JSON веб-токены?
В своей компактной форме веб-токены JSON состоят из трех частей, разделенных точками: заголовок, полезная нагрузка, подпись. Поэтому JWT выглядит обычно выглядит следующим образом: «xxxx.yyyy.zzzz».
Заголовок состоит из двух частей: типа токена, которым является JWT, и используемого алгоритма подписи, такого как HMAC SHA256 или RSA.
Тоже не понял, что за прикол там происходит.
Подпись же используется для проверки того, что сообщение не было изменено по пути, а в случае токенов, подписанных закрытым ключом, она также может подтвердить, что отправитель JWT тот, за себя выдает.
Выходные данные представляют собой три строки Base64-URL, разделенные точками, которые могут быть легко переданы в средах HTML и HTTP, будучи при этом более компактными по сравнению со стандартами на основе XML, такими как SAML.
Почему стоит использовать токены авторизации?
Многие люди считают, что если текущая стратегия работает хорошо (пусть и с некоторыми ошибками), то нет смысла что-то менять. Но токены авторизации могут принести множество выгод.
Они хороши для администраторов систем, которые часто предоставляют временный доступ, т.е. база пользователей колеблется в зависимости от даты, времени или особого события. Многократное предоставление и отмена доступа создаёт серьёзную нагрузку на людей.
Токены авторизации позволяют обеспечить детальный доступ, т.е. сервер предоставляет доступ на основе определенных свойств документа, а не свойств пользователя. Традиционная система логинов и паролей не допускает такой тонкой настройки деталей.
Токены авторизации могут обеспечить повышенную безопасность. Сервер содержит конфиденциальные документы, которые могут нанести компании или стране серьезный ущерб при выпуске. Простой пароль не может обеспечить достаточную защиту.
Есть и другие преимущества использования этой технологии. Но даже уже перечисленных достаточно, чтобы внедрить её на сервера.
Перепрограммируеммые OTP токены – будущее двухфакторной аутентификации
После того, как у пользователей Google и других ресурсов, поддерживающих технологию U2F, появилась возможность использовать аппаратные токены для защиты своих аккаунтов, вышло много статей о том, что аппаратные токены гораздо надежней программных или SMS. С этим трудно не согласиться. Давайте вспомним почему.
Почему перепрошиваемые аппаратные токены надежней обычных
Но секретные ключи вшиваются в токены еще на заводе-производителе. И до того, как токен попадет к конечному потребителю, он пройдет через руки внушительного числа людей. Таким образом, нельзя исключать вероятность того, что на одном из этапов производства секретные ключи могут быть скомпрометированы недобросовестным работником компании. То есть небольшой риск того, что секретный ключ токена, которым пользуетесь вы, ваши подчиненные или ваши клиенты, все же остается.
Приобретая перепрошиваемые токены, заказчик получает возможность изменить вшитые еще на заводе секретные ключи на новые, известные только ему. Тем самым исключается любая возможность того, что секретные ключи этих токенов попадут в руки злоумышленников.
Такие OTP токены также подойдут для систем двухуровневой аутентификации реализованных на основе Google Authenticator. Секретные ключи в подобных решениях генерирует сама система, потому подключить к ней обычные аппаратные токены невозможно. Но вшить секретный ключ, сгенерированный системой в перепрошиваемый токен Protectimus серии SLIM с поддержкой NFC возможно.
Если система двухуровневой аутентификации реализована на основе Google Authenticator и секретные ключи генерируются самой системой, но есть желание использовать аппаратные токены, в этом случае также можно воспользоваться перепрошиваемыми токенами.
Перепрошиваемые токены для аутентификации в Google и других системах
Перепрошиваемые аппаратные токены отлично подходят для аутентификации на большинстве популярных ресурсов – Amazon, Bitbucket, Dropbox, Electronic Arts, Facebook, GitHub, Google Apps, KeePass, Kickstarter, Microsoft account, Salesforce.com, Teamviewer, VK, War Thunder и множестве других. Пользователь сможет легко вшить в OTP токен Protectimus с поддержкой NFC любой секретный ключ, который выдаст ему ресурс. С обычными аппаратными токенами проделать такое не получится.
Следует отметить также, что большинству пользователей Google, Facebook, Twitter, Dropbox и других подобных систем токены в виде смарт-карт покажутся более удобными. И причина довольно проста – такие токены не нужно подключать к USB. Многие привыкли заходить в сеть с планшета или смартфона, где попросту нет USB-разъема. Отличным выходом для таких пользователей станет аппаратный OTP токен карта.
Перепрошиваемые OTP токены открывают новые возможности, ранее недоступные в индустрии двухфакторной аутентификации. Такие токены более выгодны для компаний и более удобны для индивидуальных пользователей. Их можно подключить практически к любой системе строгой аутентификации, их можно использовать повторно без особого труда, они станут выгодным и удобным решением, как для компаний, так и для индивидуальных пользователей.
Обзор систем аутентификации на основе одноразовых паролей (one-time password)
При предотвращении вторжений злоумышленников одной из важнейших мер по усилению безопасности являются системы многофакторной аутентификации. Среди наиболее эффективных подходов — метод одноразовых паролей (One-Time Password, OTP). Однако до сих пор ведутся споры о том, насколько его преимущества превышают недостатки. Представляем обзор глобального и российского рынков систем аутентификации с применением одноразовых паролей.
Введение
Всё чаще появляются новости о новых попытках взлома той или иной организации, и иногда успешные попытки приводят к необратимым последствиям, начиная с компрометации критически важных данных и заканчивая штрафами и прочими неприятными последствиями вплоть до требований многомиллионного выкупа (как в случае с Garmin). С появлением в нашей жизни карантина и всеобщим переходом на удалённый режим работы у злоумышленников появилось больше возможностей для манёвра, в связи с чем возросли потребности организаций в обеспечении безопасности сегментов сети. Особенно остро ощущается необходимость предотвращения несанкционированного доступа — усиления мер аутентификации пользователей.
Как известно, существует множество способов аутентификации (подробнее о них можно узнать в нашей статье). Одним из наиболее распространённых вариантов на сегодняшний день остаётся метод OTP (One-Time Password), о котором пойдёт речь в этом обзоре.
Для усиления мер защиты всё чаще применяется гибридный подход, подразумевающий использование нескольких факторов аутентификации. OTP может являться одним из них.
Алгоритм работы аутентификации с одноразовым паролем
OTP — это способ аутентификации, при котором пользователь получает пароль доступный только для одного сеанса входа или одной транзакции в информационной системе или приложении. В основу OTP заложен принцип, что генерируемый пароль действителен для одной сессии. Дополнительно он может быть ограничен по времени (обычно смена пароля осуществляется в течение 30–60 секунд).
Рисунок 1. Принцип работы One-Time Password
Для расчёта пароля принимаются два параметра — секретный ключ (начальное значение для генератора) и текущее значение времени (или внутренний счётчик). Секретный ключ хранится одновременно как в самом устройстве, так и на сервере аутентификации. Средства для генерации одноразовых паролей условно можно разбить на две группы: либо у пользователя есть физические инструменты для такой генерации, например аппаратные устройства с экраном, ключи, мобильные приложения и т. д., либо пароли приходят по некоему каналу — в виде SMS-сообщения, пуш-уведомления и др.
Где применяется One-Time Password (OTP)
Двухфакторная аутентификация популярна во многих крупных организациях. Это обусловлено увеличением объёма онлайн-транзакций из-за перехода клиентов на цифровой банкинг, быстрым ростом электронной коммерции, использованием интернет-банкинга для покупки продуктов и прочих товаров. Также распространению строгой аутентификации способствуют запуск платёжных систем в режиме реального времени и внедрение POS-систем в торговых точках для удобства пользователей.
OTP, как один из факторов, широко применяется в банковском секторе, в приложениях электронной коммерции. Многие из нас почти ежедневно сталкиваются с этой технологией, например, при попытке перевести деньги с карточки (одноразовый пароль приходит в SMS-сообщении или в виде пуш-уведомления при попытке выполнить транзакцию).
Среди решений для OTP есть как коммерческие, так и полностью бесплатные. Многие поставщики предоставляют бесплатный доступ к OTP-приложениям с определёнными ограничениями (например, по количеству пользователей), и если возникнет потребность, можно будет приобрести версию с расширенными возможностями. Таким образом, технология защиты с OTP стала доступна каждому, кто хочет усилить защиту своих данных.
Мировой рынок One-Time Password (OTP)
За последнее десятилетие многие компании начали активно усиливать меры аутентификации. Количество организаций, применяющих многофакторную аутентификацию с использованием криптографии, утроилось для потребительских приложений и увеличилось почти вдвое для корпоративных. Во многом такой рост обусловлен развитием киберпреступности. Только за последние несколько лет произошёл ряд инцидентов, в результате которых были затронуты крупнейшие организации, такие как Facebook, Google, Garmin и другие.
Метод One-Time Password на сегодняшний день остаётся одним из самых распространённых на рынке двухфакторной аутентификации. К 2018 году этот сектор оценивался в 1,5 млрд долларов США из общих для рынка двухфакторной аутентификации 3,5 млрд. Согласно результатам исследования Market Research, к 2024 году он достигнет 3,2 (из 8,9) миллиарда долларов.
Мировой рынок токенов OTP сегментирован по типу, технологии и отрасли. Так, устройства можно разделить на две основные группы — физические (hard tokens) и программные (soft tokens). В зависимости от типа физического устройства есть сегменты токенов SIM, USB-токенов, мини-токенов. По типу технологии выделяются секторы физических устройств с поддержкой NFC и биометрических токенов. Программные устройства представляют собой приложения для генерации одноразовых паролей, которые могут быть встроены в платформы двухфакторной аутентификации. Приложения устанавливаются на ноутбук, планшет или мобильное устройство. В зависимости от отрасли рынок OTP делится на сектор банковских, финансовых и страховых услуг (BFSI), розничную торговлю, правительство, «оборонку» и другие.
Технология OTP уже давно используется на мировом рынке, и долгое время одноразовые пароли передавались через SMS и пуш-уведомления. Однако на сегодняшний день многие компании и авторитетные источники призывают отказаться от такого типа передачи OTP в пользу методов, при которых пользователь имеет на руках устройство для генерации одноразовых паролей (например, токен или приложение). Не так давно Microsoft обнародовала заявление о том, что предприятиям следует отказаться от OTP, отправляемых с помощью SMS и голосовых вызовов. Согласно сообщению в блоге директора по информационной безопасности Microsoft Алекса Вайнерта, предприятиям настоятельно рекомендуется усилить свои решения, отказавшись от незашифрованных методов многофакторной аутентификации, таких как одноразовые пароли через SMS (поскольку они могут быть перехвачены или подвержены фишинговой атаке).
В 2016 г. в Минкомсвязи РФ также заявляли о том, что стоит отказаться от SMS-сообщений в пользу других методов, например отправки пуш-уведомлений. В особенности эта рекомендация относится к банковскому сектору.
Мировой рынок двухфакторной аутентификации является высококонкурентным, при этом безопасность и конфиденциальность данных играют центральную роль для клиентов и заказчиков. Разработка мер по предотвращению проникновения вредоносных программ и других угроз, вероятно, будет способствовать развитию продуктов, соперничество между игроками неизбежно усилится. Основными участниками мирового рынка двухфакторной аутентификации являются Thales, Symantec, RSA, Fujitsu, Suprema, Google и многие другие.
Наиболее активно используемые на сегодняшний день OTP-решения будут рассмотрены ниже.
Российский рынок One-Time Password (OTP)
Среди отечественных вендоров самым популярным является компания «Аладдин Р. Д.», предлагающая платное решение для организаций. Также на российском рынке представлены средства аутентификации с OTP от Rainbow Technologies, «Яндекса», TeddyID и других поставщиков, но они занимают незначительную долю рынка. Среди пользователей популярны бесплатные приложения с OTP, такие как Google Authenticator или Microsoft Authenticator.
Наиболее популярные системы OTP
В данном разделе будут рассмотрены наиболее часто используемые продукты и платформы с поддержкой OTP, разделённые на две группы в зависимости от их типа применения: корпоративные и пользовательские.
Пользовательские продукты
Эти разработки предназначены для персонального применения, однако они могут быть использованы также в составе сторонних систем.
Google Authenticator
Приложение OTP от Google является самым простым и интуитивно понятным в использовании по сравнению с остальными. Оно отвечает за генерацию 6- или 8-значных кодов, может быть интегрировано со сторонними приложениями, например менеджерами паролей. С недавних пор приложение позволяет переносить учётные записи с одного устройства на другое. Инструмент экспорта-импорта создаёт QR-код, который потребуется отсканировать на устройстве-получателе.
Рисунок 2. Интерфейс Google Authenticator
К достоинствам программы можно отнести:
К недостаткам программы можно отнести ограниченные функциональные возможности.
Подробнее с продуктом можно ознакомиться здесь.
Яндекс.Ключ
Компания «Яндекс» запустила механизм двухфакторной аутентификации и приложение «Яндекс.Ключ», генерирующее на мобильном устройстве код доступа к аккаунту на «Яндексе». Можно сказать, что приложение очень напоминает рассмотренный выше Google Authenticator. Для доступа к приложению нужен четырёхзначный PIN, срок действия одноразового пароля составляет 30 секунд. Также доступна авторизация в приложении с помощью QR-кода.
Рисунок 3. Интерфейс «Яндекс.Ключа»
К достоинствам программы можно отнести:
К недостаткам программы можно отнести не вполне удобный для использования с большим количеством токенов интерфейс.
Подробнее с продуктом можно ознакомиться здесь.
Корпоративные продукты
Аппаратные токены OTP
JaCarta WebPass
Устройство российского производителя позволяет реализовать двухфакторную аутентификацию пользователя в защищённых информационных системах с использованием одноразового или многоразового пароля. JaCarta WebPass может работать совместно с автономным высокопроизводительным сервером аутентификации JaCarta Authentication Server для обеспечения безопасного подключения к шлюзам удалённого доступа (Microsoft, Citrix, Palo Alto, Check Point, VMware, Fortinet и др. — список постоянно пополняется), корпоративным системам (CRM, порталы, электронная почта и т. д.), в том числе Microsoft SharePoint и Microsoft Outlook Web App, веб-приложениям, сайтам и облачным сервисам, системам дистанционного банковского обслуживания.
Рисунок 4. USB-токен JaCarta WebPass
К достоинствам JaCarta WebPass можно отнести:
Стоит отметить, что токен имеет широкую функциональность (например, доступно создание и защищённое хранение сложных многоразовых паролей).
Подробнее с продуктом можно ознакомиться здесь.
RSA SecurID
Генератор (брелок) содержит встроенные высокоточные часы, которые каждые 60 секунд используются для вычисления нового пароля. Второй параметр, применяемый для генерации одноразового пароля, — вектор начальной инициализации (Seed). Он «прошивается» в генераторе при его производстве. Для аутентификации сервер Authentication Manager вычисляет текущий пароль пользователя используя показания системных часов и начальный вектор инициализации (с каждым аппаратным токеном поставляется файл с Seed, который загружается на сервер).
Рисунок 5. Токен RSA
В последнее время вместо токенов всё чаще используется приложение для смартфона.
Рисунок 6. Интерфейс приложения RSA SecurID
SecurID используется для защиты VPN, беспроводных сетей, веб-приложений, порталов дистанционного банковского обслуживания, терминальных серверов Citrix и Windows, доступа привилегированных пользователей, локального доступа к рабочим станциям.
Основное достоинство системы заключается в том, что SecurID «из коробки» работает с более чем 350 партнёрскими продуктами, включая веб-серверы (Oracle Application Server, Microsoft IIS, Apache и др.), VPN и прочие сетевые устройства (Cisco, Check Point, Microsoft и др.), терминальные серверы (Citrix, Microsoft), ОС Windows. Есть API, позволяющее встроить SecurID практически в любую систему.
Подробнее с продуктом можно ознакомиться здесь.
SafeNet
SafeNet OTP от Thales — это аппаратные токены OTP, которые обеспечивают возможности двухфакторной аутентификации для широкого спектра ресурсов и поддерживают функции протоколов OATH TOTP и HOTP. Компания представила несколько токенов: SafeNet OTP 110 (основным отличием является водонепроницаемый корпус), SafeNet eToken Pass и SafeNet Gold (в этой версии реализован дополнительный механизм защиты в виде пользовательского PIN). Существуют также OTP-карты SafeNet (OTP Display Card), которые взаимодействуют с SafeNet Trusted Access — сервисом управления облачным доступом, который предлагает технологию единого входа, защищённого детальными политиками доступа.
Рисунок 7. Пример токена SafeNet OTP 110 и смарт-карты SafeNet
К достоинствам SafeNet можно отнести:
В качестве недостатков следует отметить:
Подробнее с продуктом можно ознакомиться здесь.
Приложения и платформы с возможностью аутентификации через OTP
Duo Security
Duo Security — система многофакторной аутентификации, реализованная по облачной модели. В настоящее время поглощена Cisco. Помимо широко распространённой корпоративной версии системы, которая также позволяет решать административные задачи, существует бесплатная версия для домашнего использования. Приложение Duo Mobile даёт возможность выбора удобного метода аутентификации: телефонный звонок, SMS-сообщение, код Duo Mobile, Duo Push, электронный ключ.
Рисунок 8. Пример окна аутентификации Duo
К достоинствам DUO Mobile можно отнести:
К недостаткам системы можно отнести:
Подробнее с продуктом можно ознакомиться здесь.
ESET Secure Authentication
ESET Secure Authentication (ESA) предлагает пользователю большое количество способов доставки одноразовых паролей, начиная от SMS‑сообщений и заканчивая аппаратными токенами и пуш‑уведомлениями. Кроме того, когда пользователь получает пуш-уведомление на мобильное устройство или смарт-часы, в сообщении указывается, с какого IP-адреса производится подключение к ресурсам. Также есть возможность внести доверенные IP-адреса (подсети) пользователей в списки исключений, позволяя им подключаться к корпоративным ресурсам только по логину и паролю.
Рисунок 9. Интерфейс ESET Secure Authentication
К достоинствам системы можно отнести:
К недостаткам системы можно отнести:
Подробнее с решением можно ознакомиться в нашем обзоре.
GateKeeper Enterprise
Ещё одно решение для многофакторной аутентификации с OTP — это GateKeeper. Помимо стандартных функциональных возможностей здесь представлена автоматическая блокировка устройства при уходе сотрудника с рабочего места. Корпоративный вариант системы позволяет осуществлять интеграцию с другими системами безопасности и аутентификации, такими как Azure AD ADFS.
Рисунок 10. Внешний вид приложения GateKeeper
К достоинствам системы можно отнести:
К недостаткам системы можно отнести:
Подробнее с продуктом можно ознакомиться здесь.
JaCarta Authentication Server (JAS) + Aladdin 2FA
JaCarta Authentication Server (JAS) — автономный высокопроизводительный сервер аутентификации, поддерживающий работу как c аппаратными OTP-токенами (например, JaCarta WebPass), так и с мобильными приложениями, реализующими функциональность OTP-токенов: Aladdin 2FA, разработанным компанией «Аладдин Р. Д.», а также сторонними продуктами, например Google Authenticator, «Яндекс.Ключом» и любыми другими работающими по такому же стандарту. Совместное использование JAS с Aladdin 2FA позволяет обеспечить повышенный уровень защищённости.
Преимущества использования JAS:
JAS зарегистрирован в Едином реестре российских программ для электронных вычислительных машин и баз данных (№ 2128).
Aladdin 2FA — мобильное приложение для генерации одноразовых паролей по времени (TOTP) или по событию (HOTP). По функциональным возможностям приложение Aladdin 2FA — такое же простое и интуитивное, как Google Authenticator, однако при корпоративном использовании Aladdin 2FA совместно с сервером аутентификации JaCarta Authentication Server приложение надёжно защищает передаваемый пользователю секрет. Кроме того, Aladdin 2FA защищает аккаунт (данные для генерации одноразовых паролей) от клонирования при передаче и активации.
Рисунок 11. Интерфейс приложения Aladdin 2FA и сообщение о невозможности повторной активации аккаунта
Aladdin 2FA позволяет защитить данные приложения при помощи биометрии или PIN-кода. Самостоятельно попробовать и сравнить различные сценарии работы приложения Aladdin 2FA (открытый по аналогии с Google Authenticator и защищённый Aladdin 2FA) можно на демо-портале.
К достоинствам системы можно отнести:
К недостаткам системы можно отнести:
Подробнее с продуктом можно ознакомиться здесь.
Microsoft MFA
Этот комплекс аутентификации входит в экосистему сервисов Microsoft Azure и Office 365. Когда пользователь входит в приложение или службу и получает запрос многофакторной аутентификации, он может выбрать одну из зарегистрированных форм дополнительной проверки: приложение Microsoft Authenticator, токен оборудования OATH, SMS, голосовой звонок.
Рисунок 12. Интерфейс приложения Microsoft Authenticator
Также система интегрируется с Active Directory, что позволяет легко внедрять её на уровне предприятия при условии использования доменной службы Microsoft, и может функционировать в качестве отдельного облачного сервиса.
К достоинствам системы можно отнести:
К недостаткам системы можно отнести:
Подробнее с продуктом можно ознакомиться здесь.
Multifactor
«Мультифактор» — облачная система многофакторной аутентификации с поддержкой корпоративного SSO для любого количества пользователей и информационных ресурсов. Система предназначена для защиты сайтов, приложений, VPN- / VDI- / RDP-соединений, Windows- и Linux-инфраструктуры дополнительным фактором доступа.
В мобильном приложении реализована технология интеллектуальной адаптивной аутентификации с комбинацией пуш-запроса доступа в одно касание и одноразового TOTP-кода для обеспечения максимальной безопасности и удобства использования.
Рисунок 13. Интерфейс приложения Multifactor
К достоинствам приложения Multifactor можно отнести:
К недостаткам системы можно отнести следующее:
SafeNet Authentication Services
SafeNet Trusted Access (STA) — это облачное решение, которое упрощает управление доступом как к облачным службам, так и к корпоративным приложениям. STA поддерживает методы аутентификации OTP через пуш-уведомление в приложении, через SMS или с использованием аппаратных токенов.
Приложение для генерации OTP SafeNet MobilePASS совместимо с широким спектром мобильных клиентов, а также обеспечивает удобство управления системами удалённого доступа, такими как VPN, приложениями Citrix, облачными приложениями и веб-порталами.
Рисунок 14. Интерфейс приложения SafeNet MobilePASS
Также помимо MobilePASS в качестве приложения для генерации OTP в STA можно использовать Google Authenticator.
К достоинствам системы можно отнести:
К недостаткам системы можно отнести:
Недостатки технологии One-Time Password (OTP)
Как и любая другая технология, OTP имеет ряд изъянов, которые стоит принять во внимание.
Выводы
Подводя итог, следует отметить, что технология One-Time Password многократно повышает устойчивость информационной системы к атаке в сравнении с традиционными статическими парольными фразами. Для повышения общего уровня безопасности предпочтительнее сочетать OTP с другими методами, такими как биометрия или PIN.
Системы, которые присылают одноразовые пароли на телефон, небезопасны. Более правильный способ — использование аппаратных устройств. Мобильные приложения — это компромисс между безопасностью и удобством.