Objavljeno: 20.12.2011 11:51 | Avtor: Marko Hölbl | Monitor December 2011

SSL in afera Diginotar

Ko prek interneta pošiljamo občutljive podatke, se za prenos uporablja protokol SSL (Secure Sockets Layer). V zadnjem času pa se sliši precej vprašanj glede njegove varnosti, predvsem po izbruhu afere DigiNotar. Strokovnjak za kriptografijo in razvijalec TORa, Jacob Appelbaum, celo meni, da je SSL tempirana bomba.

Pred tremi meseci je hekerju z vzdevkom lchsun uspelo vdreti v infrastrukturo podjetja DigiNotar, ki je overitelj (ang. certificate authority - CA), torej izdajatelj digitalnih potrdil (ang. certificate), in si izdati neomejeno digitalno potrdilo (ang. wildcard certificate) za *.google.com. To je bilo 11. julija. Nato je 28. avgusta iranski uporabnik Googlovih storitev prijavil prav to potrdilo kot sumljivo in s tem razkril celotno zlorabo. Ponarejeno potrdilo se je namreč v Iranu na široko uporabljalo za izvedbo napada z vmesnim možem (ang. man-in-the-middle). Podjetje DigiNotar je po incidentu najelo varnostno podjetje Fox-IT, da bi opravilo preiskavo o vdoru. Med drugim je podjetje Fox-IT ugotovilo, da je večina (99 %) dostopov do ponarejena digitalnega potrdila prišla iz Irana.

Heker, ki je vdrl v DigiNotar, pa ni samo izdal ponarejenega digitalnega potrdila za Google, temveč tudi za 40 drugih domen, t. i. korenskih digitalnih potrdil. S temi je bilo izdelanih 500 nepristnih digitalnih potrdil. Med podjetji, ki so bila tarča ponaredb, so tudi Facebook, CIA, Yahoo, Skype, Microsoft in celo WindowsUpdate.com.

Pomanjkljiva varnost

Glede na poročilo Fox-IT je bil vdor posledica slabega varovanja v podjetju DigiNotar. Napake v varnostni konfiguraciji so omogočile, da je napadalec prevzel nadzor nad celotno infrastrukturo podjetja, skupaj s strežniki, zadolženimi za izdajo digitalnih potrdil. Glede na analizo naj bi se napad zgodil že mesec dni prej, torej junija, a tudi po tem, ko je DigiNotar zaznal napad, ni ustrezno ukrepal in obvestil imetnikov domen in izdelovalcev brskalnikov. Šele po razkritju ponarejenega digitalnega potrdila za Googlovo spletno pošto Gmail je bilo podjetje prisiljeno priznati vdor. Ena izmed resnih pomanjkljivosti, ki jih med drugim razkriva poročilo, je dejstvo, da podjetje ni imelo nameščene zaščitne programske opreme (protivirusnega programa). Zdi se skoraj neverjetno, da overitelj, ki naj bi bil preverjan s strani ustreznih ustanov in izdelovalcev brskalnikov, ni uporabljal osnovnih metod zaščite informacijskega sistema. Za overitelje se namreč med drugim tudi zahteva, da uporabljajo zaščitno programsko opremo. Prav tako naj bi bila praksa, da so podjetja, ki opravljajo funkcijo overitelja, redno nadzorovana, to pa očitno v primeru DigiNotarja ni držalo.

To, koliko lahko zaupamo varni povezavi, brskalniki prikazujejo tudi z barvami in drugimi oznakami - zgled prikaza za Chrome, Firefox in Internet Explorer.

Ne glede na dvome, ki se porajajo ob incidentu, večina izdelovalcev brskalnikov vključi marsikaterega overitelja na svoj seznam zaupanja vrednih overiteljev. Internet Explorer ima kot najbolj razširjen brskalnik v svojem portfelju okoli sto korenskih overiteljev, Firefox okoli 50, Chrome pa okoli 35. Milijoni uporabnikov varnih povezav zaupajo izdelovalcem brskalnikom in torej tudi overiteljem ter posledično vsem digitalnih potrdilom, ki jih ti izdajo. Varnostni strokovnjak Bruce Schneier je v svojem blogu komentiral, da je težava v tem, da je za varnost v internetu danes treba zaupati prevelikemu številu organizacij in podjetij. Po internetu celo krožijo informacije, da naj bi prej omenjeni heker lchsun imel pod nadzorom še tri korenske overitelje poleg DigiNotarjevega, tako da bi se lahko zgodba kaj hitro ponovila.

Brskalniki opozarjajo uporabnika, če želi vzpostaviti varno povezavo z nezaupljivo spletno stranjo.

Odziv

Le dva dni po tem, ko je po spletu zaokrožilo sumljivo digitalno potrdilo, so se izdelovalci programske opreme in brskalnikov odzvali - Microsoft je takoj odstranil DigiNotarja s svojega seznama zaupanja vrednih overiteljev. Takoj zatem sta storila enako tudi Mozilla Foundation za svoj brskalnik Firefox in Google za svoj brskalnik Chrome. Edini evropski brskalnik Opera je bil edini nedovzeten za napade, saj vedno preverja seznam preklicanih potrdil (ang. certificate revocation list), preden vzpostavi SSL povezavo. Od večjih izdelovalcev je zamujal le Apple z brskalnikom Safari, za katerega je bil ustrezni popravek na voljo "šele" čez teden dni. Prav tako je Apple overitelja DigiNotar odstranil s seznama zaupanja vrednih overiteljev v operacijskem sistemu Mac OS X. Za mobilne naprave iOS trenutno popravek še ni na voljo. Drugi prevladujoči platformi za pametne mobilne telefone (Android in Windows Phone) sta zunaj nevarnosti.

Seznam zaupanja vrednih overiteljev je obsežen - zgled seznama brskalnika Chrome.

Odprava težav

Na žalost v kratkem ni pričakovati razrešitev težav okoli SSL, zato izdelovalci brskalnikov na svoje načine razrešujejo težave. Googlov Brskalnik Chrome uporablja t. i. bele sezname (ang. white list), s katerimi preverja, ali ima overitelj, ki je izdal Googlovo potrdilo, pravico to tudi izdati. Pri DigiNotarju ni bilo tako. Na tak način Google poskuša zaznati anomalije. Omenjeni način preverjanja veljavnosti digitalnih potrdil lahko uporabljajo tudi drugi ponudniki strani in za svoje SSL varovane strani prav tako vzpostavijo bel seznam za lastno domeno ter tako preprečijo zlorabe. Prav Googlova tehnologija je bila tista, ki je pomagala razkriti zlorabo s ponarejenim digitalnim potrdilom, saj je iranskemu uporabniku Googlove elektronske pošte sporočila, da z digitalnim potrdilom ni vse v redu, zato se je uporabnik obrnil na Google. Tako se je celotna zgodba okoli ponarejenega digitalnega potrdila sploh začela.

Težave se poskuša reševati tudi ob pomoči tehnologije DNSSEC (ang. domain name systems security extensions). Tehnika poskuša manipulacije preprečiti na strani strežnika, ki je zadolžen za pretvorbo spletnega naslova v IP številko (t. i. DNS strežnik). Razširitve, potrebne za delovanje DNSSEC, se imenujejo DANE (ang. DNS-based authentication of named entities ) in so trenutno v postopku sprejemanja pri organizaciji IETF (ang. internet engineering task force). Omenjena naveza DNSSEC in DANE lahko prepreči tudi druge napade, ki manipulirajo DNS.

Drugačno rešitev predlaga projekt Convergence, ki ne preverja potrdil pri vzpostavljanju SSL povezav na podlagi seznama korenskih digitalnih potrdil v brskalniku, temveč verodostojnost digitalnih potrdil na podlagi notarjev (ang. notaries). Notarji so lahko poljubni računalniki z različnih koncev sveta, ki delujejo kot overitelj. Omenjeno rešitev je mogoče uporabljati v navezavi z brskalnikom Firefox kot vtičnik (ang. Plug-in). Kljub temu ostajajo težave z uporabniki, saj glede na izjave razvijalca Chroma Adama Langleyja, 99 % uporabnikov brskalnika Chrome privzetih nastavitev ne spreminja. Enako velja tudi za druge brskalnike.

Kako deluje SSL?

Za varno povezavo med uporabnikom in spletnim strežnikom je mogoče uporabiti tehnologijo SSL (ang. secure sockets layer). Varne povezave se uporabljajo predvsem pri elektronskem bančništvu, spletnem dostopu do elektronske pošte in povsod, kjer prenašamo varnostno občutljive informacije, kot so uporabniška imena in gesla.

Delovanje SSL temelji na šifriranju podatkov (podatke pretvorimo v neuporabno obliko). Strežnik, na katerega se povezujemo, ima v lasti par ključev, javni in zasebni ključ. Oba sta med seboj povezana, vendar na podlagi enega ni mogoče kakorkoli pridobiti drugega. Z javnim ključem, ki je javno dostopen, je mogoče podatke šifrirati. Za dešifriranje podatkov pa potrebujemo zasebni ključ, saj nam javni tega ne omogoča. Ker je omenjeni način šifriranja podatkov precej časovno in računsko zahteven, se v praksi uporablja za izmenjavo tretjega ključa, ki se nato uporablja za šifriranje podatkov med strežnikom in odjemalčevim brskalnikom. Postopek šifriranja, kjer imamo dva ključa, se imenuje asimetrično šifriranje in se uporablja za izmenjavo tretjega ključa, ki pripada ustreznemu postopku šifriranja. Šifriranje, kjer uporabljamo isti ključ za šifriranje in dešifriranje, imenujemo simetrično šifriranje.

Pri vzpostavitvi povezave SSL brskalnik generira simetrični ključ in ga s pomočjo javnega ključa strežnika šifrira ter ga tako varno posreduje strežniku. Ta nato ob pomoči svojega zasebnega ključa dešifrira poslane podatke in pridobi simetrični ključ, ki ga lahko uporablja za varovanje povezave z brskalnikom.

Digitalna potrdila pa se uporabljajo za zagotavljanje pristnosti javnega ključa oz. vezave le-tega na ustrezno domeno ali strežnik. Če ne bi uporabljali digitalnih potrdil, bi lahko marsikdo ustvaril zasebni in javni ključ z lažnimi podatki ter se tako predstavljal kot pristni strežnik. Digitalna potrdila rešujejo to težavo tako, da identiteto strežnika oz. domene vežejo na njegov javni ključ. Digitalno potrdilo tako vsebuje podatke o imetniku (domena ali strežnik) in pripadajoč javni ključ. Ključno vlogo pri preverjanju pristnosti igrajo overitelji (ang. certificate authority - CA), ki so izdajatelji digitalnih potrdil in jamčijo za pristnost imetnika (domene ali strežnika). Overitelji jamčijo za izdana potrdila (npr. za Googlovo elektronsko pošto) s svojim lastnim digitalnim potrdilom, ki ga v primeru overitelja imenujemo korensko digitalno potrdilo (ang. root certificate). Brskalniki vsebujejo prednaložen seznam korenskih digitalnih potrdil, ki jim zaupajo. Vendar lahko tudi uporabniki dodajajo korenska potrdila. Overitelji digitalnih potrdil lahko določena izdana digitalna potrdila tudi uvrstijo na črni seznam, če se izkaže, da je prišlo do zlorabe.

Prihodnost

V prihodnosti bi se morali izdelovalci brskalnikov in operacijskih sistemov zediniti o morebitni rešitvi, saj trenutno stanje na področju SSL in varnih povezav uporabnikom pogosto daje lažen občutek varnosti.

Mogoče je seveda narediti izbor lastnih zaupanja vrednih korenskih overiteljev in se tako izogniti scenarijem, kot je bil DigiNotar, vendar je to primerno predvsem za naprednejše uporabnike. Mogoča rešitev se ponuja tudi v obliki namenskega brskalnika, pri katerem prečistimo seznam overiteljev in ga uporabljamo samo za varnostno občutljive stvari, kot je elektronsko bančništvo ali nakupovanje prek spleta.

Koristne povezave:

  • SSL / TLS,
    en.wikipedia.org/wiki/Secure_Sockets_Layer en.wikipedia.org/wiki/Transport_Layer_Security
  • DigiNotar public report version 1, www.rijksoverheid.nl/ministeries/bzk/documenten-en-publicaties/rapporten/2011/09/05/diginotar-public-report-version-1.html
  • DNSSEC, www.dnssec.net
  • DANE, tools.ietf.org/wg/dane
  • Convergence Beta, convergence.io
  • Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

    Komentirajo lahko le prijavljeni uporabniki

     
    • Polja označena z * je potrebno obvezno izpolniti
    • Pošlji