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

TPM registration responses in v1.6.33 appear to have invalid cert path #618

Closed MasterKale closed 1 year ago

MasterKale commented 3 years ago

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.33

What is the OS and the version are you running?

For desktop tools

For UAF mobile tools

Issue description

I'm running MakeCredential: Platform tests and the TPM tests in particular seem to have trouble with validating the certificate path, starting with the first two certs in x5c:

Getting statement for a7d6d93a-8a0d-11e8-9a94-a6cf71072f73
Sub. Iss.: /C=US/ST=MY/L=Wakefield/O=FIDO Alliance/OU=CWG/CN=FIDO Fake TPM Root Certificate Authority 2018/E=conformance-tools@fidoalliance.org
Iss. Sub.: /CN=Sample Attestation Root/O=FIDO Alliance/OU=UAF TWG,/L=Palo Alto/ST=CA/C=US
RP - attestation: Could not validate certificate path with any metadata root certificates (TPM)

Getting statement for f244b67e-5364-4fd5-9f90-c396227317db
Successfully validated attestation with metadata

Getting statement for a7d6d93a-8a0d-11e8-9a94-a6cf71072f73
Sub. Iss.: /C=US/ST=MY/L=Wakefield/O=FIDO Alliance/OU=CWG/CN=FIDO Fake TPM Root Certificate Authority 2018/E=conformance-tools@fidoalliance.org
Iss. Sub.: /CN=Sample Attestation Root/O=FIDO Alliance/OU=UAF TWG,/L=Palo Alto/ST=CA/C=US
RP - attestation: Could not validate certificate path with any metadata root certificates (TPM)

Getting statement for a7d6d93a-8a0d-11e8-9a94-a6cf71072f73
Sub. Iss.: /C=US/ST=MY/L=Wakefield/O=FIDO Alliance/OU=CWG/CN=FIDO Fake TPM Root Certificate Authority 2018/E=conformance-tools@fidoalliance.org
Iss. Sub.: /CN=Sample Attestation Root/O=FIDO Alliance/OU=UAF TWG,/L=Palo Alto/ST=CA/C=US
RP - attestation: Could not validate certificate path with any metadata root certificates (TPM)

Getting statement for a7d6d93a-8a0d-11e8-9a94-a6cf71072f73
Sub. Iss.: /C=US/ST=MY/L=Wakefield/O=FIDO Alliance/OU=CWG/CN=FIDO Fake TPM Root Certificate Authority 2018/E=conformance-tools@fidoalliance.org
Iss. Sub.: /CN=Sample Attestation Root/O=FIDO Alliance/OU=UAF TWG,/L=Palo Alto/ST=CA/C=US
RP - attestation: Could not validate certificate path with any metadata root certificates (TPM)

Getting statement for a7d6d93a-8a0d-11e8-9a94-a6cf71072f73
Sub. Iss.: /C=US/ST=MY/L=Wakefield/O=FIDO Alliance/OU=CWG/CN=FIDO Fake TPM Root Certificate Authority 2018/E=conformance-tools@fidoalliance.org
Iss. Sub.: /CN=Sample Attestation Root/O=FIDO Alliance/OU=UAF TWG,/L=Palo Alto/ST=CA/C=US
RP - attestation: Could not validate certificate path with any metadata root certificates (TPM)

The cert path is invalid based just on the first two certificates - the root cert is never evaluated in the above failures.

Here's a cert chain I pulled from one of the failures:

-----BEGIN CERTIFICATE-----
MIIFCTCCA/GgAwIBAgIPBFOW4i8bG5QOgEXkIYOOMA0GCSqGSIb3DQEBCwUAMEEx
PzA9BgNVBAMTNk5DVS1OVEMtS0VZSUQtRkY5OTAzMzhFMTg3MDc5QTZDRDZBMDNB
REM1NzIzNzQ0NUY2QTQ5QTAeFw0xODAyMDEwMDAwMDBaFw0yNTAxMzEyMzU5NTla
MAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtloDAIf6/+ZLLkIza
8Rl1fa7f70suUNKCdQhP2pSwmYC0ydZuWA+mAuTwUOlt1vcR/LF5a8CPqsPqOYvR
heH6kjgj+ig0KQkszhsgp/V4SzLkqQ+yVyltZexlaBci0G3Q/pq9+S5KTWsCM1n4
2T2sEpwO0qg9jrkVrfEm8fE2BkAZ1S05bd1xnFb33/qc7CVKkq4NrSvPzO+7wY+s
et5kubO4rF9OYucui5RXp5OqtmOYhrpP+24L0Zn4pGNmcKi6rfLCzhNk+VUmSMtJ
aioaJoixQESs14CBA+WyKtVckiCwNwSxh/2fuqhQXk6Sd8Pj1W4nRDaDMZAR5n9q
OD5ZAgMBAAGjggI9MIICOTAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADB7
BgNVHSABAf8EcTBvMG0GCSsGAQQBgjcVHzBgMF4GCCsGAQUFBwICMFIeUABGAEEA
SwBFACAARgBJAEQATwAgAFQAQwBQAEEAIABUAHIAdQBzAHQAZQBkACAAUABsAGEA
dABmAG8AcgBtACAASQBkAGUAbgB0AGkAdAB5MBAGA1UdJQQJMAcGBWeBBQgDMEoG
A1UdEQEB/wRAMD6kPDA6MTgwDgYFZ4EFAgMMBWlkOjEzMBAGBWeBBQICDAdOUENU
Nnh4MBQGBWeBBQIBDAtpZDpGRkZGRjFEMDAfBgNVHSMEGDAWgBR06HBu42LxTz8q
gK9ve4YdO8dyjTAdBgNVHQ4EFgQU8wDLKVfJ95dAGNbAJ9oX8xnCpKcwgYEGCCsG
AQUFBwEBBHUwczBxBggrBgEFBQcwAoZlaHR0cHM6Ly9wa2kuY2VydGluZnJhLmZp
ZG9hbGxpYW5jZS5vcmcvdHBtL05DVS1OVEMtS0VZSUQtRkY5OTAzMzhFMTg3MDc5
QTZDRDZBMDNBREM1NzIzNzQ0NUY2QTQ5QS5jcnQwegYDVR0fBHMwcTBvoG2ga4Zp
aHR0cHM6Ly9wa2kuY2VydGluZnJhLmZpZG9hbGxpYW5jZS5vcmcvdHBtL2NybC9O
Q1UtTlRDLUtFWUlELUZGOTkwMzM4RTE4NzA3OUE2Q0Q2QTAzQURDNTcyMzc0NDVG
NkE0OUEuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQCFeLsYhRb84bkazw2fQpP5yX2F
RtngLRUNZ4iKH+ygIYG8imIku3N+cIFvp0z5YxGp1fHtvfVSInvwhBm5B9vHjhbX
G8KWsBi3OFN69yFYygPpg+Y9PT7ryVHuMJtZcayh+FIiYiRTFt7ez77OK5FIhmYG
IimD4idNN2cKr/+H5yaxA9fYsK98XrNosjZ3CaWe5AQ6Pq5gdS865K9J8O5U4D9z
64DgOrXIfoCq3uRCZW3a4VQzbpUVJEktuunQNluEawFV3z49F1rQhl2xTmYdjKBH
rMbXhWf9jp2RIou8wkII0Q2yK3YKqY8OzBc+zpgZhvQouLUbRWxB4YJMv0dm
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGEzCCA/ugAwIBAgIPBMNlP3/+utdoQAPN76HaMA0GCSqGSIb3DQEBCwUAMIG/
MQswCQYDVQQGEwJVUzELMAkGA1UECAwCTVkxEjAQBgNVBAcMCVdha2VmaWVsZDEW
MBQGA1UECgwNRklETyBBbGxpYW5jZTEMMAoGA1UECwwDQ1dHMTYwNAYDVQQDDC1G
SURPIEZha2UgVFBNIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTgxMTAv
BgkqhkiG9w0BCQEWImNvbmZvcm1hbmNlLXRvb2xzQGZpZG9hbGxpYW5jZS5vcmcw
HhcNMTcwMjAxMDAwMDAwWhcNMzUwMTMxMjM1OTU5WjBBMT8wPQYDVQQDEzZOQ1Ut
TlRDLUtFWUlELUZGOTkwMzM4RTE4NzA3OUE2Q0Q2QTAzQURDNTcyMzc0NDVGNkE0
OUEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDXPnN9EaUHfvywqIiy
W1897f76nIjiKL8I3s+/fw7VYIvBvT4frTy/pQtLnhRgTEj3Cnf0Q3UhXtkAmEHf
XtA7Yhca2vrlhmtKJSNYRyO2ythszQGUkyhG8IKqX/L1zEPu0j2o4Oj38Ujix/zY
9snerZDZFEnZRrVn2PFxgd5/qvvp7d1B3VEFhLYFKE3uWmwV7BuzEErkzaGnd7+r
5PrS3dFuOIrzOqWxahVB3IcfJhiwKQqY5VV630TmgqHPRPdYRvQfljb3pCdHTOpC
eufB8u8rHEOiXaiBKJWKIwrVmljZsHH7/vjhNQMf+FG9uIJd4aQfRDnAQs6W+FBZ
i2FBAgMBAAGjggGHMIIBgzALBgNVHQ8EBAMCAYYwFgYDVR0gBA8wDTALBgkrBgEE
AYI3FR8wGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzASBgNVHRMBAf8ECDAG
AQH/AgEAMB0GA1UdDgQWBBR06HBu42LxTz8qgK9ve4YdO8dyjTAfBgNVHSMEGDAW
gBRDERaZmu6dUDfCT/7iWxXJCTM/MjBxBgNVHR8EajBoMGagZKBihmBodHRwczov
L3BraS5jZXJ0aW5mcmEuZmlkb2FsbGlhbmNlLm9yZy90cG0vY3JsL0ZJRE8gRmFr
ZSBUUE0gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxOC5jcmwweAYIKwYB
BQUHAQEEbDBqMGgGCCsGAQUFBzAChlxodHRwczovL3BraS5jZXJ0aW5mcmEuZmlk
b2FsbGlhbmNlLm9yZy90cG0vRklETyBGYWtlIFRQTSBSb290IENlcnRpZmljYXRl
IEF1dGhvcml0eSAyMDE4LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnThhSjy3CRNi
LdLG4+PUDpvIiRMq4FmBZpVrECwPyQhqmctVm3ZxGdYYEa90Bk76ZBli01jruas3
fyKfWsW4MRsiiAJoyjj7RexvYwHIb1GuOXzggYUgvADUHM/R203jD2xtlYyKd9I/
kYvJlRjiUShM7XgtO48aVCvuRhTicox2uS3ChxadMdFElXT0pcTl5NuvBlBWEFtd
oJq57AYYdwWfrLyudAgxMYZW5QIwvuxKZet+lXwHKBebNlgjVpskrSCP1UddVmix
drXh0FEvQ5j5+GR/vr7SumqqrK4JvAF4IpSluORzIAK1nH9KhzF3EtWcFnhhD4mu
4ZgbwTY7hi1mBH/pjiVo8svcIWSIQjI9mmS5r3rxAngrhXj0ursZQt63UPwX97FG
qUasiHSI0d93ley9OwhUN9e4iE6qf7Hg/c6EDQvL8j6XPRCvHx7/5eULlVFzb1Xp
Dc2U+/ODZ3ScaBDxUi50bCoGsCmH3m0WI9NK5dRLC4yLsScxzfDMs6wOixENM7p0
2n4FpEscsCoCRUBCWrUWVXTQsOUXor/IhOFaDtv13EagfYi/Pg3tIkbgcgMyD548
/10tY9GSCgrekxzdlk59rXQkX0jAOmKnAh2Gv/su5gDp81Oqy/M+BU7rceWpwd/F
augpMs7Z85P8W7FjOaTe1C/26qkFdzs=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICPTCCAeOgAwIBAgIJAOuexvU3Oy2wMAoGCCqGSM49BAMCMHsxIDAeBgNVBAMM
F1NhbXBsZSBBdHRlc3RhdGlvbiBSb290MRYwFAYDVQQKDA1GSURPIEFsbGlhbmNl
MREwDwYDVQQLDAhVQUYgVFdHLDESMBAGA1UEBwwJUGFsbyBBbHRvMQswCQYDVQQI
DAJDQTELMAkGA1UEBhMCVVMwHhcNMTQwNjE4MTMzMzMyWhcNNDExMTAzMTMzMzMy
WjB7MSAwHgYDVQQDDBdTYW1wbGUgQXR0ZXN0YXRpb24gUm9vdDEWMBQGA1UECgwN
RklETyBBbGxpYW5jZTERMA8GA1UECwwIVUFGIFRXRywxEjAQBgNVBAcMCVBhbG8g
QWx0bzELMAkGA1UECAwCQ0ExCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZI
zj0DAQcDQgAEH8hv2D0HXa59/BmpQ7RZehL/FMGzFd1QBg9vAUpOZ3ajnuQ94PR7
aMzH33nUSBr8fHYDrqOBb58pxGqHJRyX/6NQME4wHQYDVR0OBBYEFPoHA3CLhxFb
C0It7zE4w8hk5EJ/MB8GA1UdIwQYMBaAFPoHA3CLhxFbC0It7zE4w8hk5EJ/MAwG
A1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhAJ06QSXt9ihIbEKYKIjsPkri
VdLIgtfsbDSu7ErJfzr4AiBqoYCZf0+zI55aQeAHjIzA9Xm63rruAxBZ9ps9z2XN
lQ==
-----END CERTIFICATE-----
ynojima commented 2 years ago

@herrjemand As far as I check with v1.6.46, this issue still exists.

yackermann commented 2 years ago

@ynojima Try latest 1.6.48 https://builds.fidoalliance.org/Desktop%20UAF%20FIDO2%20U2F/EXPERIMENTAL/v1.6.48/

aseigler commented 2 years ago

v1.6.48 didn't help. Same issue.

aseigler commented 2 years ago

The CRL at this URL: https://pki.certinfra.fidoalliance.org/tpm/crl/FIDO%20Fake%20TPM%20Root%20Certificate%20Authority%202018.crl

$ openssl crl -in 'FIDO Fake TPM Root Certificate Authority 2018.crl' -text
Certificate Revocation List (CRL):
        Version 2 (0x1)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, ST = MY, L = Wakefield, O = FIDO Alliance, OU = CWG, CN = FIDO Fake TPM Root Certificate Authority 2018, emailAddress = conformance-tools@fidoalliance.org
        Last Update: Feb  1 00:00:00 2018 GMT
        Next Update: Feb  1 00:00:00 2020 GMT
        CRL extensions:
            X509v3 CRL Number:
                1
            X509v3 Authority Key Identifier:
                keyid:43:11:16:99:9A:EE:9D:50:37:C2:4F:FE:E2:5B:15:C9:09:33:3F:32

Is signed with this from the conformance metadata file Virtual RSA PKCS 1.5 SHA256 FIDO2 Conformance Testing CTAP2 Authenticator with TPM Attestation.json under attestationRootCertificates:

$ openssl x509 -in tpmroot.cer -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            8b:c2:5c:12:8b:13:42:d2
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, ST = MY, L = Wakefield, O = FIDO Alliance, OU = CWG, CN = FIDO Fake TPM Root Certificate Authority 2018, emailAddress = conformance-tools@fidoalliance.org
        Validity
            Not Before: Apr 25 05:45:38 2019 GMT
            Not After : Sep 10 05:45:38 2046 GMT
        Subject: C = US, ST = MY, L = Wakefield, O = FIDO Alliance, OU = CWG, CN = FIDO Fake TPM Root Certificate Authority 2018, emailAddress = conformance-tools@fidoalliance.org
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (4096 bit)
                Modulus:
                `snipped for brevity`
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign
            X509v3 Subject Key Identifier:
                43:11:16:99:9A:EE:9D:50:37:C2:4F:FE:E2:5B:15:C9:09:33:3F:32

The authority key identifier on the CRL matches the subject key identifier on the certificate, but the X509v3 Key Usage extension only has digitalSignature and keyCertSign, it is missing cRLSign which means it cannot be accepted as a CRL signer.

Additionally, the CRL in question and the one at https://pki.certinfra.fidoalliance.org/tpm/crl/NCU-NTC-KEYID-FF990338E187079A6CD6A03ADC57237445F6A49A.crl are currently expired.

ThaminduDilshan commented 2 years ago

@herrjemand any update regarding this test failure? Seems not fixed with v1.6.48

Spomky commented 2 years ago

What about the v1.7.0?

aseigler commented 2 years ago

This is still an issue in v1.7.2, same issue as I outlined prior above.

yackermann commented 2 years ago

Did you update metadata?

On Thu, 21 Jul 2022 at 9:03 PM, Alex Seigler @.***> wrote:

This is still an issue in v1.7.2, same issue as I outlined prior above.

— Reply to this email directly, view it on GitHub https://github.com/fido-alliance/conformance-test-tools-resources/issues/618#issuecomment-1191783155, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAMPOFGYJPUEXHUOS37JKILVVGGITANCNFSM5CSUBQVA . You are receiving this because you were mentioned.Message ID: <fido-alliance/conformance-test-tools-resources/issues/618/1191783155@ github.com>

-- Yuriy Ackermann FIDO, Identity, Standards skype: ackermann.yuriy github: @herrjemand https://github.com/herrjemand twitter: @herrjemand https://twitter.com/herrjemand medium: @herrjemand @.***>

aseigler commented 2 years ago

Did you update metadata? Yes, didn't change anything. The second cert in the attestationRootCertificates in the Virtual RSA PKCS 1.5 SHA256 FIDO2 Conformance Testing CTAP2 Authenticator with TPM Attestation.json file is the CRL signer for https://pki.certinfra.fidoalliance.org/tpm/crl/FIDO%20Fake%20TPM%20Root%20Certificate%20Authority%202018.crl and the cert does not have cRLSign key usage set, meaning it is not allowed to sign the CRL. Additionally, the CRL is expired.

aseigler commented 2 years ago
image image
ThaminduDilshan commented 2 years ago

Any update on resolution for this issue?

Kieun commented 2 years ago

Still has same issue in v1.7.6

Screen Shot 2022-10-06 at 5 48 30 PM Screen Shot 2022-10-06 at 5 48 39 PM
Kieun commented 2 years ago

@herrjemand is there any update on this issue? This issue blocks our interop testing plans.

yackermann commented 1 year ago

Ok... how about now? https://builds.fidoalliance.org/Desktop%20UAF%20FIDO2%20U2F/v1.7.7/

Kieun commented 1 year ago

@herrjemand let me check them again. Anyway, thanks for your effort. I'll give you the feedbacks.

ptravers-byid commented 1 year ago

@herrjemand we are still seeing the same issue with the certificates in 1.7.7

Milton-Ch commented 1 year ago

@herrjemand Testing with version 1.7.7 I usually pass all tests with TPM. But from 1.7.8 onwards I have the same problem with certificates as reported in this issue.

Kieun commented 1 year ago

This issue seems to be resolved in v1.7.11.

yackermann commented 1 year ago

Based on the recent feedback this issue resolved since 1.7.10