Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add FIDO to improve hardware wallet support #1196

Open
hitchhooker opened this issue Jan 22, 2023 · 3 comments
Open

Add FIDO to improve hardware wallet support #1196

hitchhooker opened this issue Jan 22, 2023 · 3 comments
Labels
maybe someday P4 - Needs Investigation Requires analysis to determine cause or feasibility. Not fully understood, needs research first.

Comments

@hitchhooker
Copy link

If anyone has tried to onload their friends to use kusama securely with their ledgers, they know it is just pain in the ass UX. Setting up android phone and QR scanner can also be complicated and expensive. I did myself hold myself back start experiencing on kusama for over half a year before getting myself ledger wallet to feel secure enough to not lose money experiencing. Ledger support turned out to be absolutely terrible and feels like it is never going to getting there to be used for hundreds of different parachains.
Could there be a possibility to add FIDO for wallet authentication instead of or with password?

@jacogr
Copy link
Member

jacogr commented Jan 22, 2023

It has been in the back of my mind for a while (actually specifically since it would be of a help to me).

But just "there in the back of my mind", have not looked into it at depth at all. Will mark it for a future investigation, but no commitment as to aye/nay.

@hitchhooker
Copy link
Author

https://www.npmjs.com/package/fido2-lib seems quite fit library for it and pseudocode i was thinking:

  1. wallet generates a symmetric key that will be used to encrypt the data.
  2. walllet generates a nonce challenge and sends it to the client along with a request to encrypt the symmetric key using the client's FIDO2 key.
  3. client uses its FIDO2 key to encrypt the symmetric key, along with the challenge and other data, to create a signature.
  4. client sends the encrypted symmetric key and signature back to the server.
  5. wallet verifies the signature and, if it is valid, uses the encrypted symmetric key to decrypt the data.

you think this kind of logic would work and made sense for me to work it further?

@jacogr
Copy link
Member

jacogr commented Feb 11, 2023

Seems sensible. (Just bear in mind that there is no "server" in the traditional sense - in this case the "client" is the "UI part", where the "server" is the extension backend part)

@TarikGul TarikGul added P4 - Needs Investigation Requires analysis to determine cause or feasibility. Not fully understood, needs research first. and removed needs investigation labels Oct 30, 2024
@TarikGul TarikGul moved this to P4 - Needs Investigation in Polkadot-js general project board Oct 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maybe someday P4 - Needs Investigation Requires analysis to determine cause or feasibility. Not fully understood, needs research first.
Projects
Status: P4 - Needs Investigation
Development

No branches or pull requests

3 participants