Experten-Informationen

Willkommen hinter den Kulissen der Bürgerkarte: Einer Welt voll Zahlenmagie und strengen Datenschutzbestimmungen. Hier alle Details:

Inhalt:

Die Zahlenmagie hinter dem Signieren

Aus technischer Sicht ist jede Verwendung der Bürgerkarte ein Signatur-Vorgang – egal ob beim Electronic Banking oder einem Online-Formular. Mit der Bürgerkarte wird aber nie der komplette Text unterschrieben. 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 üblicherweise als 64-stellige Hexadezimal-Zahl angeschrieben werden. Der Hash-Wert für das Wort Schmetterling lautet z.B.:
d7e3dabc2c95c4c440ee57fb2883188e7f46a9cf51e94674f0e80f7d6db092c4 (errechnet mit dem Online Hash-Generator)

Dieser Hash-Wert wird schließlich unter Verwendung asymmetrischer kryptographischer Methoden signiert.

Das Wunder der asymmetrischen Verschlüsselung

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 (den Klartext) zu verschlüsseln, multipliziert sie der Absender beispielsweise mit 3 (dem Schlüssel), und erhält somit 15 (die Chiffre). Der Empfänger dividiert diese 15 durch den Schlüssel, und erhält wieder 5. Fertig. In der Praxis kommen natürlich komplexere Schlüssel und ausgefeiltere Verschlüsselungsmethoden zur Anwendung.
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:

  • Informationen, die mit dem privaten Schlüssel verschlüsselt werden, können nur mit dem dazu passenden öffentlichen Schlüssel entschlüsselt werden.

Und es wird sogar noch unglaublicher, denn das Ganze funktioniert auch in die andere Richtung:

  • Informationen, die mit dem öffentlichen Schlüssel verschlüsselt werden, können nur mit dem dazu passenden privaten Schlüssel entschlüsselt werden.

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.

Bei der Bürgerkarte werden asymmetrische Verschlüsselungsverfahren für die Erstellung elektronischer Signaturen verwendet. Die dazu 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 z.B. Wikipedia):

Am RSA-Verfahren knabbern Computer Jahrhunderte

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.

  • Komplettes Rechenbeispiel

    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!

Falsch herum und doch richtig: Die Signatur

Zurück zur Bürgerkarte. Sie arbeitet mit asymmetrischer Verschlüsselung zur Berechnung von Signaturen, 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.

Was beim Empfänger passiert

Konkret erhält der Empfänger also den eigentlichen Text, einen signierten Hash-Wert des Textes und das Zertifikat des Absenders, das dessen öffentlichen Schlüssel enthält. 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:

  • der Absender echt ist und
  • der Text unterwegs nicht verändert wurde.

Login bei FinanzOnline: Das läuft im Hintergrund ab

Mit der e-card

  1. FinanzOnline fordert von der Bürgerkarten-Software die Personenbindung an, um Sie zu identifizieren. Die e-card verlangt dafür eventuell (je nach Kartengeneration) vom Benutzer die Karten-PIN.
  2. FinanzOnline überprüft die Signatur der Personenbindung.
  3. FinanzOnline berechnet aus der Stammzahl das bereichsspezifische Personenkennzeichen.
  4. FinanzOnline verlangt zusätzlich, dass ein kurzer Text (Inhalt: „Mit meiner elektronischen Signatur beantrage ich den Zugang zur gesicherten Anwendung.“) signiert wird und sendet ihn dazu an die Bürgerkarten-Software.
  5. Die Bürgerkarten-Software errechnet aus dem Text den Hash-Wert.
  6. Die Bürgerkarten-Software sendet den Hash-Wert an die e-card, mit der Aufforderung, ihn zu signieren. Die e-card verlangt dafür aber die Signatur-PIN – sonst kann sie nicht auf den privaten Schlüssel zugreifen.
  7. Die e-card verschlüsselt den Hash-Wert mit dem privaten Schlüssel und sendet das Ergebnis (d.h. den signierten Hash-Wert) über die Bürgerkarten-Software an FinanzOnline.
  8. FinanzOnline überprüft den signierten Text, indem es...
    1. den verschlüsselten Hash-Wert mit Ihrem öffentlichen Schlüssel entschlüsselt,
    2. den Hash-Wert des Textes selbst berechnet und mit dem von Ihnen gelieferten Hash-Wert vergleicht,
    3. das Zertifikat in der Personenbindung mit dem in der Nachricht mitgelieferten Zertifikat vergleicht.
    4. Zusätzlich prüft FinanzOnline, ob Ihr Zertifikat in der Sperrliste eingetragen ist.
  9. Sie sind bei FinanzOnline eingeloggt.

Mit dem Handy

  1. Sie geben Ihre Handy-Nummer und das dazu gehörige Signatur Passwort über einen Frame auf FinanzOnline direkt bei A-Trust ein.
  2. A-Trust schickt die Personenbindung an FinanzOnline.
  3. FinanzOnline überprüft die Signatur der Personenbindung.
  4. FinanzOnline berechnet aus der Stammzahl das bereichsspezifische Personenkennzeichen.
  5. FinanzOnline verlangt zusätzlich, dass ein kurzer Text (Inhalt: „Mit meiner elektronischen Signatur beantrage ich den Zugang zur gesicherten Anwendung.“) signiert wird und sendet ihn dazu an A-Trust.
  6. A-Trust errechnet aus dem Text den Hash-Wert.
  7. Um Zugriff auf Ihren privaten Schlüssel zu bekommen (zum Signieren des Hash-Wertes), sendet A-Trust eine SMS mit einer TAN an Ihr Handy.
  8. Sie geben diese TAN (über den FinanzOnline-Frame) bei A-Trust ein.
  9. A-Trust verschlüsselt den Hash-Wert mit dem privaten Schlüssel und sendet das Ergebnis (d.h. den signierten Hash-Wert) an FinanzOnline.
  10. FinanzOnline überprüft den signierten Text, indem es...
    1. den verschlüsselten Hash-Wert mit Ihrem öffentlichen Schlüssel entschlüsselt,
    2. den Hash-Wert des Textes selbst berechnet und mit dem von Ihnen gelieferten Hash-Wert vergleicht,
    3. das Zertifikat in der Personenbindung mit dem in der Nachricht mitgelieferten Zertifikat vergleicht.
    4. Zusätzlich prüft FinanzOnline, ob Ihr Zertifikat in der Sperrliste eingetragen ist.
  11. Sie sind bei FinanzOnline eingeloggt.

Was passiert bei der Aktivierung der Bürgerkarte?

Vor der Aktivierung enthält die e-card standardmäßig:

  • ein Schlüsselpaar der Sozialversicherung (für die Krankenscheinfunktion)
  • ein ECDSA-Schlüsselpaar (für ein Zertifikat) – wird momentan nicht weiter verwendet
  • ein ECDSA-Schlüsselpaar (für ein qualifiziertes Zertifikat)

Bei der Aktivierung der Bürgerkarte über FinanzOnline passiert folgendes:

  1. FinanzOnline (als Identitätsprovider) übermittelt an den Zertifizierungsdiensteanbieter A-Trust eine signierte Bestätigung, bestehend aus Ihrem Namen und Ihrer Sozialversicherungsnummer. Damit garantiert FinanzOnline, dass Sie wirklich Sie sind (Sie haben sich ja bei der Registrierung zu FinanzOnline mit einem Ausweis identifiziert).
  2. A-Trust liest nun über die Bürgerkarten-Software von der e-card Ihren Namen und Ihre Sozialversicherungsnummer aus und vergleicht sie mit der Bestätigung von FinanzOnline. Die Übereinstimmung wird in erster Linie über die Sozialversicherungsnummer hergestellt (daher macht es nichts, wenn die Schreibweise Ihres Namens bei FinanzOnline leicht von der Schreibweise auf der e-card abweicht).
  3. A-Trust liest über die Bürgerkarten-Software von der e-card den öffentlichen Schlüssel für das qualifizierte Zertifikat aus. Das entsprechende Schlüsselpaar wurde bereits bei der Kartenproduktion erzeugt. Der private Schlüssel verlässt die e-card überhaupt nie und ist nicht einmal der A-Trust bekannt.
  4. Dann sendet A-Trust Ihren Namen und Ihr Geburtsdatum (das auch von der e-card ausgelesen wurde) gemeinsam mit dem öffentlichen Schlüssel an das Zentrale Melderegister, um Ihren ZMR-Eintrag abzufragen. Problem dabei: Im ZMR ist Ihre Sozialversicherungsnummer nicht gespeichert. Für diesen Schritt muss also die Schreibweise Ihres Namens auf der e-card und im ZMR genau übereinstimmen. Für den Fall, dass es mehrere Personen mit selbem Namen und selbem Geburtsdatum gibt, hat Sie A-Trust davor auch nach Ihrer Postleitzahl gefragt.
  5. Als Ergebnis der ZMR-Abfrage erhält A-Trust sofort Ihre Personenbindung (d.h. ZMR-Zahl wird nicht an A-Trust weitergegeben).
  6. A-Trust sendet die Personenbindung über die Bürgerkarten-Software an die e-card, wo sie gespeichert wird (gesichert durch die Karten-PIN).
  7. A-Trust erzeugt aus dem öffentlichen Schlüssel das qualifizierte Zertifikat (das ist eine mit dem privaten Schlüssel der A-Trust signierte Datei, die Ihren Namen und Ihren öffentlichen Schlüssel enthält) und trägt es im Verzeichnisdienst ein.
  8. Die Bürgerkarten-Software schreibt das qualifizierte Zertifikat auf die e-card.
  9. Die e-card sichert den Zugriff auf den privaten Schlüssel mit der Signatur-PIN.
  10. A-Trust erzeugt ein RSA-Schlüsselpaar für das nicht-qualifizierte Zertifikat.
  11. Aus dem öffentlichen Schlüssel erzeugt A-Trust das nicht-qualifizierte Zertifikat und trägt es im Verzeichnisdienst ein.
  12. Die Bürgerkarten-Software schreibt das nicht-qualifizierte Zertifikat und den privaten Schlüssel auf die e-card (gesichert durch die Karten-PIN).
  13. A-Trust speichert den privaten Schlüssel des nicht-qualifizierten Zertifikats.

Das Herzstück der Bürgerkarte: die Personenbindung

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 eine 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.

Gesetzliche Grundlagen: Elektronische Signatur

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
  • Bei Bürgerkarte auf der e-card: die Karte
  • Bei Bürgerkarte am Handy: das Hochsicherheits-Rechenzentrum der A-Trust (Zugriff durch das Handy-Signatur Passwort geschützt)
§ 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;
  • „Signaturerstellungseinheit“: die Karte (bzw. bei Bürgerkarte am Handy: das Hochsicherheits-Rechenzentrum der A-Trust)
  • sichere Signaturerstellungseinheit“: die Signaturerstellungseinheit ist zweifach geschützt – jede Verwendung erfordert:
    • Wissen: PIN-Codes bzw. Signatur Passwort
    • Besitz: Karte bzw. Handy (überprüft durch die TAN in der SMS)

Spezifikationen der Bürgerkarte

Bürgerkarte integrieren

Um die Bürgerkarte in eigene Web-Anwendungen zu integrieren, stehen Ihnen die Module "MOA-ID und MOCCA" auf der Joinup Open Source Platform kostenlos zur Verfügung. Videoanleitungen der Firma Exthex zur Installation finden Sie hier.

Falls Sie Firmen suchen, die Dienstleistungen und Know-How zur Bürgerkarte anbieten, führt der Fachverband UBIT der WKÖ auf www.experts.or.at eine Liste.

Handy-Signatur integrieren

Die Handy-Signatur wird gleich aufgerufen wie eine lokale BKU oder die Online-BKU.

Die Liste der von der Handy-Signatur akzeptierten Server-Zertifikate finden Sie auf https://labs.a-trust.at/.