Die auf dieser Seite zur Verfügung gestellten Informationen sind weder vollständig, noch objektiv. Sie stellen lediglich meinen derzeitigen Informationsstand und meine persönliche Meinung dar. Ich distanziere mich auch von allen illegalen Inhalten fremder Webseiten auf die hier ggf. verlinkt wird.

  1. Vorwort
  2. Links
  3. Installation
  4. Entwickler
  5. F.A.Q.

Crypto-Plugin:

Warum Kryptografie im IRC?

Mit Inkrafttreten der neuen Stufe der TKüV, Telekomunikations-überwachungsverordnung, am 1.1.2005 muß der gesamte Netzwerkverkehr auch kleinerer Serverbetreiber an die Ermittlungsbehörden übermittelt werden. Eine richterliche Abhörerlaubnis muß zwar vorliegen, aber das ist sozusagen reine Formsache.
Dies ist in der TKüV so zwar nicht abgefaßt, da es primär um EMail geht, aber aufgrund der Natur der Umsetzung der TKüV durch Blackboxen ( Sinaboxen ) in der Realität, ist es nicht 100% zu Kontrollieren was mitprotokolliert wird.

d.b. im ungünstigsten Fall, daß der Netzwerktraffic eines Anbieters komplett an BKA und Co übermittelt wird.

IMHO, ist die TKüV in ihrer derzeitigen Form schlicht unpraktikabel, weil NUTZLOS. Denn Emails an eine Person werden z.b. nach Domainnamen aussortiert. d.h. von Lösung zu Lösung der überwachung können selbst unverschlüsselte Emails an [username@servername], der ursprünglichen Adressierungsform von Emails vor Einführung von virtuellen Hosts, den Behörden entgehen.

Verschlüsselte Emails , also solche mit PGP oder GPG Keys, sind von den Behörden per mathematischem Beweis bei entsprechendem Key nicht knackbar.

Die naive Annahme, daß Verbrecher auch weiterhin Postkarten im Netz verschicken, ist schlicht dämlich. Zudem gibt es weit unauffälligere Methoden um unerkannt Informationen zu tauschen. Mir ist derzeit min. ein Weg bekannt, wie mit fast jedem Server der Welt eine Nachricht annonym ohne Chance auf Rückverfolgung verschickt werden kann. Diese Informationen würden nicht einmal protokolliert.

Auf Grundlage dieser Informationen ist die derzeitige Netzüberwachung schlicht eine Einschränkung unserer Bürgerrechte auf Privatssphäre.

Von der massiven Abhörung des Internets durch die Nachrichtendienste weltweit mal ganz zuschweigen.

Da ich dies nicht länger hinnehmen möchte, stelle ich jedem IRC Clienten der diese Verschlüsselung unterstützen möchte, das entsprechende Protokoll zur Verfügung. Die gängigen Nicht Amiga-Clienten , wie MIRC und XCHAT werden/sind direkt informiert. Jeder per (A)Rexx oder sonstwie erweiterebare Client kann direkt unterstützt werden.

Das Crypto-Plugin für IRC basiert in der derzeitigen Version auf einem AES 256 Bit Key Verschlüsselungsalgorithmus ( Kennung CC01) .

Die Verschlüsselung selbst wird der weiten Verbreitung und einfachen Handhabung halber, von OPENSSL durchgeführt.

Für den Amiga bedeutet dies keine Einschränkung, da Openssl nativ bei Sourceforge zur Verfügung steht. Der Algorithmus ist auch noch so schnell, daß er auch auf 68040 Classic Amigas angewendet werden kann, ohne das es zu großen Performance Einbußen kommt.

Eine Verschlüsselung mit PGP und GPG Key im 4 KBIT Bereich ist das spätere Endziel. Dies ist allerdings auf einem 68040 für den Praxisgebrauch eher etwas hinderlich. Wer dies dennoch schon benutzen möchte, dem steht das Standard DCC-CHAT Tool von BenderIRC mit PGP Unterstützung zur Verfügung, welches auch OHNE IRC funktioniert!

Die derzeitige Version der Crypto-Konsole stellt eine eigene NewGui Oberfläche zur Verfügung, die alle Ein- und Ausgaben erledigt. Wird das Plugin per Workbench gestartet, statt per CLI / IRC-Befehl, kann es auch Iconifiziert werden.

Alle Eingaben in dieser Oberfläche werden mit dem Channelkey der letzten empfangenen Nachricht oder dem von BenderIRC beim Start übermittelten Channel bzw. dessen Channelkey verschlüsselt an den aktiven Channel in BenderIRC gesendet. Eine Channelauswahl ist in Arbeit.

Die unverschlüsselte Nachricht erscheint wie gewohnt im BenderIRC Chatwindow und ggf. im aktivierten Ausgabewindow des Plugins.

Verschlüsselte Nachrichten aus dem Channel werden automatisch dekodiert und an das BenderIRC Chatwindow und ggf. im aktivierten Ausgabewindow des Plugins angezeigt.

Im BenderIRC Chatwindow werden diese Nachrichten gesonder mit Hintergrundfarben dargestellt. Die eigentliche verschlüsselte Zeichenkette taucht dabei im Chatwindow auch auf. Wenn alle Teilnehmer des Chats den Verschlüsselungsmodus Ihres Clienten aktiviert haben, dann ist das Ausgabewindow des Plugins sehr hilfreich.

Die Umsetzung für andere Clienten kann dies natürlich anders handhaben. Da eine externe Erweiterung der Funktionalität gewisse Einschränkungen birkt, wird Sie sich allerdings nicht großartig hiervon unterscheiden.

Ich stelle ein Arexxgrundgerüst für alle AmigaIRCClienten zur Verfügung. Da ich allerdings kein AmIRC nutze beschränke ich mich auf die reinen Ver/Entschlüsselungsmethoden.

Die konkrete Umsetzung müßte bitte jemand machen der mit dem jeweiligen Clienten vertraut ist.

Installation:

Ihr braucht:

- BenderIRC BenderIRC.de
- das CryptoPlugin BenderIRC.de
- OpenSSL OpenSSL 4 Amiga
- AmiPGP5.x PGP 5.1 mit ixemul
OpenSSL Warnung: Der AmigaPort von Openssl 0.9.7d scheint einige Bugs zu haben. Es kann gelegentlich zu Abstürzen kommen. Es wird dringend empfohlen OpenSSL mit dem AREXXScript VORHER zu prüfen! Für eine sichere Verschlüsselung ist die Version leider unverzichtbar.

Ab der Version 1.5b6+ von BenderIRC sind die nötigen Verzeichnisse bereits vorhanden.

Alle anderen legen sich diese bitte mit:

mkdir benderirc:config mkdir benderirc:config/keys
an.

OPENSSL:

Beispielinstallation nach Amitcp:

cd ram: lha e openssl-0.9.7d.lha copy "openssl-0.9.7d/gg;ssl/#?" Amitcp:openssl all echo "assign openssl: amitcp:openssl" >>s:user-startup assign openssl: amitcp:openssl

FERTIG

Für Entwickler:

Eine normale Nachricht in einem IRCChannel sieht so aus:

:Cyborg!~benderirc@PHAT-1705.dip0.t-ipconnect.de PRIVMSG #amigafun :Hallo.

die gleiche Nachricht als AES String sieht so aus:

:Cyborg!~benderirc@PHAT-1705.dip0.t-ipconnect.de PRIVMSG #amigafun :CC01U2FsdGVkX18GctzkzkXE1W0VXA/BnWAwadgL549g838=

wobei das CC01 für CryptoConsole Codec 01 steht. Das nötige Verschlüsselungspasswort lautet für diesen Fall : Testpasswort

so wurde es gemacht:

openssl:bin/openssl enc -aes256 -k Testpasswort -a -e -in t:in -out t:out.aes

wobei t:in und t:out.aes die nötigen text enthielten/enthalten.

Entschlüsseln geht so :

openssl:bin/openssl enc -aes256 -k Testpasswort -a -d -in t:out.aes -out t:in

Nun wäre in t:in wieder "Hallo." zu lesen.

Längere Texte werden von openssl nach exakt 64 Zeichen umgebrochen:

U2FsdGVkX1+ynWRkL8x+BJ2a9ocIJ28xJaJHDRgsSpjdrtjWzm/vOlOVZ6zfbeRg
92mKuyXFNVFwOItFeZnmeVq0ibRTaLClhd75F3N8YqBwAs5ICwu0RuBoJ7pTNDqn
zpis5p/3qf7jnwo/dl6A1u/AFoIy6rQpk0/0e057OqB9KzoQ8JLiHOF0fsIb9NHs
Bb3XjXQ+n7IuH9f6inHmPMAz77gyEcXn8QQq/u1gd6ZKSIczxA9uc+dpQXUSrH9h
ZOQe4QyfHkyiBMWOsi9hdrf19BT/vT9rstC1RLmv6HY=

Solche Ausgaben sind dem einen oder anderen von PGP bekannt.

Um im IRC nicht mehrzeilig zu werden, hebt das Cryptoplugin diesen Umbruch wieder auf. Dies ist nötig, weil sonst mehrzeilige Antworten von mehreren Leuten gleichzeitig die Zuordnung der einzelnen Zeilen zum User unnötig schwer macht.

Verschlüsselte Nachrichten müssen also auch wieder mit Umbrüchen versehen werden, sonst besteht die Gefahr, daß openssl dies nicht wieder korrekt einließt. Würde man es nicht machen, und es ginge zufällig, dann wäre man an eine bestimmt Version gebunden. So kann man openssl ruhig updaten.

Das wars.

Das ganze Verfahren ist rückwärts kompatibel. d.h. es kann mit jedem noch so alten Clienten rein technisch genutzt werden.

F.A.Q.

1. Wieso ist CC besser als SSL?

Eine verschlüsselte Verbindung zum Server ist eine feine Sache, schützt aber in gar keiner Weise davor, daß die Kommunikation abgehört werden kann.

Erklärung:
"Aber SSL wird doch als Sicher gehandelt, wie kann ich da abgehört werden?"

Um das zuverstehen muß man wissen wie IRC funktioniert:


        Client A <---------------- DCC ------------------> Client B

        Client A <----> Server A  <-----> Server B <-----> Client B
                          !                  !
        Client C <>-------'                  `----------<> Client D


DCC: DCC ist eine Direktverbindung zwischen zwei Rechnern im Internet und wird meistens durch "/DCCCHAT Username" aktiviert. Die IRC Server werden nur zum Austauschen der IP der beiden Clientenrechner benutzt und haben ansonsten NICHTS mehr mit der Kommunikatioen zwischen A und B zu tun.

Möchte A an den Channel etwas schicken, wird es von Server A aufgenommen. Dieser Server schaut nun nach, welcher Kanal das war und verteilt es an alle lokal angeschlossenen Clienten, außerdem , der es losgeschickt hat ( weil der ja weiß was er geschrieben hat ).
Jetzt gibt es aber Netzwerke die mehr als einen Server haben. Also sind Server A und Server B untereinander verbunden. Das kann man auf den meisten Servern mit dem Befehl "/map" angezeigt bekommen!
Server A erkennt nun,daß Server B auch Clienten für den Kanal hat an den die Meldung soll, also schickt er die Nachricht weiter. Server B verteilt das dann an alle lokalen Clienten die es bekommen sollen.

Und genau da liegt der Schwachpunkt :

        Client A <--SSL--> Server A  <-----> Server B <-----> Client B
                             !                  !
           Client C <>-------'                  `--- SSL --<> Client D


Die Kommunikation von Client A und Server A geht per SSL und kann im ideal Fall nicht ohne imensen Rechenaufwand durch einen Angreifer abgehört werden. Client C oder Server B nutzen aber kein SSL. Was nun? Ganz einfach, die Nachricht wird NICHT per SSL, sondern im Klartext übertragen, kann also angehört werden.

weiteres Beispiel:

Jetzt nutzen alle Clienten und alle Server SSL , es gibt keine Ausnahme!

Ist das SICHER?
Nein! Pech gehabt, ist es nicht
Wieso nicht, es ist doch alles verschlüsselt!
Das erscheint nur so. Würde man im Server A oder B eine Abhörschnittstelle in den IRC Server einbauen, könnte man alles mitlesen, weil nur jede einzelne Strecke verschlüsselt wurde, aber nicht die Nachricht an sich.

Im Falle einer legalen oder illegalen Abhörung auf dem Server A(oder B), liegen die Daten unverschlüsselt vor, weil der Server sie sonst nicht verarbeiten könnte. Er muß die Nachricht von Client A dekodieren, weil er sonst nicht wüßte was er damit soll. Sie liegt also dann in Klartext vor. Das liegt primär darin begründet, das nicht die Nachricht, sondern die gesamte Anweisung an den Server verschlüsselt wurde. Trennen läßt sich das nur, wenn man es dekodiert.

Fazit:

SSL vermittelt nur den Eindruck das man nicht abgehört werden kann, Tatsache ist, daß es reale Angriffspunkte gibt, die eine legale Abhöraktion auch ausnutzen würde.
Ist im Prinzip übrigens bei HTTPS Webseiten genauso!


2. Was macht jetzt CC um das zuverhindern?
Wir verschlüsseln die reine Nachricht die der Server transportieren soll. Dazu muß er sie nicht dekodieren, könnte er auch nicht, weil er den Key nicht kennt.

Ergo kann eine Abhörfunktion auf dem Server kein Ergebnis liefern, weil die Daten dort auch nie dekodiert vorliegen. Ob nun jemand SSL benutzt oder nicht, spielt gar keine Rolle mehr. SSL kann hier lediglich eine zusätzliche Erschwerniss für einen Angreifer darstellen, hat aber an sich keine Bedeutung.


3. Wie wird der Channelkey ausgetauscht

Per PGP und z.b. einem privaten Channelbot

Grundsätzlich gilt: Der Key darf nur gesichert ausgetauscht werden, sonst kann man sich den ganzen Aufwand sparen.

Also das läuft so.

  1. Client A erstellt einen PGP5+ Key. Vorzugsweise nicht RSA, das kann die NSA bereits nach wenigen Minuten dekodieren da der Algorithmus einfach veraltet ist. Es ist daher anzunehmen, daß auch andere Nationen mitlesen können.
  2. Der Key wird auf den Nicknamen des Chatters ausgestellt.
  3. Der Publickey wird an den Channelbot geschickt. * ACHTUNG *
  4. Der Publickey des Chatters wird in den Channelbot Keyring eingetragen.
  5. Der Channelbot signiert den KEY, d.h. er aktiviert ihn, weil er glaubt, daß es der echte Key ist.
  6. Der Chatter schickt z.b. einen Trigger "!getchannelkey" im Channel an den Channelbot.
  7. Der Channelbot kodiert mit dem vorhandenen PGP Key des Chatters das aktuelle Keyfile für CC und verschickt es an den Chatter per DCCSEND
  8. Der Chatter dekodiert mit seinem Privatkey die Nachricht und stellt das File seinem CC Plugin zur Verfügung.
  9. Der Chatter kann mitreden. Dauer: 10 Sekunden
*Aber da könnte doch jeder kommen!!!
Ja und Nein:

Ja,weil der Publickey des Chatters beim ERSTENMAL von der richtigen Person kommen muß. Das muß gewährleistet sein. Also scheiden automatische PublicKeyuploadfunktionen aus! Das macht aber nichts, denn in der Regel macht man das genau einmal!
Nein,weil der PGPKey nur einmal so ausgetauscht werden muß. Kommt nun z.b. ein nicht authorisierter Chatter und nickt sich auf den Nick eines Chatters dieses Channels um und immitiert auch noch dessen IRC Signatur ( /whois ) nutzt Ihm das GAR NICHTS. Der gespeicherte PGP Key kann nur vom echten Chatter dekodiert werden, weil der den Privatkey hat. Alle anderen bleiben draußen! :)
Der PGPkey des Chatters muß natürlich entsprechend groß sein, daß er auch dauerhaft einer Bruteforce Attacke standhält. Ich empfehle min. 3 KBIT Keys also >3072 Bits Länge. Für das eine mal wo man den PGP erstellt und sich dann täglich einmal den aktuellen Channelkey besorgt ist das auf jedem Rechner akzeptabel!
Wenn statt eines Klartextpasswortes auch noch Digitalmüll als Channelkey genutzt wird, was bei dem hier vorgestellten System funktioniert, hat auch eine Bruteforce Attacke keine Wirkung, weil man nicht erkennen kann, das das Dekodieren geklappt hat ;)


4. Wieso brauch ich PGP?
Weil es das auf allen Computerplattformen von Unix,Windows,Mac bis AmigaOS gibt! und es als sicher gilt. Natürlich nur die internationale Version! GPG für Linux geht auch.Da kann es allerdings wegen IDEA kleinere Probleme geben. Aber das ist ein Problem des Linuxusers, der muß es mit einkompilieren.


5. Wie installiere ich PGP?
Also wie man PGP installiert steht in der jeweiligen Version für jedes OS erklärt. wie man einen KEY erstellt zeige ich hier exemplarisch für AmigaOS. Linux User können "t:pub.key" z.b. durch "/tmp/pub.key" ersetzen.


Key erstellen:

pgpk -g DSS 3072 NICKNAME 0 PASSWORT-des-NICKNAMEN

jetzt einfach den Anleitungen auf dem Bildschirm folgen.
Das heißt nun hauptsächlich auf die Tastatur einprügeln ;)

pgpk -xa NICKNAME -o t:nickname.pub.key

Wechsel zu z.b. BenderIRC

/dccsend channelbot t:nickname.pub.key

Jetzt muß der ChannelbotAdmin den Key einsortieren und signieren.

z.b. pgpk -a nickname.pub.key

signieren ( aktivieren )

z.b. pgpk -s NICKNAME -u ChannelbotPRIVATEKEYID

alternativ auch: pgpk -s NICKNAME

FERTIG!

Der Chatter kann jetzt den "!getchannekey" Trigger benutzen.


Schwachstellen im Verfahren



Schwachstellen im technischen Sinne gibt es dabei keine. Die Schwachstelle ist der Mensch, denn dieser muß einem neuen Chatter ja erlauben sich in den Channelbot einzutragen, d.h. seinen Key dort einzutragen.
Nur mal angenommen!, es wird der Channel #Kinderhelfenkindern von einem potentiellen Kinderschänder bedroht.
Solange der Channelkey geheim bleibt kann der Böse Bube die Gespräche der Kinder nicht mithören. D.h. er kann nur in Klartext antworten, daß fällt sofort auf, weil die Ausgabe der Cryptokonsole LEER bleibt.
Jetzt fängt der Böse Bube an, den Channelchattern zuerklären, er/sie wäre ein nettes kleines Kind, daß auch gern mitreden würde. "Es" hätte also gern Zugriff auf den "!getchannelkey" . Das würde sogar ein 11 jähriges Kind spitz bekommen!
schlechte Taktik des bösen Buben,gut für die Kinder. Dummerweise sind die bösen Buben nicht total verblödet. Er weiss daß er sich so verdächtig machen würde. Also schlägt er einen anderen Weg ein:

Auf Umwegen zum Ziel - Für Social Engineering sind alle anfällig

Unser böser Bube nimmt sich erstmal Zeit. D.h. er kommt unregelmäßig in den Kanal und erkundigt sich (im Klartext) bei den Chattern, wie es so geht. Weil der böse Bube immer unter dem gleichen Nick erscheint, aber nichts "böses" tut, wird er zu einem netten Chatter durch Gewohnheit. Wenn dieser nette chatter dann nach Wochen den Channelkey haben möchte wird er ihn vermutlich bekommen. In direkten queries wird der böse Bube für sich zu punkten wissen, so daß kaum einer etwas dagegen hat.

Kriegt er den Key ist er drin.

Also gilt der alte Akte X Spruch : "Vertraue niemandem!"

Literaturhinweis: Kevin Mitnick - die Kunst der Täuschung



Wer sich sensibiliesieren möchte zum Thema Vertrauen durch Täuschung, der sollte sich das oben genannte Buch eher früher als später beim Verlag Modere - ISBN - 3-8266-0999-9 für 19,90 Euro kaufen!

Kann den CC da jetzt gar nichts tun?
Doch, wenn alle Chatter nur CC einsetzen, verliert der böse Bube die Lust, weil er keinen Bezugspunkt erkennnen kann. Leider kann man sich darauf nicht verlassen.

Der böse Bube muß kein Perverser sein und der Channel kein Kinderchat. Die obige Problematik ergibt sich für alle denkbaren Fälle. Es können auch unschuldige Normalbürger die sich in #Kochenbuch über die Herstellung von Bomb Surprise unterhalten, die so durch überwachung als Terrorverdächtige erkannt werden und in deren Channel ein Spitzel eingeschleust werden soll. Hätten die Köche CC schon genutzt, als Sie das Wort BOMB benutzt haben, wäre es von den automatischen Überwachungstools nie gefunden worden ;)

Ich hab ja nichts zuverbergen



haben Sie vielleicht auch nicht, aber macht das einen Unterschied?

Wenn Sie Ihre Privatsspähre nicht schützen werden Sie zum gläsernen Bürger. d.h. Ihr Verhalten und Ihre Ansichten und Ihre Gewohnheiten sind bekannt, denn der Mensch ist ein Gewohnheitstier!

Es müssen nicht einmal Staaten hinter der Abhörung stehen. Es könnte auch ein Konzern sein, der sich darüber informieren will, was Kunden so denken und wollen. D.h. mit den illegal von Ihnen gehamsterten Daten , Neudeutsch gedatamined, kann Ihr Kaufverhalten analysiert werden und Sie bekommen immer fleißig Pornokataloge, weil irgendein POPupwindow Sie mal auf eine Sexsite geleitet hat. Sie öffnen doch auch nicht die Tür Ihrer Wohnung und lassen alle rein damit Sie sich ein Bild von ihnen machen können oder?!?!

freies Zitat: Fahrenheit 911 von Michael Moore


"Ich erzählte im Fitnesscenter,daß ich mit der Art und Weise wie die Regierung der USA mit den Ermittlungen zum 11.September umgeht, nicht einverstanden bin. Am nächsten Tag standen zwei Herren vom FBI vor der Tür und wollten von mir wissen wie ich das meinte."


Wollen Sie wirklich in 10 Jahren noch für Äußerungen aus einer anderen Zeit und einer anderen Situation verurteilt werden? Ja, dann leben sie so weiter, wenn nein, denken Sie darüber nach was Sie hier heute gelesen haben!
Dies hier ist nur die Spitze des Eisbergs. Die Möglichkeiten der digitalen Überwachung sind noch weit größer und gefährlicher als Sie sich das vorstellen können.

Sie verschicken doch auch keine Postkarten mehr, weil die jeder mitlesen kann oder? :)

Die auf dieser Seite zur Verfügung gestellten Informationen sind weder vollständig, noch objektiv. Sie stellen lediglich meinen derzeitigen Informationsstand und meine persönliche Meinung dar. Ich distanziere mich auch von allen illegalen Inhalten fremder Webseiten auf die hier ggf. verlinkt wird.

done by Cyborg