1 Лекция №6 Идентификация Аутентификация Авторизация
1
Лекция №6
Идентификация
Аутентификация
Авторизация
2
План лекции
● Основные понятия IAA ● Проектирование по 15408.2● Реализация ИАА
Цель лекции — получить представление о проектировании и методах реализации ИАА
3
Определения
● Идентификация● Аутентификация● Авторизация● Секрет (данные аутентификации, credentials)
4
Основная Последовательность
1.Подключение к системе
2.Ввод логина
3.Идентификация
4.Ввод пароля
5.Аутентификация
6.Запрос ресурса
7.Авторизация
5
Факторы
● Однофакторная аутентификация● Многофакторная аутентификация
– Фактор владения
– Фактор знания
– Фактор атрибутивный
– Дополнительные факторы
6
Пароли
● Одноразовые пароли● Многоразовые пароли● Энтропия пароля● Другие метрики качества пароля (секрета)
7
Функциональные требования
● FAU - аудит/протоколирование;
● FIA - идентификация/аутентификация;
● FRU - использование ресурсов
● FCO - неотказуемость
● FPR - приватность
● FDP - защита данных пользователя;
● FPT - защита функций безопасности
● FCS - криптографическая поддержка;
● FMT - управление безопасностью
● FTA - управление сеансами работы пользователей
● FTP - доверенный маршрут/канал
8
FIA — Идентификация/ Аутентификация
● Семейства:– Определение атрибутов пользователя
(FIA_ATD)
– Спецификация секретов (FIA_SOS)
– Идентификация пользователя (FIA_UID)
– Аутентификация пользователя (FIA_UAU)
– Связывание пользователь-субъект (FIA_USB)
– Отказы аутентификации(FIA_AFL)
9
FIA — Идентификация/ Аутентификация
10
Определение атрибутов пользователя
● Список атрибутов безопасности у пользователей
● Часто итерируется
11
Спецификация секретов
● Метрика для проверки качества секретов пользователя (FIA_SOS.1)
● Механизм для создания секретов внутри ОО (FIA_SOS.2)
12
Идентификация пользователя
● Список действий до идентификации● Или требование идентификации до любых
действий
13
Аутентификация пользователя
● Действия до аутентификации● Проверка уникальности секрета● Механизмы одноразовых секретов● Механизмы аутентификации (и их
сочетание)● Повторная аутентификация● Обратная связь с пользователем в момент
аутентификации
14
Связывание пользователь-субъект
● Сопоставление атрибутов безопасности пользователя и его субъекта в системе
15
Отказы аутентификации
● Обработка отказов аутентификации● Действия при отказе● Количество отказов перед блокировкой
16
Алгоритм Kerberos
● Действующие лица– AS (Auth Server)
– TGS (Ticket Gateway Server)
– SS (Service Server)
– Client
● Основной принцип– Двойное подтверждение каждого раунда
● Не затрагивает вопрос распределения секретов
17
Первый раунд
● Client ← ClientID, Secret
18
Первый раунд
● Client ← ClientID, Secret● Client (ClientID, TimeStamp, ReqService) →
AS
19
Первый раунд
● Client ← ClientID, Secret● Client Message A → AS
20
Первый раунд
● Client ← ClientID, Secret● Client Message A → AS● AS Compare(Message A, DB)
21
Первый раунд
● Client ← ClientID, Secret● Client Message A → AS● AS Compare(Message A, DB)● AS [SessKey(TGS)] Secret → Client● AS [SessKey(TGS), ClientID, TimeStamp+1, ...]
TGSkey → Client
22
Первый раунд
● Client ← ClientID, Secret● Client Message A → AS● AS Compare(Message A, DB)● AS Message B → Client ● AS TGT → Client
23
Первый раунд
● Client ← ClientID, Secret● Client Message A → AS● AS Compare(Message A, DB)● AS Message B → Client ● AS TGT → Client● Client Message B → SessKey(TGS)
24
Первый раунд
● Client ← ClientID, Secret● Client Message A → AS● AS Compare(Message A, DB)● AS Message B → Client ● AS TGT → Client● Client [SessKey(TGS)] (Secret) →
SessKey(TGS)
25
Второй раунд
● Client [ClientID, TimeStamp+1] SessKey(TGS)→ TGS
● Client TGT → TGS
26
Второй раунд
● Client Message C → TGS● Client TGT → TGS
27
Второй раунд
● Client Message C → TGS● Client TGT → TGS● TGS TGT → SessKey(TGS), ClientID,
TimeStamp+1, …
28
Второй раунд
● Client Message C → TGS● Client TGT → TGS● TGS TGT → SessKey(TGS), ClientID,
TimeStamp+1, …● TGS Message C → ClientID, TimeStamp+1
29
Второй раунд
● Client Message C → TGS● Client TGT → TGS● TGS TGT → SessKey(TGS), ClientID,
TimeStamp+1, …● TGS Message C → ClientID, TimeStamp+1● TGS Compare(ClientID, TimeStamp+1)
30
Второй раунд
● Client Message C → TGS● Client TGT → TGS● TGS TGT → SessKey(TGS), ClientID, ...● TGS Message C → ClientID, TimeStamp+1● TGS Compare(ClientID, TimeStamp+1)● TGS [SessKey(SS), ClientID,
TimeStamp+2...]SSkey → Client ● TGS [SessKey(SS)]Sesskey(TGS)→ Client
31
Второй раунд
● Client Message C → TGS● Client TGT → TGS● TGS TGT → SessKey(TGS), ClientID, ...● TGS Message C → ClientID, TimeStamp +1● TGS Compare(ClientID, TimeStamp+1)● TGS CST → Client ● TGS Message D → Client
32
Второй раунд
● Client Message C → TGS● Client TGT → TGS● TGS TGT → SessKey(TGS), ClientID, …● TGS Message C → ClientID, TimeStamp+1● TGS Compare(ClientID, TimeStamp+1)● TGS CST → Client ● TGS Message D → Client● Client Message D → SessKey(SS)
33
Второй раунд
● Client Message C → TGS● Client TGT → TGS● TGS TGT → SessKey(TGS), ClientID, …● TGS Message C → ClientID, TimeStamp+1● TGS Compare(ClientID, TimeStamp+1)● TGS CST → Client ● TGS Message D → Client● Client [SessKey(SS)]Sesskey(TGS) →
SessKey(SS)
34
Третий раунд
● Client [ClientID, TimeStamp+2] SessKey(SS) → SS
● Client CST → SS
35
Третий раунд
● Client Message E → SS● Client CST → SS
36
Третий раунд
● Client Message E → SS● Client CST → SS● SS CST → SessKey(SS), ClientID,
TimeStamp+2● SS Message E → ClientID, TimeStamp+2
37
Третий раунд
● Client Message E → SS● Client CST → SS● SS CST → SessKey(SS), ClientID,
TimeStamp+2● SS [ClientID, TimeStamp] SessKey(SS) →
ClientID, TimeStamp+2
38
Третий раунд
● Client Message E → SS● Client CST → SS● SS CST → SessKey(SS), ClientID,
TimeStamp+2● SS Message E → ClientID, TimeStamp+2● SS Compare(ClientID, TimeStamp+2)
39
Третий раунд
● Client Message E → SS● Client CST → SS● SS CST → SessKey(SS), ClientID, …● SS Message E → ClientID, TimeStamp+2● SS Compare(ClientID, TimeStamp+2) ● SS [TimeStamp+3] SessKey(SS) → Client
40
Третий раунд
● Client Message E → SS● Client CST → SS● SS CST → SessKey(SS), ClientID, …● SS Message E → ClientID, TimeStamp+2● SS Compare(ClientID, TimeStamp+2) ● SS Message F → Client
41
Третий раунд
● Client Message E → SS● Client CST → SS● SS CST → SessKey(SS), ClientID, …● SS Message E → ClientID, TimeStamp+2● SS Compare(ClientID, TimeStamp+2) ● SS Message F → Client● Client Message F → TimeStamp+3
42
Третий раунд
● Client Message E → SS● Client CST → SS● SS CST → SessKey(SS), ClientID, …● SS Message E → ClientID, TimeStamp+2● SS Compare(ClientID, TimeStamp+2) ● SS Message F → Client● Client [TimeStamp+3] SessKey(SS) →
TimeStamp+3
43
Третий раунд
● Client Message E → SS● Client CST → SS● SS CST → SessKey(SS), ClientID, …● SS Message E → ClientID, TimeStamp+2● SS Compare(ClientID, TimeStamp+2) ● SS Message F → Client● Client Message F → TimeStamp+3● Client Work → SS
44
Алгоритм Radius
● Действующие лица:– Клиентское устройство
– NAS
– 3A
– DB
● Протокол 3A
45
Алгоритм Radius
● Client secret → NAS
● NAS auth → 3А
● 3A → DB
● 3A → NAS
● NAS access → 3A
● 3A → DB
● 3A → NAS
● NAS counts resourse usage
● 3A end usage → NAS
● NAS report → 3A
46
Протокол OpenID(XML-based)
● Идентификация клиента на сервисе через доверенную сторону
● Доверенная сторона определяется по логину● Перенаправление на сайт доверенной
стороны для аутентификации● Подтверждение доверия клиента сервису● Перенаправление обратно с передачей
идентификационных данных сервису● Сервис проверяет, что данные от
доверенной стороны
47
Протокол Oauth (XML-based)
● Протокол авторизации доступа третьей стороны к ресурсу клиента на сервере
● Попутно может и использоваться как протокол для первых двух стадий
● Схема работы:– По запросу третьей стороны сервер выделяет ей
токен
– Токен отдается пользователю и должен быть им подтвержден на сервере
– После подтверждения третья сторона запрашивает новый токен и получает доступ с его помощью
48
Single Sign-On (SSO)
● Совокупность методов для организации прозрачного доступа к ресурсам без дополнительного ввода пароля
● Требование: ресурсы должны доверять единому провайдеру
● Возможно через Kerberos или cookie