Giter VIP home page Giter VIP logo

keepass2trezor's Introduction

Keepass2Trezor

KeePass2Trezor

Less clicks, more security.

Build Status Latest Release Total Downloads


The KeePass2Trezor plugin for KeePass 2.x leverages Trezor's security design to encrypt your password database. The decryption key can only be accessed by physically pressing the confirmation button on the Trezor device.

It supports Trezor One, Model M and the new Safe 3 on Windows and Linux. Using Trezor Hardware Wallet as key provider for KeePass 2.x

Features

  • Secure Encryption: Your KeePass database is securely encrypted using your personal Trezor device.
  • Simple Unlock: Unlock your password manager with a single click on your Trezor button.
  • Recovery Seed: Use a 24-word recovery seed to regain access to your passwords.
  • Optional Master Password: Can be used with or without a master password.

How to Use

  1. Download KeePass2Trezor.dll from the latest release.
  2. Copy the DLL to the Plugins folder of your KeePass 2.x installation.
  3. Create a new database, selecting Trezor Key Provider in the Key file/provider field.
  4. Follow the instructions, unlock your Trezor if necessary, and confirm decryption of the key by pressing the button on the device.

Linux Users

While the plugin works on Linux, additional steps are required:

  1. Configure udev rules:

  2. Install mono-develop package:

    • Ensure that the mono-develop package is installed, as the plugin relies on netstandard2.0, which is included with it.
  3. Check libusb-1.0 installation:

    • Verify the installation of libusb-1.0-0. If KeePass2Trezor still hangs with the message "Connect your Trezor device" even with libusb installed, consider either creating a symlink according to this instruction or install libusb-1.0-dev package to address the issue.
  4. Reconnect the device:

    • After completing the configuration steps, disconnect and then reconnect your Trezor device to ensure the changes take effect.

Requirements

  • KeePass 2.35 or newer
  • .NET Framework 4.6.2 or higher
  • libusb-1.0 for Linux

Security Considerations

⚠ If your device is lost or broken, you will need to purchase a new Trezor or build a PiTrezor and initialize it using the saved seed phrase to regain access to the KeePass database.

⚠ Exporting the database in any format except kdbx will cause loss of the Key ID and make decryption impossible. This is because other formats do not support public custom data (unencrypted) where the Key ID is stored.

Technical Details

KeePass2Trezor is a key provider plugin for the KeePass 2.x password manager. It uses a similar approach to derive the master key as the Trezor Password Manager described in the SLIP-0016 document.

Contribution

🌱 Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

keepass2trezor's People

Contributors

vnau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

70p4z

keepass2trezor's Issues

Prevent loss of key ID when exporting in formats other than KDBX v4

When using KeePass2Trezor key provider plugin, each KeePass database is encrypted with its own key generated by Trezor. If the database is in KDBX v4 format, the key ID is stored in the file's public user data header. However, other database formats do not have such public, unencrypted data available until the database is decrypted. Thus, saving the database in other formats may result in the loss of the key ID and make it impossible to decrypt the database.

To avoid losing the key ID, it should also be stored in an auxiliary file, at least for all formats except KDBX v4.

Ability to require button press per-password?

One of the huge advantages of the original TPM was that a button press was required for each specific password you wanted to decrypt. It seems like this implementation is a button press that decrypts the entire DB at once. Is there any way to modify this so that a button press would be required to decrypt each password?

So:
One press to open the database file
One press to decode any entry, every time.

How to use it in Linux?

Hi! I've tried this plugin in mono and wine environments but expectedly Trezor didn't recognized. Any ideas?
изображение

Trezor Safe 5 compatibility

Привет! У меня есть Trezor Safe 5, но плагин с ним не работает. При попытке создания базы данных на основе Trezor Safe 5 следующая ошибка:
sshot-61
При этом на экране на полсекунды появляется сообщение:
"Please enter your passphrase" и далее устройство "виснет" с сообщением "Please wait"

Я готов принять участие в тестировании и могу предоставить удаленно ПК для теста и отладки, чтобы плагин получил поддержку нового Trezor.

Быстрая связь только по Telegram.

How to use it in Linux?

Hello,
i wanna try this plugin on linux ubuntu 22.04, but i have same behavior like your close issue.
How to use it in Linux? #2
I tried compiled from source, but nothing helped ? Do u have any ideas, whats wrong ?
Thanks

Is Trezor Model T supported?

Although the Trezor.Net library used in the project supports Model T and the process is almost the same as for Model One, I have no ability to check if KeePass2Trezor actually works with with it smoothly.

It would be great if someone could confirm/deny the possibility of working with Model T and describe the problems that have arisen, if any.

Crash when creating new database

Using KeePass 2.53.1 and KeePass2Trezor 0.1.1 the app crashes when creating new database. After clicking OK button in Create Master Key window there is "Connect your Trezor device" window displayed for a moment, then without any error popup whole app ends/crashes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.