Как при помощи токена сделать Windows домен безопаснее? Часть 1

  • Tutorial

Кто-то из вас наверняка слышал про инцидент , который был обнародован совсем недавно. Американский производитель полупроводников Allegro MicroSystem LLC подал в суд на своего бывшего IT-специалиста за саботаж. Нимеш Пател, проработавший в компании 14 лет, уничтожил важные финансовые данные в первую неделю нового фискального года.


Как это произошло?


Через две недели после своего увольнения Пател зашел на территорию штаб-квартиры компании в Вустере (штат Массачусетс, США) с целью поймать корпоративную сеть Wi-Fi. Используя учетные данные бывшего коллеги и рабочий ноутбук, Пател авторизовался в корпоративной сети. Затем он внедрил в модуль Oracle код и запрограммировал его выполнение на 1 апреля 2016 года — первую неделю нового финансового года. Код предназначался для копирования определенных заголовков или указателей в отдельную таблицу базы данных и следующего удаления их из модуля. Ровно 1 апреля данные были удалены из системы. И поскольку злоумышленник авторизовался в сети Allegro легально, его действия были замечены не сразу.


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


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


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


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


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


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


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


Давайте вспомним, что такое аутентификация. В нашем случае это процесс подтверждения подлинности субъекта или объекта. Аутентификация пользователя — это процесс подтверждения подлинности пользователя.


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


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


Токен и смарт-карта


Наверно, самым надежным и простым в реализации способом двухфакторной аутентификации является использование криптографического токена или смарт-карты. Токен — это USB-устройство, которое является и считывателем, и смарт-картой одновременно. Первым фактором в таком случае является факт владения устройством, а вторым — знание его PIN-кода.


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


На фотографии изображена типичная смарт-карта и считыватель.




Однако вернемся к корпоративной безопасности.


А начнем мы с домена Windows, ведь в большинстве компаний в России корпоративная сеть построена именно вокруг него.


Как известно, политики Windows-домена, настройки пользователей, настройки групп в Active Directory предоставляют и разграничивают доступ к огромному количеству приложений и сетевых сервисов.


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


Почему двухфакторная аутентификация в домене по токену с PIN-кодом безопаснее обычной парольной схемы?


PIN-код привязан к определенному устройству, в нашем случае к токену. Знание PIN-кода само по себе ничего не дает.


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


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


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


Преимущества входа в домен по токену


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


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


При использовании токена для пользователя вход в систему выглядит следующим образом: после загрузки компьютера, он просто подключает токен к USB-порту компьютера, вводит 4-6 цифр и нажимает кнопку Enter. Скорость ввода цифр у обычных людей выше, чем скорость ввода букв. Поэтому PIN-код вводится быстрее.




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

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


Недостатки, куда же без них


Токены или смарт-карты не бесплатные (решается бюджетом).


Их нужно учитывать, администрировать и обслуживать (решается системами управления токенами и смарт-картами).


Некоторые информационные системы могут «из коробки» не поддерживать аутентификацию по токенам (решается системами типа Single Sign-On — предназначенными для организации возможности использования единой учетной записи для доступа к любым ресурсам области).


Настройка двухфакторной аутентификации в домене Windows


Теоретическая часть:


Служба каталога Active Directory поддерживает возможность аутентификации с помощью смарт-карты и токена, начиная с Windows 2000. Она заложена в расширении PKINIT (public key initialization — инициализация открытого ключа) для протокола Kerberos RFC 4556 .


Протокол Kerberos был специально разработан для того, чтобы обеспечить надежную аутентификацию пользователей. Он может использовать централизованное хранение аутентификационных данных и является основой для построения механизмов Single Sing-On. Протокол основан на ключевой сущности Ticket (билет).



Ticket (билет) является зашифрованным пакетом данных, который выдается доверенным центром аутентификации, в терминах протокола Kerberos — Key Distribution Center (KDC, центр распределения ключей).


Когда пользователь выполняет первичную аутентификацию после успешного подтверждения его подлинности, KDC выдает первичное удостоверение пользователя для доступа к сетевым ресурсам — Ticket Granting Ticket (TGT).


В дальнейшем при обращении к отдельным ресурсам сети, пользователь, предъявляет TGT, получает от KDC удостоверение для доступа к конкретному сетевому ресурсу — Ticket Granting Service (TGS).


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


Расширение PKINIT позволяет использовать двухфакторную аутентификацию по токенам или смарт-картам на этапе предаутентификации Kerberos.


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


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


Практика:


Приступим к настройке.


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


Для демонстрации мы будем использовать Рутокен ЭЦП PKI производства компании «Актив».




1 Этап — Настройка домена Первым делом установим службы сертификации.


Дисклеймер.


Эта статья не является туториалом по внедрению корпоративного PKI. Вопросы проектирования, разворачивания и грамотного применения PKI тут не рассматриваются ввиду необъятности этой темы.


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


Задача центра сертификации — подтверждать подлинность ключей шифрования с помощью сертификатов электронной подписи.


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


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


Зайдите в Диспетчер сервера и выберите «Добавить роли и компоненты».


При добавлении ролей сервера выберите «Службы сертификации Active Directory» (Microsoft категорически рекомендует не делать это на контроллере домена, дабы не огрести проблем с производительностью). В открывшемся окне выберите «Добавить компоненты» и выберите пункт «Центр сертификации».


На странице для подтверждения установки компонентов нажмите «Установить».


2 Этап — Настройка входа в домен с помощью токена


Для входа в систему нам понадобится сертификат, который содержит идентификаторы Smart Card Logon и Client Authentication.


Сертификат для смарт-карт или токенов также должен содержать UPN пользователя (суффикс имени участника-пользователя). По умолчанию суффиксом имени участника-пользователя для учетной записи является DNS-имя домена, которое содержит учетную запись пользователя.


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


В сертификате должен быть указан путь к точке распространения списка отзыва сертификатов (CRL distribution point). Такой файл содержит список сертификатов с указанием серийного номера сертификата, даты отзыва и причины отзыва. Он используется для передачи сведений об отозванных сертификатах пользователям, компьютерам и приложениям, пытающимся проверить подлинность сертификата.


Настроим установленные службы сертификации. В правом верхнем углу нажмите на желтый треугольник с восклицательным знаком и щелкните «Настроить службы сертификации…».




В окне «Учетные данные» выберите необходимые учетные данные пользователя для настройки роли. Выберите «Центр сертификации».


Выберите «ЦС предприятия».


ЦС предприятия интегрированы с AD. Они публикуют сертификаты и списки отзыва сертификатов в AD.


Укажите тип «Корневой ЦС».


На следующем этапе выберите «Создать новый закрытый ключ».


Выберите период действия сертификата.


3 этап — Добавление шаблонов сертификатов


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


Щелкните по названию папки «Шаблоны сертификатов», выберите пункт «Управление».


Щелкните по названию шаблона «Пользователь со смарт-картой» и выберите пункт «Скопировать шаблон». На следующих скриншотах показано, какие параметры в окне «Свойства нового шаблона» необходимо изменить.








Если в списке поставщиков нет «Aktiv ruToken CSP v1.0», то необходимо установить комплект «Драйверы Рутокен для Windows».


Начиная с Windows Server 2008 R2 вместо специального провайдера от производителя можно использовать «Microsoft Base Smart Card Crypto Provider».


Для устройств Рутокен библиотека «минидрайвера», поддерживающая «Microsoft Base Smart Card Crypto Provider», распространяется через Windows Update.


Проверить установился ли «минидрайвер» на вашем сервере можно подключив Рутокен к нему и посмотрев в диспетчер устройств.



Если «минидрайвера» по каким-то причинам нет, его можно установить принудительно, инсталлировав комплект «Драйверы Рутокен для Windows», а после этого воспользоваться «Microsoft Base Smart Card Crypto Provider».


Комплект «Драйверы Рутокен для Windows» распространяется бесплатно с сайта Рутокен .






Добавьте два новых шаблона «Агент сертификации» и «Пользователь с Рутокен».


Далее нам необходимо выписать сертификат администратору домена. Откройте службу «Выполнить» и укажите команду mmc. Добавьте оснастку «Сертификаты».


В окне «Оснастки диспетчера сертификатов» выберите «моей учетной записи пользователя». В окне «Добавление и удаление оснастки» подтвердите добавление сертификатов.


Выберите папку «Сертификаты».



Запросите новый сертификат. Откроется страница для регистрации сертификата. На этапе запроса сертификата выберите политику регистрации «Администратор» и нажмите «Заявка».



Таким же образом запросите сертификат для Агента регистрации.


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




В окне для запроса сертификата установите флажок «Пользователь с Рутокен».


Теперь необходимо выбрать пользователя.


В поле «Введите имена выбранных объектов» укажите имя пользователя в домене и нажмите «Проверить имя».


В окне для выбора пользователя нажмите «Заявка».


В раскрывающемся списке выберите имя токена и укажите PIN-код.




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


4 этап — Настройка учетных записей пользователей


Для настройки учетных записей откройте список пользователей и компьютеров AD.


Выберите папку Users и пункт «Свойства».




Перейдите на вкладку «Учетные записи», установите флажок «Для интерактивного входа в сеть нужна смарт-карта».




Настройте политики безопасности. Для этого откройте Панель управления и выберите пункт «Администрирование». Откройте меню для управления групповой политикой.


В левой части окна «Управление групповой политикой» щелкните «Default Domain Policy» и выберите пункт «Изменить».




В левой части окна «Редактор управления групповыми политиками» выберите пункт «Параметры безопасности».




Откройте политику «Интерактивный вход в систему: требовать смарт-карту».


На вкладке «Параметры политики безопасности» установите флажки «Определить следующий параметр политики» и «Включен».


Откройте политику «Интерактивный вход в систему: поведение при извлечении смарт-карты».


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


Перезагрузите компьютер. И при следующей попытке аутентификации в домене уже можно будет использовать токен и его PIN-код.




BINGO!


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


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

«Актив» 102,84
Компания
Поделиться публикацией
Комментарии 24
  • –2
    Интересно, спасибо! Чем подробнее будут след. статьи тем лучше )
    • 0
      Вопрос, а в чужом домене по тому же сертификату авторизоваться можно? Предполагается, что в чужом домене сертификат root CA прописан в NTAuth.
      • –1
        По идее, если внести закрытый и открытый ключ в центр сертификации, или допустим центр сертификации ваш будет опубликован наружу, и чужой домен будет ему доверять, то есть вероятность подвязать этот же ключ к нему. Но это не точно.
        • 0
          1. Закрытый и открытый ключи ЧЕГО вы предлагаете внести в центр сертификации? И вообще как это «внести закрытый и открытый ключ в центр сертификации»?
          2. Что значит опубликован наружу? Зачем? В действительности доступен должен быть только список отзыва — CRL и/или OCSP-респондер.
          Смотрите мой ответ ниже.
        • 0
          Конечно, вы можете использовать сертификат для любого домена. Важно понимать, что PKI может быть любой, не обязательно MSCA как в статье. Все, что вам нужно — настроить контроллеры домена:
          1. Контроллеры домена должны доверять УЦ (то, о чем вы написали)
          2. У самих контроллеров домена должны быть сертификаты, выпущенные этим УЦ. Это в статье опущено, так как если УЦ MSCA и сам находится в домене(что, как вы понимаете, не всегда так), то он автоматически выпускает сертификаты для всех контроллеров своего домена. В противном случае их надо просто выпустить вручную.
          • 0
            > 2. У самих контроллеров домена должны быть сертификаты, выпущенные этим УЦ.

            Вот это интересно. Я последний раз настраивал такую инфраструктуру, и этого пункта не требовалось. Но инфраструктура была на 2003м домене, как «своя» с УЦ, так и «чужая». Сейчас усиленно маюсь с настройками 2012го домена, уперся в NLA, которая мешает аутентификации, заставляя сначала подтвердить валидность сертификата на «своем» домене, после чего отдает «свой» домен на другую сторону.
            • 0
              Тут можете поподробнее посмотреть.
              • 0
                В принципе так и настроено. Спасибо, я ещё покопаюсь, но обойти NLA при доступе к удаленному домену с ПК в локальном домене может оказаться невозможно.
        • 0

          Как пользователи заходят на терминальные сервера?

          • +1
            Точно так же, используя токен. Вместо ввода user\pass, предлагается ввести пин от токена.
            • 0
              В свойствах рдп-подключения включаем использование локальных устройств/карт. В свою очередь токены используемые локально, например банковские, не следует передавать в сеанс, т.к. перестанут работать.
              • 0
                Насколько я помню, для собственно входа на терминальный сервер не нужно включать использование локальных устройств/карт. Это нужно только, когда вы хотите пробросить карту в терминальную сессию для использования ее внутри удаленного рабочего стола.
                • 0
                  По умолчанию смарт-карты переносятся в сеанс, поэтому на самом деле да, ничего включать не нужно.
                • 0
                  Не совсем так. В RDP сеансе не будут работать удаленные карты, подключенные к хосту. RDP запрещает так делать. Локальные токены и карты пробрасывать в RDP сеанс можно при защищенном соединении.
                  • 0
                    http://www.rohos.com/support/rohos-logon-key-support/access-your-remote-desktop-in-a-secure-way-by-usb-stick-2/#4
                    Здесь токен перенаправляют в сеанс и все происходит на стороне сервера. Возможно есть разные варианты, но этот вполне пригоден даже для собственных поделок.
              • +1
                Наверное, не стоит бросаться подобными фразами:
                Например, PIN-код от токена можно диктовать по телефону другим лицам

                А использовать более аккуратные формулировки.
                • 0
                  Хотелось бы поподробней про «Токен является уникальным некопируемым физическим объектом»
                  • 0
                    Строго говоря, нужно говорить в этом контексте о связке токена и сгенерированного на нем неизвлекаемого закрытого ключа.
                    • 0
                      строго говоря извлечь данные можно, но довольно таки сложно — http://russian-karding.ucoz.ru/forum/15-19-1
                      • 0
                        Так-то да, конечно. Вопрос в практической целесообразности на самом деле. Чтобы извлечь данные, нужно получить физический доступ к токену или карте. То есть, например, украсть. Если не рассматривать злонамеренного инсайдера, который поставил целью наделать дубликатов своей карты (вопрос — зачем?), пропажу карты или токена обнаружить куда проще, чем угон пароля. Это как раз дает время на реакцию, за которое можно успеть отозвать сертификат. Таким образом извлечение закрытого ключа аутентификации теряет практический смысл.
                        А в случае со злонамеренным инсайдером действия будут производиться от его имени. Реализация неотказуемости (non-repudation) от действий влечет ответственность за действия, произведенные с использованием закрытого ключа.
                        Извлекать ключи из карт имеет смысл в массовых сервисах типа платного спутникового телевидения для организации несанкционированного доступа к контенту. При этом обнаружить наличие дубликатов сложно, поскольку по факту абоненты не регистрируются в системе. То есть спутник вещает на всех, а карта используется просто для декодирования сигнала. Вот прямой экономический смысл. :)
                        • 0
                          А в случае со злонамеренным инсайдером действия будут производиться от его имени. Реализация неотказуемости (non-repudation) от действий влечет ответственность за действия, произведенные с использованием закрытого ключа.

                          Так в примере бывший сотрудник использует чужие данные — "Используя учетные данные бывшего коллеги и рабочий ноутбук", а если во время подготовки (узнать учетные данные другого сотрудника — логин — пароль) он так же скопировал токен?

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

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

                              • 0
                                Почему первый вход не будет обнаружен? Если коллега обнаружил пропажу токена или карты вовремя, то первого входа не будет.

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

                  Самое читаемое