Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Certificate errors on five of the twelve blessed links #11929

Open
jonathandturner opened this issue Jun 29, 2016 · 18 comments
Open

Certificate errors on five of the twelve blessed links #11929

jonathandturner opened this issue Jun 29, 2016 · 18 comments
Labels

Comments

@jonathandturner
Copy link

@jonathandturner jonathandturner commented Jun 29, 2016

When I click on any of these:

screen shot 2016-06-29 at 10 53 55 am

I get a certificate error:

screen shot 2016-06-29 at 10 56 17 am

Incidentally, telling someone they should feel bad for helping to test your product is... an odd choice. Perhaps a more helpful message would be appropriate?

@metajack
Copy link
Contributor

@metajack metajack commented Jun 29, 2016

This seems to be #10550

@metajack
Copy link
Contributor

@metajack metajack commented Jun 29, 2016

@jonathandturner I don't disagree about the message, but it is poking fun at the site that fails not at the user. It's probably time to be slightly less flippant in our error messages considering it's not just us reading them now.

@jdm
Copy link
Member

@jdm jdm commented Jun 29, 2016

@jonathandturner What is the output of openssl --help and openssl version for you?

@asajeffrey
Copy link
Member

@asajeffrey asajeffrey commented Jun 29, 2016

IRC chat: http://logs.glob.uno/?c=mozilla%23servo&s=29+Jun+2016&e=29+Jun+2016#c466167

TL;DR: on a machine which doesn't have the problem:

$ openssl ciphers -v | grep -i sha256
DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
DHE-DSS-AES256-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA256
DH-RSA-AES256-SHA256    TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AES(256)  Mac=SHA256
DH-DSS-AES256-SHA256    TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AES(256)  Mac=SHA256
AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA256
DH-DSS-AES128-GCM-SHA256 TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AESGCM(128) Mac=AEAD
DHE-DSS-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(128) Mac=AEAD
DH-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA256
DHE-DSS-AES128-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA256
DH-RSA-AES128-SHA256    TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AES(128)  Mac=SHA256
DH-DSS-AES128-SHA256    TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AES(128)  Mac=SHA256
ECDH-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
ECDH-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
ECDH-RSA-AES128-SHA256  TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AES(128)  Mac=SHA256
ECDH-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(128)  Mac=SHA256
AES128-GCM-SHA256       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(128) Mac=AEAD
AES128-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA256
@jonathandturner
Copy link
Author

@jonathandturner jonathandturner commented Jun 29, 2016

@jdm

jturner-23759:servo jturner$ openssl --help
openssl:Error: '--help' is an invalid command.

Standard commands
asn1parse      ca             ciphers        crl            crl2pkcs7      
dgst           dh             dhparam        dsa            dsaparam       
ec             ecparam        enc            engine         errstr         
gendh          gendsa         genrsa         nseq           ocsp           
passwd         pkcs12         pkcs7          pkcs8          prime          
rand           req            rsa            rsautl         s_client       
s_server       s_time         sess_id        smime          speed          
spkac          verify         version        x509           

Message Digest commands (see the `dgst' command for more details)
md2            md4            md5            mdc2           rmd160         
sha            sha1           

Cipher commands (see the `enc' command for more details)
aes-128-cbc    aes-128-ecb    aes-192-cbc    aes-192-ecb    aes-256-cbc    
aes-256-ecb    base64         bf             bf-cbc         bf-cfb         
bf-ecb         bf-ofb         cast           cast-cbc       cast5-cbc      
cast5-cfb      cast5-ecb      cast5-ofb      des            des-cbc        
des-cfb        des-ecb        des-ede        des-ede-cbc    des-ede-cfb    
des-ede-ofb    des-ede3       des-ede3-cbc   des-ede3-cfb   des-ede3-ofb   
des-ofb        des3           desx           rc2            rc2-40-cbc     
rc2-64-cbc     rc2-cbc        rc2-cfb        rc2-ecb        rc2-ofb        
rc4            rc4-40         seed           seed-cbc       seed-cfb       
seed-ecb       seed-ofb       
jturner-23759:servo jturner$ openssl version
OpenSSL 0.9.8zh 14 Jan 2016
@jdm
Copy link
Member

@jdm jdm commented Jun 29, 2016

@jonathandturner Could you run openssl ciphers -v | grep -i sha256 to confirm the theory that your openssl doesn't support sha256?

@jonathandturner
Copy link
Author

@jonathandturner jonathandturner commented Jun 29, 2016

@jdm - I don't get anything when I run the command

@asajeffrey
Copy link
Member

@asajeffrey asajeffrey commented Jun 29, 2016

@jdm @jonathandturner it looks quite likely to be sha256 that's causing the problem.

@frewsxcv frewsxcv added the A-security label Jun 29, 2016
@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Jun 29, 2016

I get the Zoidberg error page and my OpenSSL has SHA256 stuffs:

$ openssl ciphers -v | grep -i sha256
DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
DHE-DSS-AES256-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA256
DH-RSA-AES256-SHA256    TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AES(256)  Mac=SHA256
DH-DSS-AES256-SHA256    TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AES(256)  Mac=SHA256
AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA256
DH-DSS-AES128-GCM-SHA256 TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AESGCM(128) Mac=AEAD
DHE-DSS-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(128) Mac=AEAD
DH-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA256
DHE-DSS-AES128-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA256
DH-RSA-AES128-SHA256    TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AES(128)  Mac=SHA256
DH-DSS-AES128-SHA256    TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AES(128)  Mac=SHA256
ECDH-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
ECDH-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
ECDH-RSA-AES128-SHA256  TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AES(128)  Mac=SHA256
ECDH-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(128)  Mac=SHA256
AES128-GCM-SHA256       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(128) Mac=AEAD
AES128-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA256

On a side note, https://servo.org supports ciphersuites that use SHA1, not just SHA256:

https://dev.ssllabs.com/ssltest/analyze.html?d=servo.org&s=104.31.74.227&hideResults=on&latest

@asajeffrey
Copy link
Member

@asajeffrey asajeffrey commented Jun 29, 2016

SHA256 compatibility: https://support.globalsign.com/customer/portal/articles/1499561-sha-256-compatibility

In particular, SHA256 is only supported in OS X 10.5 and above. @jonathandturner are you on
OS X by any chance?

@asajeffrey
Copy link
Member

@asajeffrey asajeffrey commented Jun 29, 2016

@frewsxcv your openssl may be picking up a different version of the library than servo :(

@jonathandturner
Copy link
Author

@jonathandturner jonathandturner commented Jun 29, 2016

@asajeffrey - I'm on OS X 10.11.5

@jdm
Copy link
Member

@jdm jdm commented Jun 29, 2016

#11932 proposes a more useful SSL error page; unfortunately as long as we use the stock system OpenSSL that's available, we may end up in cases like this one where OpenSSL 0.9.8 simply cannot connect to some sites (see the simulated handshake list at https://dev.ssllabs.com/ssltest/analyze.html?d=servo.org&s=104.31.74.227).

@asajeffrey
Copy link
Member

@asajeffrey asajeffrey commented Jun 30, 2016

I think #11932 is about as good as we'll get right now, so I'll remove the P1 label.

@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Jun 30, 2016

Something that's also interesting: I can only get the TLS errors when using release mode. The pages load fine for me in debug dev mode.

@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Jun 30, 2016

Using this Servo patch, I was able to switch the TLS backend for Hyper to be Security Framework (ignore some of the changes in there about the connection field in that struct getting removed. This remedied the security issues I encountered above with OpenSSL.

@atouchet
Copy link
Contributor

@atouchet atouchet commented Nov 2, 2018

Is this issue still relevant?

@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Nov 2, 2018

Is there another issue tracking improvements to TLS errors?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
6 participants
You can’t perform that action at this time.