EMZETT.
Login

Signatur

Kurz: Ein kryptografisches Verfahren, mit dem sich beweisen lässt, dass Daten wirklich vom angegebenen Absender stammen (Authentizität) und seit der Signierung nicht verändert wurden (Integrität).

Genauer: Eine digitale Signatur wird mit dem privaten Schlüssel des Absenders erzeugt (oft über den Hash der Daten, nicht die Daten selbst — schneller) und mit dessen öffentlichem Schlüssel von jedem geprüft werden kann. Anders als bei einer handschriftlichen Unterschrift ist eine digitale Signatur bei jeder Nachricht anders, da sie vom Inhalt abhängt. Zertifikate nutzen dieses Prinzip: Die Zertifizierungsstelle signiert das Zertifikat mit ihrem privaten Schlüssel.

Im Detail

Der Ablauf einer digitalen Signatur läuft in zwei klar getrennten Schritten:

Signieren (Absender, mit privatem Schlüssel):
  1. Hash der Nachricht berechnen
  2. Hash mit privatem Schlüssel verschlüsseln -> das ist die Signatur

Prüfen (Empfänger, mit öffentlichem Schlüssel):
  1. Signatur mit öffentlichem Schlüssel entschlüsseln -> ergibt den Original-Hash
  2. Hash der empfangenen Nachricht selbst berechnen
  3. Beide Hashes vergleichen -> stimmen sie überein, ist die Nachricht echt und unverändert

Der entscheidende Punkt: Signiert wird nicht die Nachricht selbst, sondern nur ihr (viel kürzerer) Hash — asymmetrische Verschlüsselung ist rechenintensiv, und bei großen Dateien wäre das direkte Signieren jedes einzelnen Bytes unpraktikabel langsam. Da schon eine minimale Änderung der Nachricht den Hash komplett verändert (siehe Hashing), reicht die Prüfung des Hashs aus, um jede Manipulation zuverlässig zu erkennen.

Digitale Signaturen lösen ein Problem, das reine Verschlüsselung allein nicht löst: Verschlüsselung sorgt für Vertraulichkeit (niemand außer dem Empfänger kann mitlesen), sagt aber nichts darüber aus, wer die Nachricht wirklich verschickt hat. Eine Signatur dagegen beweist Herkunft und Unverändertheit, sagt aber nichts über Vertraulichkeit — deshalb werden in der Praxis oft beide kombiniert (z. B. bei signierten und verschlüsselten E-Mails via PGP/GPG, oder bei TLS-Zertifikaten, die von der ausstellenden Stelle signiert werden, während die eigentliche Verbindung separat verschlüsselt läuft).

Verbreitete Signaturverfahren

In der Praxis begegnen einem vor allem zwei Familien von Signaturverfahren: RSA-basierte Signaturen (mathematisch verwandt mit RSA-Verschlüsselung, aber ein eigenständiges Verfahren) und Signaturen auf Basis elliptischer Kurven (ECDSA, oder das modernere Ed25519). Elliptische-Kurven-Verfahren erreichen bei deutlich kürzeren Schlüssellängen dieselbe Sicherheit wie RSA und sind zudem schneller zu berechnen — ein Ed25519-Schlüssel mit 256 Bit bietet vergleichbare Sicherheit wie ein RSA-Schlüssel mit 3072 Bit, weshalb moderne Systeme (z. B. ssh-keygen -t ed25519) zunehmend darauf umsteigen.

Praktische Anwendungsfälle

Software-Updates werden fast durchgehend signiert: Bevor ein Betriebssystem oder eine App ein Update installiert, prüft es die Signatur gegen den öffentlichen Schlüssel des Herstellers — ohne gültige Signatur wird die Installation verweigert, was verhindert, dass ein Angreifer über einen kompromittierten Downloadserver manipulierte Updates einschleust. Git-Commits lassen sich ebenfalls signieren (git commit -S), um kryptografisch zu belegen, dass ein Commit wirklich von der angegebenen Person stammt, nicht nur mit ihrem Namen/ihrer E-Mail-Adresse “unterschrieben” wurde (die sich beliebig fälschen lassen). Blockchain-Transaktionen sind ein weiteres Beispiel: Jede Transaktion wird mit dem privaten Schlüssel des Absenders signiert, wodurch das Netzwerk verifizieren kann, dass wirklich der Inhaber der Wallet die Überweisung autorisiert hat, ohne dass eine zentrale Instanz das prüfen müsste.

Siehe auch: Zertifikat, Private Key, Hashing