Аутентификация против авторизации: различия и как они работают

Введение

Когда я говорил семье или друзьям, что я «работаю в 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 может читать все ваши события календаря, редактировать их, изменять настройки и т. д.

Определение

Аутентификация – прохождение проверки подлинности.

Авторизация – предоставление и проверка прав на совершение каких-либо действий в системе.

Естественно, и аутентификацию, и авторизацию используют не только в процессе получения доступа к сетевым аккаунтам. Автоматизированные системы, EDI, передача данных, пластиковые банковские карты – мы не один раз в день проходим эти процедуры в автоматическом режиме.

В англоязычных системах путаницы с терминологией не возникает: пользователь вообще не задумывается, чем отличается аутентификация от авторизации, ведь обе процедуры от его глаз скрыты. Предлагается «войти в систему» – «log in, logging in».

Частые вопросы

Что такое идентификация пользователя?

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

Что такое аутентификация?

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

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

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

Кто проводит идентификацию личности?

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

Может ли идентификация существовать без аутентификации?

Оба эти действия взаимосвязаны и бессмысленны друг без друга. Вход в систему невозможно выполнить только по логину или только по паролю.

Что документируется в разделе аутентификации

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

Тем не менее нужно объяснить необходимую информацию:

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

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

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

Начало

Вся эта функциональность уже реализована для ASP.NET Core — проект с открытым исходным кодом под названием Identity 3.0. Для настройки окружения вам понадобится установить:

  • Visual Studio 2015;
  • Update 3 для VS 2015;
  • .NET Core tools for Visual Studio.

Инструкцию по установке и ссылки можно найти .

Для включения функционала Identity создадим проект ASP.NET Core Web Application по шаблону Web Application и в качестве типа аутентификации выберем Individual User Accounts.

В проект будет добавлен пакет Microsoft.AspNetCore.Identity.EntityFrameworkCore, который будет сохранять данные и схемы в SQL Server для Entity Framework Core.

Также этот пакет можно добавить через NuGet Package Manager.

Или же дописав соответствующие зависимости в файле project.json в узлах dependencies и tools.

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

Как это работает

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

В ASP.NET Core за настройку обработки запросов отвечает метод Configure класса Startup. При создании проекта с использованием шаблона по умолчанию в этот метод добавится строка отвечающая за аутентификацию для потока запросов, основанную на куки.

Также в метод ConfigureServices этого же класса Startup будут добавлены Identity сервисы.

Это позволит использовать их в приложении с помощью встроенной системы внедрения зависимостей.

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

ASP.NET Core был сильно изменен по сравнению с прошлыми версиями, не остался в стороне и Identity 3.0. Структура БД для Identity 3.0 имеет следующий вид:

Появились две новые таблицы: AspNetRoleClaims и AspNetUserTokens. Пользователи и роли, как и ранее, представлены классами IdentityUser и IdentityRole соответственно. Но теперь они не наследуются от интерфейсов для пользователей и ролей, что очень удобно. Также появились новые инструменты авторизации — политики.

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

Пример

Пусть для доступа к некоторому ресурсу в приложении пользователь должен иметь российское гражданство. Для начала зарегистрируем политику RussianСitizenship в ConfigureService файла startup.cs:

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

Далее создадим обработчик авторизации, который и будет оценивать свойства требования для принятия решения об авторизации:

Добавим в HomeController метод RussianPage () c атрибутом Authorize:

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

аутентификация идентификация авторизация в чем разница

Объясняем на енотах, в чем разница между идентификацией и авторизацией, а также зачем нужна аутентификация, тем более двухфакторная.

  • Alex Drozhzhin

  • 21 сентября 2020

Это происходит с каждым из нас, причем ежедневно: мы постоянно идентифицируемся, аутентифицируемся и авторизуемся в разнообразных системах. И все же многие путают значение этих слов и часто употребляют термин «идентификация» или «авторизация», когда на самом деле речь идет об аутентификации.

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

Что такое аутентификация?

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

Понятие аутентификации подразумевает проверку подлинности идентификатора или человека (объекта или субъекта). Для этого выделяют три основных фактора аутентификации:

  • знания (то, что известно только нам) — пароль, ПИН-код, графический ключ и т. д.;
  • владения (то, что имеем только мы) — мобильное устройство, смарт-карта, ключ и т. п.;
  • свойства (то, что является нашей неотъемлемой частью) — биометрические параметры (отпечатки пальцев и ладони, голос, сетчатка глаза и т. д.).

Для общего понимания, рассмотрим на предыдущих примерах. В первом случае, когда к Вам приходят незваные гости и на вопрос «Кто там?» в ответ слышите только имя — это будет идентификация. Порой ее недостаточно, поэтому если спросить какую-либо информацию (фактор аутентификации), которую знает только данный человек, например: «Какое у Вас имя? Сколько лет? На какой ягодице у Вас родинка? и т.д.», то ответ данного человека — аутентификация.

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

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

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

Идентификация, аутентификация и авторизация: серьезные определения

Итак, что же значат термины «идентификация», «аутентификация» и «авторизация» — и чем соответствующие процессы отличаются друг от друга? Для начала проконсультируемся с «Википедией»:

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

2016

SMS-пароли признаны небезопасными

Национальный Институт стандартов и технологий США (The National Institute of Standards and Technology, NIST) представил летом 2016 года предварительную версию будущего Digital Authentication Guideline (документа, который установит новые нормы и правила в отношении цифровых методов аутентификации): механизм SMS OTP изначально для аутентификации не предназначался и не может считаться полноценным фактором аутентификации.

В документе содержится прямое указание на то, что использование SMS-сообщений для двухфакторной аутентификации может являться «недопустимым» и «небезопасным» (секция документа 5.1.3.2).

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

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

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

  • Замена SIM карты с использованием поддельных документов
  • Использование уязвимостей в протоколе OSS-7
  • Переадресация вызовов у оператора мобильной связи
  • Ложные базовые станции
  • Специализированные троянские программы для смартфонов, перехватывающие SMS пароли

Еще одним методом может считаться взлом шлюза между банком и оператором связи.

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

При этом можно предсказать, что первыми «под раздачу» будут попадать крупные банки – большая клиентская база последних позволяет мошенникам рассчитывать на весомый результат даже при небольших остатках на счетах клиентов.

Одноразовые пароли через SMS

  • задержки в доставке
  • возможность перехвата на уровне канала связи или ввода в систему
  • возможность перехвата на уровне оператора мобильной связи
  • возможность переоформления сим-карты клиента на мошенника по поддельной доверенности (и перехвата SMS)
  • возможность направления клиенту SMS-сообщений с подменного номера
  • рост операционных затрат пропорционально клиентской базе

Одноразовые пароли через PUSH

  • негарантированная доставка
  • прямой запрет Apple//Microsoft на использование для передачи конфиденциальной информации
  • предназначение – только информирование

Исследователи продемонстрировали простую атаку для обхода двухфакторной аутентификации

Ученые из Амстердамского свободного университета Радхеш Кришнан Конот (Radhesh Krishnan Konoth), Виктор ван дер Вен (Victor van der Veen) и Герберт Бос (Herbert Bos) продемонстрировали практическую атаку на двухфакторную аутентификацию с использованием мобильного устройства. Исследователи продемонстрировали атаку «Человек в браузере» (Man-in-the-Browser) против смартфонов на базе Android и iOS.

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

Исследователи продемонстрировали атаку с использованием установки уязвимого приложения через Google Play. Им удалось успешно обойти проверку Google Bouncer и активировать приложение для перехвата одноразовых паролей.

Для атаки на iOS исследователи использовали новую возможность OS X под названием Continuity, позволяющую синхронизировать SMS-сообщения между iPhone и Mac. Если этот функционал активирован, злоумышленнику достаточно иметь доступ к компьютеру, чтобы прочитать все SMS сообщения.

Согласно исследователям, приложение для хищения одноразовых паролей было добавлено в Google Play 8 июля 2015 года и оставалось доступно для пользователей в течение двух месяцев, до выхода видео с демонстрацией атаки.

Компания Apple была уведомлена 30 ноября 2015 года, однако исследователи не получили ответ.

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

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

В качестве второго способа для проверки существует следующее:

Примеры

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

В качестве примера двухфакторной аутентификации можно привести следующее решения владельцев ресурсов:

  • Вконтакте позволяет активировать целый ряд функций дополнительной защиты, например: аутентификация через номер мобильного телефона для сообщений, сервисы для генерации данных входа, идентификация с помощью мессенджеров, авторизация по геолокации;
  • Telegram для идентификации предлагает прикрепить к профилю адрес электронной почты, а также придумать второй код, который будет запрашиваться в качестве дополнения к коду из SMS во время авторизации с нового устройства;
  • Instagram привязан к электронной почте, поэтому если ресурс обнаружит подозрительную авторизацию, то в интерфейсе сервиса тут же появится предупреждение и предложение выслать код безопасности на e-mail или мобильный телефон;
  • Популярнейший сервис для компьютерных игр Steam перед авторизацией просит ввести 5 символов, случайно генерируемых каждые 30 секунд в мобильном приложении.

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

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

Протоколы разделены на три вида по принципу работы:

  1. Доступ к паролю. Это самые элементарные протоколы, когда ресурс может аутентифицировать человека по логину и паролю.
  2. Вызов-ответ. Протокол CHAP (Challenge Handshake Authentication Protocol) действует на основе косвенного согласования. Алгоритм проверяет идентификацию, используя не код доступа юзера, а косвенные данные о нём.
  3. Взаимная аутентификация. К примеру, протокол Kerberos помогает безопасно аутентифицировать клиента и сервер, учитывая возможность перехвата пакета данных злоумышленниками.

Виды авторизации

Существует несколько моделей авторизации. Три основные — ролевая, избирательная и мандатная.

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

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

  • Избирательная модель. Права доступа к конкретному объекту выдают конкретному пользователю. При этом право определять уровень доступа имеет либо владелец конкретного объекта (например, его создатель), либо суперпользователь (по сути, владелец всех объектов в системе). Кроме того, пользователь, обладающий определенным уровнем доступа, может передавать назначенные ему права другим.

    Например, пользователь А, создав текстовый файл, может назначить пользователю Б права на чтение этого файла, а пользователю В — права на его чтение и изменение. При этом пользователи Б и В могут передать свои права пользователю Г.

    Избирательная модель применяется в некоторых операционных системах, например в семействах Windows NT (в том числе в Windows 10) и Unix. По этой же модели предоставляется доступ, скажем, к документам на диске Google.

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

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

    Например, в организации может быть пять уровней доступа. Пользователь, имеющий доступ к файлам 3-го уровня, может также открывать файлы 1-го и 2-го уровня, но не может работать с файлами 4-го и 5-го уровня.

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

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

Adblock
detector