-
Notifications
You must be signed in to change notification settings - Fork 236
Description
Issue To Be Solved
Allow raw cryptographic signatures using Webauthn.
Suggest A Solution
Allow user to request raw signature of the RP challenge from the hardware key.
Add a new extension: rawSignature
:
var options = {
// The challenge is produced by the server; see the Security Considerations
challenge: new Uint8Array([8,18,33 /* 29 more random bytes generated by the server */]),
timeout: 120000, // 2 minutes
allowCredentials: [acceptableCredential1, acceptableCredential2],
extensions: { 'rawSignature': true }
};
The assertion object returned from the get()
call:
PublicKeyCredential {
id: 'ADSUllKQmbqdGtpu4sjseh4cg2TxSvrbcHDTBsv4NSSX9...',
rawId: ArrayBuffer(59),
rawSignature: ArrayBuffer(70) // the raw signature of the challenge
..
}
Context
With the rise of web applications that use blockchains as a backend, instead of a centralized database,
users are required to authenticate to these websites using a private key.
The private key is used to create a raw signature that is passed along by the website to the underlying blockchain for authentication.
There is no easy way for a user to use a private key in a browser, so websites require users to store their private keys in the browser cache, which is highly insecure and leads to data loss.
Example:
Website: https://www.sign-art.app