[SSL Observatory] www.torproject.org certificate chain fails to validate in Chrome on Windows
Ondrej Mikle
ondrej.mikle at nic.cz
Thu Jan 5 10:42:56 PST 2012
On 01/05/12 02:14, Adam Langley wrote:
> On Wed, Jan 4, 2012 at 7:23 PM, Ondrej Mikle<ondrej.mikle at nic.cz> wrote:
>> Try to connect to https://www.torproject.org in Chrome on Windows. Latest
>> Chrome (16.0.912.63 m) will give you "invalid signature" warning.
>
> Does this happen every time for you? What version of Windows? Have you
> altered your root store at all? Is your system clock wrong? Can you
> include the error from Chrome?
Windows version: WinXP SP2 (very unpatched virtual machine I keep for debugging
and testing compatibility stuff; sorry, should've mentioned it right away).
An other guy from tor-talk list says he's using Windows Server 2003 (and same
Chrome version; says Chrome on MacOS is fine):
OS Name Microsoft(R) Windows(R) Server 2003, Enterprise
EditionVersion 5.2.3790 Service Pack 2 Build 3790OS
Manufacturer Microsoft Corporation
System Manufacturer MSI
System Model MS-7350System Type X86-based PCProcessor x86 Family 6
Model 15 Stepping 11 GenuineIntel ~3000 MhzProcessor x86 Family 6
Model 15 Stepping 11 GenuineIntel ~3000 MhzHardware Abstraction
Layer Version = "5.2.3790.3959 (srv03_sp2_rtm.070216-1710)"
Apparently it started happening on 2011-12-21
(http://permalink.gmane.org/gmane.network.tor.general/2555), but the leaf cert
for torproject hasn't changed in last two-three months. The chain sent by server
in handshake includes cross-cert from Entrust for Digicert since today, but
didn't make any difference.
Time: my VM is sychronized via VirtualBox (host uses NTP)
Altering truststore: I don't recall altering the trust store. Nevertheless the
root cert for "DigiCert High Assurance EV Root CA" is trusted by the trust store
(all trusted purposes except client authentication and secure mail are checked).
Error: see screenshot and some paste of event log below.
On 01/05/12 01:45, Chris Palmer wrote:
> I can't reproduce the problem on Chrome 16.0.912.63 m on Windows 7. I
> connect fine with no errors, and it passes Chrome's preloaded public
> key pinning check. Perhaps the chain you are getting fails the pinning
> check? (Check the SHA-1 hashes of the SPKIs of the certs in your cert
> chain against the hashes found in chrome://net-internals/#hsts . Also,
> the error page should mention something about absolutely not being
> able to proceed because Chrome is certain that the certificate chain
> is wrong.)
I'm not sure what exactly the error means, it's not very descriptive (see
attached screenshot of Chrome and cert viewer). The certviewer says that the two
Digicert certs in chain are ok, only the leaf cert for www.torproject.org has
"nonvalid signature".
The HSTS "query domain" tool outputs for www.torproject.org:
mode: STRICT include_subdomains:true domain:www.torproject.org is_preloaded:true
pubkey_hashes:sha1/o5OZxATDsgmwgcIfIWIneMJ0jkw=,sha1/gzF+YoVCU9bXeDGQ7JGQVumRueM=,sha1/juNxSTv9UANmpC9kF5GKpmWNx3Y=,sha1/lia43lPolzSPVIq34Dw57uYcLD8=,sha1/rzEyQIKOh77j87n5bjWUNguXF8Y=
SPKI pins I computed from the chain shown by Chrome (all sha1):
KfCQmMZXq8WLLNsf+vWpC5jgCfU= (www.torproject.org)
lfnXQ0sc5x3vQhHua+PA4CVvrZU= (Digicert High Assurance CA-3)
gzF+YoVCU9bXeDGQ7JGQVumRueM= (Digicert root or the cross cert)
Thus the pin should be not a problem, it matches the Digicert root (which is
trusted by Windows trust store).
(The oneliner I used, just in case there's error:
openssl x509 -inform pem -in digicert-ha-ca-3.pem -pubkey -noout | grep -v -e
'^--' | base64 -d | sha1sum | cut -f 1 -d " " | perl -ne 'chomp;
s/(.{2})/pack('C', hex($1))/ge; print $_;' | base64
)
I copy&pasted the following error from the "Events" tab (HTTP_STREAM_JOB), maybe
the error -207 means something specific?
https://www.torproject.org/
Start Time: Thu Jan 05 2012 18:28:21 GMT+0100 (Central Europe Standard Time)
t=1325784501162 [st= 0] +HTTP_STREAM_JOB [dt=175]
--> original_url = "https://www.torproject.org/"
--> url = "https://www.torproject.org/"
t=1325784501162 [st= 0] +PROXY_SERVICE [dt= 0]
t=1325784501162 [st= 0] PROXY_SERVICE_RESOLVED_PROXY_LIST
--> pac_string = "DIRECT"
t=1325784501162 [st= 0] -PROXY_SERVICE
t=1325784501162 [st= 0] +SOCKET_POOL [dt=173]
t=1325784501335 [st=173] SOCKET_POOL_BOUND_TO_CONNECT_JOB
--> source_dependency = {"id":626,"type":4}
t=1325784501335 [st=173] SOCKET_POOL_BOUND_TO_SOCKET
--> source_dependency = {"id":635,"type":5}
t=1325784501335 [st=173] -SOCKET_POOL
--> net_error = -207 (CERT_INVALID)
t=1325784501337 [st=175] -HTTP_STREAM_JOB
Sorry for giving you additinal work, I though it would be something much
simpler. I'll try some other Windows machines when I get to them tomorrow.
Ondrej
-------------- next part --------------
A non-text attachment was scrubbed...
Name: chrome-torproject.png
Type: image/png
Size: 236909 bytes
Desc: not available
URL: <http://lists.eff.org/pipermail/observatory/attachments/20120105/b309a23c/attachment.png>
More information about the Observatory
mailing list