Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Why a fake certificate can pass validation?

67 views
Skip to first unread message

Hubert Kario

unread,
Feb 13, 2015, 6:43:36 AM2/13/15
to dev-se...@lists.mozilla.org, chenyt....@gmail.com, mozilla-de...@lists.mozilla.org
On Wednesday 04 February 2015 13:27:54 chenyt....@gmail.com wrote:
> I'm working on some testing tool for testing SSL/TLS implementations. When I
> made a fake certificate, I found that it can be verified against a
> certificate stored in Chrome's certificate manager (i.e., Builtin Object
> Token-Verisign Class 1 Public Primary Certification Authority). I just used
> a fake private key to issue the fake certificate, but let the issuer be the
> CA certificate. Can any guys help me to confirm that whether it is a
> security problem?
>
> NSS version: 3.17.3. The validation result: certificate is valid
> Chrome: the certificate can be imported and it says that the certificate has
> been verified. Firefox: the fake certificate cannot pass validation.
>
> CA certificate:
>
> -----BEGIN CERTIFICATE-----
> MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkG
> A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
> cyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
> MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
> BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmlt
> YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
> ADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0f
> zGVuDLDQVoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHi
> TkVWaR94AoDa3EeRKbs2yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0G
> CSqGSIb3DQEBBQUAA4GBAFgVKTk8d6PaXCUDfGD67gmZPCcQcMgMCeazh88K4hiW
> NWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n0a3hUKw8fGJLj7qE1xIV
> Gx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZRjXZ+Hxb
> -----END CERTIFICATE-----
>
> Fake certificate:
> -----BEGIN CERTIFICATE-----
> MIIEIDCCA4mgAwIBAgIHK1sjUF4/+jANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQG
> EwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDEg
> UHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwIBgPMjAxMzA2
> MTAwMDAwMDBaFw0xNTExMDgxOTU0MzBaMIHNMRYwFAYDVQQIEw1NYXNzYWNodXNl
> dHRzMQ8wDQYDVQQHEwZCb3N0b24xEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsr
> BgEEAYI3PAIBAhMIRGVsYXdhcmUxHTAbBgNVBA8TFFByaXZhdGUgT3JnYW5pemF0
> aW9uMSUwDgYDVQQFEwc0NDAzODQ1MBMGA1UEAxMMZmlkZWxpdHkuY29tMQswCQYD
> VQQGEwJERTEfMB0GA1UEChMWU05DIExFIFBBUklTSUVOIExJQkVSRTCBnzANBgkq
> hkiG9w0BAQEFAAOBjQAwgYkCgYEAw18yZvsaWTEOQ/FtnnmyXgTFFng0BsC2GISQ
> yv/qqU/Z42ev8ddUSYPC6g0j/ijW6Vn4Si2i47dzDdSx79N3Kqd/xChw1ceLvIDQ
> FwgyjYwBgfrsasUXWrMMCv83H0UijVpFnPjhge3XGber48ByGDYTsGC3zggj6gGw
> jnuAILECAwEAAaOCAXMwggFvMAsGA1UdDwQEAwIFoDAdBgNVHSUEFjAUBggrBgEF
> BQcDAQYIKwYBBQUHAwIwZQYIKwYBBQUHAQEEWTBXMCMGCCsGAQUFBzABhhdodHRw
> Oi8vb2NzcC5lbnRydXN0Lm5ldDAwBggrBgEFBQcwAoYkaHR0cDovL2FpYS5lbnRy
> dXN0Lm5ldC9sMWUtY2hhaW4uY2VyMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9j
> cmwuZW50cnVzdC5uZXQvbGV2ZWwxZS5jcmwwQQYDVR0gBDowODA2BgpghkgBhvps
> CgECMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly93d3cuZW50cnVzdC5uZXQvcnBhMBcG
> A1UdEQQQMA6CDGZpZGVsaXR5LmNvbTAfBgNVHSMEGDAWgBRbQYqyxEPBvb/IVEFV
> neCWrf+5oTAdBgNVHQ4EFgQUC/COx9x/MMdUY97t7Uwe0m04NzMwCQYDVR0TBAIw
> ADANBgkqhkiG9w0BAQUFAAOBgQCfcMnePFx7od7ppqxgCVIFqoH/aF7K55pZRO7U
> akxT4FclO6rowsLzeo7yaR7nnKM5kymSp0busJ1T/0b7UqCWjK/1KVVcsBiu7B+e
> P+V67R3RVYYX5KvKGatAFbzFuExM9NxhWqPizgbA3UoUxtOS6imG1nD0LMwaoSHM
> 6Uoo2A==
> -----END CERTIFICATE-----

I cannot reproduce the issue:
(the second cert from above is saved as test.pem, geotrust is below)
$ rpm -q nspr nss
nspr-4.10.8-1.fc20.x86_64
nspr-4.10.8-1.fc20.i686
nss-3.17.4-1.fc20.x86_64
nss-3.17.4-1.fc20.i686
$ certutil -N --empty-password -d sql:nss/
$ certutil -A -n test -i /tmp/cert.pem -t '' -d sql:nss/
$ certutil -A -n geotrust -i /tmp/GeoTrustGlobalCA.pem -t '' -d sql:nss/
$ certutil -V -n geotrust -u A -d sql:nss/
certutil: certificate is valid
$ certutil -V -n test -u V -d sql:nss/
certutil: certificate is invalid: Peer's Certificate issuer is not recognized.

Though if I try to validate it with OpenSSL it complains about incorrect
formatting:
$ openssl verify -CAfile /etc/pki/ca-trust/extracted/openssl/ca-
bundle.trust.crt cert.pem
cert.pem: ST = Massachusetts, L = Boston, 1.3.6.1.4.1.311.60.2.1.3 = US,
1.3.6.1.4.1.311.60.2.1.2 = Delaware, businessCategory = Private Organization,
serialNumber = 4403845 + CN = fidelity.com, C = DE, O = SNC LE PARISIEN LIBERE
error 7 at 0 depth lookup:certificate signature failure
140679295047552:error:0407006A:rsa
routines:RSA_padding_check_PKCS1_type_1:block type is not 01:rsa_pk1.c:100:
140679295047552:error:04067072:rsa routines:RSA_EAY_PUBLIC_DECRYPT:padding
check failed:rsa_eay.c:797:
140679295047552:error:0D0C5006:asn1 encoding routines:ASN1_item_verify:EVP
lib:a_verify.c:233:

You're not using current NSS, 3.17.4 was released some time ago...

GeoTrustGlobalCA.pem:
-----BEGIN CERTIFICATE-----
MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
-----END CERTIFICATE-----

--
Regards,
Hubert Kario
Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic
signature.asc

Hubert Kario

unread,
Feb 13, 2015, 6:43:37 AM2/13/15
to dev-se...@lists.mozilla.org, chenyt....@gmail.com, mozilla-de...@lists.mozilla.org
signature.asc
0 new messages