1

Usecase: KeepassXC is configured with a Passward + Yubikey HMAC.

enter image description here

I am trying to understand the exact steps that happen.

I think the first five Steps are clear:

  1. Open KeepassXC
  2. Enter Password
  3. Select Hardware Key
  4. Click unlock
  5. Yubikey is blinking

Now comes the Part I struggle to understand.

The next steps beginning with step six are pure guesses, please correct me.

  1. Does the KeepassXC Application send something like a challenge based on the entered Password to the Yubikey?
  2. Touch Yubikey
  3. The Yubikey computes the Challenge with the stored HMAC Secret and sends the result back to the KeepassXC Application.

Or are there more or different inputs than the password involved in the generation of the challenge, that was created from KeePassXC.

2
  • 3
    See Is it reasonable to use KeePassXC with YubiKey?, which features an answer from a KeepassXC developer explaining the process.
    – Ajedi32
    Commented May 31, 2022 at 20:44
  • @Ajedi32 Your linked Artikel is helpful in general. But it doesn't answer my question in depth.
    – foshyboy
    Commented Jun 1, 2022 at 17:35

1 Answer 1

0

Disclaimer: the following is based on my understanding of the process, which may be incomplete.
To be sure, ask Janek Bevendorff directly.

During 'registration',

KeePassXC stores a HMAC secret on the Yubikey.

During authentication/decryption:
  1. KeePassXC sends a challenge (the database's master seed) to the Yubikey:
  1. Yubikey transform the challenge and returns the reply.

  2. Yubikey constructs a composite key from (transformed) your password and Yubikey's reply and (optionally) your key file.

  3. Your database is opened using this composite key.

Every time you save the database:
  1. A new random seed is generated

  2. A new composite key is constructed, using a predicted response(?) using this random seed

  3. The database is re-encrypted using this new key.

2

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .