Tag Archives: Hint

Enigmail und die Suche

Nach dem Studium habe ich E-Mailverschlüsselung bewusst nicht mehr genutzt. Der Grund: die Suche – verschlüsselte E-Mails lassen sich nicht finden, weil sie von Thunderbirds Suche nicht indiziert werden. Bei der Flut an E-Mails, die sich im Laufe der Zeit ansammeln ist das für mich ein klares NO-GO.

Bis vor Kurzem hatte ich mich damit abgefunden, dass dieses Problem nicht lösbar sei und ganz bewusst darauf verzichtet, E-Mails zu verschlüsseln oder andere zu animieren, mir verschlüsselte E-Mails zu schicken.

Unterschiedliche Sphären

Nun muss man sich beim Thema Sicherheit immer im klaren sein innerhalb welcher “Sphäre” man sich bewegt und wie vertrauenswürdig diese ist. Davon ausgehend, dass Sender und Empfänger ihre E-Mails jeweils auf einem Server liegen lassen (IMAP), der nicht unter ihrer Kontrolle steht und zudem immer auch eine lokale Kopie behalten, gibt es fünf relevante Sphären:

  • der Rechner des Kommunikationspartners
  • der E-Mailserver des Kommunikationspartners
  • der Transportweg
  • mein E-Mailserver
  • mein Rechner

Über den Rechner und den E-Mailserver des Kommunikationspartners habe ich keinerlei Kontrolle. In diesen beiden Sphären gibt es keine Möglichkeit, sicherzustellen, dass Nachrichten vor dem Zugriff Unberechtigter geschützt sind. Der Kommunikationspartner könnte die E-Mails hier unverschlüsselt ablegen und ich würde es noch nicht einmal bemerken. Die beiden Sphären “Rechner des Kommunikationspartners” und “E-Mailserver des Kommunikationspartners” sind also unsicher und unkontrollierbar. Da hilft nur Vertrauen, dass der Partner diese Sphären sicher macht.

Die Sphären “Transportweg” und “mein E-Mailserver” müssen per se als unsicher angesehen werden. Ich kann nicht sicher sein, dass hier niemand mitliest. Aber die beiden Sphären sind kontrollierbar. Ich kann entscheiden, wie meine Nachrichten innerhalb aussehen weil ich diese in die Sphären einbringe.

Die letzte Sphäre “mein Rechner” ist kontrollierbar und ich bin in der Lage, dafür sorgen, dass sie auch sicher ist. Letzteres kann beispielsweise durch Festplattenverschlüsselung erreicht werden.

Sicherheit in den drei kontrollierbaren Sphären

Ziel ist es, dass innerhalb der kontrollierbaren Sphären nur Berechtigte in der Lage sind, den Inhalt meiner E-Mails zu lesen. In den beiden unsicheren Sphären “Transportweg” und “mein E-Mailserver” kann ich das erreichen, indem ich die Nachrichten verschlüssele. Ich verpacke die Nachrichten damit in eine sichere Sphäre, bevor ich sie in eine unsichere einbringe. In der sicheren Sphäre “mein Rechner” ist das nicht notwendig, weil die Sphäre durch andere Maßnahmen ja bereits sicher ist.

Vertrauen ist alles

Letztlich geht es immer nur darum, wie groß mein Vertrauen in die Sicherheit einer Sphäre ist. Und natürlich, wie sicher “sicher” denn sein soll (wie stark der Angreifer sein darf). Ich muss glauben, dass der “Rechner des Kommunikationspartners” und der “E-Mailserver des Kommunikationspartners” sicher sind. Ich muss glauben, dass die von mir verwendete Verschlüsselungstechnologie sicher ist und ich muss glauben, dass die Maßnahmen, die ich ergreife, “meinen Rechner” sicher zu machen ausreichend sind. Und natürlich muss ich auch Thunderbird, Enigmail und dem Linuxkernel vertrauen 🙂 .

Enigmail und die Suche

Nach all der Vorrede will ich nun aber zum Thema dieses Posts kommen. Wie eingangs bereits dargelegt ist eine funktionierende Suche in meinem Desktop-E-Mailprogramm für mich ein absolutes MUSS. Wenn ich nun wie ausgeführt davon ausgehe, dass “mein Rechner” eine sichere Sphäre ist, so kann ich E-Mails hier getrost in unverschlüsselter Form ablegen und von der Suche indizieren lassen. Und genau das ist mit Enigmail möglich. Dazu wird ein Mailfilter angelegt, der von jeder eingehenden verschlüsselten E-Mail eine unverschlüsselte Version in einem LOKALEN Ordner ablegt. Diese Kopie wird indiziert und bei einer entsprechenden Suchanfrage gefunden.

enigmail-message-filter

Wichtig dabei ist, dass die unverschlüsselte Kopie ausschließlich in der sicheren Sphäre “mein Rechner” verbleibt und dafür ein Odner im lokalen Account benutzt wird. Keinesfalls darf hier ein IMAP-Ordner gewählt werden.

Fazit

Mit Hilfe von Thunderbirds Nachrichtenfiltern und der von Enigmail mitgebrachten Filteraktion “Create decrypted Copy” ist es möglich, verschlüsselte Kommunikation innerhalb von Thunderbird suchbar zu machen. Serverseitig funktioniert das selbstverständlich nicht. Solange der E-Mailserver nicht als sichere Sphäre betrachtet werden kann dürfen die betreffenden Nachrichten hier niemals unverschlüsselt abgelegt werden. Genauso verhält es sich mit anderen E-Mail-Clients, die sich nicht in einer sicheren Sphäre befinden wie Smartphone, Portable Edition von Thunderbird, etc.

Für mich genügt das aber, um wieder aktiv GPG zu nutzen und zu propagieren.

In diesem Sinne (nur für private E-Mails):

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

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
=DCD9
-----END PGP PUBLIC KEY BLOCK-----

Dank geht an dieser Stelle an meinen Kollegen Carsten, der mich nach einer Diskussion über dieses Thema auf die Filteraktionen von Enigmail aufmerksam gemacht hat.

Fehlender Marker in Xmind

Seit Jahren benutze ich Xmind für die Projektorganisation.  Mit der Version 2013 wurden unter anderem die mitgelieferten Marker überarbeitet. Sie sind kleiner, dezenter – subjektiv deutlich hübscher.  Der Marker Task Progress” hat immer schon eine konkrete Semantik. Früher gab es sechs Taskstatusstufen, mit 2013 sind es nun neun. Das habe ich sehr begrüßt, da es etwas mehr Freiheit bei der Umsetzung des eigenen Organisationskonzeptes bietet. Leider ist der Progressmarker “Pause” verschwunden, den ich als sehr hilfreich empfand, z.B. wenn eine Aufgabe derzeit oder überhaupt nicht umgesetzt werden, zu Dokumentationszwecken aber in der Map bleiben sollte.

Beim Betrachten einer alten Mindmap habe ich ihn heute plötzlich wiederentdeckt. Und verhielt sich genau so, wie man es erwarten würden, als wäre er Teil der Markergruppe. Also hab ich mal die Ressourcen meiner Xmindinstallation untersucht und siehe da, die Graphiken existieren. Ein Blick in die Konfiguration brachte dann die Erkenntniss: Der Pausemarker ist da, aber als “hidden” konfiguriert. Gleiches gilt übrigens auch für einige andere wie zum Beispiel das schwarze Flag oder den grauen Stern.

Die Lösung ist also ganz einfach:

Man ersetze in der Datei

xmind/plugins/org.xmind.ui.resources_3.4.1.201401221918/markers/markerSheet.xml

die Zeile

<marker id="task-pause" name="%taskPause" resource="progress_pause.png" hidden="true"/>

durch

<marker id="task-pause" name="%taskPause" resource="progress_pause.png"/>

und starte Xmind neu.

Voila!

Xmind-Pause-Marker

Simpletask (todo.txt)
& OwnCloud

Ich hab inzwischen eine Menge Dinge ausprobiert, um meine einfachen TODOs sinnvoll am Rechner, Handy und Tablet verwalten zu können. Nach langer Suche bin ich nun bei TODO.txt hängengeblieben. Einfach alles in einer Textdatei. Frei, universell, einfach und grepbar (das cli-tool ist ein Traum).

Auf dem Tablet sollte es dann aber schon ein graphisches Tool sein. Das Original Todo.txt Touch war mir mit der Zeit etwas zu rudimentär. Simpletask, das auf den Quellen von Todo.txt Touch basiert, hingegen erfüllt fast all meine Anforderungen.

Leider ist es nur mit einen Dropbox-Account sinnvoll zu benutzen. Aber ich vertraue nunmal keinem “Cloudunternehmen“.

Da ich meine Daten seit geraumer Zeit mit OwnCloud synce, lag es natürlich nahe, auch die TODOs hier abzulegen. OwnCloud bietet eine Webdavschnittstelle und so wollte ich dafür Foldersync nutzen. Aber hier macht es Simpletask einem nicht gerade leicht. Die Beiden Dateien (todo.txt und done.txt) liegen auf dem Tablet in einem Bereich, den Foldersync nicht lesen bzw. schreiben kann (/data/data/nl.mpcjanssen.todotxtholo/files).

Folgendes ist zu tun (im Falle eines Samsung Galaxy Tab 2 10″):

  1. Device rooten (Schritt-für-Schritt-Anleitung für Windows, unter Linux: clockworkmod mittels heimdall auf das Tablet bringen und danach CWM Root für Tab2 10,1. Zip installieren)
  2. Install the Android Terminal Emulator
  3. chmod 775 /data
  4. chmod 775 /data/data
  5. chmod 755 /data/data/nl.mpcjanssen.todotxtholo
  6. chmod 777 /data/data/nl.mpcjanssen.todotxtholo/files
  7. chmod 777 /data/data/nl.mpcjanssen.todotxtholo/files/todo.txt
  8. chmod 777 /data/data/nl.mpcjanssen.todotxtholo/files/done.txt
  9. OwnCloud-Webdav-Account in Foldersync anlegen ([OwnCloud-URL]/owncloud/files/webdav.php)
  10. Ordnerpaar in Foldersync anlegen: [OwnCloud-folder] <-> /data/data/nl.mpcjanssen.todotxtholo/files (disable syncing of subfolders)

 

 

I have tried a lot of tools to maintain my simple TODOs in a comfortable way on the Computer, the Mobile and the Tablet. After a long time I ended up with TODO.txt. Everything in a text-file. Free, universal, simple and grepable (have a look at the cli-tool – its terrific).

On the tablet (Samsung Galaxy Tab 2 10) I wanted a more comfortable graphical tool. The original Todo.txt Touch is a bit rudimental but Simpletask, which is based on the sources of Todo.txt Touch, meets nearly every of my needs.

Unfortunately it only makes sense in combination with a Dropbox-account. But I do not trust any “Cloud-company“.

As I’m using OwnCloud for some time to sync my files, I really wanted to use it for my todo.txt-file too. OwnCloud has a web-dav-interface, so I thought I could use Foldersync to achieve that. But Simpletask does not really help the user with that. Both relevant files (todo.txt and done.txt) are located in a folder that can not be read by Foldersync (/data/data/nl.mpcjanssen.todotxtholo/files).

The following have to be done (in case of a Samsung Galaxy Tab 2 10″):

  1. Root the device (Step-by-Step-Description for Windows, with Linux: use heimdall to bring clockworkmod to the Tablet, than install CWM Root für Tab2 10,1. Zip)
  2.  Android Terminal Emulator auf dem Tablet installieren
  3. chmod 775 /data
  4. chmod 775 /data/data
  5. chmod 755 /data/data/nl.mpcjanssen.todotxtholo
  6. chmod 777 /data/data/nl.mpcjanssen.todotxtholo/files
  7. chmod 777 /data/data/nl.mpcjanssen.todotxtholo/files/todo.txt
  8. chmod 777 /data/data/nl.mpcjanssen.todotxtholo/files/done.txt
  9. Create a OwnCloud-Webdav-Account in Foldersync ([OwnCloud-URL]/owncloud/files/webdav.php)
  10. Create a folder-pair in Foldersync: [OwnCloud-folder] <-> /data/data/nl.mpcjanssen.todotxtholo/files (disable syncing of subfolders)

Spring Integration upgrade from 1.0 to 2.0.3

Today I had the pleasure to upgrade from Spring Integration 1.0 to 2.0.3 in a big project. As there are some major changes in 2.0 it took me several hours just to get everything compiling – not thinking about to get the millions of tests to run ;).

Here is what I found out besides the stuff that can be found in the official migration document or in this helpfull blogpost from JTEAM.

  • MessageChannel#getName
      removed
  • void AbstractReplyProducingMessageHandler
    #handleRequestMessage(Message, ReplyMessageHolder)
      replaced by
    Object AbstractReplyProducingMessageHandler
    #handleRequestMessage(Message)
  • org.springframework.integration.channel.MapBasedChannelResolver
      removed (each router can have mappings now)
  • MessageChannelTemplate
      renamed to
    MessagingTemplate
  • MessageChannelTemplate#send(Message, MessageChannel)
      replaced by
    MassagingTemplate#send(MessageChannel, Message)

Autorotation in WebOS

Je nach Lage des Gerätes ändern viele WebOS-Anwendungen die Ausrichtung der Darstellung (Hoch- oder Querformat). Das ist oftmals ganz nett, vor allem beim Betrachten von Bildern, Videos oder Webseiten. Manchmal kann es aber auch ganz gewaltig nerven. Vor allem dann, wenn der Lagesensor sich mal wieder Zeit lässt (das scheint nur bei manchen Geräten wie meinem PRE aufzutreten) und die Anzeige partout in der Vertikalen verharrt.Besonders schlimm ist das bei Anwendungen, bei denen das Querformat keinerlei Zusatznutzen mit sich bringt. Nennen wir diese Art von Programmen der Einfachheit halbe NOAs (Normal-Orientation-Apps) :).

Da ich gerade an einem kleinen NOA arbeite, habe ich die Autorotation mittels

this.controller.setWindowOrientation("up");

kurzerhand deaktiviert.

Wenn man nun weiß, dass dank JavaScript alle WebOS-Web-Anwendungen quasi Zwangs-Open-Source sind, lässt sich das nervende gedrehe von NOAs mit relativ geringem Aufwand unterbinden.

Zunächst ein paar technische Details:

  • Programme, die nicht direkt von Palm stammen liegen im Verzeichnis
    /media/cryptofs/apps/usr/palm/applications/
  • Wie bereits angesprochen lässt sich die Ausrichtung mittels
    this.controller.setWindowOrientation("up");

    fixieren.

  • Ares setzt die Ausrichtung per default in
    StageAssistant.prototype.setup (app/assistants/stage-assistant.js)
  • auf “free”:
    this.controller.setWindowOrientation("free");

Der erste Anlaufpunkt ist also der Stage-Assistent. Findet sich hier die entsprechende Zeile zum Festlegen der Ausrichtung, so ändert man den Wert einfach von “free” auf “up”. Wenn nicht, kann man versuchen, die Zeile einzufügen, allerdings muss dann davon ausgegangen werden, das der Autor des Programmes diese Einstellung an anderer Stelle vorgenommen hat. In dem Fall bleibt nur die Suche nach besagter Zeile in den anderen Assistenten.

Die Änderung lässt sich am Einfachsten mit Internalz direkt auf dem Gerät durchführen (Coding auf dem Handheld ;)).