StarTLS problém Thunderbird

Josef Liška

StarTLS problém Thunderbird
« kdy: 22. 09. 2011, 17:02:15 »
Ahoj,
narazil jsem na zajímavý problém. Po instalaci nového certifikátu Mozilla Thunderbird prudí
"Certifikát je nedůvěryhodný, neboť nebyl ověřen důvěryhodnou autoritou".

Certifikát je podepsaný od RapidSSL.com

Zajímavá zjištění:
- imap/ssl funguje normálně, neprudí
- outlook express funguje normálně smtp/starttls, ověřeno wiresharkem, že skutečně šifruje
- certifikát od RapidSSL se používal i dříve, jediné, čím se může lišit je zahrnutí samotné domény bez subdomény do CN
- bylo podezření, že by mohlo vadit, že nový je 4kbit privátní klíč, proto byl vystaven ještě cert s 2kbit od StartSSL.com, thunderbird opět akceptuje pro imap ale ne pro smtp
- pomocí wiresharku bylo zjištěno, že thunderbird používá SNI (posílá hostname v plaintextu na začátku TLS komunikace), kdež OE ne
- zkusili jsme nastavit i smtp/ssl (jako má googlemail), ale také prudí
- googlemail funguje. Cert se liší tím, že má jen 1kbit privátní klíč a šifra je RC4 an AES256
- nakonec jsme zkusili podepsat csr vlastní certifikační autoritou, jejíž veřejný klíč ca.crt byl předem naimportován do thunderbirdu. Ten ale prudí stále.



Netušíte někdo,
  a) kde získat cert, který by byl mozilla smtp compatible?
  b) jak přinutit TB k akceptaci jinak než přidáváním výjimek (např. zakázat SNI?)
  c) jestli je to bug, tak jestli již je reportován? Nic jsem k tomu nenašel

Díky
Josef


Josef Liška

Re: StarTLS problém Thunderbird
« Odpověď #1 kdy: 22. 09. 2011, 17:24:46 »
Podařilo se zjistit možnou souvislost,

- původní rapidssl cert byl single root
- nový je vystaven intermediate CA

Po naimportování intermediate CA do TB tento přestane prudit. Vypadá to, jako kdyby SMTP validoval do hloubky 1 a imap do hloubky 2+


Josef Liška

Re: StarTLS problém Thunderbird
« Odpověď #2 kdy: 26. 09. 2011, 11:09:22 »
Jelikož zatím nevíme nic nového, zeptal jsem se ještě u mozziláků:

http://forums.mozillazine.org/viewtopic.php?f=39&t=2316281

Re: StarTLS problém Thunderbird
« Odpověď #3 kdy: 26. 09. 2011, 15:16:07 »
Problém může být v tom, že:
  • Thunderbird používá vlastní uložiště certifikátů, nezávislé na OS
  • Server nemá certifikát vystavený přímo kořenovou autoritou, ale nějakou intermediate CA, a přitom neposílá úplný řetězec certifikátů.

Druhý bod se dá ověřit pomocí:
Kód: [Vybrat]
$ openssl s_client -starttls imap -connect server.example.com:imap
CONNECTED(00000003)
depth=2 C = IL, O = StartCom Ltd., OU = Secure Digital Certificate Signing, CN = StartCom Certification Authority
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
 0 s:/description=456053-98pq1g81h0TmyoEo/CN=vm.oskarcz.net/emailAddress=hostmaster@example.com
   i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA
 1 s:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA
   i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority
 2 s:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority
   i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority
---

Opravit je to možné buď přidáním intermediate CA do uložiště důvěryhodných CA, nebo lépe opravou nastavení serveru tak, aby posílal celý řetěz.

alfi

  • ****
  • 338
    • Zobrazit profil
    • E-mail
Re: StarTLS problém Thunderbird
« Odpověď #4 kdy: 26. 09. 2011, 17:48:00 »
Opravit je to možné buď přidáním intermediate CA do uložiště důvěryhodných CA, nebo lépe opravou nastavení serveru tak, aby posílal celý řetěz.
tak tak, všechny intermediate CA patří do konfigurace serveru, jinak to klient nemá podle čeho ověřit (a nebo se musí taková CA zadat do všech klientů, to je ale pracné a pak i zbytečné za to platit). v apachi je na to speciání volba (http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslcacertificatepath), stejnou by měl mít i smtp nebo imap. v browseru je pak u SSL detailů vidět celý strom - kdo co podepsal :-)

zvláštní je, pokud to na imapu funguje i bez toho..


Josef Liška

Re: StarTLS problém Thunderbird
« Odpověď #5 kdy: 30. 09. 2011, 11:22:09 »
Děkuji Vám oběma za odpovědí,
nicméně měl jsem za to, že apache volba SSLCACertificatePath je určena pro ověřování klientů klientskými certifikáty (což znám a používám).

Imap je dovecot a pokud pokud posílá intermediate ca crt, tak to musí dělat implicitně bez mého přičinění, protože já jsme mu nakonfiguroval jen cert. a privátní klíč.

Nicméně zkusím postfixu nastavit smtpd_tls_CApath a uvidíme.



Josef Liška

Re: StarTLS problém Thunderbird
« Odpověď #6 kdy: 30. 09. 2011, 12:17:38 »
DÍKY, fakt to funguje. Jste skvělí.

udělal jsem toto:
- do .crt souboru dal celý chain až po root
- pro jistotu jsem ještě v /etc/ssl/certs zavolal c_rehash
- do postfixu do master.cf jsem dal smtpd_tls_CApath=/etc/ssl/certs


Re: StarTLS problém Thunderbird
« Odpověď #7 kdy: 30. 09. 2011, 13:58:29 »
- do .crt souboru dal celý chain až po root
Jojo, přesně tak se to ve většině SSL implementací dělá, normálně se do souboru s cerifikátem nacpe víc certifikátů za sebe. Taky mě to nejdřív překvapilo a říkal jsem si, že to přece nemůže být tak jednoduché.

Jedinou výjimkou je konfigurace LigHTTPd, kde používají dva soubory takto:
Kód: [Vybrat]
$SERVER["socket"] == "[::]:443" {
        ssl.engine  = "enable"
        ssl.pemfile = "/etc/lighttpd/server.pem"
        ssl.ca-file = "/etc/lighttpd/ca-chain.pem"
}
Přičemž v souboru server.pem je za sebou nejprve certifikát serveru a pak jeho privátní klíč a v souboru ca-chain.pem jsou za sebou jen certifikáty autorit, které vydaly certifikát serveru.