Stoppt die Vorratsdatenspeicherung! Jetzt klicken &handeln! Willst du auch an der Aktion teilnehmen? Hier findest du alle relevanten Infos
und Materialien:
Sie sind hier: Startseite Blog

Blog

Petition gegen das BND-Gesetz

Reporter ohne Grenzen haben eine Petition gegen das BND-Gesetz online. „Wir fordern, dass der deutsche Bundestag Schutzpflichten für Journalisten und andere Berufsgeheimnisträger (…) ins neue ...

25.08.2016 10:31

Totgeburt Volksverschlüsselung

Laden Sie mich ein, das zu diskutieren

Ich halte von der Volksverschlüsselung nichts, sie ist eine Totgeburt, weil viel zu kompliziert und wieder zentralistisch. Ich hatte eine ganze Reihe von Argumente dagegen gesammelt, aber die beste Zusammenfassung fand ich in den Secorvo Security News 07/2016:

Die Volksverschlüsselungs-Software, die die Fraunhofer Gesellschaft mit Unterstützung der Deutschen Telekom am 29.06.2016 in der aktuellen Version zum Download bereit gestellt hat, um Ende-zu-Ende E-Mail-Verschlüsselung auf Grundlage von S/MIME und PGP mit kostenlosen Zertifikaten für private Endanwender tauglich zu machen, ist gar keine Verschlüsselungslösung – sie kümmert sich allein um die Erzeugung und Einbindung des Public-Private-Schlüsselpaars.

Keine ganz neue Idee: Schon Anfang der 2000er Jahre hatte TC Trustcenter kostenlose S/MIME- und PGP-Zertifikate für Privatnutzer im Angebot.

Vor allem aber kombiniert sie die Nachteile offener und geschlossener PKIs: den aufwändigen Registrierungsprozess einer jedermann offenstehenden PKI mit der Beschränkung auf „mitspielende“ Kommunikationspartner wie bei einer geschlossenen PKI.

Vielleicht sollte man lieber die vereinfachte Benutzerschnittstelle der Open-Source Volksverschlüsselungs-App mit einem Open-Source E-Mail-Client wie bspw. Thunderbird kombinieren – und auf die ebenfalls kostenlosen E-Mail-Zertifikate öffentlicher Trust Center wie Comodo oder StartCom zurückgreifen

Um Verschlüsselung in die Breite zu tragen, ist die Volksverschlüsselung also ungeeignet.

Die in meinen Augen richtige Lösung heißt p≡p (Pretty Easy Privacy), das jetzt endlich öffentlich verfügbar ist. Was pEp will und kann erklärt sehr gut die 10-Minuten-Zusammenfassung eines Vortrags von Volker Birk, dem Kopf hinter pEp. Zu pEp werde ich bald mehr schreiben.

Falls Sie eine Diskussions-Veranstaltung zu diesem Thema planen, laden Sie mich doch ein. Ich bin gerne bereit, meine Position fundiert zu vertreten.

09.08.2016 09:37

Warum Sie nicht Perl programmiern sollten

Ein Freund hatte angekündigt, es wolle jetzt "richtig" Perl lernen. Ich rat ihm dringend davon ab. Hier, was ich ihm geschrieben habe:

Lieber Freund

es lässt mir keine Ruhe, dass Du Deine Lebenszeit mit so schlechten Dingen wie Perl vertun möchtest.

Ich hab schon mit einigen Programmiersprachen gearbeitet und mir viele angesehen. Perl ist eine der schlechtesten! Perl versagt bei der wichtigen Aufgabe, dem Programmierer zu unterstützen. Im Gegenteil: Perl steckt voll Fallstricke und Undurchdachtem.

Ein paar Beispiele:

  • Der Rückgabewert vieler Standard-Funktionen hängt vom Aufrufkontext ab. Mal ein Scalar, mal ein Hash, mal ein Objekt.
  • Durch automatische Typumwandlung fällt man immer wieder auf die Schnauze. Statt der Liste oder dem Hash hast du plötzlich die Anzahl der Elemente darin - oder war es der höchste Index? Damit musst du aber auch denn wissen, was eine Funktion liefert, wenn dich der Wert überhaupt nicht interessiert und du ihn nur an eine andere Funktion weiterreichen willst.
  • Übergeben von Parametern an Funktionen t eine Krankheit, alles muss der Programmierer selbst schreiben:
    • Die Parameter einer Funktion werden als dumme Liste übergeben, man muss sie selbst den einzelnen Variablen zuweisen. Welche Parameter die Funktion annimmt, *kann* man in einem Prototype festlegen, aber trotzdem muss man die Liste der Argumente weiterhin händisch auswerten.
    • "Named parameter" muss man komplett händisch implementieren, siehe das Beispiel in http://docstore.mik.ua/orelly/perl/cookbook/ch10_08.htm. Wenn der Nutzer der Funktion dann zu viele oder unbekannte Parameter übergibt, gibt es keine Fehlermeldung -- außer der Programmierer hat das extra programmiert. Doppelte Parameter werden dabei gar nicht erkannt.
  • Dinge die eigentlich der Normalfall sind, muss man ausdrücklich hinschreiben und der Normallfall ist das, was man nur selten will:
    • Dinge, die man eigentlich immer braucht, um sauber zu programmieren muss man extra einschalten: use strict, user warnings.
    • Unausgereiftes Scope-Konzept: Der Normalfall ist eigentlich, dass man lokale Variablen nutzen möchte. Auch hier muss man den Standard Fall wieder mit „my“ angeben.
  • Eine Klasse zu definieren ist ein religiöser Akt ("bless") und insgesamt umständlich. Es scheint zwar ein Modul zu geben, dass das besser macht, aber da sind wir wieder bei: "einfaches ist umständlich".
    • Zitat vom "perlmaster" aus dem aktuellen Linux-Magazin (8/2016, S. 92): "… niemand, der einigermaßen bei Verstand ist, hätte auch nur in einem mittelgroßen Programm die zu Klassen gestempelten Hashstruktuen […] verwendet."
  • Das Modulkonzept ist der Sprache aufgepfropft.
  • Die gesamte Syntax ist unübersichtlich, es gibt keine EBNF o.ä. der Grammatik, "only perl can parse Perl". Für alles Mögliche gibt es eigene Syntax-Konstrukte, die aber keine wirklichen Vorteile bringen. Man merkt, dass Larry Wall Sprachwissenschaftler ist und keine Ahnung von Programmiersprachen hat. Das Ganze ist zusammengestöpselt aus alten Unix-Tools, und so schaut es auch aus.
  • Kein Exception-Handling, dadurch muss man eval() benutzen, wenn man Fehler abfangen will. Wenn Du einmal erkannt hast, wie elegant man Programmieren kann, wenn es Exception-Handling gibt, möchtest Du es nicht mehr missen. Der Clou ist nämlich, dass man nicht bei jeder Funktion eine Fehlermeldung zurückgeben muss und nicht bei jedem Funktionsaufruf auf Fehler prüfen muss.
  • Nachgestellte Kontrollstrukturen – lassen sich super einfach lesen.
  • Ständig muss man kryptische Zeichen vor den Variablennamen schreiben, teilweise mehrere. Was ich mich damit abgekämpft habe.

Ich habe auch ein halbes Jahr mit Perl programmiert. Das war die unproduktivste Zeit meines Lebens. Zum Glück habe ich dann Python entdeckt, siehe auch die ca. 20 Zeilen des "Zen of Python" [1],[2]. Ich spare es mir, aufzuzeigen, dass alle oben genannten Punkte in Python besser gelöst sind, aber zu Parametern empfehle ich einen Blick auf http://www.diveintopython.net/power_of_introspection/optional_arguments.html

Lieben Gruß
Hartmut

01.08.2016 10:01

Get current locale with Ansible

I just had the problem to get the currently set locate using ansible. This is non-trivial, since one has to consider four environment variables: LC_ALL, LC_MESSAGES (or another one), and LANG. For details see the Locale Categories documentation.

Now here is the solution, included into an ansible playbook:

# -*- indent-tabs-mode: nil -*-
---

- hosts: all
become: yes
gather_facts: false

vars:

env1:
LC_ALL: "de_DE.UTF-8"
LC_MESSAGES: "de_AT.UTF-8"
LANG: "de_CH.UTF-8"

env2:
LC_MESSAGES: "de_AT.UTF-8"
LANG: "de_CH.UTF-8"

env3:
LANG: "de_CH.UTF-8"

env4:
empty: empty


davical_default_locale: '{{ (ansible_env.LC_ALL|d(ansible_env.LC_MESSAGES)|d(ansible_env.LANG)|d("en")).split(".",1)[0] }}'

tasks:

- set_fact:
ansible_env: '{{ env1 }}'
- debug: var=davical_default_locale

- set_fact:
ansible_env: '{{ env2 }}'
- debug: var=davical_default_locale

- set_fact:
ansible_env: '{{ env3 }}'
- debug: var=davical_default_locale

- set_fact:
ansible_env: '{{ env4 }}'
- debug: var=davical_default_locale

20.02.2016 14:48

Artikel zu debops im iX Magazin

In der aktuellen Ausgabe 2016-01 des iX Magazins ist eine Artikel von mir zu debops.

debops ist eine Sammlung von sogenannten Playbooks für Ansible. Ich benutzte es selbst, um meine Server zu verwalten.

Den Artikel gibt es im iX Artikel-Archiv zum download – und das sogar kostenlos.

21.12.2015 11:55

Verschlüsselte Mailingslisten

Für ein NGO habe ich recherchiert, welche Möglichkeiten es gibt, Mailinglisten zu verschlüsseln.

Zum Verwalten der Mailinglisten verwendet das NGO Mailman 2 – eines der weitest verbreitetsten und besten Programme hierfür.

Hierbei gibt es grundsätzlich zwei Möglichkeiten:

  1. Alle Abonnenten bekommen den privaten Schlüssel der Mailingliste
  2. Ein sogenannter Patch für die Mailinglisten-Software

In beiden fällen wird ein GPG-Schlüssel auf die auf Adresse der Mailingliste ausgestellt.

Alle Abonnenten bekommen den privaten Schlüssel der Mailingliste

zu 1): So wie jede.r Abonnent.in einen eigenen GPG-Schlüssel erstellt, erstellen wir einen auf die Adresse der Mailingliste. Wenn wir an die Liste schreiben, werden die Mails für diesem Empfänger verschlüsselt. Damit jede.r Abonnent.in die Mails dann entschlüsseln kann, bekommt sie/er den privaten Teil des Schlüssels.

Das widerspricht zwar der "reinen Lehre", wie mit privaten Schlüsseln umzugehen ist, kann für viel Anwendungsfälle aber völlig okay sein.

Der Nachteil dieser Lösung ist, dass sie nicht skaliert. Sprich: Für einen kleinen Empfängerkreis mit geringer Fluktuation funktioniert das. Aber für größere Gruppen wird es schwierig.

Ein sogenannter Patch für die Mailinglisten-Software

zu 2)  Für Mailman gibt es einen Patch, also eine eine kleinere Softwarekorrektur, die Mailman Unterstützung für GPG- und S/MIME-verschlüsselte Mails beibringt

Auch hier würden ein GPG-Schlüssel auf die Adresse der Mailingliste ausgestellt. aber der private Teil würde nicht verteilt sondern bliebe auf dem Mailinglisten-Server. Dort würden für jede.n Abonnent.in deren öffentlichen Schlüssel abgelegt werden. Mailman würde dann die Mails entschlüsseln und für alle Abonnentinnen verschlüsseln.

Vorteil dieser Lösung wäre, dass sie skaliert, also auch für Mailinglisten mit hoher Fluktuation oder vielen Abonnentinnen praktikabel wäre.

Nachteil ist, dass Admins sich gerne weigern diesen Patch zu installieren - oder die Mailinglisten werden von einem Dienstleister betrieben, den man nicht davon überzeugen kann.

14.12.2015 07:35

Vortrag "Digitalen Selbstverteidigung für Unternehmen"

Am 21. Oktober 2015, 18 Uhr im Wirtschaftsrathaus, Theresienstraße 9, 90403 Nürnberg.

Wer auf der it-sa nicht dabei sein konnte: Im Rahmen Security Angels halte ich meinen neuen Vortrag "Digitalen Selbstverteidigung für Unternehmen" – diesmal in der  Langfassung.

Veranstalter sind der NIK e.V., die IHK und die Stadt Nürnberg.

Die Teilnahme ist kostenlos. Anmeldung und weitere Infos unter http://www.nik-nbg.de/veranstaltung/digitalen-selbstverteidigung-fuer-unternehmen/

17.10.2015 10:10

Vorratsdatenspeicherung: Jetzt Verfassungsbeschwerde unterschreiben!

Verfassungsbeschwerde braucht politisches Gewicht

Morgen beschließt die große Koalition im Bundestag erneut die anlasslose Überwachung der Bevölkerung, auch bekannt als Vorratsdatenspeicherung. Und das, obwohl sowohl das Bundesverfassungsgericht sie als verfassungswidrig und der Europäischen Gerichtshof als Verstoß gegen die Europäischen Grundrechtecharta erklärt haben.

Unterzeichnen Sie die die Verfassungsbeschwerde: https://digitalcourage.de/weg-mit-vds.

Als Trojanisches Pferd ist dort übrigens auch der Straftatbestand der "Datenhehlerei" eingebaut, der Wistleblowing unter Strafe stellt – und damit verhindert, dass Bürger erfahren, wenn der Staat seinen eigenen Gesetze bricht.

Weiter Infos beim Arbeitskreis gegen Vorratsdatenspeicherung. Dort bin auch ich aktiv.

15.10.2015 10:14

Bestanden! ISO 27001 Lead Implementer

Heute kam das Resultat: Ich hab die Prüfung bestanden.

Bestanden! ISO 27001 Lead Implementer

Bestätigung der bestandenen Prüfung zum "ISO 27001 Lead Implementer (PECB)"

Buh, da bin ich froh! Ich hatte ja etwas Bedenken, ob ich nicht – ob meiner anderweitigen Erfahrung – Fragen "falsch" oder eben zu "ist doch alles klar"-einfach beantwortet. Aber das war anscheinend nicht der Fall.

Jetzt muss ich mich noch "Endorsen" lassen, also Nachweisen, dass ich genügend Erfahrung in der Praxis habe. Dann darf ich mich "ISO 27001 Lead Implementer (PECB)".

30.09.2015 18:36

Bewertung PGP-Verschlüsselung bei Web.de und GMX

Für Digitalcourage habe ich eine kurze Bewertung neuen PGP-Verschlüsselung bei web.de und GMX erstellt.

Laut einem Artikel in der Zeitschrift c't:

"Die [...] Variante des Plug-ins Mailvelope erstellt und verwaltet alle PGP-Schlüssel lokal im Browser."

Die Verschlüsselung erfolgt ebenfalls im Browser.

Aus einer Meldung bei heise online:

[... Sicherung...] dann wählt man das Schlüsselpasswort und sichert schließlich die automatisch erzeugten Schlüssel samt Passwort. Diese Daten werden in einen Container gepackt, der lokal verschlüsselt und dann bei 1&1 gespeichert wird. Das hierfür zufällig erzeugte 26-stellige Passwort bleibt beim Nutzer.

Bei der Sicherung Der private Schlüssel und dessen Passwort landet also bei GMX und web.de, geschützt mit einem 26-Zeichen langen Passwort. Dem Beispiel nach besteht das Passwort aber nur aus Kleinbuchstaben und Ziffern, entspricht also *sehr grob* geschätzt einem Passwort von 23 Zeichen mit Klein, Groß, Ziffern.

Laut http://img.ui-portal.de/cms/webde/produkte/sicherheit/pgp/lp/Anleitung-Verschluesselte-Kommunikation-WEB.DE.pdf ist die Sicherung optional, die Leute werden aber dazu angehalten bze. animiert, die Schlüssel zu sichern.

Mit dieser Sicherung kann man die Schlüssel auch auf andere Rechner übertragen. das geht jedoch auch, indem man die Schlüssel in der Browser-Erweiterung exportiert - ist nicht so bequem, verhindert aber, dass der Schlüssel beim Provider landet. Schade, dass GMX und web.de hier keine Möglichkeit anbieten, den als z.B. QR-Code Schlüssel auszudrucken, sondern die Leute dazu animieren, den Schlüssel zu ihnen hoch zu laden.

Unklar ist mir noch, ob die gesamte Nachricht verschlüsselt wird, oder nur der Inhalt und die Anhänge eben nicht. Siehe hier zu auch diese Hinweise von Posteo.

Bewertung

Insgesamt schient die Lösung ganz passabel. Es gibt jedoch einige kritische Punkte:

  1. Um diese Funktion zu benutzen, benötigt man ein Browser-Plug-in, man kann also nicht mehr den Rechner eines Bekannten nutzen (das sollte man sowieso eher nicht, aber das ist eine andere Frage). Weshalb liest man seine Mails dann überhaupt im Browser und benutzt nicht gleich ein richtigen Mail-Programm?!
  2. Es ist unklar, wie gut die Software-Komponente opnePGP.js ist, mit der die eigentliche Verschlüsselung erfolgt.
  3. Die Schlüssel werden innerhalb des Browsers verwaltet. Sie stehen anderen Anwendungen also nicht zur Verfügung.

Damit bleibt als einzige Begründung: Weil es bequem ist. Nun, das ist p≡p (Pretty Easy Privay) auch. Das verwendet aber Software-Komponenten, die seit langen Jahren ausgereicht sind, beispielsweise GnuPG.

[Update 2015-09-14: Bewertung aufgenommen]

01.09.2015 09:51

(0) Kommentare