Системы контроля и управления доступом / Хабр

Требования к системе авторизации

Я руководствуюсь следующими принципами:

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

Расширение EAuth

На свет появилось расширение EAuth.

В настоящее время расширение содержит:

Установка


Для начала необходимо

1 Зависимости

Использование расширения

2 Настройка

Я конфигурации

`main.php`

Обязательны для добавления

Использование


В качестве примера возьмем стандартное приложение Yii, сгенерированное командой

`yiic webapp create`

И включить возможность авторизации через Google или Яндекс (мы не будем подключать OAuth-провайдеров). Как выбрать готовую модель?

2 Редактирование SiteContoller

Следующим шагом будет изменение поведения

Сайт/вход.

.

3 Редактируем представление `protected/views/site/login.php`


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

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

`protected/extensions/eauth/views/auth.php“[theme_name]/views/EAuthWidget/auth.php`

4 Результат

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

Если ввести строку поиска Google, то откроется всплывающее окно:

Аутентификация по ключам доступа

Этот способ чаще всего используется для аутентификации устройств, сервисов или других приложений при обращении к веб-сервисам. Здесь в качестве секрета применяются ключи доступа (
access key, API key

Аутентификация по одноразовым паролям

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

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

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

  1. Аппаратные или программные токены, способные генерировать одноразовые пароли на основе секретного ключа, введенного в эти токены, и текущего времени. Секретные ключи пользователей, которые являются собственным фактором, также хранятся на сервере, что позволяет проверить введенные одноразовые пароли. RSA SecurID – пример реализации аппаратного токена; приложение Google Authenticator – пример реализации программного токена.
  2. Случайно сгенерированные коды, которые передаются пользователю через SMS или другой канал связи. В этой ситуации фактором владения является телефон пользователя (в частности, SIM-карта, привязанная к определенному номеру).
  3. Распечатка или скретч-карта со списком предварительно сгенерированных одноразовых паролей. Для каждого нового входа в систему необходимо вводить новый одноразовый пароль с указанным номером.

Системы контроля и управления доступом / Хабр
Аппаратный токен RSA SecurID генерирует новый код каждые 30 секунд.

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

Аутентификация по сертификатам

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

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

Большинство веб-приложений используют сертификаты X.509, которые встраиваются между сервером и клиентским протоколом SSL/TLS. Браузеры, хорошо поддерживающие этот механизм, позволяют пользователю выбирать и устанавливать сертификаты.

Системы контроля и управления доступом / Хабр
Использование сертификата для аутентификации.

Сервер проверяет сертификаты во время аутентификации с помощью следующих рекомендаций:

  1. Сертификат должен быть подписан доверенным центром сертификации (проверка цепочки сертификатов).
  2. Сертификат должен быть действителен на текущую дату (проверка действительности).
  3. Сертификат не должен быть отозван соответствующим центром сертификации (проверка списка исключений).

Системы контроля и управления доступом / Хабр
Пример X.509 сертификата.

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

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

Аутентификация по токенам

Такой способ аутентификации чаще всего применяется при построении распределенных систем
Single Sign-On
(SSO), где одно приложение (
service provider
или
relying party
) делегирует функцию аутентификации пользователей другому приложению (
identity provider
или
authentication service
). Типичный пример этого способа — вход в приложение через учетную запись в социальных сетях. Здесь социальные сети являются сервисами аутентификации, а приложение
доверяет
функцию аутентификации пользователей социальным сетям.

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

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

Системы контроля и управления доступом / Хабр
Пример аутентификации «активного» клиента при помощи токена, переданного посредством Bearer схемы.

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

Системы контроля и управления доступом / Хабр
Пример аутентификации «пассивного» клиента посредством перенаправления запросов.

Протокол связи между клиентами (активными и пассивными) или приложениями IP/SP регулируется набором правил в стандартах. Наиболее широко используемыми стандартами являются OATs, OpenID Connect и SAML. Имеются дополнительные данные об этих протоколах.

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

S P-приложение выполнит следующие проверки:

  1. Токен был выпущен доверенным приложением поставщика идентификационных данных (проверьте поле Issuer).
  2. Токен предназначен для текущего приложения SP (проверьте поле audience).
  3. Срок действия токена еще не истек (проверьте поле expiry date).
  4. Токен является подлинным и не был изменен (проверьте поле подписи).

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

Выведение.

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

Конфигурация aaa new-model


Преимущество конфигурации

aaa

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

aaa

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

Новая модель AAA

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

default

Или определенного номера из списка (

list-name

). Следовательно, существуют различные типы линий ()

aux, vty, con…

) вы можете выбрать один из множества вариантов аутентификации.

Иллюстрация настроек aaa new-model и списков аутентификации представлена ниже:

Router(config)#aaa new-modelRouter(config)#aaa authentication login {default | list-name} method1 [method2…]Router(config)#line {vty | aux | con…} line-numbersRouter(config-line)#login authentication {default | list-name}

Методы

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

Нетривиальный случай внедрения.

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

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

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

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

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

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

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

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

Для такой большой системы существуют спецификации. Мы не будем вдаваться в подробности вроде “система должна поддерживать картотеки и бесконтактные считыватели”.

Контроль доступа Учет рабочего времени – Повышение уровня безопасности.

Снижение вероятности кражи, причиняющей материальный ущерб.

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

Недостаточное взаимодействие с Active Directory, которая уже содержит список всех сотрудников компании (возникнут проблемы со стабильностью данных в различных системах)

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

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

Практически всем этим требованиям отвечает система Lenel Systems OnGuard Enterprise, которая представлена на рисунке ниже.

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

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

Одной из особенностей и возможностей является открытая архитектура.

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

Системы охранной сигнализации и цифровые системы видеонаблюдения;

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

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

Отсутствие aaa new-model

В данном случае мы имеем в виду правую часть диаграммы (см. рис. 1).

Рис. 3. без батарей АА, новая модель

Пара слов о сути, вместо введения.

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

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

Большинство предприятий, использующих информационные системы. Специально обученный человек с надписью “security” (или security service) на бейдже или на спине находится у входа на рабочее место или в офис. Этот человек, как правило, просит предъявить пропуск и записывает его данные во внутренний журнал всех тех, кто не работает здесь/в помещении, но должен войти в здание в деловых целях.

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

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

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

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

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

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

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

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

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

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

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

Проще говоря, дверь открывается, когда кто-то предъявляет системе пропуск (подносит его к считывателю).

Попробуем сравнить две системы.

Сравните систему Lenel Systems с наиболее распространенной системой контроля доступа Perco. Топовая новинка от производителей, доступная в двух вариантах:

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

image
Посмотрим теперь на плюсы, которые даёт использование системой промышленной СУБД (Oracle или MS SQL) и интеграция с Active Directory. Во первых, такую систему можно будет легко интегрировать с существующими системами кадрового учёта. Во вторых можно использовать немножко модифицированную карточку доступа для организации двухфакторной аутентификации пользователей на рабочей станции таким образом принуждая пользователя блокировать рабочую станцию перед покиданием помещения даже на несколько минут. В третьих, раз уж система будет взаимодействовать с Active Directory, то те же карточки можно использовать, скажем, для того, чтобы оплачивать обеды в кафетерии и не нагребать по карманам мелочь. Можно кончено использовать и обычнее банковские карточки для такого случая, но гораздо интереснее сделать сопряжение с программой бухгалтерского учёта и харчеваться в счёт зарплаты (тем более, что предприятие, таким образом, может несколько снизить налоговые отчисления).

Ссылки

UPDATE:

Я добавил расширение loid, потому что оно отсутствовало в пункте “3.2 Setup”.

UPDATE 2:

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

Стандарт saml

Стандарт Security Assertion Markup Language (SAML) описывает передачу аутентификационной информации между поставщиками услуг. Версии 1.0 и 2.1 были впервые доступны в 2002-2003 годах, а версия 3.2 была выпущена только после того, как версия 4.5 была признана несовместимой с первой версией.

Этот стандарт поддерживает множество сценариев системной интеграции и является довольно сложным.

Стандарты oauth и openid connect

O Auth не определяет протокол аутентификации пользователя, в отличие от WS-Federation. Он не определяет, как пользователь может использовать одно приложение для доступа к другому. Однако существуют методы, поддерживающие этот стандарт для аутентификации пользователей.

Текущая версия 2.0 стандарта представляет собой значительно расширенную и упрощенную версию версии 1.0, которая насчитывала около 40 страниц. В настоящее время OAuth 2.0 широко используется для предоставления делегированного доступа и аутентификации пользователей.

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

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

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

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

Системы контроля и управления доступом / Хабр
Взаимодействие компонентов в стандарте OAuth.

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

Стандарты ws-trust и ws-federation

Частью набора стандартов SOAP/XML для описания веб-служб являются W S-Trust и Ws Federation. Эти стандарты созданы совместно с Microsoft, IBM и VeriSign. В корпоративных сценариях используются, в частности, SAML и SASM.

Служба Secure Token Service (STS) – это интерфейс службы безопасности, описанный стандартом WS-Trust. Предоставляется служба, позволяющая создавать и обновлять маркеры. Хотя стандарт допускает различные форматы токенов, обычно используются токены SAML.

W S-Federation контролирует механизмы взаимодействия предприятий, в частности, протоколы обмена токенами. Сервис STS, описанный в спецификации стандарта WS-Trust, одновременно расширяется WS-Federation в плане функциональности и интерфейса. WS-Federation предусматривает:

Можно сказать, что SAML и WS-Federation позволяют решать одни и те же вопросы, но их методы в чем-то отличаются.

Форматы токенов

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

Заключение

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

Похожее:  ВОЗМОЖНОСТЬ СЕРВИСНОГО ОБСЛУЖИВАНИЯ ДЛЯ КЛИЕНТОВ

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

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