KeePKCS11 это простой плагин для оригинального KeePass, добавляющий ключевой поставщик, взаимодействующий с pkcs11 библиотекой для ваших криптографический токенов.
Плагин НЕ реализует ассиметричное шифрование или любое другое взаимодействие с сертификатами. Вместо этого он создает/читает объекты CKO_DATA, CKA_VALUE которых KeePass испольует для симетричного шифрования.
Плагин использует динамически подключаемую библиотеку Pkcs11Interop версии 5.3.0.
Вы также можете вручную создавать, удалять, экспортировать, импортировать объекты, используя Pkcs11Admin.
Свойства CKO_DATA:
| Свойство | Значение |
|---|---|
| CKA_CLASS | CKO_DATA |
| CKA_TOKEN | True |
| CKA_PRIVATE | True |
| CKA_MODIFIABLE | False |
| CKA_LABEL | Custom label |
| CKA_VALUE | Custom byte array |
Зачем хранить мастер‑пароль в голове или на диске, если его можно доверить смарт‑карте? С KeePKCS11 дает следующие приемущества:
- Забываете длинный пароль — вместо него короткий PIN (4–16 символов)
- Получаете защиту от перебора — смарт-карта блокируется после нескольких неверных попыток
- Не меняете привычки — KeePass работает как обычно, но ключ берётся из защищённого чипа
- Добавляете физический фактор — без доступа к токену базу не открыть, даже если файл .kdbx украдут
- База KeePass шифруется сложным паролем, который теперь не нужно помнить или хранить на жестком диске. Грубый перебор становится гораздо сложнее
Всё, что нужно — любое PKCS#11 совместимое устройство и его драйвер.
Официальная инструкция по созданию плагинов гласит:
Выполнить команду в "cmd.exe" (пути условны)
C:\keepass\KeePass.exe --plgx-create C:\repos\KeePKCS11\KeePKCS11
В конечном каталоге "KeePKCS11" должен находиться "KeePKCS11.csproj", иначе компилятор KeePass выдаст ошибку
Будет создан файл "C:\repos\KeePKCS11\KeePKCS11.plgx"
И всё . . . Открывать проект, достраивать зависимости к пространству имен KeePass НЕ ОБЯЗАТЕЛЬНО.
Компилировать проект НЕ НУЖНО, каталоги ".\KeePKCS11\bin\Debug" и ".\KeePKCS11\bin\Release" должны быть пустыми!
Внимание! Хэш значение компилируемого плагина будет каждый раз отличаться, даже если не было никаких изменений в проекте.
Переместите полученный "KeePKCS11.plgx" в папку "<KeePassInstallDir>/Plugins/" и запустите сам KeePass
Пример использования плагина изображен на рисунках, смотрите каталог ".gallary".
Плагин работает только в среде Windows 7 / 8 / 10 / 11
Целевая рабочая среда - .NET Framework 4.8
Подтверждена совместимость с KeePass 2.43 и старше
Если интересующего вас устройства нет в списке, но у него заявлена поддержка стандарта PKCS#11 - скорее всего оно будет работать.
C:\Windows\System32\rtPKCS11ECP.dll
C:\Windows\System32\rtPKCS11.dll
| Модель | Проверено | Поддержка RNG |
|---|---|---|
| Рутокен ЭЦП 2.0 | ✔️ | ✔️ |
| Рутокен ЭЦП 3.0 | ✔️ | ✔️ |
| Рутокен Lite | ✔️ | ✔️ |
| Рутокен S | ✔️ | ✔️ |
C:\Windows\System32\jcPKCS11-2.dll
| Модель | Проверено | Поддержка RNG |
|---|---|---|
| JaCarta PKI | ✔️ | ✔️ |
| JaCarta-2 ГОСТ | ✔️ | ✔️ |
| JaCarta-2 PKI/ГОСТ | ✔️ | ✔️ |
| eToken PRO (Java) 72K | ✔️ | ✔️ (max 96 byte)️ |
| JaCarta-2 PRO | ❌(Вероятно совместим) | ❔ |
| JaCarta LT | ❌(Вероятно совместим) | ❔ |
C:\Windows\System32\eTPKCS11.dll
| Модель | Проверено | Поддержка RNG |
|---|---|---|
| eToken PRO (Java) 72K | ✔️ | ✔️ |
| eToken PRO 32k/64k | ✔️ | ✔️ |
| eToken PRO Anywhere | ❌(Вероятно совместим) | ❔(✔️) |
| eToken ГОСТ | ❌(Вероятно совместим) | ❔(✔️) |
C:\Windows\System32\eTPKCS11.dll
| Модель | Проверено | Поддержка RNG |
|---|---|---|
| eToken PRO (Java) 72K | ✔️ | ✔️ (max 96 byte)️ |
| Модель | Проверено | Поддержка RNG |
|---|---|---|
| ESMART Token | ❌(Вероятно совместим) | ❔(✔️) |
| ESMART Token ГОСТ | ❌(Вероятно совместим) | ❔(✔️) |
