Возможности реализации 2ФА в ОС Linux
 
                 
Поиск по сайту
 bit.samag.ru     Web
Рассылка Subscribe.ru
подписаться письмом
Вход в систему
 Запомнить меня
Регистрация
Забыли пароль?

Календарь мероприятий
сентябрь    2024
Пн
Вт
Ср
Чт
Пт
Сб
Вс
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

показать все 

Новости партнеров

05.09.2024

Сообщество цифровых управленцев «я-ИТ-ы» приглашает Вас на всероссийский онлайн, который состоится 12 сентября в 11:00 (мск)!

Читать далее 

04.09.2024

Вышла вторая ревизия линейки Рутокен MFA

Читать далее 

02.09.2024

«ГенИИ» идут в народ

Читать далее 

28.08.2024

«Инфобез со вкусом» от «Газинформсервиса» покажет федеральное телевидение

Читать далее 

13.08.2024

Новые возможности СУБД Jatoba – улучшены функции безопасности, удобства и функциональности

Читать далее 

показать все 

Статьи

12.09.2024

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

Читать далее 

09.09.2024

Лейсан Чистая: «КулибИТ для каждого из нас это больше, чем просто проект – это наша миссия»

Читать далее 

13.08.2024

Оптимизация продаж лизинговых услуг с ИИ для ГК Альфа-Лизинг с платформой ValueAI

Читать далее 

27.06.2024

Национальный интерес в ИТ

Читать далее 

13.06.2024

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

Читать далее 

07.06.2024

Open Source в бизнесе

Читать далее 

18.04.2024

5 способов повысить безопасность электронной подписи

Читать далее 

18.04.2024

Как искусственный интеллект изменит экономику

Читать далее 

18.04.2024

Неочевидный САПР: выход ПО за рамки конструкторской деятельности

Читать далее 

18.04.2024

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

Читать далее 

показать все 

Возможности реализации 2ФА в ОС Linux

Главная / Статьи / Общие тенденции и тренды / Возможности реализации 2ФА в ОС Linux


Андрей Игнатов, менеджер по продуктам Компании «Актив»

Возможности реализации 2ФА в ОС Linux

Данный текст не является руководством по внедрению двухфакторной аутентификации в Linux на основе токенов / смарт-карт. Подобные (и весьма подробные) руководства вы сможете найти как на сайтах производителей токенов, так и операционных систем. Я хочу лишь перечислить возможные варианты реализации 2ФА, а заодно побудить ответственных за информационную безопасность предприятия решить проблемы, связанные с парольной аутентификацией.

Возможности
реализации 2ФА в ОС Linux

Данный текст не является руководством по внедрению двухфакторной аутентификации в Linux на основе токенов / смарт-карт. Подобные (и весьма подробные) руководства вы сможете найти как на сайтах производителей токенов, так и операционных систем. Я хочу лишь перечислить возможные варианты реализации 2ФА, а заодно побудить ответственных за информационную безопасность предприятия решить проблемы, связанные с парольной аутентификацией. 


 

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

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

В достаточно редких случаях внедряется двухфакторная аутентификация в отдельных web-приложениях. Но если аутентификация реализуется с помощью SMS, то она является аутентификацией двухэтапной. А аутентификация с использованием одноразовых паролей (OTP) хоть и может называться двухфакторной, но подвержена рискам, связанным с атаками на проверяющую сторону, поскольку схема симметричная, и проверяющая сторона владеет тем же секретом, что и пользователь.

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

И всё это несмотря на то, что существуют надежные и безопасные специализированные устройства для 2ФА – смарт-карты и USB-токены, а все необходимые программные компоненты для 2ФА изначально входили в поставку Windows Server (нужно было установить Active Directory и Certification Services). К тому же сам процесс внедрения был многократно и подробно описан.

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


Для начала вспомним  теорию 2ФА

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

Для надежной и безопасной двухфакторной аутентификации в качестве фактора владения используется USB-токен или смарт-карта (например, линейки Рутокен ЭЦП), а в качестве фактора знания – PIN-код, открывающий доступ к защищенной памяти токена.

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

Если PIN-код правильный, а токен был предварительно зарегистрирован в домене / на ПК, то будет выполнен вход в ОС, и можно будет работать. После многократной попытки ввода неверного PIN-кода память токена будет заблокирована, и потребуется вмешательство администратора.

(В данном случае я специально не уточняю, что понимается под «регистрацией токена», дальше разберем более подробно).

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

Существует два основных механизма реализации двухфакторной аутентификации с помощью токенов / смарт-карт. Давайте их рассмотрим (разумеется, в сильно упрощенном виде).


1. С помощью ассиметричной криптографии

Для каждого пользователя заранее создается пара ключей (открытый и закрытый ключ), а также выпускается сертификат открытого ключа.

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

Следовательно, для такого механизма аутентификации могут применяться только активные ключевые носители, то есть токены либо смарт-карты, оснащенные процессором с реализацией криптографических функций (например, Рутокен ЭЦП 3.0).

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

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

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


2. С хранением пароля на USB-токене / смарт-карте

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

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

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

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

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

А теперь давайте поговорим о том, как эти механизмы 2ФА работают в современных ОС Linux.

В Linux аутентификация (не только двухфакторная) реализуется с помощью различных библиотек PAM или Pluggable Authentication Modules, компонентов, предоставляющих программный интерфейс для аутентификации пользователей. Эти библиотеки PAM через API взаимодействуют с такими компонентами ОС, как login или su для выполнения стандартных задач по аутентификации.

Замечательной особенностью PAM является то, что системный администратор может выбирать, какие конкретно модули будут использоваться для аутентификации пользователей с помощью конфигурационного файла Linux-PAM /etc/pam.conf.

В одной библиотеке PAM будет реализована очень простая однофакторная аутентификация с помощью паролей, хранящихся в файле /etc/passwd; в другой библиотеке, в качестве второго фактора используются одноразовые пароли с аппаратным генератором OTP; в третьей для 2ФА необходим криптографический токен или смарт-карта. Можно выбирать согласно вкусам администратора и ИБ-политике организации.

Нас интересует именно третий вариант (точнее, целый набор вариантов). Осталось рассказать, что необходимо для внедрения 2ФА (кроме, собственно, токенов), и как это внедрение происходит. Сам процесс поиска необходимого PAM, выбор из вариантов реализации и установку PAM в операционную систему я опускаю. Этот процесс замечательно описан в руководствах по операционным системам.


Вариант 1:
Хранение пароля в защищенной памяти токена.

Перед началом работы необходимо выполнить настройку каждого ПК с ОС Linux для каждого конкретного пользователя. У пользователя есть персональный токен (активный или пассивный ключевой носитель). Токен подключается к ПК, доступ к его памяти разблокируется путем ввода PIN-кода. В результате настройки PAM (или генератор случайных чисел токена) генерирует сложный пароль, устанавливает этот пароль для пользователя и записывает его на токен.

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


Вариант 2:
Использование ключевых пар (открытого и закрытого ключей).

Напомню, что в этом случае используются только активные ключевые носители (Рутокен ЭЦП). На каждом токене создается ключевая пара (открытый и закрытый ключи). На основе открытого ключа Удостоверяющий центр организации выписывает сертификат открытого ключа. Закрытый ключ и сертификат используются для аутентификации, то есть для проверки того, что к ПК подключен токен конкретного пользователя, и этот пользователь знает PIN-код данного токена.

Для реализации данного варианта 2ФА существует достаточно много Linux PAM, которые отличаются друг от друга как местом хранения сертификатов, так и поддерживаемыми протоколами шифрования.

Итак, двухфакторная аутентификация в Linux может производиться:

  • Локально на компьютере пользователя. В этом случае необходимо создать ключи, выписать сертификат (например, с помощью openssl) и поместить сертификат в локальное хранилище доверенных сертификатов на конкретном ПК с ОС Linux.
  • С помощью контроллера домена Active Directory. Да, такой комбинированный вариант вполне возможен на переходный период миграции (который может затянуться очень надолго). В этом случае для аутентификации используются данные пользователей в AD, а для создания и управления сертификатами применяется Microsoft Certification Serivice. А вот и инструкция.
  • С помощью контроллера домена Kerberos. Создание и управление сертификатами осуществляется с помощью той же самой openssl. Вот как настраивается 2ФА с помощью международных алгоритмов. Если же необходимо использование российских алгоритмов ГОСТ, то об этом мой коллега написал хорошую статью.
  • С помощью контроллера домена FreeIPA. На мой взгляд – самый лучший вариант, поскольку реализует централизованное управление пользователями и сертификатами.

Многие разработчики дистрибутивов Linux (включая российских) создают собственные решения для двухфакторной аутентификации (обычно включающие в себя FreeIPA в качестве контроллера домена, DogTag в качестве центра сертификации и Ansible для централизованного применения политик).

Так что, как видите, внедрение двухфакторной аутентификации в Linux – дело не только нужное и важное, но и не такое сложное, как многим кажется.

Ключевые слова: ИТ-инфраструктура, разработка под Linux, Рутокен ЭЦП.

 


Подпишитесь на журнал
Купите в Интернет-магазине

 

В начало⇑

Комментарии отсутствуют

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

Выпуск №05 (138) 2024г.
Выпуск №05 (138) 2024г. Выпуск №04 (137) 2024г. Выпуск №03 (136) 2024г. Выпуск №02 (135) 2024г. Выпуск №01 (134) 2024г.
Вакансии на сайте Jooble

БИТ рекомендует

Пройдите опрос!

           

Tel.: (499) 277-12-41  Fax: (499) 277-12-45  E-mail: sa@samag.ru

 

Copyright © Системный администратор

  Яндекс.Метрика