Аутентификация

Пути решения

MACDAC(ACL)RBACАВАСPBAC, RAdAC, CBACшикарный обзор от CUSTIS

Требование от бизнеса Решение
1 Пользователь, не имеющий отношения к конкретному договору, не должен его видеть в системе Тут напрашивается ACL, поскольку определить отношение пользователя к бизнес-процессу достаточно сложно, не записывая его в какой-то список в момент вовлечения. Это будет оптимальным решением с точки зрения производительности чтения относительно реализации с помощью политик.
2 Автор договора должен видеть его на всех этапах Требование может быть реализовано обоими механизмами, но оптимальным я считаю ACL, поскольку в этом случае будет проще реализовать требование №3 от ИБ.
3 Создавать договор имеет право пользователь с грейдом не ниже 10 Это политика (PBAC), без вариантов
4 Визирующий должен видеть договор начиная с поступления к нему на этап и далее ACL будет оптимален
5 Руководители подразделений должны видеть договоры своих подразделений вниз по иерархии Замечательная задача для PBAC, но его применение может снизить производительность чтения, а требования 1 и 2 от ИБ потребуют дополнительных усилий, поэтому стоит подумать над реализацией.
6 Автор договора и руководитель подразделения имеют право отозвать договор на любом этапе согласования PBAC справится отлично
7 Руководство и секретариат головного офиса должны видеть документы всех филиалов PBAC, с теми же ограничениями что и в п. 5
8 Пользователь, создавший договор, не должен иметь права его завизировать Это требование можно было бы закрыть с помощью PBAC, однако так делать не стоит. Это то самое место, где авторизация вступает в конфликт с бизнес-логикой, и если происходит такая ситуация, ответственность стоит отдать бизнес-логике.
Требование от ИБ Решение
1 Знать, кто имеет доступ к конкретному договору Общий журнал для ACL и PBAC
2 Знать, кто имел доступ к конкретному договору в заданный момент времени Общий журнал для ACL и PBAC
3 Лишать пользователя доступа к ранее доступным документам при изменении его должностных обязанностей ACL

Этапы процесса и проверка

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

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

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

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.

Процесс аутентификации/авторизации

Платформа ASP.NET Identity полностью интегрирована в ASP.NET. Это означает, что вы можете использовать стандартные средства аутентификации/авторизации MVC вместе с Identity, такие как атрибут Authorize. В этой статье мы ограничим доступ к методу действия Index контроллера Home и реализуем функции, которые позволят идентифицировать пользователей, чтобы они могли получить к нему доступ. В примере ниже я применил атрибут Authorize:

Атрибут Authorize по умолчанию ограничивает доступ к методам действий для пользователей, не прошедших аутентификацию. Если вы запустите приложение и запросите представление Index контроллера Home (по любому из адресов /Home/Index, /Home или просто /), вы увидите сообщение об ошибке, показанное на рисунке ниже:

Платформа ASP.NET предоставляет полезную информацию о пользователе в объекте HttpContext, которую использует атрибут Authorize, чтобы проверить состояние текущего запроса и посмотреть, является ли пользователь аутентифицированным. Свойство HttpContext.User возвращает реализацию интерфейса IPrincipal, который определен в пространстве имен System.Security.Principal. Интерфейс IPrincipal определяет свойства и методы, перечисленные в таблице ниже:

Методы и свойства, определенные в интерфейсе IPrincipal
Название Описание
Identity

Возвращает реализацию интерфейса IIdentity, описывающую пользователя, связанного с запросом.

IsInRole(role)

Возвращает true, если пользователь является членом указанной роли.

Интерфейс IIdentity, реализация которого возвращается свойством Iprincipal.Identity, также содержит несколько полезных свойств:

Свойства интерфейса IIDentity
Название Описание
AuthenticationType

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

IsAuthenticated

Возвращает true, если пользователь аутентифицирован.

Name

Возвращает имя текущего пользователя.

ASP.NET Identity содержит модуль, который обрабатывает глобальное событие AuthenticateRequest жизненного цикла приложения в котором проверяет cookie в браузере пользователя, для определения того, является ли он аутентифицированным. Позже я покажу как используются эти cookie-файлы. Если пользователь аутентифицирован, ASP.NET задает свойству IIdentity.IsAuthenticated значение true. (В нашем приложении мы еще не реализовали функцию аутентификации, поэтому свойство IsAuthenticated будет всегда возвращать false.)

Модуль авторизации проверяет свойство IsAuthenticated и, если пользователь не прошел проверку, возвращает HTTP-статус 401 и завершает запрос. В этот момент модуль ASP.NET Identity перехватывает запрос и перенаправляет пользователя на страницу входа /Account/Login. Это URL-адрес, который я определил в классе IdentityConfig ранее:

Браузер перенаправит вас по адресу /Account/Login, но т. к. мы еще не добавили контроллер для этого запроса, появится ошибка 404.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2016

SMS-пароли признаны небезопасными

Национальный Институт стандартов и технологий США (The National Institute of Standards and Technology, NIST) представил летом 2016 года предварительную версию будущего Digital Authentication Guideline (документа, который установит новые нормы и правила в отношении цифровых методов аутентификации): механизм SMS OTP изначально для аутентификации не предназначался и не может считаться полноценным фактором аутентификации.

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

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

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

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

  • Замена SIM карты с использованием поддельных документов
  • Использование уязвимостей в протоколе OSS-7
  • Переадресация вызовов у оператора мобильной связи
  • Ложные базовые станции
  • Специализированные троянские программы для смартфонов, перехватывающие SMS пароли

Еще одним методом может считаться взлом шлюза между банком и оператором связи.

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

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

Одноразовые пароли через SMS

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

Одноразовые пароли через PUSH

  • негарантированная доставка
  • прямой запрет Apple//Microsoft на использование для передачи конфиденциальной информации
  • предназначение – только информирование

Исследователи продемонстрировали простую атаку для обхода двухфакторной аутентификации

Ученые из Амстердамского свободного университета Радхеш Кришнан Конот (Radhesh Krishnan Konoth), Виктор ван дер Вен (Victor van der Veen) и Герберт Бос (Herbert Bos) продемонстрировали практическую атаку на двухфакторную аутентификацию с использованием мобильного устройства. Исследователи продемонстрировали атаку «Человек в браузере» (Man-in-the-Browser) против смартфонов на базе Android и iOS.

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

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

Для атаки на iOS исследователи использовали новую возможность OS X под названием Continuity, позволяющую синхронизировать SMS-сообщения между iPhone и Mac. Если этот функционал активирован, злоумышленнику достаточно иметь доступ к компьютеру, чтобы прочитать все SMS сообщения.

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

Компания Apple была уведомлена 30 ноября 2015 года, однако исследователи не получили ответ.

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.

Ошибка вторая: система сброса паролей

  1. Предсказуемые токены. Токены, основанные на текущем времени — хороший пример. Токены, построенные на базе плохого генератора псевдослучайных чисел, хотя и выглядят лучше, проблему не решают.
  2. Неудачное хранилище данных. Хранение незашифрованных токенов сброса пароля в базе данных означает, что если она будет взломана, эти токены равносильны паролям, хранящимся в виде обычного текста. Создание длинных токенов с помощью криптографически стойкого генератора псевдослучайных чисел позволяет предотвратить удалённые атаки на токены сброса пароля методом грубой силы, но не защищает от локальных атак. Токены для сброса пароля следует воспринимать как учётные данные и обращаться с ними соответственно.
  3. Токены, срок действия которых не истекает. Если срок действия токенов не истекает, у атакующего есть время для того, чтобы воспользоваться временным окном сброса пароля.
  4. Отсутствие дополнительных проверок. Дополнительные вопросы при сбросе пароля — это стандарт верификации данных де-факто. Конечно, это работает как надо лишь в том случае, если разработчики выбирают хорошие вопросы. У подобных вопросов есть собственные проблемы. Тут стоит сказать и об использовании электронной почты для восстановления пароля, хотя рассуждения об этом могут показаться излишней перестраховкой. Ваш адрес электронной почты — это то, что у вас есть, а не то, что вы знаете. Он объединяет различные факторы аутентификации. Как результат, адрес почты становится ключом к любой учётной записи, которая просто отправляет на него токен сброса пароля.

шпаргалкупосмотримпакетдокументацияматериалызакрываетсяпервый результат

2014: Google против паролей: Начались продажи USB-ключей для доступа к сайтам

Google объявил в октябре 2014 года о запуске на своих сайтах двухфакторной аутентификации с использованием физического USB-ключа. Купить ключ можно на Amazon (ссылка). Сейчас в магазине представлено три модели ключей стоимостью от $6 до $60.

Все ключи используют открытый протокол Universal 2nd Factor (U2F), разработанный FIDO Alliance. Ключи можно будет использовать на любом сайте (не только Google), который добавит поддержку этого протокола.

USB-ключи не требуют установки — достаточно поместить его в USB-порт компьютера после ввода пароля на сайте, когда сайт попросит об этом. Все ключи работают с Windows, OS X, Linux и Chrome OS. Для работы с USB-ключом необходимо использовать браузер Google Chrome версии 38 и выше.

Использование USB-ключей полностью бесплатно, однако пользователи должны приобретать их за свой счет. Ключи отличаются дизайном. Самая дорогая модель за $60 оснащена технологией Java Card.

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

Функциональные возможности и системные требования ESET Secure Authentication

В ESET Secure Authentication 2.8 можно выделить следующие основные функции:

  • Защита двухфакторной аутентификацией доступа к офисным приложениям Microsoft. Таких как: Microsoft Exchange Server 2007 (Outlook Web Access — Exchange Client Access Server) (64-разрядная версия); Microsoft Exchange Server 2010, 2013, 2016, 2019 (Outlook Web App — Exchange Client Access Server); Microsoft Dynamics CRM 2011, 2013, 2015, 2016; Microsoft SharePoint Server 2010, 2013, 2016, 2019; Microsoft SharePoint Foundation 2010, 2013.
  • Защита двухфакторной аутентификацией доступа к удаленному рабочему столу, при использовании платформы VMware Horizon View и Citrix XenApp.
  • Защита двухфакторной аутентификацией входа в операционную систему Microsoft Windows.
  • Добавление двухфакторной аутентификации в аутентификацию виртуальной частной сетей компании (VPN), при использовании таких платформ как: Barracuda, Cisco ASA, Citrix Access Gateway, Citrix NetScaler, Check Point Software, Cyberoam, F5 FirePass, Fortinet FortiGate, Juniper, Palo Alto, SonicWall. Добавление двухфакторной аутентификации в пользовательские приложения, например, «1С:Предприятие».
  • Защита входа двухфакторной аутентификацией в облачные сервисы, такие как Office 365 и Google G Suite.
  • Управление пользователями и тонкая настройка отдельных модулей ESA.
  • Поддержка любых аппаратных токенов, поддерживающих стандарт OATH.
  • Подтверждение аутентификации пользователя при помощи push‑сообщений.

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

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

Поддерживаемые платформы
Клиентская часть ESET Secure Authentication 2.50

с iOS 8 до iOS 12; с Android 4.1 до Android 9.0 (сервисы Google Play начиная с версии 10.2.6); с Windows Phone 8.1 до Windows 10 Mobile.

Серверная часть ESET Secure Authentication 2.8

Windows Server 2008, 2008 R2, 2012, 2012 R2, 2012 Essentials, 2012 R2 Essentials, 2016, 2016 Essentials 2019, 2019 Essentials; Windows Small Business Server 2008, 2011.

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

Таблица 2. Необходимые системные элементы для корректного функционирования отдельных компонентов ESET Secure Authentication 2.8

Необходимые элементы системы

Модуль ESA Web Application

Windows Server 2008 или версия новее, либо Windows 7 или более новая версия; .NET Framework версия 4.5; Internet Information Services 7 или версия новее

Модуль ESA Remote Desktop

Windows Server 2008 или версия новее, либо Windows 7 или более новая версия; (в обоих случаях поддерживаются только 64-разрядные операционные системы); Протокол Remote Desktop (RDP); Веб‑доступ к удаленному рабочему столу Microsoft; Веб‑доступ к службам терминалов Microsoft; удаленный веб‑доступ Microsoft; .NET Framework версия 4.5

Модуль ESA Windows Login

Windows 7, 8, 8.1, 10 (включая обновление Fall Creators или Redstone 3); Windows Server 2008 R2 или версия новее; .NET Framework версия 4.5

Сервер защиты ESA RADIUS Server

Windows Server 2008 или версия новее; .NET Framework версия 4.5

Служба ESA Authentication Service

Windows Server 2008 или версия новее; .NET Framework версия 4.5

Средство управления ESA Management Tools

Windows 7 или версия новее, либо Windows Server 2008 или более новая версия; средства администрирования удаленного сервера Windows; служба доменов Active Directory; Java SE 11 или OpenJDK 11; .NET Framework версия 4.7.2

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

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

Adblock
detector