KeePKCS11 это простой плагин для оригинального KeePass, добавляющий ключевой поставщик, взаимодействующий с pkcs11 библиотекой для ваших криптографический токенов.
Плагин НЕ реализует ассиметричное шифрование или любое другое взаимодействие с сертификатами. Вместо этого он создает/читает объекты CKO_DATA, CKA_VALUE которых KeePass испольует для симетричного шифрования.
Плагин использует C# библиотеку Pkcs11Interop. Вы также можете вручную создавать, удалять, экспортировать, импортировать объекты, используя 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
Официальная инструкция по созданию плагинов гласит:
Выполнять команду в "cmd.exe" (пути условны)
C:\keepass\KeePass.exe --plgx-create C:\repos\KeePKCS11\KeePKCS11
В конечном каталоге "KeePKCS11" должен находиться "KeePKCS11.csproj", иначе компилятор KeePass выдаст ошибку
Будет создан файл "C:\repos\KeePKCS11\KeePKCS11.plgx"
И всё... Открывать проект, достраивать зависимости к пространству имен KeePass НЕ ОБЯЗАТЕЛЬНО. Компилировать проект средствами Visual Studio НЕ НУЖНО, каталоги ".\KeePKCS11\bin\Debug" и ".\KeePKCS11\bin\Release" должны быть пустыми!
Внимание!!! Хэш значение компилируемого плагина будет каждый раз отличаться, даже если не было никаких изменений в проекте. Это связано с особенностями компиляции.
На текущий момент плагин работает только в среде Windows.
Плагин написан на .Net Framework 4.8, совместимость проверялась только с KeePass 2.58. Совместимость с более ранними версиями возможна, но не гарантируется.
[PASS] - плагин полностью совместим с этим устройством.
[MOST LIKELY] - производителем заявлена поддержка стандарта PKCS#11, но тестирование на совместимость не производил.
C:\Windows\System32\jcPKCS11-2.dll
- JaCarta PKI [PASS]
- JaCarta-2 ГОСТ [PASS]
- JaCarta-2 PKI/ГОСТ (видит оба апплета одновременно) [PASS]
- eToken PRO (Java) [PASS]
- eToken ГОСТ [MOST LIKELY]
- eToken PRO (Java) [MOST LIKELY]
C:\Windows\System32\rtPKCS11ECP.dll
C:\Windows\System32\rtPKCS11.dll
- Рутокен Lite [PASS]
- Рутокен ЭЦП 2.0 / 3.0 [PASS]
- Рутокен S [PASS]
- ESMART Token [MOST LIKELY]
- ESMART Token ГОСТ [MOST LIKELY]
- SafeNet eToken 5110 [MOST LIKELY]
- eToken PRO (Java) [MOST LIKELY]
Если интересующего вас устройства нет в списке, но у него заявлена поддержка стандарта PKCS#11 - скорее всего оно будет работать.
Данный программный продукт разработан исключительно в учебных и исследовательских целях.
❌ Не является СКЗИ (средством криптографической защиты информации).
❌ Не является СЗИ (средством защиты информации).
❌ Не имеет сертификации ФСБ, ФСТЭК или иных регуляторов.
❌ Не предназначен для использования в реальных коммерческих или государственных системах.
Автор не несёт ответственности за:
- Любые последствия использования данного кода.
- Нарушения законодательства, связанные с применением криптографии.
- Ущерб, вызванный некорректной работой программы.
- Используйте на свой страх и риск.
Для работы с защищёнными данными используйте только сертифицированные СКЗИ (КриптоПро, ViPNet).
В случае сомнений проконсультируйтесь с юристом перед использованием кода.