fido-alliance / conformance-test-tools-resources

Certification Test Tools Resources. For security and privacy related issues email tools@certification.fidoalliance.org
https://fidoalliance.org/certification/functional-certification/conformance/
43 stars 14 forks source link

Authr-CredentialManagement-EnumerateRPs Test authenticatorCredentialManagement(0x0A) command support for discoverable credential metadata and enumeration functionality for RPs doesn't respect chapter 6 in CTAP2.1 #701

Closed Molyna closed 1 year ago

Molyna commented 1 year ago

By submitting this issue you are acknowledging that any information regarding this issue will be publicly available.

If you have privacy concerns, please email conformance-tools@fidoalliance.org

FIRST PRE CHECK

What protocol are you implementing?

NOTE: UAF 1.0 certification have been officially sunset. U2F 1.2 only supported version of U2F.

What is your implementation class?

If you are platform authenticator vendor, please email conformance-tools@fidoalliance.org

What is the version of the tool are you using?

1.7.9

What is the OS and the version are you running?

For desktop tools

For UAF mobile tools

Issue description

The tests in Authr-CredentialManagement-EnumerateRPs Test authenticatorCredentialManagement(0x0A) command support for discoverable credential metadata and enumeration functionality for RPs doesn't seem to respect stateful commands. The tests seems to run so P-2 generates a call to Credential Management subcommand 2 (enumerateRPsBegin). After that succeeds P-3 start, by generating a new pinUVAuthToken through a ClientPin request. But if we look at Chapter 6, which covers stateful commands, we get

The authenticator MAY maintain state based on the assumption that each stateful command is exclusively preceded by either another instance of the same command, or by the corresponding state initializing command, and no more than 30 seconds will elapse between such commands. If this pattern is violated then the authenticator MAY fail any stateful command with the error CTAP2_ERR_NOT_ALLOWED. Here, “exclusively preceded” means that no other authenticator operation occurs in between. An authenticator MAY assume this globally, even when the transport-specific binding provides for independent streams of platform commands (e.g. § 11.2.3 Concurrency and channels).

As the test triggers a clientPin call prior to the enumerateRPsGetNextRP an authenticator may return a 0x30 instead of the expected 0x00 return value.

The same situation seems to apply to Authr-CredentialManagement-EnumerateCredentials Test authenticatorCredentialManagement(0x0A) command support for discoverable credential enumeration and test P-2

yackermann commented 1 year ago

@Molyna Thanks for reporting. New build in few hours

yackermann commented 1 year ago

Latest build https://builds.fidoalliance.org/Desktop%20UAF%20FIDO2%20U2F/v1.7.11/