Posts mit dem Label Computer werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Computer werden angezeigt. Alle Posts anzeigen

03.06.2020

Energieverbrauch beim Streaming - Leserbrief

Leserbrief zur Kolumne von Hr. Arnold, 26.05.2020
[veröffentlicht am 03.06.2020]

Hr. Arnold schreibt einige interessante Gedanken zum Stromverbrauch während der Corona-Krise.

Viel mehr Menschen bleiben zuhause und unterhalten sich dort mit Hilfe von Geräten, die natürlich Strom verbrauchen.
Insbesondere kritisiert Hr. Arnold das "Streaming", also das Anschauen von Filmen über Internet.

Die großen Anbieter hier sind Netflix, Amazon, Google (Youtube und Playstore Filme), Apple und zunehmend Disney+.
Der Energieverbrauch sowohl bei den Anbietern als auch bei den Konsumenten ist beträchtlich, wie Hr. Arnold zutreffend bemerkt. Aber es gibt deutliche Unterschiede zwischen ihnen, und diesen Punkt hätte ich mir stärker herausgearbeitet gewünscht.

Viele Anbieter verwenden intern Dienstleister zur Verbreitung ihrer Daten, sogenannte "Content Distribution Networks" (CDN), das sind lokale Zwischenspeicher, um die internationalen Datenleitungen zu entlasten. Hier gibt es große Unterschiede, wie effizient diese CDNs arbeiten.

Abgesehen davon sind viele große Anbieter inzwischen nahezu oder sogar schon vollständig klimaneutral, indem sie Ökostrom beziehen oder sogar selbst erzeugen (Google ist nach eigenen Angaben seit mehreren Jahren klimaneutral durch die Verwendung von eigenem Solarstrom).

Etwa ein Drittel des Stromverbrauchs von Rechenzentren wird für die Kühlung der Geräte aufgewendet. Viele moderne Rechenzentren lassen diese Abwärme nicht verpuffen, sondern leiten sie wie ein Blockheizkraftwerk nutzbringend weiter.
Der Energieverbrauch beim Streaming ist mittlerweile ca. 1% des weltweiten Gesamtverbrauchs, und das ist schon auffällig viel, aber nicht beunruhigend, z.B. durch diese Zweitnutzung.

Insgesamt kann man sagen, dass Google und Amazon sehr klimafreundlich sind und Netflix noch nicht besonders. Hier können wir als Verbraucher Druck ausüben.

Ein paar Zahlen zur Verdeutlichung: der Energiebedarf durch das Streaming wird auf weltweit 200 TWh pro Jahr geschätzt (Terawattstunden), das ist in etwa soviel wie Spanien. Deutschland hatte 2018 einen gesamten Energiebedarf von ca. 530 TWh, weltweit waren es 20.000 TWh. Zum Vergleich dagegen: der Rechenaufwand für Bitcoins erforderte immerhin 60 TWh, und der Nutzen von Bitcoins und Blockchains ist nach wie vor in der Fachwelt höchst umstritten.

Zum Schluss noch eine Anmerkung als Elternbeirat: durch die Corona-Krise wird deutlich, wie stark wir alle mittlerweile von der Digitalisierung profitieren und wo noch Mängel zu beheben sind. Auf Youtube z.B. gibt es großartige Filme und Filmchen, mit denen bestimmte Sachverhalte erklärt werden, und viele Lehrer nutzen in dieser Krise die Möglichkeiten gut, die Schüler zuhause zu erreichen und weiterhin zu bilden und zu beschulen. Vielen Dank dafür an alle Lehrer!

15.03.2018

Ich bau mir ein Linux wie es mir gefällt - 1

Seit langen Jahren bin ich begeisterter Nutzer einer ganz speziellen Linux-Variante namens "Linux from scratch".

Wie der Name sagt, wird dabei ein Linux-System von Grund auf ("from scratch") komplett neu gebaut. Dazu werden die Quelltexte verwendet, um selbst alle Pakete zu übersetzen und einen PC (oder ein anderes Rechnersystem) mit einem von Festplatte startfähigen Linux auszustatten.

Dabei hat man natürlich ein Henne-Ei-Problem: man braucht ein Linux, um das neue Linux zusammen zu bauen. Für dieses Problem gibt es mehrere Lösungsmöglichkeiten: zum Einen kann man das LFS in einer virtuellen Maschine zusammenbauen. Alternativ kann man auf dem Zielrechner zunächst eine kleine Partition mit einem anderen Linux einrichten, von dort starten und dann das LFS auf den freien Platz der Festplatte werfen. Das Linux zum Bauen kann man dann hinterher als Notfallsystem behalten, oder aus der Partition dann die Swappartition machen oder sie anderweitig verwenden. Für das allererste ("bootstrap") Linux reicht eine Minipartition von 8-16 GB, und dort kann man dann z.B. ein Linux Mint oder Fedora installieren.

"Linux from Scratch" ist nicht nur eine Anleitung für ein Linux zum Selbstbasteln, sondern ist hauptsächlich dazu gedacht, Erfahrung beim Bauen von Linuxprogrammen aus den Quelltexten zu sammeln.

Man lernt dabei eine ganze Menge, nämlich vor allem Zusammenhänge zwischen den verschiedenen Programmen, Konfigurationsdateien, aber auch viel über Netzwerke, und vor allem natürlich über die technischen Voraussetzungen, darunter die Verwendung von Makefiles, und man lernt, Logfiles zu lesen, um die Probleme zu beseitigen.

Bei "LFS" gibt es verschiedene Steigerungsmöglichkeiten, wie man sich selbst das Leben schwer und spannend machen kann. Man kann das Basissystem bauen, dann hat man "nur" eine Linux-Kommandozeile.

Darauf aufbauend ist es mit dem Fortsetzungsbuch "Beyond Linux from scratch" (BLFS) möglich, einen Server zu bauen, mit dem man z.B. eine Firewall, ein NAS, einen Webserver, oder noch viel mehr zusammen bauen kann. Oder man baut sich ein Desktopsystem mit einer grafischen Oberfläche, und am Ende steht dann der selbst kompilierte Firefox. Hört sich das nicht cool an?

Eine Schwierigkeitsstufe darüber steht die Automation des Bau-Vorgangs - und hauptsächlich darüber will ich hier schreiben. Die Anleitung von "LFS" für ein Basissystem und für das "BLFS" sind ziemlich gut. Wenn man sich daran hält, hat man gute Chancen, manuell Schritt für Schritt ein lauffähiges System zu erstellen. Man geht am Browser durch alle Kapitel der Reihe nach durch und führt gemäß Anleitung die einzelnen Schritte durch. Das ist beim ersten Mal ehrlich gesagt mühsam - ich spreche aus Erfahrung ;-). Andererseits ist es spannend zu erleben, wie das Linuxsystem mit jedem Schritt wächst und tatsächlich immer mehr dem ähnelt, was man als Linuxbenutzer kennt.

Die Automation "Automated Linux from scratch" (ALFS) hingegen ist in einer README-Datei nur spärlich beschrieben. Dafür hat man, wenn man das System einmal verinnerlicht hat, eine wunderbare und sehr esoterische Möglichkeit, Updates zu installieren oder das gesamte System auf Knopfdruck noch einmal komplett neu zu erzeugen.

Auf diese Weise habe ich über Nacht ein Linux gebaut - besser gesagt: bauen lassen, das mit dem neuesten Kernel 4.15 und C-Compiler gcc 7.3 gegen Spectre und Meltdown gefeit wäre. - Wenn, ja wenn mein Bastelsystem ein 64-bit-System gewesen wäre (x86_64) und nicht 32 Bit (i686). Und wenn ich das Gefühl hätte, dass ich wirklich von diesen Sicherheitslücken bedroht bin. Aber zum Thema Risikoanalyse muss ich noch mal einen eigenen Artikel schreiben, denke ich.

Und noch eine Stufe darüber verwendet man nicht die "stable" Variante der Bücher, sondern die LFS- und BLFS-Bücher, die gerade in der Entwicklung sind. Die Autoren der Kapitel sind permanent damit beschäftigt, neue Versionen der Pakete zu integrieren und die Artikel anzupassen. Wenn sich z.B. bei einem Paket das Verfahren ändert, wie man das Paket lauffähig kompiliert, wird das enorm schnell in die "development"-Variante von LFS bzw. BLFS übernommen. Genau das ist mir während des Schreibens dieses Artikels passiert: ich habe das Makefile angestoßen, und mittendrin wurde im Buch auf ncurses 6.1 umgestellt. Kaum war ich fertig, veröffentlichen die Entwickler die neue glibc-Version 2.27. So kann's gehen ...

Um noch mal auf "Meltdown" und "Spectre" zurück zu kommen: das LFS-Buch enthält seit kurzem brandneue Kernel- und gcc-Versionen, die diese Sicherheitslücken beheben sollen. Das ist natürlich immer "work in progress". Der aktuelle Stand ist, dass Spectre V2 und Meltdown repariert sind, und für Spectre V1 ist noch einiges an Entwicklerarbeit zu leisten. Die alten 32-bit-Prozessoren hinken hier leider hinterher, für 64 bit (also alles, was grob jünger als 10 Jahre ist) sollten alle Fixes auf jeden Fall in Arbeit sein.

So, jetzt aber wie versprochen eine genauere Beschreibung der Automation für LFS (ALFS). Dazu lädt man sich zunächst das aktuelle Paket herunter. Der Paketname lautet aus historischen Gründen "jhalfs" und ehrt damit den ersten Entwickler des Verfahrens mit seinen Initialen "jh".

Damit jhalfs funktioniert, benötigt es ein paar zusätzliche Linux-Pakete auf dem Gastsystem, die man nachinstallieren muss, weil sie normalerweise nicht für Endbenutzer erforderlich sind. Dazu gehören natürlich der C-Compiler gcc und einige Hilfsprogramme und Bibliotheken wie bison, awk, ncurses etc. Das Schöne ist: wenn man jhalfs startet, kontrolliert es, was noch fehlt und beschwert sich. Für die Verwendung der "development"-Fassung muss man außerdem noch Subversion installieren, um die tagesaktuellen Dateien aus dem Versionskontrollsystem herunter zu laden.

Die Automation setzt tatsächlich schon bei den allerersten Schritten ein, die man gemäß LFS-Buch durchführen würde: dem Erzeugen eines neuen Unixbenutzers "lfs" für das Kompilieren der Pakete, dem Anlegen von Verzeichnissen usw. Der einzige Schritt, den man selbst durchführen muss, ist das Erzeugen einer Festplattenpartition und sie dann so zu mounten, dass die Skripte sie finden können. Traditionell ist das /mnt/lfs, man kann es aber nach Belieben ändern, wenn man weiß, was man tut.

Vorab ein paar Worte zum Design von jhalfs: die Autoren erstellen LFS und die weiteren Bücher in einem speziellen XML-Format namens "DocBook"; daraus werden mit trickreichen XSLT-Transformationen dann lesbare Bücher in HTML, PDF oder sogar TeX. jhalfs verwendet ebenfalls XSLT-Transformationen, um aus dem Buch die Kommandozeilenanweisungen herauszufiltern, und erstellt daraus ein Makefile und Installationsskripte für jedes Kapitel, d.h. jedes zu installierende Paket. Die Automation mit ALFS ist also ein zweistufiger Prozess: zuerst werden aus dem Buch die Befehle zum Bauen herausgefiltert und in ein Makefile mit Hilfsskripten umgewandelt, und in einem zweiten Schritt wird diese Befehlsliste ausgeführt.

Die Autoren liefern außerdem eine komplette Liste der Softwarepakete mit Versionsnummern, die man entweder selbst herunterladen kann oder die automatisch nach Bedarf geholt werden, wenn man eine einigermaßen schnelle Internetverbindung hat. Grob geschätzt muss man für LFS ca. 400 MB an Paketen herunterladen und für BLFS, je nach Umfang, bis zu 2 GB.

Die Pakete sollte man in einem Verzeichnis /mnt/lfs/sources unterhalb der zukünftigen LFS-Partition ablegen, damit während des Ablaufs alle Pakete gefunden werden können. Hierzu wird eine Unix-Technik namens "chroot" (change root) verwendet, um einem laufenden Programm eine andere Festplattenstruktur vorzutäuschen - effektiv wird das verwendet, um so zu tun, als würde es schon in der "richtigen" LFS-Umgebung ausgeführt werden.

Das Makefile für LFS wird in einem neuen Unterverzeichnis erzeugt, in das man nach der Festlegung von ein paar Grundannahmen wechseln muss. Genau wie /sources sollte dieses Verzeichnis auf der zukünftigen LFS-Partition liegen, damit alle Skripte auch in der "chroot"-Umgebung erreichbar sind. Wenn man nun dort "make" startet, sollte nach einigen Stunden (je nach Geschwindigkeit des Rechners*) ein fast schon startfähiges Linux auf der neuen Partition vorliegen. Schritte, die man automatisieren kann, aber nicht muss, sind das Kompilieren eines Kernels und das Festlegen der Partitionen, die beim Starten gemountet werden sollen.

*) Als grobe Richtschnur zwei Vergleichszahlen, die ich mit der aktuellen LFS-Version gemessen habe. Das Paket, das mit großem Abstand am längsten dauert, ist der finale Schritt, den C-Compiler zu kompilieren. Auf einem alten Pentium 4 dauert das 540 Minuten, auf einem etwas aktuelleren i5-3350 immer noch knapp 230 Minuten. Eine SSD statt einer Festplatte ist hierbei eine große Hilfe, Zeit zu sparen.

Der erste Schritt nach dem Auspacken des jhalfs-Pakets ist, in das Verzeichnis zu wechseln und dort "make" einzugeben. Wer schon mal einen Kernel selbst kompiliert hat, wird gleich einen Aha-Effekt erleben: die Konfiguration verwendet dieselbe Textoberfläche für die Menüauswahl wie der Kernel beim "make menuconfig". Hier kann man LFS/BLFS wählen, "stable" oder "development", ob der Kernel auch automatisiert kompiliert werden soll und einiges mehr. Die Grundeinstellungen sind gar nicht so schlecht, und man sollte nur ändern, was man auch versteht ;-)

Nach dem "exit" aus diesem ALFS-Menü kommt die Frage, ob man zufrieden ist mit der Konfiguration. Bei "yes" werden die schon erwähnten Prüfungen durchgeführt, ob alle Developerpakete auf dem Gastlinux vorhanden sind und bestimmte Mindestvoraussetzungen erfüllen, wie z.B. gcc mindestens in Version 4.6 (weil frühere Versionen Fehler enthalten, so dass das LFS nicht funktionieren würde oder Pakete nicht kompiliert werden können usw.). Wenn das alles erfolgreich geprüft wurde, wechselt man (als Benutzer, nicht als root) in das neue Verzeichnis und startet dort erneut "make".

Coole Socken schauen sich im Unterverzeichnis lfs-commands die Dateien unterhalb von chapter040506 und 07 erst mit dem Editor an, bevor sie make starten. Man könnte insbesondere bei den Dateien für Kapitel 7 direkt auf die Idee kommen, dort die Stellen noch zu bearbeiten, die mit **EDITME** markiert sind ;-)

Parallel dazu empfiehlt es sich, dieselbe Version des Buchs in einem Browser zu öffnen und die Kapitel zu lesen, die der Automatismus auch gerade zu bauen versucht. Bei Problemen kann man dann im jeweiligen Kapitel nachlesen, was gerade passiert.

Wahrscheinlich wird es beim ersten Mal nicht gleich komplett erfolgreich funktionieren; das ist aber nicht schlimm: wenn ein Fehler gemeldet wird, kann man sich die Logdatei dieses Schritts aus dem Unterverzeichnis logs anschauen, den Fehler beheben und dann einfach wieder "make" eingeben. Das make-Programm ist so schlau, dass es an derselben Stelle weitermacht. Manche Pakete werden mehrfach gebaut, z.B. der C-Compiler und einige Hilfsprogramme. Dies hat den Zweck, dass man nicht aus Versehen Abhängigkeiten zum Gastsystem einbaut. Wenn ein wichtiges Programm mit der C-Bibliothek des Gastsystems gelinkt wäre, würde das nach dem Booten ja nicht mehr funktionieren. Also wird ein "Zwischensystem" in einem anderen Pfad (/tools) gebaut, das dann das endgültige LFS kompilieren kann.

Ein paar generelle Tipps, wenn das Kompilieren eines Pakets fehlschlägt: gcc 7.3 ist "bleeding edge", also so brandneu, dass man sich bei Verwendung auch mal in die Finger schneiden kann ;-). Ich will damit sagen, dass hier soviele Änderungen drin sind, z.B. Anpassungen an die aktuellen C- und C++-Standards, die in den meisten Paketen und in den Gehirnen der Entwickler noch nicht angekommen sind. Aber: man will gcc 7.3 und aktuelle binutils einsetzen, weil hier die Reparaturarbeiten für Meltdown und Spectre stattfinden. Trotzdem nochmal die Empfehlung: erst mal ein "stable" LFS bauen und danach als Steigerung auf "development" umsteigen.

Typisches Problem beim Kompilieren:
  • ein C-Programm verwendet Datentypen, die jetzt in einer neu eingeführten include-Datei <stdint.h> deklariert werden und nicht mehr in <stdlib.h>. Vorläufig muss man also irgendwo den zusätzlichen include-Befehl unterbringen, bevor das Programm erfolgreich kompiliert werden kann. Freundlicherweise sagt make sehr genau, wo ein Problem aufgetreten ist.
  • beim Korrigieren eines Problems hat man Dateien oder Verzeichnisse als root editiert oder bearbeitet. Das führt zu einem Folgefehler, weil LFS alles mit dem Benutzer "lfs" durchführen will und dann ein Abbruch wegen Berechtigungsproblemen passieren kann (bringe ich laufend fertig).
    chown lfs:lfs is your friend.
Was mir noch untergekommen ist:
  • das gcc-interne Makro __sigemptyset gibt es nicht mehr. Man kann stattdessen sigemptyset (ohne die Unterstriche) verwenden.
  • die Makros major und minor für Devices sind jetzt in <sys/sysmacros.h> zu finden.
  • grub lässt sich mit binutils 2.30 auf 32-bit-Systemen nicht übersetzen, man muss zusätzlich zu den configure-Switches im LFS-Buch noch den Switch "--enable-64-bit-bfd" angeben. Alternativ binutils 2.29.1 statt 2.30 verwenden.
Zwei Schritte sind im LFS-Buch etwas vage beschrieben, weil sie sehr stark vom eigenen PC abhängen: die Konfiguration des Kernels und die bootfähige Festplatte. Wenn man ein Linux-Gastsystem mit "kernelconfig"-Unterstützung hat, kann man sich selbst einen maßgeschneiderten Kernel bauen mit "make oldconfig", das verwendet dann nämlich genau die Einstellungen, die im Moment aktuell sind.

Der einzige wichtige Punkt ist, dass das Filesystemformat des Bootlaufwerks in den Kernel fest kompiliert sein soll. Es nutzt nichts, wenn das Root-Filesystem mit ext4 formatiert ist und der Kernel die ext4-Fähigkeit erst mit einem Modul lernen soll, das auf der ext4-Festplatte liegt - hier beißt sich die Katze in den Schwanz. Ach ja: nach dem Kompilieren von Kernel und Modulen unbedingt in der chroot-Shell "make modules_install" durchführen und in /lib/modules kontrollieren!

Für spätere Bildungs- und Forschungszwecke kann man natürlich auch eine "initiale Ramdisk" (initrd) vorsehen und dort benötigte Module und sonstige Files ablegen, aber wenn man sich einen maßgeschneiderten Kernel für diesen speziellen PC erzeugt, ist das erst mal nicht nötig. Man kann es später machen, um Microcode-Updates per "early load" zu aktivieren, aber lebensnotwendig ist es erst mal nicht. Für intel-Prozessoren gibt es hier die Microcode-Dateien.

Vor dem Reboot sollte man dann im neuen /etc-Verzeichnis (das derzeit noch /mnt/lfs/etc heißt) nach Dateien schauen, die ein "**EDITME**" enthalten. Dort kann man dann Hostname, IP-Adresse, Nameserver etc. einbauen, die zur eigenen Umgebung passen (wenn man keinen eigenen DNS-Server betreibt, die IP-Adresse des DSL-Routers, der als DNS-Forwarder die Anfragen an den Provider weiterreicht). Die Dateien findet man mit einem beherzten "grep -l EDITME /mnt/lfs/etc/*", und wenn man gleich auf einen Schwung alle bearbeiten will, wirft man die Liste der Ergebnisse einfach einem Editor vor: "vi $(grep -l EDITME /mnt/lfs/etc/*)".

Die wichtigste Datei ist hier die /etc/fstab, die beschreibt, welche Partition der Festplatte welchen Zweck hat und wohin im Filesystem gehört. Eine Swappartition sollte man auf jeden Fall vorsehen, selbst wenn der PC gefühlt genug RAM eingebaut hat. Eine Begründung dafür findet sich hier (der Autor des Artikels arbeitet bei Facebook in einem Rechenzentrum). Früher gab es mal eine Regel "doppelt soviel Swap wie RAM", aber ich würde prinzipiell für normale Desktopsysteme zwischen 2 und 8 GB Swap vorsehen.

Was man auf keinen Fall vergessen darf: dem root-User des neuen LFS-Systems vor dem Reboot ein Passwort zu geben. Sonst kann man zwar wunderbar booten, aber sich nicht anmelden ;-)

Ganz ehrlich: das Gefühl ist unbeschreiblich, wenn das selbstkompilierte Linux dann tatsächlich zum ersten Mal bootet und man den Loginprompt sieht ;-)

Wenn das neue System nicht booten will, muss man Ursachenforschung betreiben. Ein "kernel panic" tritt auf, wenn das Root-Filesystem nicht gefunden wurde. Vermutlich fehlt dann das Kernelmodul für das betreffende Filesystem. Oder die Angabe in der /boot/grub/grub.cfg passt nicht, welche Partition das ist. Die Schreibweise von grub und Linux unterscheiden sich hier leider etwas. "sda" für Linux ist "hd0" in grub.

Ein Fehler, den ich mal gemacht habe: alle USB-Treiber als Module deklariert und dann nicht in /etc/modules definiert. In dieser Situation wird es für eine USB-Tastatur schwierig, ihre Eingaben abzuliefern :-).

In solchen Situationen bootet man dann erneut das Gastsystem, mountet die LFS-Partition wieder unter /mnt/lfs und fängt an zu reparieren.

Wenn es bootet und man sich anmelden kann, ist das Reparieren leichter: die Fehlermeldungen z.B. der init-Skripte stehen ja noch auf dem Bildschirm, und man kann Schritt für Schritt alles Nötige korrigieren und das neue, selbstgebaute Linuxsystem einrichten. Das LFS hat schon alles an Bord, um eigenständig Pakete zu übersetzen und zu installieren.

Nach dem erfolgreichen LFS geht es dann mit dem BLFS weiter.
Ein paar Vorschläge, wie man sich das LFS etwas bequemer bedienbar gestaltet:
  • gpm (copy+paste mit Maus in der Textoberfläche)
  • cpio (zum Bauen von initrd)
  • openssl (ssl-Bibliothek)
  • openssh (ssh server und client)
  • dhcpcd (IP-Adresse über DHCP setzen lassen)
  • nfs-utils (wenn man ein NAS hat, z.B. eine Fritzbox, oder selbst bauen will)
  • samba (wenn man selbst ein NAS aufbauen will oder einen Windows-Domaincontroller)
  • lm_sensors (Hardwareüberwachung von CPU und Lüfter)
  • lsusb (list USB devices)
  • lspci (list PCI devices)
  • ghostscript (für PDF)
  • cups (zum Drucken)
  • Firefox (für Katzenvideos im Internet)

27.04.2016

Wahlcomputer 2 - Leserbrief

Tja, was soll ich sagen. Es gefiel Herrn H. nicht, dass ich mich in meinem Leserbrief gegen Wahlcomputer geäußert habe. Er schrieb seinerseits einen Leserbrief, wie toll doch alles wäre, wenn man Computer hat, die einem die Arbeit abnehmen.
Weil ja doch bei menschlicher Arbeit so viele Fehler passieren, wenn die Ergebnisse vom Wahlzettel abgelesen und übertragen wegen.
Und weil doch schon beim Ausfüllen der Wahlzettel so viele Fehler passieren. Und man kann doch alles sicher machen, der TÜV ist da die richtige Adresse, um alles zu prüfen.

Mitnichten, finde ich immer noch, und schrieb einen Leserbrief als Antwort.
Hr. H. lässt mich mit seiner Antwort auf meinen Leserbrief etwas ratlos zurück.

Auf der einen Seite fordert er stärkere Überprüfung zur Sicherstellung einer korrekten Wahl auch mit Wahlcomputern. Damit fordert er, dass es strengere Regeln geben muss, die von Fachleuten überprüft werden müssen.

Auf der anderen Seite ignoriert er die Fachleute, die eine Aussage auf technischer Basis bereits geliefert haben.

Er hat damit den zweiten Schritt vor dem ersten getan: die Entscheidung für Wahlcomputer ist bei ihm schon gefallen, und er sucht nun nach Werkzeugen, um diese Entscheidung abzusichern.

Aber Fachleute sind auch dazu da, um den ersten Schritt zu prüfen, nämlich, ob überhaupt die Verwendung von Wahlcomputern sinnvoll ist.

Wenn Hr. H. nun voraussetzt, dass Wahlcomputer verwendet werden sollen, widerspricht er sich doch selber und sagt damit, dass ihm die Aussagen von Fachleuten egal sind.

Wahlcomputer sind größtenteils „normale“ PCs, mit einer speziellen Bedienung, und – hoffentlich – besserer Sicherheit gegen Manipulationen. Aber selbst wenn es nicht solche „normalen PCs“ wären – Software ist niemals fehlerfrei. Es muss also Update-Möglichkeiten geben.

IT ist weit mehr als Programmierung von Computern im Elfenbeinturm. Der Einsatz von IT im normalen Leben ist ein ganzheitlicher Prozess der Absicherung, sowohl bei der Entwicklung von Software als auch bei deren Verwendung. Wenn man hierbei auch nur einen Fehler macht, ist das ganze System unbrauchbar, weil angreifbar. Das haben BMW und andere Autohersteller letztes Jahr schmerzlich gelernt.

Wahlcomputer werden zumeist von amerikanischen Firmen gebaut (z.B. Diebold, die gerade Wincor-Nixdorf gekauft haben). Die Chips werden größtenteils in chinesischen Firmen hergestellt. Das Update-Verfahren geschieht entweder über Netzwerk oder über Datenträger wie USB-Sticks.

All diese Komponenten im Aufbau und für den Betrieb von Wahlcomputern können problemlos kompromittiert werden, ohne dass man es zuverlässig erkennen kann. Und meine Aufzählung war bei weitem nicht erschöpfend, was Angriffsmöglichkeiten angeht!

Ein weiteres Gegenargument von Hr. H. ist die menschlische Komponente bei der Auszählung und Übertragung der Ergebnisse. Er übersieht hierbei, dass diese Art von Fehlern lokal in einem einzelnen Wahllokal geschehen. Bei Wahlcomputern hingegen ist es ein leichtes, ein kompromittiertes Programm einzuschleusen, das in allen Wahllokalen die Ergebnisse verfälscht. Computer sind gut darin, große Mengen von Daten zu bearbeiten – oder auch zu verfälschen. Hier sehe ich eine der Hauptgefahren.

Die Auszählung der Kommunalwahl habe ergeben, dass 10 % der Wahlzettel ungültig seien. Hier kann man Verbesserungspotential beim Ausfüllen sowie beim Prinzip von Kumulieren und Panaschieren oder bei der Gestaltung der Wahlzettel erkennen, aber das Grundprinzip der überprüfbaren Wahlen ohne Wahlcomputer muss man deshalb nicht aufgeben.

Außerdem sollte man unterscheiden zwischen absichtlich und unabsichtlich ungültigen Wahlzetteln („Protestwähler“).

Mein Fazit bleibt weiterhin: im Interesse der Demokratie keine Wahlcomputer!

15.03.2016

Wahlcomputer - Leserbrief

Ein paar Tage nach den Kommunalwahlen in Hessen erschien ein sehr persönlicher Bericht in unserer regionalen Tageszeitung, in dem ein Wahlhelfer über den Ablauf der Wahl und seine Eindrücke berichtete.
Eigentlich war das ein sehr netter Artikel, der Mut macht, sich selbst als Wahlhelfer zu melden und aktiv an unserer Gesellschaft mit zu arbeiten und zur Demokratie beizutragen.
Aber der Artikel hatte in meinen Augen einen üblen Haken: der Autor beschrieb, dass durch das Kumulieren und Panaschieren das Auszählen sehr kompliziert sei und spekulierte, dass es mit Wahlcomputern schneller und zuverlässiger ginge.
Das hat mir nicht gut gefallen, und in einem Leserbrief habe ich geschrieben, warum.
[veröffentlicht 15.03.2016]
[Beim Buchtitel ist mir ein Fehler passiert (von/für), unten korrigiert]
Leserbrief zum Wahlhelfer-Artikel vom 10.03.2016

Herr H. schreibt einigermaßen unterhaltsam über seine Tätigkeit als Wahlhelfer letzten Sonntag.
Ein Punkt, den er eher beiläufig erwähnt, hat mich aber als Informatiker zutiefst erschüttert:
die kritiklose Bemerkung, dass das Wahlverfahren so kompliziert und die Auszählung so anstrengend ist, dass Herr H. sich Wahlcomputer als Hilfe wünscht.

Ich als Informatiker und sehr auf Integrität und Zuverlässigkeit bedachter Software-Entwickler lehne Wahlcomputer grundsätzlich ab.
Das hört sich vielleicht zunächst absurd an, aber ich vertraue dem Grundprinzip freier, geheimer und nachvollziehbarer Wahlen.
Dies kann durch Wahlbeobachter gewährleistet werden. Aber es ist prinzipiell nicht möglich, einem Wahlcomputer zu vertrauen.

Zum Einen ist es einem Normalsterblichen nicht möglich, die Software in einem Wahlcomputer zu analysieren und zu verstehen.
Hingegen kann wirklich jeder die Auszählung der Stimmen aus den Wahlurnen beobachten und sich selbst überzeugen.

Sie mögen einwenden, dass in vielen Bereichen unseres Lebens die Prüfung an Fachleute delegiert wird, denen wir vertrauen (sollen).

Aber: eine demokratische Wahl ist das Fundament unserer Gesellschaftsordnung.
Wollen Sie wirklich an dieser Stelle Zuverlässigkeit und Vertrauen zugunsten von ein bißchen Bequemlichkeit beim Auszählen aufgeben?
Ob das Wahlergebnis nun einen oder erst zwei Tage später vorliegt, ist in meinen Augen vollkommen unerheblich. Wo ist der Zeitdruck?

Zum Zweiten weigern sich die Hersteller von Wahlcomputern, unabhängigen Kontrolleuren überhaupt diese Möglichkeit einzuräumen mit dem Hinweis auf Geschäftsgeheimnisse und Urheberrechte (z.B. weigert sich die amerikanische Firma Diebold vehement, externen Software-Prüfern Zugang zu geben).
Vertrauen wir wirklich einer amerikanischen Firma mit zweifelhaftem Leumund?

Sollte diese Hürde genommen sein, kommt das nächste Problem beim tatsächlichen Betrieb zu Tage:
es ist nicht klar, ob während der Durchführung wirklich exakt die vorher geprüfte integre Softwareversion zum Einsatz kommt oder nicht heimlich ausgetauscht wurde.

Bei früheren Wahlen hat der Chaos Computer Club (CCC) gezeigt, dass die Wahlcomputer durch menschliche Fehler nicht ausreichend geschützt werden und die Software heimlich ausgetauscht werden kann, ohne dass dies durch Schutzmechanismen bemerkt wurde. Teilweise wurden die Wahlcomputer in Privatwohnungen oder Autos von Wahlhelfern gelagert.

Ob nun wirklich die Stimme wie vom Wähler beabsichtigt gezählt wird und dies dem entspricht, was auf dem Bildschirm oder auf einer ausgedruckten "Quittung" angezeigt wird, kann der Wähler nicht prüfen.

Andreas Eschbach hat dieses Szenario in seinem Thriller "Ein König für Deutschland" sehr detailliert beschrieben. Dort hat der Programmierer eine Hintertür in die Software des Wahlcomputers eingebaut und eine Partei mit einem bestimmten Kürzel wurde unauffällig bevorzugt, wenn bestimmte Bedingungen eintrafen (so ähnlich wie die VW-Motorsoftware, die nur in bestimmten Situationen betrügt). Im Ergebnis erhielt eine monarchistische Partei die absolute Mehrheit. Das Buch ist sehr unterhaltsam geschrieben und enthält nebenbei viele interessante Details über Wahlrecht und die demokratischen Prinzipien. Ich kann es nur empfehlen!

02.03.2016

Datenschutz und Cloud - Leserbrief

Schon ein paar Tage her, dass ich den Leserbrief als Antwort auf eine Glosse des Redakteurs B. Bräuning schrieb. Dann blieb er liegen (der Leserbrief), weil ich nicht wusste, ob mir vielleicht noch etwas mehr zum Thema einfiele. Kam aber nix mehr. Hier ist er.
[Veröffentlicht am 01.03.16, Änderungen in blau]

Leserbrief zur Glosse "Cloud" vom 17.02.2016

Herr Bräuning, Sie schreiben in Ihrer Glosse über das Thema "Cloud" und Datenschutz.

"Cloud" ist derzeit ein Modewort, und jeder will so etwas haben, sowohl geschäftlich als auch privat.

Aber: "Cloud" ist nur ein Fremdwort für "Computer anderer Leute". "Cloud" bedeutet im Wesentlichen, dass die Daten nicht auf einem Datenträger gespeichert werden, auf den Sie selbst physischen Zugriff haben, sondern ausschließlich über im Netzwerk, d.h. Internet.

Damit wird auch offensichtlich, welche Probleme man sich damit einhandelt. Zum Einen kontrolliert ein Fremder den Zugang zu den Datenträgern, und zum Anderen geschieht der Zugang über Netzwerkverbindungen, von denen wir mittlerweile wissen, dass jeder Staat sie nach Lust und Laune abhört, und zwar in großem Maßstab!
Über die Qualität der Verschlüsselung - sofern vorhanden - und die Qualität des Designs dieser Verschlüsselung kann man bei den meisten Firmen wenig Genaues erfahren.

Sie spekulieren etwas flapsig, wie in der elektronischen Cloud Datenverlust aussieht und vergleichen das bildlich mit dem Regen aus den natürlichen Wolken.
Das ist zwar unterhaltsam und gut vorstellbar, aber nicht mal bei großer Anstrengung als Metapher verwendbar.

Eine schwerwiegende kommende Ursache für Datenverlust und insbesondere Verlust der Souveränität über unsere eigenen Daten haben Sie nicht erwähnt.

Diese Ursache heißt "Gesetzgebung", und damit meine ich, dass Staaten unterschiedliche Gesetze erlassen, die den staatlichen Zugriff auf Daten in der Cloud regeln wollen.
In den USA sind gerade Beratungen im Gange, dass Firmen mit US-Sitz oder einer Niederlassung dort den amerikanischen Behörden auch Zugang zu den Daten von Tochterfirmen im Ausland gewähren müssen. Damit müsste z.B. Microsofts Tochterfirma die in Irland gespeicherten Daten an US-Behörden ausliefern. Microsoft kann sich nun aussuchen, ob sie gegen europäische oder amerikanische Gesetze verstoßen wollen - einen Tod müssen sie sterben. Ich könnte mir im schlimmsten Fall sogar vorstellen, dass die deutsche Telekom Daten ausliefern müsste, wenn ein amerikanisches Gericht die US-Tochter T-Mobile USA dazu verurteilt.

Und um noch ein bißchen weiter in die Glaskugel zu schauen: wenn das Freihandelsabkommen TTIP kommen sollte, sind die Klagen vor Schiedsgerichten vorprogrammiert, die strengen Datenschutzregeln aufzuweichen, weil sie ein Handelshemmnis darstellen.

Ich wage zu behaupten, die "Schöne Neue Welt" und "1984" von Huxley und Orwell sind in ihren Voraussagen noch harmlos gegen das, was uns bevorsteht, wenn der Datenschutz zugunsten von Firmeninteressen aufgegeben wird.

26.08.2015

Oswin Veith hat keine Argumente und keine Antworten auf Argumente

Schüler der Singbergschule besuchen Oswin Veith an seinem Arbeitsplatz in Berlin. Dort erzählt er das übliche Märchen, dass die Vorratsdatenspeicherung so unglaublich wichtig ist. Auf Gegenargumente geht er nicht ein - weil er es nicht kann. Er kann nur die Scheinargumente bringen, die die üblichen Scharfmacher als Nebelkerzen verbreiten. Meine konkreten Nachfragen wurden nicht mehr beantwortet.
Und natürlich speichern Anbieter nicht alle "Verbindungsdaten", insbesondere speichern sie nicht die Metadaten von Email, WWW usw., wie es das Gesetz vorsieht.


26.12.2014

Timeout - Andreas Eschbach - Buchbesprechung

Tja, am Wochenende hatte ich endlich ein bißchen Zeit, um den dritten und letzten Teil von Eschbachs Erzählung über die Kohärenz fertig zu lesen.

Es war spannend geschrieben, aber das Ende war ein wenig enttäuschend, dafür, wie unbesiegbar und vorausschauend die Kohärenz in den ersten beiden Teilen geschildert wurde.

Auch der dritte Teil ist wieder eine Mischung aus Thriller, Roadmovie und Coming-of-age. Das Roadmovie beschreibt den Rückweg von Christopher und Serenity nach Europa, zunächst nach Paris, dann in die Bretagne und zum Showdown nach London. Christopher fasst sich ein Herz und gesteht Serenity, dass er in sie verliebt ist - das Erwachsenwerden nimmt breiten Raum ein, weil er sich viele Gedanken darüber macht, wie er es sagen soll, wie sie darauf reagiert, und wie er mit einer eventuellen Ablehnung zurecht kommen soll.
Ausgelöst wird die Rückkehr nach Europa durch einen geplanten Anschlag auf die Mobilfunkinfrastruktur von Cleveland, als die Gruppe im Hide-Out erfährt, dass der amerikanische Präsident mit großer Wahrscheinlichkeit bei einem Krankenhausaufenthalt dort in die Kohärenz aufgenommen werden soll. Jeremiah Jones und die anderen Helfer werden erwischt; das Hideout muss geräumt werden. In der Nacht davor flüchten Christopher und Serenity, weil Christopher eine Falle oder zumindest das Scheitern befürchtet, und er behält Recht.

Der "Penta-Byte-Mann" taucht jetzt auch als Person auf, nachdem er im ersten Teil erwähnt wurde und im zweiten Teil schon Tipps per Internet gegeben hat.

Beim Lesen des zweiten Teils hatte ich mich schon gewundert, dass Eschbach ein so merkwürdiger Fehler unterlaufen ist, den Präfix "Peta" falsch zu schreiben. Die Auflösung des Rätsels folgt nun im dritten Teil: es war nicht falsch geschrieben, sondern ein Wortspiel des Hackers mit seinem italienischen Nachnamen "Forti" - "Penta" für die griechische Fünf und "Byte" für "8 bit" - daraus ergibt sich als Produkt "Forty" - Vierzig.

Sehr schön beschrieben der Flug nach Paris als Luftfracht, die Weiterreise in die Bretagne, das Treffen mit Forti und seine cineastische Begeisterung. Ich vermute, dass die Filmaufnahmen und das Set in der Bretagne so ähnlich tatsächlich  stattgefunden haben.

Die Nebenhandlung fand ich ebenso faszinierend: die Kohärenz entwickelt eine "Lightvariante" namens Lifehook, quasi ein implantiertes Mobiltelefon, und bewirbt es als logischen nächsten Schritt nach den sozialen Netzwerken (im Buch "FriendWeb", ganz klar ist Facebook gemeint). Sehr schön beschrieben, wie jemand durch die Nichtnutzung zum Außenseiter wird und durch diesen Druck der "Peergroup" seinen Widerstand schließlich aufgibt und teilnimmt.

Viele Puzzleteile aus den ersten beiden Teilen finden nun ihren Platz und fügen sich ins große Bild ein. Etwas sehr sportlich fand ich die Entwicklung einer selbstlernenden Bilderkennungssoftware, um in den Filmen, die der Penta-Byte-Mann aus seinem Leben  aufgenommen hat, die eine Szene ausfindig zu machen, die vielleicht eine eklatante Schwachstelle der Kohärenz zeigen könnte.

Den Schluss fand ich eher unbefriedigend. Ich kann mir zwar durchaus vorstellen, dass eine "externe" Infrastruktur neben dem Mobilfunknetz nötig sein könnte, um die Verbindungen zwischen den "Upgradern" herzustellen, aber es ist bei der vorher so oft so stark betonten Weitsichtigkeit der Kohärenz kaum glaubhaft, dass der eine technische Knotenpunkt ohne Absicherung und ohne Redundanz verwendet werden kann, um den Sieg davonzutragen. In Fachsprache wäre das ein "Single point of Failure", und den kann sich ein neu entstandenes Intelligenzwesen einfach nicht leisten, das seine Existenz der ungestörten und ausfallsicheren Infrastruktur verdankt. Christopher sitzt also buchstäblich in einem Glaskasten (kugelsicher), durch einen Trick ganz allein gelassen, und kann an einem Terminal die "tödlichen" Befehle eingeben, weil die Kohärenz dieses Terminal nicht abschalten kann, ohne sich selbst zu gefährden? Wirklich kaum glaubhaft. Ein dummes Eingabeterminal kann man jederzeit abschalten. Den Zugang zur Datenbankschnittstelle kann man ebenso leicht blockieren. Und im allerschlechtesten Fall könnte man den Netzwerkport lahmlegen, durch den das Terminal ins Netz kommt. Oder das Kabel herausziehen. Mal wieder hatte ich das Gefühl, das Buch ist fast zu Ende, deswegen muss jetzt ein möglichst schneller Schluss her.

Fazit: gute Unterhaltung, man darf aber nicht allzusehr über die Details nachdenken, wenn man zufällig in der Branche arbeitet.

03.11.2014

Hideout - Andreas Eschbach - Buchbesprechung

Gerade gestern habe ich ein älteres Buch von Andreas Eschbach fertig gelesen, nämlich den zweiten Teil seiner Trilogie um die "Kohärenz".

In dieser Trilogie, die eigentlich als Jugendbuch vermarktet wird, geht es darum (wie ich schon in meiner Buchbesprechung zum ersten Teil schrieb), dass Menschen Chips eingepflanzt bekommen und dadurch Teil einer Gemeinschaftsintelligenz werden.

Durch die Vereinheitlichung verlieren sie größtenteils ihre Gefühle und werden zu etwas "Unbeschreiblichem", einem Bewußtsein, das durch den Gleichklang aller Gehirne erst zu sich selbst findet.

Diese Absorption allen Individualismus' ist natürlich ein totaler Widerspruch zum heutigen - zumindest westlichen - Menschenbild der freien Entfaltung und der Freiheit des Einzelnen. Aber das habe ich alles schon zum ersten Teil geschrieben.

Der zweite Teil einer Trilogie ist immer eine undankbare Geschichte - es muss irgendwie weitergehen, die Spannung muss gehalten werden, aber es darf noch nix so Wesentliches passieren, weil der große Showdown ja erst im dritten Teil geschieht.

Andererseits finden viele Fans den zweiten Teil von Star Wars "Das Imperium schlägt zurück" ja richtig gut ;)

Wie auch immer, Eschbach hat auch - für einen zweiten Teil ;) - ein tolles Buch geschrieben. Ich habe es an zwei Tagen gelesen und konnte es kaum weglegen. Unbedingte Leseempfehlung!

Noch mehr als der erste Teil ist dieses Buch eine Mischung aus "Roadmovie" und "Coming of age", wie es Neudeutsch heißt ... Der siebzehnjährige Christopher erlebt seinen ersten Kuss und macht sich tatsächlich Gedanken über zwischenmenschliche Beziehungen. Er will dazulernen, realisiert also, dass seine Begabung ihn bislang davon abgehalten hat, sich stärker für andere Menschen zu interessieren. Road movies an sich finde ich ziemlich uninteressant, aber zum Glück fasst sich Eschbach hier ziemlich kurz. Die verschiedenen Gruppen legen zwar enorme Wege zurück, und es fallen auch Namen diverser amerikanischer Bundesstaaten, aber das wird nicht endlos ausgewalzt.

Inhaltlich passiert auch einiges, allerdings fühlt es sich eher nach weiteren Bausteinen an, die erst im dritten Teil richtig zur Geltung kommen: Sein Vater erwacht nach der Entfernung seines Chips aus dem Koma und berichtet, dass er Christophers Chip tatsächlich manipuliert hat - er hat unmittelbar vor dem Einpflanzen zwei Kontakte beschädigt. Christopher bemerkt, dass die Kohärenz es geschafft hat, bei den kurzen Kontakten ins Mobilfunknetz einen Virus in seinen Chip einzuschleusen, so dass er nicht mehr einschlafen darf, solange ein Netz erreichbar ist, wenn er nicht "übernommen" werden will. Chris kann mit Hilfe eines anderen Hackers namens "Pentabyte-Man" den Schaltplan des Biochips aus einem Server in Korea stehlen. Er analysiert den Plan und glaubt, wirklich eine Schwachstelle gefunden zu haben. Er kann außerdem eine Bluetooth-Verbindung zu seinem eigenen Chip herstellen. Zum Ende des Buchs lässt er sich einen zweiten Chip in die Nase einpflanzen, der ebenso manipuliert ist wie der erste. Er glaubt, dass der virusverseuchte und der zweite Chip zusammen eine Möglichkeit ergeben, ins Netz zu gehen, ohne von der Kohärenz entdeckt zu werden. Tatsächlich schafft er es, auf diese Weise Serenity und ihre Freundin Madonna Two Eagles zu retten.

Obwohl Eschbach selbst eine Zeitlang in der IT-Branche gearbeitet hat, unterlaufen ihm peinliche Fehler bei Kleinigkeiten: im ersten Teil habe ich ja schon die Verwechslung von Silikon und Silizium kritisiert, hier im zweiten Teil nennt er den anderen Hacker hartnäckig "Pentabyte-Man", obwohl die Maßeinheit für die Datenmenge in "Petabyte" (ohne n) gemessen wird, wie man z.B. in der Wikipedia nachlesen kann. Zumal auch noch lang und ausführlich erklärt wird, dass es nicht einfach ein Fantasiewort sein soll, das der Hacker sich aussucht, sondern seinen Ursprung in der Datenmenge hat, in der der Pentabyte-Man sein ganzes Leben auf Video aufzeichnet. In einer Amazon-Kritik spekuliert jemand, dass dies absichtliche Eastereggs sind, die Eschbach in seinen Büchern versteckt, aber daran glaube ich nicht.

Man könnte jetzt spekulieren, dass Chris selbst einen Virus entwickelt und in die Chips der Upgrader einschleust, der einfach nur alles abschaltet. Mal schauen ...

Das Buch enthält auch einen Teaser-Text für den dritten Teil "Timeout" - ich bin gespannt ;)

09.09.2014

Signierten Code mit Java erstellen

Man hat's nicht leicht, mit den ganzen Updates Schritt zu halten ... Dauernd Sicherheitslücken in Windows, Flash, Java, sogar in Android findet sich die eine oder andere Lücke.
Um den Erfolg der Updates zu überprüfen, insbesondere für Flash und Java, hatte ich mir vor langer Zeit eine ganz primitive Webseite erstellt, die mir die aktuellen Versionsnummern der installierten Plugins anzeigen kann.

Seit Version 1.7 der Java Runtime werden aber lästige Warnungen ausgegeben, dass demnächst nur noch signierter Code ausgeführt wird, dass Code, der von http- und nicht https-Schema nachgeladen wird, als unsicher betrachtet wird, und überhaupt lassen die Sicherheitseinstellungen der JRE demnächst gar nix mehr zu.

Also hab ich mich mal drangesetzt und aus meiner .class-Datei eine .jar-Datei gemacht, die ich mit meinen eigenen, selbst erstellten Key signiert habe. Das ist aber natürlich nur die halbe Miete, weil man auch der JRE im Browser klarmachen muss, dass der self-signed Code auch wirklich zulässig ist. Man muss also in der policy-Datei auch noch Änderungen vornehmen. Hier ist der ganze Ablauf zusammengestellt, den ich durchlaufen musste, bis meine simple JRE-Versionsabfrage mit Firefox 31, Chrome 36 und JRE 1.8.0.11 wieder funktioniert hat.

Hier ist zunächst der Code für die Ausgabe der JRE-Versionsnummer:
import java.applet.Applet;
import java.awt.Color;
import java.awt.Label;
public class JavaVersionDisplayApplet extends Applet
{
  private Label V;
  public JavaVersionDisplayApplet() {
    this.setBackground(Color.pink);
    V = new Label(" Java Version: " + System.getProperty("java.version") + " from " + System.getProperty("java.vendor"));
    this.add(V);
  }
}
Um diesen Code zu kompilieren, muss das Java Development Kit mit dem javac-Compiler installiert sein. Da Java einigermaßen kompatibel zu alten Versionen ist, kann man auch mit einer aktuellen JRE wie 1.8 noch Code ausführen, der mit Version 1.4 kompiliert wurde. Eine Krankheit von Java ist, dass der Dateiname exakt dem Klassennamen in der Datei entsprechen muss, hier also "JavaVersionDisplayApplet.java".
javac JavaVersionDisplayApplet.java
Als nächstes müssen noch zwei Dinge vorbereitet werden: ein Schlüsselpaar für das Signieren und eine Manifest-Datei, in der der Java-Code etwas genauer beschrieben wird, also etwas poetischer gesagt: Meta-Daten.

Zunächst also das Schlüsselpaar mit dem Programm keytool erzeugen, dass bei der JRE und beim JDK mitgeliefert wird.
keytool -genkeypair -alias thomas -keystore seeling.jks -dname "CN=Thomas Seeling, OU=System Administration, O=Kleintierpraxis Berstadt, L=Berstadt, ST=Hessen, C=DE" -keypass Password1 -storepass Password2
Im weiteren verwende ich immer den Aliasnamen "thomas" für den Schlüssel. Je nach Zusammenhang ist damit entweder der private oder der öffentliche Schlüssel gemeint.

Als nächstes benötige ich noch den öffentlichen Schlüssel separat, damit ich ihn in meinem Browser importieren kann. Dieser Schritt würde entfallen, wenn ich den Schlüssel von einer öffentlichen Root CA signieren lasse oder wenn ich mir selbst eine Root CA gebaut habe und den öffentlichen Schlüssel dieser Root CA schon in meinem Browser hätte.
keytool -export -keystore seeling.jks -alias thomas -storepass Password2 -file tseeling.cer
Ich mag meine Schlüssel lieber in base64-kodiert, also wandle ich die binäre .cer-Datei noch in eine PEM-Datei um:
openssl x509 -in tseeling.cer -inform DER -out tseeling.pem -outform PEM
Weil dies "nur" ein öffentlicher Schlüssel ist, benötige ich nach dem Export aus dem Java-Keyring kein Passwort mehr.
Diese PEM-Datei kann ich nun bequem über ein Transportmittel wie Email, ftp etc. zu meinem Browser-PC übertragen und dort importieren.

Desweiteren benötige ich die schon erwähnte Manifest-Datei, die mit in die .jar-Datei gepackt und signiert werden muss. Diese Datei sieht bei mir so aus:
Permissions: sandbox
Codebase: https://admin.moeller-seeling.local/*
Application-Name: JavaVersion
Der "Application-Name" ist hier nur "Schmuck am Nachthemd" und wird für eine Infobox benötigt, in der die JRE dem Benutzer anzeigt, wer da gerade ausgeführt werden soll.

Wenn das alles zusammengestellt ist, wird nun in zwei Schritten aus der kompilierten Java-Datei und dem Manifest zunächst eine .jar-Datei erzeugt und dann diese Datei mit dem zuvor erstellten privaten Schlüssel signiert.
jar -cfm JavaVersion.jar JavaVersion.txt JavaVersionDisplayApplet.class
jarsigner -keystore /opt/jdk/jre/lib/security/seeling.jks -keypass Password1 -storepass Password2 -verbose JavaVersion.jar thomas 

 Puh, fast geschafft! Jetzt noch diese .jar-Datei in einem kleinen HTML benutzen und vom Webserver ausliefern lassen. Darauf gehe ich nur ganz kurz ein, hier ist ein Beispiel für den HTML-Code:
<table border="1">
<tr><th> The version and vendor from the JRE</th>
<td align="center">
<applet height="60" alt="Browser has Java disabled"
hspace="22" width="440"
archive="JavaVersion.jar"
code="JavaVersionDisplayApplet.class">
</applet>
</td></tr>
</table>
Soweit, so gut. Das war der erste Schritt auf dem Webserver.

Auf dem Browser-PC sind auch noch kleine Schritte nötig, damit man ein self-signed .jar ausführen darf:
man muss in die Security-Policy einen Eintrag machen, dass signierte Dateien von bestimmten Programmierern erlaubt sind, und man muss den öffentlichen Schlüssel dieses Programmierers in den Standard-Keystore der JRE importieren, die der Browser im Java-Plugin verwendet, oder alternativ einen anderen Keystore angeben, in dem dieses Zertifikat enthalten ist.

Auf Windows findet sich das unter "%ProgramFiles(x86)%\java\jre8\lib\security\java.policy" (für die Java-Version 1.8).

Zu dieser (i.a. schon vorhandenen Datei) im Klartextformat habe ich folgende Einträge hinzugeführt:

keystore "file:${java.home}/lib/security/seeling.jks", "jks";
grant signedBy "thomas" {
  permission java.security.AllPermission, signedBy "thomas";
};
Zu der Liste der vertrauenswürdigen Zertifikate habe ich meinen öffentlichen Schlüssel hinzugefügt, den ich weiter oben als PEM-Format gespeichert hatte.
keytool -importcert -noprompt -trustcacerts -alias thomas -file tseeling.pem -keystore "%ProgramFiles(x86)%\java\jre8\lib\security\cacerts" -storepass changeit
Das Passwort der Schlüsseldatei "cacerts" ist üblicherweise "changeit". Natürlich ändert es nie jemand ;)

So, nachdem also nun ganz viele kleine Gemeinheiten geschafft sind, müsste im Browser ein Applet funktionieren, das die JRE-Versionsnummer ausgibt. Wenn man auch nur einen dieser Schritte weglässt, klappt es nicht und entweder der Browser oder die JRE beschimpfen mich, dass alles ganz schröcklich unsicher ist.

23.04.2014

Herr aller Dinge - Andreas Eschbach - Buchbesprechung

Und schon wieder eine Buchbesprechung, und schon wieder Andreas Eschbach? Ja, wirklich. Ich habe mir letztens wieder einen Schwung Bücher geleistet, und nachdem ich von "Blackout" schon ziemlich begeistert war, hatte ich gleich den Elan, das nächste anzugehen.

Eins vornweg: "Herr aller Dinge" ist mit eine der besten Geschichten, die Eschbach geschrieben hat. Es ist lang, aber von vorn bis hinten kein bißchen langweilig. Wahnsinn!

Das Buch erzählt eigentlich gleich zwei Geschichten in einem Buch: die des Jungen Hiroshi Kato, der sich schon als Kind für Robotik interessiert, und die des Mädchens Charlotte Malroux, die Faszination für alte Gegenstände empfindet und versucht, alles Alte zu berühren und zu "erfühlen".

Ähnlich wie bei Harry und Sally, einem meiner absoluten Lieblingsfilme, ist dies eine lange, eigentlich unerfüllte Liebesgeschichte. Die beiden begegnen sich auf wundersame Weise immer wieder an unerwarteten Stellen des Globus.

Zunächst treffen sich die beiden als Kinder in Japan; Hiroshis Mutter ist Wäscherin in der französischen Botschaft, Charlotte ist die Tochter des Botschafters. Diese finanzielle Ungleichheit hinterlässt schon im knapp zehnjährigen Hiroshi das Ziel, es den Menschen zu ermöglichen, ohne Zwänge zu leben und das zu tun, was sie möchten, und nicht irgendetwas zu müssen.

Eigentlich ist Hiroshi die Hauptperson, aber ich persönlich finde Charlotte durch ihre übersinnlichen Fähigkeiten wesentlich faszinierender. Sie kann beim Anfassen von Gegenständen deren Geschichte erfassen und erfahren. Beim Besuch eines Shinto-Schreins mit Hiroshi zusammen berührt sie ein schwarzes Obsidianmesser und hat dadurch eine Ahnung, dass es vor Millionen von Jahren schon einmal eine Menschheit auf der Erde gegeben hat. Zu diesem Messer gibt es übrigens eine zusätzliche ebook-Geschichte, die allerdings nicht besonders spannend ist. Ich hatte von dieser Geschichte etwas über die Vorgeschichte und den früheren Besitzer zu erfahren, stattdessen ist es eine Geschichte über einen Menschen ähnlich wie Charlotte, der eine Art Lustgefühl beim Berühren alter Gegenstände empfindet. Außerdem endet diese Kurzgeschichte eher traurig und hinterlässt ein komisches, unvollständiges Gefühl.

Später treffen sie sich als Studenten in Boston am M.I.T. wieder, wo Hiroshi an Roboteralgorithmen zur räumlichen Orientierung arbeitet, und Charlotte Paläoanthropologie studiert, die Wissenschaft der Forschung über Menschheitsgeschichte in frühester Zeit. Jeder von ihnen ist mit einem Partner liiert, aber nicht wirklich glücklich in der Beziehung, und im Grunde wissen auch beide, dass sie füreinander empfinden, aber es ist kein Platz für ein Happy-End.

Es gibt noch mehrere weitere Begegnungen, während Hiroshi zunächst an realen, mechanischen Robotern forscht, finanziert durch eine private, chinesische Firma. Diese Experimente scheitern an mechanischen Ungenauigkeiten, und er kommt auf die Idee, winzige Nano-Roboter zu bauen, die einzelne Atome manipulieren können. Er zieht sich auf ein einsames Anwesen zurück und lässt dort Computer Simulationen rechnen, die auch erfolgreich sind, bis auf das Henne-Ei-Problem: er könnte sich selbst reproduzierende Nano-Roboter bauen, wenn er einen ersten solchen Roboter hätte, aber er weiß nicht, wie er dieses erste Exemplar bauen soll.

Charlotte forscht derzeit auf einer russischen Insel im Polarmeer und dort entdeckt ihre Forschergruppe etwas, was sie zunächst für außerirdische robotische Überreste halten.

Mehr zu verraten würde den Spaß an der wirklich großen, genialen und schrecklichen Pointe dieses Buches verderben. Aber einen kleinen Tipp kann ich mir dann doch nicht verkneifen: Perry-Rhodan-Leser werden mit der Idee vertraut sein, was nicht ganz zufällig kommen könnte ;), aber Eschbach hat es dann doch ganz anders umgesetzt.

Das ganze Buch hindurch zieht sich wie ein roter Faden, dass Hiroshi Charlotte liebt und ihr beweisen will, dass mechanische Helfer das ideale Werkzeug wären, um die Menschheit sorgenfrei ohne Geld leben zu lassen - wenn perfektes Recycling möglich wäre, sogar umweltfreundlicher als heutzutage. Wenn jeder auf Knopfdruck alles haben kann, was er benötigt oder sich wünscht, entfällt völlig das Besitzdenken und die Notwendigkeit von Geld als Tauschmittel.

Dieser Gedanke ist eine logische Fortsetzung der Gedankengänge aus "Eine Billion Dollar", in dem der Protagonist nach längerem Nachdenken und Erleben feststellt, dass das heutige Geld- und Zinssystem ein schweres, grundsätzliches Konstruktionsproblem hat, quasi ein immerwährendes Schneeballsystem, bei dem "Wachstum" durch die immer mehr steigende Zinslast erzwungen wird.

"Herr aller Dinge" geht auch darauf ein, woran diese visionäre Idee scheitern könnte: es gibt immer Menschen, die sich nicht über ihre eigene Leistung definieren, sondern darüber, dass sie Macht über andere Menschen haben - Charlottes Ex-Freund James in Boston ist ein typischer Vertreter des "Geldadels", der sich Gedanken darüber macht, dass er keine Diener mehr wird haben können, wenn sie nicht mehr darauf angewiesen wären, wegen Geld für ihn zu arbeiten.

Es ist keine Liebesgeschichte, die beschrieben wird, aber man spürt bei jeder Begegnung zwischen Hiroshi und Charlotte, dass es eigentlich so sein sollte; und trotzdem kann Eschbach ganz wunderbar beschreiben, warum es dann bei dieser Gelegenheit doch wieder nicht "geklappt" hat, und es ist so nachvollziehbar, dass man eigentlich kein Bedauern empfinden kann, weil die Geschichte sich weiter entwickelt.

Obwohl Hiroshi zum Schluss des Buches etwas unglaublich Tolles für die Menschheit leistet und ein Geschenk bauen lässt, das jeder mit nur ein bißchen Fähigkeit zum Träumen sich gewünscht hat, wird er zum Gejagten aller Nationen, weil sie Angst vor seiner Macht haben.

Eine Alternative wäre gewesen, dass er mit einem der gespeicherten Baupläne ein weltraumtaugliches Transportmittel bauen lässt und selbst zum Habitat fliegt, um dort zu leben oder weiterzuziehen. Ich kann mir vorstellen, dass die Naniten neben Atmosphärenfliegern auch Raumfahrzeuge im Angebot haben. Andererseits ist der Schlusspunkt der Geschichte auch so, wie es Eschbach festgelegt hat, in sich logisch und nachvollziehbar.

Das Wunderbare an Eschbachs Büchern ist die Genauigkeit, mit der sowohl die Personen, ihre Gedanken, Gefühle und Entscheidungen als auch die technischen Grundlagen seiner Idee beschrieben werden. Die gesamte Geschichte klingt von vorn bis hinten vollkommen plausibel und sogar heute schon machbar, bis auf den einen kleinen SF-Kniff, um das oben schon erwähnte Henne-Ei-Problem zu lösen. Daneben findet man viele kleine Bonbons, die das Lesen zum Vergnügen machen.

Dieses Buch hat mir von vorn bis hinten Spaß gemacht und ich konnte es kaum noch weglegen, und genau wie "Solar Station" werde ich es in einiger Zeit sicherlich nochmals lesen. Im Gegensatz zu "Eine Billion Dollar" ist das Ende der Geschichte in sich schlüssig, wirkt nicht künstlich und nicht zu abrupt herbeigeschrieben. Die Geschichte plätschert eine ganze Zeitlang angenehm dahin, und nimmt etwa in der zweiten Hälfte mächtig Fahrt auf.

Es ist kein Happy-End wie bei "Harry und Sally"; ich verrate nicht allzuviel mit dem Hinweis, dass Charlotte und Hiroshi am Ende nicht heiraten und "glücklich leben bis ans Ende ihrer Tage". Trotz dieses "unhappy" Endes war ich nicht unzufrieden, sondern im Gegenteil war es durchaus absolut nachvollziehbar, was passiert und warum Hiroshi genau diese Entscheidung trifft.

11.04.2014

Heartbleed SSL-Problem - ein Überblick

Alle Welt redet über den Fehler in OpenSSL (CVE-2014-0160), durch den ungewollt interne Daten aus einem Server "herausbluten" können, die nie an die Öffentlichkeit sollten ... wie z.B. ungeschützte private SSL-Keys, oder auch Usernamen und Passwörter.

Der Fehler besteht darin, dass mehr Daten ausgeliefert werden, als "legal" im Server zur Verfügung stehen, und was in diesem "mehr" an Daten abgelegt ist, hängt nur vom Zufall und dem vorherigen Zustand des Serverdienstes ab.

Es könnten also private SSL-Keys oder Passwörter sein. Man weiß es nicht ...

Deswegen muss man als korrekt paranoider Serverbetreiber davon ausgehen, dass dieser schlimmste Fall auch wirklich eingetreten ist. Jeder Betreiber von öffentlichen Internetdiensten sollte also seine SSL-Zertifikate zurückrufen ("revoken"), sich neue beschaffen (am besten gleich mit 2048 bit Länge) und neu signieren lassen. Das wird leider häufig Geld kosten (z.B. bei Verisign, Thawte, Geotrust, Telekom usw.). Eine kostenlose Möglichkeit ist cacert.org, allerdings haben nur wenige Programme die Root-Zertifikate von cacert.org ab Werk eingebaut, so dass ein solchermaßen signiertes Zertifikat trotzdem erstmal nix nutzt und bei den meisten Benutzern als "unsicher" angemeckert wird.

Ein kleiner Lichtblick: Clients sind dem ersten Anschein nach nicht betroffen, Chrome, Firefox und Internet Explorer nutzen OpenSSL nicht. Die einzige angreifbare Android-Version ist 4.1.1. In allen späteren Versionen hat Google die Heartbeat-Funktion abgeschaltet, weil sie nicht benötigt wird. Ein Endgerät wäre auch nur  angreifbar, wenn man einen bösartigen Server aufsucht, der einen Heartbeat an den Client schickt. Oder wenn man auf seinem Androiden mit 4.1.1 einen Serverdienst betreibt (gibt es wirklich).

Hier ist eine Liste mit einem Überblick, was eigentlich passiert ist, und was Experten dazu meinen.
Und das sollte man als nächstes tun:
  • So schnell wie möglich Update auf OpenSSL 1.0.1g (oder noch neuer)
  • OpenSSL libraries installieren und dynamisch gelinkte Dienste neu starten (Apache etc.)
  • Neue private keys für alle SSL-fähigen Dienste erzeugen
  • Alle alten Zertifikate revoken
  • Statisch gelinkte Programme neu kompilieren

09.04.2014

Flash-Update auf Version 13

Ausnahmsweise mal ein normales Update des Flash-Players für Windows, Mac OS und Linux.

Wie üblich in ihrem freundlichen Service-Blog die passende Automation zum Herunterladen und Installieren.
Falls ein Proxy verwendet wird, das "rem" bzw. "#" entfernen.

Das Tool wget wird bei Windows noch benötigt wie hier beschrieben. Bei Linux sollte es schon vorhanden sein, da es von vielen anderen Programmen intern verwendet wird.

Für Windows wie üblich beide Varianten, ActiveX und Netscape Plugin.
@echo off

rem set http_proxy=http://192.168.100.100:3128/
set VNP=
13.0.0.214
set VAX=13.0.0.214
set H=fpdownload.macromedia.com
set P=/get/flashplayer/current/licensing/win
set AX=install_flash_player_13_active_x.exe
set NP=install_flash_player_13_plugin.exe

wget http://%H%%P%/%AX% -O flash-%VAX%_ax.exe
.\flash-%VAX%_ax -install
wget http://%H%%P%/%NP% -O flash-%VNP%_np.exe
.\flash-%VNP%_np -install

Für Linux 64 bit rpm (als root ausführen oder "sudo rpm" schreiben):
#!/bin/sh

# http_proxy=http://192.168.100.100:3128/

VL=11.2.202.359
H=fpdownload.macromedia.com
PL=/get/flashplayer/current/licensing/linux

DL() { wget -N "$1/$2"; mv "$2" "$3"; }

echo Linux 64 bit rpm ...
DL http://${H}${PL} \
   flash-plugin-${VL}-release.x86_64.rpm \
   flash-${VL}.x86_64.rpm
rpm -F --force
flash-${VL}.x86_64.rpm

[Update 20140514: Anpassung auf Version 13.214 bzw. 11.359]

18.03.2014

Blackout - Andreas Eschbach - Buchbesprechung

Ich hab mal wieder ein Buch gelesen. Nichts aktuelles, sondern ein bißchen was älteres von Andreas Eschbach - "Blackout", der erste Teil einer Trilogie.

Dem Klappentext nach ein Buch für Jugendliche, aber genau wie die Bücher aus dem "Marsprojekt", über Telekinese und über das Klonen auch sehr gut für Erwachsene lesbar. Das gebundene Buch hat ca. 450 Seiten, und ich habe es an einem Wochenende durchgelesen - dies ist eines der Bücher, die richtig gut "flutschen". Eschbach hat einen sehr lebendigen Sprachstil, die Dialoge klingen realistisch - für einen alten Sack wie mich natürlich. Vermutlich würden die Jugendlichen auch mehr Jugendsprache verwenden, aber darum geht's natürlich nicht ;)

Es ist der erste Teil der Thriller-Trilogie, und es geht darum, dass mehrere Forschungsprojekte es im Geheimen geschafft haben, ein Bio-Interface zu entwickeln, mit dem man Menschen über Mobilfunk miteinander vernetzen kann. Die Forscher in der Geschichte verstehen nach wie vor nicht, wie ein Gehirn genau funktioniert und was welche elektrischen Impulse an bestimmten Orten bedeuten oder hervorrufen, aber sie haben einfach ausprobiert, diese elektrischen Impulse abzugreifen und mit einem bioelektrischen Interface über Funk an derselben Stelle in ein zweites Gehirn einzuspeisen.

Innerhalb kurzer Zeit entwickelt sich daraus eine Bewegung - die "Upgrader" bilden eine Kollektivintelligenz und planen, den Rest der Menschheit ebenfalls in ihr Netz aufzunehmen. Angedeutet wird in einem Nebensatz auch, dass die verschiedenen Forschergruppen in Konkurrenz stehen, aber das wird (im ersten Teil noch ...?) nicht weiter vertieft.

Die Idee ist nicht neu, man erinnert sich sofort an die Borg bei Star Trek, und auch bei Perry Rhodan gab es schon mehrere Begegnungen mit Kollektivintelligenzen, zum Einen natürlich die Superintelligenzen, die aus einzelnen Bewusstseinen entstanden sind (wie ES), zum Anderen aber auch Lebewesen unterhalb der SI-Stufe, die vernetzt sind, z.B. sehr schön beschrieben in einem PR-Taschenbuch.

Was allerdings im Gegensatz zu den Schilderungen bei Star Trek und PR neu ist, ist die Detailstufe, in der Andreas Eschbach beschreiben kann, wie sich die Vernetzung anfühlt. Als Thriller ist es natürlich entsprechend düster geschrieben und die Vernetzung wird aus Sicht der Außenstehenden als nicht wünschenswert geschildert. Trotzdem liest es sich unglaublich faszinierend, dass die Upgrader sich wie Bewohner der Wikipedia fühlen müssen - sie haben Zugriff auf alles Wissen aller anderen Vernetzten, und das umfasst mittlerweile natürlich alles, was irgendwie eine Schnittstelle zum Internet hat, auch Abhörfunktionen, Appliances usw., was als "Internet der Dinge" auch langsam in der realen Welt Fahrt aufnimmt (intelligente Stromzähler, Kühlschränke, die selbständig nachbestellen, Autos, Autopiloten in Flugzeugen usw.usf.).

Dabei gehen die Upgrader sehr gezielt und unauffällig vor. Die Gewöhnung ("Einschwingen") dauert nach Implantation des Interfaces etwa eine Woche, deshalb wurden bislang keine hochrangigen Politiker aufgenommen, sondern hauptsächlich Entscheider aus der zweiten und dritten Reihe, die man im Urlaub o.ä. "infiziert" hat. Es ist aber natürlich absehbar, wann auch "wichtige" Menschen wie Staatschefs gezielt aufgenommen werden.

Die Hauptperson ist ein genialer Computerhacker mit leicht autistischen Zügen, Christopher Kidd, dessen Eltern in das Netz aufgenommen wurden, und der sie befreien will. Er flieht aus der Zivilisation, als er erkennt, dass zunächst sein Vater und später auch seine Mutter assimiliert wurden, und nimmt Verbindung zu einer Gruppe von ebenfalls in die Natur geflüchteten Wissenschaftlern auf, weil das Netz mittlerweile auch Zugriff auf Überwachungskameras, Banktransaktionen etc. gewonnen hat und Telefongespräche abhören kann, weil ECHELON auch integriert wurde. Der Gruppe, die ihn aufnimmt, gehört auch einer der Entwickler des Bio-Interfaces an und sie planen, gegen die Kohärenz zu kämpfen. "Computer Kid" erhielt von seinem Vater ebenfalls einen Biochip implantiert, aber es scheint, dass der Chip gezielt manipuliert wurde; Kid kann ihn auf Gedankenbefehl abschalten und sich dadurch willentlich aus der Gemeinschaft ausklinken.

Anekdote am Rand: obwohl es ein deutsches Buch eines deutschen Autors ist, enthält es den typischen Übersetzungsfehler vom Englischen ins Deutsche: die Computerchips werden als "Silikon"-Chips bezeichnet, obwohl es natürlich Silizium heißen müsste (im Englischen gibt es "silicon" - Silizium und "silicone" - Silikon, und leider verbiegen es die meisten Übersetzer).

Ich habe bislang nur den ersten Teil gelesen, so dass noch keine großen Erkenntnisse über die "Kohärenz", d.h. die Gesamtheit der vernetzten Gehirne, bekannt sind. Interessant, aber befremdlich ist bislang, dass noch nicht absehbar ist, was das Ziel der Kohärenz ist, wenn alle Menschen aufgenommen wurden - abgesehen natürlich von den üblichen Wünschen wie Weltfrieden, Abrüstung, Umweltschutz und so weiter, was ziemlich plausibel klingt. Andererseits entfällt durch die Vernetzung jede Art von Privatsphäre, und die Upgrader konstatieren, dass es nicht mehr nötig ist, etwas vor den anderen zu verbergen. Ich verstehe auch nicht ganz, woher die Sachlichkeit kommt, mit der alle Entscheidungen der Kohärenz gefällt und durchgeführt werden. Bislang sind die Beschreibungen aller Handlungen absolut zielstrebig und logisch, ähnlich wie Spock oder die Aphiliker bei Perry Rhodan. Ich würde mir eher vorstellen, dass eine Summe von Gehirnen auch Gefühle haben und deshalb nicht alle Handlungen rational wären.

Die Funktionsweise der Kohärenz wird als "Gehirne im Gleichklang" beschrieben. Der Name stammt aus der Lasertechnik - Laserlicht ist so energiereich, weil alle Wellenbündel in derselben Polarisation und Phase schwingen, d.h. alle Wellenberge und -täler treten gleichzeitig und in derselben "Richtung" auf. Nach dem ersten Teil ist (für mich) immer noch völlig offen, ob sich tatsächlich eine Gemeinschaftsintelligenz bildet, die in Summe eine Willensbildung durchführen, oder ob es ein "Mastermind" gibt, das alle anderen beherrscht und die "Richtung" vorgibt.

Wie auch immer sich die Geschichte weiterentwickelt: die Gedankenspiele, die durch diese Idee beim Leser ausgelöst werden, rütteln an den Fundamenten unserer bisherigen Menschlichkeit: die Individualität, das Recht auf Privatsphäre, das Recht auf eigene Entscheidungen, das Recht, nicht von anderen dominiert zu werden, das Recht, eben auch falsche oder wenigstens irrationale Entscheidungen zu treffen. Vielleicht haben die ersten Upgrader tatsächlich bewusst die Entscheidung getroffen, sich zu vernetzen. Aber sie nehmen immer mehr Personen mit Zwang in ihre Gemeinschaft auf, die ihnen "nützlich" erscheinen, ob diese wollen oder nicht. An dieser Stelle kollidieren die rein sachlich erscheinende Entscheidung (aus Sicht der Upgrader) mit den Menschenrechten der zukünftigen Vernetzten.

Auf jeden Fall ist die Schwachstelle der Upgrader natürlich die Mobilfunktechnik und die Abhängigkeit von der Stromversorgung der Basisstationen und natürlich die Netzabdeckung - in einem gigantischen Flächenland wie USA noch eher als z.B. in Deutschland, wo man mittlerweile sogar in Dörfern wie meinem Wohnort LTE mit knapp 10 MBit/s. bekommen kann. Die Chips selbst sind autark und speisen sich aus der Bioelektrizität des menschlichen Körpers. Eschbach versucht das gar nicht weiter zu vertiefen, das ist einfach ein Fakt, ohne dass die Geschichte nicht so gut funktionieren würde.

Sehr unterhaltsam fand ich die Schilderung von verschiedenen kleinen Situationen aus der Sichtweise von zwei Personen: Kid und einer Helferin während der Vorbereitung eines Sabotageakts gegen eine Fabrik, in der die Biochips hergestellt werden, Serenity. Zwischen diesen beiden Jugendlichen wird sich in den Folgebänden möglicherweise etwas anbahnen, wer weiß?

Eine offensichtliche Lösung wäre also, auf jegliche Art von Vernetzung zu verzichten, z.B. "das Internet" abzuschalten, um die Kohärenz zu  bekämpfen. Andererseits fallen die "Netzlosen" oder "Befreiten" in ein tagelanges Koma, was in vielen Fällen sicherlich zu gefährlichen Situationen, Unfällen, etc. führen könnte - und aufgrund der heutigen bestehenden Abhängigkeit vom "Netz" schon kaum machbar erscheint. In der Geschichte sind die Upgrader - noch - eine Untergrundbewegung, von der niemand weiß. Selbst die Gruppe, der sich Kid anschließt, hält seine Geschichte und die Konsequenzen für kaum glaubwürdig.

Ich bin gespannt, wie es weitergeht.

28.02.2014

LTE-Empfangsqualität abfragen (Diagnose-Logfile)

Neulich hab ich mich beschwert, dass man beim alten Modell des LTE-Routers (Telekom LTE 1 bzw. Huawei B390s) nicht die Empfangsqualität abfragen kann.

Und es geht doch! Zwar ziemlich versteckt in den Tiefen der "Erweiterten Einstellungen", aber man kann es doch abfragen.

Wie üblich in Ihrem freundlichen Service-Blog auch gleich wieder die Möglichkeit, diese Daten automatisiert per Skript abzufragen und damit ggfs. regelmäßig zu protokollieren.

Der übliche Trick: mit dem ersten wget-Aufruf geschieht der Login, das Session-Cookie wird gespeichert, und mit dem zweiten Aufruf wird dann die interessante Seite abgerufen.
#!/bin/sh

PATH=/opt/bin:/opt/sbin${PATH:+:$PATH}

H=vodafonemobile.cpe
C=/tmp/cookies.txt
U1="http://"$H"/login.cgi"
U2="http://"$H"/diagnosis_export.cgi?configId=$(date +%s)&FileName=diagnosis.txt"

wget --save-cookies "$C" \
     --keep-session-cookies \
     -q --tries=1 \
     -O /dev/null \
     --post-data 'Username=admin&Password=yourpw' \
     "$U1"

wget --load-cookies "$C" \
     -q --tries=1 \
     -O - \
     "$U2" | \
awk '
{if (NR>=5&&NR<=42){print}}
'

rm -f "$C"
Der Output sieht dann in etwa so aus wie da unten.

Besonders interessant sind die Zeilen bei "RSRP" und "RSRQ". Mit den Werten -90dBm und -8 dB zeigt mir der Router 4 von 5 Balken an. Laut Telekom-Auskunft sind Werte bis -60/-2 möglich, das wäre super-super-optimal. Wenn man das Gerät in der Ausrichtung verändert, darf  RSRP ruhig etwas schlechter werden, falls man dadurch RSRQ verbessern kann. Optimal wäre, wenn beide Werte größer werden (-90 --> -60, -8 --> -2).

Auch sehr hübsch: man erfährt den Funkmast, mit dem der Router verbunden ist, und zwar mit dem Parameter "CellId".

~~~~~~Product Information~~~~~~
003    Model:               B390s-2                    PASS
004    Software Version:    V200R001C35SP12            PASS
005    Hardware Version:    B390-B390RW2A Ver.C        PASS
006    SN:                  4UA5TC1110400163           PASS
007    IMEI:                354637040077555            PASS
008    LAN MAC Address:     F4:C7:14:**:**:**           PASS
009    WLAN MAC Address:    F4:C7:14:**:**:**           PASS
010    Check AT-Port:        Available                  PASS

~~~~~~LTE State~~~~~~
011    Dialing Mode:                                   PASS
012    APN:                  internet.home              PASS
013    DNS:                  8.8.8.8                    PASS
014    PDN Type:             IPv4                       PASS
015    Service Status:       Normal Service            PASS
016    Connection Status:    LTE STATE CONNECTED       PASS
017    Frequency:            816000 kHz               PASS
018    Bandwidth:            10MHz                    PASS
019    CellId:               392                       PASS

020    IP Address:           2.162.**.***             PASS
021    RSRP:                 -90dBm                    PASS

022    RSSI:                 -66dBm                    PASS
023    RSRQ:                 -7dB                      PASS 

024    Roam:                  no                       PASS
025    Antenna State:        Built-In                  PASS

~~~~~~DHCP~~~~~~
026    Gateway IP Address:    192.168.42.1           PASS
027    DHCP Enabled:          false                  PASS
028    Subnet Mask:          255.255.255.0          PASS
029    DHCP_ip_pool_start:    N/A                    PASS
030    DHCP_ip_pool_end:     N/A                     PASS
031    DHCP_lease_time(s):    N/A                     PASS

~~~~~~SIM/PIN State~~~~~~
032    sim_state:             SIM Card detected       PASS
033    PIN code:             READY                    PASS
 

27.02.2014

Über Oswin Veith, CDU, MdB für den Wetteraukreis

Ich fühle mich richtig gut in Berlin vertreten, seit ich nicht Oswin Veith gewählt habe und er trotzdem die Leiter hinaufgefallen ist bis nach Berlin in den Bundestag. Nach nur vier Jahren, wenn er die aushält, hat er somit rentenmäßig ausgesorgt. Wenn er bei der Landratswahl gescheitert ist und jetzt im Bundestag sitzt, was sagt uns das über das Peter-Prinzip?

Er stimmt für die Erhöhung der Diäten, für das kaputte Gesetz zur Abgeordnetenbestechung (man beachte die ausdrückliche Formulierung in der Strafvorschrift: "... auf Anordnung oder Weisung ..." - wie will man das denn nachweisen?), und auch wenn es derzeit keine konkreten Zeitpläne gibt, prescht er schon mal vor und kündigt an, dass er die Vorratsdatenspeicherung wieder einführen will. So zumindest berichtet die WZ in ihrer Ausgabe vom 21.02.14. Natürlich völlig unbeeindruckt von der offiziellen Linie der Koalition, dass erst das Urteil des EuGH abgewartet werden soll, ob die VDS prinzipiell mit den Menschenrechten in der EU vereinbar sein kann.

Dies finde ich so doof, dass ich dazu einen Leserbrief geschrieben habe, in dem ich beschreibe, was bei der VDS gespeichert wird, und ein bißchen spekuliert habe, was überwacht werden könnte, wenn es sie (wieder) gäbe. Es gab ja schonmal für ein paar Monate eine VDS in Deutschland, aber es gibt keine belastbare Untersuchung, dass in dieser Zeit die Aufklärung von schweren Verbrechen so signifikant zugenommen hat, dass man einen Zusammenhang zur VDS herstellen kann.

[Der Leserbrief wurde am 27.02.2014 abgedruckt. Blau markiert die Kürzung durch die WZ]
Leserbrief zur Meldung "MdB Veith befürwortet die Vorratsdatenspeicherung" 21.02.2014

Mit Schrecken, aber auch nicht wirklich verwundert, las ich die Meldung, dass Herr Veith nun aktiv das Speichern von Verbindungsdaten in Deutschland vorantreiben will. Die SPD und die CDU schaffen es innerhalb kürzester Zeit, der Demokratie schweren Schaden zuzufügen. Es gibt trotz mehrjähriger medialer Beeinflussung bislang keinerlei Nachweise oder Untersuchungen, dass die Vorratsdatenspeicherung bei irgend etwas helfen kann.

In Deutschland gab es einige Zeit lang die Vorratsdatenspeicherung für Verbindungsdaten. Das Max-Planck-Institut für ausländisches und internationales Strafrecht fand keine Hinweise darauf, dass die Speicherung auch nur einen Terroranschlag verhindert hätte - oder dass sich damit Kinderpornografie wirksamer bekämpfen ließe. Forscher der Technischen Universität Darmstadt kommen zu dem Ergebnis, dass die Vorratsdatenspeicherung nicht zur Prävention geeignet ist.

Was aber bedeutet denn die Speicherung von "Verbindungsdaten", und ist das wirklich so harmlos, wie unsere Politiker es darstellen wollen? Ganz im Gegenteil! Die Verbindungsdaten (auch Meta-Daten genannt) sind sogar kritischer und wichtiger als der eigentliche Inhalt. Unter Verbindungsdaten versteht man (im Sinne des geplanten Gesetzes), dass die Anbieter Daten darüber speichern müssen, wer die Kommunikationspartner sind, wann sie kommuniziert haben, und je nach Medium gehören dazu auch die Standortdaten oder die Internetnummer (die IP-Adresse) -- bei Handytelefonaten wird gespeichert, in welcher Funkzelle ich mich befinde; bei Email, Chat usw. wird gespeichert, wer mein Anbieter ist und in gewissem Umfang ebenfalls, wo ich mich befinde. Bei Email wird gespeichert, was im "Briefkopf" enthalten ist, also die Emailadressen. Handy-Standortdaten in Großstädten sind auf ca. 200 m genau, auf dem flachen Land je nach Abstand der Funkmasten 1-5 km.

Im Licht des nichtvorhandenen Aufklärungswillens in der Abhöraffäre, in die sicherlich auch die deutschen Geheimdienste verwickelt sind, kann ich nur feststellen: wenn Daten vorhanden sind, weckt das ganz schnell Begehrlichkeiten. Da die Schlapphüte sich offensichtlich nicht kontrollieren lassen, können und müssen wir davon ausgehen, dass der "Richtervorbehalt" zur Nutzung der Vorratsdaten das Papier nicht wert ist, auf dem er im Bundesgesetzblatt gedruckt wird. Wir werden also abgehört und ausgeforscht und bezahlen auch noch dafür! Das meine ich im Wortsinn: die Datenspeicherung geschieht bei den Anbietern, z.B. Telekom, eplus, 1&1 usw.usf. Die gigantischen Datenmengen, die bei der Speicherung anfallen, müssen eine bestimmte Zeitlang auf Speichermedien vorgehalten werden. Das kostet natürlich Geld, und ebenso natürlich werden diese Kosten solidarisch auf alle Kunden umgelegt.

Ein kleines Beispiel, was man aus den Verbindungsdaten ablesen kann: ich telefoniere mit einem Arzt. Mein Handy meldet sich in einer Funkzelle in Praxisnähe an. Der Arzt telefoniert mit einem Krankenhaus. Mein Handy meldet sich in einer Funkzelle in Krankenhausnähe an. Ein paar Tage später telefoniere ich mit dem Arzt. Dann telefoniere ich mit einer Versicherung. Danach rufe ich bei der Telefonseelsorge an.

Welches Szenario hat sich hier abgespielt? Es gehört nicht viel Phantasie dazu, nicht wahr? Und all das, ohne zu beschreiben, welche Inhalte hier jeweils transportiert wurden, allein aus der Abfolge der Ereignisse kann man erstaunlich detaillierte Schlüsse ziehen. Wollen wir, dass unser Leben in diesem Umfang für Monate gespeichert wird? Ohne dass es eine wirksame Kontrolle darüber gibt, wer auf diese Daten Zugriff hat und zu welchem Zweck? Könnte ein paranoider Schlapphut nun mutmaßen, dass solch eine Person zu einem Selbstmordattentäter werden könnte?

Zu meinem oben erwähnten Schreckensszenario gibt es noch eine Verschärfung: die elektronische Gesundheitskarte bietet einen allumfassenden Zugriff zu Patientenakten, die nach dem derzeitigen Design zentral gespeichert werden. Wäre es nicht denkbar, dass es Hintertüren gibt, um diese Daten abzugreifen? Welches Droh- und Erpressungspotential bietet es, wenn man die Krankenakten aller Deutschen unter seiner Kontrolle hätte?
[Fußnote: ich habe technisch nichts mit der eGK zu tun, das ist alles spekulativ]