Смарт карта что это за служба
Техническая справка по смарт-картам
Применяется к: Windows 10, Windows 11, Windows Server 2016 и выше
Технический справочник smart Card описывает инфраструктуру Windows для физических смарт-карт и работу компонентов, связанных с смарт-картами, в Windows. В этом документе также содержатся сведения о средствах, которые разработчики и администраторы информационных технологий могут использовать для устранения неполадок, отладки и развертывания сильной проверки подлинности на основе смарт-карт на предприятии.
Аудитория
В этом документе объясняется, как Windows инфраструктура смарт-карт. Чтобы понять эту информацию, необходимо иметь базовые знания об инфраструктуре общедоступных ключей (PKI) и понятиях смарт-карт. Этот документ предназначен для:
Enterprise ИТ-разработчиков, менеджеров и сотрудников, которые планируют развертывание или использование смарт-карт в своей организации.
Поставщики смарт-карт, которые пишут минидрайверы смарт-карт или поставщики учетных данных.
Что такое смарт-карты?
Смарт-карты — это переносные портативные устройства, которые могут повысить безопасность таких задач, как проверка подлинности клиентов, подписание кода, защита электронной почты и вход с Windows учетной записью домена.
Хранилище с устойчивостью к взлому для защиты частных ключей и других форм личной информации.
Изоляция критически важных для безопасности вычислений, которые включают проверку подлинности, цифровые подписи и обмен ключами с других частей компьютера. Эти вычисления выполняются на смарт-карте.
Переносимость учетных данных и другой личной информации между компьютерами на работе, дома или в пути.
Смарт-карты можно использовать для входов только в учетные записи домена, а не для локальных учетных записей. При использовании пароля для интерактивного доступа к учетной записи домена Windows для проверки подлинности используется протокол Kerberos версии 5 (v5). При использовании смарт-карты операционная система использует проверку подлинности Kerberos v5 с сертификатами X.509 v3.
Виртуальные смарт-карты были Windows Server 2012 и Windows 8 для облегчения необходимости физической смарт-карты, средства чтения смарт-карт и связанного администрирования этого оборудования. Сведения о технологии виртуальных смарт-карт см. в обзоре виртуальных смарт-карт.
Смарт-карты для службы Windows
Применяется к: Windows 10, Windows 11, Windows Server 2016 и выше
В этом разделе для ИТ-специалистов и разработчиков смарт-карт описывается, как смарт-карты для Windows службы (ранее называлась Smart Card Resource Manager) управляют взаимодействием с читателями и приложениями.
Служба Smart Cards для Windows предоставляет базовую инфраструктуру для всех остальных компонентов смарт-карт, так как управляет считыватели смарт-карт и взаимодействия приложений на компьютере. Он полностью соответствует спецификациям, задамым pc/SC Workgroup. Сведения об этих спецификациях см. на сайте Pc/SC Workgroup Specifications.
Служба Smart Cards for Windows работает в контексте локальной службы и реализуется в качестве общей службы процесса хост-службы (svchost). Смарт-карты для Windows, Scardsvr, имеет следующее описание службы:
**** Примечание Чтобы winscard.dll как подходящий установщик класса, файл INF для чтения смарт-карт должен указать следующее для класса и ClassGUID:
Class=SmartCardReader
ClassGuid=
По умолчанию служба настроена для ручного режима. Создателям драйверов чтения смарт-карт необходимо настроить свои INF-файлы, чтобы они запускали службу автоматически, а winscard.dll файлы вызывали заранее установленную точку входа, чтобы запустить службу во время установки. Точка входа определяется как часть класса SmartCardReader и не называется напрямую. Если устройство рекламирует себя как часть этого класса, точка входа автоматически вызывается для запуска службы при вставке устройства. Использование этого метода гарантирует, что служба включена при необходимости, но также отключена для пользователей, не использующих смарт-карты.
Когда служба запущена, она выполняет несколько функций:
Он регистрируется для уведомлений службы.
Он регистрируется для уведомлений Plug and Play (PnP), связанных с удалением и добавлениями устройств.
Он инициализирует кэш данных и глобальное событие, которое сигнализирует о начале службы.
**** Примечание Для реализации смарт-карт рассмотрите возможность отправки всех Windows операционных систем с помощью считывателей смарт-карт через службу Smart Cards для Windows. Это обеспечивает интерфейс для отслеживания, выбора и связи со всеми драйверами, которые объявляют себя членами группы устройств чтения смарт-карт.
Смарт-карты для Windows классифицируют каждый слот чтения смарт-карт как уникальный читатель, и каждый слот также управляется отдельно, независимо от физических характеристик устройства. Служба Smart Cards для Windows обрабатывает следующие действия высокого уровня:
Оповещание клиентов о новых читателях
Сериализация доступа к читателям
Доступ к смарт-картам
Туннельные работы с командами, определенными для чтения
Смарт-карты и службы удаленных рабочих столов
Применяется к: Windows 10, Windows 11, Windows Server 2016 и выше
В этом разделе для ИТ-специалистов описывается поведение служб удаленного рабочего стола при внедрении входной карточки.
Содержимое в этом разделе относится к версиям Windows, указанным в списке Applies To в начале этой темы. В этих версиях логика перенаправления смарт-карт и API WinSCard объединяются для поддержки нескольких перенаправленных сеансов в один процесс.
Поддержка смарт-карт необходима, чтобы включить многие сценарии удаленных настольных служб. К ним можно отнести следующие.
Использование служб быстрого переключения пользователей или служб удаленного рабочего стола. Пользователь не может установить удаленное десктопное подключение на основе смарт-карт. То есть попытка подключения не удалась при быстром переключении пользователей или в сеансе удаленной службы настольных компьютеров.
Включение шифрования файловой системы (EFS) для поиска читателя смарт-карт пользователя в локальном органе безопасности (LSA) в процессе быстрого переключения пользователей или в сеансе удаленной службы настольных компьютеров. Если EFS не может найти читателя или сертификата смарт-карт, EFS не может расшифровать файлы пользователей.
Перенаправление служб удаленного рабочего стола
В сценарии удаленного рабочего стола пользователь использует удаленный сервер для запуска служб, а смарт-карта локализуется на компьютере, который использует пользователь. В сценарии регистрации смарт-карт служба смарт-карт на удаленном сервере перенаправляется на считыватель смарт-карт, подключенный к локальному компьютеру, на котором пользователь пытается войти.
Удаленное перенаправление настольных компьютеров
Заметки о модели перенаправления:
Этот сценарий — удаленный сеанс регистрации на компьютере с службами удаленного рабочего стола. В удаленном сеансе (помеченном как «Клиентская сессия»), пользователь запускает чистое использование /smartcard.
Стрелки представляют поток ПИН-кода после того, как пользователь ввел ПИН-код в командной подсказке, пока не достигнет смарт-карты пользователя в считывателье смарт-карт, подключенном к клиентского компьютера удаленного рабочего стола (RDC).
Проверка подлинности выполняется LSA в сеансе 0.
Обработка CryptoAPI выполняется в LSA (Lsass.exe). Это возможно, так как перенаправление RDP (rdpdr.sys) позволяет использовать контекст за сеанс, а не за один процесс.
Компоненты WinScard и SCRedir, которые были отдельными модулями в операционных системах раньше Windows Vista, теперь включены в один модуль. Библиотека ScHelper — это оболочка CryptoAPI, специфическая для протокола Kerberos.
Решение о перенаправлении принимается на основе контекста смарт-карты на основе сеанса потока, который выполняет вызов SCardEstablishContext.
Изменения в WinSCard.dll были внесены в Windows Vista для улучшения перенаправления смарт-карт.
RD Session Host server single sign-in experience
В соответствии с общими критериями клиент RDC должен быть настроен на использование диспетчера учетных данных для приобретения и сохранения пароля пользователя или ПИН-кода смарт-карты. Соблюдение общих критериев требует, чтобы приложения не получили прямой доступ к паролям или ПИН-коду пользователя.
Соблюдение общих критериев требует специально, чтобы пароль или ПИН-код никогда не оставьте LSA незашифрованным. Распределенный сценарий должен разрешить пароль или ПИН-код для перемещения между одним доверенным LSA и другим, и его нельзя расшифровать во время транзита.
Когда для сеансов удаленной службы настольных компьютеров используется один вход с включенной смарт-картой, пользователям по-прежнему необходимо войти для каждого нового сеанса служб удаленного рабочего стола. Однако пользователю не предложен пин-код для создания сеанса удаленной службы настольных компьютеров. Например, когда пользователь дважды щелкает значок Microsoft Word документа, который находится на удаленном компьютере, пользователю предлагается ввести ПИН-код. Этот ПИН-код отправляется с помощью защищенного канала, созданного SSP учетных данных. ПИН-код передается клиенту RDC по безопасному каналу и отправляется в Winlogon. Пользователь не получает дополнительных подсказок для ПИН-кода, если ПИН-код не является неправильным или есть ошибки, связанные с смарт-картами.
Удаленные службы настольных компьютеров и вход смарт-карт
Службы удаленного рабочего стола позволяют пользователям войти с помощью смарт-карты, введя ПИН-код на клиентский компьютер RDC и отправив его на хост-сервер сеанса RD таким образом, как проверка подлинности, основанная на имени пользователя и пароле.
Кроме того, для входа в смарт-карты необходимо включить параметры групповой политики, которые являются специфическими для служб удаленного рабочего стола.
Чтобы включить вход смарт-карты на сервер удаленного рабочего стола (RD Session Host), сертификат Центра рассылки ключей (KDC) должен присутствовать на клиентном компьютере RDC. Если компьютер не находится в одном домене или в группе, для развертывания сертификата можно использовать следующую команду:
Общее имя DSCDPContainer (CN) обычно является именем органа сертификации.
Сведения об этом параметре для средства командной строки см. в пункте dsPublish.
Удаленные службы настольных компьютеров и вход смарт-карт в доменах
Чтобы включить удаленный доступ к ресурсам предприятия, корневой сертификат для домена должен быть задан на смарт-карте. С компьютера, который присоединяется к домену, запустите следующую команду в командной строке:
Для служб удаленного рабочего стола в различных доменах сертификат KDC хост-сервера сеанса RD также должен присутствовать в магазине NTAUTH клиентского компьютера. Чтобы добавить магазин, запустите следующую команду в командной строке:
Где сертификата KDC.
**** Примечание Если вы используете SSP учетных данных на компьютерах с поддерживаемой версией операционной системы, указанной в списке Applies To в начале этого раздела. Чтобы войти со смарт-картой с компьютера, не присоединився к домену, смарт-карта должна содержать корневую сертификацию контроллера домена. Безопасный канал инфраструктуры общедоступных ключей (PKI) невозможно установить без корневой сертификации контроллера домена.
Вход в службы удаленного рабочего стола в домене работает только в том случае, если УПЛ в сертификате использует следующую форму: @
UpN в сертификате должен включать домен, который можно разрешить. В противном случае протокол Kerberos не может определить, к каков домену обращаться. Эту проблему можно решить, включив подсказки домена GPO X509. Дополнительные сведения об этом параметре см. в группе политики и реестра смарт-карт Параметры.
Устранение неполадок смарт-карт
Применяется к: Windows 10, Windows 11, Windows Server 2016 и выше
В этой статье рассказывается о средствах и службах, которые разработчики смарт-карт могут использовать для выявления проблем с сертификатами при развертывании смарт-карт.
Отладка и отслеживание проблем смарт-карт требуют различных средств и подходов. В следующих разделах указаны инструменты и подходы, которые можно использовать.
Certutil
Полное описание Certutil, включая примеры, которые показывают, как его использовать, см. в примере Certutil [W2012].
Сертификаты списка, доступные на смарт-карте
Ввод ПИН-кода не требуется для этой операции. Вы можете нажать ESC, если вам будет предложен ПИН-код.
Удаление сертификатов на смарт-карте
Каждый сертификат заключен в контейнер. При удалении сертификата на смарт-карте удаляется контейнер для сертификата.
Чтобы удалить контейнер, введите certutil-delkey-csp «Microsoft Base Smart Card Crypto Provider»
Отладка и отслеживание с помощью WPP
WPP упрощает отслеживание работы поставщика трассировки. Он предоставляет поставщику трассировки механизм для входа двоичных сообщений в режиме реального времени. Зарегистрированные сообщения можно преобразовать в понятный для человека след операции. Дополнительные сведения см. в блоге Diagnostics with WPP — блог NDIS.
Включить трассировка
С помощью WPP используйте одну из следующих команд, чтобы включить отслеживание:
Параметры можно использовать в следующей таблице.
| Понятное имя | Код GUID | Флажки |
|---|---|---|
| scardsvr | 13038e47-ffec-425d-bc69-5707708075fe | 0xffff |
| winscard | 3fce7c5f-fb3b-4bce-a9d8-55cc0ce1cf01 | 0xffff |
| basecsp | 133a980d-035d-4e2d-b250-94577ad8fced | 0x7 |
| scksp | 133a980d-035d-4e2d-b250-94577ad8fced | 0x7 |
| msclmd | fb36caf4-582b-4604-8841-9263574c4f2c | 0x7 |
| credprov | dba0e0e0-505a-4ab6-aa3f-22f6f743b480 | 0xffff |
| certprop | 30eae751-411f-414c-988b-a8bfa8913f49 | 0xffff |
| scfilter | eed7f3c9-62ba-400e-a001-658869df9a91 | 0xffff |
| wudfusbccid | a3c09ba3-2f62-4be5-a50f-8278a646ac9d | 0xffff |
Чтобы включить трассировку для службы SCardSvr:
Чтобы включить трассировку для scfilter.sys:
Остановка трассировки
С помощью WPP используйте одну из следующих команд, чтобы остановить трассировку:
Примеры:
Чтобы остановить след:
Протокол Kerberos, KDC и отладка и отслеживание NTLM
Эти ресурсы можно использовать для устранения неполадок этих протоколов и KDC:
Протокол NTLM
Чтобы включить трассировку для проверки подлинности NTLM, запустите следующую команду в командной строке:
Чтобы остановить отслеживание для проверки подлинности NTLM, запустите эту команду:
Проверка подлинности Kerberos
Чтобы включить трассировку для проверки подлинности Kerberos, запустите эту команду:
Чтобы остановить отслеживание проверки подлинности Kerberos, запустите эту команду:
Чтобы включить трассировку для KDC, запустите следующую команду в командной строке:
Чтобы остановить отслеживание для KDC, запустите следующую команду в командной строке:
Настройка отслеживания с помощью реестра
Вы также можете настроить трассировку, редактировать значения реестра Kerberos, показанные в следующей таблице.
| Элемент | Параметр ключа реестра |
|---|---|
| Протокол NTLM | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 Имя значения: NtLmInfoLevel Тип значения: DWORD Данные значения: c0015003 |
| Kerberos | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos Имя значения: LogToFile Тип значения: DWORD Данные значения: 00000001 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters |
| KDC | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc Имя значения: KdcDebugLevel Тип значения: DWORD Данные значения: c0000803 |
Если вы использовали, посмотрите следующий файл журнала в текущем Tracelog каталоге: kerb.etl/kdc.etl/ntlm.etl.
Если вы использовали параметры ключей реестра, показанные в предыдущей таблице, посмотрите на файлы журнала трассировки в следующих расположениях:
Служба смарт-карт
Служба диспетчера ресурсов смарт-карт работает в контексте локальной службы. Он реализуется в качестве общей службы процесса хост-службы (svchost).
Чтобы проверить, запущена ли служба Смарт-карты
Нажмите кнопку CTRL+ALT+DEL, а затем выберите start Task Manager.
В диалоговом окне Windows Диспетчер задач выберите вкладку Services.
Выберите столбец Name для сортировки списка в алфавитном порядке, а затем введите s.
В столбце Имя посмотрите на SCardSvr, а затем посмотрите в столбце Состояние, чтобы узнать, запущена или остановлена служба.
Перезапуск службы смарт-карт
Запустите в качестве администратора в командной подсказке.
Если появится диалоговое окно «Управление учетной записью пользователя», подтвердите, что отображаемая в нем акция является нужным, а затем выберите Да.
В следующем примере кода приводится пример вывода из этой команды:
Считыватели смарт-карт
Как и любое устройство, подключенное к компьютеру, диспетчер устройств можно использовать для просмотра свойств и начала процесса отлаговки.
Чтобы проверить, работает ли считыватель смарт-карт
Перейдите к компьютеру.
Щелкните правой кнопкой мыши Компьютер, а затем выберите Свойства.
В статье Задачивыберите диспетчер устройств.
В диспетчере устройств раздайте считывателисмарт-карт, выберите имя считывателей смарт-карт, которые необходимо проверить, а затем выберите Свойства.
Если считыватель смарт-карт не указан в диспетчере устройств, в меню Action выберите scan для изменения оборудования.
Диагностика CryptoAPI 2.0
Диагностика CryptoAPI 2.0 доступна в Windows версиях, которые поддерживают CryptoAPI 2.0 и могут помочь устранить проблемы с инфраструктурой ключей общего ключевых (PKI).
CryptoAPI 2.0 Диагностика регистрит события в журнале Windows событий. Журналы содержат подробные сведения о проверке цепочки сертификатов, операциях хранения сертификатов и проверке подписи. Эта информация упрощает определение причин проблем и сокращает время, необходимое для диагностики.
Дополнительные сведения о диагностике CryptoAPI 2.0 см. в Enterprise PKI.
Смарт-карты. Часть 1. Принципы работы
Все мы пользуемся разными видами смарт-карт в повседневной жизни. Наиболее яркими примерами смарт-карт являются: SIM-карты, кредитные карты, электронные документы и т.д.
По сути, смарт-карта — это оптимизированный для криптографии микроконтроллер с повышенным уровнем безопасности. Что это означает? В отличие от стандартного микроконтроллера доступ к памяти смарт-карты строго контролируется процессором. Таким образом, чтение данных с карты их написание на ней регулируются ПО самой карты. Более того, производители чипов предпринимают меры по предотвращению несанкционированного доступа (копирования всей памяти, перепрограммирования) к карте на электронном и физическом уровне.
Применение смарт-карты
Смарт-карта используется в тех случаях, когда необходимо удостоверить подлинность ее обладателя. Примером тому служит SIM-карта. Ее главной ролью является доказать оператору, что телефон, подключившийся к сети, принадлежит конкретному абоненту. После подобной проверки оператор сможет направлять коммуникацию с номера и на номер абонента именно тому телефону, а также регистрировать платежный баланс абонента.
Работа смарт-карты
Карты не работают автономно, а только в связке с так называемым терминалом (телефон, банкомат, иной проводной или беспроводной электронный читатель). Читатель обеспечивает карту электричеством и посылает команды. Карта никогда не инициирует коммуникацию, а всегда обязательно отвечает на любые посланные ей терминалом команды. В случае отсутствия ответа карта будет считаться «MUTED», т.е. не работающей. В подобной ситуации терминал либо никак не реагирует на ошибку, либо пытается восстановить общение с картой после осуществления RESET.
На логическом уровне коммуникация между терминалом и картой происходит в формате APDU, описанном стандартом ISO7816-4. Что касается физического уровня, то выше упомянутое общение регулируется не каким-то одним определенным стандартом, а их множеством. К примеру, существуют стандарты для контактного (ISO7816-3 T=0 и T=1, USB и т.д.) и бесконтактного (ISO14443, NFC/SWP) общения.
Карты Native и Javacard
Некоторые смарт-карты выходят в производство с уже заранее установленными на них и не подлежащими изменению, дополнению, либо удалению одной или более программами, предназначенными для исполнения конкретных функций (SIM и USIM, EMV и т.д.). Подобные карты, носящие название Native, являются привлекательными благодаря их низкой цене (при оптовых закупках) и относительной простоте используемого для их программирования кода, что уменьшает вероятность проблем с безопасностью карты. Однако наиболее интересными, на мой взгляд, картами являются карты на основе JavaCard и Global Platform, в которых ОС карты — это платформа, на которой можно установить различные приложения. Приложения, написанные для JavaCard, с использованием стандартных API, можно будет загрузить на все карты, поддерживающие совместимую версию платформы, вне зависимости от производителя карты. Что касается Global Platform, то это набор спецификаций, регулирующий безопасную администрацию карты, в том числе установку, блокировку либо удаление тех или иных приложений, а также управление жизненным циклом (Life Cycle) карты.
Маленькое примечание по поводу администрации карты. Пользователь карты, как правило, не является владельцем и администратором карты. К примеру, администратором SIM-Карты является оператор мобильной связи, а не абонент. Только оператор имеет право устанавливать или удалять приложения на/с карты. Тем не менее, существует также возможность приобрести «пустые» карты для собственной разработки приложений.
Таким образом, в данной части своей статьи я коснулся базиса работы смарт-карты, как на внешнем, так и на внутреннем уровне, а также дал краткое определение понятия смарт-карты. Следующие части статьи я хотел бы посвятить:
