Недавно заинтересовался темой смарт-карт. В интернете по этому поводу я нашел не очень много, поэтому решил написать небольшую заметку по организации аутентификации пользователей в windows, с помощью смарт-карт.
Ядром нашей системы будет корневой Ценр Сертификации (ЦС), который будет выдавать пользователям подписанные сертификаты и записывать их на смарт-карту. После этой процедуры будет возможно проходить аутентификацию в системе не по паролю, а используя карточку. Все данные на смарт карте шифруются на основе ключевой фразой — пин код, который устанавливается при записи сертификатов. Стоит отметить, что подойдут для такой системы не все смарт карты… Я немного ступил, когда купил просто микропроцессорные карты — windows отказалась записывать на них сертификаты. Это обстоятельство вынудило меня купить (на ebay.com) карточки gemsafe, которе я и использовал в своих экспериментах. Вот как они выглядят:

Так же нам потребуется card reader. В плане покупки с ним немного проще чем с карточками (можно купить в москве). В итоге был куплен omnikey 3021, на сайте smartcard.ru. Данная моделька очень проста и примитивна, но достаточно хорошо выполняют свою непосредственную задачу — чтение карт. Выглядит это чудо так:

Вся эта система работает под управлением Windwos Server 2003 (планирую настроить под Unix'ами).
Ну вроде бы девайсы немного описал, поэтому предлагаю перейти к настройке windows.
Предполагаю, что у Active Directory уже установлена и настроена (в интернете полно информации по этому поводу). Для реализации нашей идеи необходимо установить службу сертификации, для чего идем в: «панель управления»->«установка и удаление программ»->«установка компонентов windows». Далее выбираем: «Службы сертификации», а так же «Сервер приложений». «Сервер приложений» необходим для установки службы IIS, которая потребуется для возможности запросов сертификатов через www.

Приступаем к установке. Так как мы поднимаем свой первый ЦС, то на запрос типа ЦС выбираем «Корневой ЦС»:

Ввводим имя центра сертификации:

Указываем пути к базе данных сертификатов и журнала:

Дальше начинается установка и, спустя некоторое время, вылезает менюшка с вопросом включать поддержку asp или нет. Нужно ответить утвердительно, так как asp на понадобится для выдачи сертификатов. Вот и вся установка.

В консоли управления Центра Сертификации:

нужно создать два шаблона сертификатов:

«Агент подачи заявок»:

и «Пользователь со смарт-картой»:

Теперь можно переходить к основному — выдачи сертификатов.
Заходим на наш IIS сервер: localhost/certsrv:

Выбираем «запрос сертификата»:

Далее выбираем «расширенный запрос сертификата»:

После чего «Создать и выдать запрос к этому ЦС». В поле «Шаблон Сертификата» выбираем «Агент подачи заявок», который позволит нам выпускать сертификаты для пользователей:

Далее запрашиваем сертификат (нажмите да), после чего устанавливаем их:




Для этого необходимо снова зайти на localhost/certsrv, после чего «запрос сертификата»->«Расширенный запрос сертификата»->«Запрос сертификата для смарт-карты ...». В качестве шаблона выбираем «Пользователь со смарт-картой», в качестве CSP — «Gemplus GemSafe». После чего выбираем заявляемого пользователя (я выбрал Администратора) и жмем кнопку «заявка»:

На запрос пин кода, вводим 1234 (по дефолту) и нажимаем OK:

Если немного подождать, то страничка загрузится с сообщением об успешном завершении:

Можно посмотреть на выданный сертификат:

Если хочется, то в настройках «Политики безопасности домена»:

Можно установить действие, которое будет выполнено при изъятии пользователем смарт-карты:

Вот так выглядит окно входа в систему:

Рядом с клавиатуркой изображен card reader. Вставляем только что созданную смарт карту и вводим пин:

И все — мы в системе!
Как я уже сказал это заметка, поэтому здесь не дается больших и глобальных пояснений. Надеюсь, что кому-нибудь пригодится.
Ядром нашей системы будет корневой Ценр Сертификации (ЦС), который будет выдавать пользователям подписанные сертификаты и записывать их на смарт-карту. После этой процедуры будет возможно проходить аутентификацию в системе не по паролю, а используя карточку. Все данные на смарт карте шифруются на основе ключевой фразой — пин код, который устанавливается при записи сертификатов. Стоит отметить, что подойдут для такой системы не все смарт карты… Я немного ступил, когда купил просто микропроцессорные карты — windows отказалась записывать на них сертификаты. Это обстоятельство вынудило меня купить (на ebay.com) карточки gemsafe, которе я и использовал в своих экспериментах. Вот как они выглядят:

Так же нам потребуется card reader. В плане покупки с ним немного проще чем с карточками (можно купить в москве). В итоге был куплен omnikey 3021, на сайте smartcard.ru. Данная моделька очень проста и примитивна, но достаточно хорошо выполняют свою непосредственную задачу — чтение карт. Выглядит это чудо так:

Вся эта система работает под управлением Windwos Server 2003 (планирую настроить под Unix'ами).
Ну вроде бы девайсы немного описал, поэтому предлагаю перейти к настройке windows.
1. Установка компонентов.
Предполагаю, что у Active Directory уже установлена и настроена (в интернете полно информации по этому поводу). Для реализации нашей идеи необходимо установить службу сертификации, для чего идем в: «панель управления»->«установка и удаление программ»->«установка компонентов windows». Далее выбираем: «Службы сертификации», а так же «Сервер приложений». «Сервер приложений» необходим для установки службы IIS, которая потребуется для возможности запросов сертификатов через www.
Приступаем к установке. Так как мы поднимаем свой первый ЦС, то на запрос типа ЦС выбираем «Корневой ЦС»:
Ввводим имя центра сертификации:
Указываем пути к базе данных сертификатов и журнала:
Дальше начинается установка и, спустя некоторое время, вылезает менюшка с вопросом включать поддержку asp или нет. Нужно ответить утвердительно, так как asp на понадобится для выдачи сертификатов. Вот и вся установка.
2. Добавление шаблонов.
В консоли управления Центра Сертификации:
нужно создать два шаблона сертификатов:
«Агент подачи заявок»:
и «Пользователь со смарт-картой»:
Теперь можно переходить к основному — выдачи сертификатов.
3. Установка сертификата.
Заходим на наш IIS сервер: localhost/certsrv:
Выбираем «запрос сертификата»:
Далее выбираем «расширенный запрос сертификата»:
После чего «Создать и выдать запрос к этому ЦС». В поле «Шаблон Сертификата» выбираем «Агент подачи заявок», который позволит нам выпускать сертификаты для пользователей:
Далее запрашиваем сертификат (нажмите да), после чего устанавливаем их:
4. Выпуск сертификата пользователя.
Для этого необходимо снова зайти на localhost/certsrv, после чего «запрос сертификата»->«Расширенный запрос сертификата»->«Запрос сертификата для смарт-карты ...». В качестве шаблона выбираем «Пользователь со смарт-картой», в качестве CSP — «Gemplus GemSafe». После чего выбираем заявляемого пользователя (я выбрал Администратора) и жмем кнопку «заявка»:
На запрос пин кода, вводим 1234 (по дефолту) и нажимаем OK:
Если немного подождать, то страничка загрузится с сообщением об успешном завершении:
Можно посмотреть на выданный сертификат:
5. Изменении групповой политики.
Если хочется, то в настройках «Политики безопасности домена»:
Можно установить действие, которое будет выполнено при изъятии пользователем смарт-карты:
6. Тестирование.
Вот так выглядит окно входа в систему:

Рядом с клавиатуркой изображен card reader. Вставляем только что созданную смарт карту и вводим пин:

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