Trable s https na chytrých televizích

28. duben 2013

Zabezpečená komunikace na Internetu vyžaduje šifrování přenášeného obsahu a ověření identity serveru, se kterým televize komunikuje. To přináší aplikacím na chytrých televizích určité problémy.

Jak to celé funguje?

K zabezpečenému přenosu na Internetu se používá symetrické šifrování dat. Typ použité šifry závisí na schopnostech a množině podporovaných šifer (tzv. cipher suite) na obou stranách – tedy na serveru i televizi. Šifrovacích algoritmů je celá řada a před sestavením šifrované komunikace je potřeba se na typu použité šifry dohodnout. Za tímto účelem proběhne před samotným přenosem dat tzv. SSL handshake, během kterého se dohodnou obě strany jaké šifry a s jakými parametry se použijí pro šifrování, jaké pro přenos klíčů, jakým hash algoritmem se provede kontrola integrity, apod. Protože se samotná data šifrují vždy symetricky (AES, 3DES, RC4, Camelia…) je potřeba sdílet oběma stranami klíč pro daný algoritmus. Klíč si televize a server vymění rovněž během handshake sekvence. K bezpečnému přenosu klíčů se využívá asymetrického šifrování, pro které televize využije veřejný klíč serveru, který obsahuje serverový SSL certifikát. Certifikát server odešle televizi během handshake sekvence.

Samotné šifrování však nestačí, televize také musí ověřit identitu serveru a zabránit tak scénáři, kdy by útočník (tzv. man-in-the middle) podvrhl televizi vlastní SSL certifikát a veškerá komunikace by se přeposílal přes něj. V takovém případě by sice komunikace byla zabezpečená, nicméně data by se šifrovala klíčem útočníka, který by tak získal přístup k jejich otevřené podobě. Proto je nutné ověření identity (domény) serveru. K tomu se používají údaje obsažené v SSL certifikátu, který obsahuje zejména informace o tom:

  • Komu byl certifikát vystaven. Z hlediska komunikace nás pak zejména zajímá položka Common Name (CN), kde je uvedena doména pro kterou byl certifikát vystaven nebo subdomény (tzv. wildcard certifikát) pro které je certifikát platný (např. *.google.cz).
  • Kým byl vystaven – název certifikační autority (CA), která certifikát vystavila.
  • Platnost certifikátu.
  • Veřejný klíč serveru, se kterým budeme komunikovat (tento klíč se použije ke přenosu klíčů pro symetrické šifrování).
  • A především pak certifikát obsahuje podpis certifikační autority. Podpis je vytvořen tak, že je spočítán hash ze všech dat, které jsou v certifikátu obsažena. Tento hash je následně zašifrován privátním klíčem certifikační autority a přiložen k certifikátu.
  • Každá televize obsahuje předinstalované certifikáty řady certifikačních autorit. Toto je velmi důležité – protože bezpečnost komunikace je založena na důvěře, že televize obsahuje správné certifikáty.

V čem je tedy na chytrých televizích problém?

Při ověřování identity serveru musí televize ověřit, zda je certifikát pravý. Za tímto účelem televize nalezne veřejný klíč v lokálně uloženém (tj. předinstalovaném) certifikátu autority, o kterém se domnívá, že serverový certifikát vydala. Televize provede dešifrování hashe (podpisu) a získanou hodnotu porovná s hodnotou hashe, který sama z dat obsažených v certifikátu spočítá. Pokud jsou obě hodnoty shodné, potom televize ověřila, že certifikát byl pro doménu, se kterou komunikuje, vydán certifikační autoritou, které důvěřuje.

Právě ono ověření certifikační autority je na chytrých televizích občas „problematické“. Zatímco webové prohlížeče umožňují instalaci dalších certifikátů (což tedy není zcela bezpečné), množina certifikátů, které podporují televize je konečná a rozšiřitelná jen updatem firmware. Proto je zcela vyloučené používat tzv. self-signed certifikáty (tj. certifikáty, vygenerované libovolnou osobou pomocí open SSL nebo podobného nástroje). Televize také často nepodporují tzv. certificate chains, tedy situace kdy certifikační autorita deleguje pravomoc podepisování certifikátů další společnosti (Intermediate CA) a ta certifikát vydá. V minulosti jsme měli problémy například s certifikáty vydanými společnostmi StartCom nebo StarField.

Vezmeme-li v potaz, že nové aplikace podporují nyní 2 až 3 roky staré modelové řady několika výrobců (Samsung, LG, Philips, Sony, Panasonic) je velmi pravděpodobné, že k nějakým problémům dojde. Pokud jim chcete předcházet, je nejjednodušší si nechat vystavit certifikát u Symantecu, resp. u některé z jím vlastněných společností – Thawte, VeriSign nebo GeoTrust, které kontrolují více než 40% všech vydaných certifikátů pro webové služby a jejichž root certifikáty zaručeně naleznete na všech modelech chytrých televizí.

I proto je důležité nepodceňovat testování na reálných televizích a nespoléhat se jen na otestování aplikace v emulátoru.

Vlastnosti SSL certifikátu pro doménu lze ověřit například zde.


Více čtení o SSL a certifikátech zde: 1, 2, 3, 4

Přihlašte se k odběru novinek