Neu hier: OpenID

OpenID

OpenID ist ein SingleSignOn-System (hauptsächlich für webbasierte Dienste), daß eine geniale Lösung für die Probleme bietet, die aus der Abhängigkeit von einer zentralen Stelle entstehen: es arbeitet verteilt. Als Identität braucht man eigentlich nur eine Adresse (in URL-Form), von der aus man auf eine Identität bei einem OpenID-Provider (Identity Provider) verweist. Nur dort meldet man sich noch an, weitere Dienste machen die Anmeldung dann mit dem IdP aus (und auch die Freigabe und Übertragung von Metadaten wie Name, eMail-Adresse und Geburtsdatum).

Da das alles auf einem offenen Protokoll basiert gibt es einen Haufen Identity Provider — und man kann sich auch selbst einen aufsetzen (das habe ich natürlich sofort gemacht…). Und sollte der ausgewählte IdP mal verschwinden (oder unsympatisch werden), dann kann man seine Identität zu einem anderen deligieren.

Das sind genug Gründe um dieses Verfahren zu unterstützen. Ich will deshalb alle Dienste auf wazong.de nach und nach mit einer OpenID-Anmeldung ausrüsten. Die WordPress-Installation für dieses Blog hat jetzt schon das WP-OpenID-Plugin von Will Norris. Wer mit einer OpenID-fähigen URL kommentiert, der kann sich die Eingaben für Name und eMail-Adresse sparen.

Eigenartig ist nur, daß ausgerechnet mein eigener IdP und das WordPress-Plugin noch nicht ordentlich miteinander reden. Da ist noch Debugging angesagt.

Schlüsselkind

Während der aktuellen Diskussionen um Speicherung und Schutz der Daten habe ich mal wieder (zum soundsovielten mal) angefangen, aktiv OpenPGP für meine eMails zu benutzen. Das Problem bei jedem Anlauf bisher: kein Schwein wollte mitmachen (typisches Zitat: „Nett. Aber können wir jetzt dann wieder normale Mails schreiben?“). Deshalb freue ich mich ganz besonders über die Aktion Verschlüsselt Euch!:

Grafik von Bulo, Aktion von lanu

Hier also auch mein aktueller öffentlicher Schlüssel:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)

mQGiBEPceugRBAD3IxXerZF1LOucE/lgbJPNuZCaTYZbZmwrsKnVFBiqfO5PmN+h
qIJ1ldyqJzQ8+4rwX7ybahOx7CpXS49ODg1aM27jJs9BBrdQ3f7eLs9BrIRUBXtQ
X4yuOmYQu9/j5pEQOWSCV0+RSg8IPXY05HTexEhpFMXQVX2Dyt//mpZ42wCgofdg
0En6JZPZ5RVrRevT9WdGr1MD+QG4O1psjb2jCej5lyqqxGil3LCpsNeoYC+QvS0J
JX3nz4qWSxTbOlC9eHoLOJ7KFU0VNsAMSUA0+f+zsWB4bkHU/88WwWI1bxrkqYWe
pSwSJCbFfGdXTsZYqzOfOXDkCftKpV8XKOGJ8Yvy0nmAvMrdqiuXSIqxn6SdeGUo
mzXfA/9J1DtmjcKIygfjOOVyDqtm4wIeg2Ll8lrSFJWOkkUhgfCjOikYJ9SO1AC0
pxJWJm/QnlG1TFIUIuss/ff2WKM39/Py+GYJTI3XhOY4nQjlQyQct/qAB4kQDYVj
+dVur7CcpsP4iHb1x7fvlrXjl7tm46yt3PApDTWsYH/pOQlsFbQnVGhvbWFzIFJl
bmdlciA8dGhvbWFzLnJlbmdlckB3YXpvbmcuZGU+iGQEExECACQCGwMFCQPCZwAC
HgECF4AFAkPcfi0GCwkIBwMCAxUCAwMWAgEACgkQw4J4gr7QvEsm4ACfd1mCXqUo
dEpjhCbFCTZMHJDXp1IAnREM+jrvQSo4x80Ow3f2wfEmzgJAtCFUaG9tYXMgUmVu
Z2VyIDxkZW50YWt1QHdhem9uZy5kZT6IZAQTEQIAJAIbAwUJA8JnAAIeAQIXgAUC
Q9x+NwYLCQgHAwIDFQIDAxYCAQAKCRDDgniCvtC8S2mYAJ0ZQt0cNIvY+VJIapVR
IxrZhw5UOQCeJUHgr52+H8ZMIYT4ovOl3GvzYhe5Ag0EQ9x68hAIAI87YS7ir+/p
bfyvI5lJn1uqRB1BuiLfOUres8jz4HBumbUXvgRJgIriJQjkbuiFfWLJb00HISMy
Ina5wNkr4m3r5g/196fBrV8u37NOmSIorbV147y2yRX500i6FyzjQNwm/obd33ga
t+qcCS09ZzdO0cP6/pm2N3eVCM8ylvWdYMqjWj7RWV8sgwJ4sdgAML5YcNRLuDw4
+OfJjnRgoD3PFOhZerwtAnlfjx//V9WmvUnSRF7GZ7U9+NzZK6Er6WIe/tr0QF4H
fcFyKy/Ol52hzdvJUfDk7gPv7eklbrHVc/56qksdqT0lgdsoz2bDfiuX5zmwxDFF
v+4rdtRXMRMAAwUH/AglXV63jNgG7BxwuzUa/sa6WANqW+fvaQmrbaEBEHEJglIE
hNNtrneYWNwQaYgLPQk/OHxLIzMgkqWTiAT9wSpGiGywBkugtzWDdnQsEAxA57Im
lF/ZgykvU0E4QpfuF0AFi+DT8I5cwMCO1Az9N4NPEwe2L4gKfv1mvcZ7l9J/qlVt
3kvH4mMCRwqcEEFSyEKrCj2RNyduN6lfyEbXCU7qiQx42WBnsCnLP2qxn4F0d2AV
IDkZ1HllcyYqD+8OdDnxEjCNB2Y0RWbge6DG3zDXByWjFo0iVdVcb/HxDrOuKIHd
79EU+6kgOg3i2Xo5vnqJ9bYRJzQ2JCYdlEpRQcOITwQYEQIADwUCQ9x68gIbDAUJ
A8JnAAAKCRDDgniCvtC8S5bAAJ993YqKPb1Ni069Wdu+vzsuSEzZuwCeKqMKpjVM
S6DoWXLvpvizLU87FuU=
=yRf7
-----END PGP PUBLIC KEY BLOCK-----

(bzw. hier als Datei).

So, und jetzt holt Euch alle schön enigmail und schickt mir (und lanu) Eure öffentlichen Schlüssel, damit da endlich mal was vorwärtsgeht…

Gefälschter GoogleBot auf der 64.20.43.134

Es sieht ganz so aus als hätte ich Google zu unrecht beschimpft: Bei genauerer Betrachtung stellte ich fest, daß alle unsinnigen GoogleBot-Anfragen von derselben IP-Adresse kamen. Im Gegensatz zu den normalen GoogleBot-Adressen, die alle schön den Eigentümer ausweisen:

dentaku@charon:~$ host 66.249.65.110
Name: crawl-66-249-65-110.googlebot.com
Address: 66.249.65.110

dentaku@charon:~$ whois 66.249.65.110
OrgName:    Google Inc.
OrgID:      GOGL
Address:    1600 Amphitheatre Parkway
City:       Mountain View
StateProv:  CA
PostalCode: 94043
Country:    US
[...]

…scheint diese Adresse jemand ganz anderem zu gehören:

dentaku@charon:~$ host 64.20.43.134
64.20.43.134 does not exist, try again

dentaku@charon:~$ whois 64.20.43.134
OrgName:    Interserver, Inc
OrgID:      INTER-83
Address:    PO Box 244
City:       Fort Lee
StateProv:  NJ
PostalCode: 07024
Country:    US
[...]

Und tatsächlich: wenn man nach dieser Adresse sucht findet man Hinweise, daß sie sich öfter danebenbenimmt — z.B. eine unbegrenzte Sperre in der Wikipedia. Trotz exakt identischen User-Agent-Eintrags gehe ich mal davon aus, daß die Adresse nichts mit Google zu tun hat und sperre sie ebenfalls aus:

root@charon:~$ iptables -I INPUT -s 64.20.43.134 -j DROP

301: Google-Terror

Die Google scheint die Umstellung für no-www. nicht zu verstehen und ihr GoogleBot irrt auf meinem Server im Kreis. Schon über 10000 Zugriffe auf dieselben 3 Seiten (und pro Sekunde kommen 5-10 dazu).

He Leute! HTTP-Status 301 heißt „moved permanently“, das ist jetzt woanders, das läd man nicht gleich nochmal (und nochmal und nochmal)!

Nachtrag:

40000 Hits

Wii-llkommen

Ich freue mich über jeden Gast, der nicht mit einer Standardkombination an Betriebssystem und Browser vorbeischaut. Das gibt mir das beruhigende Gefühl, daß die „Großen“ noch nicht das ganze Netz erobert haben. Bisher interessant im November:

         Hits      User Agent
----------------  ----------------------
...
546        0.79%  Mozilla Thunderbird 2.0 (Windows XP)
...
58         0.08%  Netscape 7.1 (Windows 95)
...
37         0.05%  Mozilla 1.4 (FreeBSD)
...
34         0.05%  Mozilla 1.7 (Solaris)
...
30         0.04%  Konqueror 3.5
...
19         0.03%  Opera 9 (Nintendo Wii)

Das Fernmeldegeheimnis ist unverletztlich (noch)

Ich hatte mich ja vor kurzem mit der technischen Durchführbarkeit der Vorratsdatenspeicherung beschäftigt. Die Probleme, die ich dort kurz beleuchtet habe stellen natürlich nicht den einzigen (und nicht einmal den wichtigsten) Grund dar, um gegen das ganze Ansinnen zu sein. Hier kommen all die juristischen Bedenken und dystopischen Schreckensszenarien ins Spiel, die ich in dem oben erwähnten Artikel absichtlich ausgeklammert habe.

Bevor das neue Gesetz morgen im Bundestag (vermutlich) durchgewunken wird sollten daher möglichst viele Bürger nochmal klarstellen, daß sie damit nicht einverstanden sind (Demokratie!), und wenn ich schon nicht an der physischen Demonstration teilnehmen konnte (hey Leute, Stuttgart 17:00-19:00? Da bin ich noch im Büro) , so kann ich wenigstens diese Seite „Trauer tragen“ lassen:

Stoppt die Vorratsdatenspeicherung!

(Todesanzeige vom Arbeitskreis Vorratsdatenspeicherung)

Ich les‘ jetzt nochmal 1984…

Vorratsdatenspeicherung. Wie geht das eigentlich?

Über die juristischen Aspekte der Vorratsdatenspeicherung wurde ja schon regelmäßig an verschiedenen Stellen geschrieben. Wer da noch irgendwelche Informationen braucht, der soll mal da nachlesen.

Ich bin aber nun einmal kein Jurist sondern Techniker, und ich mache mir deshalb ganz andere Gedanken. Deshalb blende ich mal die Frage des Sinns und der Rechtmäßigkeit aus und beschäftige mich nur mit der technischen Machbarkeit.

Welche Daten sollen wir Sammeln:

Nachdem erst Horrormeldungen über die Protokollierung jeder TCP/IP-Verbindung (oder sogar jedes Pakets) kursierten, hat man sich inzwischen auf eine Interpretation geeinigt, in der die gesammelten Daten sehr den ohnehin vorhandenen Logfiles ähneln. Von den Protokollpflichtigen Diensten betreibe ich auf meinem Server nur eMail. Da entstehen bei Versand und Empfang etwa diese Daten (die Mail geht von diesem WordPress-Blog an mich selbst):

Nov  2 17:00:52 charon postfix/pickup[12229]: DEDF9FC443A: uid=33 from=<www-data>
Nov  2 17:00:52 charon postfix/cleanup[14398]: DEDF9FC443A:
   message-id=<1e8ccd8056aded93f095b735e2d1373f@wazong.de>
Nov  2 17:00:52 charon postfix/qmgr[30704]: DEDF9FC443A:
   from=<www-data@wazong.de>, size=1154, nrcpt=1 (queue active)
Nov  2 17:00:52 charon postfix/local[14502]: DEDF9FC443A:
   to=<dentaku@wazong.de>, relay=local, delay=0,
   status=sent (delivered to command: procmail -a "$EXTENSION")
Nov  2 17:00:52 charon postfix/qmgr[30704]: DEDF9FC443A: removed

Beim Abruf diese:

Nov  2 16:08:54 charon imaplogin: LOGIN, user=dentaku,
   ip=[::ffff:90.186.88.15], protocol=IMAP
[...]
Nov  2 16:45:17 charon imaplogin: LOGOUT, user=dentaku,
   ip=[::ffff:90.186.88.15], headers=20200, body=2439620

Vergleichen wir das mal mit dem Gesetzesentwurf, wie er auf vorratsdatenspeicherung.de steht:

Anbieter von Diensten der elektronischen Post (E-Mail) speichern

  1. bei Versendung einer Nachricht die Kennung des elektronischen Postfachs und die Internetprotokoll-Adresse des Absenders sowie die Kennung des elektronischen Postfachs jedes Empfängers der Nachricht,
  2. bei Eingang einer Nachricht in einem elektronischen Postfach die Kennung des elektronischen Postfachs des Absenders und des Empfängers der Nachricht sowie die Internetprotokoll-Adresse der absendenden Telekommunikationsanlage,
  3. bei Zugriff auf das elektronische Postfach dessen Kennung und die Internetprotokoll-Adresse des Abrufenden,
  4. die Zeitpunkte der in den Nummern 1 bis 3 genannten Nutzungen des Dienstes nach Datum und Uhrzeit unter Angabe der zugrunde liegenden Zeitzone.

Ja, alles da.

Die Schwierigkeit wäre also eher entweder ein einheitliches Logformat einzuführen (lustig in diesem Zusammenhang, daß ausgerechnet der Webtraffic, für den es mit CLF einen Quasistandard gäbe, nicht bevorratsspeichert werden soll) oder für jedes Logformat einen Parser zu schreiben, der die gewünschten Daten extrahiert.

Platz:

Diverse Artikel haben ja schon größere Bedenken über die Menge der gespeicherten Daten geäußert. Diese Bedenken teile ich nur bedingt: natürlich kostet das alles Geld, die Preise für Speichermedien fallen aber so schnell, daß das keinen Provider in die Pleite treiben wird (kommt schon Leute, wohin speichert denn flickr die ganzen Bilder, selbst für unbezahlte Accounts?). Außerdem speichern die meisten Dienste die Daten ohnehin schon durch die ganz normalen Logfiles (siehe oben). Problematisch wird die Datenmenge erst bei der Auswertung (immer wieder lesenswert dazu: dieses Interview).

Wie kommen die Daten jetzt zu den Strafverfolgern:

Jetzt sind die Daten also vorgehalten, wie kommen die berechtigten Behörden denn jetzt dran? Dafür muß eine neue Serversoftware erstellt werden, an die auf alle Fälle hohe Sicherheitsanforderungen bestehen:

Einerseits darf natürlich nicht irgendein unberechtigter die Daten abrufen, es wird also eine X509/TLS-artige Schlüsselinfrastruktur benötigt. Damit kann sich die Behörde gegenüber dem Logfilesammler (auf Wunsch auch umgekehrt) ausweisen, und die Möglichkeit zur verschlüsselten Übertragung gibt’s bei vielen Implementationen auch gleich noch dazu.

Andererseits soll der Serverbetreiber natürlich möglichst auch nicht merken, daß die Daten eingesehen werden (denn er steckt ja vielleicht mit den bösen Buben unter einer Decke). An dieser Stelle wird es kompliziert, denn wenn auf der Vorratsdatenspeicherungsschnittstelle sonst nie was passiert, dann sieht der Administrator den Zugriff allein schon an den Datenvolumenauswertungen (insbesondere dann, wenn diese auf IP-Port-Basis aufgebrochen sind):

MRTG

Da hilft es nur, die Daten ganz langsam herunterzuladen — aber was ist „langsam“ genau?

Besser ist es, ständig (oder unregelmäßig) auf allen (oder zufälligen) angebundenen Servern Datenverkehr erzeugen, so wie es z.B. TOR macht, das ist aber durch hohe Übertragungskosten recht teuer.

Software:

Was wäre sonst noch zu wünschen?

Da die Logfiles doch eine beträchtliche Datenmenge beinhalten, die in dieser Form nur aufwendig durchsucht werden kann sollten die gewonnenen Daten in einer relationalen Datenbank mit guter Indexmöglichkeit abgelegt werden (sonst sieht der Betreiber die Abfrage an der Prozessorlast statt am Datenverkehr). Das erleichtert auch die Löschunggenau der Daten, deren Aufbewahrungspflicht abgelaufen ist.

Damit die neue Schnittstelle zur Abfrage nicht mit anderen Diensten kollidiert, sollte ihr am besten von der IANA offiziell einen Port zugewiesen werden (vgl. OpenVPN, die früher einfach Port 5000 benutzt haben — jetzt gehört ihnen „hochoffiziell“ Port 1194).

Aus den Problemen mit ELSTER sollte unser Land gelernt haben, daß es nicht gut ist, (Pflicht-)Software nur für ein Betriebssystem bereitzustellen. Wo man einer (achtung, Klischee) Werbeagentur mit reiner Maclandschaft vielleicht noch zumuten kann, sich für die elektronische Umsatzsteuervoranmeldung halt doch einen Windows-PC anzuschaffen, da ist die gesetzliche Zwangsumstellung aller Mail-, RADIUS-, VoIP- und …-Server auf eine einheitliche Plattform (z.B. Windows Server 2008, nur 64bit?) schlicht nicht durchführbar (wobei ich keine Prognosen darüber wage, ob es nicht trotzdem versucht wird). Anderenfalls würden sich die Provider der bösen Buben vielleicht durch möglichst exotische Betriebssysteme aus der Vorratsdatenspeicherungspflicht herausstehlen (z.B. MPE/iX?).

Abhilfe schafft hier nur der Vertrieb im Sourcecode (die Unterstützung von POSIX- und win32-API sollte hier fas alles abdecken) oder ein offengelegtes Protokoll, so daß verschiedene Implementationen von dritten erstellt werden können. In diesen beiden Fällen läßt es sich aber kaum zu verhindern, daß der behördliche Zugriff in der einen oder anderen Version aufgezeichnet wird — ein Dilemma, für das es keinen Ausweg gibt…

Die technisch saubere Lösung:

Es sei denn man dreht die Zugriffsrichtung um und überträgt die Daten ständig sobald sie anfallen. Dieser Trick löst elegant sowohl die Probleme des Speicherplatzes als auch des Mitlesens bei Zugriffen durch die Strafverfolgungsbehörden. Diese Variante fordert allerding uneingeschränktes Vertrauen in die Behörde, die sich dann im Besitz der Daten befindet (wobei der Unterschied zwischen Daten, die sich schon dort befinden und Daten, die bei Bedarf jederzeit abgerufen werden können eigentlich in der Praxis kaum ins Gewicht fällt).

Wir verlassen an dieser Stelle allerdings auch wieder die technischen Aspekte, drum höre ich hier auf.