Двухфакторная аутентификация в Службе Каталога Active Directory Domain Services. Привязка дополнительных одноразовых паролей к окну входа Windows


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

Мы уже не раз рассказывали об одноразовых ключах. Смысл очень простой. Если злоумышленник каким-то образом сможет получить твой логин-пароль, то без проблем сможет зайти в твою почту или выполнить подключение к удаленному серверу. Но если на его пути будет дополнительный фактор, например одноразовый ключ (его также называют OTP-ключом), то уже ничего не выйдет. Даже если такой ключ попадет к злоумышленнику, то воспользоваться им будет уже нельзя, так как валидным он является только один раз. В качестве такого второго фактора может быть дополнительный звонок, код, полученный по SMS, ключ, сгенерированный на телефоне по определенным алгоритмам на основе текущего времени (время - способ синхронизировать алгоритм на клиенте и сервере). Тот же самый Google уже давно рекомендует своим пользователям включить двухфакторную авторизацию (пара кликов в настройке аккаунта). Теперь пришла очередь добавить такой слой защиты и для своих сервисов!

Что предлагает Duo Security?

Банальный пример. У моего компьютера «наружу» открыт RDP-порт для удаленного подключения к рабочему столу. Если логин-пароль утечет, злоумышленник сразу получит полный доступ к машине. Поэтому об усилении защиты OTP-паролем вопрос даже не стоял - это нужно было просто сделать. Глупо было изобретать велосипед и пытаться реализовать все своими силами, поэтому я просто посмотрел решения, которые есть на рынке. Большинство из них оказались коммерческими (подробнее во врезке), однако для незначительного числа пользователей их можно юзать бесплатно. Для дома как раз то, что нужно. Одним из самых удачных сервисов, позволяющих организовать двухфакторную авторизацию буквально для чего угодно (включая VPN, SSH и RDP), оказался Duo Security (www.duosecurity.com). Привлекательности ему добавляло то, что разработчиком и фаундером проекта является Джон Оберхайд, известный специалист по информационной безопасности. Он, к примеру, расковырял протокол общения Google со смартфонами Android, с помощью которого можно установить или удалить произвольные приложения. Такая база дает о себе знать: чтобы показать важность двухфакторной авторизации, парни запустили сервис VPN Hunter (www.vpnhunter.com), который в два счета может найти неспрятанные VPN-серверы компании (и заодно определить тип оборудования, на которых они работают), сервисы для удаленного доступа (OpenVPN, RDP, SSH) и другие элементы инфраструктуры, позволяющие злоумышленнику попасть во внутреннюю сеть, просто зная логин и пароль. Забавно, что в официальном Твиттере сервиса владельцы начали ежедневно публиковать отчеты о сканировании известных компаний, после чего аккаунт был забанен:). Сервис Duo Security, само собой, нацелен прежде всего на внедрение двухфакторной аутентификации в компаниях с большим числом пользователей. К счастью для нас, есть возможность создать бесплатный Personal-аккаунт, позволяющий организовать двухфакторную аутентификацию для десяти пользователей бесплатно.

Что может быть вторым фактором?

Далее мы рассмотрим, как буквально за десять минут усилить безопасность подключения к удаленному рабочему столу, а также SSH на сервере. Но сперва хочу рассказать о том дополнительном этапе, который вводит Duo Security в качестве второго фактора авторизации. Вариантов несколько: телефонный звонок, СМС с пасскодами, Duo Mobile пасскоды, Duo Push, электронный ключ. О каждом чуть подробнее.

Долго ли можно использовать бесплатно?

Как уже было сказано, Duo Security предлагает специальный тарифный план «Personal». Он абсолютно бесплатен, но количество пользователей должно быть не более десяти. Поддерживает добавление неограниченного числа интеграций, все доступные методы аутентификации. Предоставляет тысячу бесплатных кредитов на услуги телефонии. Кредиты - это как бы внутренняя валюта, которая списывается с твоего аккаунта каждый раз, когда происходит аутентификация с помощью звонка или СМС. В настройках аккаунта можно выставить, чтобы при достижении заданного числа кредитов тебе на мыло пришло уведомление и ты успел пополнить баланс. Тысяча кредитов стоит всего 30 баксов. Цена на звонки и СМС для разных стран отличается. Для России звонок будет обходиться от 5 до 20 кредитов, СМС - 5 кредитов. Однако за звонок, происходящий при аутентификации на сайте Duo Security, ничего не списывается. Про кредиты можно совсем забыть, если использовать для аутентификации приложение Duo Mobile - за него ничего не взимается.

Простая регистрация

Для защиты своего сервера с помощью Duo Security необходимо скачать и установить специальный клиент, который будет взаимодействовать с аутентификационным сервером Duo Security и обеспечивать второй слой защиты. Соответственно, этот клиент в каждой ситуации будет разным: в зависимости от того, где именно необходимо реализовать двухфакторную авторизацию. Об этом мы поговорим ниже. Первое же, что необходимо сделать, - зарегистрироваться в системе и получить аккаунт. Поэтому открываем главную страницу сайта, нажимаем «Free Trial», на открывшейся странице нажимаем кнопку «Sing up» под типом аккаунта Personal. После чего нас просят ввести имя, фамилию, адрес электронной почты и название компании. На почту должно прийти письмо, содержащее ссылку для подтверждения регистрации. При этом система обязательно выполнит автоматический дозвон по указанному телефону: для активации аккаунта надо ответить на звонок и нажать на телефоне кнопку #. После этого аккаунт будет активным и можно приступать к боевым испытаниям.

Защищаем RDP

Выше я говорил, что начинал с большого желания обезопасить удаленные подключения к своему рабочему столу. Поэтому в качестве первого примера опишу, как усилить безопасность RDP.

  1. Любое внедрение двухфакторной авторизации начинается с простого действия: создания в профиле Duo Security так называемой интеграции. Переходим в раздел «Integrations  New Integration», указываем имя интеграции (например, «Home RDP»), выбираем ее тип «Microsoft RDP» и нажимаем «Add Integration».
  2. В появившемся окне выводятся параметры интеграции: Integration key, Secret key, API hostname. Они нам понадобятся позже, когда мы будем настраивать клиентскую часть. Важно понимать: знать их никто не должен.
  3. Далее необходимо поставить на защищаемую машину специальный клиент, который установит все необходимое в Windows-систему. Его можно скачать с официального сайта или взять с нашего диска. Вся его настройка сводится к тому, что в процессе установки необходимо будет ввести упомянутые выше Integration key, Secret key, API hostname.
  4. Вот, собственно, и все. Теперь при следующем заходе на сервер по RDP на экране будет три поля: имя пользователя, пароль и одноразовый ключ Duo. Соответственно, с одним только логином-паролем выполнить вход в систему уже нельзя.

При первой попытке захода в систему новому пользователю необходимо будет единожды пройти процедуру проверки Duo Security. Сервис будет выдавать ему специальную ссылку, перейдя по которой необходимо ввести свой номер телефона и ждать проверяющего звонка. Чтобы получить дополнительные ключи (или получить их в первый раз), можно ввести ключевое слово «sms». В случае если ты хочешь пройти аутентификацию при помощи телефонного звонка - введи «phone», если при помощи Duo Push - «push». Историю всех попыток подключения (как удачных, так и неудачных) к серверу можно посмотреть в своем аккаунте на сайте Duo Security, предварительно выбрав нужную интеграцию и зайдя в ее «Authentication Log».

Подключаем Duo Security где угодно!

С помощью двухфакторной авторизации можно защищать не только RDP или SSH, но и VPN, RADIUS-серверы, любые веб-сервисы. Например, существуют готовые клиенты, добавляющие дополнительный слой аутентификации в популярные движки Drupal и WordPress. Если готового клиента нет, расстраиваться не стоит: ты всегда можешь самостоятельно добавить двухфакторную аутентификацию для своего приложения или сайта при помощи API, предоставляемого системой. Логика работы с API проста - ты делаешь запрос на URL определенного метода и парсишь возвращаемый ответ, который может прийти в формате JSON (или же BSON, XML). Полная документация по Duo REST API доступна на официальном сайте. Я лишь скажу, что существуют методы ping, check, preauth, auth, status, из названия которых несложно догадаться, для чего они предназначены.

Защищаем SSH

Рассмотрим еще один тип интеграции - «UNIX Integration», чтобы реализовать безопасную аутентификацию. Добавляем еще одну интеграцию в своем профиле Duo Security и приступаем к установке клиента в системе.

Исходники последнего ты можешь скачать по адресу bit.ly/IcGgk0 или взять с нашего диска. Я использовал последнюю версию - 1.8. Кстати, клиент работает на большинстве nix-платформ, так что его можно будет спокойно установить на FreeBSD, NetBSD, OpenBSD, Mac OS X, Solaris/Illumos, HP-UX и AIX. Процесс сборки стандартен - configure && make && sudo make install. Единственно, я бы рекомендовал использовать configure с опцией —prefix=/usr, иначе при запуске клиент может не найти необходимых библиотек. После успешной установки идем редактировать конфигурационный файл /etc/duo/login_duo.conf. Это нужно делать из-под рута. Все изменения, которые необходимо внести для успешной работы, - это задать значения Integration key, Secret key, API hostname, которые можно узнать на странице интеграции.

; Duo integration keyikey = INTEGRATION_KEY; Duo secret keyskey = SECRET_KEY; Duo API hostnamehost = API_HOSTNAME

Чтобы заставить всех пользователей, заходящих на твой сервер по SSH, использовать двухфакторную аутентификацию, достаточно добавить следующую строку в файл /etc/ssh/sshd_config:

> ForceCommand /usr/local/sbin/login_duo

Существует также возможность организовать двухфакторную авторизацию только для отдельных пользователей, объединив их в группу и указав эту группу в файле login_duo.conf:

> group = wheel

Для вступления изменений в силу остается только перезапустить ssh-демон. С этого момента после успешного ввода логина-пароля пользователю будет предложено пройти дополнительную аутентификацию. Следует отдельно отметить одну тонкость настройки ssh - настоятельно рекомендуется отключить в конфигурационном файле опции PermitTunnel и AllowTcpForwarding, так как демон применяет их до того, как запустить второй этап аутентификации. Таким образом, если злоумышленник правильно вводит пароль, то он может получить доступ к внутренней сети до завершения второго этапа аутентификации благодаря порт-форвардингу. Чтобы избежать такого эффекта, добавь следующие опции в sshd_config:

PermitTunnel noAllowTcpForwarding no

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

Дополнительные настройки

Если зайти в свой аккаунт Duo Security и перейти в раздел «Settings», то можно подкрутить под себя некоторые настройки. Первый важный раздел - это «Phone calls». Тут указываются параметры, которые будут действовать, когда для подтверждения аутентификации будет задействован телефонный звонок. Пункт «Voice callback keys» позволяет задать, на какую клавишу телефона надо будет нажать для подтверждения аутентификации. По умолчанию там стоит значение «Press any key to authenticate» - то есть можно жать на любую. Если же установить значение «Press different keys to authenticate or report fraud», то нужно будет задать две клавиши: нажатие на первую подтверждает аутентификацию (Key to authenticate), нажатие на вторую (Key to report fraud) означает, что процесс аутентификации инициировали не мы, то есть кто-то получил наш пароль и пытается с его помощью зайти на сервер. Пункт «SMS passcodes» позволяет задать количество пасскодов, которое будет содержать одна эсэмэска, и время их жизни (валидности). Параметр «Lockout and fraud» позволяет задать адрес электронной почты, на который будет приходить оповещение в случае определенного числа неудачных попыток авторизоваться на сервере.

Используй!

Удивительно, но многие по-прежнему игнорируют двухфакторную авторизацию. Не понимаю почему. Это действительно очень серьезно усиливает безопасность. Реализовать ее можно практически для всего, а достойные решения доступны бесплатно. Так почему? От лени или от беспечности.

Сервисы-аналоги

  • Signify (www.signify.net) Сервис предоставляет три варианта для организации двухфакторной аутентификации. Первый - использование электронных ключей. Второй способ - использование пасскеев, которые посылаются пользователю на телефон посредством СМС или приходят на электронную почту. Третий вариант - мобильное приложение для телефонов Android, iPhone, BlackBerry, которое генерирует одноразовые пароли (по сути, аналог Duo Mobile). Сервис нацелен на крупные компании, поэтому полностью платный.
  • SecurEnvoy (www.securenvoy.com) Также позволяет использовать мобильный телефон в качестве второго защитного слоя. Пасскеи отправляются пользователю по СМС или на электронную почту. Каждое сообщение содержит три пасскея, то есть пользователь может три раза авторизоваться, перед тем как запросит новую порцию. Сервис также является платным, но предоставляет бесплатный 30-дневный период. Существенным плюсом является большое число как родных, так и сторонних интеграций.
  • PhoneFactor (www.phonefactor.com) Данный сервис позволяет бесплатно организовать двухфакторную аутентификацию до 25 пользователей, предоставляя 500 бесплатных аутентификаций в месяц. Для организации защиты необходимо будет скачать и установить специальный клиент. В случае необходимости добавления двухфакторной аутентификации на сайт можно воспользоваться официальным SDK, предоставляющим подробную документацию и примеры для следующих языков программирования: ASP.NET C#, ASP.NET VB, Java, Perl, Ruby, PHP.

Пароли могут создать большую головную боль в плане безопасности и управляемости для ИТ-администраторов предприятий и организаций. Пользователи часто создают простые пароли или записывают пароли, чтобы не забыть их. Вдобавок лишь немногие из процедур сброса паролей эффективны и безопасны. Учитывая эти ограничения, как можно смягчить проблемы безопасности подобного типа, когда доступ к сети производится удаленными пользователями? Как можно сделать решение паролей своей компании более надежным, зная, что многие пользователи записывают свои пароли?

Решение есть – это внедрение в организации дополнительной систему защиты доступа на основе ввода одноразовых паролей (OTP – One Time Password) , которые генерируются на мобильном устройстве вашего сотрудника. Переход к аутентификации на основе одноразовых паролей обычно происходит в ситуации, когда приходит понимание, что стандартные долговременные пароли недостаточны с точки зрения безопасности и при этом возможности использования смарт-карт ограничены, например, в ситуации массового применения мобильных клиентов.

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

Состав работ по развертыванию и настройке OTP-системы

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

Стоимость внедрение в организацию системы аутентификации доступа на терминальный сервер или сервер 1С на основе одноразовых паролей (OTP) начинается от 6 400 руб .

В случаях, если OTP-система будет развернута в комплексе с арендой инфраструктуры в нашем защищенном «облаке», скидка на внедрение системы защиты с помощью одноразовых паролей (OTP) может достигать 50 % .

Одноразовые пароли - дополнительный уровень безопасности данных

Традиционный, статичный пароль, обычно меняется лишь при необходимости: либо когда он истекает, либо когда пользователь забыл его и хочет его сбросить. Поскольку пароли кэшируются на жестких дисках компьютера и хранятся на сервере, они уязвимы для взлома. Эта проблема стоит особо остро для переносных компьютеров, поскольку их легко украсть. Многие компании дают сотрудникам переносные компьютеры и открывают свои сети для удаленного доступа. Они также нанимают временных сотрудников и поставщиков. В такой среде простое статичное решение пароля становится недостатком.
В отличие от статичного пароля, одноразовый пароль меняется при каждом входе пользователя в систему и действителен только в течении короткого промежутка времени (30 сек). Сами пароли создаются и шифруются по сложному алгоритму зависящих от многих переменных: времени, количеству успешных\неудачных входов, случайно сгенерированных чисел и т.д. Данный на первый взгляд сложный подход требуют от пользователя простых действий – Установить на свой телефон специальное приложение, которое синхронизируется один раз с сервером и в дальнейшем генерирует одноразовый пароль. При каждом новом успешном входе происходит автоматическая пере синхронизация клиента и сервера независимо друг от друга по специальному алгоритму. Значение счетчика растет каждый раз, как от устройства требуется значение OTP и когда пользователь желает войти в систему, он вводит OTP, отображенные на своем мобильном устройстве в настоящий момент.

Пароль является не очень надежным средством защиты. Очень часто используются простые, легко подбираемые пароли или же пользователи не особо следят за сохранностью своих паролей (раздают коллегам, пишут на бумажках и т.д.). В Microsoft уже давно реализована технология, позволяющая для входа в систему использовать SmartCard, т.е. аутентифицироваться в системе по сертификату. Но не обязательно использовать непосредственно смарт-карты, ведь для них нужны еще и считыватели, поэтому проще их заменить на usb токены. Они позволят реализовать двухфакторную аутентификацию: первый фактор — это пароль от токена, второй фактор — это сертификат на токене. Далее на примере usb токена JaCarta и домена Windows я расскажу как внедрить этот механизм аутентификации.

Первым делом в AD создадим группу «g_EtokenAdmin» и уч. запись «Enrollment Agent», входящую в эту группу. Эта группа и пользователь будут рулить центром сертификации.

Дополнительно установим Web службу для запроса сертификатов.

Далее выбираем вариант для предприятия. Выбираем Корневой ЦС (если у нас это первый центр сертификации в домене)
Создаем новый закрытый ключ. Длину ключа можно оставить туже, а вот алгоритм хеширования лучше выбрать SHA2 (SHA256).


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


После установки зайдем в оснастку центра сертификации и настроим права на шаблоны.

Нас будут интересовать два шаблона: Агент регистрации (Enrollment Agent) и Вход со смарт-картой (Smartcard logon).
Зайдем в свойства этих шаблонов и на вкладке безопасность добавим группу «g_EtokenAdmin» с правами чтение и заявка.

И они появятся у нас в общем списке.

Следующим шагом настроим групповые политики:
Первым делом расскажем всем компьютерам домена о корневом центре сертификации, для этого изменим Default Domain Policy.
Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Политики открытого ключа -> Доверенные корневые центры сертификации -> Импорт


Выберем наш корневой сертификат, расположенный по пути: C:\Windows\System32\certsrv\CertEnroll. Закрываем Default Domain Policy.
На следующем шаге создадим политику для контейнера, в котором будут находится компьютеры с аутентификацией по токену (Смарт-карте).

По пути Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Локальные политики -> Параметры безопасности. Настроим два параметра «Интерактивный вход в систему: требовать смарт-карту» и «Интерактивный вход в систему: поведение при извлечении смарт-карты».

На этом с настройками все, теперь можно генерировать клиентский сертификат и проверять аутентификацию по токену.
Залогинемся на компьютере под учетной записью «Enrollment Agent» и откроем браузер, перейдя по ссылке http://Имя_сервера_MS_CA/certsrv

Выбираем пункт Запрос сертификата -> Расширенный запрос сертификата -> Создать и выдать запрос к этому ЦС
Если возникнет ошибка вида «Чтобы завершить подачу заявки на сертификат, следует настроить веб-узел для ЦС на использование проверки подлинности по протоколу HTTPS», то нужно на сервере IIS, на котором установлен MS CA, сделать привязку сайта к протоколу https.


Продолжим получение сертификата, для этого на открывшейся странице выберем шаблон: «Агент регистрации» и нажмем кнопку выдать и установить сертификат.


Теперь пользователь Enrollment Agent может выписывать сертификаты для других пользователей. К примеру запросим сертификат для пользователя test. Для этого откроем консоль управления сертификатами certmgr.msc, т.к. через web интерфейс не получится записать сертификат на usb токен.
В этой консоли на папке личное сделаем запрос от имени другого пользователя


В качестве подписи выбираем единственный сертификат «Enrollment Agent» и переходим к следующему шагу, на котором выбираем пункт «Вход со смарт-картой» и нажимаем подробности для выбора криптопровайдера.
В моем случае я использую токены JaCarta, поэтому вместе с драйверами был установлен криптопровайдер «Athena…»:


На следующем шаге выбираем доменного пользователя, для которого выписываем сертификат и нажимаем на кнопку «Заявка».

Вставляем токен, вводим пин код и начинается процесс генерации. В итоге мы должны увидеть диалоговое окно с надписью «Успешно».
Если процесс окончился неудачно, возможно дело в шаблоне получения сертификата, в моем случае его надо было немного подправить.

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

P.s.
1) Если не работает автоматическая блокировка компьютера или выход из системы, после вытаскивания токена, смотрите запущена ли служба «Политика удаления смарт-карт»
2) На токен можно записать (сгенерировать сертификат) только локально, через RDP не получится.
3) Если не получается запустить процесс генерации сертификата по стандартному шаблону «Вход с смарт-картой», создайте его копию с такими параметрами.

На этом все, если будут вопросы, задавайте, постараюсь помочь.

Методы защиты при использовании аутентификации по паролю. Для защиты паролей от взлома следует настроить соответствующую политику. Для этого необходимо с помощью меню Start->Administrative Tools-> Group Policy Management запустить консоль управления групповыми политиками GPMC, выбрать требуемый объект групповой политики раздел Computer Configuration->Policies->Security Settings->Account Policies->Password Policy См. Рис. 1 (Управление параметрами паролей).


Рис. 1 Управление параметрами паролей.

Можно задать минимальную длину пароля, что позволит нам избежать коротких паролей (Minimum password length ). Для того чтобы, пользователь задавал сложные пароли следует включить требование сложности (Password must meet complexity requirements ).

Для обеспечения регулярной смены пароля нужно задать его максимальный срок жизни (Maximum password age ).

Для того чтобы, пользователи не повторяли старые пароли, требуется настроить хранение истории паролей (Enforce password history ) .

Ну и наконец, для того, чтобы пользователь не менял свой пароль на старый путем многократной смены паролей, задать минимальный срок, в течение которого пароль нельзя поменять (Minimum password age ).

Для того, защиты от атаки по словарю, настроим блокировку учетной записи при неоднократном неправильном вводе пароля. Для этого необходимо в консоли управления групповыми политиками GPMC выбрать требуемый объект групповой политики раздел Computer Configuration -> Policies -> Security Settings -> Account Policies -> Account Lockout Policy . См. Рис. 2 (Управление блокировкой учетной записи пользователя).

Рис. 2 Управление блокировкой учетной записи пользователя.

Для настройки окончательной блокировки учетной записи (до разблокирования ее администратором) следует задать нулевое значение параметру продолжительности блокировки (Account lockout duration ).

В счетчике количества неуспешных попыток входа в сеть (Account lockout threshold ) нужно указать требуемое значение. В большинстве случаев приемлемым вариантом является 3-5 попыток входа.

Наконец, следует задать интервал сброса счетчика неуспешных попыток (Reset account lockout counter after ).

Для защиты от «троянских коней» следует использовать антивирусные средства и блокировку несанкционированного программного обеспечения.

Для ограничения возможностей пользователей по внесению вирусов в информационную систему, оправдано: настройка запрета на работу с внешними устройствами (CD, DVD, Flash), строгий режим работы UAC, использование отдельно стоящих Интернет киосков, на базе компьютеров не входящих в состав рабочей сети. И, наконец, внедрение строгих регламентов работы, определяющих правила работы пользователей в корпоративной сети (запрет передачи своих учетных данных кому бы то ни было, запрет оставлять свои учетные данные в доступных местах, требования обязательной блокировки рабочей станции при оставлении рабочего места, и. т. п.).

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

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

Человеческий фактор – самая большая угроза.

Существуют еще угрозы, справиться с которыми нам не удалось. Одна из наиболее существенных – человеческий фактор. Пользователи наших информационных систем не всегда достаточно сознательны и, несмотря на разъяснения администраторов безопасности, записывают свои учетные данные (имя пользователя и пароль) и не заботятся о секретности этой конфиденциальной информации. Мне не раз доводилось обнаруживать стикеры на мониторе см. Рис. 3, или под клавиатурой см. рис. 4 с именем пользователя и паролем.

Рис. 3. Замечательный подарок злоумышленнику, не так ли?

Рис. 4. Еще один подарок взломщику.

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

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

Инсайдинг

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

Вполне очевидно, что «физическую» безопасность рабочей станции пользователя обеспечить очень трудно. В разрыв клавиатуры можно без труда подключить аппаратный клавиатурный шпион (keylogger), перехват сигнала от беспроводных клавиатур тоже возможен. Такие устройства существуют. Разумеется, кто попало не пройдет в офис компании, однако всем известно, что самым опасным является внутренний шпион. У него уже есть физический доступ к вашей системе, и разместить клавиатурный шпион, не составит труда, тем более эти устройства доступны широкому кругу лиц. Кроме того, нельзя сбрасывать со счетов программы – клавиатурные шпионы. Ведь, несмотря на все усилия администраторов, возможность установки такого «шпионского» программного обеспечения не исключена. Всегда ли пользователь блокирует свою рабочую станцию, покидая свое рабочее место? Удается ли администратору информационной системы добиться, чтобы пользователю не назначались избыточные полномочия, особенно при необходимости использования старых программных продуктов? Всегда ли администратор, а особенно в небольшой компании, обладает достаточной квалификацией, чтобы внедрить рекомендации производителей программного и аппаратного обеспечения по построению безопасных информационных систем?

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

Что нам может помочь?

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

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

Кроме того, современные решения для двухфакторной аутентификации предполагают не только возможность аутентификации в AD или AD DS. Использование смарт карт и USB-ключей помогает и во многих других случаях, например при доступе к публичной электронной почте, в Интернет магазины, где требуется регистрация, к приложениям, имеющим свою собственную службу каталога и. т. д.

Таким образом, можно получить практически универсальное средство аутентификации.

Внедрение двухфакторной аутентификации на основе асимметричной криптографии в AD DS.

Служба каталога Active Directory поддерживает возможность аутентификации с помощью смарт карт, начиная с Windows 2000.

По сути своей, возможность аутентификации с помощью смарт карт заложена в расширении PKINIT (public key initialization – инициализация открытого ключа) для протокола Kerberos RFC 4556. См. . Расширение PKINIT позволяет использовать сертификаты открытого ключа на этапе предаутентификации Kerberos.

Благодаря чему и появляется возможность использования смарт карт. Т. е. мы можем говорить о возможности двухфакторной аутентификации в системах Microsoft на основе штатных средств, начиная с ОС Windows 2000, т. к. уже реализована схема Kerberos + PKINIT.

Примечание. Предаутентификация Kerberos – процесс, обеспечивающий дополнительный уровень безопасности. Выполняется до выдачи TGT (Ticket Granting Ticket ) от сервера распространения ключей (KDC ). Используется в протоколе Kerberos v . 5 для противодействия оффлайн атакам на угадывание пароля. Подробнее о принципах работы протокола Kerberos можно узнать в RFC 4120. C м

Разумеется, речь идет о компьютерах в составе домена. Если же есть необходимость прибегнуть к двухфакторной аутентификации при работе в рабочей группе, или при использовании более ранних версий операционных систем, то нам придется обратиться к программному обеспечению третьих фирм, например SafeNet (Aladdin) eToken Network Logon 5.1. См.

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

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

Что касается требований для внедрения использования смарт карт в связке с PKINIT, то для операционных систем Windows 2000, Windows 2003 Server, они следующие:

· Все контроллеры доменов и все клиентские компьютеры в рамках леса, где осуществляется внедрение нашего решения, обязательно должны доверять корневому Удостоверяющему Центру (Центру Сертификации).

· Удостоверяющий центр, выдающий сертификаты для использования смарт карт, должен быть помещен в хранилище NT Authority

· Сертификат должен содержать идентификаторы Smart Card Logon и Client Authentication

· Сертификат для смарт карт должен содержать UPN пользователя.

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

· В сертификате должен быть указан путь к списку отзыва сертификатов CRL distribution point

· Все контроллеры доменов должны иметь установленный сертификат Domain Controller Authentication, или Kerberos Authentication, т. к. реализуется процесс взаимной аутентификации клиента и сервера.

Целый ряд изменений в требованиях произошел в операционных системах, начиная с Windows Server 2008:

· Больше не требуется CRL extension в сертификатах smart card logon

· Теперь поддерживается возможность установки взаимосвязи между учетной записью пользователя и сертификатом

· Запись сертификата возможна в любой доступный раздел смарт карты

· Расширение EKU не обязано включать Smart Card Logon OID, при этом справедливости ради надо отметить, что если вы планируете использовать единственный шаблон сертификата для клиентов всех операционных систем, то, разумеется, Smart Card Logon OID должен быть включен.

Несколько слов о самой процедуре входа клиента. Если говорить об операционных системах от Windows Vista и выше, то следует отметить, что и тут произошел ряд изменений:

· Во-первых, процедура входа в систему по смарт карте больше не инициируется автоматически, когда вы вставили смарт карту в карт ридер, или подключили ваш USB -ключ к USB порту, т. е. вам придется нажать Ctrl+Alt+Delete.

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

Выводы

Итак, мы разобрали несколько основных аспектов, касающихся теоретической части двухфакторной аутентификации в Active Directory Domain Services, и можно подвести итоги.

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

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

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

Использование двухфакторной аутентификации – хорошее решение с точки зрения безопасности.

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

Использование смарт карт или USB ключей дает нам возможность обеспечить двухфакторную аутентификацию как в среде AD, так и в AD DS.

В одной из следующих статей я расскажу, как осуществляется внедрение двухфакторной аутентификации на практике. Мы рассмотрим развертывание и настройку инфраструктуры удостоверяющих центров (PKI) на основе Windows Server 2008 Enterprise R2.

Список литературы.

Http://www.rfc-archive.org/getrfc.php?rfc=4556

Http://www.rfc-archive.org/getrfc.php?rfc=4120

Http://www.aladdin.ru/catalog/etoken_products/logon

NCSC-TG-017 – "A Guide to Understanding Identification and Authentication in Trusted Systems," опубликованный U.S. National Computer Security Center.

RFC4120 – The Kerberos Network Authentication Service (V5)

RFC4556 – Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)

Brian Komar Windows Server 2008 PKI and Certificate Security

Леонид Шапиро,
MCT, MCSE:S, MCSE:M, MCITP EA, TMS Certified Trainer







2024 © gtavrl.ru.