Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Firefox OCSP error: https://pgp.custhelp.com/

12-10-2009, 23:17 door Bitwiper, 19 reacties
Als ik met Firefox naar http://www.pgp.com/ ga en daar bovenin de pagina op "Support" klik word ik naar https://pgp.custhelp.com/app gestuurd, maar krijg dan een onverwachte foutmelding te zien:
Secure Connection Failed
An error occurred during a connection to pgp.custhelp.com.
Invalid OCSP signing certificate in OCSP response.
(Error code: sec_error_ocsp_invalid_signing_cert)
The page you are trying to view can not be shown because the authenticity of the received data could not be verified.
* Please contact the web site owners to inform them of this problem.
[ Try Again ]
Dit gebeurt zowel met Firefox 3.0.14 als met 3.5.3, maar op mijn XP machines niet met MSIE. De reden dat er geen probleem is met MSIE is dat deze in plaats van OCSP te gebruiken een (veel langere) CRL ophaalt die kennelijk qua handtekeningen e.d. geen problemen oplevert.

Als ik met wireshark kijk tijdens de Firefox sessie dan zie ik dat direct na het ophalen van het certificaat vanaf pgp.custhelp.com er een DNS lookup plaatsvindt van ocsp.usertrust.com, met als antwoord:
ocsp.comodoca.com A 91.209.196.169 A 91.199.212.169 A 149.5.128.169

Vervolgens verzendt Firefox 2x een OCSP request naar het eerste geretourneerde IP-adres, waarop er in beide gevallen een response volgt die "succesfull" luidt. Na het tweede OCSP antwoord van ocsp.comodoca.com meldt Firefox terug aan pgp.custhelp.com (met IP-adres 63.240.89.11) op poort 443:
TLSv1 Alert (Level: Fatal, Description: Bad Certificate)
Er wordt op geen enkele wijze aan ocsp.comodoca.com teruggemeld dat er een probleem is.

Ik gok (aan de hand van de error code "sec_error_ocsp_invalid_signing_cert") dat hoewel het OCSP antwoord zegt dat alles in orde is, dat antwoord zelf niet op geldigheid gecontroleerd kan worden; zo te zien omdat de digitale handtekening daarvan niet verifieerbaar is vanwege het ontbreken van een root certificate daarvoor in Firefox.

Mijn vragen luiden:
1) Zien jullie dit ook als je met Firefox naar https://pgp.custhelp.com/ gaat?
2) Zien jullie dit ook als je met MSIE 7 (of 8) onder Vista (of Windows 7) naar https://pgp.custhelp.com/ gaat? (volgens http://en.wikipedia.org/wiki/OCSP zou MSIE7 en hoger onder Vista wel OCSP gebruiken).
3) Andere browsers?
4) Heeft iemand een andere verklaring, of doe ik iets stoms?
5) Ik heb me nog niet echt in OCSP verdiept, weet iemand hoe zo'n signature op een OCSP response in elkaar zit?

(Overigens begrijp ik niet dat een bedrijf als PGP haar support uitbesteedt aan een bedrijf dat z'n crypto niet op orde lijkt te hebben; in elk geval is het gebruik van een wildcard *.custhelp.com allesbehalve fraai, maar dat terzijde).
Reacties (19)
12-10-2009, 23:24 door Anoniem
Met FireFox 3.5.3 en IE 8 onder Vista kan ik bij allebei gewoon op de pagina komen, maar hij is wel lang bezig. Zou ook niet weten wat er aan de hand is..
13-10-2009, 00:34 door Anoniem
Ik heb geen problemen hiero op FF 3.5 linux. OCSP zit toch nog niet in de huidige FF versie's?
13-10-2009, 00:55 door Rubbertje
1. Nee, ik kom gewoon op een pagina waarbij er de melding wordt gemaakt dat ik niet ingelogd ben.
2. Nee, voor MSIE geldt exact hetzelfde. Kom wederom in de knowledgebase
3. Ik gebruik alleen FF en MSIE
4. Zou het misschien iets met de instellingen van je firewall te maken kunnen maken?
5. Nee, geen idee.

Ik heb overigens een XPmachine en gebruik de nieuwste versies van IE en FF
13-10-2009, 09:16 door Bitwiper
Dank voor jullie hulp en reacties!

Ik gebruik in mijn Engelstalige Firefox de volgende instellingen, onder menu "Tools | Options", dan Advanced | Encryption tab | Validation knop:
[v] Use the online Certificate Status Protocol (OCSP) to confirm the current validity of certificates
(o) Validate the certificate if it specifies an OCSP server
( ) Validate all certificates using the following OCSP server: (gevolgd door twee niet selecteerbare entries)

[v] When an OCSP server connection fails, treat the certificate as invalid
Als ik dat onderste vinkje weghaal krijg ik de foutmelding niet meer. Ik ging ervan uit dat dit vinkje gezet de default Firefox instelling is, maar het zou best kunnen dat ik dit eerder in alle PC's waarop ik dit geprobeerd heb, aangevinkt heb.

Wat gebeurt er bij jullie als je de bovenstaande instellingen in Firefox gebruikt?
13-10-2009, 09:59 door Anoniem
Bij mij was het uitgevinkt, en ik weet zeker dat ik het niet heb aangepast, dus het zal wel standaard uitgevinkt staan.
Als ik 'm aanvink kan ik ook niet meer op de pagina gebruiken en krijg dan dezelfde foutmelding.
13-10-2009, 10:29 door dim
Ik zie het alleen als zowel de optie "Use the Online Certificate Status Protocol (OCSP) to confirm the current validity of certificates" als "When an OCSP server connection fails, treat the certificate as invalid" aanstaan.

Als je die laatste optie uitzet, kom je gewoon op de site, zonder problemen. Dit is allemaal met de 20091002 nightly trunk build.

In het certificate zelf staat onder de revocation options:

Not Critical
URI: http://crl.comodoca.com/UTN-DATACorpSGC.crl
URI: http://crl.comodo.net/UTN-DATACorpSGC.crl

Dus op zich is het logisch dat ie naar die sites gaat. Ik kan echter niet zo direkt zien wat er mis is met die crl files...
13-10-2009, 10:39 door dim
Als je de http://crl.comodoca.com/UTN-DATACorpSGC.crl file downloadt en bekijkt met openssl, dan ziet ie er verder prima uit:


Certificate Revocation List (CRL):
Version 2 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: /C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN - DATACorp SGC
Last Update: Oct 12 23:47:07 2009 GMT
Next Update: Oct 16 23:47:07 2009 GMT
CRL extensions:
X509v3 Authority Key Identifier:
keyid:53:32:D1:B3:CF:7F:FA:E0:F1:A0:5D:85:4E:92:D2:9E:45:1D:B4:4F

X509v3 CRL Number:
1943
Revoked Certificates:
Serial Number: 5932E524AB9374E3D5DCF499F35CA8FC
Revocation Date: Dec 13 17:51:01 2006 GMT
Serial Number: 4B6FB5EB6E667977C27D27C2B6F0DFAA
Revocation Date: Apr 13 17:10:30 2007 GMT
... een hele lijst met entries ...

Serial Number: 1EA2F10510DC6E4CE92D482570CB8587
Revocation Date: Sep 30 11:53:45 2009 GMT
Serial Number: 4D007CF916DC08DFD6E6ADF20E71A841
Revocation Date: Sep 30 13:13:44 2009 GMT
Signature Algorithm: sha1WithRSAEncryption
7b:09:f3:34:d4:fc:c5:6b:96:56:f2:e4:eb:86:95:1f:92:13:
8e:f5:e9:3e:39:b2:7b:47:cd:de:72:8f:38:e3:52:37:52:42:
4e:01:98:75:66:83:d0:0e:7b:91:a7:10:51:57:61:54:2e:e5:
f8:42:69:23:2a:2d:1e:d1:af:b8:83:35:b6:f1:d6:bc:48:85:
35:8d:8b:1a:f4:8d:d3:57:a7:0e:a9:1c:df:ff:ed:da:41:f7:
83:41:a8:05:83:d0:b2:d6:1b:02:32:74:5a:14:6a:cd:60:22:
54:fa:67:6b:49:3b:5a:46:70:e6:ab:25:37:c2:3b:46:8d:2f:
62:4a:54:2c:5e:4d:47:24:05:6f:ed:c8:7a:b7:17:1a:c6:f2:
d0:82:0d:33:4a:77:3d:1f:67:93:e9:c1:f4:aa:8f:84:2e:e0:
26:52:f3:2c:84:dd:c5:b1:e9:51:c1:9d:c5:a1:df:b3:bc:6b:
a9:92:9d:9b:0c:30:d8:98:7f:bc:13:1e:13:c3:3c:ae:4f:81:
2b:f2:69:c3:fd:2e:df:7a:60:c2:14:da:ef:89:ef:38:88:99:
38:e3:f2:f0:90:0f:41:f6:6f:86:df:76:b8:b9:24:e0:15:91:
cc:f0:ad:9d:1c:23:36:1e:12:e3:55:82:b6:fb:c1:69:bc:5f:
56:14:f0:87
13-10-2009, 11:03 door FSF-Moses
Ook ik moest dat vinkje uitzetten. Instelling heb ik nooit gewijzigd. Ik gebruik Firefox 3.5.3 (geen nightly build)
13-10-2009, 11:36 door dim
Het lijkt een bug van Firefox te zijn, de http://crl.comodoca.com/UTN-DATACorpSGC.crl is gesigned door een key met ID 53:32:D1:B3:CF:7F:FA:E0:F1:A0:5D:85:4E:92:D2:9E:45:1D:B4:4F, dat blijkt die van "C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN - DATACorp SGC" te zijn, en de signature is okay, in ieder geval volgens OpenSSL.
13-10-2009, 11:36 door Bitwiper
Door dim:
In het certificate zelf staat onder de revocation options:

Not Critical
URI: http://crl.comodoca.com/UTN-DATACorpSGC.crl
URI: http://crl.comodo.net/UTN-DATACorpSGC.crl

Dus op zich is het logisch dat ie naar die sites gaat.
Het interessante is dat Firefox naar ocsp.usertrust.com gaat terwijl ik die URL niet zie in het certificaat (noch in het root certificaat, noch in het intermediate certificaat (zie de DNS lookups in mijn bijdrage bovenaan).

Het zou kunnen dat Firefox voor sommige CA's "built-in" OCSP URL's heeft wellicht omdat die CA's nog niet al hun certificaten op orde hebben, maar Mozilla hebben meegedeeld dat Firefox al wel van OCSP gebruik kan maken.

Ik kan echter niet zo direkt zien wat er mis is met die crl files...
en
Door dim: Als je de http://crl.comodoca.com/UTN-DATACorpSGC.crl file downloadt en bekijkt met openssl, dan ziet ie er verder prima uit:
Klopt, met de CRL's is niks mis, het is OCSP waarbij het fout gaat. OCSP is een heel ander en alternatief protocol, en veel minder belastend omdat niet een hele lijst wordt opgehaald. Zie http://en.wikipedia.org/wiki/OCSP
13-10-2009, 12:31 door dim
Ik zat wat in de Mozilla Bugzilla te wroeten, en daar kwam ik deze bug tegen:

https://bugzilla.mozilla.org/show_bug.cgi?id=376480

Daar wordt uit de doeken gedaan dat erg veel OCSP servers fouten bevatten, maar wat er nu precies fout is bij deze server kan ik niet precies uitvogelen. OpenSSL zegt bij het OCSP verifieren:

Response Verify Failure
13479:error:27069076:OCSP routines:OCSP_basic_verify:signer certificate not found:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/ocsp/ocsp_vfy.c:85:
test.pem: good
This Update: Oct 13 08:54:47 2009 GMT
Next Update: Oct 17 08:54:47 2009 GMT
13-10-2009, 12:32 door dim
Btw het is me ook nog steeds niet duidelijk waar ie nou aan http://ocsp.usertrust.com/ komt.... :)
13-10-2009, 12:52 door Bitwiper
Door dim: Ik zat wat in de Mozilla Bugzilla te wroeten, en daar kwam ik deze bug tegen:

https://bugzilla.mozilla.org/show_bug.cgi?id=376480

Daar wordt uit de doeken gedaan dat erg veel OCSP servers fouten bevatten, maar wat er nu precies fout is bij deze server kan ik niet precies uitvogelen.
Thanks, ga ik naar kijken.
OpenSSL zegt bij het OCSP verifieren:

Response Verify Failure
13479:error:27069076:OCSP routines:OCSP_basic_verify:signer certificate not found:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/ocsp/ocsp_vfy.c:85:
test.pem: good
This Update: Oct 13 08:54:47 2009 GMT
Next Update: Oct 17 08:54:47 2009 GMT
Right, dat lijkt op de Firefox melding, en komt overeen met wat ik in m'n bovenste post al vermoedde, nl. dat het root certificate, nodig voor het verifiëren van de signature onder de OCSP response, niet met Firefox noch met OpenSSL mee verspreid wordt.

Voor de leek (nou ja, PKI blijft een lastig verhaal), het lijkt er op dat het volgende aan de hand is: Firefox vraagt middels OCSP of het certificaat van *.custhelp.com mogelijkerwijs verlopen is. Het OCSP antwoord is voorzien van een digitale handtekening zodat je zeker weet dat deze afkomstig is van de CA die het certificaat van *.custhelp.com heeft uitgegeven. In het OCSP antwoord wordt aangegeven dat het certificaat van *.custhelp.com nog geldig is, alleen lukt het Firefox (en OpenSSL) niet om die digitale handtekening onder dat antwoord te controleren omdat daartoe een root certificate in de standaard Firefox en OpenSSL distributies ontbreekt.

Todo: (zodra ik wat meer tijd heb, vanavond hopelijk) uitvinden om welk root certificate het gaat, waarom ik het niet in m'n browser heb, en of de foutmelding verdwijnt als ik dat certificaat toevoeg - c.q. er misschien toch nog iets anders aan de hand is.
13-10-2009, 21:24 door Thasaidon
Windows XP SP3 met Firefox 3.5.5

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)

[v] Use the online Certificate Status Protocol (OCSP) to confirm the current validity of certificates
(o) Validate the certificate if it specifies an OCSP server
( ) Validate all certificates using the following OCSP server: (gevolgd door twee niet selecteerbare entries)

[v] When an OCSP server connection fails, treat the certificate as invalid
Staat bij mij net zo, geen problemen.
14-10-2009, 00:37 door Bitwiper
Door Thasaidon: Staat bij mij net zo, geen problemen.
Kun je nog eens bevestigen dat jij met bovenstaande Firefox instellingen geen foutmelding krijgt bij het bezoeken van https://pgp.custhelp.com/?

Toch ben ik niet een van de weinigen die problemen heeft met OCSP (-servers), want op de Mozilla.dev.tech.crypto en Mozilla.dev.security maillijstten werd hier dinsdag nog flink over gediscussieerd (zie http://groups.google.com/group/mozilla.dev.tech.crypto/browse_thread/thread/425d3612e9edb0fb/8dc9c1f1b22646d2?#8dc9c1f1b22646d2 en http://groups.google.com/group/mozilla.dev.security/browse_thread/thread/9f51be376f874d50, in die laatste met name de bijdragen van Daniel Veditz).

Dat Firefox het wel goed kan doen zie ik als ik bijv. https://www.ripe.net/projects/disi/keys/index.html bezoek (dat was in nov. 2008 nog een site die problemen gaf met Firefox, zie https://lists.dns-oarc.net/pipermail/dns-operations/2008-November/003348.html). Als ik met Firefox naar https://www.ripe.net/projects/disi/keys/index.html ga zie ik in wireshark achtereenvolgens een request en een "good" response voor het certificaat van *.ripe.net (whoa, ook een wildcard!) voorbijkomen, gevolgd door een request en een "good" response voor het intermediate certificaat (DigiCert High Assurance EV Root CA).

Overigens wordt bij het bezoeken van https://pgp.custhelp.com/ 2x een identieke request verzonden voor het certificaat van *.custhelp.com (met serial number 00:8B:47:31:23:27:55:8F:1F:D7:6D:5E:8B:8B:DE:67:C8). Het zou dus nog om een bug in Firefox kunnen gaan die mogelijkerwijs optreedt bij de ontvangst van bepaalde certificaten, maar het zou ook kunnen dat Firefox en OpenSSL niet snappen welke public key (lees: certificaat) voor de signature-verificatie gebruikt moet worden. Erg helder vind ik RFC2560 niet op dit punt, maar wellicht moet ik er de tijd voor nemen om het eens goed te lezen.
14-10-2009, 08:26 door Thasaidon
Door Bitwiper:
Door Thasaidon: Staat bij mij net zo, geen problemen.
Kun je nog eens bevestigen dat jij met bovenstaande Firefox instellingen geen foutmelding krijgt bij het bezoeken van https://pgp.custhelp.com/?
Als ik thuis direct naar jou link ga, heb ik geen problemen.
Ook als ik op die pagina nogmaals op support klik, geen problemen...
Windows XP SP3 EN met Firefox 3.5.5 EN
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)

Als ik hier op mijn werk rechtstreeks naar jou link ga dan werkt dit gewoon.
Klik ik vervolgens op support, dan krijg ik wel een error.
Fout tijdens het verbinden met pgp.custhelp.com.

Ongeldig OCSP-ondertekeningscertificaat in OCSP-antwoord.

(Foutcode: sec_error_ocsp_invalid_signing_cert)
Enige verschil met thuis is dat ik op me werk alles in NL draai (even de proxy en firewall buiten beschouwing gelaten).
WinXP SP3 NL met FF3.5.3 NL
Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)

Wat jij dus hebt in de EN versie heb ik in de NL versie.

Overigens, als ik de optie "When an OCSP server connection fails, treat the certificate as invalid" uit zet in de NL versie, dan werkt het weer wel.
14-10-2009, 23:50 door Bitwiper
@Thasaidon: dank voor je reactie en de uitgevoerde tests. Vreemd dat jouw NL versie net zo reageert als mijn US versie terwijl jouw US versie thuis geen foutmelding geeft. Kan het zijn dat je in die US versie ooit handmatig root certificaten hebt toegevoegd?

Overigens schreef je 2x (dus geen typfout denk ik) dat je Firefox 3.5.5 zou gebruiken, maar bij mijn weten bestaat die nog niet (de browserinfo verraadt trouwens dat je 3.5.3 gebruikt).

Met mijn instellingen zie ik als ik op ocsp filter in de about:config pagina trouwens het volgende:
security.OCSP.disable_button.managecrl_| user set _| boolean _| false
security.OCSP.enabled ________________| default __| integer __ | 1
security.OCSP.require ________________| user set_| boolean _ | true
15-10-2009, 19:28 door Thasaidon
Door Bitwiper: @Thasaidon: dank voor je reactie en de uitgevoerde tests. Vreemd dat jouw NL versie net zo reageert als mijn US versie terwijl jouw US versie thuis geen foutmelding geeft. Kan het zijn dat je in die US versie ooit handmatig root certificaten hebt toegevoegd?
Nee, ik heb niets handmatig toegevoegd.

Overigens schreef je 2x (dus geen typfout denk ik) dat je Firefox 3.5.5 zou gebruiken, maar bij mijn weten bestaat die nog niet (de browserinfo verraadt trouwens dat je 3.5.3 gebruikt).
Ja sorry, is een typo en daarna een copy-paste met die typo erin ;-)

Met mijn instellingen zie ik als ik op ocsp filter in de about:config pagina trouwens het volgende:security.OCSP.disable_button.managecrl_| user set _| boolean _| false
security.OCSP.enabled ________________| default __| integer __ | 1
security.OCSP.require ________________| user set_| boolean _ | true
Ik zal later even kijken wat die instellingen bij mij zijn op mijn windows systeem.
Overigens...
als ik naar jou link ga werkt dat in mijn Ubuntu/Firefox ook gewoon. Als ik daarna nogmaals op de "Support" link klik krijg ik echter ook weer de error.
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.14) Gecko/2009090216 Ubuntu/8.04 (hardy) Firefox/3.0.14
met de instellingen:
[v] Use the online Certificate Status Protocol (OCSP) to confirm the current validity of certificates
(o) Validate the certificate if it specifies an OCSP server
( ) Validate all certificates using the following OCSP server: (gevolgd door twee niet selecteerbare entries)

[v] When an OCSP server connection fails, treat the certificate as invalid


Overigens heb ik in Firefox 3.0.14 in Ubuntu alleen deze staan bij about:config
security.OCSP.require; | user set | boolean | true
security.OCSP.enabled; | default | integer | 1
15-10-2009, 20:33 door Thasaidon
Nog ff gechecked op m'n windows systeem waar het wel werkt.... maar daar staat het ook zoals bij jou.
security.OCSP.disable_button.managecrl_| user set _| boolean _| false
security.OCSP.enabled ________________| default __| integer __ | 1
security.OCSP.require ________________| user set_| boolean _ | true
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.