Hlavní navigace

Jak na OpenSSL 3

Michal Kára

V posledním dílu doděláme to málo, co nám ještě zbývá. Povíme si pár slov o konfiguraci serveru a na závěr ještě proberu některé praktické problémy, se kterými se při používání SSL můžete potkat.

Konfigurace serveru

Certifikát (vygenerovaný v minulém dílu) nezačne server používat automaticky, ale je potřeba mu říci, kde ho má hledat. Například u Apache se soubory obsahující klíč a certifikát určují pomocí direktiv SSLCertificate­KeyFile a SSLCertificateFile. Ostatní servery mají podobné direktivy nastavující soubory, ze kterých má být klíč a certifikát čten. Pokud vám nechce konfigurace ze „záhadných“ důvodů fungovat, ověřte si, že server může číst jak soubor certifikátu, tak i klíče. Často bývá klíč čitelný pouze vlastníkem (což je správně), ale server běží na vyhrazeného uživatele, který je různý od vlastníka klíče.

Ověření

K ověření, zda a jaký SSL certifikát server používá, nám poslouží opět starý známý program openssl. Tentokrát v módu klienta, například:

openssl s_client -connect klient1.ebanka.cz:https

Parametry:

  • s_client – Mód SSL klienta
  • -connect <server>:<port> – Kam se budeme spojovat

Program vypíše certifikát, certifikační řetěz atp. Podstatný je první článek řetězu: Certificate chain
0 s:/C=CZ/ST=Czech Republic/L=Pra­gue/O=Expandia Banka a.s./OU=Expandia Banka a.s./OU=Terms of use at www.verisign.com/RPA ©01/CN=klient1­.ebanka.cz

Vidíme, že certifikát byl vydán Expandia Bance na jméno (CN) klient1.ebanka.cz. Pokud chceme zjistit detaily certifikátu, můžeme si ho uložit do souboru (například pomocí copy-paste textu od BEGIN certificate do END certificate včetně) a pak vypsat v textové podobě. V tomto případě můžeme detaily o certifikátu získat i z WWW browseru, ale výše uvedený postup funguje na všechny služby používající SSL, například pop3s.

Problémy s 56bitovým šifrováním na Windowsech

Některé starší verze Windows ještě podléhaly exportním opatřením na vývoz „silných“ šifrovacích technologií, a proto se dodávaly jen s 56bitovým šifrováním. To může působit problémy některým aplikacím vyžadujícím 128bitové šifrování.  Jak silné šifrování prohlížeč podporuje, se lze dočíst v dialogu O programu (About).

Řešením je nainstalovat 128bitové šifrování (je na to poměrně malý balíček, bohužel jsem nenašel žádný veřejný odkaz :-( ), nebo nainstalovat novější verzi Exploreru.

Problémy HTTP přes SSL

SSL se často používá pro bezpečný přenos HTTP (https: protokol). Zde ovšem narážíme na jeden poměrně zásadní problém. V současné době je velmi rozšířen tzv. name virtual hosting – na jednom počítači je uloženo více webů, které jsou přístupné pod různými DNS jmény. A zde naráží kosa na kámen.

Klient porovnává jméno uvedené v certifikátu se jménem počítače, na který se připojuje. Když se připojuje na www.marketa.cz a dostane (byť důvěryhodný) certifikát pro www.alzbeta.cz, tak uživateli řekne, že certifikát zní na špatné jméno. Ba co více. Pokud je certifikát vydán pro marketa.cza klient se spojuje s www.marketa.cz, rovněž protestuje.

Řeknete si, dobře, tak proč server nepošle certifikát na jméno, se kterým se browser spojuje? Jednoduše proto, že ho neví. (Tedy až na jeden speciální případ zmíněný níže.) Certifikáty se vyměňují už při navazování spojení, ale HTTP požadavek, který jméno obsahuje, se může poslat až po navázání.

Jak to tedy řešit? Je několik možností, ale každá má své mouchy:

  • Smířit se s hlášeními browseru a odklikávat je.
  • Mozilla akceptuje (nebo to v některé verzi uměla) certifikát pro doménu pro všechny servery v této doméně. Tedy pokud jste si udělali certifikát pro firma.cz, mohl ho server posílat i pro servery mzdy.firma.cz, dochazka.firma.cz atd.  a Mozilla nic neříkala. Bohužel, co vím, funguje pouze v Mozille.
  • Mít na počítači (respektive jeho rozhraní) tolik IP adres, kolik mám SSL webů. Potom mohu pro každé IP/jméno posílat správný certifikát. Ale to je dosti náročné na konfiguraci a na IP adresy (i když možná s příchodem IPv6 se situace změní a toto bude standardní řešení).
  • Mít na počítači jen jeden SSL web a v jeho podadresářích vlastní weby/aplikace. Například na https://ssl.fir­ma.cz/mzdy/ jsou mzdy, https://ssl.fir­ma.cz/dochazka/ je docházka atp. Poměrně dobré řešení, má dvě nevýhody:
  • Jméno webu se neukazuje v liště jako jméno počítače – to může být poněkud matoucí pro uživatele a u „značkových“ webů nevhodné z marketingových důvodů.
  • Nefungují absolutní odkazy na webech. Respektive fungují, ale musí obsahovat jméno webu – trochu tím trpí přenositelnost HTML kódu.

Objekty z nezabezpečeného serveru

Při použití SSL na WWW stránkách se můžete setkat ještě s jedním problémem. Stránky často dotahují obrázky z jiného serveru. Prohlížeče (jmenovitě Internet Explorer) však vyžadují, aby všechny komponenty stránky stahované přes SSL byly rovněž posílány přes SSL zabezpečené spojení. To je poměrně logický požadavek, podstrčením špatného obsahu rámce (frame, iframe), javascriptu nebo v některých případech i obrázku by se dala také nadělat pěkná neplecha. Pokud máme nad těmito komponenty kontrolu, není toto většinou problém. Horší je, pokud musíme do stránky umisťovat kód třetích stran (reklama). Cizí administrátoři se obtížně přesvědčují, že by měli rozjet HTTPS server s důvěryhodným certifikátem.

Malý kvíz na závěr

Tím bych náš krátký seriál skončil. Ale ještě vám dám něco na potrápení vašich mozkových buňek: Kdyby prohlížeče akceptovaly certifikát znějící na IP adresu, výše uvedené problémy by neexistovaly. Ale neakceptují ho a má to dobrý důvod. Přijdete na něj?

Našli jste v článku chybu?

19. 4. 2007 21:36

mad4 (neregistrovaný)
po hromade komentaru o uzasne implementaci a jeste lepsi fimre Baltimore a 3 a neco let odstupu firma Baltimore prakticky neexistuje a OpenSSL tu mame stale 8-D

23. 3. 2006 1:18

Je absurdní se domnívat, že vaše aplikace je bezpečnější, když "ji ještě" nikdo neprolomil. Znamená to jen to, že se o to ještě nikdo nepokusil (anžto zřejmě nebude tak rozšířená nebo dosud není průnik odhalen).

Navíc u uzavřených implementací zapomínáte na fakt, že ukrást zdrojové kódy není až takový problém. Může to být otázka úplatku, hrubé síly (sprosté vykradení kanceláří), lidské chyby (ukradení notebooku s důvěrnými daty) nebo primitivní využití trojského koně (uvnitř firmy). A…

DigiZone.cz: Velká cena v Abú Dhabí: 131 ti­síc diváků

Velká cena v Abú Dhabí: 131 ti­síc diváků

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Stavební spoření: alternativa i pro seniory

Stavební spoření: alternativa i pro seniory

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru