- From: Ghosh, Rahuldeva <rahuldeva.ghosh@intel.com>
- Date: Tue, 26 Jul 2016 17:27:22 +0000
- To: W3C Web Authn WG <public-webauthn@w3.org>
- CC: "Bakshi, Sanjay" <sanjay.bakshi@intel.com>, "Sarangdhar, Nitin V" <nitin.v.sarangdhar@intel.com>
- Message-ID: <6CB7FFDD0048944F93D6E9ACFB7DB6CD7E3423BF@ORSMSX102.amr.corp.intel.com>
Thanks Jeff. Here's a proposal with the UVI extension updates in brown. This makes the extension a 4 element CBOR array, retains the current byte array based opaque UVI index to support the multiple finger use case that Rolf had brought up and adds 3 new fields for UVM, key and matcher protection from the FIDO registry. This should support the case where factor stays the same and say a different finger is used (UVI value changes) as well as the case where the factor itself changes entirely (UVM/protection type changes). Looking forward to comments. 8.4. User Verification Index (UVI) Extension Extension identifier webauthn_uvi Client argument The Boolean value true to indicate that this extension is requested by the WebAuthn Relying Party. Client processing None, except default forwarding of client argument to authenticator argument. Authenticator argument The Boolean value true, encoded in CBOR (major type 7, value 21). Authenticator processing The authenticator<https://w3c.github.io/webauthn/#authenticator> augments the authenticator data with a user verification index indicating the method used by the user to authorize the operation along with the authentication factor used and the type of authenticator protection environment it is executing in, as defined below. This extension can be added to attestation statements and assertions. Authenticator data The UVI is encoded as a 4 element CBOR array (type 0x84). (this is byte string in current spec) Element 1 - User verification index (UVI). This is a value uniquely identifying a user verification data record. The UVI is encoded as CBOR byte string (type 0x58). Each UVI value MUST be specific to the related key (in order to provide unlinkability). It also must contain sufficient entropy that makes guessing impractical. UVI values MUST NOT be reused by the Authenticator (for other biometric data or users). The UVI data can be used by servers to understand whether an authentication was authorized by the exact same biometric data as the initial key generation. This allows the detection and prevention of "friendly fraud". As an example, the UVI could be computed as SHA256(KeyID | SHA256(rawUVI)), where the rawUVI reflects (a) the biometric reference data, (b) the related OS level user ID and (c) an identifier which changes whenever a factory reset is performed for the device, e.g. rawUVI = biometricReferenceData | OSLevelUserID | FactoryResetCounter. Servers supporting UVI extensions MUST support a length of up to 32 bytes for the UVI value. Element 2 - User Verification Method. This is the authentication method/factor used by the authenticator to verify the user. Available values are defined in the FIDO Registry of Predefined Values, 'User Verification Methods' section. It is encoded as a CBOR unsigned integer (0x1A). Element 3 - Key Protection Type. This is the method used by the authenticator to protect the FIDO registration private key material. Available values are defined in the FIDO Registry of Predefined Values, 'Key Protection Types' section. It is encoded as a CBOR 2 byte unsigned short (0x19). Element 4 - Matcher Protection Type. This is the method used by the authenticator to protect the matcher that performs user verification. Available values are defined in the FIDO Registry of Predefined Values, 'Matcher Protection Types' section. It is encoded as a CBOR 2 byte unsigned short (0x19). Example for rawData containing one UVI extension F1 D0 -- This is a WebAuthn packed rawData object 81 -- TUP and ED set 00 00 00 01 -- (initial) signature counter ... -- all public key alg etc. A1 -- extension: CBOR map of one element 6C -- Key 1: CBOR text string of 12 bytes 77 65 62 61 75 74 68 6E 2E 75 76 69 -- "webauthn.uvi" UTF-8 string 84 -- Value 1: CBOR array of four elements 58 20 -- Element 1: CBOR byte string with 0x20 bytes 00 43 B8 E3 BE 27 95 8C -- the UVI value itself 28 D5 74 BF 46 8A 85 CF 46 9A 14 F0 E5 16 69 31 DA 4B CF FF C1 BB 11 32 1A 00 00 00 02 -- Element 2: CBOR integer for User Verification Method Fingerprint 19 00 04 -- Element 3: CBOR short for Key Protection Type TEE 19 00 02 -- Element 4: CBOR short for Matcher Protection Type TEE Rahul From: Hodges, Jeff [mailto:jeff.hodges@paypal.com] Sent: Tuesday, July 26, 2016 8:12 AM To: Ghosh, Rahuldeva <rahuldeva.ghosh@intel.com> Cc: W3C Web Authn WG <public-webauthn@w3.org>; Bakshi, Sanjay <sanjay.bakshi@intel.com>; Sarangdhar, Nitin V <nitin.v.sarangdhar@intel.com> Subject: Re: returning a multi-factor authenticator's factor-in-use and protection scheme to the server On 7/24/16, 11:35 PM, "Ghosh, Rahuldeva" <rahuldeva.ghosh@intel.com<mailto:rahuldeva.ghosh@intel.com>> wrote: I can send out a change proposal to the UVI extension if we are all ok with this approach. sure, I'm fine with reviewing such a proposal. =JeffH
Received on Tuesday, 26 July 2016 17:27:55 UTC