--
You received this message because you are subscribed to the Google Groups "FIDO Dev (fido-dev)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fido-dev+u...@fidoalliance.org.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/66693bcb-c7e1-cd78-6129-e7f888aa6f9a%40strongkey.com.
Either way, no browser is currently exposing the hmac-secret
extension to web RPs, and I don't know of any intention to start
doing so.
To unsubscribe from this group and stop receiving emails from it, send an email to fido-dev+u...@fidoalliance.org.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/825c1b0b-fcf3-10bb-88cb-4466e869794a%40strongkey.com.
Thanks for the link and for instigating me to read the definition in detail (finally), Yuriy. I should have read this a long time ago, but better late than never.
I stand by my assertion that the output(s) returned by the Authenticator, as described by the specification, can indeed be used for encryption/decryption on the platform. In fact, I don't see any reason why even browsers cannot expose an API for business application developers (like Peter Saxton, the original poster - and StrongKey - since we are in the encryption business too, besides strong-authentication) to leverage this capability. I can see some very interesting use-cases that would allow for innovation, as well as solve some privacy compliance problems for companies (GDPR, CCPA, etc.)
In the specification:
-----------------
...
The authenticator generates one or two HMAC-SHA-256 values, depending upon whether it received one salt (32 bytes) or two salts (64 bytes):
output1: HMAC-SHA-256(CredRandom,
salt1)
output2: HMAC-SHA-256(CredRandom,
salt2)
The authenticator returns output1 and, when there were two salts, output2 encrypted to the platform using sharedSecret as part of "extensions" parameter:
One salt case: "hmac-secret":
AES256-CBC(sharedSecret, IV=0, output1 (32 bytes))
Two salt case: "hmac-secret":
AES256-CBC(sharedSecret, IV=0, output1 (32 bytes) ||
output2 (32 bytes))
the HMAC operation performed by the Authenticator, is a standard
mechanism for diversifying secret keys to arrive at a new opaque
blob of bytes that can then be used for whatever purpose the blob
is capable of. The HMAC'd blob of bytes are returned back to the
platform as an encrypted blob (encrypted by the shared key: sharedSecret derived in the ECDH key-exchange).
Since the platform knows the shared key (sharedSecret),
it can decrypt the blob, get output1
(and output2 if included), transform
it into whatever object it needs and use it for whatever purposes
it needs. At this point, there is no requirement that the platform
do anything specific with that blob it got back - it can do
anything it wants with it.
I am surprised however, that there is no mention that
Authenticator manufacturers should protect CredRandom (which is
generated during an authenticatorMakeCredential (when hmac-secret
is set to true). The platform cannot protect salt1 or salt2 - it
has to store these salts somewhere on the platform if it wants to
decrypt a previously encrypted object. But, if an attacker manages
to get CredRandom from the Authenticator, combined with salt1
(and/or salt2), the attacker could potentially decrypt whatever
the platform decrypted.
That said, as long as the Authenticator does not release
CredRandom as cleartext, I don't see why browsers should not
enable access to the hmac-secret outputs through a WebAuthn API.
The content is scoped to the relying party, and can be generated
only with the precise Authenticator. And, if there are business
use-cases that can be solved by making the hmac-secret visible to
relying party applications, then I don't see why this innovation
is not being enabled.
|
408.331.2000 |
--
You received this message because you are subscribed to the Google Groups "FIDO Dev (fido-dev)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fido-dev+u...@fidoalliance.org.
To view this discussion on the web visit https://groups.google.com/a/fidoalliance.org/d/msgid/fido-dev/66693bcb-c7e1-cd78-6129-e7f888aa6f9a%40strongkey.com.