Archiv des Autors: Jörg Kastning

Visualisierung von Umweltdaten

In dieser Fortsetzung des Artikels „Überwachung von Temperatur und Luftfeuchtigkeit mit dem SHT21“ kümmern wir uns um die Visualisierung der gemessenen Daten.

Um die Messdaten auf dem Pi in einem Webbrowser anzeigen zu können, muss zuerst ein Webserver auf dem Pi installiert werden. Ich habe mich für lighttpd[1. http://www.lighttpd.net/] entschieden, da dieser besonders wenig Systemressourcen benötigt. Außer dem Webserver selbst installiere ich noch PHP und aktiviere FastCGI.

sudo apt-get install lighttpd php5-cgi
sudo adduser pi www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www
sudo lighty-enable-mod fastcgi
sudo /etc/init.d/lighttpd force-reload

Das DocumentRoot des Lighttpd ist /var/www. Mit obigen Code haben wir auch gleich die Benutzerrechte korrekt gesetzt.

An das Ende der Datei /etc/lighttpd/lighttpd.conf müssen wir noch den folgenden Code einfügen:

# enable PHP and FastCGI
fastcgi.server = (".php" => ((
        "bin-path" => "/usr/bin/php-cgi",
        "socket" => "/tmp/php.socket"
        )))

Im Anschluss muss der Webserver einmal neugestartet werden.

sudo service lighttpd restart

Jetzt kopieren wir den Inhalt des Ordners Raspi-SHT21-V3_0_0/www in das DocumentRoot /var/www/. Zur grafischen Darstellung unserer Messdaten entpacken wir noch die Javascript Libary[2. https://github.com/flot/flot/archive/v0.7.zip] von www.flotcharts.org[3. http://www.flotcharts.org/] in das Verzeichnis /var/www/js/. Wichtig: Nehmt die Version 0.7 von GitHub. Mit der Version 0.8.1 werden die Graphen nicht angezeigt.

Damit unsere Webanwendung die Daten aus unserer Datei sht21-data.csv auslesen kann, muss der Pfad zu dieser Datei noch in der index.php angepasst werden. Es geht aber auch noch etwas einfacher. Ich habe statt dessen einfach einen Symlink im DocumentRoot erstellt, welcher auf die Datei zeigt.

ln -s ~/Raspi-SHT21-V3_0_0/sht21-data.csv sht21-data.csv

Damit haben wir alles was wir brauchen und können unsere Umweltdaten im Browser betrachten.

raspi webapplication

Browseransicht

Alle Ziele dieses kleinen Weekend-Projects wurden erreicht und wir können nun Temperatur und Luftfeuchtigkeit im Serverraum überwachen. Mein Kollege freut sich bestimmt schon, sich noch ein paar Gedanken zur Integration in Icinga zu machen.[4. http://www.icinga.org/] ;-)

Viel Spaß beim Nachbau.

Überwachung von Temperatur und Luftfeuchtigkeit mit dem SHT21

Im Artikel „Konzept zur Überwachung von Temperatur und Luftfeuchtigkeit“ habe ich Überlegungen angestellt, um die Temperatur und die Luftfeuchtigkeit in einem Serverraum mit Hilfe des Raspberry Pi zu überwachen. In diesem Artikel geht es nun zur Sache.

Voraussetzung für das weitere Vorgehen ist ein RaspPi, welcher in das Netzwerk integriert ist und auf den wir mittels SSH zugreifen können.

Im Vorfeld habe ich in einigen Internetforen recherchiert, um einen geeigneten Sensor für den Pi zu finden. Mir ist wichtig, dass ich nur einen Sensor benötige, um sowohl die Temperatur als auch die Luftfeuchtigkeit messen zu können. Schließlich habe ich mich für den SHT21 entschieden, welchen es bereits konfektioniert z.B. im Online-Shop von emsystech gibt.

Beim Anschluss des SHT21 wird der I2C-Bus des Sensors mit dem PIN 1 des Pi verbunden.

Die Software, um den Sensor auszulesen kann von der Seite des Herstellers heruntergeladen werden. Die in diesem Tutorial verwendete Version kann am Ende dieses Artikels heruntergeladen werden. Inzwischen wird die Software auf GitHub gepflegt. In der dortigen README.md sind die nötigen Informationen enthalten, um die Software zu installieren und den Raspi-SHT21 in Betrieb zu nehmen.

Die Informationen im weiteren Verlauf dieses Artikels sind veraltet und sollten nicht mehr für neue Installationen genutzt werden. Ich lasse sie online, um bereits bestehende, ältere Installationen nachvollziehen zu können.

Das Archiv wird im Home-Verzeichnis des Pi platziert und dort entpackt.

pi@jk-raspberrypi ~ $ ls -lh
insgesamt 44K
drwxr-xr-x 2 pi pi 4,0K Nov 13 21:41 Desktop
-rw-r--r-- 1 pi pi 5,7K Feb  3  2013 ocr_pi.png
drwxrwxr-x 2 pi pi 4,0K Mär 10  2013 python_games
-rw-r--r-- 1 pi pi  26K Jul  5 09:24 Raspi-SHT21-V3_0_0.zip
pi@jk-raspberrypi ~ $ unzip Raspi-SHT21-V3_0_0.zip 
Archive:  Raspi-SHT21-V3_0_0.zip
   creating: Raspi-SHT21-V3_0_0/
  inflating: Raspi-SHT21-V3_0_0/function-cosm-push.sh  
  inflating: Raspi-SHT21-V3_0_0/function-ftp-upload.sh  
  inflating: Raspi-SHT21-V3_0_0/sht21  
  inflating: Raspi-SHT21-V3_0_0/sht21.sh  
   creating: Raspi-SHT21-V3_0_0/source/
  inflating: Raspi-SHT21-V3_0_0/source/buildrun.sh  
  inflating: Raspi-SHT21-V3_0_0/source/i2c.c  
  inflating: Raspi-SHT21-V3_0_0/source/i2c.h  
  inflating: Raspi-SHT21-V3_0_0/source/main.c  
  inflating: Raspi-SHT21-V3_0_0/source/makefile  
  inflating: Raspi-SHT21-V3_0_0/source/raspi.c  
  inflating: Raspi-SHT21-V3_0_0/source/raspi.h  
  inflating: Raspi-SHT21-V3_0_0/source/sht21  
  inflating: Raspi-SHT21-V3_0_0/source/sht21.c  
  inflating: Raspi-SHT21-V3_0_0/source/sht21.h  
  inflating: Raspi-SHT21-V3_0_0/source/std_c.h  
  inflating: Raspi-SHT21-V3_0_0/start-sht21-service.sh  
  inflating: Raspi-SHT21-V3_0_0/stop-sht21-service.sh  
   creating: Raspi-SHT21-V3_0_0/www/
  inflating: Raspi-SHT21-V3_0_0/www/index.php  
   creating: Raspi-SHT21-V3_0_0/www/js/
  inflating: Raspi-SHT21-V3_0_0/www/layout.css  
pi@jk-raspberrypi ~ $

Die Dateien sht21 und sht21.sh müssen noch ausführbar gemacht werden. Z.B. sudo chmod 755 sht21.

Bevor das Programm ausgeführt werden kann, muss noch der I2C-Treiber aktiviert werden. Hierzu befolgen wir diese 5-Schritt-Anleitung.

Nach dem Neustart können wir die Sensorwerte mit dem Programm sht21 abfragen. Je nachdem mit welchem Parameter man das Programm aufruft wird die Ausgabe unterschiedlich formatiert:

pi@jk-raspberrypi ~/Raspi-SHT21-V3_0_0 $ ./sht21 S
21.5	43
pi@jk-raspberrypi ~/Raspi-SHT21-V3_0_0 $ ./sht21 L
temperature=21.5
humidity=43
pi@jk-raspberrypi ~/Raspi-SHT21-V3_0_0 $ ./sht21 C
Temperature,21.5
Humidity,43
pi@jk-raspberrypi ~/Raspi-SHT21-V3_0_0 $ ./sht21
Raspi-SHT21 V3.0.0 by Martin Steppuhn (www.emsystech.de) [Nov 19 2012 23:35:05]
Options:
   S : [20.0 99]
   L : [temperature=20.0][humidity=99]
   C : [Temperature,20,0][Humidity,99]
RaspberryHwRevision=2
0	21.5	43
1	21.5	43
2	21.5	43
3	21.5	43
4	21.5	43

Damit haben wir zwei weitere Ziele unseres kleinen Projekts erreicht.

Dank des RaspberryPi können wir nun die Temperatur und die Luftfeuchtigkeit überwachen und das unabhängig von vorhandener Hardware.

Ich möchte an dieser Stelle dem Team von emsystech.de danken. Dank des tollen Sensors, des Sourcecodes und der Tipps auf ihrer Website war der Aufbau der Überwachung ein Kinderspiel.

Aktuell schreiben wir die Messwerte alle 10 Minuten in eine CSV-Datei. Wie wir diese Messwerte in einem Webbrowser visualisieren können, beschreibe ich in einem folgenden Artikel.

Konzept zur Überwachung von Temperatur und Luftfeuchtigkeit

Es ist schön, wenn man Hobby und Beruf miteinander verbinden kann. So auch in diesem Fall. Ich arbeite als IT-Systemadministrator in einem mittelständischen Unternehmen. Wir betreiben zwei Serverräume an unserem Standort, in denen wir die Temperatur und die Luftfeuchtigkeit überwachen möchten.

Ich möchte versuchen, auf Basis meines Raspberry Pi eine Lösung zu entwickeln, die wir auch auf der Arbeit einsetzen können und die preislich günstiger als kommerzielle Fertiglösungen ist.

Dieses Wochenendprojekt soll folgende Ziele erreichen:

  • Überwachung von Temperatur und Luftfeuchtigkeit
  • Darstellung der Messwerte auf einer Webseite bzw. in einem Monitoringsystem
  • Dedizierte Lösung – Kein Anschluss von Sensoren an vorhandene Server
  • Günstiger Preis

Werfen wir zuerst einen Blick auf die Kosten.

Kosten für benötigte Hardware und Zubehör

ProduktPreis
Raspberry Pi Model B (512MB), Mainboard39,99 €
Gehäuse für Raspberry Pi Type B7,99 €
Secure Digital SDHC Card 8 GB, Speicherkarte10,99 €
Adapter DVI-D auf HDMI6,99 €
SHT21 für Raspberry Pi35,00 €
System-S Netzteil Netzkabel Adapter Ladegerät Micro USB mit 2A12,99 €
Summe113,95 €

Eine Recherche im Internet ergab, dass vergleichbare Lösungen[1. Web-Thermo-Hygrobarograph mit deutscher Web-Oberfläche][2. MultiSensor-LAN][3. sensorProbe2 inkl. Temperatur-Feuchtigkeitssensor] meist im Bereich 350 – 500 EUR liegen. Deutlich günstiger erhält man noch die Lösungen von Tinkerforge.[4. Tinkerforge Starterkit: Serverraum-Überwachung][5. Tinkerforge Starterkit: Wetterstation] Hier muss man ca. 160 EUR für eine Lösung investieren. Die Wetterstation gibt es zwar schon für 119,99 EUR, doch reicht diese allein nicht aus. Man benötigt für unseren Einsatzzweck noch einen Raspberry Pi dazu.

Damit ist die angestrebte Lösung schon mal die günstigste im Vergleich. Ein Ziel erreicht, noch drei offen. Auf den Aufbau und die Entwicklung der Lösung gehe ich in einem folgenden Artikel ein.

Steuererklärung mit oder ohne Cloud?

Ist es weise, seine Steuererklärung in der Cloud zu erstellen? Warum sollte man dies überhaupt tun? Ich möchte im Folgenden zum Nachdenken anregen und gern andere Meinungen zum Thema hören. Es geht dabei im Wesentlichen um die Frage, wie sehr man einer Cloud vertrauen kann und ob das Vertrauen groß genug ist, um die eigene Steuererklärung einer Cloud anzuvertrauen.

Zuerst will ich kurz erläutern, wie ich dazu kam, mich mit diesen Fragen zu beschäftigen.

Seit etlichen Jahren benutze ich die Software WISO-Sparbuch, zur Erstellung meiner Einkommenssteuererklärung. Diese Software ist aktuell der einzige Grund, warum ich noch eine virtuelle Maschine mit Windows 7 als Gastbetriebssystem benötige, obwohl ich sonst ausschließlich Ubuntu Linux verwende.

Auf meine Anfrage beim Kundenservice, ob es nicht möglich sei, eine Programmversion für Linux zu veröffentlichen, wurde mir das WISO InternetSparbuch als Alternative empfohlen.

Die Vorteile dieser Lösung liegen auf der Hand. Unabhängig von Computer und Betriebssystem kann man seine Steuererklärung im Browser erstellen. Eine lokale Installation ist nicht notwendig. Auch um Updates muss man sich nicht kümmern, da diese auf den Servern des Anbieters eingespielt werden und somit in der Webanwendung automatisch zur Verfügung stehen. Alles in allem ein verlockendes Angebot. Doch wo es Vorteile gibt, da gibt es meist auch Nachteile. In diesem Fall mag es von Nachteil sein, dass man alle Daten, die zur Anfertigung der Steuererklärung benötigt werden, in einer Cloud speichert. Es stellt sich die Frage, in wie weit man dabei die Kontrolle über die eigenen Daten behält. Denn ich möchte nicht, dass mein Steuerfall plötzlich im Internet auftaucht oder Dritte Kenntnis über meine finanziellen Verhältnisse erlangen.

Um diese Frage zu beantworten, hilft ein Blick in die Datenschutzerklärung des Anbieters. Als Erstes fällt hier positiv auf, dass der Anbieter die Datenschutzerklärung nicht auf seiner Website versteckt, sondern diese gleich als ersten Punkt am Anfang der Seite verlinkt.

Zum Zweiten bewerte ich es als positiv, dass mir in der Datenschutzerklärung kein „Juristendeutsch“ oder verklausulierte Formulierungen begegnen. Die Datenschutzerklärung ist in natürlicher Sprache verfasst und leicht verständlich. In ihr finden sich folgende Punkte, die mich die Verwendung des Produkts in Erwägung ziehen lassen:

  1. Wir gehen mit den uns übertragenen Daten vertrauensvoll und verantwortungsbewusst um und halten die geltenden Datenschutzgesetze ein.
  2. Personenbezogene Daten werden von uns nur dann und nur in dem Umfang erhoben, wie Sie sie uns mit Ihrer Kenntnis selbst zur Verfügung stellen.
  3. Wir verkaufen oder verleihen Ihre persönlichen Daten nicht.
  4. Wir verwenden Sicherheitstechnologien auf dem aktuellen Stand der Technik, um Ihre Daten vor Missbrauch zu schützen.
  5. Wir möchten Ihnen eine sichere, reibungslose, effiziente und persönliche Nutzer-Erfahrung bieten.

Die klare Aussage, dass meine Daten weder verkauft noch vermietet werden, ist schon mal viel wert. Auch verspricht die Erklärung, dass ohne ausdrückliche Einwilligung des Benutzers keine Daten an Steuer- und Finanzbehörden übermittelt werden. Letztendlich werden nur die zur Vertragsabwicklung erforderlichen Daten an Dritte weitergeben. Dies sind z.B. die eigenen Bankverbindungsdaten, damit die Beiträge für den Steuer-Spar-Vertrag abgebucht werden können.

Das InternetSparbuch verspricht meine Daten mit aktuellen Sicherheitstechnologien zu schützen. Dies ist in meinen Augen selbstverständlich und doch bleibe ich mißtrauisch. Sind meine Daten wirklich sicher? Was kann damit passieren, wenn die Server des Anbieters kompromittiert werden? Der Abschnitt Datensicherheit hilft bei der Beantwortung dieser Fragen weiter.

Gespeicherte Daten werden verschlüsselt gespeichert. Darüber hinaus werden sie nach einer festgelegten Zeit (4 Monate bzw. 90 Tage) ohne Anmeldung automatisch gelöscht. Das ist gut, hilft aber nicht unbedingt, wenn der Server in diesem Zeitraum kompromittiert wird. Entscheidend ist für mich folgende Aussage:

Zusätzlich haben Sie die Möglichkeit, auch Ihren Steuerfall mit einem Passwort zu schützen und wahlweise bei Ihnen auf einem lokalen Datenträger oder auf unserem Server verschlüsselt zu speichern.

Damit ist es mir möglich, die Kontrolle über meinen Steuerfall zu behalten. Denn speichere ich meinen Steuerfall nicht auf dem Server des Anbieters, so kann er von dort auch nicht entwendet werden. Der Steuerfall selbst wird in einer Datei codiert und ist nicht im Klartext lesbar. So kann man ohne die dazugehörige Anwendung auch mit der Datei, welche meinen Steuerfall enthält, nichts anfangen.

Meine erste Annahme, dass die Daten in der Cloud gespeichert werden und ich sie aus der Hand geben muss war falsch. Ich habe die Wahl, wo mein Steuerfall gespeicher wird. Lediglich die Daten, die benötigt werden, um mir einen Account zur Verfügung zu stellen und die Gebühren für den Steuer-Spar-Vertrag abzuwickeln, werden beim Anbieter gespeichert. Dies ist vorbildlich und einige andere Anbieter könnten sich daran orientieren.

Mich selbst hat das Angebot überzeugt und ich werde es für die nächste Steuererklärung ausprobieren.

E-Mail-Verschlüsselung mit Thunderbird

Als überzeugter Anwender von Google Mail, bin ich kein großer Freund von E-Mail Clients. Denn die Möglichkeit E-Mail, Kalender und Office-Funktionalitäten in einem Browser zu nutzen hat große Vorteile.

E-Mail-Verschlüsselung ohne Mailprogramm ist, wie im Artikel E-Mail-Verschlüsselung mit Ubuntu bereits beschrieben, a pain in the ass und für Otto-Normalanwender völlig unzumutbar. Daher widme ich mich in diesem Artikel der E-Mail-Verschlüsselung im Mail-Programm Thunderbird, welches neben Ubuntu auch für andere Linux Distributionen und Windows, kostenlos zur Verfügung steht.[1. Offizielle deutsche Projektseite]

Dieser Artikel setzt voraus, dass ihr Thunderbird auf eurem Betriebssystem erfolgreich installiert und euer E-Mail Postfach eingerichtet habt. Und an dieser Stelle gebe ich fauler Weise an den Artikel „PGP E-Mail Verschlüsselung mit Thunderbird und Enigmail“ von Thomas Leister weiter. ;-)

Nein im Ernst. Bei der Recherche nach Enigmail bin ich auf den Artikel von Thomas gestoßen und finde diesem ist nichts mehr hinzuzufügen.

Ich mag es immer noch nicht sonderlich ein lokal installiertes E-Mail Programm zu nutzen, aber es ist die einzig praktikable Möglichkeit zur verschlüsselten E-Mail-Kommunikation. :-/

In den Kommentaren zum genannten Artikel wird auch das Browser-Plugin Mailvelope erwähnt. Dieses ermöglicht die Nutzung von OpenPGP in Webmailern wie Gmail, GMX, Web.de, etc.

Ich sehe jedoch vom Einsatz dieses Addons ab, da ich ihm schlichtweg nicht traue. Wer sich näher damit beschäftigen möchte, dem empfehle ich die Lektüre Pentest-Report Mailvelope (RFA) 12.2012 – 02.2013 von Cure53, Dr.-Ing. Mario Heiderich / Krzysztof Kotowicz, Proof-Read by Paula Pustulka.

MyPhonebook wird Ende 2013 durch Sync-Plus abgelöst

Die Einstellung von MyPhonebook wurde mir von meinem Mobilfunkanbieter vor einigen Tagen mit folgender SMS mitgeteilt:

Lieber Telekom Kunde, der Service „MyPhonebook“ wird Ende 2013 eingestellt. Ihre Kontakte werden dann über MyPhonebook nicht mehr synchronisiert. Sie möchten weiterhin eine Synchronisierung? Dazu kostenlos Sync-Plus einrichten www.telekom.de/myphonebook unter „Sync-Plus einrichten“

Diese Nachricht hat mich ein zuerst ein wenig betrübt. Empfand ich diesen Dienst doch als äußerst hilfreich. Denn bereits zweimal, in den vergangenen zwei Jahren hat mein iPhone 4 alle darin gespeicherten Kontakte verloren. Wie dies passieren konnte, kann ich nicht sagen. Dank MyPhonebook war es aber auch nicht weiter schlimm, denn alle Kontakte waren in Sekundenschnelle wiederhergestellt.

Der Nachfolgedienst heißt Sync-Plus und steht Telekom Kunden kostenlos zur Verfügung. Es handelt sich dabei um eine Funktion der Telekom Cloud.

Auf den ersten Blick wirkt Sync-Plus interessant. Immerhin verspricht die Telekom, dass die Daten ausschließlich in Rechenzentren in Deutschland gespeichert werden, wo das Bundesdatenschutzgesetz (BDSG) gilt. Ein erster Test scheitert jedoch bereits an der Anmeldung. Die Webseite teilt mir mit, dass ein unerwarteter Anwendungsfehler aufgetreten ist und ich es später erneut versuchen soll.

Na toll. Der erste Start war ja nicht so erfolgreich. Ich werde es aber später nochmal versuchen und euch berichten, was der Dienst für einen zweiten Eindruck hinterlässt.

Update:(21.09.2013)
Der zweite Blick auf die neue App hat meine Hoffnungen vorerst zunichtegemacht. Ein Blick in den Google Play-Store[1. Google play] und in Apples iTunes[2. Sync-Plus bei iTunes] offenbart äußerst schlechte Bewertungen für die App.

Apps, die durchgängig so schlechte Bewertungen erhalten, kommen nicht auf meine Geräte. Sollte es bis zum Jahresende keine neue Version geben und sich die Bewertungen bessern, werde ich mir eine Alternative zur Telekom-Lösung suchen müssen.

E-Mail-Verschlüsselung mit Ubuntu

Der steinige Weg zu verschlüsselter Kommunikation ist noch nicht zu Ende. Im Gegenteil, er hat gerade erst begonnen.

Dieser Artikel beschreibt den Weg über die Erstellung eines PGP-Schlüsselbunds bis hin zum Versand und Empfang der ersten verschlüsselten E-Mail. Ich beziehe mich dabei auf mein aktuelles Desktopbetriebssystem Ubuntu 13.04 Gnome Edition.

Ein wirklicher Segen bei diesem Unterfangen ist das gute Wiki von Ubuntuusers.de.[1. http://wiki.ubuntuusers.de] Es enthält für alle Teilbereiche unseres Vorhabens bereits ausführliche Artikel.

Wie ihr vielleicht schon ahnt liegt vor uns nun erst mal das Studium einiger dieser Artikel. Es gibt einen guten Artikel zu GnuPG selbst und einen zum technischen Hintergrund.[2. Artikel zu GnuPG][3. GnuPG – Technischer Hintergrund]

Das grafische Schlüsselverwaltungsprogramm unter Ubuntu Gnome/Unity heißt Seahorse. Wir folgen der Anleitung im Wikiartikel, um uns einen PGP-Schlüssel zu erzeugen.

Ist der Schlüssel erzeugt, erscheint er in der Übersicht der eigenen Schlüssel. Durch einen Rechtsklick auf den Schlüssel lassen sich dessen Eigenschaften öffnen. Hier können dem Schlüssel weitere E-Mail Adressen hinzugefügt werden. Damit ist die Schlüsselerstellung abgeschlossen.

Doch was nun? Nach langem Lesen von Wiki-Artikeln haben wir einen PGP-Schlüssel. Doch wie hilft uns das jetzt weiter? Im Ubuntuusers Wiki ist ein Abschnitt zu finden, der beschreibt, wie wir die E-Mail-Verschlüsselung testen können. Dazu müssen wir jedoch zuerst unseren öffentlichen Schlüssel in eine Datei exportieren. Dies geschieht, in dem wir in Seahorse unseren Schlüssel markieren und anschließend im Menü Datei den Punkt Exportieren auswählen. Wir speichern unseren öffentlichen Schlüssel, als *.asc Datei und schreiben mit der E-Mail-Anwendung unserer Wahl eine E-Mail an adele@gnupp.de. In den Betreff schreiben wir „mein öffentlicher Schlüssel“ und die Datei mit unserem öffentlichen Schlüssel hängen wir als Anhang dran.

Ich habe die Mail versendet und kurz darauf eine Antwort erhalten. Ergebnis: Hat nicht funktioniert. Adele schreibt mir, dass sie in meiner Mail keinen öffentlichen Schlüssel finden konnte. Also habe ich meine *.asc Datei mit einem Editor geöffnet und den darin enthaltenen Textblock in via Copy’n’Paste in die Mail kopiert und erneut an Adele geschickt. Diesmal hat es funktioniert und ich erhalte von Adele eine E-Mail zurück, die mit meinem öffentlichen Schlüssel verschlüsselt wurde.

Wenn ihr glaubt dies ist ein Grund zur Freude, habt ihr euch leider zu früh gefreut. Ich bin Gmail-Nutzer und verwende Gmail ausschließlich im Webbrowser, ohne separaten Mailclient. Und ich habe nun gerade eine verschlüsselte Mail an mich empfangen, die ich erst mal nicht lesen kann. Es stellt sich nun also die Frage, wie die empfangene Mail wieder zu entschlüsseln ist.

Möglichkeit 1 wäre die Nutzung eines E-Mail Clients zur Verwendung von GnuPG.[4. http://wiki.ubuntuusers.de/GnuPG#GnuPG-in-anderen-Programmen-nutzen] Dies kommt für mich jedoch nicht in Frage, da ich mich durch diese Programme zu sehr eingeschränkt fühle und meiner Meinung nach, mir das Webfrontend die beste Nutzung des E-Mail Dienstes ermöglicht.

Also bleibt mir nur Möglichkeit 2. Die Ver- und Entschlüsselung von Text in der Zwischenablage. And it’s a pain in the ass!

Die Scripts aus dem Ubuntuusers.de Artikel gefallen mir ihrer aktuellen Form nicht. Daher habe ich sie kurzer Hand etwas erweitert. Beim Script zur Verschlüsselung ist es nun möglich, die Empfänger E-Mail Adresse als Parameter mit anzugeben. Zusätzlich können nun bei den Scripts zur Verschlüsselung und zur Entschlüsselung die Ausgaben in eine Datei geschrieben werden.

Script zur Entschlüsselung:

#!/bin/bash

# Entschlüsseln von Text.
# Erforderliche Linux Pakete: gpg, xsel

# Quelle des Scripts: Ubuntuusers.de
# Ueberarbeitet von: Joerg Kastning

usage()
{
cat << EOF
usage: $0 options

Dieses Script entschlüsselt mit OpenPGP verschlüsselten Text
in der Zwischenablage und gibt ihn in eine Datei oder die
Standardausgabe aus.

Damit die Ausgabe zusätzlich in eine Datei ausgegeben wird,
muss das Script mit der Option -o aufgerufen werden.
EOF
}

while getopts .ho. OPTION
do
case $OPTION in
h)
usage
exit 1
;;
o)
Dateiausgabe="true"
;;
?)
usage
exit
;;
esac
done

echo "Clipboard Inhalt vor Entschlüsselung:"
echo "*************************************"
echo ""
xsel --clipboard

echo ""
echo ""
echo ""
echo "Mit GnuPG entschlüsseln ...:"
echo "****************************"
echo ""
xsel --clipboard | gpg --verbose --decrypt -a | xsel --clipboard

echo ""
echo ""
echo ""
echo "Clipboard Inhalt nach Entschlüsselung:"
echo "**************************************"
echo ""
xsel --clipboard
if [[ "$Dateiausgabe" == true ]]; then
xsel --clipboard > decrypted.txt
fi

# Only works with bash (and not sh):
echo ""
echo ""
echo ""
read -s -n 1 -p "Press any key to continue…"

Script zur Verschlüsselung:

#!/bin/bash

# Verschlüsseln von Text.
# Erforderliche Linux Pakete: gpg, xsel

# Quelle: Ubuntuusers.de
# Überarbeitet von: Jörg Kastning

usage()
{
cat << EOF
usage: $0 options

Dieses Script verschlüsselt mit OpenPGP Text
in der Zwischenablage und gibt ihn in eine Datei oder die
Standardausgabe aus.

Damit die Ausgabe zusätzlich in eine Datei ausgegeben wird,
muss das Script mit der Option -o aufgerufen werden.

-m Angabe der Empfänger E-Mailadresse
EOF
}

while getopts .hom:. OPTION
do
case $OPTION in
                h)
                        usage
                        exit 1
                        ;;
                o)
                        Dateiausgabe="true"
                        ;;
m)
Mail="${OPTARG}"
;;
                ?)
                        usage
                        exit
                        ;;
        esac
done

echo "Clipboard Inhalt vor Verschlüsselung:"
echo "*************************************"
echo ""
xsel --clipboard

echo ""
echo ""
echo ""
echo "Mit GnuPG verschlüsseln ...:"
echo "****************************"
echo ""
xsel --clipboard | gpg --verbose --encrypt -a --recipient $Mail | xsel --clipboard

echo ""
echo ""
echo ""
echo "Clipboard Inhalt nach Verschlüsselung:"
echo "**************************************"
echo ""
xsel --clipboard
if [[ "$Dateiausgabe" == true ]]; then
xsel --clipboard > encrypted.txt
fi

# Only works with bash (and not sh):
echo ""
echo ""
echo ""
read -s -n 1 -p "Press any key to continue…"

Das dritte Script wurde noch nicht überarbeitet. Ihr findet die aktuelle Version der Scripts immer auf GitHub.[5. https://github.com/Tronde/Schriftrolle]

Die Anwendung der Scripts habe ich mit Hilfe eines Kommilitonen getestet. Ver- und Entschlüsselung sind damit möglich. Komfortabel ist es sicherlich nicht, doch bin ich so in der Lage vertrauliche Nachrichten zu versenden und zu empfangen. Mit kompatiblen E-Mail Clients lässt sich der Komfort sicher noch deutlich steigern.

Ich selbst suche noch nach einer Firefox-Erweiterung, die mir dies auch im Browser ermöglicht. Wenn jemand eine Erweiterung kennt, immer her damit.

Damit ist das Ziel dieses Kapitels erreicht. In einem weiteren Artikel werde ich mich dann an die Dateiverschlüsselung unter Ubuntu wagen.

Der steinige Weg zu verschlüsselter Kommunikation

Nach dem in den Medien fast täglich eine neue Schlagzeile rund um die NSA Affäre auftaucht, habe ich beschlossen mich näher mit dem Thema „Vertrauliche Kommunikation“ zu befassen.

Dieser Artikel fasst meine Überlegungen zusammen und grenzt das Thema ein. Dabei gehe ich kurz auf meine Motivation ein, nenne gängige Verfahren zur vertraulichen Kommunikation und kommentiere diese. Dabei führe ich einige Links zu Quellen auf, die weiterführende Informationen zu den einzelnen Verfahren und Programmen bieten. Ich plane in folgenden Artikeln detaillierte Beschreibungen zu einzelnen Lösungen zu geben. Bei diesem Artikel handelt es sich damit sozusagen, um den Grundlagenartikel zum Thema.

Mein Ziel ist es eine Lösung zu finden, mit der eine möglichst sichere (denn 100%-ige Sicherheit gibt es nicht) und vertrauliche Kommunikation über das Internet machbar ist.

Vertrauliche Kommunikation

Vertraulich ist eine Nachricht dann, wenn nur der Absender und der oder die Empfänger von ihrem Inhalt Kenntnis haben. Überbringern bzw. Übermittlern dieser Nachricht ist ihr Inhalt entgegen nicht bekannt.

Dies ist z.B. beim klassischen Brief der Fall. Der Absender schreibt ihn, packt ihn in einen Umschlag, verschließt diesen und übergibt ihn der Post zur Zustellung. Die Post bzw. der Postbote, als Überbringer des Briefs, kann den Brief nicht lesen, ohne den Umschlag zu öffnen. Nur der Empfänger kann die enthaltene Nachricht nach Erhalt lesen. Erhält der Empfänger jedoch einen geöffneten Umschlag, so weiß er, dass die Authentizität und Integrität nicht mehr gewährleistet sind.

Im Gegensatz dazu gleicht eine E-Mail eher eine Postkarte. Jeder, der sie in die Hand bekommt, bzw. jeder Server der die E-Mail weiterreicht, kann den Inhalt im Klartext lesen, kopieren und ggf. verändern.

Möchte ich nun in bestimmten Fällen vermeiden, dass meine Nachricht für unbekannte Dritte lesbar ist, muss ich mir Maßnahmen überlegen, wie ich die Vertraulichkeit sicherstellen kann.

Bekannte Probleme

Vertraulicher Kommunikation im Internet stehen vor allem drei bekannte Probleme entgegen.

  • Die Verfahren sind für den Anwender meist extrem unkomfortabel in der Anwendung.
  • Die Verfahren sind so komplex, dass technisch wenig versierte Anwender sie nicht verstehen bzw. nachvollziehen können.
  • Ob die Verfahren wirklich ein hohes Maß an Sicherheit bieten lässt sich meist nur schwer einschätzen.

Alle drei Punkte sorgen dafür, dass auf eine digitale Signatur bzw. Verschlüsselung meist verzichtet wird.

Ich will es dennoch versuchen und schaue mir dazu die folgenden Lösungen an.

Mögliche Lösungen

Auf den ersten Blick bieten sich fünf Möglichkeiten, um das gesteckte Ziel zu erreichen:

  • DE-Mail,
  • E-Postbrief,
  • E-Mail „Made in Germany“,
  • Einsatz von GnuPG oder
  • S/MIME

Rufen wir uns nochmal kurz das Ziel in Erinnerung. Ich möchte, dass die Kommunikation zwischen dem Sender und dem Empfänger der Nachricht vertraulich bleibt. Dabei möchte ich so nah wie möglich an die Vertraulichkeit des klassischen Briefs herankommen.

Dabei bin ich mir bewusst, dass es Geheimdiensten unter Umständen trotzdem möglich ist an den Inhalt meiner Nachricht zu gelangen. Dieses Problem stellt sich jedoch auch beim klassischen Brief. Wie gesagt, 100%-ige Sicherheit gibt es nicht. Aber ich möchte versuchen es ihnen so schwer wie möglich zu machen. Wenn es mir dabei jedoch gelingt alle anderen Freunde von Big Data auszusperren, ist dies schon als Sieg zu werten.

Kommen wir zu den oben genannten Lösungen im Einzelnen.

DE-Mail und E-Postbrief

Meine Kritik an diesen beiden Produkten habe ich bereits in meinem Artikel „DE-Mail und E-Postbrief – Zwei echte Rohrkrepierer“ geäußert.

Beide Produkte bieten aktuell keine Ende-zu-Ende-Verschlüsselung. Während der Übertragung wird die Nachricht auf den Servern der Anbieter entschlüsselt, verarbeitet, wieder verschlüsselt und weitergeleitet. Nach Angaben der Anbieter wird die Nachricht entschlüsselt, um sie auf enthaltene Schadsoftware zu überprüfen. Der kritische Punkt ist jedoch, dass sie überhaupt entschlüsselt wird. Damit ist der Inhalt der Nachricht nicht mehr vertraulich. Aus diesem Grund kommen beide Produkte für mich nicht in Frage. Weder für den privaten Gebrauch, noch für die Kommunikation mit Ärzten, Versicherungen oder Behörden.

E-Mail „Made in Germany“

Die E-Mail „Made in Germany“ hat das gleiche Problem wie die DE-Mail und der E-Postbrief.

Zitat:

Entgegen zunächst anders lautender Angaben wird bei „E-Mail made in Germany“ genau wie bei De-Mail die Mail auf den Servern der beteiligten Unternehmen mit einem Virenscanner auf Virenfreiheit geprüft. Wer dies nicht wünscht, muss den Inhalt der Mail und etwaige Attachments verschlüsseln.

Die einzige „Neuerung“ im Vergleich zur bisherigen E-Mail Kommunikation besteht darin, dass die E-Mails beim Transport von Server zu Server nun endlich verschlüsselt übertragen werden und nicht an jedem Router, den sie passieren, mitgelesen oder verändert werden können. Dies ist jedoch keine echte Innovation, da die Technik zur Transportverschlüsselung bereits seit Ende der 90’er Jahre vorhanden ist.

Offen bleibt lediglich die Frage, ob man deutschen Providern mehr Vertrauen entgegen bringen kann, als anderen, oder eben nicht. Da ich auch mit Personen außerhalb Deutschlands oder Europas kommuniziere geht der Nutzen dieser Lösung für mich gegen Null.

GnuPG und S/MIME

GnuPG und S/MIME sind zwei verbreitete Möglichkeiten um Daten digital zu signieren und verschlüsseln zu können.

GnuPG wurde in RFC4880 definiert. Die Spezifikationen zu S/MIME finden sich in RFC1847, RFC2633, RFC3851 und RFC5751.

Zuerst die schlechte Nachricht. Beide Verfahren sind nicht kompatibel zueinander. Daher stellt sich als erstes die Frage, auf welches Verfahren man setzen sollte. Im Internet bin ich auf den Artikel „S/MIME vs. OpenPGP: Eine Entscheidungshilfe“ gestoßen. Dieser Artikel war mir bei der Entscheidungsfindung sehr hilfreich. Meine Entscheidung gegen S/MIME fiel unter anderem wegen des folgenden Zitats:

X.509 verwendet ein streng hierarchisches System zur Zertifizierung von öffentlichen Schlüsseln. Eine Certificate Authority (CA) steht an der Spitze der Zertifizierungs-Hierarchie und signiert entweder direkt oder über Sub-CAs die Schlüssel aller Teilnehmer innerhalb der Public Key Infrastruktur (PKI). Die einzelnen Benutzer sind im Besitz ihres eigenen Schlüssels und des öffentlichen CA-Schlüssels und können dadurch die Gültigkeit unbekannter Zertifikate überprüfen.

Dadurch ergibt sich ein Sicherheitsrisiko, welches bei Wikipedia wie folgt beschrieben wird:

Für die Nutzung von S/MIME-Zertifikaten zur Verschlüsselung und Signierung wird aufgrund des Public-Key-Verschlüsselungsverfahrens ein Schlüsselpaar aus öffentlichem und privatem Schlüssel benötigt. Im Gegensatz zum Zertifikat können und sollten diese Schlüssel lokal beim Anwender erzeugt und mit den Zertifikaten verbunden werden. Oft werden die Schlüssel aber gleich von der Zertifizierungsstelle zusammen mit dem Zertifikat generiert und an den Anwender übermittelt. Dadurch ist der Zertifizierungsstelle der private Schlüssel bekannt, was unbedingt im Rahmen der Sicherheit vermieden werden sollte, da der Schlüssel in falsche Hände gelangen kann. Es gibt aber auch Verfahren, bei denen die Schlüssel durch den Webbrowser des Anwenders erzeugt werden. Dabei verlässt der private Schlüssel den PC des Benutzers nicht.

Nach den Enthüllungen rund um die NSA Affäre stehe ich zentralen Zertifizierungsstellen skeptisch gegenüber. Die meisten dieser Zertifizierungsstellen haben ihren Sitz in den USA und es liegt der Verdacht nahe, dass die Geheimdienste durch Hintertüren oder eingebaute Schwachstellen, die mittels dieser Zertifikate geschützte Kommunikation mitlesen können. Auf gut Deutsch: Mein Vertrauen in diese Zertifizierungsstellen wurde schwer in Mitleidenschaft gezogen.

Aus diesem Grund, und aufgrund der Tatsache, dass ich privat vorwiegend auf die Betriebssysteme Linux und Android setze, fiel meine Entscheidung auf GnuPG, welches für alle gängigen Betriebssysteme frei verfügbar ist.

Fazit: Bisher haben wir nur ein paar Überlegungen zu vertraulicher Kommunikation und möglichen Lösungen getroffen. Ihr seht wie lang dieser Artikel geworden ist. Dabei haben wir noch nicht ein Programm installiert, keine Nachricht signiert und auch noch keine Nachricht verschlüsselt.

In einem der nächsten Artikel werde ich mich daran wagen, mit Hilfe von GnuPG ein Schlüsselpaar zu erzeugen und eine erste verschlüsselte Nachricht zu versenden.

Glossar und Abkürzungsverzeichnis in LaTeX erstellen

In diesem Artikel möchte ich kurz beschreiben, wie man in LaTeX ein Glossar und ein Abkürzungsverzeichnis erstellt.

Dazu verwende ich das Paket glossaries. Falls dieses nicht in eurer TeX-Distribution enthalten ist, könnt ihr es bei CTAN herunterladen. Dort findet ihr ebenfalls die vollständige Dokumentation zum Paket.

Ich hatte bei der Verwendung einige Probleme mittels

\makeglossaries

die benötigen Verzeichnisse zu erstellen. Zwar konnte ich dieses Perl-Script auf der Konsole ausführen, es brachte jedoch weder eine Fehlermeldung, noch das gewünschte Ergebnis.

Mit Hilfe eines Kommilitionen konnte ich mir jedoch ein kleines Bash-Script schreiben, welches die benötigten Dateien mittels makeindex erstellt.

#!/bin/bash
# makeindex Aufruf zur Erstellung des Glossar:
## makeindex -s minimalbsp.ist -t minimalbsp.glg -o minimalbsp.gls minimalbsp.glo
# makeindex Aufruf zur Erstellung des Abkürzungsverzeichnis
## makeindex -s minimalbsp.ist -t minimalbsp.alg -o minimalbsp.acr minimalbsp.acn

# Variablen #####################################################################
Quelldatei=""

# Funktionen ####################################################################

usage()
{
cat << EOF
usage: $0 options

Dieses Script fuehrt die makeindex Laeufe fuer LaTeX aus, welche zur
Erstellung von Glossar und Abkuerzungsverzeichnis benoetigt werden.

Folgende Variablen muessen angegeben werden:
Quelldatei

Die Variablen koennen durch Bearbeitung des Scripts oder durch die folgenden
Optionen belegt werden.

OPTIONS:
-h Zeig diesen Hilfetext
-Q Name der LaTeX-Quelldatei
EOF
}

# Programmstart ################################################################

while getopts .hQ:. OPTION
do
case $OPTION in
h)
usage
exit 1
;;
Q)
Quelldatei="${OPTARG}"
;;
?)
usage
exit
;;
esac
done

if [[ -z $Quelldatei ]]; then
usage
exit 1
fi

makeindex -s $Quelldatei.ist -t $Quelldatei.glg -o $Quelldatei.gls $Quelldatei.glo
makeindex -s $Quelldatei.ist -t $Quelldatei.alg -o $Quelldatei.acr $Quelldatei.acn

Die aktuellste Version des Scripts gibt es stehts auf GitHub.
Ich habe ein Minimalbeispiel angehängt, an dem ihr euch das Ergebnis ansehen könnt.
Minimalbeispiel

Also dann, viel Spaß mit LaTeX.

Kommentar zum NSA Überwachungsskandal

Der NSA-Überwachungsskandal war ein, wenn nicht das Thema für das diesjährige Sommerloch.

Zwischen den Enthüllungen von Edward Snowden und den Beschwichtigungsversuchen von Innenminister Friedrich, brachte uns die deutsche Wirtschaft auch noch „E-Mail Made in Germany“.

Doch ist die ganze Aufregung überhaupt gerechtfertigt? Surfte man die letzten zwei Jahrzehnte nicht mit Scheuklappen durchs Internet, dürfte einen der NSA-Skandal nicht mehr, als ein müdes Lächeln abringen. Das die Industrienationen dieser Welt untereinander Wirtschaftsspionage betreiben, dürfte nicht verwundern. Das sie dies nicht an die große Glocke hängen ebenfalls nicht.

Auch, dass die Amerikaner sich nicht viel um Datenschutz scheren leuchtet schnell ein. Fällt starke Verschlüsselung in den U.S.A. doch unter das Waffengesetz. Erlaubt sind dort nur schwache (und teils veraltete) Verschlüsselungsalgorithmen, welche einfach zu brechen sind. Starke Verschlüsselung ist genehmigungspflichtig und geht oft mit dem Einbau einer Hintertür für die Geheimdienste und Ermittlungsbehörden einher.

Wer sich angesichts dieser Tatsachen wundert oder gar beschwert, dass die eigenen E-Mails bei GMail, Microsoft oder der Telekom von den Ermittlungsbehörden gescannt, gefiltert und ausgewertet werden, hat das Internet nicht verstanden. So ist eine E-Mail doch nicht mehr, als eine elektronische Postkarte. Auf jedem Server, den sie passiert, kann sie von jedem mit Zugriff auf den Datenstrom gelesen, kopiert und sogar verändert werden. Gegenüber der Postkarte hat die E-Mail sogar noch einen weiteren Nachteil. Während die Postkarte nur noch der Empfänger lesen kann, wenn sie am Kühlschrank hängt, kann die E-Mail auf dem Server des Providers immer noch von jedem gelesen und kopiert werden.

Da hilft auch das neue Wunderprodukt „E-Mail Made in Germany“ nicht viel, welches von der Telekom und United Internet ins Leben gerufen wurde. Die durchgängige Transportverschlüsselung ist eine wirksame Marketingstrategie. Ob sich dadurch auch das Sicherheitsgefühl steigern lässt, hängt vor allem davon ab, wie sehr man den deutschen Behörden vertraut. Dies muss jeder für sich selbst entscheiden.

Zum Glück ist das Sommerloch bald vorbei. Dann hören die Berichte über Verstöße gegen den Datenschutz und ausufernde Überwachung wieder auf. Die Aufregung verklingt und man richtet das Augenmerk wieder auf die wichtigen Themen, wie „Germany’s next Top Model“ oder „Fang dir einen Millionär“.

Und an die Geheimdienste dieser Welt:

Spart euch doch das viele Geld, für teure Überwachungssysteme. Steht doch eh fast alles in öffentlich zugänglichen Facebookprofilen.