Авторизация или аутентификация? — Хабр Q&A

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

Сначала давайте прочитаем определение:

Что еще важно знать

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

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

Когда определили ID, проверили подлинность, уже можно предоставить и доступ, то есть, выполнить авторизацию.

Авторизация – это предоставление доступа к какому-либо ресурсу (например, к электронной почте).

Разберемся на примерах, что же это за загадочная авторизация:

  • Открытие двери после проворачивания ключа в замке
  • Доступ к электронной почте после ввода пароля
  • Разблокировка смартфона после сканирования отпечатка пальца
  • Выдача средств в банке после проверки паспорта и данных о вашем счете

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

После идентификации производится аутентификация:

Аутентификация – это процедура проверки подлинности (пользователя проверяют с помощью пароля, письмо проверяют по электронной подписи и т.д.)

Чтобы определить чью-то подлинность, можно воспользоваться тремя факторами:

  1. Пароль – то, что мы знаем (слово, PIN-код, код для замка, графический ключ)
  2. Устройство – то, что мы имеем (пластиковая карта, ключ от замка, USB-ключ)
  3. Биометрика – то, что является частью нас (отпечаток пальца, портрет, сетчатка глаза)

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

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

Авторизация: что это такое? зачем она нужна?

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

Процедуры авторизации проверяют, есть ли у вас право доступа к контенту или ресурсам, к которым вы запросили доступ.

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

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

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

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

В качестве альтернативы, списки управления доступом (ACL) могут указывать, какие пользователи или процессы имеют право доступа к определенным объектам или данным и какие операции могут выполняться.

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

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

Аутентификация: что это такое? зачем нужна?

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

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

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

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

Биометрическая аутентификация становится все более распространенным методом аутентификации.

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

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

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

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

Как правило, аппаратный аутентификатор, такой как USB-ключ безопасности или токен безопасности, может быть вставлен в USB-порт компьютера или в беспроводное соединение с устройством, к которому пользователь пытается получить доступ, для проверки личности пользователя для доступа.

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

Авторизация или аутентификация?

Аналогия со входом в здание с охраной

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

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

Применительно к сайтам, на большинстве шаг аутентификации опускается – знаешь пароль – проходи 🙂

Аутентификация и авторизация

AUTHENTICATION AND AUTHORIZATION Ivanov V.1, Lubova E.2, Cherkasov D.3 АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ Иванов В. В.1, Лубова Е. С.2, Черкасов Д. Ю.3

‘Иванов Вадим Вадимович /Ivanov Vadim — студент; 2Лубова Елена Сергеевна /Lubova Elena — студент;

3 Черкасов Денис Юрьевич / Cherkasov Denis — студент, кафедра компьютерной и информационной безопасности, Институт кибернетики Московский институт радиотехники, электроники и автоматики Федеральное государственное бюджетное образовательное учреждение высшего образования Московский технологический университет, г. Москва

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

Abstract: authentication – is a conformity checking of the subject and the person for whom he is trying to give himself, with the help of some unique information (fingerprints, iris color, voice and so on.), In the simplest case – via a login and password. Authorization – this is a test and determination of the powers to perform certain actions (such as reading the file /var/mail/eltsin) in accordance with the previously performed authentication. These concepts represent a kind offirst line of defense, ensuring the safety of information space organization.

Ключевые слова: аутентификация, авторизация, токен, сервер. Keywords: authentication, authorization, token, server.

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

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

Что такое непроверенная среда

Одним из самых больших различий между клиентской и серверной частями кода веб-приложения является то, что конечный пользователь может запустить произвольный код на стороне клиента без предварительного разрешения. Это означает, что все действия, которые может сделать ваше приложение с помощью JavaScript, пользователь может легко воспроизвести, открыв Инструменты разработчика в своем браузере. Это влечет за собой две проблемы:

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

– Код приложения на стороне клиента не может содержать «секретную» информацию, такую как ключи API или любого рода учетные данные для доступа, которые не являются специфическими для текущего пользователя.

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

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

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

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

1. Клиент направляет пользователя к процессу аутентификации на стороне сервера. Это может быть сделано через всплывающее окно JavaScript или перенаправление браузера включается установкой window. location.

2. Сервер проверяет подлинность пользователя с помощью пароля, цифровых подписей или других средств.

3. Сервер создает случайно сгенерированный токен (ключ) и связывает его с уже прошедшим аутентификацию.

4. Сервер передает токен обратно клиенту.

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

Поскольку токен генерируется в момент входа в систему случайным образом, его присутствие служит достаточным доказательством того, что запрос исходит от пользователя, которому был выслан токен. Токен, который предоставляет доступ без каких-либо дополнительных требований, известен как токен носителя [1].

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

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

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

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

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

Аутентификация и авторизация требуют обширных знаний, а потому вам нужно будет серьезно задуматься над стратегией, которую вы решите использовать. Простое предъявление токена кажется наилучшим выходом из ситуации, но эта система слишком уязвима. Если она будет перехвачена, то сможет полностью скомпрометировать учетную запись пользователя. Вот несколько советов, которые можно учесть для того, чтобы создать более высокий уровень безопасности пользователя для статического приложения [2]:

1. Не изобретайте колесо. Люди потратили много времени, думая на эти темы. Лучше всего придерживаться существующего протокола OAuth 2.0, а не пытаться придумать свой собственный.

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

3. Не храните токены доступа в незашифрованном виде или на локальном диске.

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

Трехсторонняя аутентификация

В зависимости от потребностей вашего приложения, вы можете не реализовать свою собственную проверку подлинности пользовательских данных на основе токена. Если вы создаете приложение, которое в первую очередь взаимодействует с другой службой, могут быть доступны библиотеки JavaScript (например, Facebook’s JS SDK) или же они могут предложить способы создания авторизации токенов вручную (например, GitHub’s API).

Также появился относительно новый вариант, популярность которого растет, – он является фоновым провайдером аутентификации. Такие сервисы, как Firebase и UserApp, предлагают простые способы аутентификации пользователей статического приложения без генерирования кода на стороне сервера. Каждый сервис будет иметь свои сильные и слабые стороны, которые должны рассматриваться как часть общей стратегии аутентификации.

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

Литература

1. Под редакцией А. А. Шелупанова, С. Л. Груздева, Ю. С. Нахаева. Аутентификация. Теория

и практика обеспечения доступа к информационным ресурсам. М.: Горячая линия –

Телеком, 2009. С. 552.

2. Смит Ричард Э. Аутентификация: от паролей до открытых ключей. М.: Вильямс, 2002.

С. 432.

CHECKRECIPIENT SOLUTION OVERVIEW FOR EMAIL SECURITY

Patrakov E.1, Patrakova D.2 ОБЗОР РЕШЕНИЯ CHECKRECIPIENT ДЛЯ БЕЗОПАСНОСТИ ЭЛЕКТРОННОЙ ПОЧТЫ Патраков Е. И.1, Патракова Д. И.2

‘Патраков Евгений Иванович /Patrakov Evgeny — студент, департамент менеджмента;

2Патракова Дарья Ивановна / Patrakova Daria — студент, кафедра теоретических основ радиотехники, Уральский федеральный университет им. Б. Н. Ельцина, г. Екатеринбург

Аннотация: неверно адресованное письмо в современном мире вследствие непреднамеренной человеческой ошибки может стать результатом утечки конфиденциальных данных. Для решения данной проблемы были предложены следующие механизмы: «задержка отправки сообщения», «шифрование письма». Однако такие методы имеют существенные недостатки: уменьшение скорости отклика электронной почты, сложность реализации. Вследствие этого было предложено решение CheckRecipient, которое имеет две реализации: CheckRecipient Guardian, обнаруживающий и предотвращающий угрозы по электронной почте, используя искусственный интеллект, и CheckRecipient RuleBuilder, обнаруживающий и предотвращающий угрозы по электронной почте, используя машинное обучение. Abstract: incorrectly addressed letter in the modern world can become result of leakage of confidential data. To solve this problem, the following mechanisms have been offered: «delay of sending message», «encryption of a letter». However, such methods have significant drawbacks: reduction in the response speed of the email, the complexity of the implementation. As a result, it was suggested solution CheckRecipient, which has two implementations: CheckRecipient Guardian, detect and prevent threats by e-mail, using artificial intelligence, and CheckRecipient RuleBuilder, detect and prevent threats by email, using machine learning.

Взаимосвязь идентификации, аутентификации и авторизации

Наверное, вы уже догадались, что все три процедуры взаимосвязаны:

Многофакторная аутентификация

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

Среди видов многофакторной аутентификации наиболее распространена двухфакторная аутентификация (2FA — 2-factor authentication) – метод, при котором пользователю для получения доступа необходимо предоставить два разных типа аутентификационных данных, например, что-то известное только пользователю (пароль) и что-то присущее только пользователю (отпечаток пальца).

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

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

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

Определения

Идентификация, аутентификация и авторизация – три процесса защищающие Ваши данные или денежные средства от доступа посторонних лиц.

Понимание процессов придет быстрее, если дать им определения.

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

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

Примеры

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

Проблемы безопасности при авторизации

Помните, как в сказке «Красная Шапочка» бабушка разрешает внучке войти в дом? Сначала бабушка спрашивает, кто за дверью, затем говорит Красной Шапочке, как открыть дверь. Волку же оказалось достаточным узнать имя внучки и расположение дома, чтобы пробраться в дом.

Какой вывод можно сделать из этой истории?

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

Рекомендации

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

Заключение

Итак, сегодня вы узнали, что такое идентификация, аутентификация и авторизация.

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

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

https://www.youtube.com/watch?v=ixDmnU7–d8

P.S. Самые внимательные могут посчитать, сколько раз нарушены рассмотренные в данном уроке процедуры.

Похожее:  Чем отличается аутентификация от авторизации

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

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