«Стой! Кто идет?»: аутентификация и авторизация в...

100
22 октября 2015 года Стой! Кто идет? Аутентификация и авторизация в корпоративных системах Владислав Иофе Архитектор

Upload: custis

Post on 25-Jan-2017

663 views

Category:

Software


4 download

TRANSCRIPT

Page 1: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

22 октября 2015 года

Стой! Кто идет? Аутентификация и авторизация в

корпоративных системах

Владислав Иофе

Архитектор

Page 2: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

О компании

2/67

Проектирование Заказная разработка

Бережное внедрение Масштабных IT-систем

Page 3: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

О себе

В 2005 окончил мехмат

Ташкентского государственного университета

С 2004 занимаюсь корпоративным

программным обеспечением

В 2008 пришел в CUSTIS

Работал разработчиком, техлидом,

тимлидом, сейчас занимаюсь архитектурой

3/67

Page 4: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Аннотация

4/67

При проектировании и реализации корпоративных систем всегда

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

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

встраиваются в архитектуру приложения? Возможно ли сделать

вход в систему одновременно простым, удобным и безопасным?

Что делать с паролями от сотен сайтов?!

На семинаре мы:

рассмотрим разные методы аутентификации и авторизации,

попробуем обойти их

познакомимся с промышленными стандартами

и современными трендами в этой сфере

дадим ответы на указанные вопросы с позиций проектировщика,

пользователя, разработчика, тестировщика и инженера сопровождения

уделим особое внимание архитектуре и юзабилити

Семинар рассчитан на студентов и молодых специалистов,

интересующихся проектированием, разработкой и сопровождением

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

Page 5: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Мотивация

Ни разу не специалист

по информационной безопасности

Но в корпоративном ПО много

«сквозной функциональности» (cross-cutting concerns)

Примеры:

Аутентификация (Authentication)

Авторизация (Authorization)

Кэширование (Caching)

Связь (Communication)

Обработка ошибок (Exception Management)

Журналирование (Logging)

Валидация (Validation) 5/67

Page 6: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Сквозная функциональность

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

Нам приходится знать, как они устроены

Мы хотим делать их удобными

Нам приходится думать, как их встраивать в приложение

6/67

Сегодня не будет

Математики

Криптографии

Информационной

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

Зато будут

Методы

UX

Архитектура

Page 7: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

План

Вступление, мотивация

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

Терминология, способы и пр.

Протоколы

В атаку!

Single sign-on

Перерыв ☕

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

UX

Настоящее и будущее

Авторизация

Виды

Архитектура

Зрелость модели контроля доступа

Заключение 7/67

Page 8: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Терминология

Идентификация (identification) – это

установление идентификатора субъекта

(пользователя или процесса). Иногда

идентификацией называют сам факт

присвоения идентификатора.

8/67

Page 9: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Терминология

Идентификация (identification) – это

установление идентификатора субъекта

(пользователя или процесса). Иногда

идентификацией называют сам факт

присвоения идентификатора.

Аутентификация (authentication, AuthN) –

это проверка подлинности

предъявленного субъектом

идентификатора. В русском языке в термин

вкрался досадный лишний слог.

8/67

Page 10: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Терминология

Идентификация (identification) – это

установление идентификатора субъекта

(пользователя или процесса). Иногда

идентификацией называют сам факт

присвоения идентификатора.

Аутентификация (authentication, AuthN) –

это проверка подлинности

предъявленного субъектом

идентификатора. В русском языке в термин

вкрался досадный лишний слог.

Авторизация (authorisation, authorization,

AuthZ) – это определение и предоставление

субъекту прав на выполнение

определенных действий

8/67

Page 11: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Вопрос

Приведите примеры, в которых

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

без аутентификации?

9/67

Page 12: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Вопрос

Приведите примеры, в которых

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

без аутентификации?

9/67

Page 13: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Терминология и UX

10/67

Page 14: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Вопрос

Банк предоставляет услугу аренды

сейфовой ячейки с анонимным доступом.

Для доступа к ячейке достаточно

предъявить специальную пластиковую

карту (ранее выданную арендатору

ячейки) и ключ

11/67

Page 15: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Вопрос

Банк предоставляет услугу аренды

сейфовой ячейки с анонимным доступом.

Для доступа к ячейке достаточно

предъявить специальную пластиковую

карту (ранее выданную арендатору

ячейки) и ключ

Проводится ли в таком случае

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

11/67

Page 16: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Вопрос

Банк предоставляет услугу аренды

сейфовой ячейки с анонимным доступом.

Для доступа к ячейке достаточно

предъявить специальную пластиковую

карту (ранее выданную арендатору

ячейки) и ключ

Проводится ли в таком случае

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

Кто несет ответственность при пропаже

содержимого ячейки после посещения

ячейки анонимным пользователем?

11/67

Page 17: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Способы аутентификации

Пароли

Public Key Infrastructure (PKI)

Токены – делегирование аутентификации

12/67

Page 18: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

Очень распространенная

Очень уязвимая

48% пользователей сообщают

пароли другим

3% – записывают на бумажке

60–70% – используют одинаковые

пароли на всех сайтах

В среднем около десятка–двух

паролей и ПИНов выдается

каждому пользователю

…13/67

Page 19: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

Очень распространенная

Очень уязвимая

48% пользователей сообщают

пароли другим

3% – записывают на бумажке

60–70% – используют одинаковые

пароли на всех сайтах

В среднем около десятка–двух

паролей и ПИНов выдается

каждому пользователю

…13/67

«Пароли

мертвы…»

Билл Гейтс, 2004

Page 20: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Повышение надежности

Срок действия пароля

Ограничения

на длину снизу

Ограничения на символы

Прочие простые проверки

Не совпадает с логином

Не «123456789»

Не «qwerty»

Ограничение числа

неудачных попыток ввода

14/67

http://goo.gl/Cc6vF7

СИМ-СИМ, ОТКРОЙСЯ!

ХА! ТВОЙ ПАРОЛЬ

ПРОСРОЧЕН!

Квантовый скачок в «Тысяча и одной ночи»

Page 21: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

15/67

http://goo.gl/kyiefE

Сообщения об ошибках,

которые запутывают злоумышленников

ПАРОЛЬ ВЕРНЫЙ, А ИМЯ ПОЛЬЗОВАТЕЛЯ

НЕВЕРНОЕ!

Page 22: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

Знание

Долговременный или одноразовый пароль,

кодовое слово, ПИН, паспортные данные, …

16/67

Page 23: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

Знание

Долговременный или одноразовый пароль,

кодовое слово, ПИН, паспортные данные, …

Обладание

Мобильный, карта, …

16/67

Page 24: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

Знание

Долговременный или одноразовый пароль,

кодовое слово, ПИН, паспортные данные, …

Обладание

Мобильный, карта, …

Неотделимость

Отпечатки пальцев, радужная оболочка, сетчатка,

голос, лицо, ДНК, подпись, …

16/67

Page 25: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

Знание

Долговременный или одноразовый пароль,

кодовое слово, ПИН, паспортные данные, …

Обладание

Мобильный, карта, …

Неотделимость

Отпечатки пальцев, радужная оболочка, сетчатка,

голос, лицо, ДНК, подпись, …

Интегрированность в общество

Доверенные друзья

16/67

Page 26: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

Требование нескольких факторов

(часто разных категорий) существенно

повышает стойкость

17/67

Page 27: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

One-time Password (Single-use Password)

В составе двухфакторной

аутентификации наиболее

популярен

Защищает от утечки

пароля или хэша

18/67

Page 28: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

One-time Password (Single-use Password)

В составе двухфакторной

аутентификации наиболее

популярен

Защищает от утечки

пароля или хэша

18/67

Навязчив → не подходит

для типовых учетных записей

Page 29: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

One-time Password (Single-use Password)

В составе двухфакторной

аутентификации наиболее

популярен

Защищает от утечки

пароля или хэша

18/67

Навязчив → не подходит

для типовых учетных записей

Компромисс – после ввода

одноразового пароля

сохранять для пары

«пользователь-устройство»

super-cookie

Page 30: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Risk-based authentication

В зависимости от степени риска

проводимой операции или набора

факторов может быть запрошена

дополнительная аутентификация

Основной пароль для входа

в интернет-банк, OTP для платежа

Ввод OTP на новом устройстве

19/67

Page 31: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Ау! Где мы?

20/67

Вступление, мотивация

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

Терминология, способы и пр.

Протоколы

В атаку!

Single sign-on

Перерыв ☕

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

UX

Настоящее и будущее

Авторизация

Виды

Архитектура

Зрелость модели контроля доступа

Заключение

Page 32: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Аутентификация в вебе: HTTP Basic

Логин и пароль передаются на сервер

в открытом виде (base64 не в счет)

21/67

Page 33: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Аутентификация в вебе: HTTP Basic

Логин и пароль передаются на сервер

в открытом виде (base64 не в счет)

21/67

Page 34: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

В это время на сервере…

22/67

Page 35: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Аутентификация в вебе: HTTP Digest

Схема challenge-response

HA1=MD5(username:realm:password)

HA2=MD5(method:digestURI)

response=MD5(HA1:nonce:HA2) 23/67

Page 36: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Аутентификация в вебе: HTTP Digest

Схема challenge-response

HA1=MD5(username:realm:password)

HA2=MD5(method:digestURI)

response=MD5(HA1:nonce:HA2) 23/67

Page 37: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Аутентификация в вебе: Forms

24/67

Page 38: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Аутентификация в вебе: Forms

24/67

Page 39: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Аутентификация в вебе: Forms

24/67

Не стандартизована

Вы можете реализовать любой протокол передачи

учетных данных сами!

После успешной аутентификации устанавливается сессия.

Реализуется путем возврата с клиента выданного сервером

authentication ticket-а (через cookie или в адресной строке)

Page 40: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Public and private key

25/67

Page 41: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Уязвимости

26/67

http://goo.gl/vmHsgw

ВЫХОД НА

ПОСАДКУ ГРАЖДАНКА! ВЫ ДОЛЖНЫ ВЫКИНУТЬ ЭТОТ ГЕЛЬ ДЛЯ РУК.

В НЕМ 120 МЛ!

Page 42: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Атака Man-in-the-middle (MITM)

27/67

«Опочтарение» (англ. Going postal), 2010

Page 43: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Атака Man-in-the-middle (MITM)

28/67

Page 44: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Игра в MITM

Каждые два ряда делятся на три

примерно равные команды

Каждая команда играет роли

и Алисы, и Боба, и Мэллори

Реквизит

Пара ключей

Калькулятор (в режиме «Научный»)

Бумага и ручка

29/67

Онлайн калькулятор

Page 45: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Игра в MITM (2)

Задачи

Мэллори

Узнать пароль, который передала Алиса Бобу

Подменить пароль, передаваемый Бобу

Алисы и Боба

Честно шифровать и дешифровывать сообщения

E(e, n, m) = me mod n

D(d, n, c) = cd mod n

Вам выданы две пары ключей

Сообщение m от Алисы – это число от 2 до 9

Если вы скомпрометировали ваш закрытый ключ,

вы можете запросить новую пару ключей у организаторов

30/67

Page 46: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Атака Man-in-the-middle (MITM)

31/67

Page 47: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Сертификат содержит:

Номер

Период действия

Владельца

Открытый ключ владельца

Реквизиты центра сертификации

Криптоалгоритм

Public Key Infrastructure, сертификаты

32/67

Page 48: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Сертификат содержит:

Номер

Период действия

Владельца

Открытый ключ владельца

Реквизиты центра сертификации

Криптоалгоритм

Public Key Infrastructure, сертификаты

32/67

Page 49: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Сертификат содержит:

Номер

Период действия

Владельца

Открытый ключ владельца

Реквизиты центра сертификации

Криптоалгоритм

Public Key Infrastructure, сертификаты

32/67

Page 50: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Сертификат содержит:

Номер

Период действия

Владельца

Открытый ключ владельца

Реквизиты центра сертификации

Криптоалгоритм

Public Key Infrastructure, сертификаты

32/67

Page 51: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Вопрос

А в чем может заключаться MITM-атака

при digest-аутентификации?

33/67

Page 52: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Вопрос

А в чем может заключаться MITM-атака

при digest-аутентификации?

33/67

Page 53: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Ау! Где мы?

34/67

Вступление, мотивация

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

Терминология, способы и пр.

Протоколы

В атаку!

Single sign-on

Перерыв ☕

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

UX

Настоящее и будущее

Авторизация

Виды

Архитектура

Зрелость модели контроля доступа

Заключение

Page 54: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Новые вводные

Передавать пароли кому попало –

плохая идея!

35/67

Page 55: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Новые вводные

Передавать пароли кому попало –

плохая идея!

Сколько же можно помнить и вбивать

разных паролей?

Компрометация универсального пароля

чревата

35/67

Page 56: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Новые вводные

Передавать пароли кому попало –

плохая идея!

Делегирование аутентификации!

Сколько же можно помнить и вбивать

разных паролей?

Компрометация универсального пароля

чревата

35/67

Page 57: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Новые вводные

Передавать пароли кому попало –

плохая идея!

Делегирование аутентификации!

Сколько же можно помнить и вбивать

разных паролей?

Компрометация универсального пароля

чревата

Single sign-on!

35/67

Page 58: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Kerberos

36/67

Сообщения между KDC и участниками шифруются

Сообщения от первой стороны для третьей стороны, передаваемое

второй, шифруется общим ключом первой и третьей сторон

Двусторонняя аутентификация

Page 59: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Усиленная безопасность

37/67

http://goo.gl/HY9tbJ

Page 60: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Сильная аутентификация

Двухфакторная

Взаимная

Но односторонняя на сегодняшний день

в вебе – норма

38/67

Page 61: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Central Authentication Service (CAS) Protocol

39/67

Page 62: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Single sign-out

Токен аутентификации / TGT действует довольно

долго – например, рабочий день

Инвалидация токена аутентификации / TGT

не приводит к мгновенному прекращению доступа

к приложению

Так же инвалидация сессии приложения приведет

к новой сессии (это же SSO!)

Инвалидация токена аутентификации / TGT приведет

к запросу учетных данных при доступе к другому

приложению в произвольный момент времени

40/67

Page 63: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Single sign-out

Токен аутентификации / TGT действует довольно

долго – например, рабочий день

Инвалидация токена аутентификации / TGT

не приводит к мгновенному прекращению доступа

к приложению

Так же инвалидация сессии приложения приведет

к новой сессии (это же SSO!)

Инвалидация токена аутентификации / TGT приведет

к запросу учетных данных при доступе к другому

приложению в произвольный момент времени

Конечно же, есть попытки обойти… Какие?

40/67

Page 64: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Неудобство и безопасность

41/67

http://goo.gl/6YIfa4

Все!

Я автостопом!

Контроль безопасности

аэропорта

Уберите жидкости, металлические

предметы, снимите обувь

и нижнее белье

Page 65: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Перерыв

42/67

Page 66: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Ау! Где мы?

43/67

Вступление, мотивация

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

Терминология, способы и пр.

Протоколы

В атаку!

Single sign-on

Перерыв ☕

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

UX

Настоящее и будущее

Авторизация

Виды

Архитектура

Зрелость модели контроля доступа

Заключение

Page 67: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Пользователи

44/67

Page 68: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Пользователи

Одни наедине

с программой

44/67

Page 69: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Пользователи

Одни наедине

с программой

Ленивы и любят

комфорт

44/67

Page 70: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Пользователи

Одни наедине

с программой

Ленивы и любят

комфорт

Изобретательны

в обходе неудобств

44/67

Page 71: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Пользователи

Одни наедине

с программой

Ленивы и любят

комфорт

Изобретательны

в обходе неудобств

Хотят быть

защищенными

44/67

Page 72: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Пользователи

Одни наедине

с программой

Ленивы и любят

комфорт

Изобретательны

в обходе неудобств

Хотят быть

защищенными

Самое слабое звено

44/67

Page 73: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Правило Что не так в юзабилити?

Стремиться к согласованности Ok

Уменьшать число действий в частых сценариях

(например, «горячие клавиши»)

Пользователь не может использовать «горячие клавиши»

Обеспечивать информативную обратную связь

для каждого действия

Невозможно/неудобно увидеть вводимый пароль

Доводить диалоги до логического конца Ok

Не провоцировать на ошибки и предлагать

простую обработку ошибок

Обычно системы только сообщают об успехе или неудаче.

Была ли ошибка в логине или пароле или мы ошиблись

в раскладке клавиатуры – узнать невозможно

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

учетную запись

Дать пользователю чувство управляемости

системы и почувствовать ответственность

Пользователь отвечает на запросы системы, а не является

инициатором взаимодействий

Кратковременную память загружать

как можно меньше

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

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

специальные символы, раскладку и т. д.

Authentication UX

45/67

Бен Шнейдерман, 1986

Page 74: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Правило Что не так в юзабилити?

Стремиться к согласованности Ok

Уменьшать число действий в частых сценариях

(например, «горячие клавиши»)

Пользователь не может использовать «горячие клавиши»

Обеспечивать информативную обратную связь

для каждого действия

Невозможно/неудобно увидеть вводимый пароль

Доводить диалоги до логического конца Ok

Не провоцировать на ошибки и предлагать

простую обработку ошибок

Обычно системы только сообщают об успехе или неудаче.

Была ли ошибка в логине или пароле или мы ошиблись

в раскладке клавиатуры – узнать невозможно

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

учетную запись

Дать пользователю чувство управляемости

системы и почувствовать ответственность

Пользователь отвечает на запросы системы, а не является

инициатором взаимодействий

Кратковременную память загружать

как можно меньше

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

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

специальные символы, раскладку и т. д.

А с точки зрения безопасности все эти меры предотвращают

атаки по словарю, угадывание и социальную инженерию

Authentication UX

45/67

Бен Шнейдерман, 1986

Page 75: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Сравнение видов аутентификации

Вид Безопасность UX

Пароли 2 2

Бесконтактные карты 3 3

Генераторы OTP 3 3

PKI (токены, УЭК и пр.) 5 3

Kerberos 5 3

Отпечатки, лицо и пр. 4 3

Подпись 3 3

Распознавание голоса 1 5

46/67

Page 76: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Настоящее и будущее: биометрия

Биометрия

Сетчатка

Радужная оболочка

Отпечатки пальцев

После терактов 9/11 IСAO

(Международная организация гражданской

авиации) разработала стандарты

биометрических документов

Биометрическая аутентификация

перспективна, но не может / не должна быть

единственным способом

47/67

Page 77: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Настоящее и будущее: биометрия

48/67

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

Page 78: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Настоящее: протоколы, стандарты

CAS

SAML – SSO для веб, стандартизирует формат

сообщений, а не метод аутентификации

OАuth – протокол аутентификации

и авторизации. Можно использовать

не только в веб, но он неинтероперабелен.

В версии 2.0 за аутентификацию

отвечает OpenID Connect.

49/67

Page 79: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Настоящее и будущее: FIDO Alliance

Сосредоточен на разработке двух открытых

расширяемых стандартов:

UAF – Universal Authentication Framework,

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

с зарегистрированного устройства

U2F – Second Factor UX, двухфакторная

аутентификация с помощью устройств

и поддержкой браузера

50/67

Page 80: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Настоящее и будущее: FIDO Alliance

51/67

Page 81: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Ау! Где мы?

52/67

Вступление, мотивация

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

Терминология, способы и пр.

Протоколы

В атаку!

Single sign-on

Перерыв ☕

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

UX

Настоящее и будущее

Авторизация

Виды

Архитектура

Зрелость модели контроля доступа

Заключение

Page 82: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Этапы контроля доступа

53/67

Page 83: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Авторизация

Discretionary access control, DAC

Mandatory access control, MAC

Role-based access control, RBAC

Attribute-based access control, ABAC

Гибридные модели

54/67

Page 84: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Discretionary access control

Избирательное управление доступом

Для каждой пары субъект – объект

задается перечисление допустимых

разрешений (например: Read, Write,

List, Execute)

Часто объект имеет привязанного

субъекта-владельца. Владелец может

устанавливать разрешения

для других субъектов

55/67

Page 85: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Mandatory access control

Мандатное управление доступом

Объекты несут метку конфиденциальности

Субъект ограниченно управляет объектами,

которыми владеет

Модель Белла – Лападулы

Субъекты также несут метку

“No read up”

“No write down”

56/67

Page 86: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Role-based access control

Управление доступом на основе ролей

Субъекту присваивается роль или роли

Выдаются разрешения заданным ролям

Реализует DAC и MAC

Может быть усложнен введением

наследования ролей

Очень распространен

в корпоративных приложениях

Пример: Пользователь может подтвердить

заказ, если его роль – менеджер

57/67

Page 87: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Role-based access control

Управление доступом на основе ролей

Субъекту присваивается роль или роли

Выдаются разрешения заданным ролям

Реализует DAC и MAC

Может быть усложнен введением

наследования ролей

Очень распространен

в корпоративных приложениях

Пример: Пользователь может подтвердить

заказ, если его роль – менеджер

Вопрос: Как ограничить менеджера только

московскими заказами?

57/67

Page 88: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Attribute-based access control

Управление доступом на основе атрибутов

Субъекты и объекты наделяются атрибутами

Политики вычисляют условия, заданные через

выражения атрибутов субъекта и объекта

Пример: Пользователь может подтвердить

заказ, если подразделение пользователя равно

подразделению, в котором создан заказ,

и должность субъекта – менеджер

58/67

Page 89: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

59/67

DAC RBAC ABAC

Изменения без участия программиста ✔ ✔ ✔Описание близко́ к бизнес-терминам ✘ ✔ ✔

Простота разработки ✔ ? ✘

Page 90: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

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

Кстати, в блоге CUSTIS на «Хабрахабре» вы можете

найти статьи про ABAC:

http://habrahabr.ru/company/custis/blog/248649/

http://habrahabr.ru/company/custis/blog/258861/

59/67

DAC RBAC ABAC

Изменения без участия программиста ✔ ✔ ✔Описание близко́ к бизнес-терминам ✘ ✔ ✔

Простота разработки ✔ ? ✘

Page 91: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Какая модель контроля доступа

здесь используется?

60/67

Page 92: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Как сквозная функциональность «прорастает»

61/67

Page 93: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Как сквозная функциональность «прорастает»

61/67

Page 94: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Как можно улучшить (1)

62/67

Page 95: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Как можно улучшить (1)

62/67

Page 96: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Как можно улучшить (2)

63/67

Page 97: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Зрелость авторизации корпоративного ПО

64/67

Базовая Стандартная Усовершенствованная/

Федеративная

Клиент-серверная

архитектура

N-уровневая

архитектура

Сервис-

ориентированная

архитектура

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

как авторизация

Обычно RBAC RBAC, доступны

глобальные роли

Каждое приложение

реализует авторизацию

Шлюз авторизации,

возможна

кроссплатформенная

авторизация

Контроль доступа

на уровне ресурсов

Контроль доступа

на уровне приложения

Авторизация через

сервисную шину (ESB)

Page 98: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Другие смежные вопросы

Протоколы

SPNEGO/Negotiate

Темы

Identity and Access Management (IAM)

Access Management

User provisioning

Audit

65/67

Page 99: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Ау! Где мы?

66/67

Вступление, мотивация

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

Терминология, способы и пр.

Протоколы

В атаку!

Single sign-on

Перерыв ☕

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

UX

Настоящее и будущее

Авторизация

Виды

Архитектура

Зрелость модели контроля доступа

Заключение

Page 100: «Стой! Кто идет?»: аутентификация и авторизация в корпоративных системах

Спасибо!

Вопросы?

67/67

Владислав Иофе

[email protected]