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

MDS3 negative tests (F-2 to F-5) fails due wrongly provided Metadata Statements #649

Closed glacuesta-sa closed 2 years ago

glacuesta-sa commented 2 years 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?

v1.6.39 NEW FIDO2 Server - MDS3 (EXPERIMENTAL)

What is the OS and the version are you running?

For desktop tools

For UAF mobile tools

Issue description

During Metadata Service Tests (MDS3) negative tests the server receives the same Metadata Statement for the tests, its repeated and each case asks for a different condition, which makes repeatability of the mocked data absurd.

I registered my endpoint_url at https://mds3.certinfra.fidoalliance.org/, parsed the Metadata Statements provided in the endpoints and provided them to my service.

Looking at the tools code, the MetadataStatement for each case is requested from https://mds3.certinfra.fidoalliance.org/getTestMetadata with the following body: { "endpoint": "{{endpoint_url}}", "testcase": {{test_case}} }

The test_case options are: fido2_good (P-1) fido2_badReports (F-1) fido2_badSignature (F-2) fido2_badCertificateChain (F-3) fido2_intermediateCertificateRevoked (F-4) fido2_subjectCertificateRevoked (F-5)

Looking at the results from fido2_good and fido2_badReports, the only field that changes (ignoring aaguid and aaguid-related fields) is statusReports.status. In fido2_badReports the status is an Undesired State as it is needed to pass the test successfully. image

For the rest of the cases, it is the same structure, the only thing that changes is the aaguid-related fields for obvious reasons: image

Should that be happening?

glacuesta-sa commented 2 years ago

Server-ServerAuthenticatorAttestationResponse-Resp-B Test server processing "android-safetynet" attestation P-1 Send a valid ServerAuthenticatorAttestationResponse with "android-safetynet" attestation, and check that server succeeds

Something similar is happening as well with android-safetynet P-1 test case. During the validation for "attest.android.com" in attCert.DNSNames, that array is empty though the "attest.android.com" is present in, for example, attCert.Subject.Names. This causes the test to fail as there should be and element "attest.android.com" in that array for the test to pass successfully.

If it is needed I could open a separate new issue for this.

yackermann commented 2 years ago

This has now been resolved