Содержание
Оглавление | ||
---|---|---|
|
Описание: обеспечение доступа к смарт-картам через PC/SC (фоновая служба).
Назначение: Служба PC/SC используется для динамического подключения/отключения драйверов считывателей смарт-карт «на лету» и управления соединениями со считывателями.
Глобальные настройки
Для обеспечения возможности работы службы pcscd с ненулевой меткой безопасности в конфигурационный файл /lib/systemd/system/pcscd.socket в секцию [socket] добавить параметр CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK:
Блок кода |
---|
[Socket] ... CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK |
И перезапустить службу:
Command |
---|
systemctl daemon-reload systemctl stop pcscd.service systemctl stop pcscd.socket systemctl start pcscd.service |
После запуска сервиса pcscd убедиться, что ей присвоен атрибут ehole. Для этого воспользуйтесь командой:
Command |
---|
sudo pdp-ls -Ma /var/run/pcscd/pcscd.comm |
Примечание | ||||
---|---|---|---|---|
1) Атрибуты файле pcscd.comm, должно быть таким:
2) В ином случае следует удалить pcscd.comm командой:
и перезагрузить ПК. |
Проверка
Для проверки, следует зайти под пользователем с ненулевой меткой безопасности и обратиться к токену, например, с командой:
Command |
---|
opensc-explorer |
В случае успеха, Opensc explorer сообщит, что обратился к слоту с токеном:
Блок кода |
---|
root@smolensk: # opensc-explorer OpenSC Explorer version 0.16.0 Using reader with a card: Aktiv Rutoken ECP 00 00 OpenSC [3F00]> |
Запуск с определенным уровнем конфиденциальности
Для запуска сервиса службы с определенной ненулевой классификационной меткой, файл /lib/systemd/system/pcscd.service следует привезти к виду:
Блок кода |
---|
[Unit] Description=PC/SC Smart Card Daemon [Service] ExecStart=/usr/sbin/pcscd --foreground ExecReload=/usr/sbin/pcscd --hotplug PDPLabel=1:63:0 [Install] WantedBy=multi-user.target |
Информация |
---|
PDPLabel=<Уровень>:<Уровень целостности>:<Категории> |
Примечание |
---|
В блоке кода, указан пример с запуском службы pcscd с иерархическим уровнем конфиденциальности равным единице. |
После чего перезапустить службу:
Command |
---|
sudo systemctl daemon-reload sudo systemctl restart pcscd.service |