Skip to content
UotanPublic

About

A plugin for KeePass using the PKCS#11 standard for storing keys on cryptographic tokens

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

logo

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

⚠️ Для генерации записываемого на токен значения (CKA_VALUE), плагин использует втроенный генератор паролей от KeePass, который считается безопасным. Сложность пароля настраивается пользователем.

⚠️ Некоторые модели токенов поддерживают функцию C_GenerateRandom, что позволяет получить аппратно сгенерированную случайную последовательность байт, которая будет аналогично записана в CKA_VALUE, используемый как симетричный ключ.

⚠️ Данная версия плагина НЕ использует аппаратные криптографические функции шифрования и дешифрования.

Преимущества

Зачем хранить мастер‑пароль в голове или на диске, если его можно доверить смарт‑карте? С 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 токены

Если интересующего вас устройства нет в списке, но у него заявлена поддержка стандарта PKCS#11 - скорее всего оно будет работать.

Aktiv Rutoken

C:\Windows\System32\rtPKCS11ECP.dll
C:\Windows\System32\rtPKCS11.dll
Модель Проверено Поддержка RNG
Рутокен ЭЦП 2.0 ✔️ ✔️
Рутокен ЭЦП 3.0 ✔️ ✔️
Рутокен Lite ✔️ ✔️
Рутокен S ✔️ ✔️

Aladdin R.D. JaCarta Единый Клиент

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 ❌(Вероятно совместим) ❔

Aladdin R.D. eToken PKI Client 5.1 SP1

C:\Windows\System32\eTPKCS11.dll
Модель Проверено Поддержка RNG
eToken PRO (Java) 72K ✔️ ✔️
eToken PRO 32k/64k ✔️ ✔️
eToken PRO Anywhere ❌(Вероятно совместим) ❔(✔️)
eToken ГОСТ ❌(Вероятно совместим) ❔(✔️)

Safenet Authentication Client

C:\Windows\System32\eTPKCS11.dll
Модель Проверено Поддержка RNG
eToken PRO (Java) 72K ✔️ ✔️ (max 96 byte)️

ESMART PKI Client

Модель Проверено Поддержка RNG
ESMART Token ❌(Вероятно совместим) ❔(✔️)
ESMART Token ГОСТ ❌(Вероятно совместим) ❔(✔️)

About

A plugin for KeePass using the PKCS#11 standard for storing keys on cryptographic tokens

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages