Base64: keine Verschlüsselung
Stell dir vor: Jemand schickt dir SGV5LCBnZWhlaW0h. Das sieht
aus wie ein Code. Es ist auch ein Code — aber es gibt keinen Schlüssel, kein
Passwort, kein Geheimnis. Jeder kann es mit einem Klick zurückdrehen. Das ist
der Unterschied zwischen anders aufschreiben und
wirklich verstecken, und wegen dieses Unterschieds kommt
dieses Kapitel zuerst.
Wörter, die du gleich brauchst
- Byte
- Alles in einem Computer — ein Buchstabe, ein Pixel, ein Ton in einem
Lied — ist am Ende eine Zahl von 0 bis 255. So eine Zahl heißt Byte.
Der Buchstabe
Aist Byte 65, ein Leerzeichen ist 32. - Codieren
- Dieselbe Information auf eine andere Art aufschreiben. So wie „fünf“ und „5“ und „V“ dieselbe Zahl sind. Es geht nichts verloren und es wird nichts versteckt.
- Base64
- Eine Art, Bytes nur mit Buchstaben, Ziffern,
+und/aufzuschreiben. Aus je drei Bytes werden vier Zeichen. Dadurch wird alles ein Drittel länger. In einer Webadresse nimmt man eine Variante mit-und_, weil+und/dort schon etwas anderes bedeuten. - Hexadezimal
- Noch eine Art, Bytes aufzuschreiben, diesmal mit den Ziffern 0–9 und
den Buchstaben a–f. Aus jedem Byte werden zwei Zeichen:
41ist der BuchstabeA. Das siehst du gleich in der Demo.
Warum gibt es das dann überhaupt?
Früher konnten E-Mail-Programme nur normalen Text verschicken. Hast du ein Foto mitgeschickt, kam es auf der anderen Seite beschädigt an, weil Bytes darin steckten, die der Mailserver nicht verstand. Die Lösung: diese Bytes in Zeichen umwandeln, die jedes Programm versteht, und sie auf der anderen Seite wieder zurückdrehen. Das ist Base64.
Alles, was auf einem Computer liegt, kannst du in Base64 umwandeln: ein Foto, ein Lied, ein PDF, ein ganzes Programm. Heraus kommt normaler Text — Buchstaben, Ziffern und ein paar Satzzeichen, mehr nicht. Und Text bekommst du überall unter.
In einer Webadresse. Als Anhang an einer Mail. In einer Nachricht, die du
einfach markierst, kopierst und woanders wieder einfügst. Unterwegs geht
nichts kaputt, denn kein Programm fängt an, an einem A oder
einer 7 herumzubasteln. Mit rohen Bytes geht das sehr wohl
schief: ein Zeilenende, das unterwegs umgewandelt wird, oder ein Byte, das
als „hier hört die Datei auf“ gelesen wird, und dein Foto ist unrettbar. Das
ist der ganze Handel — deine Datei wird ein Drittel länger, und dafür
übersteht sie jede Reise.
Deshalb steckt es bis heute überall drin: im Foto auf deiner eID, wenn es ausgelesen wird, in den Schlüsseln, die du gleich selbst erzeugst, und in jedem Anhang, den du mit einer Mail mitschickst.
Probier es selbst
Alles passiert in deinem Browser. Es wird nichts an den Server geschickt.
- Klick auf Nach Base64. Du siehst deinen Satz als Bytes und als Base64.
- Füg das Base64-Ergebnis in das Feld ein und klick Zurück zum Text. Dein Satz kommt zurück. Ohne Passwort.
- Füg jetzt
SGV5LCBnZWhlaW0hein und klick Zurück zum Text.
Schau dir die Zeile Bytes (hex) an. Das sind die echten Zahlen, aus denen dein Satz besteht. Base64 und Hexadezimal sind beide nur eine Art, diese Zahlen aufzuschreiben — so wie du eine Zahl in Ziffern oder in Worten schreiben kannst. Keins von beiden versteckt irgendetwas.
Der Test, den du ab jetzt immer machen kannst
Siehst du etwas, das unlesbar aussieht, dann stell eine einzige Frage: braucht man einen Schlüssel, um es zurückzudrehen? Nein? Dann ist es Codierung, und dann ist es nicht geheim, so seltsam es auch aussieht. Ja? Dann erst ist es Verschlüsselung. Alles, was auf dieser Seite noch kommt, dreht sich um dieses „Ja“.
Das wirst du auf der ganzen Seite wiedersehen. Fast jedes Kapitel ab hier zeigt sein Ergebnis in Base64: das verschlüsselte Paket in Kapitel 4, deinen öffentlichen Schlüssel in Kapitel 6, die Nachricht, die du über WhatsApp verschickst, in Kapitel 8.1, dein Passfoto, wenn du es aus dem Chip holst, in Kapitel 8.2. Jedes Mal aus dem Grund von oben: Es müssen Bytes durch etwas hindurch, das nur Text verträgt. Und jedes Mal gilt dasselbe — was daran geheim ist, steckt in den Bytes. Nie im Base64 drumherum.
Das ist Mathematik: Zählen in einer anderen Basis
Du zählst in Zehnern: 10 Ziffern, von 0 bis 9. Ein Computer zählt in Zweiern: 0 und 1. Hexadezimal zählt in Sechzehnern, Base64 in Vierundsechzigern. Es ist immer dieselbe Zahl, nur anders geschrieben. Die Frage „wie viele Zeichen brauchst du, um eine Zahl aufzuschreiben?“ ist eine Sache von Logarithmen — und genau deshalb werden aus 3 Bytes immer 4 Base64-Zeichen: 224 = 644. Rechne ruhig nach.