Digitale Signaturen

Ein Siegel aus Siegellack auf einem gefalteten Blatt, daneben ein Band, das ein Häkchen formt.

Eine Unterschrift auf Papier beweist nicht viel: wer deine einmal gesehen hat, kann sie nachmalen. Eine digitale Signatur ist anders. Sie beweist, dass der Text von dir kommt, und dass sich seitdem kein einziger Buchstabe geändert hat — und sie nachzumachen ist genauso unmöglich wie das Zurückzählen auf der Kurve aus dem vorigen Kapitel. Denn genau die benutzt sie.

Wörter, die du gleich brauchst

Signieren
Mit deinem privaten Schlüssel eine Art Siegel über einen Text machen. Das Siegel ist eine Zahl, die zu genau diesem Text und genau diesem Schlüssel gehört.
Verifizieren
Mit dem öffentlichen Schlüssel prüfen, ob das Siegel stimmt. Das kann jeder, denn den öffentlichen Schlüssel darf jeder haben. Stimmt es: der Text ist echt und unverändert. Stimmt es nicht: etwas wurde geändert, oder jemand anderes hat signiert.
ECDSA
Der Name des Signatursystems, das auf elliptischen Kurven läuft. Das EC steht für elliptic curve. Das benutzt deine Identitätskarte.
Zertifikat
Eine Erklärung von einer vertrauenswürdigen Stelle: „dieser öffentliche Schlüssel gehört zu dieser Person“. Selbst auch signiert, von genau dieser Stelle. Ohne Zertifikat weißt du, dass jemand signiert hat, aber nicht wer.

Das Schloss andersherum

Im Kapitel über asymmetrische Schlüssel klickte jeder dein Vorhängeschloss an eine Schachtel, und nur du konntest sie mit deinem privaten Schlüssel wieder öffnen. Eine Signatur dreht das um: du machst etwas mit deinem privaten Schlüssel, und jeder kann mit deinem öffentlichen Schlüssel prüfen, dass du es warst. Denn nur wer den privaten Schlüssel hat, kann ein Siegel machen, das zum passenden öffentlichen Schlüssel stimmt.

Was eine Signatur beweist und was nicht

Beweist sieBeweist sie nicht
Dass die unterzeichnende Person den privaten Schlüssel in Händen hatte. Wer diese Person ist. Dafür brauchst du ein Zertifikat.
Dass der Text Buchstabe für Buchstabe derselbe ist wie beim Signieren. Dass der Text wahr ist. Du kannst eine Lüge perfekt signieren.
Dass die unterzeichnende Person es hinterher nicht abstreiten kann. Wann es passiert ist. Dafür gibt es den Zeitstempel.

Probier es selbst

Alles passiert in deinem Browser. Es wird nichts an den Server geschickt.

  1. Klick auf Schlüsselpaar erzeugen. Schau, wie viel kürzer dieser öffentliche Schlüssel ist als der von RSA — das ist die Kurve.
  2. Klick auf Signieren. Du bekommst ein Siegel von 64 Bytes.
  3. Klick auf Verifizieren. Gültig.
  4. Ändere jetzt einen einzigen Buchstaben im Text — einen Punkt, einen Großbuchstaben — und klick wieder auf Verifizieren, ohne neu zu signieren. Ungültig. Es gibt kein „fast richtig“.
  5. Stell den Text wieder her und klick zweimal auf Signieren. Zwei verschiedene Siegel für denselben Text — und trotzdem beide gültig.

Vom Schlüssel zum Menschen

Eine gültige Signatur sagt: „jemand mit genau diesem privaten Schlüssel hat das signiert“. Aber wer ist das? Da kommt das Zertifikat ins Spiel. Der belgische Staat sagt: „dieser öffentliche Schlüssel gehört zu Koen Thomeer, geboren an diesem Tag“ — und signiert diese Erklärung selbst. Willst du sicher sein, dass es der Staat war, dann prüfst du diese Signatur gegen den Schlüssel des Staates. So bekommst du eine Kette des Vertrauens, die bei einem einzigen Schlüssel endet, den du einfach glauben musst: der Wurzel. Auf deiner Identitätskarte stehen diese Zertifikate im Chip, neben deinen Schlüsseln.

Zwei Schlüssel auf deiner Karte, mit Absicht

SchlüsselWofürWas das bedeutet
auth Anmelden: beweisen, dass du es bist Keine Signatur unter einem Dokument. Nur „ja, das bin ich“.
sign Dokumente signieren Rechtlich genauso gültig wie deine Unterschrift mit dem Stift. Unwiderruflich.

Darum fragt deine Karte manchmal zweimal nach deiner PIN, und darum ist das zweite Mal wichtiger. Das Anmelden bei einer Website benutzt auth. Einen Vertrag zu signieren benutzt sign, und das kannst du nie mehr rückgängig machen. Im letzten Kapitel machst du beides mit deiner eigenen Karte.

Das ist Mathematik: beweisen, dass du etwas weißt, ohne es zu sagen

Dein privater Schlüssel ist eine Zahl n. Dein öffentlicher Schlüssel ist der Punkt n·P auf der Kurve. Eine Signatur ist eine Rechnung, in der n so versteckt ist, dass jeder mit n·P prüfen kann, dass du n kennst — ohne dass n jemals dabei herauskommt. Und dieser Zufall aus Schritt 5? Jede Signatur benutzt eine frische Zufallszahl; ohne die sickert n doch noch durch. Das ist 2010 wirklich passiert, bei der PlayStation 3, deren Hauptschlüssel so nach außen kam. Eine fehlende Zufallszahl, und ein Milliardenkonzern lag offen. Mathematik verzeiht keine Schlamperei.