Hintergrund-InformationenWillkommen hinter den Kulissen der Bürgerkarte: Einer Welt voll Zahlenmagie und strengen Datenschutzbestimmungen. Hier sind alle Details:
Inhalt:
Aus technischer Sicht ist jede Verwendung der Bürgerkarte ein Signatur-Vorgang – egal ob beim Electronic Banking oder einem Online-Formular. Die Bürgerkarte unterschreibt aber nie den kompletten Text. Tatsächlich unterzeichnet wird nur ein sogenannter „Hash-Wert(?)“, eine Zahl, die aus dem Gesamttext errechnet wird. Eine primitive Hash-Funktion sieht z.B. so aus: Jeder Buchstabe wird durch seine Position im Alphabet ersetzt, am Schluss werden diese Zahlen zusammengezählt:
| Buchstabe | S | C | H | M | E | T | T | E | R | L | I | N | G | Summe |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Position im Alphabet | 19 | 3 | 8 | 13 | 5 | 20 | 20 | 5 | 18 | 12 | 9 | 14 | 7 | 153 |
Tatsächlich kommen bei der Bürgerkarte wesentlich ausgefeiltere Verfahren zum Einsatz (SHA-1(?), SHA-256(?) oder RIPEMD-160 – je nach Anwendung). So erzeugt z.B. SHA-256 Hash-Werte mit einer Länge von 256 Bit, die üblicher Weise als 64-stellige Hexadezimal-Zahl angeschrieben werden. Der Hash-Wert für Schmetterling
lautet z.B.:
d7e3dabc2c95c4c440ee57fb2883188e7f46a9cf51e94674f0e80f7d6db092c4 (errechnet mit dem Online Hash-Generator)
Dieser Hash-Wert wird schließlich asymmetrisch verschlüsselt.
Die asymmetrische Verschlüsselung(?) ist eigentlich ein kleines Wunder: Dabei wird zum Verschlüsseln eines Textes ein anderer Schlüssel verwendet als zum Entschlüsseln. Die andere Methode (symmetrische Verschlüsselung) ist ja noch relativ einfach zu verstehen: Um z.B. die Zahl 5 zu verschlüsseln, multipliziert sie der Absender mit 3 (=Schlüssel), und erhält somit 15. Der Empfänger dividiert diese 15 durch den Schlüssel, und erhält wieder 5. Fertig.
Bei der asymmetrischen Verschlüsselung gibt es hingegen ein Schlüsselpaar, bestehend aus zwei Teilen: dem öffentlichen Schlüssel(?) (den jeder wissen darf) und dem privaten Schlüssel(?) (der geheim bleibt). Dabei gilt:
Und es wird sogar noch unglaublicher, denn das Ganze funktioniert auch in die andere Richtung:
So ein Verfahren ist einigermaßen schwer vorstellbar, weil wir so etwas aus dem täglichen Leben nicht kennen. Am ehesten lässt sich das System mit einem Vorhängeschloss vergleichen: Das Schloss ist der öffentliche Schlüssel, jeder darf es sehen und benutzen. Aber wenn es einmal geschlossen ist, kann es nur mehr mit dem passenden (privaten) Schlüssel aufgesperrt werden.
Die bei der Bürgerkarte verwendeten asymmetrischen Verschlüsselungsverfahren sind ECDSA(?) (für qualifizierte Signatur(?)) und RSA(?) (für fortgeschrittene Signatur(?)). Um die Funktionsweise zu erklären, ist das RSA-Verfahren besser geeignet (für ECDSA siehe Wikipedia):
Die Sicherheit von RSA beruht darauf, dass es wesentlich einfacher ist, zwei Zahlen zu multiplizieren, als die Umkehrung: das Zerlegen einer großen Zahl in ihre beiden „Bestandteile“. Konkretes Beispiel: Wählen Sie zwei Primzahlen aus, z.B. 5 und 23, und multiplizieren Sie sie. Das Ergebnis ist leicht zu errechnen: 115.
Aber jetzt versuchen Sie’s einmal umgekehrt und zerlegen Sie z.B. 143 in seine beiden Primzahlen! Das ist viel schwieriger – es bleibt Ihnen wohl nichts anderes übrig, als einige Möglichkeiten durchzuprobieren (die Lösung ist übrigens 11 mal 13).
Und tatsächlich ist bis heute keine effizientere Methode bekannt, um das RSA-Verfahren zu knacken, als plumpes Ausprobieren. Schnelle Computer schaffen zwar kleine Zahlen, bei wirklich großen würden sie aber Jahrhunderte brauchen, um sie zu zerlegen.
Hier ein ausführliches Beispiel mit den Primzahlen 3 und 7. Wir multiplizieren sie; das Produkt ist 21 (das ist der so genannte „RSA-Modul“). Jetzt wäre es schön, wenn wir als öffentlichen Schlüssel gleich das Zahlenpaar (3, 21) und als privaten Schlüssel das Paar (7, 21) nehmen könnten. Das wäre aber zu einfach, weil aus 3 und 21 kann ja jeder sofort 7 errechnen (und damit den privaten Schlüssel knacken). Also müssen wir 3 und 7 irgendwie „verstecken“: Wir vermindern beide Zahlen um 1, und erhalten daher 2 und 6. Diese beiden multiplizieren wir, das ergibt 12. Nun wählen wir eine beliebige Zahl, die kleiner als 12 ist (und außerdem teilerfremd). Nehmen wir z.B. 5. Der öffentliche Schlüssel ist dann (5, 21). Die Zahl x des privaten Schlüssels errechnet sich gemäß der Gleichung: 5x + 12k = 1; dafür finden wir x=17 als Lösung (bei k=–7). Der private Schlüssel ist also (17,21). Die Zahlen 3, 7 und 12 vergessen wir wieder.
Nun wollen wir einen Hashwert verschlüsseln, z.B. den Wert 4. (Der Hash-Wert muss kleiner sein als der RSA-Modul 21.) Wir verwenden den privaten Schlüssel (17, 21) und berechnen als erstes 417; das ergibt 17.179.869.184. Das dividieren wir jetzt durch die 21. Das ergibt 818.089.008 – uns interessiert aber nur, wie viel Rest bleibt, nämlich 16. Das ist unser Ergebnis.
Der Empfänger erhält also 16 und den öffentlichen Schlüssel (5, 21). Er berechnet zunächst 165; das ergibt 1.048.576. Das dividiert er wieder durch 21. Ergibt 49.932 (uninteressant), als Rest bleibt 4 – bingo!
Zurück zur Bürgerkarte. Sie arbeitet mit asymmetrischer Verschlüsselung, verwendet also einen privaten und einen öffentlichen Schlüssel. Wobei beim Signieren das Prinzip umgedreht wird: Während für eine Verschlüsselung der öffentliche Schlüssel verwendet wird, ist es beim Signieren der private.
Das ist auf den ersten Blick falsch herum: Denn alles, was mit dem privaten Schlüssel versperrt wurde, kann mit dem öffentlichen sofort geöffnet werden.
Beim Signieren geht es aber nicht um Geheimhaltung, sondern um die Echtheit (Authentizität bzw. Integrität): Wenn sich der Text mit dem öffentlichen Schlüssel entschlüsseln lässt, dann besteht kein Zweifel, dass er mit dem zugehörigen privaten Schlüssel verschlüsselt wurde.
Konkret erhält der Empfänger also den eigentlichen Text, einen signierten Hash-Wert und das Zertifikat des Absenders. Als erstes wird die Echtheit des Zertifikats festgestellt, indem eine Signaturprüfung durchgeführt wird. Dann entschlüsselt der Empfänger mit Hilfe des öffentlichen Schlüssels den mitgelieferten Hash-Wert. Dann wird der Hash-Wert erneut aus dem Text errechnet. Stimmen beide Hash-Werte überein, ist sicher, dass:
Vor der Aktivierung enthält die e-card standardmäßig:
Bei der Aktivierung über FinanzOnline passiert folgendes:
Damit die Bürgerkarte tatsächlich zum persönlichen elektronischen Ausweis wird, ist vor allem eines wichtig: der zweifelsfreie Identitätsnachweis des Besitzers. Denn nichts wäre schlimmer als ein Verwechslung (z.B. wegen Namensgleichheit). Damit das nicht passieren kann, wurde die sogenannte Personenbindung erfunden. Sie stützt sich auf die ZMR-Zahl(?), die zur sogenannten Stammzahl umgerechnet wird.
Ein Beispiel, wie diese Berechnung funktioniert
Nehmen wir als Beispiel einer ZMR-Zahl(?): 000247681888. Diese wird zuerst in Hexadezimal-Schreibweise umgewandelt: 000EC35360 (40 Bit). Um diese Zahl mittels Triple-DES(?) verschlüsseln zu können, wird sie auf 128 Bit verbreitert (das heißt: verlängert). Dazu wird ein so genannter Seed-Wert als „Füllmaterial“ verwendet (nach dem Schema: Zahl Seed Zahl Zahl).
Der Seed-Wert muss also 8 Bit lang sein; er wird von der Stammzahlenregisterbehörde(?) geheim gewählt. (Detail am Rande: Der Seed sollte aus Sicherheitsgründen möglichst kurz sein, daher wird nicht mittels 24-Bit-Seed auf 64 Bit verbreitert, sondern eben auf 128 Bit.)
In unserem Beispiel wählen wir FF als Seed und erhalten daher: 000EC35360 FF 000EC35360 000EC35360.
Nun wird dieser Wert mittels Triple-DES (im CBC-Modus) verschlüsselt (mit dem geheimen Schlüssel der Stammzahlenregisterbehörde); das Ergebnis ist: 42 AD 37 74 FA E0 70 7B 31 DC 6D 25 29 21 FA 49. Um Speicherplatz zu sparen, wird diese Zahl schließlich Base64(?)-kodiert: Qq03dPrgcHsx3G0lKSH6SQ==. Das ist die Stammzahl.
Es ist nicht möglich, aus der Stammzahl die ZMR-Zahl zu errechnen.
Diese Stammzahl wird zusammen mit Name, Geburtsdatum und öffentlichem Schlüssel des qualifizierten Zertifikats in eine XML-Datei geschrieben. Diese XML-Datei wird von der Stammzahlenregisterbehörde signiert; das Ergebnis ist die so genannte Personenbindung. Diese wird bei der e-card direkt auf der Karte gespeichert, beim Handy im Hochsicherheits-Server der A-Trust.
Das Signaturgesetz (SigG) definiert eine fortgeschrittene elektronische Signatur folgendermaßen:
Wortlaut im SigG: eine elektronische Signatur, die |
Erfüllung im Rahmen der Bürgerkarte | |
|---|---|---|
| § 2. 3. a) | ausschließlich dem Signator zugeordnet ist, |
Das Zertifikat ist für eine einzige Person ausgestellt. |
| § 2. 3. b) | die Identifizierung des Signators ermöglicht, |
Der Name der Person steht im Zertifikat. |
| § 2. 3. c) | mit Mitteln erstellt wird, die der Signator unter seiner alleinigen Kontrolle halten kann, sowie |
|
| § 2. 3. d) | mit den Daten, auf die sie sich bezieht, so verknüpft ist, dass jede nachträgliche Veränderung der Daten festgestellt werden kann; |
Der Hash-Wert. |
Und eine qualifizierte elektronische Signatur:
| Wortlaut im SigG | Erfüllung im Rahmen der Bürgerkarte | |
|---|---|---|
| § 2. 3a. | eine fortgeschrittene elektronische Signatur, die auf einem qualifizierten Zertifikat beruht und von einer sicheren Signaturerstellungseinheit erstellt wird; |
|