Wie widerlich ist eigentlich diese SSL chain of Trust denn so? Der Ausdruck Clusterfuck wird seit Trump ja recht inflationär verwendet, aber diese schöne Geschichte hier lässt wieder tief blicken..
Dazu muss man etwas ausholen..
Es geht letztlich drum, wenn ich im Browser auf eine verschlüsselte HTTPS Verbindung gehe, dann macht der Browser ein grünes Hackerl wenn er meint alles ist in Ordnung, oder er wirft eine lästige Warnung dass er der Verbindung nicht traut und geht nicht weiter (wird auch für vieles anderes verwendet wie Email Zugang, aber das ist das bekannteste).
Wie funktioniert das, bzw woher weiss der Browser dass es wirklich Ok ist, bzw was ist die Chain of Trust?
- Wenn ich auf
https://www.test.com gehe, schickt mir der Server einen public SSL key. Damit kann ich eine verschlüsselte Verbindung aufbauen.. Genau so wie jeder andere der den public key hat. Den public key darf jeder haben, drum heisst er so.
- Den von mir verschlüsselten Inhalt *lesen* kann man aber nur mit dem *private* Key. Der private key liegt nur auf dem Server der an die Inhalte ran darf, sonst nirgends. Der private key ist geheim, wenn ihn jemand anderer hätte, könnte der die ganze Kommunikation mitlesen.
- Will ich als Angreifer mitlesen, kann ich daher entweder den private key vom Server klauen, oder ich mache meinen eigenen private+public key, jubel dem Browser meinen falschen public key unter und sage ihm, nimm doch bitte den um den Traffic zu verschlüsseln (dann leite ich den Traffic zu mir, lese ihn, verschlussle ihn mit dem richtigen public key und leite ihn an den richtigen Server weiter).
- Um das zu verhindern hat man Zertifikate eingeführt. Der Server gibt den public key als Teil eines Zertifikats her, in dem auch noch signiert drinsteht, genau der public key ist für genau diese Domain
http://www.test.com gültig.
- Der Browser bekommt das Zertifikat, sagt das ist schön, aber warum soll ich dir das glauben, könnte ja auch gefaked sein.
- Deswegen steht im Zertifikat auch noch mit dabei eine Referenz auf den, der dieses Zertifikat erstellt und signiert hat, die Certificate Authority (CA) für dieses Zertifikat. Das ist zb der Domain Admin für test.com.
- Der Browser sagt, nett, kenn den Typen aber auch nicht, trau ich nicht, kein grünes Hackerl.
- Deswegen kann eine CA sich ebenfalls von einer höheren CA signieren lassen.. Das geht so weiter hinauf, bis man bei der root Authority angekommen ist.
- die root Authority kann jetzt irgendwer sein, zb der Domain Admin von test.com. Wenn man dem vertraut, zb weil es die eigene Firma ist oder es ok aussieht, kann man sich das root Authority Zertifikat holen und dem Browser sagen, vertrau dem mal. Dann bekommt fortan alles was der signiert (
http://www.test.com, Mail.test.com,..) ein grünes Hackerl
- Die root Ca kann jetzt aber auch jemand sehr grosser sein, zb Google, die dann zB Firmen berechtigen, andere Firmen, Banken, Privatpersonen,.. Nach eigenem ermessen zu vertrauen und für diese Ihre Zertifikate zu signieren. Die Browser, Handies,... kommen mit internen Listen solcher grossen root CAs, denen die Entwickler meinen kann man schon trauen. Alle von denen direkt oder *indirekt* signierte Zertifikate bekommen damit automatisch ein grünes Hackerl.
Was sind da jetzt so die Probleme?
- Das ganze ist offensichtlich nicht ganz trivial, und dazu kommt ein Berg an Details wie Dateiformate, verschiedenste Cipher Verfahren, die teilweise mittlerweile unsicher sind oder nicht von allen unterstützt werden,...
- Wird ein Zertifikat ungültig, zb weil jemand den private key klaut, muss man es revoken. Dazu wird das kaputte Zertifikat in eine Revocation List der Ca geschrieben. Die Revocation List muss sich der Browser aber erst mal holen, und das macht der nicht immer bei jedem klick gleich.
- Die ganze Chain of Trust basiert auf der Annahme dass die root Authority nur guten braven Menschen und Firmen vertraut und Background checks macht gegenüber denen die sie vertraut.
Schon mal in deine root CA Authority Liste geschaut wer da drin steht? Ist im Browser bzw an Handy unter Sicherheitseinstellungen immer irgendwo unter root CA oder vertrauenswürdige Seiten tief vergraben.. Da sind so an die 500 root CAs drin, da sind so lustige CAS mit Namen wie Türktrust oder Ministry of Information of China drin, oder eben Glanzlichter wie Comodo, Digitrust, Equifax (siehe John Oliver Folge), etc.. Und da hab ich noch gar nicht weit runtergescrollt.
Gesendet von meinem E5603 mit Tapatalk