Peer-to-Peer Kryptochat
Meine Kryptoexperimente schreiten weiter fort. Am vergangenen Wochenende habe ich mir meinen ElGamal-Code nochmal vorgenommen und daraus ein kleines anonymes Peer-to-Peer-Netz gebaut. Man erwarte jetzt bitte nichts weltbewegendes, es handelt sich nach wie vor um kaum mehr als eine Fallstudie zu Montgomery-Multiplikation. Allerdings eine, ueber die man verschluesselte Kurznachrichten austauschen kann. ;)
Das ganze ist ein einfaches Broadcast-Netz: Jeder Knoten sendet eingehende Nachrichten, die nicht an ihn selbst addressiert sind, weiter an jeden seiner Nachbarn. Wenn er eine Nachricht schonmal gesehen hat, wird sie verworfen. Erwaehnenswert:
- Jeder Knoten im Netzwerk besitzt ein Schluesselpaar. Der public key ist seine Netzwerkadresse.
- Pakete bestehen komplett aus Chiffretext, keine weiteren Header. Der Empfaenger erkennt seine Nachrichten daran, dass er sie erfolgreich entschluesseln kann.
- Eigentlich klar, aber trotzdem toll: Das Netz ist unabhaengig vom Internet. Ich habe es fuer UDP implementiert, aber das ist willkuerlich. Amateurfunk, rohes Ethernet oder carrier pidgeons gingen auch. Insbesondere ist mir NAT egal, sobald ich das Ding fuer meinen OpenWRT-Router kompiliert habe.
- Es gibt vorerst keine Nachrichtenauthentisierung. D.h. keine Sicherheit, dass Nachrichten wirklich vom angebenen Absender stammen.
Anlage: Source (jetzt auch Linux-kompatibel), README
PS. Neues Cleartext-Feature: Stichpunktlisten.