Digitale Selbstverteidigung (nicht nur) für Paranoiker

Status
Für weitere Antworten geschlossen.

Rain_Maker

Administrator
Teammitglied
Wer sich denkt "na was für eine Überraschung, wieder einer, der nach dem ganzen NSA-Skandal das 1000ste HowTo für Verschlüsselung von Emails schreiben will", der hat nur teilweise recht.

- Ja, das ganze Theater ist nicht ganz unschuldig an der Motivation hier etwas zu schreiben

- Nein, es sollen nicht primär die "Standards" wie GPG/S-Mime/OTR erneut durchgekaut werden, das haben Andere schon bis zum Erbrechen getan.

Es soll hier hauptsächlich um weniger bekannte Programme gehen, die einem siche(re)re und anonyme(re) Kommunikation ermöglichen als zuvor.

Vielleicht ist also auch was für den einen oder anderen (potentiellen) Aluhutträger dabei.

Beiträge anderer Nutzer sind erwünscht, vorherige PM mit einer Rohfassung des selbigen wären nicht schlecht, dann kann man da noch einmal drüber sehen.

Greetz,

RM

Nachtrag:

Paralleler Thread in lf.de

http://www.linuxforen.de/forums/showthread.php?t=275542

Um die Synchronisation werde ich mich kümmern, sofern ich es für sinnvoll erachte (my thread, my rules, OK?).
 

Rain_Maker

Administrator
Teammitglied
Teil 1: Chatten über das Tor-Netzwerk mit jtorchat

Was TOR ist, kann und will ich hier nicht erklären, das kann jeder auf

https://torproject.org

nachlesen.

Auch zu Einrichtung von Tor finden sich hier im Forum Anleitungen in unserer HowTo Sektion (selber Suchen macht schlau).

Allerdings ist das bei diesen Tool witzigerweise auch gar nicht notwendig, denn es bringt die benötigten Programme mit und ist als Java-Anwendung plattformübergreifend einsetzbar, eine aktuelle Java-Installaion (1.6 oder höher) vorausgesetzt.

Dadurch kann jtorchat auch als portable Applikation z.B. auf einem USB-Stöpsel verwendet werden, sofern das jeweilige Zielgerät Java installiert hat. Ob das eine gute Idee ist, das auch zu tun, überlasse ich jedem selbst, es ist aber prinzipiell möglich.

Ich konzentriere mich hier auf die Installation/Einrichtung auf (openSUSE)-Linux, da wir direkt mit dem Tarball von der Projektseite arbeiten, ist das Ganze aber recht distributionsunabhängig, an entsprechender Stelle weise ich auf Eigenheiten, sofern mir bekannt, hin.

0) Voraussetzungen

Eine funktionierende Java-Installation, hierzu konsultiere man seinen Paketmanager bzw. $DISTRIBUTIONSWIKI_DES_GERINGSTEN_MISSTRAUENS

1) Was ist TorChat bzw. jtorchat:

https://en.wikipedia.org/wiki/TorChat

https://github.com/jtorchat/jtorchat

2) Programm herunterladen:

https://github.com/jtorchat/jtorchat/tree/packages

Für *NIX bietet sich das tar.gz an.

Code:
wget -c https://raw.github.com/jtorchat/jtorchat/packages/0.7.12/jtorchat%200.7.12.tar.gz -O /tmp/jtorchat-0.7.12.tar.gz
3) Installation:

Da jtorchat -per default, wie man das ändern kann, habe ich bisher noch nicht herausgefunden- in sein eigenes Programmverzeichnis schreiben will/muss installieren wir als normaler Benutzer in unser $HOME in ein Unterverzeichnis bin/java.

Code:
mkdir -p $HOME/bin/java

tar xf /tmp/jtorchat-0.7.12.tar.gz -C $HOME/bin/java/

cd $HOME/bin/java/jtorchat

ls -l 

insgesamt 228
drwxr-xr-x 8 me_myself_and_I trusted   4096 19. Aug 20:46 data
-rw-r--r-- 1 me_myself_and_I trusted    159 20. Jan 2013  getJava.txt
-rwxr-xr-x 1 me_myself_and_I trusted  26112 20. Jan 2013  jtorchat.exe
-rw-r--r-- 1 me_myself_and_I trusted 185981 20. Jan 2013  jtorchat.jar
-rwxr-xr-x 1 me_myself_and_I trusted    356 20. Jan 2013  jtorchat.sh
-rw-r--r-- 1 me_myself_and_I trusted   1242 20. Jan 2013  README
Eigentlich war es das schon, sofern man das Programm z.B. portabel verwenden möchte, sind ausser der Java-Anwendung "jtorchat.jar" noch die benötigten Binaries/Libs für Linux (32 Bit) und Windows (32 Bit) dabei und man könnte schon loslegen.

Ich will aber noch ein paar Kleinigkeiten ansprechen, nachdem man die obigen Schritte auf seiner Linuxkiste ausgeführt hat und bevor man dann doch loslegt.

4) Aufräumarbeiten:

a) Den ganzen Windowskram und die Sourcen brauchen wir nicht, also weg damit

Code:
cd $HOME/bin/java/jtorchat

find . -iname "*.exe" -or -iname "*.dll" -or -iname "windows" -or -iname "src" | xargs rm -rf
Wer die weiteren Aufräumarbeiten nicht durchführen will, kann zu Punkt 5. springen

(optionaler Kram)

b) Autoupdates/Autosync der Buddyliste abschalten (kann später wieder in der GUI über Datei -> Einstellungen eingeschaltet werden) und Deutsch als Sprache einstellen.

Code:
cd $HOME/bin/java/jtorchat/data/config/backup

cp settings.ini settings.ini.orig ## Sicherungskopie

sed -i 's|OnStartBuddySync.*|OnStartBuddySync=0|g' settings.ini

sed -i 's|OnStartUpdateCheck.*|OnStartUpdateCheck=0|g' settings.ini

sed -i 's|lang=.*|lang=de|g' settings.ini

diff -u settings.ini.orig settings.ini   ## Änderungen prüfen
--- settings.ini.orig   2013-08-19 21:01:10.660965636 +0200
+++ settings.ini        2013-08-19 21:02:11.852968186 +0200
@@ -4,13 +4,13 @@
 sync=https\://raw.github.com/jtorchat/jtorchat/services/Buddylist
 EnableFullLoggerMode=0
 OnStartLoggerDisplay=0
-OnStartUpdateCheck=1
-OnStartBuddySync=1
+OnStartUpdateCheck=0
+OnStartBuddySync=0
 ClickableLinks=0
 transferonstart=0
 loadPortableTor=1
 pageactive=0
 obfsproxy=0
 firststart=1
-lang=en
+lang=de
 alert=1
c) Nur Entry-Nodes auf Port 80 und 443 verwenden, empfehlenswert, wenn man mit einer restriktiven Firewall zu rechnen hat.

Code:
cd $HOME/bin/java/jtorchat/data/Tor

cp torrc.txt torrc.txt.orig ## Sicherungskopie

echo "ReachableAddresses *:80,*:443" >> torrc.txt

echo "ReachableAddresses reject *:*" >> torrc.txt

diff -u torrc.txt.orig torrc.txt ## prüfen

--- torrc.txt.orig      2013-08-19 21:06:36.561979219 +0200
+++ torrc.txt   2013-08-19 21:07:58.592982638 +0200
@@ -53,3 +53,5 @@
 #Log info File tor.log
 #Log info stdout
 #SafeLogging 0
+ReachableAddresses *:80,*:443
+ReachableAddresses reject *:*
d) Statt der mitgelieferten Binaries/Bibliotheken die Dateien des Systems verwenden.

Das macht natürlich nur dann Sinn, wenn man schon tor installiert hat.

WARNUNG: Wer nicht _GENAU_ weiß, was sie/er da tut, FINGER WECH!

- 32-Bit System oder 64-Bit System welches /usr/lib/ auch für 64-Bit Bibliotheken verwendet (z.B. Debian & co.)

Code:
cd $HOME/bin/java/jtorchat/data/Tor/linux

ls -l

insgesamt 5892
-rwxr-xr-x 1 me_myself_and_I trusted 1847556 20. Jan 2013  jtor.lin
-rwxr-xr-x 1 me_myself_and_I trusted 1669996 20. Jan 2013  jtorobf.lin
-rw-r--r-- 1 me_myself_and_I trusted 1621508 20. Jan 2013  libcrypto.so.1.0.0
-rw-r--r-- 1 me_myself_and_I trusted  249632 20. Jan 2013  libevent-2.0.so.5
-rw-r--r-- 1 me_myself_and_I trusted  146496 20. Jan 2013  libevent_core-2.0.so.5
-rw-r--r-- 1 me_myself_and_I trusted  110732 20. Jan 2013  libevent_extra-2.0.so.5
-rw-r--r-- 1 me_myself_and_I trusted  373388 20. Jan 2013  libssl.so.1.0.0

ln -sf /usr/bin/tor jtor.lin 
ln -sf /usr/bin/tor jtorobf.lin 
ln -sf /lib/libcrypto.so.1.0.0 .
ln -sf /lib/libssl.so.1.0.0 .
ln -sf /usr/lib/libevent*.so.? .

ls -l

insgesamt 0
lrwxrwxrwx 1 me_myself_and_I trusted 12 19. Aug 21:27 jtor.lin -> /usr/bin/tor
lrwxrwxrwx 1 me_myself_and_I trusted 12 19. Aug 21:27 jtorobf.lin -> /usr/bin/tor
lrwxrwxrwx 1 me_myself_and_I trusted 23 19. Aug 21:27 libcrypto.so.1.0.0 -> /lib/libcrypto.so.1.0.0
lrwxrwxrwx 1 me_myself_and_I trusted 26 19. Aug 21:27 libevent-2.0.so.5 -> /usr/lib/libevent-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 31 19. Aug 21:27 libevent_core-2.0.so.5 -> /usr/lib/libevent_core-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 32 19. Aug 21:27 libevent_extra-2.0.so.5 -> /usr/lib/libevent_extra-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 34 19. Aug 21:27 libevent_openssl-2.0.so.5 -> /usr/lib/libevent_openssl-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 35 19. Aug 21:27 libevent_pthreads-2.0.so.5 -> /usr/lib/libevent_pthreads-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 20 19. Aug 21:27 libssl.so.1.0.0 -> /lib/libssl.so.1.0.0
- 64.Bit System, welches /lib64 bzw. /usr/lib64 verwendet (z.B. openSUSE oder Fedora)

Code:
cd $HOME/bin/java/jtorchat/data/Tor/linux

ln -sf /usr/bin/tor jtor.lin 
ln -sf /usr/bin/tor jtorobf.lin 
ln -sf /lib64/libcrypto.so.1.0.0 .
ln -sf /lib64/libssl.so.1.0.0 .
ln -sf /usr/lib64/libevent*.so.? .

insgesamt 0
lrwxrwxrwx 1 me_myself_and_I trusted 12 19. Aug 21:34 jtor.lin -> /usr/bin/tor
lrwxrwxrwx 1 me_myself_and_I trusted 12 19. Aug 21:33 jtorobf.lin -> /usr/bin/tor
lrwxrwxrwx 1 me_myself_and_I trusted 23 19. Aug 21:33 libcrypto.so.1.0.0 -> /lib64/libcrypto.so.1.0.0
lrwxrwxrwx 1 me_myself_and_I trusted 26 19. Aug 21:33 libevent-2.0.so.5 -> /usr/lib64/libevent-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 31 19. Aug 21:33 libevent_core-2.0.so.5 -> /usr/lib64/libevent_core-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 32 19. Aug 21:33 libevent_extra-2.0.so.5 -> /usr/lib64/libevent_extra-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 34 19. Aug 21:33 libevent_openssl-2.0.so.5 -> /usr/lib64/libevent_openssl-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 35 19. Aug 21:33 libevent_pthreads-2.0.so.5 -> /usr/lib64/libevent_pthreads-2.0.so.5
lrwxrwxrwx 1 me_myself_and_I trusted 20 19. Aug 21:33 libssl.so.1.0.0 -> /lib64/libssl.so.1.0.0
5. Verknüpfung zum Start anlegen.

Prüfen, ob $HOME/bin/ in PATH ist.

Code:
echo $PATH| grep "$HOME/bin"
Falls nicht, die PATH-Variable $HOME/.profile oder $HOME/.bashrc erweitern oder das folgende Script mit absolutem Pfad starten.

Folgendes
Code:
#!/bin/bash

HOMEJAVADIR=$HOME/bin/java

java -Xmx512M -cp $HOMEJAVADIR/jtorchat/jtorchat.jar core.TCPort &

exit 0
als $HOME/bin/jtorchat abspeichern und mit

Code:
chmod 700 $HOME/bin/jtorchat
ausführbar machen.

Das -Xmx512M kann man auch weglassen oder auf seine Kiste anpassen, wer weniger als 2GB RAM hat, sollte die Einstellung passend (ggf. kleinere Zahl) setzen.


6. Starten mit

Code:
jtorchat
oder

Code:
$HOME/bin/jtorchat
bzw.

Code:
~/bin/jtorchat
Sollte _in etwa_ so aussehen

Code:
Log: {ConfigWriter} /home/me_myself_and_I/bin/java/jtorchat/jtorchat.jar
Log: {core.TorLoader} Using /home/me_myself_and_I/bin/java/jtorchat/data/config/ as CONFIG_DIR

--- snip ---

Log: {ConfigWriter} Load from settings.ini
Log: {ThreadManager} Starting Tor.
Log: {TorLoader } Checking OS
Log: {core.TorLoader} Start portable tor in *nix or linux
Log: {Tor} Aug 19 21:43:51.175 [notice] Tor v0.2.4.16-rc (git-889e9bd529297284) (with bufferevents) running on Linux with Libevent 2.0.21-stable and OpenSSL 1.0.1e.
---- usw. usw. ----
Und wer sich beeilt (je nachdem, wie lange ich den Testaccount behalten werde), der kann anschließend über

Datei -> Freund hinzufügen

in das Feld Adresse

Code:
4s2ss4pgtmfzlb3u
eingeben und warten, was passiert (und ja, warten wird man müssen, bin schließlich nicht 24/7 online).

//Nachtrag:

Dateitransfer funktioniert auch, man muss allerdings aus einem Dateimanager, welcher "Drag&Drop" kann, die gewünschte Datei ins Chatfenster (nicht das Eingabefenster!) des Zielkontaktes ziehen und fallen lassen.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
Teil 2: And now for something completetly different: Torchat (in Python)

Und nun das Ganze mit einem Client in Python.

Der Fairness halber muss man anmerken, daß diese Implementierung das Original und das in Teil 1 vorgestellte jtorchat ein Rewrite eines anderen Entwicklers in Java ist.

Um das Ganze dann noch auf die Spitze zu treiben; der Entwickler des Python-Clients arbeitet gerade ebenfalls an einem Rewrite, dieses Mal in Pascal mit dem Ziel das Einbinden eines Plugins (via libpurple, Nutzer von Pidgin werden die kennen) für Torchat in diverse Instant Messenger zu erleichtern.

Also nach englischen Komikern (bzw. Schlangen) sind wir über Kaffee bei französischen Mathematikern angekommen, nun denn.

Das Ganze wieder als "portable" Installation, d.h. alles (bis auf das Startscript) befindet sich in einem Ordner "zum Mitnehmen".

0) Voraussetzungen

- Funktionierende Installation von Python 2 (getestet auf openSUSE 12.3 mit python 2.7.3)

- Python bindings für das wxGTK-Toolkit (unter openSUSE 12.3 heißt das Paket "python-wxWidgets")

- TOR
Ja, hier ist TOR nicht dabei, deshalb ist das mit dem Portabilitätsmodus nicht ganz so einfach, weshalb ich die Java-Version zuerst vorgestellt habe. In der Windowsversion ist das übrigens (samt Python und wxGTK-python) auch mit eingepackt, irgendwo muss der Größenunterschied (7 MB vs. 200 KB) ja herkommen.

1) Projektseite:

https://github.com/prof7bit/TorChat

2) Programm herunterladen:

https://github.com/prof7bit/TorChat/downloads

Code:
wget -c https://github.com/downloads/prof7bit/TorChat/torchat-source-0.9.9.553.zip -O /tmp/torchat-source-0.9.9.553.zip
3) "Installation":

Wieder rein ins $HOME des Users, ich verwende dabei $HOME/.local/ als passenden Ort, um die Hierarchie des Systems abzubilden.

Code:
mkdir -p $HOME/.local/lib/torchat/

unzip /tmp/torchat-source-0.9.9.553.zip -d $HOME/.local/lib/torchat

Archive:  /tmp/torchat-source-0.9.9.553.zip
  inflating: $HOME/.local/lib/torchat/doc/howto_mac_osx.html  
  inflating: $HOME/.local/lib/torchat/doc/howto_second_instance.html  
  inflating: $HOME/.local/lib/torchat/src/dlg.py  

-- snip --

  inflating: $HOME/.local/lib/torchat/src/Tor/torrc.txt
4) Aufräumarbeiten (optional):

Hier gibt es nur die im vorigen Posting angesprochene Änderung in Bezug auf restriktive Firewalls, also nur ausgehende Verbindungen zum TOR-Netzwerk auf den Ports 80 und 443.

Code:
cd $HOME/.local/lib/torchat/src/Tor

cp torrc.txt torrc.txt.orig ## Sicherungskopie

echo "ReachableAddresses *:80,*:443" >> torrc.txt

echo "ReachableAddresses reject *:*" >> torrc.txt
5) Startscript:

Prüfen, ob $HOME/bin/ in PATH ist.

Code:
echo $PATH| grep "$HOME/bin
Falls nicht, die PATH-Variable $HOME/.profile oder $HOME/.bashrc erweitern oder das folgende Script mit absolutem Pfad starten.

Folgendes
Code:
#!/bin/bash

exec python2 $HOME/.local/lib/torchat/src/torchat.py "$@" &
als $HOME/bin/torchat abspeichern und mit

Code:
chmod 700 $HOME/bin/torchat
ausführbar

6) Starten mit

Code:
torchat
oder

Code:
$HOME/bin/torchat
oder (ganz ohne Startscript)

Code:
python2 $HOME/.local/lib/torchat/src/torchat.py
Testadresse (zumindest temporär), siehe vorigen Beitrag.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
Teil 3: Bitmessage (Python client "PyBitmessage")

In diesem Beitrag möchte ich die Verwendung des Dienstes "Bitmessage" unter Verwendung des Python-Clients "PyBitmessage" erklären.

Auch hier soll der Fokus auf Installation als "portable" Anwendung und zusätzlich die Verwendung von TOR als Proxy für den Zugang von Bitmessage ins Netz liegen.

0) Voraussetzungen:

- Python 2.x (getestet mit Python 2.7.3 unter openSUSE 12.3)

- Python QT4 (unter openSUSE heisst das Paket aus python-qt4)

- openssl (sollte per default installiert sein)

- TOR installiert und laufend (optional)

- git (für die Sourcen, unter openSUSE mit "zypper install git" zu erledigen)

1) Was ist Bitmessage:

https://en.wikipedia.org/wiki/Bitmessage

https://bitmessage.org/wiki/Main_Page

2) Herunterladen:

Ich empfehle für Linux die Verwendung der neusten Sourcen aus dem GIT-Repository (z.B. weil da schon eine eingedeutschte Variante vorhanden ist).

Code:
mkdir $HOME/Downloads/GIT -p

cd $HOME/Downloads/GIT

git clone https://github.com/Bitmessage/PyBitmessage

Klone nach 'PyBitmessage'...

remote: Counting objects: 3609, done.
remote: Compressing objects: 100% (1627/1627), done.
remote: Total 3609 (delta 2266), reused 3187 (delta 1873)
Empfange Objekte: 100% (3609/3609), 1.76 MiB | 252 KiB/s, done.
Löse Unterschiede auf: 100% (2266/2266), done.
3) "Installation":

Code:
mkdir $HOME/.local/share/PyBitmessage -p

cp -r $HOME/Downloads/GIT/PyBitmessage/src/* $HOME/.local/share/PyBitmessage/
4) Erster Start und Einrichtung als portable Anwendung mit TOR als Proxy

Code:
cd $HOME/.local/share/PyBitmessage/

python2 bitmessagemain.py
Nun erscheint ein Fenster, daß einen fragt, ob man sofort verbinden oder zuerst einige Einstellungen vornehmen möchte.

Wir wählen Zweiteres.

Portable Anwendung einrichten:

Benutzerinterface -> (*) "in portablem Modus arbeiten"

(Optional)

Tor verwenden:

Netzwerkeinstellungen -> Proxy Server/Tor -> SOCKS5 (SOCKS4a sollte auch gehen)

Port und Adresse passend zur eigenen Tor-Installation angeben

oder

Eingehenden Port ändern:

Wie bei anderen P2P-Anwendungen kann/sollte man eingehende Verbindungen erlauben, damit das Programm besser funktioniert.

Der default ist 8444 und kann hier geändert werden. Wer dieses Feature sinnvoll nutzen will, muss den entsprechenden Port in seinen Firewalleinstellungen und/oder auf seinem Router weiterleiten.

Wer TOR als ausgehende Verbindung verwendet, kann/muss hier nichts einstellen und muss auch kein Portforwarding einrichten, ein weiterer Vorteil, wenn man TOR verwendet, die potentiellen Nachteile sind natürlich auch klar, es wird etwas langsamer.

Wer keine eingehenden Verbindungen zulässt, kann Bitmessage trotzdem benutzen, es gibt aber einige Einschränkungen, vor allem in Bezug auf Geschwindigkeit.

Nachdem alle Einstellungen angepasst wurden und durch drücken von OK bestätigt wurden, noch kurz warten und Programm schliessen.

Nun noch einmal starten

Code:
cd $HOME/.local/share/PyBitmessage/

python2 bitmessagemain.py
und bei dem aufpoppenden Fenster "Jetzt verbinden" wählen und "OK".

PyBitmessage verbindet sich nun und kann verwendet werden.

5) Startscript

Code:
#!/bin/sh

cd ~/.local/share/PyBitmessage

exec python2 bitmessagemain.py&
Das cd ins Programmverzeichnis vor dem Aufruf von python2 ist wichtig!

Das Ganze als "PyBitmessage" in $PATH ablegen ($HOME/bin bietet sich an) und ausführbar machen, siehe hierzu die letzten beiden Beiträge, wie das geht.

Bitmessage hat nicht zufällig eine Namensähnlichkeit zu Bitcoin, es wurde/wird vom selben Entwickler initiiert/mitbetreut.

6) Adresse anlegen:

Ihre Identitäten -> Neu

und die Anweisungen lesen, es ist eigentlich kinderleicht.

Ich würde eine Zufallsadresse bevorzugen, aber das kann jeder selbst entscheiden. Mit einem Passsatz kann man die Adresse natürlich wieder zurückholen, wenn man seine Einrichtungsdatei verschlampt hat, prinzipiell kann das aber dann auch jeder tun, wenn er die Passphrase auch kennt.

Choose your poison.

Die wichtigste Datei ist "keys.dat", die sich im portablen Modus genau so wie "messages.dat" und "knownnodes.dat" im Programverzeichnis befindet.

Wer den portablen Modus nicht will bzw. wieder ausschaltet, findet diese Dateien in $HOME/.config/PyBitmessage wieder.

Eine Kopie der "keys.dat" würde ich mir regelmässig an einem sicheren (verschlüsselten!) Ort ablegen, da sich dort auch (zumindest noch) bestimmte Daten im Klartext befinden!

Das Ding ist dann eigentlich wie ein Mailprogramm zu bedienen, näheres und weitere Möglichkeiten (eine Art von Mailinglisten, auch "channels" genannt) findet man im Bitmessage-Wiki

https://bitmessage.org/wiki/Main_Page

oder im Bitmessage-Forum

https://bitmessage.org/forum/index.php

unter "General Discussion"

https://bitmessage.org/forum/index.php/board,1.0.html?PHPSESSID=c194496a4ea333d07560f676424d3a2e

in den oben angepinnten Threads.

7) Erste Testmessage versenden:

Nachdem man eine Adresse angelegt hat, kann man eine Mail an einen Autoresponder senden.

https://bitmessage.org/forum/index.php/topic,1600.0.html

=> "Average user Echo Server"

Adresse: BM-orkCbppXWSqPpAxnz6jnfTZ2djb5pJKDb

Man sendet also eine Nachricht von seiner Adresse an die obige Adresse und wartet auf Antwort, im Ordner "Gesendet" kann man beobachten, was da gerade passiert.

Die unhandlichen Adressen kann man über das Adressbuch verwalten und dort menschenlesbare Aliase angeben (die logischerweise nur lokal vorhanden sind!).

Wenn das geklappt hat, dann kann man sich ja mal den Spaß machen und eine Nachricht an

BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K

senden, mal sehen, wer da antwortet.

:)

Anmerkungen:

- Bitmessage verwendet Ideen aus Bitcoin, wenn es um die Ver-/Entschlüsselung der Nachrichten geht, das Programm kann also, wenn es gerade zu tun hat (z.B. beim Senden/Empfangen einer Nachricht) ganz ordentlich CPU verbraten.

- Das Annehmen von Nachrichten wird vom Empfänger automatisch bestätigt, das sieht man dann im "Gesendet"-Feld unter Status. Wenn eine Nachricht nach einiger Zeit (ca. 2 Tage IIRC)nicht bestätigt wurde, dann fliegt sie automatisch aus dem Netzwerk und muss erneut gesendet werden. Ist der Empfänger als in dieser Zeit nicht online, dann "vergisst" das Netz die Nachricht genau so wie alle zugestellten Nachrichten nach einiger Zeit vergessen werden.

8) Update des Programms:

Das würde ich regelmäßig machen, alle paar Tage gibt es da Veränderungen, meist positive

Code:
cd $HOME/Downloads/GIT/PyBitmessage/

git pull origin master
und wenn sich da etwas getan hat, dann

Code:
cp -r $HOME/Downloads/GIT/PyBitmessage/src/* $HOME/.local/share/PyBitmessage/
und PyBiItmessage neu starten.

Soweit fürs Erste zu (Py)Bitmessage.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
Teil 4: Unabhängigkeit von "vorgeschriebenen" DNS-Servern (pdns-recursor)

Der folgende Beitrag ist nicht zwingend direkt zu Anonymisierung o.ä. sondern eher ein Mittel von den -nicht selten miesen- DNS-Servern (s)eines Anbieters unabhängig zu sein und einen etwas dezentraleren Ansatz zu finden.

In sofern ist es auch digitale Selbstverteidigung, die aber auch durchaus einen "rein technischen" Vorteil bietet.

Für mich persönlich war pdns-recursor schon vor Jahren eine Möglichkeit die miserablen Nameserver meines damaligen ISP durch etwas Brauchbares zu ersetzen ohne irgendwelche Server großer Tiere im Netz (Googles 4x8 z.B.) verwenden zu müssen.

Kurz darauf kam dann die unsägliche von der Leyensche Sperrdiskussion (aka "Zensursula-Debatte"), wonach es mir schon aus Prinzip ein Anliegen war, mich nicht von solchen geistigen Tieffliegern, die auf die widerlichste Art und Weise das Schicksal von Mißbrauchsopfern für ihre faschistoiden Zensurphantasien ausnutzen woll(t)en, bevormunden und verarschen zu lassen.

Es geht hier nicht um das Eintragen eines bestimmten, frei zugänglichen Nameservers sondern um eine dezentrale Lösung eines lokalen DNS-Servers, die praktisch "von alleine" funktioniert.

Wer Listen freier DNS-Server sucht, der findet hier z.B. Brauchbares:

http://www.opennicproject.org/

Die folgende Anleitung bezieht sich explizit auf openSUSE, mit geringfügigen Änderungen dürfte sie aber auch auf andere Distributionen übertragbar sein, vor allem auch, weil es kaum etwas einzurichten gibt.

Was ist pdns-recursor eigentlich?

Eigentlich ist das ein richtiger, kleiner DNS-Server, allerdings fragt er eben nur rekursiv andere Nameserver an und kann damit als lokaler Dienst laufen, der nicht von aussen erreichbar sein muss.

Mehr Infos hier:

https://www.powerdns.com/recursor.html

Installation:
Code:
#zypper install pdns-recursor
Aktivierung:

Code:
chkconfig pdns-recursor on
bzw.

Code:
systemctl enable pdns-recursor.service

Start:

Code:
/etc/init.d/pdns-recursor start
bzw.

Code:
systemctl start pdns-recursor.service
Mehr ist eigentlich nicht einzurichten um pdns-recursor nun verwenden zu können.

Verwendung:

Per default lauscht pdns-recursor nur auf 127.0.0.1 (tcp und udp auf Port 53, wie es sich für einen DNS-Server gehört).

Man muss also nun nur noch "127.0.0.1" als primären (ggf. einzigen) Nameserver angeben und das war es auch schon.

Bei der Verwendung von ifup kann man in /etc/sysconfig/network/config

Code:
NETCONFIG_DNS_STATIC_SERVERS="127.0.0.1"

NETCONFIG_DNS_POLICY="auto"
setzen, damit wird -egal wie die weitere Einrichtung für die jeweilige Netzwerkverbindung aussieht- immer pdns-recursor als primärer Nameserver verwendet.

Mehr dazu liefert "man 8 netconfig".

Bei der Verwendung von NetworkManager kann/sollte man 127.0.0.1 als primären DNS für die jeweilige Verbindung eintragen.

Als netten, weiteren Vorteil hat man nun einen eigentlich immer funktionierenden Nameserver, egal wie gut oder mies die DNS-Server des Anbieters sind.

Als zweiten DNS-Server kann man dann noch einen festen Server eines vertrauenswürdigen Anbieters (z.B. 85.214.20.141 DNS des ehemaligen FoeBuD, heute Digitalcourage) verwenden und hat somit auch einen ordentlichen Fallback.

(Wer mag kann diesen natürlich auch als ersten DNS und den pdns-recursor als zweiten verwenden, choose your poison).

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
Psi+ als Jabber-Client mit OTR-Verschlüsselung für Linux/Win (und Mac?)

In diesem kurzen Beitrag steckt ein Stück persönliche Präferenz, man möge es mir also nicht übel nehmen, daß der wirklich "Neuigkeitswert" für manche User eher gering ist.

Wer sich über OTR informieren will, den verweise ich auf eine bekannte Online-Enzyklopädie.

http://de.wikipedia.org/wiki/Off-the-Record_Messaging

Ich meine mich (ziemlich) dunkel erinnern zu können. daß auch der Chatclient "Pidgin" zumindest auf Linux und Windows OTR beherrscht, aber -und hier kommt die persönliche (nicht)Präferenz ins Spiel- das Ding war für mich immer ein Paradebeispiel für miese Benutzbarkeit.

Mein Favorit für XMPP/Jabber war schon seit langem Psi, allerdings konnte man mit diesem lange Zeit nur mit openPGP verschlüsselt chatten, was für einen Windowsnutzer auf der Gegenseite einiges an Vorarbeit erforderte, da PGP/GPG unter besagtem OS erst mal nachinstalliert werden musste.

Mit Hilfe eines Plugins konnte man dann auch für Psi die Unterstützung von OTR zumindest unter Linux aktivieren, auch wenn die Unterstützung recht rudimentär war, aber Windows war immer noch aussen vor.

Nun gibt es aber ein Projekt namens Psi+, welches in gewisser Weise eine Mischung aus Fork und Entwicklerversion für Psi darstellt.

Einerseits sind die Entwickler von Psi+ sehr viel experimentierfreudiger, was Erweiterungen von Psi angeht, andererseits flossen wohl einige der Neuerungen von Psi+ auch in das Original zurück.

Genug der Vorworte, hier eine kurze Anleitung, wie man unter Psi+ OTR aktiviert.

1) Psi+ installieren

- Unter Linux befrage man seinen Paketmanager, das Paket für openSUSE heisst "psi+", das OTR-Plugin ist im Paket (Überraschung) "psi+-plugins-otrplugin" enthalten. Es gibt noch eine reihe weiterer Plugins, die man installieren und sich ansehen kann, das aber nur der Vollständigkeit halber, denn das ist hier nicht das Thema.

- für Windows findet man hier die passenden Downloads

http://code.google.com/p/psi-dev/downloads/list

Für Windows sollte man darauf achten, daß in der Beschreibung so etwas wie "OTR included" steht, aktuell wäre das psi-plus-0.16.*irgendeine_version*-win32-setup.exe mit der Beschreibung

"Psi+ Windows Installer with 30+ translations || OTR Plugin included || Based on https://github.com/psi-im at 24.11.2013 15:03 MSD || Qt 4.8.5 || Win32 OpenSSL Libs v1.0.1e || Psimedia/GStreamer included Featured Windows Installer"

Auch für MacOS finden sich dmg-Images, allerdings ist dort nicht klar zu erkennen, ob OTR aktiviert ist (aber Adium, der Standardmessenger unter MacOSX kann soviel ich weiß auch OTR).

2) Migration für User, die zuvor Psi verwendet haben

Unter Windows wird man beim ersten Start von Psi+ gefragt, ob die Profile von Psi übernommen werden sollen, hier würde ich die Variante wählen, die nur das Profil kopiert und _nicht_ die, welche dann das alte Profil für Psi löscht.

Zumindest bei mir (openSUSE 12.3) kam diese Nachfrage nicht, die Migration ist aber recht simpel (zumindest wenn man vorher Psi 0.15 verwendet hat), denn in

$HOME/.config/

$HOME/.local/share/

$HOME/.cache/

liegen nachdem man Psi+ einmal kurz gestartet und danach ohne Einrichtung eines Kontos gleich geschlossen hat, jeweils ein Ordner mit Namen Psi (alt) und Psi+ (neu) mit den selben Dateien, nur sind im Ordner Psi+ eben "leere" Profildaten enthalten.

Kopiert man den Inhalt des jeweiligen Ordners "Psi" in den neuen Ordner "Psi+" an den jeweils oben genannten Orten, dann war es das auch schon.

3) Einrichten von OTR

- Psi+ starten

- Allgemein => Optionen => Plugins

- Pull-Down-Menü "Plugin-Name" anklicken => Off-The-Record Messaging => [x] Dieses Plugin laden

Es zeigen sich nun drei Registerkarten ("Tabs")

- Meine Privaten Schlüssel => im Pull-Down-Menü Konto auswählen (wenn man mehrere hat) => Generiere neuen Schlüssel

.. kurz warten (dauert ein paar Sekunden) und das Ganze ggf. für alle Konten wiederholen.

=> Anwenden

Unter dem Tab "Konfiguration" kann man die Verwendung von OTR einstellen, manuell ist zumindest am Anfang eine gute Wahl, vor allem, wenn man noch Kontakte ohne oder mit anderer Verschlüsselung (GPG) hat.

Im Tab "Bekannte Fingerabdrücke" landen die Fingerprints der Kommunikationspartner, mit denen man OTR verwendet, dieser dürfte jetzt noch leer sein.

Zusätzlich enthalten noch die beiden Tabs "Bekannte Fingerabdrücke" und "Meine privaten Schlüssel" einen Löschbutton, den muss ich nicht erklären, aber zumindest die Anregung loswerden, seine Keys regelmässig (wie alle Passwörter!) zu wechseln, dann braucht man den Löschknopf auch irgendwann.

Die Vorgehensweise ist unter Windows (gestestet mit XP und 7) sowie unter Linux (openSUSE 12.3) so weit ich es sehen konnte, identisch.

4) (Optional) ein paar Knöpfchen an prominente Stelle ins Chatfenster holen

Allgemein => Optionen => Symbolleisten => Pull-down-Menü "Symbolleiste" => "Chat" => [x] anzeigen => Anwenden

Nun liegen in den Chatfenstern (also wenn man gerade mit jemandem schreibt) ein paar Buttons oberhalb der Eingabezeile, einer davon ist ein Schloss in welchem "OTR" steht. Lässt man diesen Schritt aus, so benutzt man in einem Chatfenster statt des OTR-Schlosses den Knopf in Form eines Pfeils rechts oben, der ein Pull-Down-Menü öffnet. Dort findet sich dann besagtes Schloss. Ich gehe im Folgenden davon aus, daß Schritt 4 angewandt wurde.

5) OTR verwenden

- Aktivieren:

So bald man eine Konversation mit einem Gegenüber gestartet hat, dessen Client ebenfalls OTR unterstützt, kann man auf das (noch grau gefärbte)

Schloss mit der Aufschrift OTR klicken => "Starte private Konversation"

Die Verschlüsselung wird nun aktiviert, sofern das Programm des Gegenübers ebenfalls OTR beherrscht.

Es erscheint auch eine Meldung, daß eine nicht verifizierte Sitzung gestartet wurde (dazu kommen wir gleich).

- Authentifizieren:

Man mag sich nun fragen, woher man jetzt weiss, ob der Kontakt auch wirklich derjenige ist, für den er sich ausgibt.

Die einfache Antwort lautet zumindest bis jetzt "Gar nicht" und genau das ändert man nun.

Wieder auf das OTR-Schloss (nun gelb mit rotem Zeichen daneben, für mich sah es auf den ersten Blick wie ein "?" aus) klicken => Authentifiziere Kontakt

und die Methode im Pull-Down-Menü auswählen.

- Standard ist "Frage und Antwort", d.h. man schreibt oben eine Frage, in die zweite Zeile eine Antwort und sendet ab.

Das Gegenüber erhält nun diese Frage in einem Popup-Fensterchen, schreibt ihre/seine Antwort in die passende Zeile, und wenn die Antworten identisch sind, gilt der Kontakt als authentisch. Es ist also wichtig sich eine gute und eindeutig zu beantwortende Frage auszudenken, die zum Gegenüber passt, lasst Euch was einfallen.

Dieses Spielchen sollten übrigens beide Kommnuikationspartner durchführen, zumindest für den gehobenen Paranoialevel. Diese Methode beherrschen auch die meisten OTR-fähigen Chatprogramme und sollte deshalb erste Wahl sein.

- Zweite Methode ist "Gemeinsames Geheimnis", letztendlich ist das nur eine Zeile in welche beide Partner das Selbe eintippen müssen. Da die Konversation schon nach Aktivieren von OTR verschlüsselt ist, kann man diese Methode so ähnlich wie die erste verwenden, im normalen Chatfenster stellt man eine Frage und die Antwort auf diese Frage ist dann das, was beide eintragen.

Eine Weitere Möglichkeit wäre es, das gemeinsame Geheimnis auf einem (möglichst sicheren) Seitenkanal auszutauschen, das Wie überlasse ich Eurer Phantasie.

- Die dritte Methode "verifiziere Fingerprint" ist die Authentifizierung ohne irgendwelche Frage-Antwort Spielchen mit aufpoppenden Fenstern beim Gegenüber. Diese kann man wählen, wenn der Client des Gegenüber zwar OTR aber eben diese erweiteren Funktionen nicht beherrscht, man kann und sollte natürlich trotzdem vorher im schon verschlüsselten aber noch nicht verifizierten Chat ein entsprechendes Frage-Antwort Spielchen durchführen.

6) Kurze Überprüfung

Allgememein => Optionen => Plugins => Off-the-Reccord Messaging => Bekannte Fingerabdrücke

Nun sollte sich dieses Fenster zu füllen begonnen haben, dabei ist auf die Spalte "Verifiziert" zu achten.

Nachdem man einen Kontakt authentifiziert hat, kann man von nun an eine Unterhaltung einfach durch Klicken auf das OTR-Schloss => "Starte Private Konversation" verschlüsseln.

Vorteile von OTR gegenüber GPG/PGP

- einfachere Einrichtung unter Windows (im Vergleich zu GPG/PGP), da keine zusätzliche software nötig

- Plausible Deniability (Wikipedia weiss mehr)

- Perfect forward Secrecy (Auch hier, mehr bei der Allwissenden Müllhalde

Nachteil gegenüber GPG/PGP:

- Das ganze funktioniert nur, wenn beide Kommunikationspartner online sind, man kann also keine verschlüsselten Nachrichten an einen Konatkt, der Offline ist, versenden.

So, viel Erfolg beim Ausprobieren, es ist wirklich nicht schwer.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
TorChat für Pidgin (= libpurple basierende IM-Programme)

In einem der vorigen Beiträge wurde der Python-Client für TorChat vorgestellt, der allerdings nicht mehr weiter eintwickelt wird.

Die nächste Stufe dieser Software vom selben Entwickler nennt sich "TorChat2", ist in FreePascal geschrieben und bietet bisher keinen fertigen Client, aber dafür ein Plugin, welches man mit Pidgin verwenden kann.

Eigentlich ist das Plugin für "libpurple", welche wiederum die Basis für Pidgin darstellt, es sollte also theoretisch möglich sein, dieses Plugin auch für andere Clients, die auf libpurple basieren, zu verwenden, aber das ist eher geraten zumal mir auf Anhieb auch gerade keiner einfällt.

In wie weit allerdings diese Software noch aktiv weiter entwickelt wird, ist leider auch ein wenig fraglich, zumindest tut sich dort in den letzten Monaten auch wenig.

Nun aber zum eigentlich interessanten Teil des Beitrags.

Voraussetzungen:

- Pidgin muss auf dem System installiert sein (dazu befrage man seinen Paketmanager)

- Für Linux ix86/x86_64 sowie für Windows 32Bit finden sich fertige Binaries unter folgender Adresse:

https://github.com/prof7bit/TorChat/downloads

Linux ix86 (32 Bit): libpurpletorchat-2.0-alpha-14-linux-i368.tar.bz2 (ja, das 368 ist ein Typo des Entwicklers)

Linux x86_64 (64 Bit): libpurpletorchat-2.0-alpha-14-linux-x86-64.tar.bz2

Windows, 32Bit: libpurpletorchat-2.0-alpha-14-Windows-i368.zip (zu "368", siehe oben)

In jedem der Pakete befindet sich eine Datei "README.txt", aber da Lesen nicht unbedingt die Kernkompetenz vieler Computerbenutzer zu sein scheint, hier einmal zumindest für Linux kurz die Vorgehensweise:

Passendes Archiv (=passend zur Architektur des eigenen Sytems) herunterladen, entpacken und die enthaltene "libpurpletorchat.so" an den richtigen Ort kopieren.

Hier gibt es prinzipiell zwei Möglichkeiten:

1) Installation ins HOME des Benutzers:

/home/<Benutzername>/.purple/plugins (den Unterordner plugins ggf. vorher anlegen)

Vorteil:

- Kann als unprivilegierter Benutzer installiert werden

Nachteil:

- Steht aber dann auch _nur_ diesem Benutzer zur Verfügung, weitere Benutzer des Systems müssen das selbe also auch für ihr $HOME machen

2) Systemweite Installation:

/usr/lib/purple-2/

bzw.

/usr/lib64/purple-2/

Welcher Ordner der richtige ist, hängt von Architektur und verwendeter Distro ab, da es aber nur zwei Möglichkeiten gibt, dürfte selbst für lesefaule Nutzer das Ausprobieren nicht wirklich schwer sein

Vorteil:

- Plugin steht ab sofort jedem Nutzer des Systems zur Verfügung

Nachteil:

Das Kopieren ins richtige Verzeichnis muss als root erfolgen (naja, irgendwie logisch)

Beim nächsten Start von pidgin kann man nun unter

"Konten" -> "Konten verwalten" -> "Hinzufügen" -> "Protokoll"

als Protokoll "TorChat" auswählen und ein Konto anlegen.

Anmerkungen:

- Die Nutzerdaten für dieses Konto findet man dann unter $HOME/.torchat2_<längere_Zeichenkette>, wobei die Zeichenkette die onion-Adresse/Benutzer-ID des Accounts ist (i.d.R. 16 Zeichen lang).

- Migration eines schon vorhandenen Kontos ist zwar möglich aber nicht ganz trivial, eine eigene Konfiguration mit selbstgewählten Ports wird nicht übernommen, das Plugin kümmert sich selbst um den Start der entsprechenden Unterprozesse und da sollte man lieber nicht eingreifen, wenn man nicht ganz genau weiß, was man tut, deshalb hier keine weiteren Ausführungen dazu

- Gleichzeitiges Betrieben mehrerer IDs ist möglich, wie gesagt kümmert sich das Plugin darum, daß es keine Kollisionen bei den Unterprozessen (je ein Tor-Prozess pro ID) gibt, was ja (siehe letzte Anmerkung) der Hauptgrund dafür ist, daß man mit dem alten Client an der Standardkonfiguration herumschrauben musste

Plugin Marke Eigenbau:

Wer einem fertigen Binary eines Drittanbieters nicht traut, kann den Quellcode auch selbst übersetzen:

https://github.com/prof7bit/TorChat

Quellcode auschecken:

Code:
git clone https://github.com/prof7bit/TorChat.git
Zum Übersetzen werden die Header für libpurple in Version 2.X ("libpurple-devel" unter openSUSE, unter Debian&Co. wahrscheinlich "libpurple-dev") und der FreePascal-Compiler "fpc" in Version 2.6.0 oder höher benötigt (bei openSUSE heisst das paket auch fpc und ist im Packman Repo).

Anschliessend "make purple" zum Übersetzen, das fertige Plugin findet sich unter bin/libpurpletorchat.so und kann anschliessend an den passenden Ort (siehe oben) kopiert werden (ein "make install" würde ich mir hier besser verkneifen).

Greetz,

RM
 
Status
Für weitere Antworten geschlossen.
Oben