Два фактора аутентификации
Современная жизнь диктует необходимость в универсальных средствах надежной безопасной аутентификации. Пользователь желает получать доступ к одной и той же учетной записи и с десктопа, и с телефона, и с планшета.
Железная аутентификация
Что же такое двухфакторная аутентификация? Казалось бы, ответ очевиден: первым фактором является некоторая вещь, которой обладает пользователь, а вторым – то, что пользователь знает. Вроде бы все просто? Нет, не просто. Давайте разбираться.
Чем определяется надежность двухфакторной аутентификации? Во-первых, невозможностью изготовить дубликат предмета, которым должен обладать человек.
Очень хорошо на роль такого уникального предмета подходят смарт-карты и USB-токены, которые могут генерировать неизвлекаемые криптографические ключи. Однажды сгенерированный, такой ключ используется внутри чипа смарт-карты или токена, не покидая его. Поскольку извлечь такой ключ нельзя, то и изготовить дубликат смарт-карты не представляется возможным.
Второй фактор – фактор знания должен быть неразрывно связан с предметом. Для смарт-карт таким фактором является PIN-код.
В качестве средства двухфакторной аутентификации часто позиционируются аппаратные генераторы одноразовых паролей или OTP-токены. Существует множество реализаций аппаратных генераторов одноразовых паролей. Очевидно, что каждое устройство содержит уникальный код, и это удовлетворяет критерию первого фактора аутентификации. Однако для считывания одноразового пароля, как правило, не применяется PIN-код. Это означает, что условие связанности первого и второго факторов не выполняется и аутентификация, реализованная при помощи таких устройств, не является в полном смысле двухфакторной. Исключение составляют устройства, которые позволяют считывать одноразовые пароли после ввода PIN-кода, но они довольно редки.
В качестве второго фактора аутентификации может использоваться и биометрия. Например, «Match-On-Card» и ей подобные технологии позволяют заменить ввод PIN-кода анализом отпечатка пальца, что добавляет удобства использования, поскольку не нужно запоминать и вводить PIN-код.
Таким образом, можно сказать, что широко применяются следующие виды аутентификации:
- однофакторная аутентификация. Чаще всего по логину/паролю, которые могут вводиться как вручную, так и при помощи аппаратных или программных менеджеров паролей;
- двухфакторная аутентификация;
- двухэтапная верификация (two-step verification), когда к однофакторной аутентификации по логину/паролю добавляется дополнительный фактор в виде, например, одноразового пароля;
- аутентификация по альтернативному каналу (out-of-band), которая похожа на двухэтапную верификацию, но с тем отличием, что верификация производится по другому каналу связи.
Подзаг//Фактор или этап
Многофакторная аутентификация обеспечивает существенно бóльшую безопасность. Этим, конечно, успешно пользуются маркетологи, пытаясь выдавать двухэтапную верификацию за двухфакторную аутентификацию.
«Честная» двухфакторная аутентификация основана, как правило, на применении аппаратных устройств, реализующих функции асимметричной криптографии. Первым фактором аутентификации в этом случае представляется само аппаратное устройство, содержащее приватный ключ пользователя. Приватный ключ должен быть неизвлекаемым, для того чтобы исключить возможность создания дубликата. Вторым фактором будет PIN-код, знание которого дает пользователю возможность воспользоваться устройством. Очень важна взаимосвязь PIN-кода и устройства – одним без другого воспользоваться нельзя.
Исторически для двухфакторной аутентификации применяются устройства на основе технологии контактных смарт-карт. Примером может служить CAC (Common Access Card) – чиповая контактная смарт-карта, которая широко применяется в государственных органах США, включая Министерство обороны и другие силовые ведомства. На использование этих карт ориентировано множество информационных систем и онлайн-сервисов. С появлением планшетных компьютеров встала задача обеспечения аутентификации на этих сервисах при помощи CAC с мобильных устройств. Нюанс состоит в том, что подключать обычный считыватель смарт-карт к мобильному устройству неудобно и не всегда возможно. Кроме того, мобильные операционные системы не рассчитаны на подключение внешних смарт-карт – там архитектурно отсутствует инфраструктура для работы со смарт-картами типа PC/SC. Поэтому были разработаны специальные считыватели смарт-карт с Bluetooth-интерфейсом и программные библиотеки для работы с ними, которые позволили разрабатывать клиентские мобильные приложения для работы с онлайн-сервисами.
В России исторически большей популярностью пользуются не смарт-карты, а USB-токены. Необходимость применения на мобильных платформах средств двухфакторной аутентификации и электронной подписи привела к созданию аппаратного токена с беспроводным универсальным Bluetooth-интерфейсом, который может подключаться и по USB-интерфейсу. Пока единственным на российском рынке устройством такого класса является Рутокен Bluetooth.
Теперь посмотрим, что нам предлагают маркетологи под видом двухфакторной аутентификации. Как правило, это так называемая двухэтапная верификация. Отличие от двухфакторной аутентификации состоит в том, что факторы аутентификации не связаны друг с другом. Например, для аутентификации применяется логин/пароль + одноразовый пароль, сгенерированный каким-либо устройством – токеном или приложением на телефоне. Казалось бы, что присутствуют два фактора, но они не являются разнородными! Пароль – это фактор знания и одноразовый пароль – это тоже фактор знания, пускай даже он и сгенерирован аппаратным устройством.
Для систем с аутентификацией по SMS можно предположить, что телефон пользователя является фактором аутентификации. На самом деле все несколько сложнее, чем представляется. Идентификатором пользователя в сотовой сети является SIM-карта, к которой привязан номер телефона абонента. Одну и ту же SIM-карту можно использовать на разных устройствах – телефонах, планшетах, модемах. Саму SIM-карту также можно заменять, привязывая ее к тому же номеру, поэтому говорить о том, что владение телефоном или SIM-картой считается фактором аутентификации, нельзя. Действительным фактором аутентификации является сам одноразовый пароль, полученный через SMS.
Подзаг//Веб-аутентификация
Асимметричная криптография очень хорошо подходит для двухфакторной аутентификации. Технологии смарт-карт давно и хорошо развиты, имеется масса устройств, которые можно было бы использовать.
Тем не менее инфраструктура открытых ключей (PKI) не очень хорошо подходит для аутентификации на интернет-ресурсах. Главный ограничивающий фактор – это сложность и громоздкость необходимой инфраструктуры, которая к тому же довольно дорога в эксплуатации. Кроме того, необходимо обеспечивать доверие между сервисом и клиентом, а для этого вовсе не нужна доверенная третья сторона, которой является центр сертификации, входящий в PKI.
Для аутентификации не обязательно обеспечивать доверие между пользователями системы, а самому сервису достаточно доверять тому факту, что публичный ключ предоставлен пользователем, который регистрировал аккаунт. Поэтому нет необходимости использовать X.509 сертификаты, а достаточно передать по защищенному каналу публичный ключ пользователя. Защита канала в данном случае необходима для исключения MitM-атаки в процессе регистрации, чтобы злоумышленник не перехватил и не подменил публичный ключ пользователя на свой.
Среди преимуществ такого подхода можно упомянуть отсутствие привязки к электронной почте, возможность до определенной степени обеспечить анонимность пользователя.
К сожалению, не всегда возможно установить драйвер для смарт-карты или USB-токена, поэтому для веб-аутентификации предпочтительно использовать устройства, драйверы которых включены в современные операционные системы. Хорошими примерами являются драйвер USB HID (Human Interface Device) или драйвер flash-карт. Примером такого подхода является Рутокен Web, выпускаемый компанией «Актив». Этот USB-токен позволяет производить аутентификацию пользователей на веб-ресурсах с использованием криптографического протокола типа запрос-ответ. Токен не требует установки драйверов, поскольку является USB HID-устройством и не требует прав администратора для загрузки и установки клиентской части – кросс-платформенного универсального плагина, который устанавливается в браузер пользователя.
Существует ряд интересных, но достаточно экзотических устройств в формате SD- или microSD-карт, которые содержат не только flash-накопитель, но и чип смарт-карты. Наличие такого чипа дает богатые возможности для реализации двухфакторной аутентификации как на «классических» системах, так и на мобильных устройствах. Для работы с этим чипом не требуется подсистема смарт-карт операционной системы. Вместо этого коммуникация с чипом осуществляется через интерфейс файловой системы.
Подзаг//Стандарты
Microsoft развивает концепцию двухфакторной аутентификации, которую можно условно назвать «пользовательское устройство как средство аутентификации», реализованную в Microsoft Passport. Первым фактором в этой концепции является сам компьютер (стационарный, ноутбук или мобильное устройство). Он, а точнее TPM (Trusted Platform Module), аппаратно встроенный в систему, является средством генерации и хранения неизвлекаемых криптографических ключей, которые используются для аутентификации. По своей сути подход аналогичен использованию смарт-карт, но важным отличием является привязка к пользовательскому устройству, т. е. невозможность перенести идентификационную информацию с одного устройства на другое.
Особого упоминания заслуживает технология U2F (Universal Second Factor), в последние годы продвигаемая FIDO Alliance, куда входят и гиганты мировой IT-индустрии (Google, Microsoft, Amazon, Intel, Infenion, NXP, Lenovo, RSA), компании из финансовой сферы (PayPal, MasterCard, VISA, Goldman Cachs, ING) и множество компаний меньшего масштаба. Универсальность и стандартизованность технологии обещают ей большое будущее, но пока она не получила массового распространения. Скорее всего, это обусловлено и привычками пользователей, и небесплатностью устройств, применяемых для аутентификации.
Сама технология заслуживает отдельного рассмотрения, потому в этой статье придется ограничиться самым общим описанием. Суть технологии заключается в следующем. Для аутентификации используется веб-браузер, поддерживающий спецификацию U2F. На сегодняшний день таковым является Google Chrome. В процессе регистрации пользователь предъявляет U2F устройство, на котором генерируются криптографические ключи, которые будут использоваться для аутентификации. Публичные ключи отправляются на веб-ресурсы и хранятся в учетных записях пользователей. Для аутентификации используется криптографический протокол типа запрос-ответ, основанный на асимметричной криптографии. Известные реализации U2F тем не менее пошли в сторону удобства использования и реализуют, строго говоря, двухэтапную верификацию, а не двухфакторную аутентификацию. Для аутентификации пользователь вводит логин и пароль, а затем подключает устройство, которое выполняет операции без ввода PIN-кода.
Сегодня практически все более-менее современные мобильные устройства оснащаются беспроводными интерфейсами, поэтому наличие U2F-спецификаций для беспроводных интерфейсов NFC и Bluetooth представляет собой мощный фактор в пользу этой технологии. Среди производителей чипов наблюдается некоторое различие в подходах. Например, компания NXP выпускает целое семейство контроллеров, на базе которых можно производить универсальные устройства для аутентификации, в том числе и с комбинированными интерфейсами – контактным и бесконтактными в одном устройстве. Infineon подходит к проблеме с другой стороны, выпуская отдельные устройства для разных интерфейсов: USB-токен, NFC-карту, BLE-устройство. Альянс предлагает процедуру сертификации устройств на соответствие спецификациям U2F. На сегодняшний день сертифицировано довольно мало готовых устройств, но с расширением применения и появлением новых производителей U2F-устройств количество сертифицированных устройств будет увеличиваться.
Подзаг//Заключение
Двухфакторная аутентификация может применяться не только для целей собственно аутентификации. Важным преимуществом, которое дает двухфакторная аутентификация, можно считать уникальность пользователя, которая обеспечивается невозможностью «размножения» аутентификационной информации. Например, логин и пароль могут использовать сколько угодно человек. Для сервисов, которые предоставляют платный доступ к интернет-базам данных, это представляет определенную проблему, поскольку купленный группой пользователей вскладчину аккаунт уменьшает доходы сервиса. В таком случае внедрение двухфакторной аутентификации делает групповое использование одной учетной записи невозможным и вынуждает пользователей покупать персональные аккаунты.