Cистемы и методы аутентификации пользователей

Алан-э-Дейл       27.02.2023 г.

Отслеживание процесса аутентификации пользователем

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

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

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

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

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

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

Многофакторная аутентификация подразумевает предъявления более чем одного «доказательства» способа аутентификации для доступа к данным. Такими «доказательствами» могут быть:

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

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

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

  • SMS-сообщение на мобильный телефон;
  • голосовой вызов на телефон;
  • реестр одноразовых кодов;
  • программа-аутентификатор для мобильного или ПК.

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

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

Двухфакторная аутентификация используется сервисами Facebook, Web Money, Yandex, Microsoft, Google и другими. Все они используют свои собственные программы-аутентификаторы, каждая из которых подчиняется определенным стандартам.

What Is Authentication?

Authentication is the act of validating that users are whom they claim to be. This is the first step in any security process. 

Complete an authentication process with:

  • Passwords. Usernames and passwords are the most common authentication factors. If a user enters the correct data, the system assumes the identity is valid and grants access.
  • One-time pins. Grant access for only one session or transaction.
  • Authentication apps. Generate security codes via an outside party that grants access.
  • Biometrics. A user presents a fingerprint or eye scan to gain access to the system. 

In some instances, systems require the successful verification of more than one factor before granting access. This multi-factor authentication (MFA) requirement is often deployed to increase security beyond what passwords alone can provide.

Custom Authentication

You can create your custom authentication by following Create a Custom Authenticator tutorial.

Note that it’s also possible to customize the right management system, see Security Module for more details.

Custom Authentication using a Groovy script in a wiki page

Start by specifying you want to use the Groovy Authenticator:

xwiki.authentication.authclass = com.xpn.xwiki.user.impl.xwiki.GroovyAuthServiceImpl

Then add another configuration parameter to specify in which wiki page the authenticator is:

xwiki.authentication.groovy.pagename = MySpace.MyPage

Then put some Groovy code in a wiki page that returns a XWikiAuthService object.

Многофакторная (двухфакторная) аутентификация

Идеология многофакторной аутентификации (multi-factor authentication, MFA) заключается в том, чтобы взаимно компенсировать недостатки нескольких отдельных факторов, как минимум двух, у которых различаются ключевые риски. Чаще всего на практике используется двухфакторная аутентификация. Например, систему, построенную на аппаратных ключах, которые пользователи должны иметь при себе, можно усилить за счет механизма паролей, которые пользователи должны помнить. Тогда злоумышленник с токеном не будет знать пароля, а взломщик, укравший пароль, не будет иметь токена. Конечно, самый распространенный и общеизвестный вариант двухфакторной аутентификации – это два пароля, постоянный и одноразовый; однако сущность этой конструкции аналогична описанной выше, потому что базовым способом доставки одноразового пароля остается мобильная связь. Иными словами, подлинным признается тот пользователь, который знает постоянный пароль и имеет при себе смартфон, куда приходит пароль временный – так что устройство связи де-факто играет роль аппаратного токена.

Популярность и относительная надежность двухфакторной аутентификации приводят к тому, что на рынке появляются готовые решения, избавляющие клиента от необходимости разрабатывать все самому. Одно из них – упоминавшийся выше Google Authenticator, однако это приложение – не единственный вариант. Например, Symantec предлагает сервис VIP – Validation and Identity Protection (бывший VeriSign Identity Protection), который не бесплатен, но предлагает довольно разнообразные функции вроде бесконтактной разблокировки, когда сотруднику не нужно ничего вставлять в считыватель или подносить к нему – достаточно находиться рядом.

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

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

Понятие аутентификации

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

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

2017: Google отказывается от SMS при двухфакторной авторизации

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

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

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

«Умный» провайдер

  1. Сервер сообщает клиентскому приложению о том, что пользователь должен выполнить аутентификацию второго фактора на стороне провайдера.
  2. Клиентское приложение показывает пользователю окно дополнительной аутентификации, например:
  3. Сервер отправляет HTTP-запрос провайдеру с просьбой самостоятельно аутентифицировать пользователя.
  4. Провайдер начинает процедуру аутентификации, например, с помощью мобильного приложения просит у пользователя отпечаток пальца.
  5. Пользователь прикладывает палец к сканеру.
  6. Пользователь нажимает в окне дополнительной аутентификации (п.2) ОК, сообщая тем самым платформе, что он выполнил дополнительную аутентификацию.
  7. Сервер запрашивает провайдера о результатах аутентификации.
  8. Провайдер сообщает серверу результат аутентификации. Если она выполнена успешно, то считается, что пользователь полностью идентифицирован и может начинать работу.

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

Пользователи и провайдеры

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

Чтобы описать HTTP-запросы, которые следует отправить провайдеру, мы реализовали во встроенном языке новый тип – ШаблонНастройкиВторогоФактораАутентификации. Объекты этого типа — это именованные объекты, которые вы можете сохранять в базе данных. Каждый такой шаблон позволяет сохранить сразу два HTTP-запроса: один для запроса аутентификации, другой – для получения её результата. Оба этих запроса описываются с помощью привычных объектов HTTPЗапрос, но имеют две интересные особенности:

  • Во-первых, для каждого из них вы можете задать HTTP-метод в виде строки. Так сделано потому, что спецификация HTTP допускает использование собственных глаголов (методов).
  • Во-вторых, некоторые поля в этих запросах можно «параметризировать», используя «&» (например, &sms_phone_number). Это связано с тем, что для разных пользователей запросы будут, в основном, одинаковыми, отличие будет лишь в значениях некоторых полей, зависящих от конкретного пользователя (например, номер телефона, по которому надо отправить СМС).

В результате, например, шаблон для простого провайдера, отправляющего СМС, вы можете сформировать, задав только один запрос – запрос для аутентификации. В этом запросе будут использованы два параметра – host (адрес провайдера) и secret (код второго фактора, который сформирует платформа):

Шаблон «умного» провайдера будет содержать уже два запроса (просьба выполнить аутентификацию и запрос результатов аутентификации):

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

Например, для пользователя, который будет использовать «простого» провайдера вы можете записать единственный параметр – адрес, на который будет отправляться HTTP-запрос (host):

А для пользователя, который будет использовать «умного» провайдера, параметров понадобится больше:

Обратите внимание, что каждому пользователю можно задать не один «набор» настроек, а несколько (массив). Свойство ОбработкаНастроекВторогоФактораАутентификации позволяет применять их по очереди в том случае, если исполнение текущего HTTP-запроса закончилось ошибкой

Например, провайдер не работает, тогда можно попробовать другого провайдера, который умеет выполнять аналогичные действия (другой набор настроек).

2011: Двухфакторная аутентификация слишком сложна, считают администраторы

60% из ста опрошенных компанией GrIDsure руководителей информационных служб обеспокоены чрезмерной сложностью методов двухфакторной аутентификации пользователей, а более половины из них считают, что реализация ее обойдется слишком дорого (данные 2011 года). При этом каждый пятый скептически оценивает шансы двухфакторной аутентификации решить проблемы традиционной аутентификации по одному паролю. Тем не менее, 36% опрошенных считают многоуровневую аутентификацию важнейшим факторов обеспечения безопасности доступа. 32% ставят на первое место обучение сотрудников, и только 7% высказываются за полное отключение удаленного доступа.

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

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

Сильные и слабые стороны многофакторной аутентификации

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

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

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

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

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

Обратная сторона многофакторной аутентификации

Первой проблемой многофакторной аутентификации является способ ее реализации. В настоящее время самым популярным вторым фактором, используемым поставщиками сервиса, является одноразовый пароль one time password — OTP.

Применяя данный тип 2FA пользователь вводит на первом уровне аутентификации персональный пароль. На следующем этапе он должен ввести маркер ОТР, обычно отправляемый с помощью SMS на его мобильное устройство. Идея способа понятна. ОТР будет доступен только тому, кто, как предполагается в теории, ввел недоступный постороннему пароль.

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

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

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

Простой провайдер

  1. Сервер сообщает клиентскому приложению о том, что пользователь должен ввести второй фактор аутентификации.
  2. Клиентское приложение показывает пользователю окно дополнительной аутентификации, например:
  3. Сервер генерирует код второго фактора (например, 94573) и отправляет HTTP -запрос провайдеру. Этот запрос содержит сообщение, которое провайдер должен передать пользователю, например «Ваш аутентификационный код 94573. Не сообщайте его никому».
  4. Провайдер отсылает это сообщение пользователю, например, на мобильный телефон.
  5. Пользователь читает код, присланный в СМС.
  6. Пользователь вводит этот код в окно дополнительной аутентификации (п.2)
  7. Сервер проверяет код на корректность. Если он верный, то считается, что пользователь полностью идентифицирован и может начинать работу.

Этот сценарий можно использовать для «простых» провайдеров второго фактора, которые могут только передать фиксированное сообщение пользователю (например, с помощью СМС сообщения на номер телефона). В этом сценарии платформа (сервер) сама генерирует код второго фактора и полностью формирует сообщение, которое провайдер должен передать пользователю. Провайдер только передает сообщение пользователю, а платформа ожидает, когда пользователь введёт код второго фактора в окно дополнительной аутентификации.

Типы аутентификации

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

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

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

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

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

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

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

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

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

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

Провайдер второго фактора аутентификации

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

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

Basic Authentication

XWiki supports basic access authentication, a method designed to allow a web browser or other client programs to provide credentials — in the form of a user name and password — when making a request. You can get authenticated against an XWiki server with the basic authentication protocol using the following URL scheme:

https://username:password@mywiki.xwiki.comxwikibinviewMainWebHome?basicauth=1

Be careful that if you use the HTTP protocol your password will be sent in clear over the network and is thus very unsafe. When using basic authentication you should make sure your wiki is configured to use HTTPS.

What Is Authorization?

Authorization in system security is the process of giving the user permission to access a specific resource or function. This term is often used interchangeably with access control or client privilege.

Giving someone permission to download a particular file on a server or providing individual users with administrative access to an application are good examples of authorization.

In secure environments, authorization must always follow authentication. Users should first prove that their identities are genuine before an organization’s administrators grant them access to the requested resources.

Гость форума
От: admin

Эта тема закрыта для публикации ответов.