April 2, 2020

How to use Zoom with a Sandbox

With Corona, video conferences are on the rise, and organizations tend to use Zoom. The problem is that Zoom shows more and more security holes, bad practices, and privacy-related problems.

Zoom has a version that runs in the browser, but in my experience, it runs much worse than the native application. As running the native application is a security and privacy risk, let's see how we can use Linux sandbox techniques to restrict what the Zoom client can access.

1) Use flatpak.
Flatpak uses a sandbox called bubblewrap that isolates it from most of your personal data. You can find Zoom on Flathub.

If you do not have flatpak, you could try to use the bubblewrap sandbox without flatpak or try using firejail, but for most people it is much easier to just use flatpak.

2) Use Flatseal to revoke access to data that Zoom does not need to be able to access before running Zoom the first time. You can remove access to all host files (filesystems=host and filesystems=home disabled) without any problems.

This already solves many security and privacy issues of Zoom.

The problem that still remains is that Zoom generates personalized identifiers by using your network card's unique hardware address.

3) Restricting Access to your network devices: Now Zoom is isolated from your private files, but when you already used Zoom and have a look at $HOME/.var/.var/app/us.zoom.Zoom/config/zoomus.conf you will notice that Zoom uses your MAC-Address as identifier in the line deviceID=XX:XX:XX:XX:XX:XX.

There is a way to protect against this when you really want Zoom not to know such unique identifiers by using network namespaces.

Our setup is based on this introduction to Linux network namespaces. We will need some additional routing for network access and a tool to allow normal users to run applications in a network namespace for running Zoom inside a private network namespace.

Setting up a network namespace for Zoom:

sudo ip netns add zoom # Create the namespace "zoom"
sudo ip link add veth0 type veth peer name veth1 # Create connected virtual interfaces
sudo ip link set veth1 netns zoom # Assign the second interface to the network namespace "zoom"

You can now verify that you only see the virtual interface by running ip netns zoom exec ip link show. This runs the command ip link show inside the namespace "zoom" and you should see a loopback interface "lo" and the virtual interface "veth1" inside the new namespace.

When running ip link show alone, you should see your usual host network interfaces and "veth0", but no device "veth1".

Next, we need to assign IPs and set up a default route inside the network namespace so that Zoom can reach its servers. We will use the net for the interfaces. When you already use this net, you need to choose another IP range.

# Activate the interface in the default namespace
sudo ip link set up veth0
sudo ip addr add dev veth0
# Activate the interface inside the zoom namespace
sudo ip netns exec zoom ip link set up veth1
sudo ip netns exec zoom ip addr add dev veth1
# Add a default route inside the namespace
sudo ip netns exec zoom ip route add default via
# Enable IP forwarding
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

Now we can communicate with the host outside of the zoom namespace and need to add routing into the internet. We use iptables with a NAT setup for this:

sudo iptables -P FORWARD -j DROP # Drop all packets that are not matched by another rule.
sudo iptables -I FORWARD -s -j ACCEPT # Forward packets for IPs from inside the namespace
sudo iptables -t nat -A POSTROUTING -s -j MASQUERADE # Use NAT for packets from the zoom network

To be able to use the namespace without root privileges you need to install netns-exec. This tool allows every user on the computer to run programs in another network namespace, so do not install it if this is a problem for you.

Now run netns-exec zoom IP link as a normal user to verify that you can execute programs in the network namespace and that you can only see the virtual network device.

When everything works, you can start using Zoom by running

netns-exec zoom flatpak run us.zoom.Zoom

Afterward, you can verify that zoomus.conf contains the virtual MAC address from the veth network interface instead of the unique MAC address of your network card.

Feedback If anything does not work for you, please leave a comment so that I can improve this article.

Kategorien: english Software Linux Sicherheit
Tagged: Zoom Flatpak network namespace netns Security Privacy

4 Kommentare

Sept. 8, 2018

Converse.js with prosody

Since the latest release (4.0.0), converse.js supports OMEMO. With OMEMO and MAM (server-side message archive to show older chatlogs), it seems to be now a really nice client for everyday usage.

But deploying it isn't as easy as one might think. Here a short summary of what I needed to do to get BOSH and HTTP file upload working together with an own prosody XMPP server.

By default the prosody BOSH (Jabber over HTTP) server listens on port 5280 and 5281 for unencrypted respectively TLS connections.
When converse.js is installed on a web server, the website at port 80 (HTTP) / 443 (HTTPS) is considered as another origin by the browser, so it will not allow access to the BOSH server.
The BOSH server can allow such an access by setting a cross-origin resource sharing header (CORS).

The problem is, that setting the header is not yet implemented in prosody.

To fix this, here is an easy patch for the net/http/server.lua file from prosody:

To allow access from any website, change the line

headers = { date = date_header, connection = response_conn_header };


headers = { date = date_header, connection = response_conn_header, 
            access_control_allow_origin = "*" };

This solves the problem to access the BOSH server, but HTTP file upload will still have problems.

HTTP file upload uses the PUT method on the server, with the new filename, which does not exist, yet.
A CORS-request by the browser before the upload results in an error 404 (File not found) and fails even when the correct header is set, so no upload is attempted.
This means the cross-origin header solution does not allow for working file transfers.

To solve the problem, we can use a reverse proxy to have the BOSH and HTTP-upload URLs on the same domain (and port) as the converse.js installation.
The patch for sending the cross-origin resource sharing header above is no longer needed with this solution, as everything will now run on the same domain and port.

For nginx, I use the following reverse proxy configuration for the vHost CONVERSE_DOMAIN at which converse.js is hosted:

location ^~ /http-bind {
    proxy_pass "https://PROSODY_SERVER:5281/http-bind";
    proxy_http_version 1.1;
    proxy_set_header Host JABBER_DOMAIN;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;
    tcp_nodelay on; 
# HTTP-Upload
location ^~ /upload {
    proxy_pass "https://PROSODY_SERVER:5281/upload";
    proxy_http_version 1.1;
    proxy_set_header Host JABBER_DOMAIN;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;
    tcp_nodelay on; 

where JABBER_DOMAIN needs to be the appropriate vHost in prosody, i.e. the part after the @ in the jabber IDs, and PROSODY_SERVER is the IP or hostname where nginx can access the prosody server.

In prosody, the following configuration is needed

# Consider internal non-https connections as external https connections
consider_bosh_secure = true;
# Allow requests from other domains than the @server part of the jabber IDs
cross_domain_bosh = true;
# Base URL used to generate HTTP-upload URLs
http_external_url = "https://CONVERSE_DOMAIN/"

This configuration makes prosody accept connections from nginx, even when the internal connection does not use HTTPS and sets the base URL which is used to construct URLs for file uploads to the external address of the reverse proxy.

You can now firewall the prosody HTTP-server, as BOSH and HTTP file upload should only need access to the nginx HTTP server.

Kategorien: Technik Software Tipps
Tagged: prosody converse.js converse nginx reverse proxy OMEMO MAM Jabber

0 Kommentare

Aug. 30, 2018

Program to blacklist artists on Spotify

Spotify seems not to allow to blacklist artists or songs by design (at least they reject the feature request in their forum), which means that these songs of these artists are added to radio streams even when you disliked them before.

But if you are using Mopidy (e.g. to use Spotify on a raspberry pi or just to have a nice web interface), you can use its MPD interface to remove blacklisted artists from the playlist as soon as they are added using this short python program:

#!/usr/bin/env python
# Licence: This code snippet is public domain

from mpd import MPDClient import time

blacklist = ["artist1", "artist2", "artist3"]

client = MPDClient() client.connect("localhost", 6600)

while True: time.sleep(10) for item in client.playlistinfo(): if item['artist'] in blacklist: client.deleteid(item['id'])

The program checks every 10 seconds if a song from a blacklisted artist in the playlist and then deletes it.

Kategorien: OpenSource Kurz bemerkt Software
Tagged: Spotify Songs music MPD Mopidy Blacklist

0 Kommentare

April 10, 2017

Technischer Datenschutz: Passwörter

Der wichtigeste Tipp für Passwörter ist: Sichere nicht erratbare Passwörter verwenden, für jede Seite ein anderes Passwort verwenden und einen Passwortmanager installieren um sich die Passwörter nicht merken zu müssen.

Warum Passwortmanager?

Viele Leute benutzen nur wenige Passwörter für alle Seiten die sie besuchen. Wird nur eine Seite davon gehackt, kann das Passwort auch auf allen anderen benutzt werden. Der Grund nur wenige Passwörter zu benutzen ist, dass es schwer ist sich viele (sichere) Passwörter zu merken.

Unsichere Passwörter sind selbst mit starker Verschlüsslung schnell gehackt und auch sichere Passwörter sind gefährdet, weil viele Seiten sie unverschlüsselt speichern.

Fatal ist, wenn gerade das E-Mailpasswort mit dem Passwort einer Seite übereinstimmt. Wird die Datenbank der Seite dann gehackt, hat der Hacker das Passwort und die E-Mailadresse und kann es direkt nutzen um fremde E-Mails zu lesen. Das ist besonders gefährlich, weil die meisten Seiten es erlauben das Passwort mit Hilfe der E-Mailadresse zurückzusetzen. Das heißt wer das E-Mailpasswort hat, kann sich Zugang zu fast allen Accounts verschaffen. Deswegen ist es eine gute Idee gerade für den E-Mailaccount ein besonders kompliziertes Passwort zu verwenden, das nirgendwo sonst verwendet wird.

Ein Passwortmanager hilft hier für jede Seite ein eigenes kompliziertes Passwort zu benutzen ohne es zu vergessen.

Im Browser eingebaute Passwortmanager sind eine gute Wahl

Der im Browser eingebaute Passwortmanager hat den Vorteil, dass er automatisch erkennt ob das Passwort zur Seite gehört. Hat man das Passwort auf eingespeichert wird es auf nicht eingefügt, wenn man es dort nicht neu eingibt. Damit hilft der Passwortmanager hier auch betrügerische Seiten zu erkennen.

Schließlich ist noch ein Vorteil, dass man keiner fremden Software vertrauen muss. Der Browser kann jedes eingegebene Passwort mitlesen, sodass man ihm sowieso vertrauen muss. Da ist das einspeichern der Passwörter im Browser nicht gefährlicher als das verwenden des Browsers selber. Bei externen Passwortmanagern sollte man gut darauf achten, ob sie von einer vertrauenswürdigen Firma kommen und ggf. ob die den Ruf hat unsichere Software herzustellen.

Es ist auf jeden Fall zu empfehlen für den Passwortmanager ein Masterpasswort zu verwenden, das beim ersten Passwort nach dem Start des Browsers eingegeben werden muss um den Passwort-Safe zu entsperren. Sonst kann jeder Computervirus direkt die ganze Passwortliste klauen.

Der Nachteil von in den Browsern eingebauten Passwortmanagern ist, dass sie meistens keine Funktion enthalten um für eine Seite ein sicheres Passwort zu generieren. Dazu muss also ein anderer Passwortgenerator verwendet werden.

Wie benutze ich die Passwortmanager der Browser?

Bei anderen Passwortmanagern ist es zu empfehlen auch die entsprechende Browserintegration zu installieren, außer man weiß genau was man tut.

Passwort synchronisieren: Segen oder Fluch?

Firefox bietet mit "Firefox Sync" eine Möglichkeit Browserdaten von mehreren Geräten auf dem gleichen Stand zu halten, unter anderem auch die gespeicherten Passwörter. Chrome ermöglicht das gleiche über den Googleaccount, wenn man sich im Browser damit einlogged.

Die Funktionen haben Vor- und Nachteile.

Der Vorteil ist, dass man überall die Passwörter hat und damit vermeidet einige vielleicht doch eher unsicher zu wählen, weil man sie häufig auf anderen Geräten braucht.

Der Nachteil ist, dass Passwörter die "in der Cloud" liegen auch bei Datenpannen der Dienste verloren werden können. Etwas das nur auf dem eigenen PC liegt ist ein überschaubares Risiko, Cloud hingegen ist ein modernes Wort für "Computer anderer Leute" ;-).

Sichere Passwörter

Die ganze Mühe ist natürlich immer noch nicht sicher, wenn man unsichere Passwörter benutzt. Daher lohnt es sich entweder Passwörter zu generieren (bei guten Funktionen dazu punkten vor allem die externen Manager) oder ein sicheres System zum finden von Passwörtern zu benutzen.

Der erste Tipp ist: Die Länge machts! Ein Buchstabe von A-Z macht 26 Passwörter, nimmt man A-Z und 0-9 sind es 36 mögliche Passwörter. Wenn man aber zwei Buchstaben von A-Z nimmt ergeben sich 676 mögliche Passwörter. Die Folgerung ist ganz klar: Lieber ein Passwort mit 16 Zeichen oder mehr mit wenig Zahlen und Sonderzeichen als ein 8 Zeichen Passwort mit so viel Zeichensalat dass es auch schwer zu merken ist.

Passwort? Warum keine Passphrase? Ein Passwort wie "K#(Ll$5]" ist schwer zu merken und schwierig zu tippen, gerade wenn man schnell blind tippen kann. Eine Passphrase wie "Wenn-lila-Hasen-abends-um-11-Kohlrabi-kochen" ist nicht nur sehr sicher, sondern auch einfach zu merken und schnell zu tippen. Und man hat sie jetzt schon im Gedächtnis. (Comic dazu[englisch]).

Wenn man sich einen solchen Satz komplett selber ausdenkt sollte man darauf achten, dass er "komisch" genug ist um nicht erraten zu werden. "Haenschen-klein-ging-allein-in-den-Wald-hinein" ist also nicht so gut geeignet, obwohl es gegenüber Hackern die einfach stumpf alle Buchstabenkombinationen durchprobieren trotzdem sehr sicher ist. Aber ein Mensch der die Methode kennt könnte auf die Idee kommen Zitate, Sprichwörter und Volkslieder einmal auszuprobieren und muss damit viel weniger Passwörter ausprobieren.

Eine sichere Passphrase: Diceware

Die Fantasie ist meistens nicht so kreativ, wie man denkt. Die Hasen oben kochen Kohlrabi. Lecker. Gummireifen wäre aber vielleicht besser, weil das kochen von Gemüse ja erraten werden könnte.

Also kann man doch ein System das einem zufällige aber merkbare Worte generiert nehmen. Eine weit verbreitete sichere Methode ist Diceware, bei der man mit einem Würfel und einer Wortliste die man runterladen kann sichere Passphrases generieren kann.

Sicher und leicht zu merken mit einem Reim

Eine weitere Idee ist, ein Passwort mit sechs Wörtern und Reim[englischer Artikel] zu verwenden. Die Idee dabei ist, dass sich auch ein langes Passwort mit einem Reim leicht merken lässt.

Passwortmanager? Oder doch offline?

Wer hat es noch nicht gehört: Passwörter bloß nie irgendwo aufschreiben!

Aber stimmt das? Der Zettel am Bildschirm ist sicher eine schlechte Idee und der unter der Tastatur nur wenig besser. Aber aufschreiben allgemein ist nicht immer eine schlechte Idee.

Ein aufgeschriebenes Passwort kann nicht durch einen Computervirus geklaut werden, auch der eifersüchtige Partner kann nicht den Passwortmanager (ohne Masterpasswort) auf dem PC nutzen um heimlich E-Mails zu lesen. Man muss das Passwort nur an einer Stelle verwahren, wo es sicher ist.

Eine Möglichkeit ist hier ein Zettel im Portemonaie. Warum dort? Wenn einem der Geldbeutel geklaut wird, hat man sowieso ein Problem und viel zu tun. Die Bankkarte muss gesperrt werden. Und die Kreditkarte. Und vielleicht muss man den Ausweis neu beantragen. Da ist das ändern aller Passwörter nur ein weiterer Schritt den Schaden zu beseitigen, wenn man schon einmal dabei ist.

Und das Schützen seines Portemonaies ist etwas, das jeder versteht. Egal ob der Computerfreak oder nur gelegentlicher Nutzer, wie man vermeidet wertvolles Papier zu verlieren hat man von klein auf gelernt und ist meistens ziemlich gut darin.

Dafür sollte man natürlich gegebenenfalls eine Liste der Accounts (ohne Passwörter) noch irgendwo anders aufgeschrieben haben. Und das E-Mailpasswort sollte nie aufgeschrieben oder abgespeichert sein, weil es wie oben schon erwähnt der Generalschlüssel für alle anderen Accounts ist, der zum Beispiel hier benutzt wird um die verlorenen Passwörter zurückzusetzen.

Kategorien: Datenschutz Sicherheit Software
Tagged: Passwörter Passwortmanager technischer Datenschutz

0 Kommentare

Jan. 20, 2017

WhatsApp Lücke, Alternativen und Unabhängigkeit

Momentan gibt es Aufregung um eine Sicherheitslücke in Whatsapp, die vielleicht auch gar keine ist. Während viele zum Wechsel auf verschiedene andere Messenger raten, gibt es jetzt einige Stimmen, welche die "Panikmache" als kontraproduktiv betrachten weil sie befürchten, dass die Nutzer auf weniger sichere Apps wechseln könnten. Das ist insofern ungünstig, da WhatsApp mit der Lücke ebenfalls als unsicher angesehen werden muss.

Dazu hier nun eine Einschätzung des Fehlers, warum es allgemein sinnvoll ist von Whatsapp weg zu kommen, was andere Kryptomessenger taugen und schließlich eine Empfehlung für eine bessere Alternative.

(Für die Eiligen: Die Empfehlung ist der Wechsel auf XMPP mit Conversations auf Android, ChatSecure auf dem iPhone und gajim auf dem PC).

Was ist der Whatsapp Bug und was bedeutet das für die Sicherheit?

Der WhatsApp Bug, großspurig auch Backdoor genannt, besteht darin, dass WhatsApp es schwer macht zu bemerken, wenn sich jemand unerlaubt in die Verbindung einklinkt. In der Standardeinstellung bekommt man in einem solchem Fall keine Nachricht. Wenn in den Einstellungen "Sicherheits-Benachrichtigungen anzeigen" aktiviert ist, gibt es einen eher unscheinbaren Hinweis "Die Sicherheitsnummer von X hat sich geändert". Dazu kommt, dass Nachrichten, die man geschrieben hat während das Handy keinen Empfang hatte, gesendet werden bevor man überhaupt die Chance hat diese Benachrichtigung zu sehen.

Um die Gefahr kurz einzuordnen: Wenn sich die "Sicherheitsnummer" einer Webseite ändert zeigt ein Webbrowser die Seite gar nicht mehr an, sondern nur eine seitenfüllende Warnung, dass man wahrscheinlich auf einer Betrüger-Webseite ist.
Whatsapp zeigt in der Situation einen Hinweis an, der völlig harmlos scheint, tatsächlich aber bedeutet dass ab jetzt eventuell jemand mitliest.

Die WhatsApp Sicherheitswarnung: Ab jetzt liest eventuell jemand mit

Wer kann die Lücke ausnutzen?

Wie die meisten Messenger ist die Whatsapp-Verbindung selber sowieso dagegen geschützt, dass jemand nur durch Anzapfen der Leitung mitelesen kann. Eine Ende-zu-Ende Verschlüsslung, soll weiterhin sicherstellen, dass auch der Betreiber nicht mitlesen kann. Genau dabei sorgt das Verhalten von WhatsApp aber dafür, dass es in der Praxis möglich ist, dass Facebook als Anbieter von WhatsApp mitliest. Das entsprechende Szenario sieht wie folgt aus:

WhatsApp möchte selber mitlesen oder bekommt von einer Regierung die Verpflichtung Daten abzufangen, was sie nicht ablehnen können und niemandem mitteilen dürfen. Daraufhin erstellt sich WhatsApp selber einen Account und teilt dem Nutzer und seinem Gesprächspartner jeweils mit, dass die Sicherheitsnummer des Fakeaccounts, die des jeweils anderen wäre, welche sich geändert hat. Wenn die Nutzer jetzt schreiben, erreichen die Nachrichten den falschen Account. Das fällt aber nicht auf, da dieser sie nicht nur mitliest, sondern auch direkt an den richtigen Account weiterleitet.

Das Statement von Whatsapp zu dem Problem ist, dass es kein Fehler sei, sondern eine Vereinfachung für Nutzer um sie nicht damit zu überfordern, dass sie prüfen müssen ob sich die Sicherheitsnummer geändert hat weil der Gesprächspartner ein neues Handy hat oder weil jemand die Verbindung unterbricht um mitzulesen.

Nicht zuletzt ist noch zu erwähnen, dass WhatsApp seinen Quelltext geheim hält und damit sowieso niemand sicher sagen kann, ob es nicht einen geheimen "Schick mir alle Chats des Nutzers" Befehl gibt. Eine echte Sicherheit hat man hier nur bei Programmen, die ihren vollen Code zur Verfügung stellen.

Was kann ich tun um mich bei WhatsApp zu schützen?

Das Wichtigte ist in den Einstellungen zu aktivieren, dass man benachrichtigt wird, wenn sich die Sicherheitsnummer des Gesprächspartners ändert. Wenn man dann diese Meldung erhält, dann darf man sie nicht ignorieren, sondern muss die Verbindung als unsicher einstufen, bis man die Nummer des anderen neu bestätigt hat.

Um zu vermeiden, dass Nachrichten geschickt werden bevor man sieht, dass sich die Nummer geändert hat kann man darauf achten nur dann Nachrichten zu schicken, wenn das Handy eine Internetverbindung hat. Hier geht es aber tatsächlich nur um die Nachrichten die zwischen Verlust des Empfangs und dem Sehen der Sicherheitswarnung nachdem der Empfang wieder vorhanden ist geschrieben wurden.

Andere Messenger die häufig empfohlen werden

Hier kurz ein paar Worte zu anderen Messengern, die häufig als Alternative empfohlen werden.

Das Konzept des Messengers ist gut: Mit einem Ampel-System wird angezeigt wie genau man die Sicherheitsnummer seiner Kontakte schon geprüft hat und es existiert kein Zwang den Chataccount mit der Telefonnummer zu verknüpfen. Die benutzte Verschlüssung hat offenen Quellcode, aber der Rest des Programms ist nicht offen.
Signal hat einen komplett offenen Quellcode, funktioniert aber nicht ohne nicht offene Dienste von Google bzw. Apple. Das kann für Backdoors ausgenutzt werden. Versionen die das Problem beseitigen sind von den Entwicklern nicht erwünscht.
Telegram hat seine Verschlüsslungsfunktionen mit fragwürdiger Qualität selber gebaut und es wurde auch schon mehrfach gezeigt, dass sie unsicher sind.

Trotzdem haben alle drei und auch die meisten anderen Alternativen das Problem, dass sie von einem Anbieter abhängig sind.

Abhängigkeit vom Anbieter

Was in der Diskussion um den Lieblingsmessenger sehr häufig untergeht ist, dass die meisten Apps von einem einzelnen Anbieter abhängig sind.

Wenn Whatsapp seine Verschlüsslung wieder abschafft hat man keine Möglichkeit, außer es zu akzeptieren oder alle Kontakte zu überzeugen mit zu einer anderen App umzuziehen. Wenn Signal plötzlich eine viel zu hohe monatliche Gebühr haben möchte, wird man wohl oder übel zahlen müssen. Wenn Telegram aufhört ihren Server anzubieten ist man von heute auf morgen nicht mehr erreichbar.

Die Probleme betreffen nicht nur die drei Apps, sondern fast alle Messenger. Daher braucht es eine dezentrale Lösung, die nicht von einer einzelnen Firma abhängig ist.

Dezentral heißt, dass es wie E-Mail funktioniert. Von einer Googlemail-Adresse aus lassen sich GMX-Nutzer erreichen und wenn GMX zu macht muss jemand der seine Adresse bei posteo hat nur die neuen Adressen seiner Kontakte bei GMX erfahren und nicht das ganze Adressbuch abklappern.

Für einen Messenger heißt das:

  • Unabhängigkeit von einem Anbieter. Es gibt mehr als einen Service den man mit der gleichen App nutzen kann.
  • Unabhängigkeit von den Anbietern anderer. Jeder kann sich einen Dienst aussuchen und Leute bei anderen Diensten erreichen.
  • Unabhängigkeit von einem Programm. Jeder kann sich ein Programm aussuchen mit dem er chattet ohne dass andere das gleiche benutzen müssen.

Für die Technikbegeisterten kommt noch der Punkt dazu, dass sie die Möglichkeit haben für sich und ihre Freunde selber einen solchen Dienst zu betreiben und in den Quelltext von den Programmen, Apps und auch Serverdiensten reinsehen zu können.

Die Empfehlung: Jabber (XMPP)

Eine solches Chatsystem gibt es schon und es existiert sogar länger als WhatsApp schon: Jabber.

XMPP ist dabei das verwendete "Protokoll", also die Art wie verschiedene Jabberprogramme miteinander Nachrichten austauschen.

Unabhängigkeit vom Anbieter: Es gibt eine lange Liste von kostenlos nutzbaren XMPP Servern. Dazu gibt es auch eine Liste, welche optionalen Funktionen von welchem Anbieter unterstützt werden. Technikfreaks können selber einen betreiben.

Unabhängigkeit von den Anbietern anderer: Eine XMPP-Adresse sieht aus wie eine E-Mailadresse und enthält damit den Anbieter hinter dem @ Zeichen, sodass man ihn nicht getrennt mitteilen muss. Einfach die Adresse zur Kontaktliste hinzufügen und loschatten.

Unabhängigkeit von einem Programm: Es gibt viele verschiedene XMPP Programme und Apps. Jedes davon kann mit allen anderen chatten, ohne dass man überhaupt wissen muss, welche App die anderen benutzen.

Die Programme und Apps dazu

Zunächst muss man sich einen Server aussuchen aus einer der Listen (oder durch eigene Suche oder Empfehlung von jemand anders):

Kriterien können dabei sein:

  • Der Servername, der Teil der Adresse wird als meinnickname@servername,
  • die Sicherheit (siehe insbesondere den ersten Link),
  • die unterstützten zusätzlichen Funktionn (siehe zweiter Link)
  • und ob der Nickname auf dem ausgesuchten Server noch nicht vergeben ist.

In den meisten Programmen wird bei der Einrichtung gefragt ob man einen Account anlegen will und man kann sich eine Adresse meinnickname@servername einfach ausdenken, wobei servername die Adresse von einem der Anbieter aus den Listen ist. Ist die Adresse schon vergeben, bekommt man eine Meldung und kann sich eine andere aussuchen.

Nach dem Server muss man sich ein Programm aussuchen. Wie erwähnt gibt es viele Programme und Apps aus denen man sich eine aussuchen kann. Es lohnt sich auch sich verschiedene Apps anzusehen, welche einem am besten gefällt.

Bei der Auswahl der Programme sollte man darauf achten, dass diese auch Verschlüsslung unterstützen. Das erkennt man an den Funktionen "OMEMO" oder "OTR", wobei OMEMO die bessere Technik ist.

Hier sind meine Empfehlungen:

Für Android ist Conversations eine sehr gute App.

Auf dem PC ist gajim zu empfehlen. Hier muss "OMEMO" noch in der Liste der Plugins aktiviert werden.

Für iPhone oder iPad empfehle ich ChatSecure, was seit kurzem auch OMEMO kann und damit eine moderne Verschlüsslung hat.

Hinweis: Bei der Einrichtung von Conversations wird einem vorgeschlagen, ob man den Dienst benutzen möchte. Dieser kostet nach den ersten 6 Monaten 8 Euro pro Jahr, hat dafür aber auch Unterstützung für alle optionalen Funktionen. Wer einen kostenlosen Dienst möchte kann beim Einrichten selber einen Server aus den Listen oben angeben, statt den vorgeschlagenen Server zu verwenden.

Anmerkungen, Anregungen, Kommentare?

Ich habe im Text an einigen Stellen absichtlich die von Whatsapp vereinfachten Bezeichnungen für ein paar Dinge benutzt, damit der Text für Nutzer von WhatsApp verständlicher wird. Ich bitte die Technikfreaks das zu entschuldigen ;-).

Ergänzungen willkommen, die E-Mailadresse steht rechts in der Seitenleiste. Ich werde den Artikel ggf. noch noch um weitere Dinge zum Whatsapp-Problem erweitern, aber die wichtigste Empfehlung bleibt:

Nutzt XMPP, denn es ist eins der wenigen Chatsysteme bei denen ihr euch nicht von einem Anbieter abhängig macht.

Kategorien: Software Datenschutz Sicherheit OpenSource Verschlüsslung
Tagged: gajim chatSecure Conversations WhatsApp XMPP Jabber Telegram Threema Signal SignalApp Sicherheitslücke Backdoor Bug

0 Kommentare

März 10, 2016

GNUSocial / Quitter and choosing a server

When twitter tried to make itself unpopular again (last time they upset their users with the prospect to allow 10,000 character tweets) by introducing an algorithmic timeline, the Hashtag #RIPTwitter started to trend and people started looking at alternatives again.

One of the alternatives is GNU social, often called Quitter after a popular GNU social server. Here is an article how to get started, once you decided for a server.

GNU social is a federated system like Jabber/XMPP, which means there is no central server. Each user can choose from a lot of servers, but reach people on other servers. This is a great thing, as everybody can run his own server and having more different servers adds redundancy and diversity. No one can control or censor the whole network.

On the other hand, without a central website, you have to choose a server you want to use for your account. Which server should you use? The one with the nicest name (i.e. quitter has a nice ring for twitter users), the one with the most users, or should you use some other criteria?

Of course, self hosting may be an option for some of us, but others cannot or do not want to host an own server. I host most of my stuff by myself, but unlike an e-mail server it would be hard to move to an hosted service, when i decide i do not want to host my instance on my own at a later time. So i started to think about which criteria are useful to choose an GNUSocial server for my account.

Some of the main aspects include:

  • Reliability: You do not want your E-Mails to be lost, probably you do not want your queets (messages on GNUSocial) to be lost as well.
  • Privacy and Security: Neither should the data be lost on a harddrive failure, nor do you want your private messages or password in a leak.
  • Moderation: On the big sites like Twitter there are sometimes problems with harassment. So when a new social network grows, it will need some moderation to stop people from harassing others. On the other hand could too much moderation hurt the idea of an free alternative, which may even provide more freedom than the commercial ones.

As i asked myself these questions, i thought others may ask themself the same. So i decided to survey some of the server administrators about these things. I sent a mail with some questions to these instances (taken from this list of instances):

(I will link them to follow up posts, as i get answers and have time to blog them)

The Questions:

Gnusocial configuration

- How many characters per queet are possible on your instance? - Which plugins are installed on your instance? - Do you keep up with the most recent version or are you testing new versions for a while before using them?

Users, Stability & Money ========================

Users would like a service, which lasts forever and runs fast and reliable. Can you tell something about how your service tries to achieve this?

- How many users does your service have? - For how long does it exist? - How do you pay for the service? Do you get enough donations, do you have sponsors or do you pay for it yourself? - What do you need to pay for hardware / hosting? - Are there costs for moderating / maintaining the site? - How do you want to ensure, the service will last (That it can be payed for and there are enough people, who keep it running)? - How can your users support you? Do you accept donations? Are there other ways to say thank you, like a amazon wishlist or flattr?

Abuse Handling ==============

The larger the site, the more abusive users will come. How do you handle the moderation on your site?

- How can users report abusive Queets / private Messages? - How fast can the moderation handle such requests? - Are you actively moderating the site or just handling reports?

- Do you have specific policies how to react on which type of incident? - Is there a page with the rules for your instance or do you rely on common sense and notify users, when they are going too far?

- Can you tell something about the possible consequences for breaking the rules? - Do you notify authorities for serious incidents or do you just ban the users and let the victim report it to the police themself?

Moderation ==========

Moderation to prevent abuse is important, but too much moderation can hurt a site. Moderating legal but possibly offensive posts may create chilling effects, where people censor themself to avoid being moderated or even banned for unpopular opinions.

- When do you delete possibly offensive tweets? - When do you warn users? - When do you temporarily ban users? - When do you permanently ban users?

- Do your moderators discuss decisions among themselfes or are they acting on their own? - Do you discuss the moderation with the users? - How do you avoid, that moderators are biased to their own opinion in the discussion, which they are moderating?

- Do you think your users need to think about being moderated before writing a queet? - Do you have any rules, which require the users to think beyond common sense before posting, like avoiding tv spoilers?

- Where does inacceptable behaviour start on your instance? (bad opinions expressed in a serious manner / flame wars / trolling / insults / haressment / serious threats) - What are your moderators doing with reports for queets in heated discussions, which are strictly speaking not breaking a rule, but offending other users in the discussion?

- How are you moderating queets from other gnusocial instances?

Backup & Privacy ================

Some instances have plugins for backup, others don't have this option. What options do you provide for your users? How do you handle the privacy of your users?

- Can your users export their data (queets, private messages)? - Is there a way to import this data or data from other gnusocial instances? - Do you have backups for your server, i.e. in case of hardware failure? - Can your users delete their account? - How long does it take for the data to be deleted completely (i.e. disappear from any backups)? - Do you retain any data after deletion, i.e. to as proof for abusive behaviour, to enable recovery of the deleted account or to prevent others from reregistering the account name? - Do you ever read private messages? Under which circumstances would you do so and would you inform the users afterwards?

Security ========

- How are you protecting the data (i.e. is the server hard disk encrypted)? - Does your site use HTTPS? - Did you configure more security options like a HSTS header?

Legal Issues ============

It is pretty common that people post copyrighted images on social media, which can get them into trouble. A smaller site may have problems to get accused of the violation itself instead of the user. How do you handle copyrighted content and law enforcement requests?

- Do you inform your users about rules for posting copyrighted images / texts? - Do you try to actively moderate copyright violations or do you take down content only on request? - What would you do, when you receive a DMCA notice or a similiar request in your country?

- What do you do about images violating personality rights of people in the image? - How would you handle requests for the EU "right to be forgotten" law? - Did you think about getting a national security letter?

Technical Information =====================

Can you tell something about how you run the website?

- What hardware are you using? - What software (i.e. operation system, etc.) are you using? - Does the server just run gnusocial or are you using it for other things as well? - Is your server very busy with the instance?

Final thoughts ==============

- Why should users choose your instance? - Do you want to tell anything else?

Kategorien: OpenSource Internet Medien Software english
Tagged: GNUSocial Quitter StatusNet twitter RIPTwitter

0 Kommentare

Dez. 23, 2015

ffprofile: Firefox für Privatssphäre optimieren

Der Artikel Firefox für Privatsphäre tunen ist schon eine Weile her, ein Artikel "Firefox für Privatsphäre tunen II" und "Firefox Grundeinstellungen für ein neues Profil" liegen schon länger in den Entwürfen und Mozilla baut immer mehr Funktionen ein, deren Standardeinstellungen nicht im Interesse der Nutzer liegen.

Tatsächlich hätte man früher einiges davon Spyware genannt und dafür den Browser gewechselt, aber im Zeitalter von Apps die erst einmal das Adressbuch und den Kalender auslesen obwohl sie damit nichts zu tun haben verschieben sich die Maßstäbe anscheinend. Wer trotzdem noch Wert auf seine Privatsphäre legt muss immer mehr Einstellungen ändern wenn er Firefox neu installiert hat.

Da es immer schwieriger wird die vielen privatsphärefeindlichen Einstellungen in einem neuen Profil komplett zu deaktivieren ohne etwas zu vergessen, gibt es jetzt eine Webseite die dabei hilft: stellt eine Reihe von Fragen mit sinnvollen Standardeinstellungen und generiert dann ein frisches Profil.

Das Profil enthält dann die passenden Einstellungen, dass Firefox keine Daten nach Hause schickt und auch Webseiten es schwerer haben einen zu verfolgen. Außerdem können weitere störendere Funktionen wie die Werbung auf neuen Tabs schon vor dem ersten Start von Firefox deaktiviert werden.

Die Webseite ist ein Opensource-Projekt auf Github und Beiträge sind willkommen, sowohl in Form von Issues zu neuen Trackingfunktionen als auch Pull-Requests für Codepatches. So bleibt die Seite länger aktuell als ein Blogartikel der schon bei der nächsten Firefoxversion wieder veraltet sein könnte.

Kategorien: Software Datenschutz OpenSource Überwachung
Tagged: Firefox Browser Tracking ffprofile Profil Einstellungen Datenschutz Github Tunen Grundeinstellungen Mozilla

0 Kommentare

Aug. 11, 2015

Adblock-Gegner mit einem Satz widerlegt

Einige Werber klagen wieder gegen Adblock. Schön dabei ist, dass sich ihre Argumentation mit einem Satz zerlegen lässt:

So würde die Werbung bei Einsatz von Adblock Plus erst gar nicht ausgeliefert. Für das Ausfiltern sei nicht der Nutzer, sondern die Autoren der Software verantwortlich. "Das Produkt kommt beim Kunden bereits beschädigt an", erklärte der Anwalt.

Passende Antwort: "Ich beauftrage jemanden das Produkt für mich in Empfang zu nehmen und zu beschädigen, weil ich es lieber beschädigt nutzen möchte."

Üblicherweise ist es der Kunde, der ein Interesse daran hat, dass das Produkt unbeschädigt ist. Hat Axel-Springer es statt der Leser, kommt man wieder zu der überstrapazierten Frage: "Bin ich der Kunde oder das Produkt?"

Kategorien: Recht Software
Tagged: Adblock Gericht Prozess Axel-Springer Verbot

0 Kommentare

Aug. 9, 2015

Windows 10 Privacy: Weitergabe privater E-Mails

Kleiner Ausschnitt aus der Microsoft Datenschutzbestimmung(Stand 09.08.2015):

Schließlich werden wir auf personenbezogene Daten zugreifen, diese offenbaren und bewahren, einschließlich privater Inhalte (wie der Inhalt Ihrer E-Mails und andere private Mitteilungen oder Dateien in privaten Ordnern), wenn wir in gutem Glauben sind, dass dies notwendig ist, um [...]*
(Abschnitt: "Gründe, Warum Wir Personenbezogene Daten Teilen")

Der Abschnitt ist nur ein Beispiel. In den "Datenschutzbestimmungen" sind noch weitere weitreichende Rechte für Microsoft definiert.

* Hier folgen verschiedene Rechtfertigungen, auf die ich nicht weiter eingehe, da ein Betriebssystemhersteller unabhängig von der Begründung niemals private Daten zugreifen und offenbahren sollte, egal in welchem Glauben er ist.

Kategorien: Software Windows Datenpanne Datenschutz
Tagged: Windows 10 Win10 Datenschutz Privacy E-Mails Datenschutzbestimmungen

0 Kommentare

Aug. 8, 2015

KDE 5: Kurz ausprobiert

Weil es ja schon länger draußen ist und schon in Version 5.3.x verfügbar (Debian stretch) habe ich einmal KDE5* ausprobiert. Leider scheint es noch kein Ersatz zu sein für das inzwischen sehr stabil laufende KDE4.

Der Test wurde mit einem Debian Stretch (Testing Release, Stand 08.08.2015) durchgeführt, welches noch nicht den Anspruch hat fehlerfrei zu sein, aber eine KDE Version benutzt die vom KDE-Projekt als stabil freigegeben wurde.

Ein paar Kritikpunkte gesammelt:

  • Die Unterstützung für vertikale Panels ist wieder schlechter geworden. Zum Beispiel die digitale Uhr skaliert mit und zwar immer genau so, dass das Datum zu "08.08..." abgekürzt wird.
  • Compositing ist instabiler. Es gibt häufiger schwarze Fenster, die erst durch eine Größenänderung wieder ihren Inhalt anzeigen.
  • Mit allen Kombinationen von Font- und WM-Einstellungen war es mir nicht möglich einzustellen dass die Schrift in den Titelzeilen nicht verwaschen ist.
  • KDE 5 unterstützt keine Standard X11-Trayicons mehr, sondern verlangt, dass sich die Programme an einen neuen Standard halten. Selbst Programme wie pidgin verwenden diesen noch nicht. Empfohlener Workaround: Ein anderes Programm für das Systray nutzen.
  • Wenn man die Buttons in der Titelleiste neu anordnen will gibt es kein Abstandhalter-Element mehr.
  • Fensterdekorationen konfigurieren ist allgemein aufwendig, weil die neuen Einstellungen nur für neue Fenster gelten. Andersherum hat man dann teilweise auch 10 Fenster mit unterschiedlichen Titelleisten offen.
  • UI-Funktionen wurden inkompatibel geändert, so lässt sich per Mittelklick auf ein Programm Icon im Icon-only-Taskmanager keine neue Instanz mehr öffnen, sondern jetzt ist Shift-Klick nötig. Dazu kommt, dass der gewohnte Mittelklick dann eine Notiz mit dem Inhalt der Zwischenablage im Panel erzeugt.
  • Die gängige Autostart-Funktionen wurde entfernt, Autostart geht nur noch über .desktop Dateien in .config/autostart, statt per Symlinks auf Programme und Shellscripten in .kde/Autostart
  • Die (Icon-only-)Taskleiste hat deutlich weniger Einstellmöglichkeiten als unter KDE4
  • Transparenz für Panels in Plasma-Themes scheint nicht mehr zu funktionieren.
  • Das Panel hat einen Schatteneffekt, der über maximierten Fenstern angezeigt wird.

Schließlich kann man noch hinzufügen, dass keine Migration der Einstellungen von KDE 4 auf KDE 5 stattgefunden hat. Von einer löblischen Ausnahme abgesehen: Der Inhalt von KWallet (Passwortmanager) wurde automatisch importiert.

Das heißt nicht, dass alles schlecht ist. Im Gegenteil, es bringt einige gute Neuerungen, auf die ich hier nur nicht entsprechend eingehen kann, da ich mich entschieden habe es noch nicht zu nutzen aufgrund der verschiedenen Bugs und mich daher nicht lange mit den neuen Features auseinandersetzen konnte.

Fazit: KDE 5 Ist zwar schon ganz nett, hat aber noch einige nervende kleinere Bugs und es fehlt einiges um es so wie (mein) KDE 4 zu konfigurieren. Ich bleibe erst einmal bei KDE 4.

* Offizieller Name: "KDE Frameworks 5". Trotzdem sagt jeder "KDE 5".

Kategorien: OpenSource Software
Tagged: KDE KDE4 KDE5

0 Kommentare