I love that when it happens :)

2015-05-12 16:56 GMT+02:00 Ben Humpert <b...@an3k.de>:
> Ok, after plenty of testing and some googling: the name constraints
> extension is ... improvable. I ran plenty of tests but it looks like
> that the extension is not very well implemented in todays browsers.
>
> I have attached three txt files (DOS format) with the settings and
> results of each test run. Between each test the browsers cache, etc.
> was completely cleared and the browser got restarted. I validated the
> used leaf certificates using serial number / hash and the signing CA
> hash between each test run.
>
> I used "certificate warning" if an error is shown but the user is
> allowed to continue browsing and "certificate error" if the user is
> NOT allowed to continue.
>
> Results:
> - Internet Explorer 11 does not understand the name IP in the
> subjectAltName extension. However it understands the name DNS.
> - Internet Explorer 11 just knows one certificate warning "This
> website's address doesn't match the address in the security
> certificate" regardless of why the certificate is invalid and no error
> at all.
>
> - (Test Run A.txt) nameConstraints extension NOT present
>   - everything is fine
>
> - (Test Run B.txt) nameConstraints extension present with
> permitted;DNS and permitted;IP
>   - OpenSSL s_client throws "Verify return code: 51 (unsupported name
> constraint type)" whenever the name IP is present in the
> subjectAltName extension. It does not do so when the name DNS is used
> or when no subjectAltName extension is present at all. See Test B1,
> B5, B8 and compare with Test B2, B3, B7
>   - OpenSSL s_client throws "Verify return code: 47 (permitted subtree
> violation)" while there is no violation. See Test B2
>   - OpenSSL s_client does not check for nameConstraints violation in
> CN at all. See Test B7, B10
>   - Firefox does NOT check for nameConstraints violation in CN if
> subjectAltName is present. See Test B5
>   - Firefox just throws a warning "ssl_error_bad_cert_domain" instead
> of an error when the certificate is used on a domain / ip address
> which is not specified in the certificate. See Test B3, B4
>   - Chrome throws an error "Server's certificate is invalid" when
> there is no subjectAltName present but the ip address matches the
> certificate CN. See Test B4
>
> - (Test Run C.txt) nameConstraints extension present with
> permitted;DNS and permitted;IP and permitted;dirName
>   - Firefox throws an error "sec_error_cert_not_in_name_space" even
> when the domain is specified in subjectAltName and no nameConstraints
> violation exists. It's by the way the first time Internet Explorer
> acted correctly ;). See Test C2
>   - OpenSSL s_client throws "Verify return code: 47 (permitted subtree
> violation)" while there is no violation. See Test C2
>   - Chrome, Firefox (and for sure Internet Explorer) throwed an error
> while there is no nameConstraints violation. Only OpenSSL s_client
> acted correctly (but only because it doesn't check CN). See Test C4
Ok, after plenty of testing and some googling: the name constraints extension 
is ... improvable.

My Structure:
- Root CA
  - Intermediate CA 1
    - Intermediate CA 2
      - Intermediate CA 3
        - Signing CA

The Intermediate CA 3 writes name constraints into the Signing CA's 
certificate. The web server provides certificates for all Intermediate CAs and 
the Signing CA in the correct order.

I didn't had any nameConstraints configured in these tests
###################################
Test A1

leaf certificate issued to >> E = r...@an3k.de, CN = backup.an3k.lan, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
subjectAltName=IP:10.11.12.13

- Google Chrome 42
  https://backup.an3k.lan       certification warning ("Server's certificate 
does not match the URL")
  https://10.11.12.13           green lock

- Mozilla Firefox 37
  https://backup.an3k.lan       certification warning 
("ssl_error_bad_cert_domain")
  https://10.11.12.13           gray lock

- Internet Explorer 11
  https://backup.an3k.lan       black lock
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client 
  https://10.11.12.13           "Verify return code: 0 (ok)"
###################################
Test A2 (need to test)

leaf certificate issued to >> E = r...@an3k.de, CN = 10.11.12.13, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
subjectAltName=DNS:backup.an3k.lan

- Google Chrome 42
  https://backup.an3k.lan       green lock
  https://10.11.12.13           certification warning ("Server's certificate 
does not match the URL")

- Mozilla Firefox 37
  https://backup.an3k.lan       gray lock
  https://10.11.12.13           certification warning 
("ssl_error_bad_cert_domain")

- Internet Explorer 11
  https://backup.an3k.lan       black lock
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client 
  https://10.11.12.13           "Verify return code: 0 (ok)"
###################################
Test A3

leaf certificate issued to >> E = r...@an3k.de, CN = backup.an3k.lan, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
no subjectAltName extension

- Google Chrome 42
  https://backup.an3k.lan       green lock
  https://10.11.12.13           certification warning ("Server's certificate 
does not match the URL")

- Mozilla Firefox 37
  https://backup.an3k.lan       gray lock
  https://10.11.12.13           certification warning 
("ssl_error_bad_cert_domain")

- Internet Explorer 11
  https://backup.an3k.lan       black lock
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client 
  https://10.11.12.13           "Verify return code: 0 (ok)"
###################################
Test A4

leaf certificate issued to >> E = r...@an3k.de, CN = 10.11.12.13, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
no subjectAltName extension

- Google Chrome 42
  https://backup.an3k.lan       certification error ("Server's certificate is 
invalid")
  https://10.11.12.13           green lock

- Mozilla Firefox 37
  https://backup.an3k.lan       certification warning 
("ssl_error_bad_cert_domain")
  https://10.11.12.13           gray lock

- Internet Explorer 11
  https://backup.an3k.lan       certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           black lock

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client 
  https://10.11.12.13           "Verify return code: 0 (ok)"
Ok, after plenty of testing and some googling: the name constraints extension 
is ... improvable.

My Structure:
- Root CA
  - Intermediate CA 1
    - Intermediate CA 2
      - Intermediate CA 3
        - Signing CA

The Intermediate CA 3 writes name constraints into the Signing CA's 
certificate. The web server provides certificates for all Intermediate CAs and 
the Signing CA in the correct order.

I used this configuration:
permitted;DNS.0=.lan
permitted;DNS.1=.local
permitted;IP.0=10.0.0.0/255.0.0.0
permitted;IP.1=172.16.0.0/255.240.0.0
permitted;IP.2=192.168.0.0/255.255.0.0
###################################
Test B1

leaf certificate issued to >> E = r...@an3k.de, CN = backup.an3k.lan, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
subjectAltName=IP:10.11.12.13

- Google Chrome 42
  https://backup.an3k.lan       certification warning ("Server's certificate 
does not match the URL")
  https://10.11.12.13           green lock

- Mozilla Firefox 37
  https://backup.an3k.lan       certification warning 
("ssl_error_bad_cert_domain")
  https://10.11.12.13           gray lock

- Internet Explorer 11
  https://backup.an3k.lan       black lock
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 51 (unsupported name 
constraint type)"
###################################
Test B2

leaf certificate issued to >> E = r...@an3k.de, CN = 10.11.12.13, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
subjectAltName=DNS:backup.an3k.lan

- Google Chrome 42
  https://backup.an3k.lan       green lock
  https://10.11.12.13           certification warning ("Server's certificate 
does not match the URL")

- Mozilla Firefox 37
  https://backup.an3k.lan       gray lock
  https://10.11.12.13           certification warning 
("ssl_error_bad_cert_domain")

- Internet Explorer 11
  https://backup.an3k.lan       black lock
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 47 (permitted subtree 
violation)"
###################################
Test B3

leaf certificate issued to >> E = r...@an3k.de, CN = backup.an3k.lan, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
no subjectAltName extension

- Google Chrome 42
  https://backup.an3k.lan       green lock
  https://10.11.12.13           certification error ("Server's certificate is 
invalid")

- Mozilla Firefox 37
  https://backup.an3k.lan       gray lock
  https://10.11.12.13           certification warning 
("ssl_error_bad_cert_domain")

- Internet Explorer 11
  https://backup.an3k.lan       black lock
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 0 (ok)"
###################################
Test B4

leaf certificate issued to >> E = r...@an3k.de, CN = 10.11.12.13, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
no subjectAltName extension

- Google Chrome 42
  https://backup.an3k.lan       certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")
  https://10.11.12.13           certification error ("Server's certificate is 
invalid")

- Mozilla Firefox 37
  https://backup.an3k.lan       certification warning 
("ssl_error_bad_cert_domain")
  https://10.11.12.13           gray lock

- Internet Explorer 11
  https://backup.an3k.lan       certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 0 (ok)"
###################################
Test B5

leaf certificate issued to >> E = r...@an3k.de, CN = www.an3k.de, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
subjectAltName=IP:10.11.12.13

- Google Chrome 42
  https://www.an3k.de           certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")
  https://10.11.12.13           certification error ("Server's certificate is 
invalid")

- Mozilla Firefox 37
  https://www.an3k.de           certification warning 
("ssl_error_bad_cert_domain")
  https://10.11.12.13           gray lock

- Internet Explorer 11
  https://www.an3k.de           certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 51 (unsupported name 
constraint type)"
###################################
Test B6

leaf certificate issued to >> E = r...@an3k.de, CN = 10.11.12.13, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
subjectAltName=DNS:www.an3k.de

- Google Chrome 42
  https://www.an3k.de           certification error ("Server's certificate is 
invalid")
  https://10.11.12.13           certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")

- Mozilla Firefox 37
  https://www.an3k.de           certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://www.an3k.de           certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 47 (permitted subtree 
violation)"
###################################
Test B7

leaf certificate issued to >> E = r...@an3k.de, CN = www.an3k.de, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
no subjectAltName extension

- Google Chrome 42
  https://www.an3k.de           certification error ("Server's certificate is 
invalid")
  https://10.11.12.13           certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")

- Mozilla Firefox 37
  https://www.an3k.de           certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://www.an3k.de           certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 0 (ok)"
###################################
Test B8

leaf certificate issued to >> E = r...@an3k.de, CN = www.an3k.de, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
subjectAltName=IP:8.8.8.8

- Google Chrome 42
  https://www.an3k.de           certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")
  https://10.11.12.13           certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")

- Mozilla Firefox 37
  https://www.an3k.de           certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://www.an3k.de           certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 51 (unsupported name 
constraint type)"
###################################
Test B9

leaf certificate issued to >> E = r...@an3k.de, CN = 8.8.8.8, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
subjectAltName=DNS:www.an3k.de

- Google Chrome 42
  https://www.an3k.de           certification error ("Server's certificate is 
invalid")
  https://10.11.12.13           certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")

- Mozilla Firefox 37
  https://www.an3k.de           certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://www.an3k.de           certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 47 (permitted subtree 
violation)"
###################################
Test B10

leaf certificate issued to >> E = r...@an3k.de, CN = 8.8.8.8, O = an3k 
Industries Ltd., L = Munich, S = DE-BY, C = DE <<
no subjectAltName extension

- Google Chrome 42
  https://backup.an3k.lan       certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")
  https://10.11.12.13           certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")

- Mozilla Firefox 37
  https://backup.an3k.lan       certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://backup.an3k.lan       certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 0 (ok)"
Ok, after plenty of testing and some googling: the name constraints extension 
is ... improvable.

My Structure:
- Root CA
  - Intermediate CA 1
    - Intermediate CA 2
      - Intermediate CA 3
        - Signing CA

The Intermediate CA 3 writes name constraints into the Signing CA's 
certificate. The web server provides certificates for all Intermediate CAs and 
the Signing CA in the correct order.

I used this configuration:
permitted;DNS.0=.lan
permitted;DNS.1=.local
permitted;IP.0=10.0.0.0/255.0.0.0
permitted;IP.1=172.16.0.0/255.240.0.0
permitted;IP.2=192.168.0.0/255.255.0.0
permitted;dirName=dir_sect

[dir_sect]
CN=10.11.12.13
###################################
Test C1

leaf certificate issued to >> CN = backup.an3k.lan <<
subjectAltName=IP:10.11.12.13

- Google Chrome 42
  https://backup.an3k.lan       certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")
  https://10.11.12.13           certification error ("Server's certificate is 
invalid")

- Mozilla Firefox 37
  https://backup.an3k.lan       certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://backup.an3k.lan       certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 47 (permitted subtree 
violation)"
###################################
Test C2

leaf certificate issued to >> CN = 10.11.12.13 <<
subjectAltName=DNS:backup.an3k.lan

- Google Chrome 42
  https://backup.an3k.lan       green lock
  https://10.11.12.13           certification warning ("Server's certificate 
does not match the URL")

- Mozilla Firefox 37
  https://backup.an3k.lan       certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://backup.an3k.lan       black lock
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 47 (permitted subtree 
violation)"
###################################
Test C3

leaf certificate issued to >> CN = backup.an3k.lan <<
no subjectAltName extension

- Google Chrome 42
  https://backup.an3k.lan       certification error ("Server's certificate is 
invalid")
  https://10.11.12.13           certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")

- Mozilla Firefox 37
  https://backup.an3k.lan       certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://backup.an3k.lan       certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 47 (permitted subtree 
violation)"
###################################
Test C4

leaf certificate issued to >> CN = 10.11.12.13 <<
no subjectAltName extension

- Google Chrome 42
  https://backup.an3k.lan       certification error ("Server's certificate does 
not match the URL" and "Server's certificate is invalid")
  https://10.11.12.13           certification error ("Server's certificate is 
invalid")

- Mozilla Firefox 37
  https://backup.an3k.lan       certification error 
("sec_error_cert_not_in_name_space")
  https://10.11.12.13           certification error 
("sec_error_cert_not_in_name_space")

- Internet Explorer 11
  https://backup.an3k.lan       certification warning ("This website's address 
doesn't match the address in the security certificate")
  https://10.11.12.13           certification warning ("This website's address 
doesn't match the address in the security certificate")

- OpenSSL 1.0.1f (Ubuntu Server 14.04.2) s_client
  https://10.11.12.13           "Verify return code: 0 (ok)"
_______________________________________________
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to