瀏覽代碼

Прав2

Sindzi 2 年之前
父節點
當前提交
4cd8ce2231
共有 8 個文件被更改,包括 64 次插入44 次删除
  1. 二進制
      ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/01.jpg
  2. 二進制
      ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/012.jpg
  3. 二進制
      ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/02.png
  4. 二進制
      ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/03.png
  5. 二進制
      ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/123.jpg
  6. 二進制
      ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/456.jpg
  7. 二進制
      ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/789.jpg
  8. 64 44
      ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/README.md

二進制
ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/01.jpg


二進制
ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/012.jpg


二進制
ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/02.png


二進制
ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/03.png


二進制
ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/123.jpg


二進制
ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/456.jpg


二進制
ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/789.jpg


+ 64 - 44
ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/README.md

@@ -1,80 +1,100 @@
 # Защита входа в систему (идентификация и аутентификация пользователей)
 
- Идентификация, аутентификация и авторизация – три процесса защищающие наши данные от доступа посторонних лиц.
- Индентификация - это процесс распознования пользователя по его индентификатору
- Аутентификация - это процедура проверки подлинности, док-ва что пользователь именно тот, за кого себя выдает
- Авторизация - предоставление определенных прав, после аутентификации
+ Подключаемые модули аутентификации (pluggable authentication modules, PAM) являются основной системой аутентификации в ОС семейства Unix, в т.ч. GNU/Linux. PAM пришел на смену встраиваемым механизмам аутентификации в различных приложениях (например, ранее в login была встроена собственная процедура аутентификации, проверяющая введенный пароль с паролем из /etc/passwd или хешем из /etc/shadow). 
 
- Идентификация и аутентификация являются взаимосвязанными процессами распознавания и проверки подлинности субъектов. Именно от них зависит последующее решение системы, можно ли разрешить доступ к ресурсам системы конкретному пользователю или процессу. 
+![](01.jpg)
 
- После идентификации и аутентификации субъекта выполняется его авторизация. Процесс идентификации и аутентификации показан на схеме:
+## CentOS 7
+ Если брать для примера одну из ОС семейства unix - CentOS 7, то она  включает в себя управлениe идентификацией (Identity Management, IdM) — набор функций, предоставляющих централизованный и простой способ управления идентификаторами пользователей, машин и сервисов в больших Linux/Unix корпоративных инсталляциях. IdM предоставляет способ определения политик безопасности доступа для управления этими идентификаторами. 
 
-![](123.jpg)
+ Основа управления идентификацией была разработана в рамках открытого проекта FreeIPA, объединяющего стандартные сетевые сервисы общего назначения в единую систему управления: PAM, LDAP, Kerberos, DNS, NTP и сервисами сертификации. Это позволяет системам на CentOS работать в качестве контроллеров доменов в среде Linux. Из-за того, что функция управления идентификацией встроена в CentOS – достаточно просто добавить управление политиками и идентификацией в ваш рабочий процесс.
 
- Для подтверждения своей подлинности субъект может предъявлять системе разные сущности. В зависимости от предъявляемых субъектом сущностей процессы аутентификации могут быть разделены на следующие категории:
+ Для многих организаций, Active Directory (AD) – центр управления идентификационными данными пользователей внутри предприятия. Все системы, к которым могут получать доступ пользователи AD, должны уметь работать с AD для выполнения аутентификации и проверки идентификационных данных.
 
-1. На основе знания чего-либо. Примерами могут служить пароль, персональный идентификационный код (PIN), а также секретные и открытые ключи, знание которых демонстрируется в протоколах типа запрос—ответ.
+-- Прямая интеграция
 
-2. На основе обладания чем-либо. Обычно это магнитные карты, смарт-карты, сертификаты и устройства touch memory.
+ Linux системы могут быть соединены с Active Directory напрямую с помощью компонента System Security Services Daemon (SSSD). Компонент выступает в качестве шлюза аутентификации и проверки идентификационных данных в центральное хранилище идентификаций.
 
-3. На основе каких-либо неотъемлемых характеристик. Эта категория включает методы, базирующиеся на проверке биометрических характеристик пользователя (голос, радужная оболочка и сетчатка глаза, отпечатки пальцев, геометрия ладони и др.) В данной категории не используются криптографические методы и средства. Аутентификация на основе биометрических характеристик применяется для контроля доступа в помещения или к какой-либо технике.
+![](02.png)
 
- При сравнении и выборе протоколов аутентификации необходимо учитывать следующие характеристики:
+-- Непрямая интеграция
+  Прямая интеграция ограничена использованием только аутентификации и идентификационных данных, относящихся к пользователям. Система не получает политики и данные, контролирующие доступ в корпоративных окружениях. Системы Linux могут получать политики (например на sudo), правила контроля доступа хоста, automount, netgroups, SELinux и другие возможности из центрального сервера идентификации. Сервер управления идентификацией обеспечивает централизованное управление системами Linux, давая им идентификаторы, права и предоставляя централизованно управляемые политики для Linux, перечисленные выше. В большинстве корпоративных окружений, пользователи Active Directory должны иметь доступ и к Linux ресурсам. Это может быть достигнуто с помощью установки доверенных отношений между серверами IdM и AD. Диаграмма ниже показывает как пользователи из леса Active Directory получают доступ к системам Linux, входя в домен IdM.
 
-1. Наличие взаимной аутентификации. Это свойство отражает необходимость обоюдной аутентификации между сторонами аутентификационного обмена.
+![](03.png)
 
-2. Вычислительная эффективность. Количество операций, необходимых для выполнения протокола.
+## Идентификация и аутентификация пользователей при работе подсистемы разграничения доступа в ОС Linux
 
-3. Коммуникационная эффективность. Данное свойство отражает количество сообщений и их длину, необходимую для осуществления аутентификации.
+ При построении подсистемы разграничения доступа в Linux важным этапом в процессе загрузки ОС является этап после загрузки системы по завершению процесса init при запуске системной утилиты login - т. е. этап непосредственно и/а пользователя в ОС. При этом саму подсистему разграничения доступа удобно строить на базе загружаемого модуля ядра Linux, этот модуль должен загружаться в ядро ОС на одном из последних этапов работы init, но до монтирования корневой файловой системы на запись.
+ После завершения работы процесса init модуль ядра будет находиться в состоянии ожидания каких-либо внешних воздействий (например, вызова какого-либо системного вызова и/или обращение к модулю из usermode-утилит) - при этом для правильной регистрации пользователя необходимо аутентифицировать его в т.ч. в модуле ядра (чтобы в нужный момент модуль ядра мог знать совершал ли вход в систему тот или иной пользователь и можно ли выполнять какие-либо процессы в ОС с его правами).
+ Для этого необходимо создать PAM-модуль аутентификации, а логика работы процедуры и/а должна стать следующей:
 
-4. Наличие третьей стороны. Примером третьей стороны может служить доверенный сервер распределения симметричных ключей или сервер, реализующий дерево сертификатов для распределения открытых ключей.
+- запускается утилита login
 
-5. Гарантии безопасности. Примером может служить применение шифрования и цифровой подписи.
+- утилита login делегирует функции и/а внешнему PAM-модулю, при этом:
 
- Классификация протоколов аутентификации:
+ конкретный PAM-модуль предварительно должен быть прописан в соответствующем конфигурационном файле (как правило /etc/pam.d/common_auth или /etc/pam.d/login в зависимости от ОС, PAM-модуль обычно должен прописываться вместо штатного модуля pam_unix.so);
+ 
+ PAM-модуль предварительно должен быть записан в каталог к другим PAM-модулям(/etc/security/).
 
-![](456.jpg)
+- PAM-модуль запрашивает у пользователя login (или аппаратный идентификатор) и пароль;
 
-##  Классификация протоколов аутентификации
+- PAM-модуль рассчитывает хеш от предъявленных пользователем значений login (аппаратного идентификатора) и пароля и передает его модулю ядра по протоколу взаимодействия usermode-приложений с ядром ОС (протокол netlink);
 
- защищенных компьютерных сетей доступ клиента к серверу разрешается по паролю. Однако все чаще применяются более эффективные средства аутентификации, например, программные и аппаратные системы аутентификации на основе одноразовых паролей, смарт-карт, Р/УУ-кодов и цифровых сертификатов.
- Процедуру простой аутентификации пользователей в сети можно представить следующим образом. При попытке входа в сеть пользователь набирает на клавиатуре ПЭВМ свой идентификатор и пароль. Эти данные поступают для обработки на сервер аутентификации. В базе данных сервера по идентификатору пользователя находится соответствующая запись, из нее извлекается пароль и сравнивается с тем паролем, который ввел пользователь. Если они совпали, то аутентификация прошла успешно, пользователь получает легальный статус, а также права и ресурсы сети, которые определены для его статуса системой авторизации.
+- Модуль ядра ищет в своих структурах пользователя по login (аппаратному идентификатору) и сравнивает полученное от PAM значение хеша со значением в своей БД, при этом:
 
- Схема простой аутентификации с использованием пароля:
+ Если хеш совпадает - PAM-модулю по netlink от модуля ядра должно возвращаться имя пользователя, которому соответствует хеш в БД пользователей. Данного пользователя PAM-модуль пропускает и запускает его shell;
+ Если хеш не совпадает - PAM-модулю по netlink от модуля ядра возвращается указание вывести ошибку (код ошибки) и не аутентифицировать пользователя в системе (не запускать его сессию и shell в рамках этой сессии);
+ В любом из описанных случаях в модуле ядра в соответствующие структуры должны заноситься данные о:
+состоянии аутентифицированности в данный момент определенного пользователя
+событиях во время процедуры и/а (успешная/неудачная попытка и/а и т.п..)
 
-![](789.jpg)
 
- Односторонняя аутентификация предусматривает обмен информацией только в одном направлении. Данный тип аутентификации позволяет:
+ Также необходимо понимать, что наиболее важным элементов всей подсистемы разграничения доступа является наличие аппаратного компонента, с помощью которого на ранних этапах загрузки будет осуществляться:
 
-— подтвердить подлинность только одной стороны информационного обмена;
-— обнаружить нарушение целостности передаваемой информации;
-— обнаружить проведение атаки типа «повтор передачи»;
-— гарантировать, что передаваемыми аутентификационными данными может воспользоваться только проверяющая сторона.
+ контроль целостности важных объектов, используемых в дальнейшем подсистемой разграничения доступа (модуль ядра, БД пользователей, PAM-модули и прочие утилиты, взаимодействующие в модулем ядра);
 
- Двусторонняя аутентификация по сравнению с односторонней содержит дополнительный ответ проверяющей стороны доказывающей стороне, который должен убедить ее, что связь устанавливается именно с той стороны, которой были предназначены аутентификационные данные.
+ контроль целостности файлов, в которых прописывается порядок загрузки ОС и вставлена загрузка модуля ядра до монтирования корневой файловой системы на запись (например, /boot/initrd, порядок загрузки записывается в initrd в файл init);
 
- В зависимости от используемых криптографических алгоритмов протоколы строгой аутентификации можно разделить на следующие группы:
+ контроль целостности ядра ОС (например, /boot/vmlinux);
 
-![](012.jpg)
+ контроль целостности настроек загрузчика (например, /boot/grub/grub.cfg) и самого загрузчика, записанного в загрузочный сектор раздела.
 
- В качестве биометрических признаков, которые активно используются при аутентификации потенциального пользователя, можно выделить следующие:
+ Без таких контрольных процедур при использовании существующих штатных средств защиты в ОС всегда существует возможность обхода или отключения этих средств защиты на ранних этапах загрузки, что нивелирует любые механизмы защиты, реализуемые с помощью подсистемы разграничения доступа в ОС, т. к. появляется возможность данную подсистему просто отключить.
+
+## Регистрация в системе
+
+ В правильно установленной операционной системе Linux должна существовать как минимум одна учётная запись для обычного пользователя. Во всех дальнейших примерах у нас будет участвовать Мефодий Кашин, владелец учётной записи "methody" в системе "Some Linux". Вы можете пользоваться для выполнения примеров любой учётной записью, которая создана в Вашей системе (естественно, кроме root).
+
+` Welcome to Some Linux / tty1
+localhost login: bebra
+
+Password:
+Login incorrect
+
+login: `
+
+В ответ на это система запрашивает пароль
+
+` login: bebra
+Password:
+[bebra@localhost bebra]$ `
+
+ В этот раз регистрация прошла успешно, о чём свидетельствует последняя строка примера - приглашение командной строки. Приглашение -- это подсказка, выводимая командной оболочкой и свидетельствующая о том, что система готова принимать команды пользователя. Приглашение может быть оформлено по-разному, более того, пользователь может сам управлять видом приглашения, но почти наверняка в приглашении содержатся входное имя и имя хоста -- в нашем примере это "bebra" и "localhost" соответственно. Заканчивается приглашение чаще всего символом "$".  
+
+## Идентификация 
+
+ Когда система выводит на экран приглашение командной строки после того, как правильно введены имя пользователя и пароль, это означает, что произошла идентификация пользователя (authentication, "проверка подлинности"). Пароль может показаться излишней сложностью, но у системы нет другого способа удостовериться, что за монитором находится именно тот человек, который имеет право на использование данной учётной записи.
 
-1. отпечатки пальцев;
-2. геометрическая форма кисти руки;
-3. форма и размеры лица;
-4. особенности голоса;
-5. узор радужной оболочки и сетчатки глаз;
-6. «клавиатурный почерк»;
-7. расположение зубов (стоматологическая матрица ротовой полости человека).
 
 
 ## Литература
-[Хабр](https://habr.com/ru/company/dataart/blog/262817/)
+[okbsapr](https://www.okbsapr.ru/library/publications/kanner_2012_3/)
+[Хабр](https://habr.com/ru/company/infobox/blog/230781/)
 [studref](https://studref.com/334328/informatika/identifikatsiya_autentifikatsiya)
 
 ## Вопросы
 1. [Что такое аутентификация]    ** Это процедура проверки подлинности, док-ва что пользователь именно тот, за кого себя выдает**
 2. [Что такое Авторизация]    ** Процедура предоставления субъекту определенных прав доступа к ресурсам системы после прохождения им процедуры аутентификации. **
-3. [К биометрическим системам защиты информации относятся системы идентификации по...]     ** Отпечатки пальцев,форма и размеры лица,особенности голоса,узор радужной оболочки и сетчатки глаз и тд... **
-4. [В чем разница между двусторонней аутентификации и односторонней]    **Двусторонняя аутентификация по сравнению с односторонней содержит дополнительный ответ проверяющей стороны доказывающей стороне, который должен убедить ее, что связь устанавливается именно с той стороны, которой были предназначены аутентификационные данные. **
-5. [Что включает в себя односторонняя аутентификация]    **подтверждение подлинности только одной стороны информационного обмена;обнаружение нарушений целостности передаваемой информации;обнаружение проведения атаки типа «повтор передачи»**
+3. [Что такое PAM модуль]     ** основная система аутентификации в ОС семейства Unix**
+4. [Что такое идентификатор пользователя]    **Уникальное число, однозначно идентифицирующее учётную запись пользователя в Linux**
+5. [Что такое входное имя и имя хоста]    **доменное имя, назначенное хост-компьютеру; имя, используемое при создании учетной записи**