Аутентификатор — это средство , используемое для подтверждения личности пользователя, [1] [2] то есть для выполнения цифровой аутентификации. Человек аутентифицируется в компьютерной системе или приложении, демонстрируя, что он или она владеет и контролирует аутентификатор. [3] [4] В простейшем случае аутентификатор — это обычный пароль .
Используя терминологию Руководства по цифровой идентификации NIST, [3] сторона, которая должна быть аутентифицирована, называется заявителем , а сторона, проверяющая личность заявителя, называется верификатором . Когда заявитель успешно демонстрирует верификатору владение и контроль над одним или несколькими аутентификаторами посредством установленного протокола аутентификации, верификатор может сделать вывод о личности заявителя.
Аутентификаторы можно охарактеризовать с точки зрения секретов, факторов и физических форм.
Каждый аутентификатор связан по крайней мере с одним секретом, который заявитель использует для демонстрации владения и контроля аутентификатора. Поскольку злоумышленник может использовать этот секрет, чтобы выдать себя за пользователя, секрет аутентификатора должен быть защищен от кражи или потери.
Тип секрета является важной характеристикой аутентификатора. Существует три основных типа секрета аутентификатора: запомненный секрет и два типа криптографических ключей, либо симметричный ключ, либо закрытый ключ.
Запомненный секрет предназначен для запоминания пользователем. Известным примером запомненного секрета является общий пароль , также называемый кодом доступа, парольной фразой или персональным идентификационным номером (PIN).
Секрет аутентификатора, известный как заявителю, так и проверяющему, называется общим секретом . Например, запомненный секрет может быть общим или нет. Симметричный ключ является общим по определению. Закрытый ключ не является общим.
Важным типом секрета, который одновременно запоминается и передается другим, является пароль. В особом случае пароля аутентификатором является секрет.
Криптографический аутентификатор — это тот, который использует криптографический ключ . В зависимости от материала ключа криптографический аутентификатор может использовать криптографию с симметричным ключом или криптографию с открытым ключом . Оба избегают запоминания секретов, а в случае криптографии с открытым ключом также нет общих секретов , что является важным отличием.
Примерами криптографических аутентификаторов являются аутентификаторы OATH и аутентификаторы FIDO . Название OATH является аббревиатурой от слов "Open AuTHentication", а FIDO означает Fast IDentity Online. Оба являются результатом общеотраслевого сотрудничества по разработке открытой эталонной архитектуры с использованием открытых стандартов для содействия принятию строгой аутентификации.
В качестве контрпримера, аутентификатор пароля не является криптографическим аутентификатором. Подробности см. в разделе #Примеры.
Симметричный ключ — это общий секрет, используемый для выполнения криптографии с симметричным ключом. Заявитель хранит свою копию общего ключа в выделенном аппаратном аутентификаторе или программном аутентификаторе, реализованном на смартфоне. Проверяющий хранит копию симметричного ключа.
Пара открытого и закрытого ключей используется для выполнения криптографии с открытым ключом. Открытый ключ известен (и пользуется доверием) верификатору, в то время как соответствующий закрытый ключ надежно привязан к аутентификатору. В случае выделенного аппаратного аутентификатора закрытый ключ никогда не покидает пределы аутентификатора.
Аутентификатор — это нечто уникальное или отличительное для пользователя ( то, что у него есть ), активируемое либо PIN-кодом ( то, что человек знает ), либо биометрическое («что-то, что является уникальным для него самого»). Аутентификатор, который обеспечивает только один из этих факторов, называется однофакторным аутентификатором, тогда как многофакторный аутентификатор включает два или более факторов. Многофакторный аутентификатор — это один из способов достижения многофакторной аутентификации . Комбинация двух или более однофакторных аутентификаторов не является многофакторной аутентификацией, но может быть подходящей в определенных условиях.
Аутентификаторы могут иметь различные физические формы (за исключением запомненного секрета, который нематериален). Например, аутентификатор можно держать в руке или носить на лице, запястье или пальце. [5] [6] [7]
Удобно описывать аутентификатор с точки зрения его аппаратных и программных компонентов. Аутентификатор бывает аппаратным или программным в зависимости от того, хранится ли секрет в аппаратном или программном обеспечении соответственно.
Важный тип аппаратного аутентификатора называется ключом безопасности, [8] также называемым токеном безопасности (не путать с токенами доступа , токенами сеанса или другими типами токенов безопасности). Ключ безопасности хранит свой секрет в оборудовании, что предотвращает экспорт секрета. Ключ безопасности также устойчив к вредоносным программам, поскольку секрет никогда не доступен программному обеспечению, работающему на хост-машине.
Программный аутентификатор (иногда называемый программным токеном ) может быть реализован на электронном устройстве общего назначения, таком как ноутбук , планшетный компьютер или смартфон . Например, программный аутентификатор, реализованный как мобильное приложение на смартфоне заявителя, является типом телефонного аутентификатора. Чтобы предотвратить доступ к секрету, программный аутентификатор может использовать доверенную среду выполнения процессора или доверенный платформенный модуль (TPM) на клиентском устройстве.
Платформенный аутентификатор встроен в конкретную платформу клиентского устройства, то есть он реализован на устройстве. Напротив, роуминговый аутентификатор — это кроссплатформенный аутентификатор, который реализован вне устройства. Роуминговый аутентификатор подключается к платформе устройства через транспортный протокол, такой как USB .
В следующих разделах описываются узкие классы аутентификаторов. Для более полной классификации см. NIST Digital Identity Guidelines. [9]
Чтобы использовать аутентификатор, заявитель должен явно указать свое намерение на аутентификацию. Например, каждый из следующих жестов достаточен для установления намерения:
Последнее называется проверкой присутствия пользователя (TUP). Для активации однофакторного аутентификатора ( чего-то, что у вас есть ) заявителю может потребоваться выполнить TUP, что позволяет избежать непреднамеренного срабатывания аутентификатора.
Пароль — это секрет, который должен быть запомнен заявителем и передан проверяющему. Аутентификация пароля — это процесс, при котором заявитель демонстрирует знание пароля, передавая его по сети проверяющему. Если переданный пароль совпадает с ранее переданным секретом, аутентификация пользователя считается успешной.
Одноразовые пароли (OTP) используются с 1980-х годов. [ необходима цитата ] В 2004 году на ежегодной конференции RSA была анонсирована Архитектура открытой аутентификации для безопасной генерации OTP . [10] [11] Инициатива по открытой аутентификации (OATH) была запущена годом позже. [ необходима цитата ] Из этой работы выросли два стандарта IETF: алгоритм одноразового пароля на основе HMAC (HOTP) и алгоритм одноразового пароля на основе времени (TOTP), указанные в RFC 4226 и RFC 6238 соответственно. Под OATH OTP мы подразумеваем либо HOTP, либо TOTP. OATH сертифицирует соответствие стандартам HOTP и TOTP. [12]
Традиционный пароль ( то, что известно ) часто комбинируется с одноразовым паролем ( то, что есть ) для обеспечения двухфакторной аутентификации. [13] И пароль, и OTP передаются по сети проверяющему. Если пароль совпадает с ранее предоставленным секретом, и проверяющий может подтвердить значение OTP, аутентификация пользователя проходит успешно.
Одноразовые пароли генерируются по требованию выделенным аутентификатором OATH OTP, который инкапсулирует секрет, который ранее был предоставлен верификатору. Используя аутентификатор, заявитель генерирует OTP с использованием криптографического метода. Верификатор также генерирует OTP с использованием того же криптографического метода. Если два значения OTP совпадают, верификатор может сделать вывод, что заявитель владеет общим секретом.
Известным примером аутентификатора OATH является Google Authenticator [14] , аутентификатор на базе телефона, реализующий как HOTP, так и TOTP.
Мобильный push-аутентификатор по сути является нативным приложением, работающим на мобильном телефоне заявителя. Приложение использует криптографию с открытым ключом для ответа на push-уведомления. Другими словами, мобильный push-аутентификатор является однофакторным криптографическим программным аутентификатором. Мобильный push-аутентификатор ( то, что у вас есть ) обычно объединяется с паролем ( то, что вы знаете ) для обеспечения двухфакторной аутентификации. В отличие от одноразовых паролей, мобильный push-аутентификатор не требует общего секрета помимо пароля.
После того, как заявитель аутентифицируется с помощью пароля, верификатор делает запрос аутентификации по внешнему каналу доверенной третьей стороне, которая управляет инфраструктурой открытого ключа от имени верификатора. Доверенная третья сторона отправляет push-уведомление на мобильный телефон заявителя. Заявитель демонстрирует владение и контроль над аутентификатором, нажимая кнопку в пользовательском интерфейсе, после чего аутентификатор отвечает утверждением с цифровой подписью. Доверенная третья сторона проверяет подпись на утверждении и возвращает ответ аутентификации верификатору.
Запатентованный протокол аутентификации push-уведомлений для мобильных устройств работает на внеполосном вторичном канале, что обеспечивает гибкие возможности развертывания. Поскольку протокол требует открытого сетевого пути к мобильному телефону заявителя, если такой путь недоступен (например, из-за проблем с сетью), процесс аутентификации не может быть продолжен. [13]
Универсальный аутентификатор FIDO 2nd Factor (U2F) ( то, что есть у кого-то ) — это однофакторный криптографический аутентификатор, который предназначен для использования в сочетании с обычным веб-паролем. Поскольку аутентификатор полагается на криптографию с открытым ключом, U2F не требует дополнительного общего секрета помимо пароля.
Для доступа к аутентификатору U2F заявитель должен выполнить тест присутствия пользователя (TUP), который помогает предотвратить несанкционированный доступ к функционалу аутентификатора. На практике TUP состоит из простого нажатия кнопки.
Аутентификатор U2F взаимодействует с соответствующим веб- агентом пользователя , который реализует API JavaScript U2F. [15] Аутентификатор U2F обязательно реализует протокол CTAP1/U2F, один из двух протоколов, указанных в протоколе FIDO Client to Authenticator . [16]
В отличие от мобильной push-аутентификации, протокол аутентификации U2F полностью работает на переднем канале. Требуется два круговых обхода. Первый круговой обход — это обычная аутентификация по паролю. После того, как заявитель аутентифицируется с помощью пароля, верификатор отправляет вызов соответствующему браузеру, который взаимодействует с аутентификатором U2F через пользовательский API JavaScript. После того, как заявитель выполняет TUP, аутентификатор подписывает вызов и возвращает подписанное утверждение верификатору через браузер.
Чтобы использовать многофакторный аутентификатор, заявитель выполняет полную проверку пользователя. Многофакторный аутентификатор ( то, что у кого-то есть ) активируется PIN-кодом ( то, что человек знает ), или биометрическими данными ( то, что является уникальным для него самого"; например, отпечатки пальцев, распознавание лица или голоса ), или каким-либо другим методом проверки. [3] ,
Чтобы снять наличные в банкомате (ATM), клиент банка вставляет карту ATM в банкомат и вводит персональный идентификационный номер (PIN-код). Введенный PIN-код сравнивается с PIN-кодом, сохраненным на чипе карты. Если они совпадают, снятие денег в банкомате может быть продолжено.
Обратите внимание, что снятие наличных в банкомате подразумевает запоминание секрета (т. е. PIN-кода), но истинное значение секрета заранее неизвестно банкомату. Машина слепо передает введенный PIN-код на карту, которая сравнивает ввод клиента с секретным PIN-кодом, сохраненным на чипе карты. Если они совпадают, карта сообщает об успешном завершении в банкомат, и транзакция продолжается.
Карта банкомата является примером многофакторного аутентификатора. Сама карта — это то, что у вас есть , а PIN-код, хранящийся на чипе карты, предположительно, известен . Предъявление карты банкомату и демонстрация знания PIN-кода — это своего рода многофакторная аутентификация.
Secure Shell (SSH) — это клиент-серверный протокол, который использует криптографию с открытым ключом для создания защищенного канала в сети. В отличие от традиционного пароля, ключ SSH является криптографическим аутентификатором. Основной секрет аутентификатора — это закрытый ключ SSH, который используется клиентом для цифровой подписи сообщения. Соответствующий открытый ключ используется сервером для проверки подписи сообщения, что подтверждает, что заявитель владеет и контролирует закрытый ключ.
Чтобы избежать кражи, закрытый ключ SSH ( то, что у вас есть ) может быть зашифрован с помощью парольной фразы ( то, что вы знаете ). Чтобы инициировать процесс двухфакторной аутентификации, заявитель предоставляет парольную фразу клиентской системе.
Как и пароль, парольная фраза SSH является запомненным секретом, но на этом сходство заканчивается. В то время как пароль является общим секретом, который передается по сети, парольная фраза SSH не является общим, и, более того, использование парольной фразы строго ограничено клиентской системой. Аутентификация через SSH является примером аутентификации без пароля , поскольку она избегает передачи общего секрета по сети. Фактически, аутентификация SSH вообще не требует общего секрета.
Стандарт протокола FIDO U2F стал отправной точкой для проекта FIDO2 , совместного проекта консорциума World Wide Web (W3C) и альянса FIDO. Результаты проекта включают стандарт W3C Web Authentication ( WebAuthn ) и протокол FIDO Client to Authenticator (CTAP). [17] Вместе WebAuthn и CTAP обеспечивают надежное решение для аутентификации в Интернете.
Аутентификатор FIDO2, также называемый аутентификатором WebAuthn, использует криптографию с открытым ключом для взаимодействия с клиентом WebAuthn, то есть соответствующим веб- агентом пользователя , который реализует API JavaScript WebAuthn . [18] Аутентификатор может быть аутентификатором платформы, роуминговым аутентификатором или некоторой комбинацией этих двух. Например, аутентификатор FIDO2, который реализует протокол CTAP2 [16], является роуминговым аутентификатором, который взаимодействует с клиентом WebAuthn через один или несколько из следующих вариантов транспорта: USB , связь ближнего поля (NFC) или Bluetooth Low Energy (BLE). Конкретные примеры аутентификаторов платформы FIDO2 включают Windows Hello [19] и операционную систему Android . [20]
Аутентификатор FIDO2 может использоваться как в однофакторном, так и в многофакторном режиме. В однофакторном режиме аутентификатор активируется простым тестом присутствия пользователя (например, нажатием кнопки). В многофакторном режиме аутентификатор ( то, что есть у пользователя ) активируется либо PIN-кодом ( то, что он знает ), либо биометрическими данными («чем-то, что является уникальным для него»).
Прежде всего, сильная аутентификация начинается с многофакторной аутентификации . Лучшее, что можно сделать для защиты личного онлайн-аккаунта, — это включить многофакторную аутентификацию. [13] [21] Существует два способа достижения многофакторной аутентификации:
На практике распространенным подходом является объединение аутентификатора пароля ( того, что известно ) с каким-либо другим аутентификатором ( тем, что есть ), например, с криптографическим аутентификатором.
В общем случае криптографический аутентификатор предпочтительнее аутентификатора, который не использует криптографические методы. При прочих равных условиях криптографический аутентификатор, который использует криптографию с открытым ключом, лучше, чем тот, который использует криптографию с симметричным ключом, поскольку последний требует общих ключей (которые могут быть украдены или использованы не по назначению).
Опять же, при прочих равных условиях, аппаратный аутентификатор лучше программного, поскольку секрет аутентификатора, по-видимому, лучше защищен в оборудовании. Это предпочтение отражено в требованиях NIST, изложенных в следующем разделе.
NIST определяет три уровня гарантии в отношении аутентификаторов. Самый высокий уровень гарантии аутентификатора (AAL3) требует многофакторной аутентификации с использованием либо многофакторного аутентификатора, либо соответствующей комбинации однофакторных аутентификаторов. В AAL3 по крайней мере один из аутентификаторов должен быть криптографическим аппаратным аутентификатором. Учитывая эти основные требования, возможные комбинации аутентификаторов, используемые в AAL3, включают:
Более подробное обсуждение уровней надежности аутентификатора см. в Руководстве по цифровой идентификации NIST. [9]
Как и уровни обеспечения аутентификатора, понятие ограниченного аутентификатора является концепцией NIST. [3] Термин относится к аутентификатору с продемонстрированной неспособностью противостоять атакам, что ставит под сомнение надежность аутентификатора. Федеральные агентства смягчают использование ограниченного аутентификатора, предлагая подписчикам альтернативный аутентификатор, который не ограничен, и разрабатывая план миграции на случай, если ограниченный аутентификатор будет запрещен к использованию в какой-то момент в будущем.
В настоящее время использование телефонной сети общего пользования ограничено NIST. В частности, ограничена внеполосная передача одноразовых паролей (OTP) через записанные голосовые сообщения или SMS- сообщения. Более того, если агентство решает использовать голосовые или SMS-пароли OTP, это агентство должно убедиться, что OTP передается на телефон, а не на IP-адрес, поскольку учетные записи Voice over IP (VoIP) обычно не защищены многофакторной аутентификацией. [9]
Удобно использовать пароли в качестве основы для сравнения, поскольку широко известно, как использовать пароль. [22] В компьютерных системах пароли используются по крайней мере с начала 1960-х годов. [23] [24] В более общем смысле, пароли используются с древних времен. [25]
В 2012 году Бонно и др. оценили два десятилетия предложений по замене паролей, систематически сравнивая веб-пароли с 35 конкурирующими схемами аутентификации с точки зрения их удобства использования, развертывания и безопасности. [26] (Цитируемый технический отчет является расширенной версией рецензируемой статьи с тем же названием. [27] ) Они обнаружили, что большинство схем лучше паролей по безопасности, но каждая схема хуже паролей по развертываемости. С точки зрения удобства использования некоторые схемы лучше, а некоторые хуже паролей.
Google использовала оценочную структуру Бонно и др. для сравнения ключей безопасности с паролями и одноразовыми паролями. [28] Они пришли к выводу, что ключи безопасности более удобны и применимы, чем одноразовые пароли, и более безопасны, чем пароли и одноразовые пароли.
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )