Идентификация, аутентификация, авторизация

Введение

Когда я говорил семье или друзьям, что я «работаю в identity», они часто предполагали, что это означает, что я работал в правительстве, в организации выдающей водительские права, или что я помогал людям разрешать мошенничество с кредитными картами.

Однако ни то, ни другое не было правдой. Ранее я работал в компании Auth0,, которая управляет цифровой идентификацией. (Сейчас я являюсь участником программы Auth0 Ambassadors и являюсь экспертом Google Developer по SPPI: Security, Privacy, Payments, and Identity — безопасность, конфиденциальность, платежи и идентификация.)

Цифровая идентификация

Цифровая идентификация это набор атрибутов, которые определяют отдельного пользователя в контексте функции, предоставляемой конкретным приложением.

Что это значит?

Скажем, вы управляете компанией по продаже обуви онлайн. Цифровой идентификацией пользователей вашего приложения может быть номер их кредитной карты, адрес доставки и история покупок. Их цифровая идентификация зависит от вашего приложения.

Это приводит нас к …

Аутентификация

В широком смысле, аутентификация относится к процессу проверки того, что пользователь является тем, кем он себя заявляет.

Как только система сможет установить это, мы приходим к …

Стандарты

Вы можете вспомнить, что я упомянул, что аутентификация основывается на четко определенных стандартах. Но откуда эти стандарты берутся?

Есть много разных стандартов и организаций, которые управляют работой Интернета. Два органа, которые представляют для нас особый интерес в контексте аутентификации и авторизации, — это Инженерная рабочая группа по Интернету (Internet Engineering Task Force — IETF) и Фонд OpenID (OpenID Foundation — OIDF).

IETF (Internet Engineering Task Force)

IETF — это большое открытое международное сообщество сетевых инженеров, операторов, поставщиков и исследователей, которые занимаются развитием интернет-архитектуры и бесперебойной работой интернета.

OIDF (OpenID Foundation)

OIDF — это некоммерческая международная организация людей и компаний, которые стремятся обеспечить, продвигать и защищать технологии OpenID.

Теперь, когда нам известны спецификации и кто их пишет, давайте вернемся к авторизации и поговорим о:

OAuth 2.0

OAuth 2.0 является одной из наиболее часто упоминаемых спецификаций, когда речь идет о сети, а также часто неправильно представленной или неправильно понятой.

OAuth не является спецификацией аутентификации. OAuth имеет дело с делегированной авторизацией. Помните, что аутентификация — это проверка личности пользователя. Авторизация касается предоставления или отказа в доступе к ресурсам. OAuth 2.0 предоставляет доступ к приложениям от имени пользователей.

Как было до OAuth

Чтобы понять цель OAuth, нам нужно вернуться назад во времени. OAuth 1.0 был создан в декабре 2007 года. До этого, если нам требовался доступ к сторонним ресурсам, это выглядело так:

Допустим, вы использовали приложение под названием HireMe123. HireMe123 хочет настроить событие календаря (например, встречу на собеседование) от вашего имени (пользователя). HireMe123 не имеет собственного календаря; поэтому нужно использовать другой сервис под названием MyCalApp для добавления событий.

После того, как вы вошли в HireMe123, HireMe123 запросит у вас ваши учетные данные для входа в MyCalApp. Вы должны ввести свое имя пользователя и пароль на сайте HireMe123.

Затем HireMe123 используя ваш логин получить доступ к API MyCalApp, и затем сможет создавать события календаря с использованием ваших учетных данных.

Совместное использование учетных данных — это плохо!

Этот подход основывался на совместном использовании личных учетных данных пользователя из одного приложения с совершенно другим приложением, и это не очень хорошо.

Так как, HireMe123 поставил на карту защиты вашей учетной записи MyCalApp гораздо меньше. Если HireMe123 не защитит ваши учетные данные MyCalApp надлежащим образом, и они в конечном итоге будут украдены или взломаны, кто-то сможет написать несколько неприятных статей в блоге, но HireMe123 как бы останется в стороне.

HireMe123 также получает слишком большой доступ к MyCalApp от вашего имени. HireMe123 получает все те же привелегии, что и вы, потому что он использовал ваши учетные данные для получения этого доступа. Это означает, что HireMe123 может читать все ваши события календаря, редактировать их, изменять настройки и т. д.

Связь между идентификацией, аутентификацией и авторизацией

«. скованные одной цепью связанные одной целью. »

Все три выше перечисленных процесса взаимодействуют между собой и не существуют друг без друга. В первую формируется идентификатор, затем происходит подтверждения подлинности и соответствия, а в последствие — Вы пользуетесь всеми возможностями и преимуществами системы, в рамках своих полномочий.

В Интернете на каком-либо сайте это будет выглядеть подобным образом:

  1. идентификация — проходите регистрацию;
  2. аутентификация — используете логин и пароль;
  3. авторизация — пользуетесь предоставленными ресурсами и возможностями.

К слову говоря, Вы сразу же перейти к практике — зарегистрироваться здесь на сайте, затем войти с помощью логина и пароля и воспользоваться возможностями, которые имеют только пользователи, например, написать комментарий.

Типы биометрической аутентификации

  • Распознавание отпечатков пальцев — Отпечаток пальца является наиболее широко используемой формой аутентификации , где используется шаблон пальца пользователя. Его можно развернуть в широком диапазоне сред и обеспечивает гибкость и повышенную точность системы, позволяя пользователям регистрировать несколько пальцев в системе шаблонов.
  • Распознавание лиц — использует данные, относящиеся к уникальным чертам лица пользователя. Он включает в себя анализ черт лица. Это уникальный биометрический объект, поскольку он не требует сотрудничества со сканированным лицом; он может использовать практически любое устройство для получения изображений с высоким разрешением, например фотоаппарат или камеру движения.
  • Голосовой шаблон — это форма аутентификации, использующая уникальный шаблон голоса пользователя. он основан на технологиях передачи голоса на печать, а не на распознавании голоса. В этом процессе голос человека преобразуется в текст и сравнивается с исходным шаблоном. Хотя эту технологию довольно легко реализовать, поскольку многие компьютеры уже имеют встроенные микрофоны, процедура регистрации более сложна, чем другие биометрические данные, и фоновый шум может мешать сканированию, что может расстраивать пользователя.
  • Рукописная подпись — проверка подписи анализирует способ подписания человеком своего имени, например скорость и давление, а также окончательную статическую форму самой подписи.
  • Распознавание сетчатки — это метод биометрической аутентификации, в котором используются данные, относящиеся к уникальным характеристикам, связанным с рисунком кровеносных сосудов, расположенных в задней части глаза человека. Эта технология является инвазивной для людей и требует квалифицированных операторов. Это приводит к 96-байтовым кодам сетчатки при использовании для аутентификации до некоторых килобайт в случае идентификации. Методы распознавания лиц используют такие характеристики, как относительное расположение глаз, носа и рта, а также расстояние между ними.
  • Распознавание радужной оболочки глаза — форма аутентификации, в которой используются данные, связанные с функциями, связанными с цветной частью глаза пользователя. Он включает в себя анализ узоров цветной части глаза, окружающей зрачок. Он использует довольно обычную камеру и не требует тесного контакта между глазом и сканером. Очки можно носить во время сканирования радужной оболочки, в отличие от сканирования сетчатки.

Какие могут быть Ошибки

Одной из самых распространённых ошибок аутентификации является невозможность подключения к домашнему WiFi-роутеру.

  • В первую очередь, проверьте, правильно ли вы написали ключевую фразу, далее посмотрите, не активирована ли на клавиатуре клавиша Caps Lock (печать большими буквами). Если причины не в этом, то, скорее всего, неверно введен пароль.
  • Если вы не помните свой пароль, то его можно посмотреть в настройках к вайфай-роутеру.

Для этого подключаемся к нему через кабель, имея выход в интернет – открываем любой из используемых браузеров и вводим в поисковую строчку IP нашего маршрутизатора. Данная информация должна быть на корпусе самого устройства либо в инструкции к нему.

Итак, вы проверили правильность указанных данных, учитывая язык и размер букв.

Будьте внимательны при вводе, очень часто, если ввод данных засекречен звездочками сложно понять, что вы делаете не так.

А также вы изучили свой пароль и учли все буквы и их размер, а подключиться все равно не получается, тогда обратите внимание, что возможно вам необходимо пройти двухфакторную процедуру проверки достоверности информации, которая изначально установлена пользователем. Для этого необходимо проверить не только правильность ввода пароля и логина, но и совпадение мак-адреса телефона (планшета, ноутбука) с помощью которого вы хотите подключиться к сети с адресами, имеющими разрешение

Для этого необходимо проверить не только правильность ввода пароля и логина, но и совпадение мак-адреса телефона (планшета, ноутбука) с помощью которого вы хотите подключиться к сети с адресами, имеющими разрешение.

Если адрес отсутствует в списке разрешенных, необходимо добавить его в настройки роутера с помощью браузера через подключенное устройство.

Многие пользователи сталкиваются с проблемой идентификации при входе в  учетную запись. Чаще всего, это случается по той причине, что необходимые данные, которые касаются учетной записи, не синхронизированы.

По итогу хотелось бы отметить, что разобрав каждый из терминов можно с уверенностью заявить, они отличаются друг от друга выполняемыми операциями и функциями.

Однако также мы можем сказать, что они не могут существовать друг без друга.

Однофакторная двухэтапная аутентификация

Аутентификация происходит следующим образом:

  1. Пользователь вводит логин и пароль, указанные при регистрации. Если данная пара корректна (логин есть в базе и соответствует паролю) система высылает одноразовый пароль, имеющий ограниченное время действия.
  2. Пользователь вводит одноразовый пароль и, если он совпадает с тем, что отправила система, то пользователь получает доступ к своей учетной записи, денежным средствам или подтверждает денежный перевод.

Даже если злоумышленник получит логин и пароль для учетной записи (с помощью вредоносной программы, кражи записной книжки с паролями или методами социальной инженерии и фишинга), то после ввода этих данных система отправит на привязанный мобильный телефон пользователя одноразовый код с ограниченным временем действия. Без одноразового кода мошенник не сможет похитить денежные средства.

Чем двухуровневая проверка лучше одноуровневой

Двухфакторная аутентификация подразумевает использование сразу двух перечисленных выше методов защиты. Например, мы вставляем карту в терминал и вводим ПИН-код. Или вводим учетные данные от страницы в соцсети и затем получаем одноразовый код на телефон, привязанный к аккаунту.

Такая двойная проверка не требует больших финансовых затрат, она довольно простая и удобная для пользователей, а также значительно увеличивает безопасность данных.

Параноики считают, что можно сделать даже трех- и четырехуровневую проверку, главное, чтобы враги не получили доступ к информации. Но такие меры чаще всего являются излишними, значительно усложняют и замедляют все операции. Можно сказать, что двухэтапная проверка – это компромиссное решение для безопасности и удобства.

Блог компании ArtisMedia

Аутентификация и авторизация – две ключевые функции сервисной инфраструктуры для защиты конфиденциальных данных и операций от несанкционированного доступа со стороны злоумышленников.

Хотя эти два термина используются в одном контексте, они представляют собой принципиально разные понятия, поскольку осуществляют защиту взаимодополняющими способами.

Аутентификация

Аутентификация используется для подтверждения личности зарегистрированного пользователя. Проверка подлинности – это процесс проверки учетных данных: идентификатора пользователя (имени, адреса электронной почты, номера телефона) и пароля.

Если идентификатор и пароль совпадают с записями, хранящимися в базе данных системы, пользователю предоставляется доступ. В случае неправильного ввода данных программа вызывает предупреждение безопасности и блокирует вход. Если неудачных попыток будет несколько, система заблокирует саму учетную запись.

Факторы аутентификации

Метод стандартной аутентификации не может обеспечить абсолютную безопасность при входе пользователя в систему. Для создания более надежной защиты используются дополнительные категории учетных данных (факторов).

Однофакторная аутентификация (SFA) – базовый, традиционный метод проверки подлинности с использованием только одной категории. Наиболее распространенным примером SFA являются учетные данные, связанные с введением имени пользователя и обычного пароля.

Двухфакторная аутентификация (2FA) – двухступенчатый процесс проверки, который учитывает два разных типа пользовательских данных. Помимо логина и пароля, для обеспечения дополнительного уровня защиты, система может запросить особый код, присланный в SMS сообщении или в письме электронной почты.

Многофакторная аутентификация (MFA) – самый современный метод проверки подлинности, который использует два, три (или больше) уровня безопасности. Категории всех уровней должны быть независимыми друг от друга, чтобы устранить любую уязвимость в системе. Финансовые организации, банки, правоохранительные органы пользуются многофакторной аутентификацией для защиты своих данных от потенциальных угроз.

Примером MFA является использование банковских карт. Наличие карты – первый фактор защиты, введение пин-кода – второй.

Авторизация

Происходит после того, как личность пользователя успешно аутентифицируется системой. Процесс авторизации определяет, имеет ли прошедший проверку человек доступ к определенным ресурсам: информации, файлам, базе данных. Факторы проверки подлинности, необходимые для авторизации, могут различаться в зависимости от уровня безопасности.

Например, процесс проверки и подтверждения идентификаторов сотрудников и паролей в организации называется аутентификацией, но определение того, какой сотрудник имеет доступ к определенным ресурсам, называется авторизацией. Предположим, что вы путешествуете и собираетесь сесть на самолет. Когда вы предъявляете свой билет и удостоверение личности перед регистрацией, то получаете посадочный талон, который подтверждает, что администрация аэропорта удостоверила вашу личность. Но это не все. Чтобы получить доступ к внутренней части самолета и его ресурсам, вам необходимо получить разрешение бортпроводника на посадку.

Заключение

Доступ к системе защищен как аутентификацией, так и авторизацией. Любая попытка доступа аутентифицируется путем ввода учетных данных, но она может быть принята только после успешной авторизации. И наоборот, если попытка аутентифицирована, но не авторизована, система запретит доступ к своим ресурсам. Хотя, оба термина часто используются в сочетании друг с другом, они имеют совершенно разные понятия и значения. Если аутентификация – это то, кем вы являетесь, авторизация –это то, к чему вы можете получить доступ.

Обзор Digest Аутентификации

  1. Клиент шлёт GET на сервер.
  2. Сервер шлёт обратно HTTP 401 Unauthorized с набором (дайджестом) опций.

    WWW-Authenticate: Digest realm=»AndreiR»,
    qop=»auth,auth-int»,
    nonce=»abcdefg…»,
    opaque=»abcd…»,

  3. Пользователь вводит свои учётные данные
  4. Генерируется Authorization Header:

    HA1 = MD5 хэш из имени пользователя, пароля и строки realm.

    HA2 = MD5 хэш из метода аутентификации и запрошенного URI

    Response = MD5 хэш из HA1, HA2, nonce, nonce-count, cnonce и qop

    Клиент отправляет новый запрос на основе сгенерированных данных

    GET /

    Authorization: Digest username=»andrei», realm=»AndreiR», uri=»/»
    qop=auth, nc=00000001,response=»12345abc…»
    nonce=»abcdefg…»,
    opaque=»abcd…»,

  5. Сервер проверяет пришедшие данные. Если всё верно возвращает HTTP 200 OK, если неверно HTTP 403 Forbidden

Некоторые опции необязательны, поэтому гарантировать определённый уровень безопасности нельзя.

HTTP Digest Аутентификация уязвима для

так как сервер не может проверить идентичность клиента.

Невозможно использовать более сложные алгоритмы хэширования паролей, такие как


Другие статьи

Однофакторная аутентификация

Это самый простой и самый распространённый тип аутентификации: вы вводите логин и пароль. Софт смотрит, есть ли такие логины и пароли в базе данных. Если да — узнает вас. Дальше смотрит, есть ли у вас какие-то права.

Системе неважно, кто именно вводит логин и пароль. Главное — чтобы они совпали с базой

Если злоумышленник подсмотрит, как мы вводим логин и пароль от какого-нибудь форума, потом он сможет зайти от нашего имени творить зло. 

Если помните логин и пароль, вход будет относительно быстрым.

Если кто-то другой узнает ваш логин и пароль, он сможет залезть в софт под вашим именем. 

Часто люди в качестве логина используют адрес почты — это публичная информация, её легко вычислить.

Люди нечасто используют много разных паролей для разных сервисов. Если какой-то один сервис сольёт ваш пароль, злоумышленники смогут воспользоваться им и в других сервисах.

Очень часто пароль — это дата рождения, что тоже может быть публичной информацией. 

Беспарольная аутентификация

Первой реакцией на термин «беспарольная аутентификация» может быть «Как аутентифицировать кого-то без пароля? Разве такое возможно?»

В наши головы внедрено убеждение, что пароли — абсолютный источник защиты наших аккаунтов. Но если изучить вопрос глубже, то выяснится, что беспарольная аутентификация может быть не просто безопасной, но и безопаснее традиционного входа по имени и паролю. Возможно, вы даже слышали мнение, что пароли устарели.

Беспарольная аутентификация — это способ конфигурирования процедуры входа и аутентификации пользователей без ввода паролей. Идея такая:

Вместо ввода почты/имени и пароля пользователи вводят только свою почту. Ваше приложение отправляет на этот адрес одноразовую ссылку, пользователь по ней кликает и автоматически входит на ваш сайт / в приложение. При беспарольной аутентификации приложение считает, что в ваш ящик пришло письмо со ссылкой, если вы написали свой, а не чужой адрес.

Есть похожий метод, при котором вместо одноразовой ссылки по SMS отправляется код или одноразовый пароль. Но тогда придётся объединить ваше приложение с SMS-сервисом вроде twilio (и сервис не бесплатен). Код или одноразовый пароль тоже можно отправлять по почте.

И ещё один, менее (пока) популярный (и доступный только на устройствах Apple) метод беспарольной аутентификации: использовать Touch ID для аутентификации по отпечаткам пальцев. Подробнее о технологии.

Если вы пользуетесь Slack, то уже могли столкнуться с беспарольной аутентификацией.

Medium предоставляет доступ к своему сайту только по почте. Я недавно обнаружил, что Auth0, или Facebook AccountKit, — это отличный вариант для реализации беспарольной системы для вашего приложения.

Что может пойти не так?

Если кто-то получит доступ к пользовательским почтам, он получит и доступ к приложениям и сайтам. Но это не ваша головная боль — беспокоиться о безопасности почтовых аккаунтов пользователей. Кроме того, если кто-то получит доступ к чужой почте, то сможет перехватить аккаунты в приложениях с беспарольной аутентификацией, воспользовавшись функцией восстановления пароля. Но мы ничего не можем поделать с почтой наших пользователей. Пойдём дальше.

В чём преимущества?

Как часто вы пользуетесь ссылкой «забыли пароль» для сброса чёртового пароля, который так и не смогли вспомнить после нескольких неудачных попыток входа на сайт / в приложение? Все мы бываем в такой ситуации. Все пароли не упомнишь, особенно если вы заботитесь о безопасности и для каждого сайта делаете отдельный пароль (соблюдая все эти «должен состоять не менее чем из восьми символов, содержать хотя бы одну цифру, строчную букву и специальный символ»). От всего этого вас избавит беспарольная аутентификация. Знаю, вы думаете сейчас: «Я использую менеджер паролей, идиот». Уважаю. Но не забывайте, что подавляющее большинство пользователей не такие техногики, как вы. Это нужно учитывать.

Беспарольная аутентификация хороша не только для пользователей, но и для вас как разработчика. Вам не нужно реализовывать механизм восстановления паролей. Все в выигрыше.

Если вы думаете, что какие-то пользователи предпочтут старомодные логин/пароль, то предоставьте им оба варианта, чтобы они могли выбирать.

Сегодня беспарольная аутентификация быстро набирает популярность.

OpenID Connect

  • C помощью OAuth 2.0 мы только авторизовали пользователя т.е. о пользователе мы знаем только access token, с помощью которого можем получать определенные данные из Соцсети. Но access token ничего не говорит о личности пользователя и с помощью него мы не можем предоставить доступ к закрытым данным пользователя на нашем сайте MySite. OpenID Connect — добавляет сведения о логине и профиле пользователя (identity). Это как раз и позволяет реализовать его аутентификацию.
  • OpenID Connect также добавляет возможность динамической регистрации и обнаружения сервисов “service discovery”. Это дает возможность строить системы SSO (Single Sign-On), в которых используется один логин для многих не связанных между собой сервисов.
  • Authorization Server, помимо access token и refresh token, возвращает “identity token” (ID Token). Он содержится в том же JWT. Из ID Token можно извлечь следующую информацию: имя пользователя, время входа в учетную запись, срок окончания действия ID Token. ID Token можно передавать между участниками.
  • OIDC предоставляет дополнительное API, которые позволяет запрашивать информацию о пользователе и его текущих сессиях.
  • В первичном запросе на получение code добавляется дополнительный атрибут scope=openid.
  • В результате работы алгоритма Client, помимо access и refresh token, получает ID Token.

OpenID Connect: Лабораторная работа (Google)

  • адрес — это точка логина на Google
  • response_type=code — ожидаем получить в ответ code
  • client_id — Client ID, выданный при регистрации
  • scope=openid email — к каким данным мы хотим получить доступ
  • redirect_uri — redirect_uri заданный при регистрации приложения
  • state — сгенерированное Client-ом число, которое передается между Client и AS для защиты от вмешательства злоумышленника.
  • адрес — это точка получения token на Google
  • code — это только что присланный code
  • client_id — это Client ID, выданный при регистрации
  • client_secret это Client Secret, выданный при регистрации
  • grant_type=authorization_code — единственно правильное значение из стандарта

Что такое Авторизация

И последнее, что необходимо знать о входе на сайт – это авторизация.

Данная процедура подразумевает попадание на страницу в случае успешного прохождения аутентификации и идентификации.

Также авторизация может означать, что человек допускается до выполнения определенной задачи, доступ к которой имеет только он или определенная группа человек.

По итогу можем сказать, что все выше изучаемые процедуры взаимосвязаны между собой и напрямую зависят друг от друга и выполнение операций соблюдается в строгом порядке. Однако путать между собой их не следует.

  1. Идентификация.
  2. Аутентификация.
  3. Авторизация.

Двухфакторная аутентификация

При двухфакторной аутентификации система использует два не связанных между собой способа аутентификации. Первый обычный, а второй — для дополнительной безопасности. 

Второй способ должен быть независимым: на другом устройстве или принципиально другим методом. Расчёт на то, чтобы существенно усложнить жизнь злоумышленникам, которые могут захотеть воспользоваться чужим логином и паролем. 

Входить в сервис намного дольше. 

Надёжность выше: чтобы войти от вашего имени, нужно получить доступ к вашему телефону или почте. Плюс нужно знать пароли от них. 

Войти сложно, даже если у вас везде один и тот же пароль. 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector