26.06.2013

Cyanogenmod Update auf neue nightly Version beim LG P990

In den letzten Tagen hab ich mich mal wieder mit Android-Updates und CyanogenMod beschäftigt. Leider gibt es für mein Test- und Bastelgerät Optimus P990 noch keine stable-Variante der CM 10.1 (also Android 4.2.2), sondern nach wie vor nur die Nightly Versionen, also sozusagen Betatest-Releases.

Nichtsdestotrotz wollte ich ein Update durchführen und hoffe, dass die Patches und Bugfixes, die zum offiziellen "stable" 10.1 geführt haben, auch schon in die Nightlies für das P990 eingeflossen sind.

Wenn man CM und ein alternatives Recovery schon installiert hat, kann das Update sehr einfach sein ... leider ist es beim P990 nicht ganz so.

Der erste Schritt ist noch leicht: man lädt mit Hilfe des Update-Menüs einfach erstmal die neueste CM-Version herunter. Dieses Menü erreicht man über "Einstellungen" -> "Über das Telefon" -> "CyanogenMod-Updates".




Alternativ kann man natürlich auch am PC die ROM-Version für das P990 herunterladen und mit USB auf das Telefon befördern.

Ich habe hier den Modus auf "manuell" gestellt, weil ich nicht will, dass mein Testgerät dauernd im Netz nach neuen Versionen fragt, sondern nur, wenn ich es will. Beim P990 gibt es wie gesagt derzeit nur die Nightlies, deshalb muss der Typ der gewünschten Updates auf  "Inkl. Nightlies" eingestellt werden. Wenn man "stable" einstellt, findet die Update-Suche keine neuen Dateien.

Danach kann man die gewünschte Version durch Antippen des Download-Pfeils herunterladen. Je nach Internet-Bandbreite dauert das ein wenig, die Datei ist 155 MB groß.



Der nächste Schritt ist jetzt natürlich das Installieren des neuen Android-Images - und hier trennen sich die Wege. Wie man sieht, erscheint der Hinweis "erfordert ein kompatibles Recovery", und offensichtlich ist es bei P990 mit dem offiziellen CWM-Recovery trotzdem nicht kompatibel genug.

Wenn man diesen Weg wählt, gelangt man nicht ins Recovery zum Flashen des neuen Images, sondern es bootet der Emergency-Modus, den man nur durch Entfernen des Akkus verlassen kann.














Also nicht auf "Update" tippen, sondern "Abbrechen" und danach den manuellen Weg einschlagen: Ausschalten und beim erneuten Einschalten den Lautstärke-Runter-Knopf gedrückt halten, damit das Recovery aufgerufen wird. Das sieht dann erstmal so aus wie auf dem Foto hier rechts.




Der nächste Schritt ist dann, den Menüpunkt "choose zip from sdcard" auszuwählen und zum Verzeichnis /CMUpdater (oder /cmupdater, je nach Telefon) zu wechseln.


In diesem Verzeichnis wählt man die gewünschte Datei aus und bestätigt dann im nächsten Bild, indem man zu der Zeile mit dem "Yes" wechselt und dort bestätigt (wie üblich der Einschaltknopf im Recovery-Modus).



Danach fängt das Telefon an, sich selbst das neue ROM-Image einzuprogrammieren (zu "flashen"). Am Anfang dauert es recht lang, bis überhaupt etwas mit dem Fortschrittsbalken passiert, danach geht es recht zügig weiter. Insgesamt dauert dieser Vorgang 2-3 Minuten.





Wenn das beendet ist, kann man "Go back" anwählen und befindet sich wieder im Hauptmenü des Recovery-Modus. Den Erfolg der Aktion kann man im unteren Bildschirmteil weiterhin nachlesen.



Als nächstes wird einfach das Telefon neu gestartet mit dem Menüpunkt "Reboot system now". Der erste Neustart nach einer Installation dauert etwas länger als gewöhnlich, auch hier wieder 3-5 Minuten. Keine Panik.



Wenn das Logo von CM erscheint und sogar animiert ist, wird alles gut ;)



Danach werden die Apps erneut aus dem apk ausgepackt und für eine eventuell geänderte Java Runtime (Dalvik)  neu "optimiert".

Alles ist gut ;)


[Update 20140814: die Bilder waren plötzlich alle weg]

09.06.2013

Datenschutz im Internet oder - Anleitung für eine handfeste Paranoia

Die Welt ist schlecht, das wissen wir im Grund unseres Herzens doch alle.
Jeder ist nur auf seinen eigenen Vorteil bedacht. Die Ethik eines Menschen bemessen wir nur noch daran, wie groß der Schaden ist, den er anrichtet, wenn er in seine eigenen Taschen wirtschaftet.

Im Internet ist es genauso wie im echten Leben: Jeder will nur unser Bestes.
Im echten Leben ist unser Bestes natürlich unser Geld.
Im Internet hingegen ist das Wichtigste, was wir haben, unsere Privatsphäre und unsere privaten Daten.

Ich zähle mal ein paar Sachen auf, die mir gerade so durch den Kopf gehen, wie man Privatsphäre verliert, und schlage gegen Ende dann einige Hilfsmittel für die gängigen Browser vor, mit denen jeder ein wenig mehr Kontrolle über seine Privatsphäre behalten und wiedererlangen kann, wenn er sich durch's Netz bewegt.

Das, was ich hier aufzähle, biete ich übrigens auch kostenlos als Vortrag an, z.B. für Schulklassen, Schulelternbeiräte usw. Genaueres hab ich neulich hier schon mal aufgeschrieben.

Zu unseren privaten Daten gehören ganz banale Sachen, die für sich genommen vollkommen harmlos sind. Das Gefährliche daran, wenn man diese Daten im Internet irgendwo preisgibt: das Internet vergisst nichts. Und wenn man mal die Kontrolle verloren hat, kann man diese Daten nicht mehr "einfangen" und zurückholen. Und je mehr dieser "harmlosen" Daten spazieren gehen, desto umfangreicher wird das Bild, das sich jemand von uns machen kann.

Ja nun, aber was ist so gefährlich daran? Je mehr solcher Daten man über sich preisgibt, desto zielgerichteter kann z.B. Werbung zugeschnitten sein. Das ist die eine Seite, die vielleicht für sich betrachtet gar nicht mal so schlecht klingt ... auf den ersten Blick. Preisgegebene Daten können aber auch sein, dass man irgendwann mal private Fotos geteilt hat, die man mit mehr Lebenserfahrung vielleicht lieber doch nicht veröffentlicht hätte.

Übrigens bedeutet "veröffentlichen" nicht nur, dass man seine privaten Urlaubs- oder Party-Fotos bei Facebook + Co. abgibt - es reicht auch, wenn man ein privates Foto an einen Freund oder Liebhaber gibt, der dann irgendwann und irgendwie ein "Ex" wird. Manche "Ex" können ganz schön garstig werden und aus Rache diese sehr privaten Fotos (die mit viel Rosa) ungefragt veröffentlichen. Man kann dann zwar mit rechtlichen Mitteln den "Ex" sehr gut ausbremsen, nichtsdestotrotz sind die Bilder dann in der Welt. Noch ein Randproblem: wenn zwei Jugendliche solche "privaten" Fotos machen und weiterverbreiten, fällt das auch ganz schnell unter Kinderpornographie, und das ist dann sogar strafrechtlich bedeutsam, wenn derjenige über 14 ist, also schon beschränkt strafmündig. Das gibt dann vielleicht sogar einen Eintrag im Bundeszentralregister ("polizeiliches Führungszeugnis"), und das macht sich bei der ersten Bewerbung gar nicht gut ...

Auch, wenn es nicht in den strafbaren Bereich geht, kann es doch sein, dass man verlockt ist, etwas zu schreiben oder zu veröffentlichen, was man später bereut. Faustregel: nur das schreiben, was man derjenigen Person auch direkt in's Gesicht sagen würde. Als Intimitätsregel schlage ich vor, nur solche Daten oder Beiträge zu schreiben, die man auch an einer Kneipentheke in normaler Lautstärke erzählen würde (wo ggfs. auch Fremde mithören könnten).

Zurück zum eigentlichen Thema: das Preisgeben von Daten kann ganz offensichtlich sein: ich gebe meine Adresse, Namen, vielleicht noch Geschlecht, Geburtsdatum, Telefonnummer auf einer Webseite ein, weil mich ein Gewinnspiel verlockt. Das Perfide daran: ein Datensatz wird um so wertvoller für Adresshandelsfirmen, je mehr Zusatzinformationen darin stecken. Simple Listen mit Name und Postadresse gibt es im Tausenderpack für wenige Euronen. Wenn aber noch qualifizierende Informationen enthalten sind, wie z.B. Alter, Telefonnummer, Anzahl der Kinder, Arbeitgeber, Berufsbezeichnung, oder sogar Finanzinformationen (Nettogehalt zwischen x und y €), kann so ein einzelner Datensatz schnell mal 30-40 € wert sein. Eine Firma gibt also eine lächerlich geringe Summe für die Gewinne aus (10 iPads oder so) und gewinnt dadurch im besten Fall einige Tausend Datensätze, mit denen Werbung gemacht werden kann. Mal ehrlich: wer liest das Kleingedruckte und streicht die Einverständniserklärung für Werbung durch? Und: wer glaubt denn ernsthaft, dass sich eine Firma daran hält, wenn man das Kreuzchen bei "erlaubt" nicht macht?

Es gibt auch nicht ganz so offensichtliche Informationen, die man über sich preisgibt: in sozialen Netzwerken. Das ist natürlich zum Einen der Zweck eines solchen Netzwerks (ob das nun Facebook, Google Plus, Xing, LinkedIn oder eher unbekannte wie Diaspora sind, ist unerheblich): man findet Gleichgesinnte, die das Interesse zu einem bestimmten Thema teilen. Mit Hilfe des Internets ist es natürlich leicht, solche Seelenverwandtschaften zu finden. Andererseits gibt man dadurch eine riesige Sammlung von privatesten Informationen über sich preis, mit jedem "Like" oder "+1" weiß der Betreiber des Netzwerks ein Häppchen mehr über den Benutzer. Und wenn ich fünfmal die "Star Trek"-Filme ge-like-d habe, könnte es erfolgversprechend sein, mir die Kinowerbung für den neuesten Film etwas prominenter unter die Nase zu reiben. Oder sogar Werbung für ein Kino in meiner Nähe, verbunden mit der Info, wann der Film dort läuft, und beim Anklicken kann ich gleich Karten reservieren.

Hier sind natürlich auch die "location-based services" gefährlich, also die Dienste, die ich z.B. mit dem Smartphone unterwegs nutze. Nahezu jedes heutige Smartphone enthält GPS-Technik. Das Handy weiß also, wo ich mich gerade befinde. Dienste we "Foursquare" oder "Google Latitude" verwenden diese Daten, um mir regionale Vorschläge zu machen (wo ist die nächste Pizzeria, Geldautomat, Bushaltestelle usw.). Ob das Handy nun "nach Hause telefoniert" und irgendwohin übermittelt, dass ich mich gerade am Ort XY befinde, hängt von den Apps ab, die auf dem Smartphone installiert sind. Hier lohnt es sich auf jeden Fall, während der Installation einer App genau hinzuschauen, welche Rechte diese App anfordert (ich spreche hier hauptsächlich über Android, das ich als Entwickler genauer kenne). Wenn eine "harmlose" App wie z.B. ein Bildschirmschoner oder eine Taschenlampe anfordert, das GPS und die Internetverbindung benutzen zu dürfen, sollten einige Alarmglocken anfangen zu schrillen. Fußnote: es gibt eine tolle App namens "AppGuard", mit der man einer Android-App nachträglich Berechtigungen entziehen kann, auch ohne gerootetes Smartphone (ab Android-Version 2.3).

Letztes Jahr gab es übrigens eine technisch recht interessante, aber vom Prinzip her ganz schön gefährliche App namens "where are the girls" für Apples iPhone. Diese App hat die öffentlichen Abfragefunktionen (die sog. "APIs", "application programming interface") von Foursquare, Facebook und anderen sozialen Netzwerken genutzt, um dem Anwender der App persönliche Daten über "girls" zu liefern, die in der Umgebung sind.

Idee dabei: ich gehe in eine Disco und frage ab, wer sich noch in dieser Disco befindet (das ist genau der Zweck von "foursquare", diese Information zu veröffentlichen). Dann nehme ich den Nutzernamen und frage nach familiären Daten dieser Person bei einem Netzwerk wie Facebook. Dann weiß ich z.B., dass das hübsche Mädchen einen großen Bruder hat, und kann sie ansprechen und dabei diese neu gewonnenen Informationen verwenden, um einen hohen Grad an Vertrautheit herzustellen, indem ich vorgebe, ihren Bruder zu kennen. Der Phantasie sind hier keine Grenzen gesetzt ... Apple hat übrigens diese App recht schnell wieder aus dem App Store entfernt, aber natürlich kann das jeder andere App-Programmierer nachbauen.

Es ist also sehr (in Worten: sehr) sinnvoll, in allen sozialen Netzwerken die Privatsphäre-Einstellungen so restriktiv wie möglich zu setzen, also die Sichtbarkeit so einzustellen, dass nur gut bekannte Personen die eigenen persönlichen Daten und Beiträge sehen können. Leider ist Facebook berüchtigt dafür, häufig neue Funktionen einzuführen und die Grundeinstellungen dafür dann auf "alle Welt kann es sehen" zu setzen. Es ist also ratsam, entweder regelmäßig nachzuschauen oder die Ankündigungen von Facebook zu verfolgen, dass es neue Funktionen gibt, und dann in den Kontoeinstellungen unter "Privatsphäre" wieder alles so einzustellen, dass nur "Freunde" alles sehen dürfen. Schon für "Freunde von Freunden" würde ich als Empfehlung ein wesentlich strengeres Regime einführen, so dass diese deutlich weniger sehen dürfen.


 Übrigens gibt es eine sehr unangenehme Eigenschaft in Facebook, die man unbedingt abschalten sollte: wenn man mit einer Person befreundet ist, können die Apps, die dieser "Freund" einsetzt, meine persönlichen Daten abfragen, bis hin zu Geburtstag, Wohnort, Links und alle Posts, Likes usw..

Nach diesem Exkurs zu den Schattenseiten von Apps und Smartphones und sozialen Netzwerken wieder zurück zum eigentlichen Thema dieses Artikels: Privatspäre und Werbung.

Auf den ersten Blick ist es natürlich eine Win-Win-Situation, wenn ich mehr Daten über mich preisgebe: ich bekomme keine Werbung, die mich nicht interessiert, und der Werbetreibende hat eine sehr hohe "Konversionsrate", d.h. das Verhältnis von Aufwand zu Erfolg bei seiner Werbung ist sehr hoch.

Auf den zweiten Blick verliere ich aber die Kontrolle: wenn ich nämlich mehrfach Interesse an etwas hatte, aber dann den Spaß daran verliere, bekomme ich trotzdem weiter Werbung, auch wenn ich sie später nicht mehr will. Es dauert dann recht lang, bis diese Informationen "veralten". Oder wenn ich nur zu einem bestimmten Zweck ein Geschenk bei Amazon gekauft habe, bekomme ich danach vergleichbare Angebote ("das könnte Sie auch interessieren"). Vor Jahren hab ich mal für einen Spaß ein Schlagerlied aus den Sechzigern gekauft (grässliche Musik!), und ich bekomme jetzt immer noch solche Hinweise. Dumm gelaufen.

Noch unauffälliger sammeln Firmen Informationen über mich, wenn ich Webseiten besuche. Die HTTP-Technik ist an sich konstruktiv (fachchinesisch!) ein "zustandsloses" Protokoll, das bedeutet, die Gegenstelle erinnert sich prinzipiell nicht an mich (kann sie nicht), wenn ich die Webseite zweimal besuche. Das gefällt den Seitenbetreibern aber nicht, deshalb wurden Hilfsmittel erfunden, um diesen Zustand zu "reparieren". Das geschieht mit Hilfe von sogenannten Cookies oder Sitzungskennungen (manchmal auch beides zusammen). Mit Hilfe dieser Techniken kann eine Webseite erkennen, dass ich schon mal da war, und kann dann mittels interner Buchführung nachschauen, was ich beim letzten Mal gemacht habe. Manchmal ist das praktisch (Warenkörbe für das Einkaufen wären ohne Cookies oder Session-IDs kaum möglich). Auf der anderen Seite kann die Webseite darüber auch in Maßen bestimmen, wie lange ich eine Webseite betrachtet habe, d.h. die Dauer meines Besuchs feststellen. Über diese Maßzahl kann also berechnet werden, wie interessant die Webseite für mich war.

Die meisten modernen Webseiten heutzutage arbeiten mit Werbevermarktern zusammen, d.h. sie vermieten einen bestimmten Bereich in der angezeigten Webseite, haben aber überhaupt keine Kontrolle, was dort angezeigt wird. Die Werbung (Text, Bild, Video, Flash) wird von einem Server des Werbedienstleisters geholt und angezeigt. Und hier ist gleich der nächste Kontrollverlust: die Werbung wird zum Einen auf meine Kosten vom Server des Dienstleisters geholt, und der Dienstleister erfährt zum Anderen dadurch von mir selbst, dass ich gerade eine Webseite besucht habe, auf der er Werbung geschaltet hat. Üblicherweise hat mir die Webseite aber gar nicht mitgeteilt, dass sie meine persönlichen Daten (in Form meiner IP-Adresse) an einen Dienstleister weitergibt, indem in der Webseite eine "fremde" URL eingeschmuggelt wird, die mein Browser i.a. automatisch abruft. Es gab zwar diverse Gesetzesänderungen in den letzten Jahren, aber so gut wie niemand hält sich daran, das den Besuchern der Webseiten mitzuteilen. Wohlwollend muss ich sagen, dass Google seit Neuestem einen Hinweis einblendet, dass Cookies verwendet werden. Viele andere tun das (immer noch) nicht.

Gefährlich oder unangenehm wird es dann, wenn die Informationen aus dem Medium Internet verwendet werden, um eine andere Form von Werbung zu transportieren. Hier gab es letztes Jahr ein wenig Aufruhr bei folgendem Fall: ein amerikanisches Versandunternehmen hat ein wenig "Data Mining" betrieben, d.h. einfach mal neue Verknüpfungen zwischen den schon vorhandenen gesammelten Daten hergestellt. Dabei hat sich über mehrere Millionen Datensätze von betrachteten Artikeln des Webshops herausgestellt, dass es ungefähr 25 Datensätze braucht, um mit einer Sicherheit von 98% eine Schwangerschaft einer Besucherin zu konstatieren. Diese Versandfirma hat dann eine Zeitlang zielstrebig Werbekataloge verschickt. In dem bekannt gewordenen Fall war die Besucherin des Webshops minderjährig, und die Eltern wunderten sich zunächst, warum sie einen Katalog mit Babyzubehör in der Post hatten. Mit anderen Worten: das Versandhaus wusste zwei Wochen vor den Eltern, dass die 16-jährige Tochter schwanger war.

Nebenbei: das erinnert mich an die Szene aus "Harry und Sally", als der Spediteur eine Woche vor Harry wusste, dass sich seine Frau Helen von ihm scheiden lassen wollte ("Don't fuck with Mr. Zero"). Sie wollte ihm nicht den Geburtstag versauen ;)

So, nun ist also der Untergang des Abendlands, wenn nicht sogar der Weltuntergang, an die Wand gemalt. Und nun?

Was kann man dagegen machen?
Kann man was dagegen machen?

Ja, man kann! Sogar eine ganze Menge. Leider gibt es keine Patentlösung, man muss für sich selbst einen Kompromiss finden zwischen dem Nutzen, den man selbst aus Webseiten ziehen will, und der Menge an privaten Daten, die man preisgeben will. Wenn man alles abblockt, ist man zwar sicher, aber manche Dinge funktionieren dann einfach nicht. Wie immer im Leben: es ist eine Abwägungssache.

Allein schon mit Bordmitteln kann man in den meisten Browsern einiges an Privatsphäre schützen. Allerdings sind diese Einstellungen meistens global gültig, sie gelten also immer und für alle besuchten Websites. Das ist eher lästig und unbequem, weil es eben doch gewisse Websites gibt, denen man mehr vertraut als anderen. Hier gibt es für die meisten Browser kleine Zusatzpakete ("Add-On" oder "Extension" genannt), die eine Kategorisierung ermöglichen. Man kann damit bestimmte Websites als "vertrauenswürdig" kennzeichnen und sie mit voller Funktionalität benutzen, andere als "bedingt vertrauenswürdig" mit Einschränkungen, und andere Websites werden mit voll aufgedrehtem Mißtrauen besucht.

Umgekehrt gilt: es wurden auch schon Fälle von "undercover" Add-Ons bekannt, die sich im Browser einklinken und "nach Hause telefonieren", hier hat man dann den Teufel mit dem Beelzebub ausgetrieben. Die Add-Ons, die ich vorstelle, halte ich für vertrauenswürdig. Das muss aber nix heißen, ich kann mich auch irren, und Sie müssen mir auch nicht vertrauen ;), schließlich geht es in diesem Artikel um eine Anleitung für den Weg zu einer guten Paranoia ...

Mein Lieblings-Add-On für Firefox ist nicht mehr "Adblock Plus" (deswegen auch kein Link), sondern eine Abspaltung davon namens Adblock Edge, das die allermeiste lästige Werbung ausfiltern kann. Sie wird nicht nur nicht angezeigt, sondern auch nicht von fremden Werbeservern abgerufen, und das ist schonmal eine deutliche Verbesserung. Adblock Plus Edge wird mit "Filterlisten" gesteuert, die man abonnieren kann, oder man kann auch seine eigenen Regeln eingeben, was erlaubt und verboten ist. Dasselbe Problem hier: beim Abruf der Filterlisten teile ich dem Lieferanten der Filterliste mit, dass ich den Werbeblocker einsetze. Der Nutzen überwiegt für mich, so dass ich hier mit nur ganz wenig Bauchschmerzen die Filterliste abonniert habe. Diese Funktion gibt es auch für Google Chrome. Ich empfehle nicht mehr Adblock Plus, weil vor einigen Wochen heraus kam, dass die Firma hinter Adblock Plus andere Webseiten gegen Gebühr auf eine Whitelist nimmt und vorschreibt, wie "akzeptable" Werbung aussehen soll. Diese Geschäftspraktik will ich nicht unterstützen.

Nachtrag (20151111): das Add-On "Adblock Edge" wird nicht mehr weiterentwickelt, stattdessen wird die Verwendung des leistungsfähigeren und schnelleren "uBlock origin" empfohlen. Dieses Add-On gibt es sowohl für Firefox als auch für Chrome.

Als Ergänzung zu sehen ist eine Extension, die ich nur für Google Chrome kenne: Facebook Adblock. Diese Erweiterung verhindert die "sponsored stories", die Facebook ungefragt anzeigt.

Das nächstbeste, das ich fast noch mehr liebe, ist ein Add-On, mit dem man steuern kann, welche Websites Programme im Webcode auf meinem Rechner ausführen dürfen (Javascript, Java, Flash, usw.). Die meisten Schädlinge, die man sich beim Browsen einfangen kann, dringen über Programmfehler im Browser in den PC ein, und davon wiederum die meisten über Code von bewusst oder kriminell verseuchten Websites ("code injection", unsichtbare I-Frames, transparente Layer usw.). Hier kann man also nicht nur etwas für die Privatsphäre tun, sondern auch für die Sicherheit des PCs.

Dieses Add-On gibt es als "NoScript" für Firefox, und für Google Chrome etwas Ähnliches namens "NotScripts". Das sind übrigens zwei verschiedene Produkte. Es gibt auch ein "ScriptNo" des Firefox-Entwicklers für Chrome, aber das halte ich für schlechter.

Ehrlicherweise muss ich dazusagen, dass das Surfen mit einem solchen Skriptblocker unbequemer wird. Viele moderne Webseiten funktionieren erstmal nicht wie gewohnt, manche Seiten werden gar nicht erst angezeigt und man sitzt vor einem weißen Bildschirm, oder das Layout der Seite ist durcheinander oder kaputt. Für diesen Fall (der Browser "kennt" die Website also noch nicht) kann man dann schrittweise Genehmigungen vergeben ("whitelist"), bis die Website korrekt funktioniert, und man hat dann trotzdem unerwünschte Drittseiten ausgeschlossen. Das braucht zugegeben etwas Übung und Erfahrung, bis man herausgefunden hat, was man einschalten bzw. erlauben darf, und was nicht nötig ist. Das ist aber auch eine heilsame Erkenntnis: mit diesem Hilfsmittel wird angezeigt, wieviele verschiedene Quellen befragt werden, wenn man eine "einfache" Webseite abruft, und wieviele Stellen nun Kenntnis davon haben, dass ich gerade eine bestimmte Seite abgerufen habe.

Nebenbei wird der Browser auch ein wenig schneller, wenn man die Werbung nicht abrufen lässt ;)

Was ich prinzipiell bei diesem schrittweisen Vorgehen nicht erlaube, sind Abrufe von Werbedienstleistern. Hier sind mal ein paar aufgezählt, die bei mir keinen Fuß in die virtuelle Tür bekommen:

  • googlesyndication.com
  • googleadservices.com
  • quality-channel.de
  • google-analytics.com
  • ivwbox.de
  • doubleclick.net

Aber dieser Artikel ist ja auch eine Anleitung, um paranoid zu werden, also muss da auch ein bißchen Mühe dabei sein ;)





Übrigens funktionieren die meisten Websites mehrstufig: das sieht man bei "spiegel.de" sehr schön. Mit abgeschalteten Skripten bekommt man nur die Anzeige von "NotScripts", dass "spiegel.de" geblockt wurde. Im ersten Schritt zur Prüfung sollte man nun "spiegel.de" vorübergehend erlauben ("temp").







Die Seite wird nun automatisch neu geladen, und da jetzt die Ausführung von Skripten erlaubt ist, die direkt von "spiegel.de" kommen, wird ein bißchen Code ausgeführt. Aber dieser Code hat es in sich: hier werden Programmteile nachgeladen, die von weiteren Servern wiederum Javascript-Programme holen und ausführen wollen. Probieren Sie's aus! Diese weiteren Dienstleister würde ich an Ihrer Stelle nicht mehr erlauben ;)








Des weiteren, wenn wir gerade von Privatsphäre zu Sicherheit gesprungen sind, noch ein Add-On, das ich sehr gern mag, weil es mir das Gefühl gibt, eine bestimmte Art von Schadsoftware auszutricksen: es heißt "Secure Login" für Firefox und löst ein eigentlich sehr exotisches Problem, das aber wirklich mal vor einiger Zeit von einigen Schädlingen gern verwendet wurde. Diese Schädlinge nutzen aus, dass die Browser zur Bequemlichkeit des Benutzers Namen und Passwörter speicher können (hoffentlich verschlüsselt! Haben Sie das eingeschaltet? Im Firefox unter "Einstellungen" -> "Sicherheit" -> "Master Password"!) und beim Erkennen bestimmter Schlüsselwörter in Webseiten automatisch die gespeicherten Daten in die Formularfelder einsetzen können. Hier kommt nun einiges zusammen: die Formularfelder werden vom Browser-Automatismus recht früh während des Ladens und Anzeigens gefüllt,  und wenn in der Webseite bestimmte Javascript-Funktionen verwendet werden, kann ein Skript im Web-Code diese gefüllten Formularfelder während des Starts ("<body onload=scriptfunktion>") auslesen und (siehe oben) "nach Hause telefonieren". Das Add-On verzögert das Ausfüllen der Formularfelder durch den Browser, und es verhindert ebenfalls bestimmte Mechanismen, derer sich diese Schädlinge bedienen. Für mich ein Muss!

Zurück zur Privatsphäre: ähnlich wie Adblock, das gezielt Werbung verhindert, gibt es ein vergleichbares Add-On, das für den Schutz vor Ausspionieren entwickelt wurde, und auch Aufrufe von Statistikfunktionen verhindert. Es heißt "Ghostery" und macht den Browser zum unsichtbaren "Geist", der eine Website besucht, aber nicht die von externen Dienstleistern eingebundenen Zählfunktionen aufruft (es verhindert also z.B. auch transparente 1x1-Bilder, sogenannte "web bugs", die zum Zählen eingesetzt werden). Außerdem begrenzt es die Lebensdauer von Cookies. Manche Server wollen "unsterbliche" Cookies setzen, damit sie auch nach Jahren den Besucher wiedererkennen, aber das will ich ganz sicher nicht. Cookies können entweder bis zur Beendigung des Browsers am Leben bleiben oder für einen bestimmten Zeitraum (3-30 Tage ist normal).

Manche Websites versuchen auch, unterschiedliche Cookies zu setzen, manche davon kurzlebig, manche dauerhaft. Diese Datenpakete werden vom Server des Anbieters an meinen Browser geliefert und enthalten irgendwelche Daten. Beim nächsten Besuch werden von meinem Browser diese(s) Cookie(s) wieder vorgezeigt und ich bin damit wiedererkennbar. Die meisten Cookies sind übrigens auch verschlüsselt oder wenigstens "verschleiert", teilweise zum Verkleinern, teilweise aber auch tatsächlich, um zu verbergen, was drin steckt. Ein sehr gutes Add-On zum Überwachen und automatischen Aufräumen von Cookies ist "Better Privacy" für Firefox.

Diese Add-Ons überschneiden sich teilweise, man muss sie nicht alle einsetzen, aber jedes von ihnen gibt dem Benutzer ein Stück seiner Privatsphäre zurück. Wenn man mehrere einsetzt, wird der Schnitt besser ;)

In diesem Sinne: lasst uns eine gesunde Paranoia entwickeln!

[Update 20131106: Umbruchfehler, Links eingefügt, Hinweis auf Vortrag]
[Update 20130722: Hinweis auf Adblock Edge statt Adblock Plus]
[Update 20151111: Hinweis auf uBlock origin statt Adblock Edge]

05.06.2013

Verbrauchtes LTE-Volumen protokollieren

Ich beschäftige mich weiter mit der Telekom, heute zur Abwechslung mal wieder ein technischer Beitrag, der beschreibt, wie man den Überblick über das schon verbrauchte Volumen behalten kann.

Bekanntlich ist unser Haushalt seit letztem Jahr mit LTE unterwegs im Internet. Bedauerlicherweise gibt es nur Verträge mit Pseudo-Flatrate, die nach einer bestimmten verbrauchten Datenmenge im Monat von der Nominalgeschwindigkeit ("bis zu" 16 MBit/s) auf DSL-light-Geschwindigkeit (384 KBit/s) gedrosselt werden.

Zu dieser Kontingentierung gehört übrigens auch mein Upload. Wenn ich also Bilder hochlade, um Papierabzüge zu bestellen, wird das voll gezählt.

Um das verbrauchte Volumen abzurufen, gibt es eine Info-Seite bei der Telekom, die mir berichtet, wieviel von meinem Kontingent schon verbraucht ist. Mit ein bißchen Getrickse in einem Skript kann ich daraus die zwei Zahlen extrahieren, die ich wissen will, und die protokollieren.

Mein Artikel besteht also aus zwei Teilen: dem Skript zum Abfragen, und einem (wahlweise zwei) Cron-Jobs zur regelmäßigen Aufzeichnung.

Das Skript ist sehr einfach: es verwendet eine "regular expression" in perl, um die Zahlen und die zugehörigen Maßeinheiten (KB, MB, GB) aus dem HTML-Wust herauszufischen.

Übrigens muss man kein Linux haben, um diese kleinen Hilfsmittel einzusetzen: wget, perl und die GNU Kommandozeilenwerkzeuge gibt es auch für Windows. Alternativ kann man auch die komplette CygWin-Umgebung installieren. Mit einem Cron-Job wird es etwas schwieriger, aber wenn man einen PC hat, der immer angeschaltet ist, kann man mit dem Windows-Befehl at auch so etwas zusammenbauen. Die Hilfefunktion wird mit at /? aufgerufen.

Zurück zum eigentlichen Thema: mein erster Versuch, um das HTML anzuschauen, war übrigens diese Kommandozeile:

wget -SO- http://pass.telekom.de/portal/home |\
  perl -pe 's!>!>\n!go' |\
  grep -B1 verbraucht

Diese drei Befehle fragen die Info-Seite ab (wget), und nach jedem HTML-Tag wird mit einem simplen perl-Einzeiler ein Zeilenumbruch eingefügt. Durch die nun entstandene Zeilenstruktur kann der "grep"-Befehl ein Stichwort finden ("verbraucht") und die gesamte Zeile, in der dieses Stichwort vorkommt, ausgeben. Außerdem hätte ich gern die Zeile davor ebenfalls in der Anzeige (der Switch -B anzahl zeigt soviele Zeilen vorher - "Before" - ebenfalls an - diese Option funktioniert nur beim GNU grep, nicht bei AIX, Solaris, etc.).

Mit genau demselben Prinzip, nur etwas aufgehübscht, funktioniert die eigentliche Protokollierung. Da das Werk als Cron-Job laufen soll, muss ich mich selbst um vernünftige Umgebungsvariablen wie PATH kümmern; in Cron-Jobs gibt es nur Minimaleinstellungen.

#!/bin/sh

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

date=
file=

while getopts "df:" opt
do
  case "$opt" in
  d) date="%Y%m%d-%H%M%S ";;
  f) file="$OPTARG";;
  esac
done
shift $(expr $OPTIND - 1)

if [ -n "$file" ]
then
  d="${file%/*}"
  test -d "$d" || mkdir -p "$d"
fi

q=$(wget -qO- http://pass.telekom.de/portal/home |\
  perl -ne '
    print("$1 $2 $3 $4\n")
   
if (m#<span.*?>([0-9,.]+).*([KMG]B)</span> von ([0-9,.]+).*([KMG]B) mit voller Geschwindigkeit verbraucht#i)')
test "$(/bin/tty)" = "not a tty" || date +"$date$q"
test -n "$file" && date +"%Y%m%d-%H%M%S $q" >> $file

Die Ausgabe wird hier auf Wunsch noch mit dem Datum der Abfrage versehen, und wenn man mit -f einen Dateinamen angibt, wird die Ausgabe zusätzlich noch an diese Datei angehängt.

Ein paar kleine Tricks will ich ein bißchen näher erklären:

  • PATH=...${PATH:+:$PATH} - hier prüfe ich, ob in der Variablen PATH überhaupt irgendetwas enthalten ist. Falls ja, hänge ich einen Doppelpunkt und den alten Inhalt hinten dran und setze vorn neue Pfadnamen davor.
  • d="${file%/*}" - Vom Dateinamen in $file schneide ich alles nach dem letzten / ab. Als Ergebnis steht in der Variablen $d der Pfadname der Datei.
  • test -d "$d" prüft, ob dieses Verzeichnis existiert, und erzeugt es ggfs. mit mkdir -p mit allen Unterverzeichnissen dazwischen.
  • In einem Cron-Job ist eine Ausgabe auf die Konsole sinnlos, deshalb prüfe ich, ob der Befehl /bin/tty mir das Ergebnis "not a tty" liefert.
  • Der date-Befehl akzeptiert +Formatstring. Ich baue einfach das aktuelle Ergebnis in den Formatstring mit ein: date +"$date$q"

Mit einem Cron-Job wird dieses Skript nun stündlich aufgerufen:

57 * * * * /usr/local/bin/lte-quota.sh -f /var/spool/lte-quota.txt >/dev/null 2>&1

Und einmal am Tag lasse ich mir den aktuellen Stand auch noch als Mail zuschicken:

1 8 * * * (/bin/tail -1 /var/spool/lte-quota.txt | /bin/mail -s "LTE quota" ths) >/dev/null 2>&1
Das Ergebnis sieht dann bei mir etwa so aus:

20130603-225703 1,7 GB 30 GB
20130603-235702 1,9 GB 30 GB
20130604-005702 1,9 GB 30 GB
20130604-015702 1,9 GB 30 GB
20130604-025702 1,9 GB 30 GB
20130604-035702 1,9 GB 30 GB
20130604-045702 1,9 GB 30 GB
20130604-055702 2 GB 30 GB
[Update: die Telekom-Seite hat sich geändert, im Skript Regex angepasst]

Der Kreishaushalt und die CDU

Und schon wieder überkommt mich das Bedürfnis, einen Leserbrief zu schreiben.
Die Unsitte, über Pressemitteilungen zu kommunizieren, auch wenn man nix zu sagen, macht auch vor der CDU nicht halt.

Alexander Kartmann von der Butzbacher CDU und Mitglied im Kreisparlament, spricht recht vage von einem "Verdacht", dass der von Kämmerer Joachim Arnold vorgelegte Haushalt, "schöngerechnet" sei und der vorjährige Abschluss absichtlich besonders schlecht.

Zu solchen Verdächtigungen habe ich eine Meinung:

Lieber Herr Kartmann junior,
Ihre Pressemitteilung zum vorgelegten Haushalt des Kreises ist ja unterste Schublade.
Von einer Opposition im Kreistag erwarte ich als Steuerzahler - der Sie und Ihre Fraktion immerhin finanziert - konstruktive, sachliche Arbeit.
Die Opposition soll die Regierung kontrollieren, das ist ihre und Ihre Rolle in einer demokratischen Gesellschaft.
Wenn Sie nun einen "Verdacht" aussprechen, dass die Zahlen frisiert wurden, um in diesem (Wahl-)Jahr besonders gut auszusehen, werfen Sie unsubstantiiert ganz schön schlimm mit Dreck. Vermutlich in der Hoffnung, dass dann "irgendetwas" hängen bleibt in der Erinnerung der Leser? Aber das verstehe ich nicht unter Kontrolle.
Sie behaupten ohne jegliche Begründung, dass hier Bilanzfälschung betrieben wird? Haben Sie Belege dafür? Dann liefern Sie die Belege! Sie rücken die Mitarbeiter, die an der Bilanz beteiligt waren, in die Nähe von Straftätern. Ist Ihnen das bewusst? Eine Bilanz wird aufgrund rechtlicher Vorschriften erstellt. Haben Sie einen Nachweis, dass Vorschriften missachtet wurden? In Ihrer Pressemitteilung finde ich davon kein Wort. Sie sprechen von Erhöhungen bestimmter Umlagen zu Lasten der Gemeinden und Kommunen. Könnte hier nicht vielleicht eine entsprechende vertragliche Verpflichtung aus dem Rettungsschirm des Landes zugrunde liegen? Aber das wäre ja politisch unbequem, zur Abwechslung mal sachlich Für und Wider abzuwägen.
Herr Arnold hat jahrelang als Wölfersheimer Bürgermeister bewiesen, dass er gut  wirtschaften kann. Wölfersheim steht im Vergleich zu anderen Kommunen gut da und hat so gut wie keine Schulden. Es gibt also per se keinen Anlass, ihm aufgrund der beleglosen Verdächtigungen, die Sie hier äußern, zu mißtrauen.
Darf ich daran erinnern, dass die Kürzungen im kommunalen Finanzausgleich in Höhe von über 340 Mio. Euro von der CDU-geführten Landesregierung beschlossen und gerade kürzlich vom Staatsgerichtshof als verfassungswidrig bezeichnet wurden? In der FAZ war von einem "juristischen Debakel" zu lesen. Begründung des Gerichts: es wurde gekürzt, ohne vorher zu prüfen, welchen Finanzbedarf die Kommunen überhaupt haben. Unbegründete Kürzungen mit dem Rasenmäher also. Genauso unbegründet wie Ihr "Verdacht" der Schönfärberei.
Der Kreis und die Kommunen haben also aufgrund rechtswidriger Finanzkürzungen Einsparungen vornehmen müssen. Worüber genau wollten Sie sich nochmal in Ihrer Pressemitteilung aufregen? Die CDU hat diese Misere doch erst verursacht!