Краткая вводная в OTP и двухфакторную аутентификацию
В продуктах 1С-Битрикс с 10-ой версии существует возможность проводить аутентификацию пользователя с помощью одноразовых паролей (
One Time Password, OTP). При входе на сайт или портал пользователь должен набрать не только свои логин и пароль, но и одноразовый пароль. Пароль генерируется специальным аппаратным устройством -- токеном (для Битрикса это в большинстве случаев будет Aladdin eToken PASS) -- или программой (для смартфонов и планшетов 1С-Битрикс разработал собственные приложения для
Android и
iPhone).
Зачем это нужно?
Это вводит дополнительный фактор аутентификации и мы получаем двухфакторную аутентификацию. В случае с обычной парой логин/пароль аутентификация основана лишь на одном факторе -- знании. Пользователь
знает логин и пароль, поэтому может аутентифицироваться. Такой подход не может быть использован пользователями, которые имеют расширенные права в информационной системе или работают с важной информацией. Пароль можно подсмотреть или перехватить. Но самое неприятное в том, что злоумышленник, получив логин/пароль может пользоваться ими без ведома законного пользователя. Таким образом хищения и модификация информации могут продолжаться долгое время, пока их кто-нибудь заметить.
OTP вводит второй фактор аутентификации -- владение. Пользователь должен еще и
владеть токеном или смартфоном. В отличие от пароля, который является информацией и, следовательно, может быть скопирован сколько угодно раз, клонировать телефон сложнее, а токен -- практически невозможно. Если устройство потеряно или украдено, владелец об этом узнает достаточно быстро, поэтому использовать доступ незаметно от законного владельца невозможно.
Справедливости ради надо отметить, что приложения для смартфона не обеспечивают нужной защиты от копирования, это скорее "защита от дурака". Имея доступ к телефону, генератор одноразовых паролей можно скопировать/повторить, поэтому такие решения it-in не использует. Токен же, наоборот, аппаратно защищен и копированию за разумные деньги и время не поддается.
По каким-то причинам 1С-Битрикс рекомендует использовать eToken PASS от компании Aladdin. Устройство генерирует шесть цифр одноразового пароля на встроенном дисплее, а пользователь набирает их на клавиатуре при аутентификации:
Я же предлагаю посмотреть на куда более интересное устройство --
YubiKey от компании Yubico.
Встречайте YubiKey
YubiKey -- это маленькое USB-устройство, напоминающее флешку. Оно также генерирует одноразовые пароли, но эмулирует клавиатуру и "вводит" их само, т.е. YubiKey набирает одноразовый пароль за пользователя. И даже "давит" Enter за пользователя, если это указано в настройках. На корпусе есть светодиод и одна сенсорная кнопка, при нажатии на которую будет сгенерирован и набран одноразовый пароль.
Настройка нового YubiKey на работу с нужным сайтом или порталом занимает минуту. YubiKey программируется с помощью специальной утилиты на генерацию 6 знаковых паролей OATH-HOTP, затем случайный ключ и два последовательных пароля прописываются пользователю в Битриксе. Вся процедура настройки YubiKey занимает в буквальном смысле несколько кликов:
У YubiKey есть ряд преимуществ перед конкурентами. Во-первых, два слота. В случае eToken PASS нужно иметь по одному токену на каждый сайт. YubiKey -- как два ключа в одном, можно настроить два независимых генератора, например, один для работы с внешним сайтом компании, другой -- с внутренним порталом. Короткое нажатие кнопки (1-2 с) вызывает первый генератор, длинное нажатие (3-5 с) -- второй.
Во-вторых, YubiKey кроме OATH-HOTP в различных вариантах поддерживает запрос-ответ и статичные пароли. Это очень удобно, ведь не Битриксом единым живем, для других сервисов нужны другие протоколы/алгоритмы. Например, популярный запоминатель паролей
LastPass поддерживает YubiKey.
Так ключ выглядит в сравнении со стандартной батарейкой АА...
...а так в ноутбуке нашего технического директора (и автора этой заметки). В соседнем USB-разъеме стоит (и совсем не мешает) приемник от мышки Microsoft Arc Touch, а синяя "флешка" на столе -- это стандартный eToken от Aladdin.