Přechod na HTTPS

Michal Špaček
Michal ŠpačekWeb development, security and performance
PŘECHODPŘECHOD
NA HTTPSNA HTTPS
Michal ŠpačekMichal Špaček
www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze
Tato verze slajdů obsahuje navíc poznámky
nejen pro ty, kteří na přednášce nebyli.
WiFi PineappleWiFi Pineapplewww.wifipineapple.com
Tohle zařízení za $99.99 umí pomocí útoku nazvaného Karma přesvědčit vaše počítače
a telefony, aby se připojily na útočníkem ovládanou Wi-Fi síť. Tahle krabička odpoví
kladně na dotaz, jestli náhodou nevysílá síť, kterou má váš počítač uloženou. Pokud se
na tuhle krabičku připojíte, tak mizera může číst a měnit veškerý nezašifrovaný provoz.
Tady vidíte příklad jedné takové Wi-Fi sítě v Burger Kingu kdesi na benzínce. Když jsem na
ni byl připojen, tak do každé stránky načtené po HTTP byl vložen banner. Všimněte si té
reklamy na auto dole uprostřed. Ta na původní stránce není, nacpal ji tam ten Burger King,
aby provoz Wi-Fi nemusel platit ze svého. Do HTTPS stránek se nic nevkládalo.
Ale vkládání reklam není to nejhorší, pamatuje si na HackingTeam? To je ta firma, co dělá
špehovací software, který si koupila mj. česká policie. Toto je slajd přímo z jedné
prezentace HackingTeamu. Jejich software do stránek na HTTP vkládá exploity, které si
jen tak, s obsahem běžné stránky, stáhnete do svého zařízení a díky bezpečnostním
chybám např. ve Flashi se potichu nainstalují. Ty exploity pak umožní odposlouchávat
třeba vaše telefonní hovory, zkoumat co máte na disku počítače apod.
HTTPS as a ranking signal
Přecházet na HTTPS byste měli kvůli uživatelům, aby nějaký mizera nemohl jednoduše
poslouchat, co posílají na server nebo měnit stránky, které si stahují. Google sice nedávno
oznámil, že weby na HTTPS bude preferovat, ale sám Google tvrdí, že HTTPS má velmi
malou váhu a ovlivňuje to asi procento dotazů. Kvůli Google na HTTPS nepřecházejte.
ENCRYPTION
&
AUTHENTICATION
HTTPS zajišťuje šifrování přenosu proti odposlechu a modifikaci a ověřuje
protistranu, uživatelé tak vědí s kým komunikují. Bylo by trochu hloupé, kdyby
šifrovaná data posílali mizerovi a ten si je v klidu rozšifroval a přečetl nebo změnil.
HTTP Secure
HTTP over SSL
HTTPS znamená HTTP Secure, dříve často HTTP over SSL. Jenže poslední verze
protokolu SSL 3 je z roku 1996 a už by se neměla používat, nejenom kvůli útoku
POODLE. Amazon, Twitter, Slevomat a další již protokol SSL nepodporují, udělejte to
stejně. Chrome od verze 40 a Firefox od verze 34 již standardně SSL neumí.
TLS
Transport Layer Security
Dnes by se měl používat protokol TLS nejlépe v nejnovější verzi 1.2. Verze 1.3 je
v březnu 2015 zatím ve fázi draft. TLS standardně neumí IE6 na WinXP/2000,
TLS je tam potřeba zapnout ručně. IE7 již TLS 1.0 umí i na WinXP.
HTTPS
=
How To Transfer Private Shit
SSL, TLS, ABS, BBC, OMG… já si prostě myslím, že HTTPS znamená How To Transfer
Private Shit. Nikomu není nic do toho, jaké články si zrovna čtu a nikdo by neměl
zasahovat do dat, která do prohlížeče stahuji. To jsou mé soukromé záležitosti.
Pro to, abyste mohli HTTPS začít na vašem webu používat budete potřebovat certifikát.
Pokud má váš web subdomény, tak budete pro každou potřebovat certifikát zvlášť. Můžete
využít rozšíření SAN (Subject Alternative Name, jeden certifikát platí pro více domén) nebo
tzv. wildcard certifikát, který platí pro *.example.com. Certifikáty nemusí být drahé, za
necelé dvě stovky na rok je prodává třeba SSLS.cz. (Aktualizace: v dubnu 2016 byla
spuštěna ostrá verze certifikační autority Let's Encrypt, která vystavuje certifikáty zdarma.)
Certifikáty vystavují tzv. certifikační autority (CA). Těch je spousta, ale pokud prohlížeč
návštěvníka vaši CA nezná, bude hlásit chybu.
Pokud jste banka nebo očekáváte phishingové útoky na vaši značku, tak zvažte EV
(Extended Validation) certifikát. Vaše ověření pak bude trochu náročnější, ale poté se
v browseru zobrazí i země a název firmy, pro kterou je certifikát vystaven a uživatel si
tak může lépe ověřit, že komunikuje s tím, s kým opravdu chce.
Foobar International (IE)
Foobar International
Dublin 7
Dublin, IE
Pokud se název vaší firmy neshoduje s názvem vaší domény nebo pokud je jiný, než
značka, kterou na webu propagujete, tak by to uživatele mohlo naopak zmást. Kdyby
zlavomat.sk provozovala irská firma Foobar International, tak by EV certifikát v prohlížeči
vypadal takto a to by moc důvěry nevzbuzovalo. EV certifikáty jsou také mnohem dražší.
PRIVÁTNÍ
KLÍČ
Když budete pořizovat nějaký certifikát, tak k němu dostanete soukromý (privátní) klíč.
Ten chraňte jako oko v hlavě, nikdy ho neposílejte e-mailem, neposílejte ho na server ani
po FTP. Standardní e-mail i FTP jsou nešifrované a klíč může někdo odposlechnout.
Použijte šifrovaný přenos SFTP. E-maily šifrujte pomocí PGP nebo S/MIME.
http://www.spiegel.de/media/media-35511.pdf
Koncem roku 2014 spatřily světlo světa dokumenty NSA, které hovoří o tom, že
NSA umí rozšifrovat HTTPS. Novináři se z toho mohli podělat, „HTTPS je k
ničemu!“, jenže NSA umí HTTPS rozšifrovat jen když má privátní klíč. EASY.
Při výměně klíčů mezi serverem a prohlížečem, které se říká RSA jsou
šifrovací hesla odvozená od privátního klíče, kdo získá privátní klíč, získá
šifrovací hesla a může HTTPS dešifrovat a to i zpětně.
KRYPTOANALÝZA
GUMOVOU HADICÍ
http://xkcd.com/538/
A jak ten privátní klíč získá? Třeba kryptoanalýzou pomocí gumové hadice. Majitel privátního
klíče dostane zahradní hadicí přes zadek a klíč milerád vydá. Klíč se dá samozřejmě získat
i tak, že někdo odposlechne e-mail, kterým ten klíč posíláte.
Klíče lze naštěstí vyměnit i jinak. Při výměně klíčů EDH (Ephemeral Diffie–
Hellman, někdy též DHE) se používají krátkodobé šifrovací klíče, které nejsou
závislé na privátním klíči. Ten slouží jen pro ověření serveru. Když někdo získá
privátní klíč, tak je mu celkem k ničemu. Nemůže rozšifrovat zaznamenanou
komunikaci ani tu budoucí. (Aktualizace: v květnu 2015 se objevil útok proti
výměně klíčů EDH nazvaný Logjam, který funguje s malými 512-bitovými nebo
často používanými 1024-bitovými prvočísly. Proto je lepší použít ECDHE (Elliptic-
Curve Diffie-Hellman Ephemeral), což je varianta DHE, která používá kryptografii
nad eliptickými křivkami. ECDHE je také rychlejší, než obyčejné DHE.)
PERFECT FORWARD SECRECY
Výměně klíčů pomocí EDH se
říká Perfect Forward Secrecy.
Tuhle výměnu byste měli na
serveru nabízet. Poznáte to v
browseru tak, že tam bude
uvedeno DHE nebo ECDHE.
Bude tam i RSA, ale hlavně, že
tam bude DHE.
https://wiki.mozilla.org/Security/Server_Side_TLS
https://mozilla.github.io/server-side-tls/ssl-config-generator/
Na prvním odkazu naleznete příklady konfigurace webového serveru, jak
nastavit šifry a jak nastavit výměnu klíčů. Na druhém odkazu je přímo
generátor konfigurace pro Apache apod.
Certifikát máte. Co dalšího budete pro přesun vašeho webu na
HTTPS potřebovat? Zvláštní IP adresa to nebude. Od roku 2003 totiž
existuje rozšíření protokolu TLS s názvem SNI.
SNI
Server Name Indication
SNI podporuje Firefox od verze 2, Chrome od verze 6 na WinXP, jakýkoliv Chrome
na WinVista a výše, Safari 3, Android 3. Na WinXP SNI nefunguje v žádném IE, na
WinVista a výše ho umí IE od verze 7. Pokud potřebujete podporovat starší verze,
tak vlastní IP adresu potřebovat budete stále.
HTTP 301Až budete mít HTTPS připravené, tak přesměrujte návštěvníky
z HTTP na HTTPS pomocí stavového kódu 301.
HTTPONLY
&
SECURE
Httponly příznak pro session id cookie už určitě používáte, teď nastavte ještě parametr
Secure. Ten zabrání úniku session id po případném downgrade spojení na HTTP.
Httponly příznak je důležitý, zabrání totiž přístupu JS k session cookie.
Když ten příznak nebudete mít nastavený, tak se může stát, že nějaký
analytický nástroj bude krást session id vašim uživatelům. Dělá to třeba
stat-monitor.cz – takhle krade session id uživatelům webu aaaauto.cz.
<img src="http://www.mironet.cz">
Když web nemá session cookie označenou jako Secure, tak ji browser pošle i po
HTTP. Útočník může donutit browser poslat takovou cookie po HTTP třeba tak, že
někam umístí značku IMG s adresou pro načtení HTTP verze webu a bude
poslouchat provoz uživatelů na bezdrátové síti.
Prohlížeč
Mizera
Server
HTTP HTTPS
SSL STRIP
Mizera může proti uživatelům použít útok SSL Strip. Pokud chcete načíst
nějakou zabezpečenou stránku, obvykle do prohlížeče píšete adresu bez
zadání počátečního https:// – browser pošle nešifrovaný požadavek na
server, ten odpoví přesměrováním na HTTPS. Tento úvodní požadavek
může zachytit mizera, přepošle ho na server, server odpoví jemu a do
prohlížeče vrátí nešifrovanou stránku. Uživatel vyplní přihlašovací údaje,
pošle je mizerovi, ten si je přečte, zašifruje a pošle serveru.
HSTS
HTTP Strict Transport Security
Útoku SSL Strip se dá bránit pomocí HSTS. To zajistí, že browser vůbec nebude
posílat nešifrovaný požadavek na server, ale místo toho vygeneruje interní
přesměrování a rovnou načte stránku z HTTPS. Více v mé přednášce o HSTS.
Strict-Transport-Security: max-age=31536000; includeSubDomains;
HTTP Strict Transport Security je HTTP hlavička, jejíž hodnota je počet
sekund, po které se bude HTTP interně v prohlížeči přesměrovávat na
HTTPS. Pro testování nastavze počet vteřin hodně malý, třeba jen pár minut.
Parametr includeSubdomains říká, že HSTS platí i pro všechny subdomény.
Tahle hlavička může být poslána ale pouze po HTTPS. Musíme tedy doufat,
že v odpovědi na první požadavek mizera tuto hlavičku neodstraní.
https://www.chromium.org/hsts
PRELOAD
Abychom nemuseli doufat, tak můžeme využít tzv. preload list. To je seznam webů,
které běží jen na HTTPS. Tento seznam je aktuálně spravován ručně, nejsou tam
úplně všechny weby, ale jen ty, které o přidání požádají. Tento seznam je v prohlížeči
rovnou od jeho nainstalování a zajistí, že prohlížeč bude už od začátku vědět, že váš
web je na HTTPS a rovnou bude posílat požadavky na HTTPS. Mizera má smůlu,
protože i ten úplně první požadavek již bude šifrovaný.
Nainstalujte si do browseru tohle rozšíření, díky němu se vám po HTTPS budou načítat
i weby, které ho defaultně nenabízí, třeba Wikipedia (Aktualizace: Wikipedia se načítá od
června 2015 pouze na HTTPS a to včetně HSTS, ale toto rozšíření si přesto nainstalujte,
weby si do něj můžete přidávat také ručně). Je to takové lokální HSTS, můžete si do
rozšíření přidat i weby, které navštěvujete a víte, že HTTPS podporují. Prohlížeč pak
bude rovnou načítat stránky po HTTPS, i když do adresy https:// nepřidáte.
HTTPS má spoustu šifer a nastavení, které se mohou použít při komunikaci, ne všechny
jsou však bezpečné. Pro správnou konfiguraci použijte odkazy na slajdu 17 a pro kontrolu
nastavení nástroj SSL Server Test. Měli byste dostat známku A nebo A+, horší raději ne.
MIXED CONTENTMIXED CONTENTPo převodu si dávejte pozor na tzv. mixed content, tedy když do stránek na
HTTPS načítáte HTTP obsah, typicky třeba videa, obrázky nebo JavaScript.
Browser takový obsah nemusí načíst nebo zobrazit.
REFERER
<meta name="referrer" content="origin">
origin → unsafe-url
Taky pozor na referrer, ten se ze stránek na HTTPS nepředává na HTTP, takže
je potřeba si správně odkazy z HTTPS označit, jinak nebudete třeba v GA
vědět, odkud návštěvník přišel. Můžete použít meta referrer (dvě „r“), díky němu
lze prohlížeči říct, že má posílat referrer i z HTTPS na HTTP. Hodnota origin
zajistí poslání pouze domény, unsafe-url předá celé URL včetně parametrů,
to používejte s rozmyslem. Meta referrer podporuje Chrome od konce roku
2011 a Firefox od verze 36. IE ho neumí vůbec, Edge naštěstí ano.
HTTPS
Změna http:// na https:// je změnou URL a tak si oprávněně říkáte, co to udělá s
vyhledávači. Oficiálně bohužel moc nevíme. Ze Slevomatu jsem ale dostal nějaká data a můžu
říci, že to neudělalo nic. Na grafu je návštěvnost z vyhledávače Google, ten drobný pokles prý
není nic důležitého. Se Seznamem je trochu problém, web prochází totiž neskutečně pomalu.
Takže bude záležet na tom, jak velký máte web, jak vás má Seznamův robot rád a jaké máte
vztahy se zákaznickou podporou Seznamu. (Aktualizace: začátkem října Seznam oznámil, že
nové weby na HTTPS jsou hodnoceny stejně jako weby na HTTP, ale přechod doporučil odložit
na začátek roku 2016. Více v mém článku Seznam a weby na HTTPS – dobrá i špatná zpráva.)
HTTPS
HTTP
Do Google Webmaster Tools musíte přidat HTTPS jako extra web. Takhle se tam zobrazil
počet zaindexovaných stránek Slevomatu, počet stránek na HTTP klesá, ale stoupá na
HTTPS. (Grafy mají rozdílnou osu Y, proto to vypadá, že stránek na HTTPS je více.)
YMMV
Michal ŠpačekMichal Špaček
www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze
Slyšel jsem sice nějaké příběhy, že se přechod z HTTP na HTTPS u někoho úplně
nepovedl, ale víc o tom nevím. Vaše výsledky se tedy mohou lišit a pokud chcete,
tak to raději dělejte mimo vaši sezónu. Nová verze protokolu HTTP 2 sice bude
umět i nešifrovaný režim, ale Firefox ani Chrome ho údajně podporovat nebudou.
Takže jednou nás šifrovaný web stejně všechny čeká. #HTTPSeverywhere
1 of 36

Recommended

Poučte se z cizích chyb by
Poučte se z cizích chybPoučte se z cizích chyb
Poučte se z cizích chybMichal Špaček
1.2K views37 slides
HTTPS (a šifrování) všude by
HTTPS (a šifrování) všudeHTTPS (a šifrování) všude
HTTPS (a šifrování) všudeMichal Špaček
2.4K views27 slides
Bezpečnost e-shopů (HTTPS, XSS, CSP) by
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Michal Špaček
1K views14 slides
Bezpečnost na mobilních zařízeních by
Bezpečnost na mobilních zařízeníchBezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeníchMichal Špaček
2.3K views19 slides
Noční můry webového vývojáře by
Noční můry webového vývojářeNoční můry webového vývojáře
Noční můry webového vývojářeMichal Špaček
7.5K views59 slides
Zabezpečení Slevomatu by
Zabezpečení SlevomatuZabezpečení Slevomatu
Zabezpečení SlevomatuMichal Špaček
9.8K views21 slides

More Related Content

What's hot

Medvědí služba by
Medvědí službaMedvědí služba
Medvědí službaMichal Špaček
832 views36 slides
Hashování hesel by
Hashování heselHashování hesel
Hashování heselMichal Špaček
9.2K views34 slides
Jak zlepšit zabezpečení čtvrtiny celého webu by
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuMichal Špaček
1.7K views23 slides
Základy webové bezpečnosti pro PR a marketing by
Základy webové bezpečnosti pro PR a marketingZáklady webové bezpečnosti pro PR a marketing
Základy webové bezpečnosti pro PR a marketingMichal Špaček
3K views25 slides
Hlava není na hesla by
Hlava není na heslaHlava není na hesla
Hlava není na heslaMichal Špaček
8.2K views33 slides
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu by
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguVíceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguMichal Špaček
582 views30 slides

What's hot(20)

Jak zlepšit zabezpečení čtvrtiny celého webu by Michal Špaček
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webu
Michal Špaček1.7K views
Základy webové bezpečnosti pro PR a marketing by Michal Špaček
Základy webové bezpečnosti pro PR a marketingZáklady webové bezpečnosti pro PR a marketing
Základy webové bezpečnosti pro PR a marketing
Michal Špaček3K views
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu by Michal Špaček
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguVíceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Michal Špaček582 views
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení by Michal Špaček
Password manažeři detailněji – 1Password, LastPass, 2FA, sdíleníPassword manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Michal Špaček2.7K views
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014) by Michal Špaček
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Michal Špaček830 views
WebTop100 Technické chyby, výkon a bezpečnost by Michal Špaček
WebTop100 Technické chyby, výkon a bezpečnostWebTop100 Technické chyby, výkon a bezpečnost
WebTop100 Technické chyby, výkon a bezpečnost
Michal Špaček2.1K views
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo) by Michal Špaček
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
Michal Špaček843 views
Bezpečnostní útoky na webové aplikace by Michal Špaček
Bezpečnostní útoky na webové aplikaceBezpečnostní útoky na webové aplikace
Bezpečnostní útoky na webové aplikace
Michal Špaček1.6K views
Kolik webových útoků znáš... by Michal Špaček
Kolik webových útoků znáš...Kolik webových útoků znáš...
Kolik webových útoků znáš...
Michal Špaček2.3K views
HTTPS zdarma a pro všechny - LinuxDays 2015 by tomashala
HTTPS zdarma a pro všechny - LinuxDays 2015HTTPS zdarma a pro všechny - LinuxDays 2015
HTTPS zdarma a pro všechny - LinuxDays 2015
tomashala1.3K views
Website Security & WordPress (Peter Gramantik) by wcsk
Website Security & WordPress (Peter Gramantik)Website Security & WordPress (Peter Gramantik)
Website Security & WordPress (Peter Gramantik)
wcsk587 views
Bezpečnostní útoky na webové aplikace, Čtvrtkon 5 by Michal Špaček
Bezpečnostní útoky na webové aplikace, Čtvrtkon 5Bezpečnostní útoky na webové aplikace, Čtvrtkon 5
Bezpečnostní útoky na webové aplikace, Čtvrtkon 5
Michal Špaček3.1K views
WordCamp Prague 2014 - Website security cz by peter_sucuri
WordCamp Prague 2014 - Website security czWordCamp Prague 2014 - Website security cz
WordCamp Prague 2014 - Website security cz
peter_sucuri1K views
Nejčastejší problémy WordPress webů by Vladimír Smitka
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webů
Vladimír Smitka3.7K views

Similar to Přechod na HTTPS

Fantom Opery, "VPN" a Secure Proxy v Opeře by
Fantom Opery, "VPN" a Secure Proxy v OpeřeFantom Opery, "VPN" a Secure Proxy v Opeře
Fantom Opery, "VPN" a Secure Proxy v OpeřeMichal Špaček
848 views18 slides
Rockaway Azure Hackathon 2016 – Kickoff Meeting prezetnace by
Rockaway Azure Hackathon 2016 – Kickoff Meeting prezetnaceRockaway Azure Hackathon 2016 – Kickoff Meeting prezetnace
Rockaway Azure Hackathon 2016 – Kickoff Meeting prezetnaceRockawayCapital
623 views58 slides
Smart Cards & Devices Forum 2013 - Babel by
Smart Cards & Devices Forum 2013 - BabelSmart Cards & Devices Forum 2013 - Babel
Smart Cards & Devices Forum 2013 - BabelOKsystem
551 views18 slides
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015) by
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)Jakub Kulhan
394 views18 slides
Anonymni komunikace na webu by
Anonymni komunikace na webuAnonymni komunikace na webu
Anonymni komunikace na webuDavid Němec
510 views6 slides
Smart Cards & Devices Forum 2013 - Komerční prezentace aplikace cryptocult by
Smart Cards & Devices Forum 2013 - Komerční prezentace aplikace cryptocultSmart Cards & Devices Forum 2013 - Komerční prezentace aplikace cryptocult
Smart Cards & Devices Forum 2013 - Komerční prezentace aplikace cryptocultOKsystem
780 views16 slides

Similar to Přechod na HTTPS(13)

Fantom Opery, "VPN" a Secure Proxy v Opeře by Michal Špaček
Fantom Opery, "VPN" a Secure Proxy v OpeřeFantom Opery, "VPN" a Secure Proxy v Opeře
Fantom Opery, "VPN" a Secure Proxy v Opeře
Michal Špaček848 views
Rockaway Azure Hackathon 2016 – Kickoff Meeting prezetnace by RockawayCapital
Rockaway Azure Hackathon 2016 – Kickoff Meeting prezetnaceRockaway Azure Hackathon 2016 – Kickoff Meeting prezetnace
Rockaway Azure Hackathon 2016 – Kickoff Meeting prezetnace
RockawayCapital623 views
Smart Cards & Devices Forum 2013 - Babel by OKsystem
Smart Cards & Devices Forum 2013 - BabelSmart Cards & Devices Forum 2013 - Babel
Smart Cards & Devices Forum 2013 - Babel
OKsystem551 views
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015) by Jakub Kulhan
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)
Jakub Kulhan394 views
Anonymni komunikace na webu by David Němec
Anonymni komunikace na webuAnonymni komunikace na webu
Anonymni komunikace na webu
David Němec510 views
Smart Cards & Devices Forum 2013 - Komerční prezentace aplikace cryptocult by OKsystem
Smart Cards & Devices Forum 2013 - Komerční prezentace aplikace cryptocultSmart Cards & Devices Forum 2013 - Komerční prezentace aplikace cryptocult
Smart Cards & Devices Forum 2013 - Komerční prezentace aplikace cryptocult
OKsystem780 views
API Obludárium (API 2018, Praha) by Michal Taborsky
API Obludárium (API 2018, Praha)API Obludárium (API 2018, Praha)
API Obludárium (API 2018, Praha)
Michal Taborsky116 views
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ... by Security Session
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Security Session442 views

More from Michal Špaček

Quality of Life, Multiple Lines of Defense by
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of DefenseMichal Špaček
657 views49 slides
Disclosing password hashing policies by
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policiesMichal Špaček
3K views24 slides
Operations security (OPSEC) in IT by
Operations security (OPSEC) in ITOperations security (OPSEC) in IT
Operations security (OPSEC) in ITMichal Špaček
1.2K views14 slides
HTTP Strict Transport Security (HSTS), English version by
HTTP Strict Transport Security (HSTS), English versionHTTP Strict Transport Security (HSTS), English version
HTTP Strict Transport Security (HSTS), English versionMichal Špaček
2.8K views27 slides
I forgot my password – what a secure password reset needs to have and why by
I forgot my password – what a secure password reset needs to have and whyI forgot my password – what a secure password reset needs to have and why
I forgot my password – what a secure password reset needs to have and whyMichal Špaček
3.8K views22 slides
HTTP/2 by
HTTP/2HTTP/2
HTTP/2Michal Špaček
2.2K views20 slides

More from Michal Špaček(9)

Quality of Life, Multiple Lines of Defense by Michal Špaček
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of Defense
Michal Špaček657 views
Disclosing password hashing policies by Michal Špaček
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policies
Michal Špaček3K views
Operations security (OPSEC) in IT by Michal Špaček
Operations security (OPSEC) in ITOperations security (OPSEC) in IT
Operations security (OPSEC) in IT
Michal Špaček1.2K views
HTTP Strict Transport Security (HSTS), English version by Michal Špaček
HTTP Strict Transport Security (HSTS), English versionHTTP Strict Transport Security (HSTS), English version
HTTP Strict Transport Security (HSTS), English version
Michal Špaček2.8K views
I forgot my password – what a secure password reset needs to have and why by Michal Špaček
I forgot my password – what a secure password reset needs to have and whyI forgot my password – what a secure password reset needs to have and why
I forgot my password – what a secure password reset needs to have and why
Michal Špaček3.8K views
The problem with the real world by Michal Špaček
The problem with the real worldThe problem with the real world
The problem with the real world
Michal Špaček2.2K views
Defense in Depth Web Inkognito 12/2013 by Michal Špaček
Defense in Depth Web Inkognito 12/2013Defense in Depth Web Inkognito 12/2013
Defense in Depth Web Inkognito 12/2013
Michal Špaček1.4K views
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013 by Michal Špaček
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Michal Špaček1K views

Přechod na HTTPS

  • 1. PŘECHODPŘECHOD NA HTTPSNA HTTPS Michal ŠpačekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze Tato verze slajdů obsahuje navíc poznámky nejen pro ty, kteří na přednášce nebyli.
  • 2. WiFi PineappleWiFi Pineapplewww.wifipineapple.com Tohle zařízení za $99.99 umí pomocí útoku nazvaného Karma přesvědčit vaše počítače a telefony, aby se připojily na útočníkem ovládanou Wi-Fi síť. Tahle krabička odpoví kladně na dotaz, jestli náhodou nevysílá síť, kterou má váš počítač uloženou. Pokud se na tuhle krabičku připojíte, tak mizera může číst a měnit veškerý nezašifrovaný provoz.
  • 3. Tady vidíte příklad jedné takové Wi-Fi sítě v Burger Kingu kdesi na benzínce. Když jsem na ni byl připojen, tak do každé stránky načtené po HTTP byl vložen banner. Všimněte si té reklamy na auto dole uprostřed. Ta na původní stránce není, nacpal ji tam ten Burger King, aby provoz Wi-Fi nemusel platit ze svého. Do HTTPS stránek se nic nevkládalo.
  • 4. Ale vkládání reklam není to nejhorší, pamatuje si na HackingTeam? To je ta firma, co dělá špehovací software, který si koupila mj. česká policie. Toto je slajd přímo z jedné prezentace HackingTeamu. Jejich software do stránek na HTTP vkládá exploity, které si jen tak, s obsahem běžné stránky, stáhnete do svého zařízení a díky bezpečnostním chybám např. ve Flashi se potichu nainstalují. Ty exploity pak umožní odposlouchávat třeba vaše telefonní hovory, zkoumat co máte na disku počítače apod.
  • 5. HTTPS as a ranking signal Přecházet na HTTPS byste měli kvůli uživatelům, aby nějaký mizera nemohl jednoduše poslouchat, co posílají na server nebo měnit stránky, které si stahují. Google sice nedávno oznámil, že weby na HTTPS bude preferovat, ale sám Google tvrdí, že HTTPS má velmi malou váhu a ovlivňuje to asi procento dotazů. Kvůli Google na HTTPS nepřecházejte.
  • 6. ENCRYPTION & AUTHENTICATION HTTPS zajišťuje šifrování přenosu proti odposlechu a modifikaci a ověřuje protistranu, uživatelé tak vědí s kým komunikují. Bylo by trochu hloupé, kdyby šifrovaná data posílali mizerovi a ten si je v klidu rozšifroval a přečetl nebo změnil.
  • 7. HTTP Secure HTTP over SSL HTTPS znamená HTTP Secure, dříve často HTTP over SSL. Jenže poslední verze protokolu SSL 3 je z roku 1996 a už by se neměla používat, nejenom kvůli útoku POODLE. Amazon, Twitter, Slevomat a další již protokol SSL nepodporují, udělejte to stejně. Chrome od verze 40 a Firefox od verze 34 již standardně SSL neumí.
  • 8. TLS Transport Layer Security Dnes by se měl používat protokol TLS nejlépe v nejnovější verzi 1.2. Verze 1.3 je v březnu 2015 zatím ve fázi draft. TLS standardně neumí IE6 na WinXP/2000, TLS je tam potřeba zapnout ručně. IE7 již TLS 1.0 umí i na WinXP.
  • 9. HTTPS = How To Transfer Private Shit SSL, TLS, ABS, BBC, OMG… já si prostě myslím, že HTTPS znamená How To Transfer Private Shit. Nikomu není nic do toho, jaké články si zrovna čtu a nikdo by neměl zasahovat do dat, která do prohlížeče stahuji. To jsou mé soukromé záležitosti.
  • 10. Pro to, abyste mohli HTTPS začít na vašem webu používat budete potřebovat certifikát. Pokud má váš web subdomény, tak budete pro každou potřebovat certifikát zvlášť. Můžete využít rozšíření SAN (Subject Alternative Name, jeden certifikát platí pro více domén) nebo tzv. wildcard certifikát, který platí pro *.example.com. Certifikáty nemusí být drahé, za necelé dvě stovky na rok je prodává třeba SSLS.cz. (Aktualizace: v dubnu 2016 byla spuštěna ostrá verze certifikační autority Let's Encrypt, která vystavuje certifikáty zdarma.) Certifikáty vystavují tzv. certifikační autority (CA). Těch je spousta, ale pokud prohlížeč návštěvníka vaši CA nezná, bude hlásit chybu.
  • 11. Pokud jste banka nebo očekáváte phishingové útoky na vaši značku, tak zvažte EV (Extended Validation) certifikát. Vaše ověření pak bude trochu náročnější, ale poté se v browseru zobrazí i země a název firmy, pro kterou je certifikát vystaven a uživatel si tak může lépe ověřit, že komunikuje s tím, s kým opravdu chce.
  • 12. Foobar International (IE) Foobar International Dublin 7 Dublin, IE Pokud se název vaší firmy neshoduje s názvem vaší domény nebo pokud je jiný, než značka, kterou na webu propagujete, tak by to uživatele mohlo naopak zmást. Kdyby zlavomat.sk provozovala irská firma Foobar International, tak by EV certifikát v prohlížeči vypadal takto a to by moc důvěry nevzbuzovalo. EV certifikáty jsou také mnohem dražší.
  • 13. PRIVÁTNÍ KLÍČ Když budete pořizovat nějaký certifikát, tak k němu dostanete soukromý (privátní) klíč. Ten chraňte jako oko v hlavě, nikdy ho neposílejte e-mailem, neposílejte ho na server ani po FTP. Standardní e-mail i FTP jsou nešifrované a klíč může někdo odposlechnout. Použijte šifrovaný přenos SFTP. E-maily šifrujte pomocí PGP nebo S/MIME.
  • 14. http://www.spiegel.de/media/media-35511.pdf Koncem roku 2014 spatřily světlo světa dokumenty NSA, které hovoří o tom, že NSA umí rozšifrovat HTTPS. Novináři se z toho mohli podělat, „HTTPS je k ničemu!“, jenže NSA umí HTTPS rozšifrovat jen když má privátní klíč. EASY.
  • 15. Při výměně klíčů mezi serverem a prohlížečem, které se říká RSA jsou šifrovací hesla odvozená od privátního klíče, kdo získá privátní klíč, získá šifrovací hesla a může HTTPS dešifrovat a to i zpětně.
  • 16. KRYPTOANALÝZA GUMOVOU HADICÍ http://xkcd.com/538/ A jak ten privátní klíč získá? Třeba kryptoanalýzou pomocí gumové hadice. Majitel privátního klíče dostane zahradní hadicí přes zadek a klíč milerád vydá. Klíč se dá samozřejmě získat i tak, že někdo odposlechne e-mail, kterým ten klíč posíláte.
  • 17. Klíče lze naštěstí vyměnit i jinak. Při výměně klíčů EDH (Ephemeral Diffie– Hellman, někdy též DHE) se používají krátkodobé šifrovací klíče, které nejsou závislé na privátním klíči. Ten slouží jen pro ověření serveru. Když někdo získá privátní klíč, tak je mu celkem k ničemu. Nemůže rozšifrovat zaznamenanou komunikaci ani tu budoucí. (Aktualizace: v květnu 2015 se objevil útok proti výměně klíčů EDH nazvaný Logjam, který funguje s malými 512-bitovými nebo často používanými 1024-bitovými prvočísly. Proto je lepší použít ECDHE (Elliptic- Curve Diffie-Hellman Ephemeral), což je varianta DHE, která používá kryptografii nad eliptickými křivkami. ECDHE je také rychlejší, než obyčejné DHE.)
  • 18. PERFECT FORWARD SECRECY Výměně klíčů pomocí EDH se říká Perfect Forward Secrecy. Tuhle výměnu byste měli na serveru nabízet. Poznáte to v browseru tak, že tam bude uvedeno DHE nebo ECDHE. Bude tam i RSA, ale hlavně, že tam bude DHE.
  • 19. https://wiki.mozilla.org/Security/Server_Side_TLS https://mozilla.github.io/server-side-tls/ssl-config-generator/ Na prvním odkazu naleznete příklady konfigurace webového serveru, jak nastavit šifry a jak nastavit výměnu klíčů. Na druhém odkazu je přímo generátor konfigurace pro Apache apod.
  • 20. Certifikát máte. Co dalšího budete pro přesun vašeho webu na HTTPS potřebovat? Zvláštní IP adresa to nebude. Od roku 2003 totiž existuje rozšíření protokolu TLS s názvem SNI.
  • 21. SNI Server Name Indication SNI podporuje Firefox od verze 2, Chrome od verze 6 na WinXP, jakýkoliv Chrome na WinVista a výše, Safari 3, Android 3. Na WinXP SNI nefunguje v žádném IE, na WinVista a výše ho umí IE od verze 7. Pokud potřebujete podporovat starší verze, tak vlastní IP adresu potřebovat budete stále.
  • 22. HTTP 301Až budete mít HTTPS připravené, tak přesměrujte návštěvníky z HTTP na HTTPS pomocí stavového kódu 301.
  • 23. HTTPONLY & SECURE Httponly příznak pro session id cookie už určitě používáte, teď nastavte ještě parametr Secure. Ten zabrání úniku session id po případném downgrade spojení na HTTP.
  • 24. Httponly příznak je důležitý, zabrání totiž přístupu JS k session cookie. Když ten příznak nebudete mít nastavený, tak se může stát, že nějaký analytický nástroj bude krást session id vašim uživatelům. Dělá to třeba stat-monitor.cz – takhle krade session id uživatelům webu aaaauto.cz.
  • 25. <img src="http://www.mironet.cz"> Když web nemá session cookie označenou jako Secure, tak ji browser pošle i po HTTP. Útočník může donutit browser poslat takovou cookie po HTTP třeba tak, že někam umístí značku IMG s adresou pro načtení HTTP verze webu a bude poslouchat provoz uživatelů na bezdrátové síti.
  • 26. Prohlížeč Mizera Server HTTP HTTPS SSL STRIP Mizera může proti uživatelům použít útok SSL Strip. Pokud chcete načíst nějakou zabezpečenou stránku, obvykle do prohlížeče píšete adresu bez zadání počátečního https:// – browser pošle nešifrovaný požadavek na server, ten odpoví přesměrováním na HTTPS. Tento úvodní požadavek může zachytit mizera, přepošle ho na server, server odpoví jemu a do prohlížeče vrátí nešifrovanou stránku. Uživatel vyplní přihlašovací údaje, pošle je mizerovi, ten si je přečte, zašifruje a pošle serveru.
  • 27. HSTS HTTP Strict Transport Security Útoku SSL Strip se dá bránit pomocí HSTS. To zajistí, že browser vůbec nebude posílat nešifrovaný požadavek na server, ale místo toho vygeneruje interní přesměrování a rovnou načte stránku z HTTPS. Více v mé přednášce o HSTS.
  • 28. Strict-Transport-Security: max-age=31536000; includeSubDomains; HTTP Strict Transport Security je HTTP hlavička, jejíž hodnota je počet sekund, po které se bude HTTP interně v prohlížeči přesměrovávat na HTTPS. Pro testování nastavze počet vteřin hodně malý, třeba jen pár minut. Parametr includeSubdomains říká, že HSTS platí i pro všechny subdomény. Tahle hlavička může být poslána ale pouze po HTTPS. Musíme tedy doufat, že v odpovědi na první požadavek mizera tuto hlavičku neodstraní.
  • 29. https://www.chromium.org/hsts PRELOAD Abychom nemuseli doufat, tak můžeme využít tzv. preload list. To je seznam webů, které běží jen na HTTPS. Tento seznam je aktuálně spravován ručně, nejsou tam úplně všechny weby, ale jen ty, které o přidání požádají. Tento seznam je v prohlížeči rovnou od jeho nainstalování a zajistí, že prohlížeč bude už od začátku vědět, že váš web je na HTTPS a rovnou bude posílat požadavky na HTTPS. Mizera má smůlu, protože i ten úplně první požadavek již bude šifrovaný.
  • 30. Nainstalujte si do browseru tohle rozšíření, díky němu se vám po HTTPS budou načítat i weby, které ho defaultně nenabízí, třeba Wikipedia (Aktualizace: Wikipedia se načítá od června 2015 pouze na HTTPS a to včetně HSTS, ale toto rozšíření si přesto nainstalujte, weby si do něj můžete přidávat také ručně). Je to takové lokální HSTS, můžete si do rozšíření přidat i weby, které navštěvujete a víte, že HTTPS podporují. Prohlížeč pak bude rovnou načítat stránky po HTTPS, i když do adresy https:// nepřidáte.
  • 31. HTTPS má spoustu šifer a nastavení, které se mohou použít při komunikaci, ne všechny jsou však bezpečné. Pro správnou konfiguraci použijte odkazy na slajdu 17 a pro kontrolu nastavení nástroj SSL Server Test. Měli byste dostat známku A nebo A+, horší raději ne.
  • 32. MIXED CONTENTMIXED CONTENTPo převodu si dávejte pozor na tzv. mixed content, tedy když do stránek na HTTPS načítáte HTTP obsah, typicky třeba videa, obrázky nebo JavaScript. Browser takový obsah nemusí načíst nebo zobrazit.
  • 33. REFERER <meta name="referrer" content="origin"> origin → unsafe-url Taky pozor na referrer, ten se ze stránek na HTTPS nepředává na HTTP, takže je potřeba si správně odkazy z HTTPS označit, jinak nebudete třeba v GA vědět, odkud návštěvník přišel. Můžete použít meta referrer (dvě „r“), díky němu lze prohlížeči říct, že má posílat referrer i z HTTPS na HTTP. Hodnota origin zajistí poslání pouze domény, unsafe-url předá celé URL včetně parametrů, to používejte s rozmyslem. Meta referrer podporuje Chrome od konce roku 2011 a Firefox od verze 36. IE ho neumí vůbec, Edge naštěstí ano.
  • 34. HTTPS Změna http:// na https:// je změnou URL a tak si oprávněně říkáte, co to udělá s vyhledávači. Oficiálně bohužel moc nevíme. Ze Slevomatu jsem ale dostal nějaká data a můžu říci, že to neudělalo nic. Na grafu je návštěvnost z vyhledávače Google, ten drobný pokles prý není nic důležitého. Se Seznamem je trochu problém, web prochází totiž neskutečně pomalu. Takže bude záležet na tom, jak velký máte web, jak vás má Seznamův robot rád a jaké máte vztahy se zákaznickou podporou Seznamu. (Aktualizace: začátkem října Seznam oznámil, že nové weby na HTTPS jsou hodnoceny stejně jako weby na HTTP, ale přechod doporučil odložit na začátek roku 2016. Více v mém článku Seznam a weby na HTTPS – dobrá i špatná zpráva.)
  • 35. HTTPS HTTP Do Google Webmaster Tools musíte přidat HTTPS jako extra web. Takhle se tam zobrazil počet zaindexovaných stránek Slevomatu, počet stránek na HTTP klesá, ale stoupá na HTTPS. (Grafy mají rozdílnou osu Y, proto to vypadá, že stránek na HTTPS je více.)
  • 36. YMMV Michal ŠpačekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze Slyšel jsem sice nějaké příběhy, že se přechod z HTTP na HTTPS u někoho úplně nepovedl, ale víc o tom nevím. Vaše výsledky se tedy mohou lišit a pokud chcete, tak to raději dělejte mimo vaši sezónu. Nová verze protokolu HTTP 2 sice bude umět i nešifrovaný režim, ale Firefox ani Chrome ho údajně podporovat nebudou. Takže jednou nás šifrovaný web stejně všechny čeká. #HTTPSeverywhere