Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
outlinetrue
stylenone

Проверка модели устройства

  1. Подключите USB-токен к компьютеру.
  2. Для определения названия модели USB-токена откройте Терминал и введите команду:

...

Убедитесь, что используете: Aktiv Rutoken ECP

Нам понадобится Rutoken ECPРутокен ЭЦП, отформатированный через Панель управления Рутокен. В качестве дистрибутива использовалась Ubuntu-12.10-desktop-i386.

Общий порядок действий

1. Устанавливаем необходимые пакеты:

...

При установке opensc также устанавливаются пакеты libccid и pcscd, а при установке libpam-p11 – пакет libp11-2.

2. Устанавливаем библиотеку PKCS#11 Рутокен, предварительно загрузив установочный пакет с сайта rutoken.ru.

3. Создаем файл описания модуля PKCS#11

Code Block
languagebash
 $ sudo nano /usr/share/p11-kit/modules/Rutoken.module

добавляем в редакторе строку:

module:. Библиотеку librtpkcs11ecp.so помещаем в директорию/usr/lib/librtpkcs11ecp.so

и сохраняем файл.

43. Аналогично действиям в приведенной выше статье создаем файл /usr/share/pam-configs/p11, с единственным отличием – укажем путь к нашей библиотеке:

Code Block
languagebash
Name: Pam_p11
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient pam_p11_opensc.so /usr/lib/librtpkcs11ecp.so

45. Выполняем команду:

Code Block
languagebash
$ sudo pam-auth-update

...

Note
titleИспользование существующего сертификата
Если вы желаете использовать сертификат RSA, который уже записан на ваш токен/смарт-карту, то на данном этапе перейдите к указаниям в приложении к данной инструкции (в самом низу данной страницы).

56. Переходим к созданию ключевой пары:

...

--module <arg>путь к библиотеке pkcs11 (обязательный параметр)
--keypairgen
генерация ключевой пары
-- key-type <arg>задает тип и длину ключа. В нашем случае тип – rsa, длина - 2048 бит (с длиной ключа 1024 бит возникают проблемы)
-l запрос PIN-кода токена до каких-либо операций с ним (обязательный параметр)
--id <arg>

определяет id создаваемого объекта (понадобится при создании сертификата)

67. Переходим к созданию сертификата. 

...

Code Block
languagebash
$ openssl
OpenSSL>  engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1  -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so

78. Создаем сертификат в PEM-формате:

...

-key указывает закрытый ключ (в нашем случае 0:45 – слот:ID ключа)
-x509 
выдает самоподписанный сертификат

89. Конвертируем сертификат PEM в CRT:

Code Block
languagebash
OpenSSL> x509 -in cert.pem -out cert.crt -outform DER

910. Закрываем openssl. Теперь сохраняем сертификат CRT на Рутокен:

...

-y <arg>тип объекта (может быть cert, privkey, pubkey, data)
-w <arg>
записать объект на токен

1011. Остается только добавить сертификат PEM в список доверенных:

Code Block
languagebash
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ less ~/cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

1112. На этом настройка закончена. После перезапуска ОС окно входа в систему будет выглядеть так:

Приложение: настройка аутентификации с имеющимся сертификатом

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

...