Sign in using QR code without master password

@walib65081 I think most people are comparing features that other services offer with ones at BW without understanding the type of security that both have to offer.
At far as my knowledge goes , BW encrypts/decrypts its vaults with a single key , and this key is derived from your master password by PBKDF2 sha256.

From this its clear that only by using your master key and following the above process would decrypt your vault.
Any comparison with other services which offer multiple ways to authenticate including QR code or temporary password wouldn’t be fair as most other services don’t offer zero knowledge encryption i.e they often own the decryption keys to your vault.
In most cases their services are server encrypted and not client side encrypted.
So its easy for other services to implement features like qr code login or temporary password as the company has access to decryption keys and can open vaults on the clients behalf after verifying users identity through this method.

Therefore the philosophy with which both services are made should be taken into account when suggesting for newer ways to login.
Thanks :blush:

2 Likes

I wonder if each session could get a public+private key pair. Then when you go to generate a QR code, you have to enter in the current sessionId. The the authenticated session could then lookup the public key of that session, encrypted some secret, your device would then scan the QR code and decrypt with it’s private key.

Then whatever that secret is could be used to authenticate the session.

2 Likes

truth what you said

Find your feedback interesting

what you said makes a lot of sense - is correct

1 Like

This is a general description I PM’d someone

I’m not arguing for it. But some people are asking and I figured I’d add my own thoughts on how it might be not horribly implemented. Below is a loose abstract concept. I will be assuming both clients have internet access.

Authed Client: Select to create QR code
1a. Create/Get client local public key. This is not stored anywhere but the local client. Possibly ephemeral.
1b. Prompt user master-password, validate, and temp store
1c. Create QR code containing (client local public key, public session identifier(server side knows))

Scan QR with unauthed client.
2a. Get/create client local public key pair
2b. Encrypt unauth client public key with auth client public key
2c. Send encrypted payload to server targeting public session identifier of auth client, signed with auth client’s public key

Auth client receives response unauth client
3a. Validate signature of encrypted payload with local private key
3b. Decrypt encrypted payload with local private key
3c. Encrypt and sign captured master-password(or derived) from step 1b with auth client private and unauth client public
3d. Display new QR code or transfer via central server, the encrypted payload from 3c

Unauth client verifies and decrypts payload to extract master-password(or derived), allowing the client to do whatever it needs to do to setup the rest of the session, download the vault, and decrypt it

I’m sure some variation of this could be quite secure.

1 Like

My bank just enabled this feature and honestly: I LOVE IT A LOT!
It feels so safe to use and it’s super easy. One of the best login methods there is.

1 Like

Yes, please implement SQRL as a protocol within Bitwarden to authenticate me to a website, rather than as an authentication method to one’s vault (in lieu of master password).

1 Like

Thanks for merging all the various instances. Please note that you merged in SQRL Identity however, it is NOT the same as here.

This request is for an authentication method into Bitwarden.

The merged-in request in question is for implementing the SQRL identity/auth protocol for association with items within the vault and to authenticate to those sites.

Please split these back out and reopen SQRL Identity

It has been reopened :+1:

2 Likes

I believe this may be the same principle that is applied when you use passwordless WebAuthn sign in on a guest browser. You are provided a QR code that your device then needs to validate. Others may be able to confirm as I have only tried direct passwordless sign in using Apple’s passwordless implementation that has been rolled out to sites like eBay and BestBuy (US). Bitwarden is introducing this in 2023.

Passkey demo with different methods to sign in. https://youtu.be/XEszPqlMag4

1 Like

Yes, definitely the same principle. The key difference (among many) between WebAuthn passwordless and SQRL is that secrets are generated and stored per entity with WebAuthn (hence passkeys, aka passwords you don’t need to enter manually), while SQRL has implemented it such that the secret doesn’t need to be stored, since the identity can generate it at any time on the fly once unlocked, and therefore is notably lighter weight. It could still catch on, but I’m afraid that time has passed, and the less robust, less adaptable, less portable option has won out.

I just wanna mention this, because it is a great workaround while we wait.
I can login without the master password with my device. Here is how:

I am liking the login with device feature. But I feel that qr code functionality would greatly improve this workflow as I dont always get the notification on my device in a timely manner.

This SQRL could be a better option than the passkey mess, Bitwarden should push it forward as standard.

Description videos GRC's | SQRL Secure Quick Reliable Login