Хакерские атаки, кража персональных данных, информации и денег — все это часто встречается в современном мире. Поэтому обеспечение сетевой безопасности — первоочередная задача для владельца каждого сайта или мобильного приложения. И она связана с тремя понятиями — идентификация, аутентификация и авторизации пользователя. Разбираемся, что это такое.
- Что такое идентификация
- Что такое аутентификация, ее типы
- Авторизация: что это такое, типы
- Как авторизация и аутентификация работают вместе
- Сравнение идентификации, авторизации и аутентификации
- Рекомендации по использованию авторизации и аутентификации
- Технологии и модели доступа
- FAQ по авторизации и аутентификации
- Коротко о главном
Что такое идентификация
Идентификация (ID) — первый шаг в любой защищенной системе. Технологически выглядит как ввод логина, email, пароля. Но это только заявление. Например, «Я — Вероника». Следующие шаги — аутентификация, которая доказывает это, и авторизация, которая решает, куда эту Веронику пустить.
Примеры: компании идентификация происходит с помощью учетной записи, в приложении банка — с номером телефона, на государственном сервисе — СНИЛС или номер паспорта.
Идентификация присваивает каждому пользователю уникальный ключ. Часто это UUID — длинная буквенно-цифровая строка вроде 550e8400-e29b-41d4-a716-446655440000. Она гарантированно уникальна, даже когда создается в разных местах без центрального сервера. Один человек может иметь несколько цифровых идентичностей. Например, сотрудник использует корпоративный email для работы, номер телефона для мессенджеров, а в CRM он зарегистрирован как менеджер под ID 457. Задача системы — корректно связать эти разные «личности» одного пользователя.
Универсальный идентификатор должен быть бессмысленным. Не стоит использовать в качестве ID данные, которые можно менять (телефон, ФИО). Прежде всего ID — технический ключ. Идентификатор остается навсегда. Даже если пользователь удален из системы, его ID нельзя переиспользовать, иначе в логах будет путаница. Сейчас наблюдаются тренды децентрализованной идентификации, когда технологии на основе блокчейна позволяют пользователям управлять цифровыми идентичностями без привязки к конкретному провайдеру.
Кроме того, массовость приобретает биометрическая идентификация. Например, оплата по лицу — система сначала понимает, чье это лицо, а потом проверяет, совпадает ли оно с владельцем устройства.
Простыми словами, идентификация — это фундамент цифровой безопасности, остальные шаги строятся уже на нем. Ошибки на этом этапе делают бессмысленными все последующие проверки.
Что такое аутентификация, ее типы
Если вы заходите на какой-либо сайт, будет необходима аутентификация — проверка, знаете ли вы пароль от учетной записи на сайте. Процедура требуется в том числе для доступа к электронной почте, к социальным сетям, платежным системам, корпоративным сайтам, онлайн-банкингу и к аккаунту в интернет-магазине. Пользователь предъявляет доказательства того, что он — действительно владелец аккаунта, система распознает и принимает его данные.
Пример: когда вы идете на закрытое мероприятие, сначала устанавливают вашу личность (смотрят паспорт и сверяют фото) и только затем смотрят, включены ли вы в список гостей (есть ли у вас право доступа на мероприятие). То есть сначала вы проходите аутентификацию.
Типов проверки личности пользователя несколько, они подразумевают разный уровень сложности и безопасности.
Однофакторная проверка личности. Использует один уровень защиты — чаще всего введение логина и пароля. Это самый традиционный вариант.
2FA/MFA — двухфакторная/многофакторная проверка личности. Здесь для доступа к системе от пользователя уже требуются несколько форм аутентификации одновременно. Это может быть введение логина и пароля, а затем кода из SMS-сообщения. Чаще всего многофакторная система доступа используется в финансовой сфере или в крупных интернет-магазинах.
После этого код присылается на другое устройство, то есть на смартфон.
Единый вход. Это доступ к нескольким сайтам или приложениям с одним набором учетных данных. Используется прежде всего в корпоративных средах для того, чтобы пользователям было удобнее перемещаться между продуктами компании. Например, это различные сервисы Google, куда можно войти с почтой на @gmail.com.
Вход с помощью соцсетей. Этот вид подтверждения личности пользователя дает возможность получить доступ к системе или приложению с помощью учетных данных социальных сетей, например, «ВКонтакте». Социальные сети сами принимают меры по обеспечению безопасности данных аккаунтов, так что в целом этот способ можно признать более безопасным, чем вход по паролю.
Пример: войти в нейросеть Chad можно по данным в социальных сетях.
После прохождения проверки личности становится возможна проверка прав доступа пользователя к информации.
Простыми словами, аутентификация — проверка личности пользователя.
С помощью чего можно пройти аутентификацию
Условно все варианты прохождения процедуры можно разделить на 3 большие группы:
- Вы обозначаете что-то, что знаете только вы. Например, пароль и логин или ответ на секретный вопрос, или PIN-код.
- Вы предъявляете что-то, что есть только у вас. Например, подтверждаете факт одновременного владения компьютером и смартфоном или наличия у вас токена (специального кода).
- Вы подтверждаете свою личность физически. Это проверка личности на основе физических характеристик: отпечаток пальцев, или сетчатки глаза, или просто лица при реализации на сайте функции распознавания лиц.
Рассмотрим частые виды установления истинности пользователя подробнее:
- Проверка личности по паролю. Пользователь вводит логин и пароль, который он раньше сам задал для входа в систему. Логин и пароль задаются при регистрации. Иногда в качестве логина могут выступать номер телефона или адрес электронной почты, пароль всегда задается самостоятельно. На первом этапе регистрации система может предоставить пользователю временный пароль, который он затем меняет на удобный ему и неизвестный никому больше.
- Проверка личности по сертификату. Сертификат — это набор атрибутов, которые идентифицируют владельца, подписанный удостоверяющим центром, то есть специальной компанией, которая занимается выдачей цифровых сертификатов пользователю. Сертификат хранится у пользователя либо в отдельном файле, либо на отдельном физическом устройстве, например, на флешке. Так обеспечивается безопасность доступа к электронной цифровой подписи, которую оформил пользователь через федеральный сервис «Контур». Это подпись предоставляется в виде сертификата на физическом носителе, и требует использования ключа, подтверждающего, что человек владеет именно этой электронной подписью. Зато, получив ее, пользователь может подписывать обращения на Госуслугах и вообще эффективно взаимодействовать с государственными организациями в режиме онлайн.
- Проверка личности по одноразовым паролям. Применяется при двухфакторной схеме. В этом случае пользователь должен предоставить данные двух типов — например, основной пароль и логин и одноразовый пароль для входа, который высылается ему на почту или на смартфон. Как вариант дополнительный пароль может быть запрошен при определенных действиях, например, в онлайн-банке при совершении оплаты. Такой вариант повышает уровень защиты.
- Проверка по ключам доступа. Вариант, который нередко используют платежные системы. В этом случае для входа вместе требуется access key — длинные уникальные строки с произвольным набором слов. Например, такие варианты используются в криптокошельках. Ключ в этом случае называется seed-фразой и состоит из нескольких (12, 16, 18 или 24) словарных слов, никах не связанных между собой по смыслу. Фраза может выглядеть так: maximum king wheat fringe trade humor wire gate drive mouse fun obvious.
- Проверка личности через сторонние сервисы. Чаще всего — через социальные сети. В этом случае соцсети выступают как сторонний сервис подтверждения истинности пользователя.
- Проверка личности по биометрическим показателям. Это самый продвинутый и современный способ подтверждения истинности пользователя. Отпечаток пальца или сетчатку глаза нельзя подделать, а возможность потерять их в результате травм намного ниже чем вероятность потерять смартфон в общественном транспорте.
Биометрическое подтверждение истинности владельца есть на современных компьютерах — например, я в свой ноутбук вхожу по отпечатку пальца, который считывается в момент нажатия кнопки «Включить». Всем остальным, чтобы попасть в мой компьютер, нужно знать четырехзначный код, который я, конечно, никому, кроме близких, не передам.
Авторизация: что это такое, типы
Авторизация — это проверка разрешенного уровня доступа пользователя к информации, то есть к конкретному контенту, размещенному на сайте. В примере с посещением закрытого мероприятия это — процедура поиска вас в списке приглашенных гостей, то есть подтверждение вашего права доступа на мероприятие. Это вторичная процедура, которая проходит после того и если человек успешно прошел аутентификацию в системе. Чаще всего встречаются три типа процедуры.
- Доступ по роли/ролевой доступ. В этом случае разрешенные действия устанавливает владелец файла, сайта или системы. Например, это может быть доступ по должности — только бухгалтер имеет доступ к налоговой отчетности, а, скажем, инженер-технолог той же организации или делопроизводитель — нет. Наглядно это можно продемонстрировать на примере работы в Google Docs:
- Доступ по мандату. Модель характерна для госучреждений где кадровые службы имеют доступ только к кадровой информации, а технические отделы — только к технической.
- Избирательный доступ. В этом случае владелец ресурса сам устанавливает права пользования для сотрудников или посетителей. Например, это можно делать поименно, используя адреса электронной почты.
Как авторизация и аутентификация работают вместе
На одном ресурсе могут одновременно использоваться и аутентификация, и авторизация — вместе их используют для повышения уровня безопасности аккаунтов пользователей и представленной в системе информации.
Например, у вас есть банковская карта, и вы заходите в десктопную версию онлайн-банка, чтобы управлять балансом. Чтобы удостовериться, что в онлайн-банк входите именно вы, система запрашивает у вас логин (или номер карты) и пароль. Но что если логин, номер карты, пароль стали известны злоумышленникам? Тем более, что номер карты мы обычно и не скрываем, часто переводя и получая деньги именно по этому номеру.
Чтобы обезопасить ваши средства, введена вторая часть аутентификации — вы должны подтвердить, что-то, что украсть мошенники, скорее всего, не могли. Например, код из SMS-сообщения, только что отправленного банком. Стандартный срок действия такого кода составляет всего 10 минут.
Таким образом, процедуры контроля доступа, при которых задействованы два или несколько разных технических устройств, обеспечивают максимально возможный уровень безопасности в интернет-среде.
Сравнение идентификации, авторизации и аутентификации
Для наглядности представим все три компонента информационной безопасности в таблице:
|
Критерий |
Идентификация |
Аутентификация |
Авторизация |
|
Основной вопрос |
КТО вы? |
ДОКАЖИТЕ, что это вы |
Что вам МОЖНО? |
|
Суть процесса |
Заявление личности. Сообщение системе своего идентификатора |
Проверка подлинности заявленной личности. Подтверждение, что вы — это вы |
Проверка прав. Определение, какие действия и ресурсы вам доступны |
|
Стадия в процессе доступа |
Первый шаг. Начало любого взаимодействия |
Второй шаг. Следует за идентификацией |
Третий шаг. Следует за успешной аутентификацией |
|
Что предоставляет пользователь |
Идентификатор (логин, email, номер карты) |
Учетные данные (секрет): пароль, код из SMS, отпечаток пальца |
Права проверяются системой на основе учетной записи |
|
Что проверяет система |
Существует ли такой идентификатор в базе |
Совпадают ли представленные учетные данные с привязанными к идентификатору. |
Есть ли у проверенной учётной записи необходимые права для запрошенного действия |
|
Результат для системы |
УЗНАЁТ субъекта |
УБЕЖДАЕТСЯ, что субъект — настоящий. |
РАЗРЕШАЕТ или ЗАПРЕЩАЕТ конкретное действие |
|
Жизненная аналогия |
Назвать свое имя на входе в клуб |
Показать паспорт или клубную карту для подтверждения имени |
Получить браслет, дающий право пройти в VIP-зону или заказать напиток |
|
Технические примеры |
• Ввод логина • Предъявление email • Сканирование карты доступа |
• Ввод пароля/PIN • Подтверждение входа по SMS/2FA • Сканирование отпечатка (Face ID) |
• Доступ к папке на сервере • Возможность редактировать документ • Право на подтверждение платежа |
|
Возможный ответ системы при ошибке |
«Пользователь с таким логином не найден» |
«Неверный пароль» |
«У вас недостаточно прав для доступа к этой странице» |
|
Взаимосвязь |
Без идентификации аутентификация невозможна — системе не с кем сверять данные |
Без успешной аутентификации авторизация не имеет смысла — нельзя давать права непроверенному субъекту |
Является конечной целью первых двух этапов |
Рекомендации по использованию авторизации и аутентификации
- Используйте двухфакторную проверку истинности пользователя и его прав доступа к информации — сегодня это рационально и оправданно. Пользователи могут чувствовать себя более защищенными, когда включена двухфакторная аутентификация. Для повышения комфорта пользователей можно также задавать параметр «доверять этому устройству в течение Х дней», и в этом случае двухфакторная схема будет включаться только по истечении заданного периода.
- Подумайте об аутентификации с помощью данных аккаунтов из соцсетей — конечно, если речь не идет о финансовой информации. В целом, такой вариант с точки зрения пользователей упрощает взаимодействие с сайтом.
- При установке пароля для входа на сайт задавайте правила его создания и мотивируйте пользователей составлять надежные пароли. Правилами могут быть обязательное наличие строчных и заглавных латинских букв, а также цифр и дополнительных знаков («!», «/» и т. д.). Длина пароля оптимально должна составлять не менее 8 знаков.
- Используйте на сайте протоколы зашифрованной передачи данных. Особенно это важно при работе с конфиденциальной информацией.
- Периодически проводите аудит безопасности работ с сайтом мобильным приложением или системой. Это поможет обнаружить уязвимости и устранить их до появления проблем у пользователей.
Если у вас атаки направлены на захват учетных записей, сосредоточьтесь на совершенствовании аутентификации.
Если у вас много пользователей с разными уровнями и ролями, возможно, стоит уделить больше внимания авторизации.
Оцените, где в вашей системе точки атаки. Например, если сотрудники часто попадают на фишинг, двухфакторная проверка уже не справляется. Это может быть сигналом к переходу на динамическую автоматизацию с анализом пользовательского поведения в реальном времени.
В любом случае нужно понимание, какие ресурсы и затраты имеются для реализации механизмов безопасности. Иногда новые технологии требуют много денег, но это обосновано, когда взамен вы получаете спокойную работу компании без сбоев и потери данных.
Технологии и модели доступа
Безопасность данных и управление доступом — задача критически важная для бизнеса. Помогают в ней различные технологии и модели, которые защищают конфиденциальность.
OAuth 2.0 (Open Authorization 2.0)
Это протокол, который позволяет приложениям получать ограниченный доступ на других сервисах без логина и пароля. Вместо них приложение получает временный токен, который дает права на заранее разрешенные действия.
Участники OAuth 2.0: клиент (Client), ресурсный сервер (Resource Server), авторизационный сервер (Authorization Server), ресурсный владелец (Resource Owner).
Характеристики OAuth 2.0:
- Пользовательский контроль. Когда сами пользователи решают, какие ресурсы доступны клиентскому приложению и могут аннулировать доступ в любой момент.
- Совместимость с разными платформами. Протокол подходит для веб-серверов, мобильных и настольных приложений, лендингов и взаимодействий «сервер-сервер».
- Распространенность. OAuth 2.0 — стандарт, который используют крупные компании, соцсети, интернет-магазины.
JWT (JSON Web Token)
Стандарт для формирования токенов доступа в формате JSON. Применяется в серверных приложениях для безопасной передачи данных. По сути, это цифровое «удостоверение личности», когда при входе в систему сервер проверяет учетные данные, и если они правильные — выдает JWT с информацией о пользователе и его цифровой подписью.
Преимущества:
- Необязательно сохранять сессию, что снижает нагрузку на сервер, и приложение можно масштабировать.
- Можно работать с несколькими доменами. JWT упрощает доступ к разным сервисам и доменам.
- Стандарт может проверить любой сервис как с секретным, так и публичным ключом, без обращения к центральному сервису аутентификации.
- Можно хранить дополнительную информацию. Это ускоряет работу, поскольку нет необходимости дополнительных запросов к базе данных.
- Совместимость с разными языками программирования. Стандарт позволяет создавать токены на любом языке программирования.
API Gateway
Это прокси-сервер, который помогает обрабатывать входящие запросы к программному интерфейсу приложения (API). Распределяет запросы по нужным сервисам в зависимости от потребностей пользователя, служит единой точкой входа, упрощает работу распределенных систем и микросервисов.
Есть два основных вида API Gateway:
- Внешний. Стоит на входе в систему, принимает запросы от приложений и сайтов, прячет сложные детали внутренней работы, проверяет пользователей и ограничивает количество запросов. Нужен для защиты системы от нежелательных атак.
- Внутренний. Используется внутри системы, чтобы ее маленькие части (микросервисы) могли общаться друг с другом.
API Gateway может кэшировать ответы для повышения производительности и снижения нагрузки на сервисы. Кроме того, у него есть возможности преобразовывать запросы и ответы между разными протоколами (REST, SOAP, gRPC).
Passkeys
Ключи доступа, которые используют биометрию для создания и хранения криптографических ключей. Работает таким образом:
- При регистрации пользователь использует биометрию: лицо, отпечаток пальца.
- Созданный приватный ключ остается на устройстве, а публичный отправляется на сервер.
- При следующей аутентификации сервер отправляет челлендж, который подписывается приватным ключом на устройстве пользователя и проверяется публичным ключом на сервере.
Вот несколько сервисов, которые поддерживают Passkeys: Google, Microsoft, VK, WhatsApp. Запросы Passkey связаны только с одним конкретным сервисом. Это значит, что мошенники не смогут использовать фальшивые сайты, чтобы украсть данные для входа в этот сервис.
RBAC (Role-Based Access Control)
Работает по принципу «должность определяет права». Пользователям назначаются роли, а ролям — конкретные разрешения. Например, бухгалтерам — доступ в 1С, а менеджерам — в CRM.
Конкретный пример в бухгалтерии: в системе у сотрудницы Анны Ивановой есть роль бухгалтер. Этой роли назначены права:
- Чтение и запись в папку \\server\finance\.
- Доступ к веб-интерфейсу 1С:Бухгалтерия.
- Запрет на вход в папку \\server\hr\salaries\.
Главный плюс модели — простота управления, когда добавили роль и права появились автоматически. Минус — жесткость. Например, бухгалтеру нужен доступ к одному договору в папке HR. Придется либо открывать доступ всем бухгалтерам, либо создавать новую роль.
ABAC (Attribute-Based Access Control)
Это более гибкая и умная модель, где доступ определяется динамически на основе атрибутов:
- Пользователь: отдел, должность, уровень допуска.
- Ресурс: тип документа, метка конфиденциальности, владелец.
- Действие: чтение, изменение, удаление.
- Контекст: время суток, IP-адрес, тип устройства, местоположение.
Например, бухгалтеру Анне Ивановой политика заблокирует доступ к отчетам, если она попытается открыть их в субботу с домашнего ноутбука, но в понедельник с рабочего компьютера доступ будет предоставлен.
ABAC позволяет описать тонкие правила, учитывающие реальную ситуацию. Но минус в том, что это сложно — нужно четко управлять сотнями атрибутов, правильно формулировать политику, иначе можно случайно заблокировать доступ там, где надо.
Каждая технология выполняет уникальную роль в системах безопасности и управления доступом. Часто их применяют совокупно для многоуровневого подхода к информационной безопасности.
FAQ по авторизации и аутентификации
Для наглядности я собрала ответы на самые популярные вопросы об идентификации, аутентификации и авторизации.
Может ли быть авторизация без аутентификации?
Может, но в специфических сценариях. Например, публичная ссылка на документ Google Docs или на папку в облачном хранилище. Система дает доступ к ресурсу любому, у кого есть ссылка, но не проводит аутентификацию: не проверяет конкретную личность пользователя. Это анонимный или гостевой доступ.
Что такое 2FA (двухфакторная аутентификация) и зачем она нужна?
Это усиленный этап аутентификации, который требует от пользователя два разных типа доказательств или факторов из трех возможных:
- Что-то, что вы знаете: пароль, PIN-код.
- Что-то, что у вас есть: телефон для SMS, токен-генератор, приложение-аутентификатор.
- Что-то, что вы есть: отпечаток пальца, сканирование лица.
Двухфакторная проверка нужна для защиты от кражи пароля. Даже если злоумышленник знает пароль, без доступа к смартфону он не сможет войти.
В чем разница между OAuth и OpenID Connect (OIDC)?
Протоколы часто используют вместе, но задачи у них разные.
OAuth 2.0 — это протокол авторизации. Он позволяет одному сервису получить ограниченный доступ к данным пользователя в другом сервисе без передачи пароля. Пример: «Разрешить приложению «Календарь» читать ваши контакты в Google».
OpenID Connect (OIDC) — это надстройка над OAuth 2.0 для аутентификации. Он позволяет одному сервису убедиться в личности пользователя с помощью другого сервиса и получить базовую информацию о нём (имя, email). Пример: кнопка «Войти через Google» на стороннем сайте.
OAuth дает доступ к данным, а OpenID Connect подтверждает личность.
Что безопаснее: смс-код или приложение-аутентификатор?
Приложение-аутентификатор считается безопаснее, потому что:
- Злоумышленник может перехватить SMS или убедить оператора перенести номер на свою сим-карту.
- Коды в приложении генерируются локально на устройстве и не передаются по сети.
- Для получения кода не нужна мобильная связь или интернет.
SMS — лучше, чем ничего, но приложение-аутентификатор или аппаратный токен — более надежный второй фактор.
Является ли CAPTCHA аутентификацией?
Нет, CAPTCHA — это не аутентификация, а защита от ботов. Ее цель — отличить человека от автоматизированной программы во время регистрации, входа или отправки формы. Она не проверяет кто именно этот человек, а только проверяет, что это человек, а не скрипт.
Коротко о главном
- Контроль доступа — вот основная задача, которую решают две рассмотренные процедуры — аутентификация, или проверка личности пользователя, и авторизация, или определение прав доступа к информации после успешной аутентификации.
- Существуют разные методы аутентификации: однофакторная проверка, двухфакторная или многофакторная проверка, единый вход и вход с помощью социальных сетей. Каждый из этих методов имеет свои преимущества и недостатки, и выбор определенного метода зависит от потребностей и уровня безопасности конкретных системы, сайта или мобильного приложения.
- К основным способам авторизации относятся ролевой доступ, доступ по мандату и избирательный доступ.
- Обеспечение безопасности в сети — важная задача для всех владельцев сайтов и мобильных приложений, а грамотная реализация контроля доступа поможет защитить пользователей от хакерских атак и кражи личных данных.