-
Notifications
You must be signed in to change notification settings - Fork 119
ARC60 (new) - arb data signing AUTH, random, caip122 #313
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
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @ehanoc. I really hope that this iteration of ARC-60 finally makes it past the finish line!
Signed-off-by: ehanoc <[email protected]>
on custom (Algorand ecosystem internal usage) AUTH scope and custom auth message, this is 100% good to go and flawless, IMHO.
On the other hand, now that we have extension mechanisms in ARCs, may I suggest this ARC-60 to be limited only to custom and random arbitrary data signing (for which it is complete and good to go final IMHO) and then in the future after we add successful verification with standard well-known libraries on each sub-scope, we add those as extensions to this ARC. E.g. for Fido2/WebAuthn, for OAuth2/OIDC, and for simple JWT/JWS. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The term authenticatedData
(in the spec) is referred to as authenticationData
(in the Code).
Co-authored-by: Stéphane <[email protected]>
Co-authored-by: Stéphane <[email protected]>
Co-authored-by: Stéphane <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
Signed-off-by: ehanoc <[email protected]>
I just had a play with the latest tests after updating my Ledger Flex to 2.3.6. Everything passed as expected, but I'm interested to know how much heavy lifting we expect the ledger-algorand-js library to do, rather than the Ledger device itself. Is this update expecting to open the flood gates to all kinds of arbitrary data signing, or is ARC60 supposed to be the single standard way for right now? I ask because the Ledger device itself doesn't seem to do much validation on this data. So little infact that I can provide 64 bytes of anything I like and have the Ledger sign it, regardless of what's displayed on the screen. Below is a proof of concept using
|
…tion Signed-off-by: ehanoc <[email protected]>
Adapt arc60.ledger.spec.ts to new package/app
Use randomBytes for requestId
NEW ARC60 Proposal
This new proposal achieves the following:
For the purpose of AUTH (at least for now) sign truly arbitrary data without colliding with known data structures (TXs, LSIGs, etc)
Compatibility with several authentication mechanisms. i.e custom auth mechanisms, FIDO2 / Passkeys / CAIP-122
Takes into consideration the implementation constraints of hardware wallets
Reference Implementation is available