Выбираем и настраиваем сетевую аутентификацию

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

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

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

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

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

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

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

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

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

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

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

Классификация и виды

В основе классификации механизмов аутентификации лежит ряд определенных критериев. Так, по степени доверия и направленности процесса различают следующие виды:

  • Односторонняя проверка подлинности (субъект доказывает владельцу системы свои права доступа к информационным ресурсам или интернет-сайту).
  • Двусторонняя аутентификация (обоюдная проверка и установление подлинности как субъекта, так и владельца системы).

В зависимости от возможностей средств аутентификации и уровня информационной безопасности можно выделить такие виды:

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

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

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

Аутентификация, что это такое и для чего она нужна

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

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

История происхождения аутентификации

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

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

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

В древних сказках можно встретить упоминания о паролях, с помощью которых можно было попасть в пещеры с сокровищами. Например, в сказке “Али-Баба и 40 разбойников” присутствует пароль “Сим – Сим, откройся!”, что является ничем иным как аутентификацией.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Действие 5. Подключите мобильный банкинг через банкомат Сбербанка

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

Выполните следующее:

  • Найдите ближайший банкомат Сбербанка;
  • Вставьте в него карту и введите требуемый пин;
  • После авторизации в меню банкомата выберите опцию «Подключить мобильный банкинг»;
  • Выберите подходящий тариф из представленных в меню и подтвердите операцию;
  • В конце процедуры вам придёт смс с подтверждением активированной услуги мобильного банкинга. Это позволит избавиться от ошибки «нет данных для вашей аутентификации» в Сбербанке.

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

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

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

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

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

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

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

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

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

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

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

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

Биометрические данные

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

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

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

Совет

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

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

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

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

Нечто, чем мы обладаем, например, какой-либо уникальный физический объект

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

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

Нечто, что является неотъемлемой частью нас самих — биометрика. Характеристикой является физическая особенность субъекта. Это может быть портрет, отпечаток пальца или ладони, голос или особенность глаза. С точки зрения субъекта, данный способ является наиболее простым: не надо ни запоминать пароль, ни переносить с собой устройство аутентификации. Однако биометрическая система должна обладать высокой чувствительностью, чтобы подтверждать авторизованного пользователя, но отвергать злоумышленника со схожими биометрическими параметрами. Также стоимость такой системы довольно велика. Но, несмотря на свои недостатки, биометрика остается довольно перспективным фактором.

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

Есть несколько стандартных типов хранения и извлечения пользователя, и за каждый из них отвечает свой AuthenticationProvider. AuthenticationManager делегирует провайдеру извлечь данные их хранилища. В Spring Security реализованы несколько стандартных провайдеров, все они задаются в методе configure():

@EnableWebSecurity(debug = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter 
   @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                ....
    }
...
}

Итак, провайдеры:

  • In-Memory – простейший, задан в вышеприведенном фрагменте кода из примера
  • Jdbc –  рассмотрим в следующей статье
  • LDAP

А можно написать свой, так чаще всего и делают (тоже сделано в следующей статье).

Все упирается в получение реального пользователя по его имени – в метод loadUserByName интерфейса  UserDetailsService:

public interface UserDetailsService {
    UserDetails loadUserByUsername(String var1) throws UsernameNotFoundException;
}

где UserDetails содержит информацию о реальном пользователе (точнее, нам надо составить эту информацию из того, что есть в базе, например).

И составляем мы ее как раз в методе loadUserByUsername(), если реализовываем его вручную

Важно заполнить password, username и authorities (права) объекта UserDetails

Но вернемся к методу authenticate(), в котором происходит аутентификация.

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

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

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

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

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

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

Безопасность ВКонтакте. Двухэтапная аутентификация вконтакте

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

Заходим на вашу страницу ВКонтакте, далее нажимаем слева сверху в меню Мои Настройки.

Далее переходим в Безопасность.

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

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

Проверка Вас не утомит: для получения доступа к своему аккаунту с нового браузера или устройства достаточно ввести код подтверждения всего один раз.

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

Нажимаем Приступить к настройке.

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

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

Подтверждения действия. Для подтверждения мы вышлем на ваш мобильный телефон бесплатное SMS-сообщение с кодом.

Нажимаем получить код.

Спустя пару секунд на ваш номер на который зарегистрирована ваша страница Вкотнакте придёт код активации.

Вводим то число которое нам пришло в SMS-сообщении и нажимаем отправить код.

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

Нажимаем завершить настройку.

К сожалению, некоторые приложения пока не работают с кодами подтверждения. Например, мобильные клиенты iPhone, iPad и Windows Phone.

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

Нажимаем справа сверху Закрыть.

Слева сверху в интернет браузере нажимаем Обновить, чтобы обновить страницу.

Теперь нажимаем Показать историю активности.

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

Здесь отображена вся недавняя активность вашей страницы ВКонтакте и все устройства через которые вы (или не вы) входили в ваш аккаунт вконтакте.

Нажимаем слева снизу Завершить все сеансы, чтобы выйти со всех устройств кроме интернет браузера, в котором мы сейчас.

Все сеансы, кроме текущего, завершены.

Если вы пользуетесь мобильным приложение Вкотакте на iPhone, iPad или Windows Phone, то вам надо будет вновь войти в него. А если хотите, то можете вообще заблокировать ВКонтакте на компьютере или заблокировать вконтакте на айфоне.

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

Это вы вошли с мобильного приложения.

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

Чтобы подтвердить, что вы действительно являетесь владельцем страницы, пожалуйста, введите код подтверждения из SMS, отправленного на номер +7 и тут ваш номер.

Вводим код подтверждение пришедший нам по SMS и нажимаем отправить код.

Чтобы войти в приложение, используйте для входа специальный пароль.

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

Копируем этот одноразовый пароль для входа ВКонтакт.

Нажимаем Вернуться в приложение.

Вводим одноразовый пароль в мобильное приложение ВКонтакте и нажимаем Go.

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

Другие уроки на сайте по теме ВКонтакте:

  • Как изменить адрес ВКонтакте
  • Безопасность ВКонтакте

Метод authenticate(Authentication authentication) интерфейса AuthenticationManager – проверка пароля

Допустим, нам приходит HTTP-запрос. Прежде чем попасть в контроллер, запрос проходит через цепочку фильтров. В UsernamePasswordAuthenticationFilter имя и пароль вытаскиваются из запроса. Дальше надо их сравнить с реальными. Тут то вступает в дело AuthenticationManager:

public interface AuthenticationManager {
    Authentication authenticate(Authentication var1) throws AuthenticationException;
}

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

Authentication до аутентификации

Как видно в коде выше, метод authenticate() получает на вход объект Authentication с именем и паролем, полученными от клиента и требующими проверку. Имя хранится в principal, а пароль в credenticals (до проверки, после проверки будет иначе):

До проверки в выделенных полях хранятся имя и пароль

Содержимое объекта Authentication можно проверить, если запустить предыдущий пример и поставить break-point в методе authenticate() класса ProviderManager. А потом по адресу /login отправить POST-запрос с формы ввода имени/пароля:

public class ProviderManager implements AuthenticationManager, MessageSourceAware, InitializingBean {
...
}

Найти класс ProviderManager – Ctrl+N в IntelliJ IDEA

До аутентификации

isAuthenticated() до аутентификации равно false.

Если аутентификация не прошла (имя и пароль неверны), то выбрасывается исключение BadCredentials.

В случае же успеха возвращается тоже объект Authentication,  но заполненный по-другому.

Authentication после аутентификации

После аутентификации в поле Principal объекта Authentication будет реальный пользователь в виде UserDetails:

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

При этом поле Credentials обнуляется, а isAuthenticated() меняется с false на true.

UserDetails:

public interface UserDetails extends Serializable { 
    
    Collection<? extends GrantedAuthority> getAuthorities(); 
    String getPassword(); 
    String getUsername(); 
    boolean isAccountNonExpired(); 
    boolean isAccountNonLocked();  
    boolean isCredentialsNonExpired(); 
    boolean isEnabled(); 
}

То есть имя и пароль перемещаются объект Principal:

UserDetails realUser= (UserDetails)authencation.getPrincipal();

Проверить содержимое объекта Authentication после аутентификации можно, внедрив его в контроллер и поставив в нем break-point (смотреть переменные нужно, когда заходишь под уже залогиненным пользователем; поскольку в нашем примере мы настраивали, что путь /user доступен только для залогиненного пользователя, то есть после того, как аутентификация уже успешно прошла):

@RestController
public class HelloController {

...
    @GetMapping("/user")
    public String user(Authentication authentication) {
        System.out.println((UserDetails)authentication.getPrincipal());
        return "User";
    }
...
}

Вывод в консоль:

org.springframework.security.core.userdetails.User@36ebcb: Username: user; Password: ; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_USER

break-point

Как же AuthenticationManager в authenticate() решает, правильный пароль, или нет? Очевидно, для этого надо сравнить переданный пароль с реальным. А для этого по переданному имени надо извлечь реального пользователя. И вот тут дальнейшее зависит от того, где этот пользователь хранится.

Аутентификация в соцсетях

Уверен, эта картинка знакома всем:

Это часто называют аутентификацией в соцсетях (Social sign-in) или социальным логином (Social Login). Вы можете аутентифицировать пользователей по их аккаунтам в соцсетях. Тогда пользователям не придётся регистрироваться отдельно в вашем приложении.

Формально социальный логин — это не отдельный метод аутентификации. Это разновидность единой точки входа с упрощением процесса регистрации/входа пользователя в ваше приложение.

Лучшее из двух миров

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

Как использовать

Как разработчик вы должны разбираться в работе этого метода аутентификации. Большинство соцсетей в качестве механизма аутентификации используют авторизацию через OAuth2 (некоторые используют OAuth1, например Twitter). Разберёмся, что такое OAuth. Соцсеть — это сервер ресурсов, ваше приложение — клиент, а пытающийся войти в ваше приложение пользователь — владелец ресурса. Ресурсом называется пользовательский профиль / информация для аутентификации. Когда пользователь хочет войти в ваше приложение, оно перенаправляет пользователя в соцсеть для аутентификации (обычно это всплывающее окно с URL’ом соцсети). После успешной аутентификации пользователь должен дать вашему приложению разрешение на доступ к своему профилю из соцсети. Затем соцсеть возвращает пользователя обратно в ваше приложение, но уже с токеном доступа. В следующий раз приложение возьмёт этот токен и запросит у соцсети информацию из пользовательского профиля. Так работает OAuth (ради простоты я опустил технические подробности).

Для реализации такого механизма вам может понадобиться зарегистрировать своё приложение в разных соцсетях. Вам дадут app_id и другие ключи для конфигурирования подключения к соцсетям. Также есть несколько популярных библиотек/пакетов (вроде Passport, Laravel Socialite и т. д.), которые помогут упростить процедуру и избавят от излишней возни.

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

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

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

Аутентификация пользователя на PC:

  • Шифрованное имя (login)
  • Password Authentication Protocol, PAP (связка логин-пароль)
  • Карта доступа (USB с сертификатом, SSO)
  • Биометрия (голос, отпечаток пальца/ладони/радужки глаза)

Аутентификация в сети —

  • Secure SNMP с использованием цифровой подписи
  • SAML (Security Assertion Markup Language)
  • Cookie сессии
  • Kerberos Tickets
  • Сертификаты X.509
  • OpenID Connect аутентификационная надстройка над протоколом OAuth 2.0

В операционных системах семейства Windows NT 4 используется протокол NTLM (NT LAN Manager — Диспетчер локальной сети NT). А в доменах Windows 2000/2003 применяется гораздо более совершенный протокол Kerberos.

Архитектура ESET Secure Authentication

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

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

Серверная часть продукта поддерживает только операционные системы семейства Windows Server. При работе с учетными записями пользователей используется Microsoft Windows Active Directory или собственная база данных. Использование API позволяет внедрять ESA в любые системы аутентификации, такие как веб‑порталы, системы CRM, различные бухгалтерские системы и т. д., а использование пакета SDK позволяет встраивать двухфакторную аутентификацию в собственное программное обеспечение. Управление серверной частью продукта возможно при помощи веб-консоли ESA.

Клиентская часть ESET Secure Authentication совместима с актуальными мобильными платформами и устанавливается на мобильное устройство пользователя, что позволяет ему принимать push-уведомления и генерировать одноразовые пароли доступа. Если по каким-либо причинам использование клиентской части невозможно, то ESET Secure Authentication позволяет использовать аппаратные токены, работающие по стандарту OATH (Open Authentication), и аутентификаторы, соответствующие стандарту FIDO2.

Один из вариантов построения двухфакторной аутентификации при помощи ESET Secure Authentication 2.8 показан на рисунке 1.

Рисунок 1. Пример построения двухфакторной аутентификации при помощи ESET Secure Authentication 2.8

В состав ESET Secure Authentication 2.8 входят следующие компоненты:

  • модуль ESA Web Application;
  • модуль ESA Remote Desktop;
  • модуль ESA Windows Login;
  • сервер защиты ESA RADIUS Server;
  • служба ESA Authentication Service;
  • средство управления ESA Management Tools.

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

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

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