Блокировка и отсутствие поддержки PUK
За последний год на ЭЦП эта проблема наблюдалась минимум 3 раза – внезапно пин оказывается заблокированным (стратегия использования токена практически полностью исключает возможность того, что злоумышленник пытался его подобрать etc)
# pkcs11-tool -l -O
Using slot 1 with a present token (0x1)
Logging in to "Rutoken ECP (xxxxxx)".
Please enter User PIN:
error: PKCS11 function C_Login failed: rv = CKR_PIN_LOCKED (0xa4)
Разблокировать я не могу, потому как PUK отсутствует, ибо:
# pkcs15-init --erase-card -p rutoken_ecp
Using reader with a card: Aktiv Rutoken ECP 00 00
# pkcs15-init --create-pkcs15 --so-pin "xxxxxx" --so-puk "yyyyyy"
Using reader with a card: Aktiv Rutoken ECP 00 00
Failed to create PKCS #15 meta structure: Not supported
Пук указать, стало быть, нельзя. И на этом этапе можно заново стирать карту (что уже явный баг):
# pkcs15-init --create-pkcs15 --so-pin "хххххх" --so-puk ""
Using reader with a card: Aktiv Rutoken ECP 00 00
Failed to create PKCS #15 meta structure: Incorrect parameters in APDU
Сотрем все, попробуем не указывать SO PUK ибо он в принципе не нужен:
# pkcs15-init --erase-card -p rutoken_ecp
Using reader with a card: Aktiv Rutoken ECP 00 00
# pkcs15-init --create-pkcs15 --so-pin "ххххххх" --so-puk ""
Using reader with a card: Aktiv Rutoken ECP 00 00
# pkcs15-init --store-pin --label "аааааа" --auth-id 02 --pin "1234" --puk "4321" --so-pin "ххххх" --finalize
Using reader with a card: Aktiv Rutoken ECP 00 00
Failed to store PIN: Not supported
облом, но тут таки можно указать без пука:
# pkcs15-init --store-pin --label "аааааа" --auth-id 02 --pin "1234" --puk "" --so-pin "ххххх" --finalize
Using reader with a card: Aktiv Rutoken ECP 00 00
пин создан, можно пересоздавать объекты – до следующего блокирования.
Вопросы:
1. Я подозреваю, что либо данные на токене самопроизвольно разрушаются каким-то образом (хотя дампнутый список объектов залоченного токена на это не указывает), либо какой-то процесс как-то «нехорошо» использует *pkcs11.so, вызывая блокировку. Не могу пока представить, как это выяснить.
2. Почему нет возможности разблокировать пин ввиду того, что нельзя указать пук?
Изначально я планировал использовать аналогичные токены на предприятии, но честно говоря, меня подобный расклад не совсем устраивает.
Думаю, что данный вопрос нерелевантен версиям пакетов итд, поэтому приводить все это не стал.