Smart card reader linux

Installation of smart card reader and smart card drivers in Linux

Съдържание

Installing the driver for the reader

All readers, offered by InfoNotary EAD have drivers for Linux, which can be downloaded from the website of the manufacturer’s — OmniKey or ACS. In some cases, these drivers can be installed directly through the packaging system of your distribution.

Installation of PC / SC

Regardless of the model of your reader, you will need to install the package ‘pcscd’. This is the daemon through which programs work with the reader and smart card respectively. After installation of the new driver for the reader must restart pcscd. If you install drivers from the package, it will probably restart daemon.

In some distributions, together with the installation of pcscd installed and alternate demon Management readers — ‘openct’. For correct operation of the reader will have to deinstalrate or if it can not be done without removing and pcscd, forbid him to run.

Types of readers

OmniKey

To use smart card readers on OmniKey Linux, you will need to install the official driver OmniKey instead of libccid that is included in most distributions.

If you use Debian, Ubuntu or Mint you can install it directly from our apt repository. Package name is pcsc-omnikey. After this package is installed you can proceed directly to installation of smart card driver.

If you use different distribution or prefer to install driver manually, you can now download it from their site or from Reader drivers. Before you install the driver must have installed ‘pcscd and you uninstalled or disabled ‘openct.

At the output of the command lsusb these readers appear in the following ways:

Each reader with ID starting with 076b work with the same driver.

Driver installation

HID Global did not provide standard installation packages for Linux, so to install the driver must take the following steps:

  1. Unzip the downloaded tar.gz package in your home folder. This is the folder with your user name.
  2. Open a terminal and change the working folder to that obtained decompressing. 64 bit version is the command cd

/ifdokccid_linux_x86_64-v4.1.5 , and for 32 bit is cd

/ifdokccid_linux_i686-v4.1.5 . In case you unzip it to another folder, you can type in the terminal «cd», to grab the folder from the file manager and to drag and drop on the terminal. This will give you the correct command.

  • Run the command sudo ./install to install or su -c ./install if you dont use sudo.
  • Restart the daemon with the command sudo service pcscd restart .
  • Setting up pcscd to run the system

    If you are using Ubuntu 11.04, 11.10 or 04.12 will need to set pcscd to run with the system. If you use another distribution or version of Ubuntu skip to the next section — remove libccid. In these versions of Ubuntu daemon is configured to run as a normal user, but the driver of HID Global can not work that way. This is done by changing the init script pcscd (/etc/init.d/pcscd). You can open this file with the command sudo gedit /etc/init.d/pcscd . You can find this section:

    and put # at the beginning of the line „exit 0“:

    After this change, you must stop all running instances of pcscd and drop it from the boot script. In Ubuntu this is achieved by the consistent release of the following commands sudo killall pcscd and sudo service pcscd start .

    Remove libccid

    In some distributions free reader driver libccid is installed with pcscd. It does not work correctly with these readers, so if you don’t use a reader that works only through libccid, uninstall it. In order not to remove the demon when uninstalling libccid, you can install any other package providing pcsc-ifd-handler — for example libacr38u. The exact command for Ubuntu is sudo apt-get install libacr38u && sudo apt-get remove libccid .

    If in the distribution you use, you can not remove libccid, without removing pcscd, you will need to remove or disable the driver manually. This is the situation with some versions of Red Hat, Fedora and their derivate distributions.

    More destructive option is to simply delete the driver from the pcscd folder. In Fedora it is /usr/lib/pcsc/drivers/ifd-ccid.bundle or /usr/lib64/pcsc/drivers/ifd-ccid.bundle in x86_64 version. With the following command you can move it to the home folder — H=$HOME; sudo mv /usr/lib/pcsc/drivers/ifd-ccid.bundle $H . In case you want to use another reader that works only through libccid, you can not uninstall it. Instead you need to remove the description of the OmniKey readers from libccid configuration file — /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist. The easiest way to do this is to replace every occurrence of the string 0x076B with 0xFFFF. If you disable libccid this way, note that the changes in its configuration file will be lost after update.

    Testing Installation

    To check which one driver using pcscd, you need to run in debug mode with parameters-fd. For example, on Ubuntu this can be done this way — sudo /usr/sbin/pcscd -f . In the output of this command should have something like this:

    If this sign is not show than the driver of Omnikey is not loaded. Most likely reason for this is that you have installed some of the following libccid or openct. In most cases when you delete this packages the problem is fixed.

    ACR38U and some versions of ACR38T are not CCID compatible, for them you have to install the drivers from here or in folder Drivers/Linux/ACS on the CD. They are also include in Debian and Ubuntu, and the name of the package is libacr38u.

    The result of the command lsusb this readers are shown this way:

    ACR 38C

    If you reader is labeled ACR38C-SPC-R on the bottom side, or it has a sign SIMLector 38T on the outside of the reader or sign mLector-S then he is CCID compatible and it is supported by libccid. Most likely the package containing this driver is called libccid or just ccid. Altought through libccid, this readers can work, they can work also with drivers supported from their manifactorer — libacsccid1. It is a free software. In case you use both Omnikey and ACS it is best to use libacsccid1 instead libccid.

    For this readers lsusb the result is:

    Installing smart card drivers

    According to what is the model of your card, you have to use different software. If the model of the card is „T&S DS/2048 (L)“, you have to install bit4id-ipki from folder Install/Linux on CD or from our repository. If the model is „CardOS V4.3B (C)“, you will have to install OpenSC.

    To check smart card model you can use pcsc_scan. This program shows what reader and cards are plugged. In Debian and Ubuntu it is contained in package pcsc-tools. If it shows Siemens CardOS V4.3B, you must use OpenSC. If it says Universita’ Degli Studi di Torino (Infocert), you must use bit4id-ipki.

    OpenSC 0.16 and later versions expect reader driver to provide information for hardware capabilities contrary to the PC / SC standard. If you are using OpenSC with OmniKey reader you must set maximum message size manually in configuration file. In section reader_driver pcsc you must uncomment max_send_size and max_recv_size and set bot variables to at least 300 bytes:

    More information is available in OpenSC issue and relevant part of PC/SC specification.

    Installation check

    If you have problem using your certificate, you can run the following program to identify it:

    It can send information directly to us. After report is accepted, it will show nine digit number, that can be used by our support team to see test result. If you do not have Internet connection or direct sending failed, you can save report and send it to support@infonotary.com.

    Reader and card should be connected to the computer when test program is started.

    This program uses one of following packages to show its user interface — python-tk for Debian/Ubuntu, tkinter for Fedora/RedHat or zenity. If you do not have any of them installed, it will still work, but only from terminal.

    Источник

    Смарт-карты для входа на Ubuntu

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

    Одно из самых популярных применений смарт-карт — контроль доступа в здания и к компьютерным системам. Таким образом они используются, например, в правительстве США. Государственные учреждения обязаны соблюдать строгие правила безопасности, которые требуют надежную аутентификацию для доступа к конфиденциальным или ценным данным, хранящимся в ИТ-системах. Компании, которые работают с такими учреждениями, тоже должны соблюдать эти требования. Смарт-карты могут содержать сертификаты, пары открытого и закрытого ключей, PIN-коды и биометрические данные, например отпечатки пальцев и фотографию. Они действуют как уникальные идентификаторы при входе в здания или на компьютеры. Чипы на некоторых смарт-картах даже обеспечивают шифрование по стандарту FIPS 140-2.

    Смарт-карты предлагают следующие преимущества:

    Подтверждение личности с помощью секретных или уникальных данных, известных только уполномоченным сторонам

    Проверка отсутствия изменений в данных.

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

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

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

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

    Предварительные требования

    Программное обеспечение на клиенте смарт-карты

    Установите следующие пакеты, чтобы получить доступ к конфигурации смарт-карты на Ubuntu:

    libccid обеспечивает взаимодействие с ридерами смарт-карт CCID через менеджер ресурсов PC/SC Lite (pcscd);

    csc-tools содержит полезные инструменты для смарт-карт;

    opensc содержит утилиты для доступа к смарт-картам;

    opensc-pkcs11 содержит библиотеки для доступа к смарт-картам;

    libpam-pkcs11 предоставляет поддержку модуля PAM для входа с сертификатами X.509 с помощью PKCS 11.

    Оборудование для клиента

    Смарт-карта персональной идентификации PIV поддерживает FIPS 201 — стандарт для смарт-карт PIV в США. На сайте службы GSA опубликован список одобренных смарт-карт, которые можно использовать как PIV-карты. Карты приобретаются пустыми, а поставщики услуг по PIV добавляют на них учетные данные.

    В этой статье мы рассматриваем в качестве примера смарт-карту PIVKey C910. PIVKey совместима со стандартом FIPS 201 и реализует спецификацию командного интерфейса NIST SP 800-73 Part 3.

    Смарт-карта PIVKey содержит сертификат, пару открытого и закрытого ключей и PIN-коды для пользователя и администратора. В системах Linux карта доступна только для чтения. Вам потребуется инструмент администрирования PIVKey в Windows, чтобы загрузить на карту дополнительные сертификаты или изменить PIN-коды пользователя и администратора.

    Для чтения содержимого и учетных данных смарт-карты PIVKey использовался ридер смарт-карт Identiv SCR3310v2.0 USB.

    Настройка ридера смарт-карт

    Указание ридера смарт-карт

    После подключения ридера убедитесь, что операционная система распознает его, указав его с помощью opensc-tool.

    Вставьте смарт-карту в ридер и убедитесь, что она распознана.

    Конфигурация PAM

    Модуль pam_pkcs11 позволяет системам, поддерживаемым PAM, использовать сертификаты X.509 для проверки подлинности. Модуль использует библиотеку PKCS 11, например openscpkcs11, чтобы получать доступ к смарт-картам для извлечения нужных учетных данных.

    Процесс настройки pam_pkcs11:

    Сопоставьте сертификат с пользователем.

    Проверьте соответствие логина и пользователя.

    Настройка в PAM:

    Настройка модуля pam_pkcs11.

    Добавление центров сертификации (ЦС) и списков отзыва сертификатов (CRL).

    Настройка PAM для использования модуля pam_pkcs11.

    Добавление общего имени (CN) для логина.

    Настройка модуля pam_pkcs11

    Создайте файл конфигурации pam_pkcs11.

    Проверьте параметры модуля, cert_policy и use_pkcs11_module, определенные в записи pkcs11_module opensc <> в файле pam_pkcs11.conf. Параметр модуля должен содержать абсолютный путь к open-pkcs11.so в системе. Параметр cert_policy должен включать oscp в качестве одной из политик проверки сертификата.

    Сопоставители в модуле pam_pkcs11

    Модуль PAM позволяет использовать сертификаты для входа. В большинстве систем на базе Linux определены пользователи, и для входа используется имя пользователя. Поэтому нужен способ сопоставить сертификат с определенным пользователем в системе. Модуль pam_pkcs11 предоставляет различные сопоставители сертификатов для выполнения этой задачи. Каждый сопоставитель использует определенную информацию из сертификата для сопоставления с пользователем в системе. Можно даже использовать сразу несколько сопоставителей. В таком случае, если первый определенный сопоставитель не находит пользователя в системе, вступает следующий и так далее, пока пользователь не будет найден.

    В нашем примере мы используем сопоставитель pwent. Этот сопоставитель использует системный вызов getpwent(), чтобы изучить поля pw_name и pw_gecos каждого пользователя и найти соответствие имени CN. Если соответствие найдено, в качестве имени для входа возвращается pw_name. Затем этот результат сопоставляется с именем для входа PAM, чтобы определить, найдено ли соответствие.

    Задайте pwent в качестве сопоставителя в файле pam_pkcs11.conf, изменив существующую запись.

    Списки отзыва сертификатов и сертификаты ЦС

    Модуль pam_pkcs11 должен знать центры сертификации (ЦС) для валидации сертификатов. Списки отзыва сертификатов (CRL) необязательны, но их тоже можно использовать для валидации сертификатов. Для этого выполните следующие действия:

    Добавьте необходимые ЦС и списки CRL в каталоги, указанные в параметрах ca_dir и crl_dir в файле pam_pkcs11.conf.

    Создайте хеш-ссылки на ЦС и списки CRL.

    Примечание: В этой статье ЦС и списки CRL для PIVKey были экспортированы с сайта http://ca.pivkey.com/.

    Добавьте ЦС и списки CRL в соответствующие каталоги.

    Создайте хеш-ссылки с помощью утилиты pkcs11_make_hash_link.

    Настройка PAM

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

    Ubuntu Desktop с gdm3

    Модуль pam_pkcs11 можно интегрировать в стек PAM, чтобы использовать аутентификацию с помощью смарт-карт для входа через gdm3. Измените файл /etc/pam.d/gdm-password и включите модуль.

    Ubuntu Server только для входа

    Если указать sufficient в поле управления, будет использоваться следующий модуль PAM в стеке, если у пользователя нет смарт-карты для входа или вход с помощью смарт-карты не удался.

    Ubuntu Server для универсальной аутентификации

    При более строгом подходе может потребоваться аутентификация с помощью смарт-карты для всех сервисов входа или сервисов с поддержкой PAM. Многие сервисы PAM в каталоге /etc/ pam.d включают файл common-auth. Модуль pam_pkcs11 тоже можно разместить в этом файле, чтобы включить аутентификацию с помощью смарт-карты для всех сервисов, которые его содержат.

    Измените файл /etc/pam.d/common-auth, чтобы включить в него модуль pam_pkcs11:

    При такой конфигурации система будет выполнять аутентификацию только с помощью смарт-карт. Если пользователь не сможет пройти аутентификацию со смарт-картой, вход будет запрещен. Все сервисы PAM в каталоге /etc/pam.d, которые включают commonauth, будут требовать аутентификацию с помощью смарт-карты. Предупреждение. Подобная глобальная конфигурацию потребует аутентификацию с помощью смарт-карты для su и sudo.

    Для выполнения sudo в командной строке требуется вход со смарт-картой с указанной выше конфигурацией PAM.

    Добавление имени CN

    После настройки pam_pkcs11 и PAM для входов с сертификатами остается выполнить еще одно действие. Сопоставитель pwent требует, чтобы имя CN в сертификате находилось в поле /etc/passwd gecos пользователя. Имя CN должно извлекаться из сертификата на смарт-карте.

    Извлеките сертификат с карты, выполнив следующие действия:

    Получите ID сертификата на смарт-карте:

    Используйте этот ID, чтобы считать информацию о сертификате с карты и сохранить ее в локальный файл.

    Используйте openssl, чтобы извлечь имя CN из сохраненного файла.

    CN это ‘PIVKey BA366DFE3722C7449EC906B9274C8BAC’.

    Измените файл /etc/passwd и добавьте это имя CN в поле gecos пользователя, которому принадлежит сертификат.

    Этот сертификат принадлежит имени пользователя foo в файле /etc/passwd. Измените запись /etc/ passwd для имени пользователя foo.

    Теперь операционная система может принимать смарт-карту для входа пользователя foo.

    Войдите со смарт-картой на Ubuntu Server.

    Войдите со смарт-картой на Ubuntu Desktop.

    Вход по SSH с помощью смарт-карты

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

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

    Настройка входа по SSH с помощью смарт-карты

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

    Настройка SSH-сервера

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

    Разрешение аутентификации с открытым ключом

    Убедитесь, что для параметра PubkeyAuthentication задано значение ‘yes’ в файле /etc/ ssh/sshd_config сервера. По умолчанию в файле /etc/ssh/sshd_config в Ubuntu 18.04 параметр PubkeyAuthentication раскомментирован. Но его значение по умолчанию — ‘yes’. Чтобы убедиться, что значение задано верно, отредактируйте файл sshd_config file.

    Установка открытого ключа на сервере

    Извлеките открытый ключ пользователя со смарт-карты на SSH-клиенте. Используйте sshkeygen, чтобы прочитать открытый ключ со смарт-карты в формате, пригодном для SSH.

    Скопируйте этот ключ на SSH-сервер.

    Настройка SSH-клиента

    SSH-клиент должен идентифицировать своего провайдера PKCS 11. Это можно сделать несколькими способами:

    Командная строка

    При каждом запуске SSH-сеанса из командной строки указывайте параметр -I.

    Этот метод позволяет использовать вход со смарт-картой только при необходимости.

    По всей системе

    Настройте параметр PKCS11Provider в файле /etc/ssh/ssh_config.

    Используйте этот метод, чтобы требовать вход по SSH со смарт-картой для всех пользователей в системе.

    По пользователям

    Настройте параметр PKCS11Provider в файле

    /.ssh/config каждого пользователя, который хочет использовать смарт-карту для входа по SSH.

    Используйте этот метод, чтобы требовать вход по SSH со смарт-картой для отдельных пользователей.

    Войдите по SSH на сервер с помощью смарт-карты.

    Итоги

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

    Источник

    Читайте также:  Меню приложений для линукс
    Оцените статью