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

Архитектура SafeNet Authentication Service

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

Для интеграции в SAS применяются либо протоколы RADIUS / SAML, либо специализированные агенты — на тот случай, если приложения или устройства не поддерживают протокольный сценарий. В Linux / UNIX-системах интеграция реализована посредством агента, поддерживающего все аутентификаторы, либо через RADIUS-протокол, для чего выполняется установка соответствующего агента в операционной системе и в настройках PAM указывается требование о выполнении процедуры аутентификации через RADIUS-сервер.

Таким образом, SAS можно интегрировать в большинство современных инфраструктур или приложений.

Главными преимуществами архитектуры SAS являются:

  • поддержка принципа «Multi-tier multi-tenant», который позволяет создавать независимые серверы аутентификации на одной установке SAS,
  • синхронизация с Active Directory / LDAP / СУБД,
  • гибкая настройка параметров для каждого типа аутентификатора,
  • автоматизация процесса назначения и отзыва токена,
  • портал самообслуживания с возможностью индивидуализации.

Рисунок 15. Архитектура SafeNet Authentication Service

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

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

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

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

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

Авторизация

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

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

Типы аутентификации в 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(), в котором происходит аутентификация.

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

И последнее, что необходимо знать о входе на сайт – это авторизация.

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

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

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

  1. Идентификация.
  2. Аутентификация.
  3. Авторизация.

Настройка двухэтапной аутентификации

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

Так выглядит настройка двухфакторной аутентификации в социальной сети :

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

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

Повышает безопасность аккаунта и при каждом входе с нового устройства будет запрашивать код-идентификатор.

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

Каждый раз при входе в аккаунт Google нужно будет вводить пароль и одноразовый код подтверждения.

Конкурент предыдущего — Яндекс, в своем арсенале так же имеет данный функционал:

В данном случае, при входе в учетную запись Yandex не потребуется вводить пароль — необходимо будет указать проверочный код из СМС-сообщения.

Для пользователей «яблочных устройств» так же существует двухфакторная аутентификация apple, которую можно подключить, как на телефоне, так и на компьютере:

При использовании 2FA получить доступ к своей учетной записи в Apple ID возможно будет только при вводе специальной проверочной комбинации из СМС-сообщения или через доверенное устройство.

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

Двухэтапная аутентификация

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

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

Вывод

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

Ошибка аутентификации. Почему возникает?

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

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

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

Для решения проблемы смотрим видео:

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.

Как можно подтвердить свою личность?

Большинство приложений и сервисов предлагают пользователю на выбор такие варианты двойной аутентификации:

  • Ввести код, который пользователь получает в SMS или email, после того, как он ввел логин и пароль. Это самый распространенный и простой способ, но у него есть свои недостатки: например, SMS с паролем могут перехватить через уязвимость в протоколе , через который они передаются.
  • Ввести код, который генерируется в отдельном приложении-аутентификаторе. Специалисты называют этот способ более надежным , к тому же он остается доступен пользователю, даже если у него нет мобильной связи. Чтобы им воспользоваться, нужно сначала установить одно из таких приложений (например, Google Authenticator, Twilio Authy, Duo Mobile, «Яндекс.Ключ»), а потом выбрать в меню нужного сервиса (например, Facebook) вариант двойной аутентификации через приложение. На экране появится QR-код, который нужно будет отсканировать через это приложение — и им сразу можно пользоваться.
  • Многие сервисы (например, Facebook и «ВКонтакте») также генерируют для пользователя некоторое количество резервных кодов, которые он может использовать в случае, если у него не будет мобильной связи или он потеряет телефон. Для этого нужно заранее распечатать или сохранить эти коды в надежном месте.

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

  • Физический ключ безопасности: это устройство в виде USB-флэшки (для использования со смартфоном ее иногда оборудуют NFC и Bluetooth-интерфейсами) . Такой ключ можно использовать для входа в те же соцсети, но столь серьезный подход, скорее, имеет смысл для хранения очень важных данных.
  • Подтверждение личности с помощью биометрии. Этот способ пока не используется в широко распространенных сервисах типа соцсетей.

Гарантирует ли двухфакторная аутентификация абсолютную безопасность?

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

Что, если второе устройство потеряли?

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

Код безопасности

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

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

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

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

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

Уровни надежности аутентификатора NIST

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

  1. Многофакторный криптографический аппаратный аутентификатор
  2. Однофакторный криптографический аппаратный аутентификатор, используемый вместе с другим аутентификатором (таким как аутентификатор пароля)

См. Руководство NIST по цифровой идентификации для дальнейшего обсуждения уровней гарантии аутентификатора.

Ограниченные аутентификаторы

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

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

Ошибки аутентификации: причины и пути решения

При подключении к сети Wi-Fi, одного устройства к другому или при входе в любую программу и на сайт могут возникнуть проблемы. Чаще всего они связаны с такими причинами:

Неправильный идентификатор, то есть вы просто забыли или перепутали логин, пароль, ПИН-код, банковскую карту. Тут не возникает особых вопросов, как исправить ошибку

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

Все это приводит к определенным затруднениям, и нужно искать способ убрать ошибку и получить доступ к данным или деньгам в каждом конкретном случае. Можно перевыпустить карту, а тем временем перевести деньги на другой счет и обналичить с него, заказать новую подпись или ключ, обратиться в офис, чтобы подтвердить действие без отпечатка пальцев, а, к примеру, при помощи кодового слова.
Разная система шифрования на телефоне и роутере приводит к их несовместимости. Чтобы подключиться к Wi-Fi в случае такой ошибки, потребуется изменить настройки роутера, применив шифрование, доступное в мобильном устройстве.
Иногда телефон не подключается к сети из-за программного сбоя ОС или ошибки в работе роутера. В таком случае попробуйте обновить программу в мобильном устройстве и перезапустите маршрутизатор.
Разная скорость передачи данных на устройствах, тут придется разбираться и снова лезть в настройки выставлять приемлемый объем данных, передаваемый за определенный промежуток времени.
В настройках роутера или другого прибора могут быть четко прописаны устройства, с которыми он может поддерживать связь. Если нужно добавить новый гаджет, то снова-таки придется поработать с настройками.

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

Как злоумышленники обходят даже двухступенчатую защиту

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

  1. Захват контроля над учетной записью выполняется следующим образом: заходим на адрес почтового сервиса, сбрасываем пароль. Получаем код доступа на заблокированное устройство. Просим Siri(голосовой помощник) озвучить пришедший код. Для этого не нужно гаджет снимать с блокировки. Вводим код в соответствующее поле, получаем доступ к почте. Отсюда уже отправляем запрос на сброс пароля от самого аккаунта. После чего успешно меняем его на свой и свободно пользуемся “учеткой”.
  2. Взлом личного кабинета на сайте сотового оператора. Мошенник заранее получает ответы на вопросы от владельца телефона. Этот способ доступен для человека, который знает, кто станет жертвой взлома (это может быть даже знакомый или родственник).Все что нужно — позвонить оператору и ответить на все секретные вопросы для сброса пароля. После этого меняется старый шифр на новый. Далее можно пользоваться учетной записью: заказывать пакеты услуг, СМС, дополнительные услуги.
  3. Имея личный телефон сотрудника крупной финансовой компании или владельца лицевого счета, легко произвести взлом последнего. С целью подключить услуги или перевести деньги на личный счет, злоумышленник делает запрос на предоставление логина или пароля, дублирует номер телефона или устанавливает переадресацию вызовов и СМС с помощью специальных приложений. После этого с легкостью получает все секретные одноразовые коды. Такая операция производится обычно с целью наживы.

SecurityContext – хранилище объекта Authentication

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

Тогда объект Authentication сохраняется в SecurityContext, а тот, в свою очередь, – в SecurityContextHolder:

SecurityContextHolder

Текущего пользователя из него можно получить так:

SecurityContext context = SecurityContextHolder.getContext();
Authentication authentication = context.getAuthentication();
UserDetails principal = (UserDetails) authentication.getPrincipal();

Таким образом, SecurityContext используется для хранения объекта Authentication.

Восстановление Authentication из сессии

Аутентификация в нашем примере происходит только раз. Коль скоро она прошла успешно, authentication восстанавливается из контекста, а в итоге из сессии при последующих запросах. Происходит это в SecurityContextPersistenceFilter.

Сессии в нашем примере включены – они включены по умолчанию, если их специально не отключить. То есть после аутентификации в HTTP-ответе клиенту отправляется уникальный JSESSIONID, который он отправляет во всех последующих запросах. По JSESSIONID  восстанавливается сессия, из нее берется SecurityContext, а из него  Authentication.

Защиты

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

  • Атака « человек посередине»: атаки « человек посередине» (MITM) — это когда третья сторона желает подслушать или перехватить сообщение, а иногда и изменить предназначенное для получателя сообщение. Обе стороны открыто получают сообщения, не проверяя отправителя, поэтому они не понимают, что злоумышленник вставил себя в линию связи. Взаимная проверка подлинности может предотвратить атаки MITM, потому что и отправитель, и получатель проверяют друг друга перед отправкой им своих ключей сообщений, поэтому, если одна из сторон не проверена на предмет того, кем они являются, сеанс завершится.
  • Атаки с воспроизведением: атака с воспроизведением похожа на атаку MITM, при которой более старые сообщения воспроизводятся вне контекста, чтобы обмануть сервер. Однако это не работает против схем, использующих взаимную аутентификацию, поскольку временные метки являются фактором проверки, который используется в протоколах. Если изменение времени превышает максимально допустимую временную задержку, сеанс будет прерван. Точно так же сообщения могут включать в себя случайно сгенерированный номер, чтобы отслеживать, когда сообщение было отправлено.
  • Атаки с использованием спуфинга: атаки с использованием спуфинга основаны на использовании ложных данных, чтобы выдать себя за другого пользователя, чтобы получить доступ к серверу или быть идентифицированным как кто-то другой. Взаимная аутентификация может предотвратить атаки спуфинга, поскольку сервер также аутентифицирует пользователя и проверяет, что у них есть правильный сеансовый ключ, прежде чем разрешать дальнейшее взаимодействие и доступ.
  • Атаки олицетворения: когда каждая сторона аутентифицирует другую, они отправляют друг другу сертификат, который только другая сторона знает, как расшифровать, подтверждая себя как надежный источник. Таким образом, злоумышленники не могут использовать атаки олицетворения, потому что у них нет правильного сертификата, чтобы действовать так, как если бы они были другой стороной.

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

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

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

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

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

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

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

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

Совет

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

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

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