Die Unsicherheit der SSL-Zertifikate
Dieser Tage wird als Folge des CA-Hacks bei DigiNotar (wieder) verstärkt nach SSL-/X509-Zertifikats-Lücken gefahndet und etwa festgestellt, daß Mac OS X bei der Verifizierung schlampt. Die Frage müßte aber lauten, warum man dem Zertifikats-Kuddelmuddel in Web-Browsern überhaupt je getraut hat und warum es erst konkreter Hacks bedarf, Zweifel zu schüren, und man nicht schon anhand der Spezifikation die Mängel entdeckt hat.
Dieser ganze Zertifikats-Verhau hätte niemals für sicher gehalten werden dürfen. Da sind viel zu viele Lücken drin.
Damit meine ich (hier) übrigens nicht kryptographische Lücken, sondern die Organisation außenherum. Was zum einen auch eine Kritik an all denen (besonders im Wissenschaftsbereich) ist, die glauben, daß Sicherheit allein auf Kryptographie beruht und man sonst nichts tun muß. Und es bestätigt wieder meine Sichtweise, daß Kryptographie niemals eine Problemlösung ist, sondern immer nur eine Problemverlagerung, und man solange kryptographische Methoden kombiniert, bis das Problem endlich in Bereiche außerhalb der Kryptographie transformiert wurde. Die Beurteilung eines kryptographischen Verfahrens kann deshalb nicht erfolgen, solange man nicht auch betrachtet hat, wie dieses Problem außerhalb der Kryptographie identifiziert und organisatorisch gelöst wurde.
Und genau das ist hier das Problem. Da einfach eine große undifferenzierte Wolke von undurchsichtigen CAs in Browser einzubauen, die jedes beliebige Zertifikat ausstellen dürfen, konnte niemals gut gehen.
Ich habe vor einigen Jahren mal in zwei Vorträgen für die ENISA vorgeschlagen, das dahingehend zu ändern, daß der Inhaber einer TLD bzw. dessen Rechtssystem dafür verantwortlich ist, CAs zuzulassen oder zu überprüfen. Daß also etwa nach deutschem Recht zu klären ist, wer Zertifikate für .de ausstellen darf, und nicht irgendein Browserhersteller, und daß nicht jeder dubiose Hinterhofladen Zertifikate für die ganze Welt ausstellen darf.
Ich bin dafür damals – wie eigentlich immer im Security-Bereich – angefeindet worden, weil das die Freiheit des Internet einengen und Diktaturen die Kontrolle über das Internet geben könnte. So könnten etwa in Ländern wie Iran oder China nur noch staatskonforme Webseitenbetreiber ein SSL-Zertifikat bekommen, was die Meinungsfreiheit verletze, so der Vorwurf. Was nicht stimmte, weil das ja nur die jeweils eigene TLD beträfe. Zumal ein Server auch dann staatlicher Repression unterliegt, wenn er physisch in dem Land steht. Insofern wäre es nicht nur sinnvoll, solche Server im Ausland zu betreiben, sondern sogar sicherer, weil mit diesem Vorschlag diese Länder selbst dann, wenn sie eine CA unterwandert oder sonstwie die Kontrolle über eine CA haben, noch lange nicht Zertifikate für andere TLDs fälschen könnten. Aber viele unbeirrbare (und aggressive) Internet-Romantiker hängen fest am Trugbild vom homogenen, nicht unterteilten, von staatlicher Organisation unabhängiger Struktur fest, in der jeder alles kann. Und was ist das Ergebnis dessen? Daß man den Diginotar-Hack als potentiell lebensgefährlich einstuft, weil damit der Iran mit falschen Zertifikaten für *.google.com auch GoogleMail-Zugriffe abhören und damit Oppositionelle ausspionieren konnte. Ein Beispiel dafür, wie eine verbohrte Internet-Romantik das Gegenteil dessen bewirken kann, was sie beansprucht. Es hätte niemals ein System aufgebaut werden dürfen, bei dem der Hack eines einzigen dubiose Ladens auf einen Schlag das gesamte weltweite HTTPS-Netz kompromittiert und Ländern wie dem Iran zugänglich macht. Das ist aber eine Folge dieser Internet-Ideologie. Das beruht auf einem Weltbild, was mit unserer Welt einfach nicht übereinstimmt.
Daher hätte man beispielsweise auch die nicht länderspezifischen Domains wie .com oder .org abschaffen bzw. nicht mehr für vertrauliche und vertrauensrelevanten Anwendungen verwenden dürfen, weil nicht mehr ersichtlich ist, welchem Rechtssystem das überhaupt zuzuordnen wäre. Google würde dann mit allem, worunter man sich einloggt oder wo man private Daten verwaltet, nur noch unter *.google.us auftreten – womit klar wäre, daß man es mit einem amerikanischen Unternehmen zu tun hat, was unter amerikanischem Recht agiert und ein Zertifikat nach amerikanischen Vergaberegeln braucht. Aber wer soll das anhand von google.com oder facebook.com (oder gar .de) ersehen?
Und nachdem man nun immer mehr TLDs schafft, die nicht länderspezifisch sind, wird das Problem immer größer.
Das Sicherheitsproblem, daß der Iran die Kommunikation mit GoogleMail durch ein gefälschtes Zertifikat abfangen konnte, ist keineswegs (nur) eine Folge der Schlamperei bei DigiNotar, wie allzu viele Journalisten und Internetchefideologen es darstellen wollen. Es ist die Folge einer ideologisch aufgebauten und damit fehlkonstruierten Sicherheitsstruktur, die sämtliche »weltlichen« Grenzen und Regeln ablehnt und damit sehenden Auges ein System gebaut hat, das auf einer Vielzahl von sogenannten Single Points of Failures beruht, deren Kompromittierung sofort und unbegrenzt zur Kompromittierung des gesamten Systems wurde. Man muß das Schimpfen auf Diginotar daher durchaus auch als Manöver zur Ablenkung von einigen Fehlkonstruktionen im Internet ansehen. Die, die so häufig die größte Kompetenz (oder gar das Monopol darauf) beanspruchen, sind nicht immer die, die dem Internet gut tun.
Aber ich fürchte, daß wir davon nicht mehr runterkommen.
Die Frage wäre allerdings, was die Alternative wäre. Ich habe oben gesagt, daß ich mal vorgeschlagen habe, die Zulassungskompetenz für eine TLD jeweils an die Länder zu binden. Wenn ich mir aber anschaue, was hier in Deutschland mit DeMail, mit der Kinderpornosperre und der Vorratsdatenspeicherung so alles schief läuft und welche schrägen Geschäfte da im Hintergrund so alles laufen – wie sollte man da noch annehmen können, daß Deutschland in der Lage wäre, seine Zertifikate vertrauenswürdig selbst zu verwalten? Oder anders gefragt: Wenn jemand wie Gadaffi schon ganze Waffenkammern voller deutscher G36-Gewehre bekommen kann – wie sollte man da noch annehmen können, daß er nicht auch ein deutsches Zertifikat bekäme?
Können wir überhaupt Sicherheit selbst?
17 Kommentare (RSS-Feed)
@Phil: Ich weiß zwar nicht, was Fefe da vorgeschlagen hat, aber das was Du da schreibst, hört sich erst mal gruselig an.
Also ganz grundsätzlich und im ersten Ansatz hört sich das, ohne es genauer zu untersuchen, an, als würde man die Prüfung der Identität eines Inhabers von der CA auf die Domainvergabe verlagern. Der ganz offensichtliche und ganz grobe sicherheitstechnische Mangel in diesem Vorschlag ist nämlich, daß darin nirgends vorkommt, wer wo und wie eine Identität überprüft. Eine Speicherung selbsterstellter Zertifikate im DNS kann bestenfalls darauf hinauslaufen, daß man die Übereinstimmung von (Eigen-)Zertifikatssersteller mit Domaininhaber nachweist – aber das heißt nicht viel. Denn die Domainstellen prüfen das ja nicht.
Und wie die vielen Phishing- und Sexwerbungs-Attacken mit leicht abgewandelten Domainnamen zeigen, ist das eine enorme Sicherheitslücke, denn dann könnte der Nutzer nicht mehr sehen, ob xybank.de oder xy-bank.de echt sind und zur XY Bank gehören, weil auch der Sex-Seiten-Anbieter, der sich zur Werbung eine ähnliche Domain geholt hat, damit selbstzertifizieren könnte.
Sicherheitstechnisch ganz großer Mist. Effektiv Selbstbetrug.
Und ein Web of Trust? Erinnert mich an den Spruch „Freßt Scheiße, Milliarden Fliegen können nicht irren”. Wieviele Leute können schon ein Zertifikat sinnvoll prüfen? Wieviele Leute vertrauen wider alle Vernunft Facebook? Web of Trust hieße nur, Unsicherheit zu institutionalisieren. Da denke ich beispielsweise auch an die eBay-Betrüger, die zunächst mal viel und billig zum Mindestpreis verkloppen (oder das vortäuschen), um erstmal viele positive Bewertungen zu bekommen. Und dann denke ich an Xing und an LinkedIn, wo häufig irgendwelche Leute mit mir Freunde sein wollen, die ich überhaupt nicht kenne. Und ich denke an Wikipedia, die ja auch mal mit diesem Crowssourcing-Ansatz angefangen hat, bis das Biotop umgekippt ist und dort nur noch Idioten das Sagen haben und systematisch Informationen unterdrücken oder fälschen. Es gibt zu viele virtuelle Identitäten, die bisher zu Astroturfing eingesetzt werden und die auch Web of Trust unterwandern könnten. Und es gibt zu viele mit Malware verseuchte Rechner, die Zertifikate ausstellen würden, von denen ihre Besitzer nichts wissen.
Und ich denke daran, daß uns gegenüber Amis, Islamisten und Leute, die an Ufos oder schräge Götter glauben, in der deutlichen Überzahl sind, und inzwischen auch alle Internet haben. Da kommt mir das Grausen, wenn ich sowas mit Web of Trust betüdeln soll.
Stell Dir mal vor, das Web of Trust liegt schief. Und es kommt zu Betrug oder wieder mal dazu, daß der Iran GoogleMaps abhört. Wer ist dann haftbar? Wem kann man auf die Finger klopfen, daß er mit dem Blödsinn aufhört? Wieviele Leute würden wohl ihre Bestätigungskompetenz an Facebook oder sowas abdrücken? XY-Bank? „Gefällt mir”. So etwa?
Grundsatz: Sicherheit entsteht nicht dadurch, daß man etwas baut, was man nicht mehr versteht, oder in seiner Realisierung nicht mehr beschreiben kann.
Solche Ansätze entsprechen zwar gewissen Internet-Ideologien und haben für viele Zwecke ihren Reiz. Aber nicht für Security. Auch nicht, wenn der CCC drin rumgerührt hat. Ganz schlechter Ansatz. Sorry.
Diese leider weitverbreitete Meinung, das Zertifikate durch Kryptografie sicher werden, wallt hin- und wieder auf.
Leider kann man nur sicherstellen, dass ein Zertifikat tatsächlich von der Stelle ist, die im Zertifikat angegeben ist. Ob das dann ein vertrauenswürdiger Laden ist, muß man schon anderweitig rausfinden. Das ist meistens so gut wie unmöglich, solange jeder einen Laden aufmachen kann, der Bundesregierung heisst. Muß ja nicht in Deutschland sein.
Insofern kann Vertrauen nur durch Kontrolle entstehen. Einerseits müssen die Regeln, nach denen Zertifikate vergeben werden bekannt gemacht und kontrolliert werden. Dabei wird Vertrauen von der Kontrollbehörde auf den Zertifikateausgeber übertragen. Andererseits muß es eine Liste aller ausgegebenen Zertifikate geben, damit ein Zertifikatinhaber Trickkopien frühzeitig bemerkt. Sinnvoll wäre es, diese dann auch bekämpfen zu müssen. Dass das bei Domainnamen nicht gemacht wird, führt, wie erwähnt, zu einigen Problemen.
Deshalb ist so ein Web of Trust ala PGP hier auch der falsche Weg. Das ist ja noch undurchsichtiger.
Es gäbe eine einfache Lösung: Schreib den Public Key des Servers in den Servernamen. Aber das hätte den Nachteil, dass die Namen der Server zu lang werden, um sie sich zu merken. Aber das kann man natürlich mit DNS CNAME lösen. Also, angenommen DNScurve kommt (DNSSEC ist Mist. Ganz ehrlich! Frag DJB, der weiß das).
@nullplan: Hilft gar nichts. Dann müßtest Du nämlich den nicht-trivialen Hostnamen verifzieren. Problem nicht gelöst, sondern nur verlagert.
“Ich würde, wie schon von Fefe vorgeschlagen,”
Wen interessiert, was Du in der Nerd-Bildzeitung aufgeschnappt hast?
> “Daß also etwa nach deutschem Recht zu klären ist, wer Zertifikate für .de ausstellen darf, und nicht irgendein Browserhersteller, und daß nicht jeder dubiose Hinterhofladen Zertifikate für die ganze Welt ausstellen darf.”
Sorry, aber das ist eine echt blöde Idee. Du selbst schreibst oft genug über die deutschen Vorzeige-IT-Projekte, und die TÜV-geprüften Shops in D sind komischerweise auch nicht sicherer.
Auch löst das ja noch lange nicht das Problem, das in die Zertifizierungsstelle eingebrochen wird.
Das Zertifikatssystem ist, wie du schreibst, kryptographisch schon recht sicher, von daher fehlt nur noch eins: die vertrauenswürdige Übermittlung des Zertifikats. Und das gibt es. Wenn ich sonst von der Spaskasse nicht viel halte, aber da haben die z.B. ihre Hausaufgaben gemacht – ein Kollege erzählte mir letztens, dass er einen großen offiziellen Brief von denen erhalten hat, dass das Internet-Banking umgestellt wird, und u.a. hatten die auch den Fingerprint des SSL-Zertifikats mitgeschickt. Natürlich hätte das auch eine seeeehr raffinierte Phishing-Attacke sein können, aber immerhin hätte man auch zur Filiale gehen können und das überprüfen.
Wenn ich jetzt dem Browser noch sagen könnte: “wenn ich Webseite x mit https gesuchen will, frage mich doch bitte nach dem Fingerprint (bzw. Teilen davon) und gleiche das ab bevor du mich da hin lässt”, dann wären wir doch in der Sicherheit ein ganzes Stück vorangekommen. Somit kann sich jeder für die Webseiten, wo es ihm wirklich auf Sicherheit ankommt, diese auch verschaffen.
Ob Google mir einen versiegelten Brief mit Einschreiben mit dem Fingerprint des GMail-Zertifikats schickt? Mal nachfragen …
@Stefan:
Ich bin tatsächlich nicht der Meinung, daß deutsche IT gut ist.
Ich halte aber noch weniger davon, sich alles selbst zu überlassen.
Und ja, es kann durchaus das Problem lindern, daß eingebrochen wird, indem man nämlich gesetzlich fordert, daß gewisse Sicherheitsmaßnahmen eingehalten werden und – ganz wichtig – der Zertifikatsgeber für Schäden haftet bzw. eine Versicherung braucht. Dann entsteht nämlich automatisch der Druck, das besser zu machen. Das setzt aber voraus, daß der Betreiber auch juristisch greifbar ist. Und daran fehlt es derzeit.
Das mit den Zertifikaten hast Du aber generell nicht verstanden. Denn der Witz am Zertifikat ist es, daß es selbst vertrauenswürdig sein muß und daher keiner vertrauenswürdigen Übermittlung mehr bedarf – sonst wäre es ja keines.
Was die Sparkasse da macht, ist im Prinzip ein self-certified. Das hat Vor- und Nachteile. Ein Nachteil ist, daß es für die breite Bevölkerung gänzlich ungeeignet ist und das für offene Benutzergruppen nichts bringt.
Schau Dir mal genauer an, wie Zertifikate funktionieren.
> “Das setzt aber voraus, daß der Betreiber auch juristisch greifbar ist. Und daran fehlt es derzeit.”
Da stimme ich dir voll zu.
> “Das mit den Zertifikaten hast Du aber generell nicht verstanden.”
Das sehe ich anders 😉
Zertifikate sind per se nicht vertrauenswürdig, sondern ich vertraue dem, der sie ausgestellt hat (oder eben nicht). Ultimatives Vertrauen kann ich nur haben, wenn ich ein Zertifikat selbst ausgestellt habe.
Demzufolge werden also Zertifikate als vertrauenswürdig definiert. Die Entscheidung, ob ich “TÜRKTRUST Bilgi ?leti?im ve Bili?im Güvenli?i Hizmetleri A.?.” oder anderen Firmen/Staaten Vertrauen schenke oder nicht, wird mir aber abgenommen (soll man das gut finden?), indem dieses und Zertifikate Anderer in meinem Browser mitgeliefert werden. Nicht ich vertraue dem Zertifikat, sondern mein Browser.
Wenn ich auf Nummer sicher gehen will, und nicht dem Browser die Wahl überlassen will, welchen Zertifkaten ich vertraue und welchen nicht, muss ich also meine eigene, persönliche Zertifikats-Liste erstellen.
Durch die Übermittlung der Zertifikate auf einem unabhängigen (“sicheren”) Kanal (wie sicher der auch immer sein mag), kann ich mein Vertrauen in ein Zertifikat stärken. Daher finde ich die Sparkassen-Lösung ganz gut. Das geht auch, wenn ich dem Staat vertraue und damit auch den vom Staat bzw. staats-akkreditierten Ausstellern, aber es bleibt beim Grundproblem. Will ich der Regierung der USA trauen? Was nützt es mir, wenn ich einen chinesischen Online-Dienst nutzen will und das Zertifikat evtl. sogar von der Regierung selbst ausgestellt ist, ich dieser aber (aus gutem Grund) nicht vertraue?
Ultimatives Vertrauen kann ich, wie gesagt, nur durch eigene Zertifikate haben, alles andere ist nur erhöhtes Vertrauen.
> “Was die Sparkasse da macht, ist im Prinzip ein self-certified. Das hat Vor- und Nachteile. Ein Nachteil ist, daß es für die breite Bevölkerung gänzlich ungeeignet ist und das für offene Benutzergruppen nichts bringt.”
Das ist schon klar. Im Falle eine Bank ist das aber machbar. Für alle anderen Dienste mit offenen Benutzergruppen geht es eben nicht sicherer (im Sinne von “mit mehr Vertrauen”).
@Stefan: Du wirst da zwei Sachen völlig durcheinander. Vertrauen gegenüber der CA und die Übermittlung. Du hast da wirklich was nicht verstanden, denn die Übermittlung hat nichts mit dem Vertrauen in die CA, sondern mit der Sicherheit kryptographischer Signaturen zu tun.
Daß man durch Übermittlung des Zertifikats über einen sicheren Kanal das Vertrauen in das Zertifikat stärken könnte ist – sorry, wenn ich das mal so direkt sage – Quatsch. Es heißt nur, daß man entweder kryptograhischen Signaturen nicht traut – oder sie nicht verstanden hat.
Ok, irgendwie habe ich da was nicht verstanden.
CAs stellen Zertifikate aus. Sagst du, ich soll dem Zertifikat vertrauen, der CA aber nicht? (> “Und genau das ist hier das Problem. Da einfach eine große undifferenzierte Wolke von undurchsichtigen CAs in Browser einzubauen, die jedes beliebige Zertifikat ausstellen dürfen, konnte niemals gut gehen.”)
Ich meine, ja, wenn ich Inhalte erhalte, die mit einem Zertifikat signiert sind, bzw. deren Übertragung mittels der Zertifikatskette gesichert ist, kann ich mit ziemlicher Sicherheit davon ausgehen, dass derjenige, der mir die Daten schickt, auch den private key zu dem Zertifikat besitzt.
Das hilft mir aber nicht bei der Beurteilung, ob das auch der ist, von dem ich wirklich die Daten empfangen will. Dazu brauche ich doch Vertrauen in das Zertifikat selber, oder wie stelle ich sonst fest, dass es auch wirklich die Sparkasse/Google ist die mit die Daten schicken? So funktioniert doch das Zertifikatssystem: Ich “vertraue” der CA, diese stellt Zertifikate aus, deren PKs signieren bzw. verschlüsseln Inhalte. Genau da war auch die Lücke im DigiNotar-Hack, dass nicht-vertrauenswürdige Personen eine “vertrauenswürdige” CA benutzt haben, um sich als jemand anderes auszugeben.
Wieso “vertraue” ich der CA? Oder brauche ich kein Vertrauen in die CA oder in das Zertifikat?
@Stefan: Du hast da einiges durcheinandergebracht bzw. nicht verstanden.
Man signiert nicht mit einem Zertifikat, sondern mit dem private key. Mit dem public key verifiziert man die Signatur. Und das Zertifikat (eigentlich auch nur eine von der CA signierte Aussage) besagt nur, daß ein bestimmter public key zu einer bestimmten (natürlichen, juristischen, technischen,…) Person gehört.
In die CA mußt/sollst Du vertrauen, weil deren Entscheidung, jemandem ein Zertifikat auszustellen, und den Laden in Ordnung zu halten, zunächst mal kein kryptographischer, sondern ein organisatorischer und auf Seriösität beruhender Vorgang ist. Ob die jemandem ein Zertifikat ausstellen oder nicht (und dabei möglicherweise Mist bauen) ist nicht Kryptographie, sondern allein deren Wohlverhalten. Deshalb kommt es darauf an, denen zu vertrauen. Vertrauen, weil es da keine technische Sicherheitslösung gibt.
Ist das Zertifikat aber erst einmal erstellt, ist es letztlich auch nichts anderes als eine kryptographisch signierte Nachricht. Und kryptographische Signaturen haben ja gerade den Zweck, gegen Veränderung und Fälschung zu schützen, also auch die Übertragung über unsichere Kanäle zu erlauben. Bei der Nutzung unsicherer Kanäle geht es also darum, ob die Kryptographie sicher ist, was hier aber nichts mehr mit der CA oder Zertifikaten im Besonderen, sondern kryptographischen Signaturen ganz allgemein zu tun hat. Man kann an denen freilich Zweifel haben – aber dann muß man jede Form von Signatur und damit verwandter Kryptographie (teils auch Verschlüsselungen, soweit sie ebenfalls auf asymmetrischer Krypto beruhen) in Frage stellen, und nicht nur die Übertragung von Zertifikaten. Das ist was völlig anderes. Wenn man unterstellt, daß Signaturen unsicher sind, dann kommt es auf die Sicherheit von CAs gar nicht mehr an, weil die dann eh nichts mehr bringen.
Es ist daher unsinnig, speziell für Zertifikate die Übertragung verbessern zu wollen. Denn wenn das unsicher wäre, könnte der Angreifer viel mehr und viel besser angreifen und bräuchte sich nicht mit erkennbaren Angriffen gegen Zertifikate herumzuschlagen. Traut man Signaturen nicht mehr, kann man generell kein HTTPS usw. (einschließlich Telebanking) mehr machen. Es wäre widersinnig, dann noch die CAs in Frage zu stellen, weil dann das ganze System zusammenfiele.
Hadmut, du hast wieder mal recht. Obwohl ich lax schrieb “Inhalte erhalte, die mit einem Zertifikat signiert sind”, meinte ich natürlich, wie später geschrieben “stellt Zertifikate aus, deren PKs signieren bzw. verschlüsseln Inhalte”. Ich dachte, das versteht man auch so, wenn man über PKI redet. Also du kannst schon davon ausgehen, dass es noch einige wenige andere Menschen auf der Welt gibt, die PKI verstehen.
Übrigens habe ich nie behauptet und werde das auch nicht tun, dass ich kein Vertrauen in die (kryptographische) Sicherheit der Verschlüsselung/Übertragung habe.
> “In die CA mußt/sollst Du vertrauen, weil deren Entscheidung, jemandem ein Zertifikat auszustellen, und den Laden in Ordnung zu halten, zunächst mal kein kryptographischer, sondern ein organisatorischer und auf Seriösität beruhender Vorgang ist.”
Und ich dachte, genau das ist z.B. im Falle DigiNotar eben nicht mehr der Fall. Oder vertraust du noch der DigiNotar CA? Genau das ist doch meine Aussage (und auch deine, Zitat “Und genau das ist hier das Problem. Da einfach eine große undifferenzierte Wolke von undurchsichtigen CAs in Browser einzubauen, die jedes beliebige Zertifikat ausstellen dürfen, konnte niemals gut gehen.”), dass man eben nicht mehr jeder CA, die im Browser mitkommt, vertrauen kann, die o.g. Seriösität zu besitzen.
Also: wieso sollte ich _irgendeiner_ CA vertrauen? Warum erhöht es nicht das Vertrauen, wenn ich ein Zertifikat über einen zweiten Kanal überprüfen kann?
@Stefan: Diese Diskussion ist müßig. Ich meinte damit nicht, daß Du konkret DigiNotar oder jemand anderem vertrauen sollst (eigentlich eher nicht), sondern wollte das Konstruktionsprinzip beschreiben. Die Übertragung ist durch Signaturen gesichert, aber die eigentliche Ausgabe der Zertifikate hat keine technische Sichererung, sondern beruht allein auf Vertrauen. Und wenn das wie bei Diginotar nicht gerechtfertigt ist, fällt halt alles zusammen.
So meinte ich das. Nicht in dem Sinne, daß Du denen vertrauen sollst, sondern daß an dieser Stelle per contructionem außer Vertrauen sonst gar nichts mehr ist. Deshalb halte ich es ja für Unfug, dieses System jemals für sicher gehalten zu haben.
Vaterschaften
Jedes X.509 Zertifikat hat ein Subject (Besitzer) und einen Issuer (CA). Diese werden als Distinguished Name (DN) hinterlegt. Der DN kann in der ‘Lagacy’ Konvention (Org, Country, etc.) und Domain-Based (org, mil etc.) angegeben werden.
Bei X.509 gibt es keinen Zusammenhang zwischen dem Issuer DN und dem Besitzer DN. Jede beliebige CA kann ein Zertifikat z.B. von C=DE beglaubigen: Outsourcing. Wir stellen uns mal vor Griechenland wäre nicht in der Euro-Zone, könnte aber weiterhin unkontrolliert Euro-Scheine drucken (und für Drachmen verkaufen!).
Darin liegt der Fehler im PKI System. Wäre der Namenraum klar reglementiert, gäbe es sowohl technische wie rechtliche Möglichkeiten, dies einzufordern. Statt dessen gibt es einen Haufen von EKUs, die speziell im Microsoft Umfeld eine grosse Rolle spielen.
Dass die Root-Zertifikate in den Web-Browsern quasi fest-verdrahtet sind, hat sicherlich auch kommerzielle Aspekte. Und darum gehts: Zertifikate werden als indirekte Geld-Maschinen genutzt: Ist dein Zertifikat von z.B. Verisign ausgestallt (und wird im Browser ‘golden’ dargestellt) hat es mehr Wert und die Leute vertrauen darauf (da hat auch die ECO mitgespielt).
Sorry, X.509 Zertifikate sind das Woodoo der Security. Die Idee war gut, aber da sich jeder die Puppen basteln kann … kann er diese auch tanzen lassen.
mfg.
–eh.
@Erwin Hoffmann: Genau das ist ja meine Rede, daß man CAs darauf beschränkt, für welche Domains sie Zertifikate ausstellen dürfen. Und daß Deutschland als Inhaber von .de alleine bestimmen kann, wer dafür Zertifikate ausstellen darf.
Es wäre aber unrichtig, die Schuld dafür unmittelbar X.509 zu geben, denn X.509 gehört eigentlich zu ISO-OSI und nicht zum DNS. Davon abgesehen sieht X.509 durchaus Mechanismen vor, so etwas zu implementieren. Ein X.509-Zertifikat kann nämlich eine beliebige Liste beliebiger Extensions bekommen, die als critical markiert werden können, womit ein Zertifikat automatisch ungültig wird, wenn Software die Erweiterung nicht interpretieren kann. Für genau solche Zwecke ist diese gedacht und geeignet.
Allerdings hielte ich den Ansatz hier für nicht so gut, weil man dadurch doch wieder zu einer zentralen Root-CA kommt.
Statt einer zentralen Trust-Liste müßten die Browser für jede Länderdomain eine separate Liste habe, und unter de dann eben nur die für Deutschland geltenden CAs, bezw. die Root-CA von Deutschland haben.
Ich würde, wie schon von Fefe vorgeschlagen, dies in das DNS verlagern. Also ähnlich wie den MX-RR für SMTP.
Einfach eine Liste mit vertrauenswürdigen CAs definiert, bzw. – noch besser – ein Liste mit vertrauenswürdigen Zertifikaten.
In letztem Fall könnten dann jeder selbst signierte Zertifikate verwenden. Ein Browser müsste dann halt einen zusätzlichen DNS für eine HTTPS Domain absetzen und das wars.
Mit DNSsec könnte das dann sogar ziemlich sicher werden (vorausgesetzt DNSsec ist selbst sicher – davon habe ich wenig Ahnung).
Eine andere Alternative (habe ich – glaube ich – auch von Fefe) wäre, ein Web of Trust einzuführen, ähnlich wie bei PGP. Dies würde aber vermutlich nicht von “der” Wirtschaft akzeptiert werden.
Außerdem würde es ja schon helfen, wenn man SSL – wie bei SSH – zuerst den Fingerprint anzeigen lässt und dann ein deutlich Warnung einblendet, wenn sich der Fingerprint ändert.