30.3. Хранение сертификата на смарт-карте

Этот раздел описывает конфигурацию смарт-карты с помощью инструмента pkcs15-init, который поможет Вам настроить:

  • Стирание Вашей смарт-карты
  • Установка новых PIN-кодов и опциональных PIN-кодов разблокирующих ключей (PUK)
  • Создание нового слота на смарт-карте
  • Хранение сертификата, личного ключа и открытого ключа в слоте
  • Блокировка настроек смарт-карты (некоторые смарт-карты требуют такого типа окончательной доработки)

Предпосылки

  • Установлен пакет opensc, который включает в себя инструмент pkcs15-init.

    Подробности см. в разделе Установка инструментов для управления и использования смарт-карт.

  • Карта вставляется в считывающее устройство и подключается к компьютеру.
  • У Вас есть личный ключ, открытый ключ и сертификат для хранения на смарт-карте. В этой процедуре testuser.key, testuserpublic.key и testuser.crt - это имена, используемые для личного ключа, открытого ключа и сертификата.
  • PIN-код пользователя Вашей текущей смарт-карты и PIN-код сотрудника службы безопасности (SO-PIN)

Процедура

  1. Сотрите Вашу смарт-карту и подтвердите свою подлинность с помощью PIN-кода:

    $ pkcs15-init --erase-card --use-default-transport-keys
    Using reader with a card: Reader name
    PIN [Security Officer PIN] required.
    Please enter PIN [Security Officer PIN]:

    Карта стерта.

  2. Произведите инициализацию смарт-карты, установите PIN-код пользователя и PUK, а также PIN-код сотрудника службы безопасности и PUK:

    $ pkcs15-init --create-pkcs15 --use-default-transport-keys \
        --pin 963214 --puk 321478 --so-pin 65498714 --so-puk 784123
    Using reader with a card: Reader name

    Инструмент pcks15-init создает новый слот на смарт-карте.

  3. Установите метку и идентификатор аутентификации для слота:

    $ pkcs15-init --store-pin --label testuser \
        --auth-id 01 --so-pin 65498714 --pin 963214 --puk 321478
    Using reader with a card: Reader name

    Метка устанавливается на читаемое человеком значение, в данном случае testuser. Метка auth-id должна иметь два шестнадцатеричных значения, в данном случае она установлена на 01.

  4. Храните и наклейте личный ключ в новом слоте на смарт-карте:

    $ pkcs15-init --store-private-key testuser.key --label testuser_key \
        --auth-id 01 --id 01 --pin 963214
    Using reader with a card: Reader name
    Примечание

    Значение, которое Вы указываете для --id, должно быть одинаковым при хранении Вашего личного ключа и сертификата. Если Вы не указываете значение для --id, то инструмент вычисляет более сложное значение, поэтому проще определить собственное значение.

  5. Хранить и маркировать сертификат в новом слоте на смарт-карте:

    $ pkcs15-init --store-certificate testuser.crt --label testuser_crt \
        --auth-id 01 --id 01 --format pem --pin 963214
    Using reader with a card: Reader name
  6. (Дополнительно) Храните и наклейте открытым ключом в новом слоте на смарт-карте:

    $ pkcs15-init --store-public-key testuserpublic.key
        --label testuserpublic_key --auth-id 01 --id 01 --pin 963214
    Using reader with a card: Reader name
    Примечание

    Если публичный ключ соответствует личному ключу и/или сертификату, Вы должны указать тот же ID, что и личный ключ и/или сертификат.

  7. (Необязательно) Некоторые смарт-карты требуют, чтобы Вы закончили работу с картой, заблокировав настройки:

    $ шт. 15-разрядный -F

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