Обзор способов и протоколов аутентификации в веб- приложениях / Блог компании Data. Art / Хабрахабр. Я расскажу о применении различных способов аутентификации для веб- приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign- On), рассмотрю различные стандарты и протоколы аутентификации. Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию. Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд. Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный). Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу. Например, при попытке попасть в закрытый клуб вас идентифицируют (спросят ваше имя и фамилию), аутентифицируют (попросят показать паспорт и сверят фотографию) и авторизуют (проверят, что фамилия находится в списке гостей), прежде чем пустят внутрь. Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу. Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного. Аутентификация по паролю. Этот метод основывается на том, что пользователь должен предоставить username и password для успешной идентификации и аутентификации в системе. Пара username/password задается пользователем при его регистрации в системе, при этом в качестве username может выступать адрес электронной почты пользователя. Применительно к веб- приложениям, существует несколько стандартных протоколов для аутентификации по паролю, которые мы рассмотрим ниже. HTTP authentication. Этот протокол, описанный в стандартах HTTP 1. Применительно к веб- сайтам работает следующим образом: Сервер, при обращении неавторизованного клиента к защищенному ресурсу, отсылает HTTP статус “4. Unauthorized” и добавляет заголовок “WWW- Authenticate” с указанием схемы и параметров аутентификации. Браузер, при получении такого ответа, автоматически показывает диалог ввода username и password. Пользователь вводит детали своей учетной записи. Во всех последующих запросах к этому веб- сайту браузер автоматически добавляет HTTP заголовок “Authorization”, в котором передаются данные пользователя для аутентификации сервером. Сервер аутентифицирует пользователя по данным из этого заголовка. Решение о предоставлении доступа (авторизация) производится отдельно на основании роли пользователя, ACL или других данных учетной записи. При необходимости вывода безошибочных и валидных результатов, диагностику осуществляют вместе с другими классами методик. Тема: Методы исследования в юридической психологии. Между тем есть лекарство, которое, по мнению врачей, могло бы её спасти. Этот ключ в результате можно применить для аутентификации. Методы аутентификации SQUID верна или отсутствует, то squid возвращает клиенту HTTP код 407. Весь процесс стандартизирован и хорошо поддерживается всеми браузерами и веб- серверами. Существует несколько схем аутентификации, отличающихся по уровню безопасности: Basic — наиболее простая схема, при которой username и password пользователя передаются в заголовке Authorization в незашифрованном виде (base. Однако при использовании HTTPS (HTTP over SSL) протокола, является относительно безопасной. Пример HTTP аутентификации с использованием Basic схемы. Модификация этого теста(Wechsler Adult Intelligence Scale, WAIS -шкала интеллекта взрослых), вышедшая в. 1.2.Характеристика методики wais. Методика WAISшироко известна за рубежом. На примере 16-и факторной личностной методики Р.Б. Содержание комплекта «WAIS v2.0» Professional: . Secure Shell — «безопасная оболочка») — сетевой протокол прикладного. При каждом подключении подобно https вырабатывается общий секретный ключ для шифрования трафика. Digest — challenge- response- схема, при которой сервер посылает уникальное значение nonce, а браузер передает MD5 хэш пароля пользователя, вычисленный с использованием указанного nonce. Более безопасная альтернативв Basic схемы при незащищенных соединениях, но подвержена man- in- the- middle attacks (с заменой схемы на basic). Кроме того, использование этой схемы не позволяет применить современные хэш- функции для хранения паролей пользователей на сервере. NTLM (известная как Windows authentication) — также основана на challenge- response подходе, при котором пароль не передается в чистом виде. Эта схема не является стандартом HTTP, но поддерживается большинством браузеров и веб- серверов. Преимущественно используется для аутентификации пользователей Windows Active Directory в веб- приложениях. Уязвима к pass- the- hash- атакам. Negotiate — еще одна схема из семейства Windows authentication, которая позволяет клиенту выбрать между NTLM и Kerberos аутентификацией. Kerberos — более безопасный протокол, основанный на принципе Single Sign- On. Однако он может функционировать, только если и клиент, и сервер находятся в зоне intranet и являются частью домена Windows. В случае успеха веб- приложение создает session token, который обычно помещается в browser cookies. При последующих веб- запросах session token автоматически передается на сервер и позволяет приложению получить информацию о текущем пользователе для авторизации запроса. Пример forms authentication. Приложение может создать session token двумя способами: Как идентификатор аутентифицированной сессии пользователя, которая хранится в памяти сервера или в базе данных. Сессия должна содержать всю необходимую информацию о пользователе для возможности авторизации его запросов. Как зашифрованный и/или подписанный объект, содержащий данные о пользователе, а также период действия. Этот подход позволяет реализовать stateless- архитектуру сервера, однако требует механизма обновления сессионного токена по истечении срока действия. Несколько стандартных форматов таких токенов рассматриваются в секции «Аутентификация по токенам». Поэтому все коммуникации между клиентом и сервером в случае forms authentication должны производиться только по защищенному соединению HTTPS. Другие протоколы аутентификации по паролю. Два протокола, описанных выше, успешно используются для аутентификации пользователей на веб- сайтах. Но при разработке клиент- серверных приложений с использованием веб- сервисов (например, i. OS или Android), наряду с HTTP аутентификацией, часто применяются нестандартные протоколы, в которых данные для аутентификации передаются в других частях запроса. Существует всего несколько мест, где можно передать username и password в HTTP запросах: URL query — считается небезопасным вариантом, т. Если злоумышленник смог выяснить пароль, то пользователь зачастую об этом не узнает. Кроме того, разработчики приложений могут допустить ряд концептуальных ошибок, упрощающих взлом учетных записей. Ниже представлен список наиболее часто встречающихся уязвимостей в случае использования аутентификации по паролю: Веб- приложение позволяет пользователям создавать простые пароли. Веб- приложение не защищено от возможности перебора паролей (brute- force attacks). Веб- приложение само генерирует и распространяет пароли пользователям, однако не требует смены пароля после первого входа (т. CA выступает в роли посредника, который гарантирует подлинность сертификатов (по аналогии с ФМС, выпускающей паспорта). Также сертификат криптографически связан с закрытым ключом, которых хранится у владельца сертификата и позволяет однозначно подтвердить факт владения сертификатом. На стороне клиента сертификат вместе с закрытым ключом могут храниться в операционной системе, в браузере, в файле, на отдельном физическом устройстве (smart card, USB token). Обычно закрытый ключ дополнительно защищен паролем или PIN- кодом. В веб- приложениях традиционно используют сертификаты стандарта X. Аутентификация с помощью X. SSL/TLS. Этот механизм также хорошо поддерживается браузерами, которые позволяют пользователю выбрать и применить сертификат, если веб- сайт допускает такой способ аутентификации. Использование сертификата для аутентификации. Во время аутентификации сервер выполняет проверку сертификата на основании следующих правил: Сертификат должен быть подписан доверенным certification authority (проверка цепочки сертификатов). Сертификат должен быть действительным на текущую дату (проверка срока действия). Сертификат не должен быть отозван соответствующим CA (проверка списков исключения). Пример X. 5. 09 сертификата. После успешной аутентификации веб- приложение может выполнить авторизацию запроса на основании таких данных сертификата, как subject (имя владельца), issuer (эмитент), serial number (серийный номер сертификата) или thumbprint (отпечаток открытого ключа сертификата). Использование сертификатов для аутентификации — куда более надежный способ, чем аутентификация посредством паролей. Это достигается созданием в процессе аутентификации цифровой подписи, наличие которой доказывает факт применения закрытого ключа в конкретной ситуации (non- repudiation). Однако трудности с распространением и поддержкой сертификатов делает такой способ аутентификации малодоступным в широких кругах. Аутентификация по одноразовым паролям. Аутентификация по одноразовым паролям обычно применяется дополнительно к аутентификации по паролям для реализации two- factor authentication (2. FA). В этой концепции пользователю необходимо предоставить данные двух типов для входа в систему: что- то, что он знает (например, пароль), и что- то, чем он владеет (например, устройство для генерации одноразовых паролей). Наличие двух факторов позволяет в значительной степени увеличить уровень безопасности, что м. Наиболее популярные: Аппаратные или программные токены, которые могут генерировать одноразовые пароли на основании секретного ключа, введенного в них, и текущего времени. Секретные ключи пользователей, являющиеся фактором владения, также хранятся на сервере, что позволяет выполнить проверку введенных одноразовых паролей. Пример аппаратной реализаций токенов — RSA Secur. ID; программной — приложение Google Authenticator. Случайно генерируемые коды, передаваемые пользователю через SMS или другой канал связи. В этой ситуации фактор владения — телефон пользователя (точнее — SIM- карта, привязанная к определенному номеру). Распечатка или scratch card со списком заранее сформированных одноразовых паролей. Для каждого нового входа в систему требуется ввести новый одноразовый пароль с указанным номером. Аппаратный токен RSA Secur. ID генерирует новый код каждые 3.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |