-
Notifications
You must be signed in to change notification settings - Fork 118
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
ARC-0031 : Authentication with Algorand accounts #160
base: main
Are you sure you want to change the base?
Conversation
ARC-0031: Reference Implementation
There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review. |
There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review. |
There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review. |
There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review. |
/** Algorand account to authenticate with*/ | ||
authAcc: string; | ||
/** Unique random nonce generated by the Verifier */ | ||
nonce: string; |
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.
There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review. |
} | ||
``` | ||
|
||
The `nonce` field **MUST** be unique for each authentication and **MUST NOT** be used more than once to avoid replay attacks. |
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.
Minimum recommended length?
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.
15 characters minimum, which must include upper case and lower case letters and numbers. Nonce checking must be case sensitive. Nonce must be derived from a cryptographically strong PRNG. This would give a search space of 7.82 x 10^26 making it impossible to guess
Hope this will get done soon. We definitely could use it. |
How do you see usage of ARC14? Arc14 does not require usage of signdata, but is using the txn.sign to authenticate person, so that it can be used now with any wallet connect capable wallets. |
The living web standard, WebAuthn (Web Authentication API) supports the ed25519 elliptic curve and is also verifiable using other web standard API (Web Crypto through Crypto.subtle methods) or TweetNACL if that's your thing! The living standard, WebAuthn (Web Authentication API) supports the ed25519 elliptic curve and is also verifiable using other web standard API (Web Crypto through Crypto.subtle methods) or TweetNACL if that's your thing! Very nice extensions like appId extension, User Verification Method extension and Credentials properties extension make it possible to add what ever data, metadata or procedure elements needed under Algorand scope and still comply to standard! It has separated the two major concerns: Attestation and Assertation so that devs are free to implement limitless scenarios of identity and AAA using WebAuthn. https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API https://www.w3.org/TR/webauthn-2/#sctn-intro https://www.iana.org/assignments/cose/cose.xhtml#algorithms Just a humble suggestion, that's all! |
I humbly believe that using the composability of WebAuthn and Algorand (ASCs, ASAs and ATs plus Accounts) with a little team effort, a very well-structured identity and AAA framework can emerge that using federated identities can transparently and natively bridge Algorand blockchain identities to Web 2.0 identities via OAuth, Auth0, SAML,... |
Replace myalgo-connect with @perawallet/connect
Given the status of ARC60 and also the fact that essence of this ARC (the arbitrary data signing and aside from process and flow) are there and in order to avoid redundant standardization, and also given the ARC80 which includes exactly the neccessary process and flow which complements ARC60, I propose to retire this ARC in favor of ARC60+ARC80 and given the fact that it is a bit too opinionated to be used with known third party Authentication frameworks like Oauth and OIDC (on top of Oauth) out of the box. |
This PR introduces a refined version of ARC-0031 Authentication with Algorand accounts and replaces #84. The PR proposes the following changes/improvements to the old one:
The ARC also includes a reference implementation (providing a simple authentication process - no rekey/multisig - with MyAlgoWallet) credits to mrcointreau