Google Hacker.

15 02 2013

Es musste ja mal so weit kommen! Google hat mein echtes Wesen erkannt. Den bösen, bösen Hacker, der meinen Account kapern will.

Ich bastel gerade an einer Methode, um eine Google+ Statusnachricht, per Kommandozeile, unter Linux, absetzen zu können. Somit könnte man im nächsten Schritt die verschiedensten Tools dazu bringen, was bei Google+ zu posten. Leider gibt es aktuell in der G+ API keine Möglichkeit etwas zu schreiben – die API lässt nur lesende Zugriffe zu.

Mit ein wenig cURL, gewürzt mit ein paar Zeilen Logik kann man aber etwas posten. Wenn man kein böser Hacker wäre … Google hat mich erst mal ausgesperrt:

„vor Kurzem hat jemand versucht, sich in Ihrem Google-Konto (..) anzumelden. Wir haben die Anmeldung verhindert, damit kein Hacker auf Ihr Konto zugreifen kann.“

Wäre ja erst mal kein Beinbruch. Doch es wurde nicht nur die Anmeldung verhindert – nein, auch mein Passwort muss ich neu setzen, um meinen Account wieder zum Leben zu erwecken. Danach konnte ich mit einem Klick bestätigen, dass der Zugriff von keinem Hacker kam, sondern von mir. Dann läuft auch das Skript.

Ziemlich nervig meine Lieblingsdatenkrake.

Werbeanzeigen




Tweetnest, Hovercards und SSL.

3 02 2013

Wie meine treuen Leser ja wissen, nutze ich Tweetnest. Nun läuft es bei mir aber auf einer Seite mit SSL-Verschlüsselung.
Soweit kein Problem. Das Einzige, was nicht mehr funktionierte nach der Umstellung auf SSL waren die Hovercards von Twitter (für die man den Anywhere-API-Key benötigt).

Nachdem ich mir in meinem Browser mal genauer angeschaut habe, was passiert habe ich schon das Problem gefunden. Es werden Javascript-Dateien nachgeladen, die nicht über eine sichere Verbindung kommen. Da wäre zum einen jQuery und zum anderen die Anywhere-API.

Die Lösung dafür ist absolut einfach – es müssen nur die URLs der beiden Dateien von http auf https umgeschrieben zu werden. Versteckt sind diese in der Datei „header.php“ im Tweetnest-Unterverzeichnis „inc“.

Als Erstes sucht ihr nach: http://ajax.googleapis.com/ajax/libs/jquery/ Ändert dies zu: "https://ajax.googleapis.com/ajax/libs/jquery/"Die zweite URL, die ersetzt werden muss, lautet: http://platform.twitter.com/anywhere.js?id= Ändert sie auf: https://platform.twitter.com/anywhere.js?id=

Nun funktionieren die Hovercards auch mit SSL.





Tweetnest Installationsanleitung.

23 01 2013

Nachdem mich einige gefragt haben, wie man denn Tweetnest überhaupt installiert und auch die Heldenstadt meiner Anleitung nicht ganz folgen konnte, schreibe ich hier mal eine ausführlichere Anleitung.

Ich muss zugeben, die vorherige Anleitung zum Import seines Twitter-Archiv-Downloads setzte einiges an Wissen voraus und Tools wie z.B. git sind nicht auf jedem Rechner vorhanden und auch einen Shell-Zugang zu seiner Webseite hat nicht jeder.

Daher nun eine Anleitung für Leute mit Webspace auf dem PHP und MySQL verfügbar sind und sonst nichts weiter benötigt wird.

Besorgt euch als Erstes den aktuellen Stand von Tweetnest. Wenn ihr den Link zum Fork des Users tralafiti anklickt, seht ihr einen Button mit der Aufschrift „Zip“, dort wird die aktuelle Version auf euren Rechner herunter geladen.

Entpackt das Archiv, ihr erhaltet einen Ordner „tweetnest-master“. Diesen einfach in „tweetnest“ umbenennen und auf euren Webspace hochladen.
Nun öffnet im Browser die Adresse eurer Webseite und fügt „/tweetnest“ am Ende hinzu. Es sollte sich nun die Installationsseite von Tweetnest öffnen. Hier müsst ihr das Formular mit euren Daten ausfüllen.

Das Feld „TWITTER SCREEN NAME:“ ist selbst erklärend, hier tragt ihr euren Twitternamen ein. Auch die Zeitzoneneinstellung ist keine Hexerei. Für Deutschland wählt ihr bei „YOUR TIME ZONE:“ einfach „Europe/Berlin“ in dem Feld aus.

Die nächste Textbox ist mit „TWEET NEST PATH:“ benannt, diese wird automatisch gefüllt und sollte nur geändert werden, wenn ihr wirklich wisst, was ihr da macht. Also so stehen lassen.
Der nächste Abschnitt ist für die Datenbank-Konfiguration zuständig.
Tragt dort eure MySQL-Zugangsdaten ein, solltet ihr sie nicht wissen, schaut in der Doku eures Anbieters nach oder fragt diesen. Die Datenbank, die Tweetnest nutzen soll, muss schon vorhanden sein. Das Feld „TABLE NAME PREFIX:“ müsst ihr nicht ändern, im Normalfall ist die Einstellung in Ordnung.

Die nächsten zwei Felder drehen sich um das Admin-Passwort. Da ich ja davon ausgehe, dass ihr keinen Shell-Zugang zu eurem Webspace habt, setzt hier bitte ein Passwort. Dies sollte natürlich nicht identisch mit eurem Passwort bei Twitter sein.

Die Haken bei „“FOLLOW ME” BUTTON“ und „SMARTYPANTS“ können einfach gesetzt bleiben.

Das Feld „@ANYWHERE API KEY“ lasst ihr leer, dies ist für den Betrieb von Tweetnest nicht zwingen notwendig.

Ein Klick auf „Submit and Setup“ schließt die Einrichtung ab. Löscht im Anschluss die Datei „setup.php“ von eurem Webspace.

Der erste Schritt nach dem Setup ist das Aufrufen der Load User Seite. Diese erreicht ihr, indem ihr an die Domain eures Webspace „tweetnest/maintenance/loaduser.php“ anfügt.

Wenn ihr also „www.twitterarchiv.tld“ besitzt, so müsst ihr nun „www.twitterarchiv.tld/tweetnest/maintenance/loaduser.php“ aufrufen. Ihr werdet nach einem Benutzernamen und einem Passwort gefragt. Der Nutzername ist euer Twittername und das Passwort ist das bei der Installation vergebene Admin-Passwort.

Die nächsten Schritte kümmern sich um den Import des Twitter-Archivs. Die Zip-Datei, die ihr bei Twitter herunter laden könnt, enthält mehrere Dateien und Ordner. Uns interessieren nur die Dateien im Ordner „data\js\tweets“. Für jeden Monat gibt es dort eine Datei, der Dateiname ist immer wie folgt aufgebaut: „jjjj_mm.js“. So heißt beispielsweise die Datei für den Januar 2013 „2013_01.js“. Alle Javascript-Dateien aus dem tweets-Ordner nehmt ihr nun und ladet sie in den schon vorhandenen Ordner „tweetnest/archive“ auf eurem Webspace.

Nun wird die Seite „maintenance/loadarchive.php“ im Browser aufgerufen, die komplette URL müsst ihr euch wieder wie im oben beschriebenen Beispiel zusammenbauen.
Normalerweise startet man den Import über den Shell-Zugang, dort gibt es dann auch keine Probleme. Über den Browser hat eine PHP-Datei nur eine beschränkte Ausführungszeit, dann wird der Import abgebrochen und ihr seht eine Fehlermeldung eures Browsers („Zeitüberschreitung“).
Keine Sorge, dies ist nicht weiter problematisch und der Entwickler des Skripts hat dies berücksichtigt. Ladet einfach die Seite neu, nachdem der Fehler aufgetreten ist. Dies wiederholt ihr nach jeder Fehlermeldung. Je nach Server, auf dem ihr euren Webspace habt, kann mit einem Mal laden zwischen 2500 und 5000 Tweets importiert werden. So könnt ihr grob überschlagen, wie oft ihr die Seite aufrufen müsst.
Versucht aber nicht wie im Wahn die Seite neu zu laden, dass beschleunigt nichts. Also immer erst die Fehlermeldung abwarten und schauen, dass der Browser nicht noch versucht die Seite zu laden. Bei den meisten Anbietern ist das Timeout auf 60 Sekunden gesetzt, d.h., nach 60 Sekunden wird der Import abgebrochen und erst dann ladet ihr die Seite neu.

Wenn ihr dann die Seite „Tweet Nest: Loading tweets from archive“ seht, dann ist der Import komplett abgeschlossen.

Nun könnt ihr Tweetnest benutzen.
Damit Tweetnest auch eure zukünftigen Tweets empfangen kann, müsst ihr regelmäßig die Seite „maintenance/loadtweets.php“ aufrufen. Bei diesem Aufruf werden maximal 3200 Tweets der Vergangenheit geladen, wer also extrem häufig twittert, muss die Aktualisierung häufiger laufen lassen als der wenig-Twitterer.





Das eigene Tweetarchiv.

19 01 2013

Viele von uns sind bei Twitter anzutreffen. Wir pusten unsere Gedanken ins Netz und dort verschwinden sie nach ein paar Tagen im Nirvana. Keiner erinnert sich mehr daran, die Chance nachzulesen ist bei Twitter auch nicht gerade einfach. Wenn ich einen meiner ersten Tweets lesen will, klappt das nicht.

Nun gibt es seit einiger Zeit Tools wie Tweetnest und Thinkup. Beide archivieren eure Tweets. Tweetnest ist spartanisch gehalten, ihr seht eure Tweets, könnt auf einer Zeitleiste einzelne Tage auszählen oder eine Textsuche bemühen.
Thinkup sichert nicht nur Tweets, ihr könnt dort auch Facebook, Google+ und Foursquare einbinden und eure Statusupdates sichern. Außerdem gibt es einige Auswertungsmöglichkeiten und mehr oder weniger sinnvolle Grafiken, neudeutsch Charts.
Beide Tools haben aber einen Nachteil, sie können durch eine Beschränkung der Twitter-API nicht besonders weit in die Vergangenheit schauen. Diese Twitter-API ist die Verbindung der Programme zu euren Tweets. Twitter erlaubt es nur 3200 Tweets der Vergangenheit zu laden. Wer also zum Installationszeitpunkt eines Tools mehr als 3200 Tweets hat, schaut in die Röhre. Eure Tweets, die ihr in Zukunft schreibt, werden alle erfasst – wenigstens da seid ihr auf der sicheren Seite. Ich habe Tweetnest seit über einem Jahr laufen und habe dort etwas über 13.000 Tweets gesammelt. Somit fehlten mir aber über 23.000!

Twitter bietet nun seit einiger Zeit die Möglichkeit, seine Tweets herunter zu laden. Diese Funktionalität wird nach und nach für alle Nutzer freigeschaltet.
Der Punkt ist in den Account-Einstellungen im unteren Teil zu finden, wenn er für euch aktiviert ist.
Auch hier kommt ihr nicht sofort an eure Tweets, ihr müsst erst einen Download anfordern. Dies geht ganz einfach via Mausklick und dann heißt es warten. Bei mir betrug die Wartezeit nur 5 Minuten. Die Zeit variiert aber. Wenn der Download endgültig bereitsteht, bekommt ihr eine Mail mit dem Downloadlink.

Bei mir sind (nahezu) alle Tweets enthalten. Ca. 20 Stück sind trotzdem irgendwo im Datenorkus verschwunden.
Das Twitter-Archiv enthält alles, was man benötigt um seine alten Tweets anzuschauen – ihr benötigt lediglich einen Browser.
Wenn die Daten schon mal da sind, dann könnte man sie ja gleich weiter nutzen. Wie sind sie denn abgelegt? Jeder Monat wird in einer separaten Datei gespeichert. Einmal als CSV-Datei und einmal als JavaScript-Datei. Interessant an den JavaScript-Dateien ist die Tatsache, dass es nahezu sauberes JSON ist – lediglich die erste Zeile stört.
Ein „tail -n +2“ würde unter Linux in diesem Fall schon weiter helfen.

Da ich sicher nicht der Erste bin, der die Daten nutzen will, fragen wir doch mal unsere freundliche Datenkrake Google, wie es diesbezüglich aussieht. Siehe da, es gibt einen Fork des originalen Tweetnests auf GitHub. Dieser enthält nicht nur einen Import, sondern ist auch auf dem aktuellen Tweetnest-Stand.
Ein beherztes „git clone git://github.com/tralafiti/tweetnest.git“ später und ich hatte die Version auf meiner Platte. Noch schnell die Tweetnest-Konfiguration („inc/config.php“) und die dazugehörige Datenbank sichern, die geänderte Tweetnest-Version einspielen und die Konfiguration wieder zurückspielen.

Diese Tweetnest-Version benötigt noch eine Änderung der Datenbank, die ID jedes Tweets darf nur noch einmal vorkommen. Doch keine Sorge, ich müsst euch darüber keine Gedanken machen. Mittels „php upgrade.php“ startet ihr ein mitgeliefertes Skript, welches euch die Arbeit abnimmt.
Das ging einfacher als gedacht. Nun die Javascript-Dateien aus dem Twitter-Export in das Verzeichnis “archive” kopierten und den Import mittels “php maintenance/loadarchive.php” anschmeißen. Etwas mehr als 15 Minuten später waren meine fast 36.000 Tweets importiert, es gab keine Dopplungen und ich kann sie wie von Tweetnest gewohnt durchsuchen und mir der Zeit nach geordnet ansehen.
Wie bereits erwähnt, fehlen 20 Tweets, dies kann ich persönlich aber verschmerzen. Die zukünftigen Tweets werden dann über den Tweetnest eigenen Mechanismus wie gewohnt abgerufen und gespeichert.





Zwei-Faktor-Authentifizierung.

28 11 2012

Jeder kennt sie, die Zwei-Faktor-Authentifizierung, teilweise ohne sich dessen bewusst zu sein. Selbst die Leute, die mit Technik nichts am Hut und am Rechner zwei linke Hände haben.
Wie kann man sich überhaupt authentifizieren? Es lassen sich drei Gruppen ausmachen: Besitz, Wissen und Biometrie.

Der Besitz:
Jemand besitzt etwas mit dem Er sich authentifizieren kann. Beispiele aus dem Alltag währen z.B. ein Schlüssel, die EC-Karte oder ein Personalausweis. Mit dem passenden Schlüssel authentifiziert man sich quasi gegenüber dem Schloss und kann dieses öffnen oder mit dem Personalausweis, kann man sich gegenüber der Polizei authentifizieren, wer man ist.

Das Wissen:
Jemand weiß etwas um sich zu authentifizieren. Dies kann das Passwort zum Twitter-Account sein oder die PIN-Nummer der SIM-Karte im Handy.

Die Biometrie:
Hierfür werden körperliche Merkmale verwendet, die absolut eindeutig eine Person authentifizieren. Zur Authentifizierung mittels biometrischen Merkmalen werden beispielsweise der Fingerabdruck oder ein Irisscan verwendet. Der Vorteil der Biometrie ist, dass man seine Merkmale immer dabei hat – vorausgesetzt, man schneidet sich nicht ausversehen den Finger ab. 😉

Die Zwei-Faktoren-Authentifizerung nutzt nun, wie der Name es schon vermuten lässt, zwei dieser Faktoren. Im Alltag wäre das beispielsweise die Authentifizierung am Geldautomaten. Ich besitze etwas, meine persönliche EC-Karte und ich weiß etwas, meine PIN-Nummer. Nur so komme ich an mein Geld.

Solche Authentifizierungsverfahren gibt es auch online. Damit erhöht man die Sicherheit im Vergleich zur Authentifizierung nur über ein Passwort. Selbst wenn das Passwort zu einem Account erraten oder abgefangen ist, es ist nur ein Teil der Authentifizierung. Ohne den zweiten Teil ist das Passwort nichts wert. Google bietet einem schon länger die Möglichkeit, seinen eigenen Account zu schützen, indem man außer dem Passwort auch noch einen Code eingeben muss. Dieser Code ist nur eine begrenzte Zeit gültig. Im Firmenumfeld realisiert man die Codeerzeugung meist über sogenannte Tokens. Diese kleinen Geräte werden einmalig initialisiert und erzeugen dann auf Knopfdruck einen mehrstelligen (Zahlen-)Code. Das Problem hier ist allerdings, dass man bei mehreren Zugängen auch mehrere dieser Geräte dabei haben muss.
Ich persönlich habe zwei dieser Tokens bei mir, mehr würde ich aber nicht haben wollen – irgendwann wird es einfach unpraktisch.
Damit Google nicht jedem Anwender solch einen Token zuschicken muss, was nicht nur ein ziemlicher Aufwand, sondern auch mit einigen Kosten verbunden wäre, nutzt der Anwender sein Handy. Entweder bekommt man jedes Mal eine SMS geschickt, ähnlich dem mTan-Verfahren, welches teilweise beim Onlinebanking eingesetzt wird oder aber man installiert eine Anwendung auf seinem Telefon und generiert den Code selbst.

Für die Neugierigen und Interessierten unter euch, der von Google verwendete Algorithmus für das „Time-Based One-Time Password (TOTP)“ ist in dem RFC 6238 zu finden.

Auch andere Dienste und Unternehmen setzen auf das TOTP-Verfahren. So kann man bei Amazon AWS nicht nur einen Hardwaretoken nutzen, sondern auch eine App. Man muss nur das „virtual MFA device“ auswählen. MFA steht bei Amazon für „Multi-Factor Authentication“. Auch Dropbox hat die Zwei-Faktor-Authentifzierung eingeführt, nach der Aktivierung in den Einstellungen muss man sich auf der Webseite mit Passwort und dem jeweils neu erzeugten Code einloggen.

Eine kleine (und nicht vollständige) Auswahl der Apps, die einem das TOTP erzeugen können sind der Google Authenticator, Amazon AWS MFA und Authenticator. Mit diesen drei Apps sind die gängigen Smartphones, Android, iPhone, BlackBerry und Windows 7, abgedeckt.

Da der Algorithmus hinter TOTP bekannt ist, gibt es die verschiedensten fertigen Implementierungen in Java, Javascript, Python, C# und anderen Sprachen.
Wie man die Zwei-Faktoren-Authentifizierung unter Linux zum Absichern seines SSH-Accounts nutzen kann, verrate ich euch im nächsten Blogeintrag.





Galaxy R (i9103) startet nicht mehr.

11 11 2012

Wer viel rum spielt, kann auch viel kaputt machen.

Mein Galaxy R hat sich komplett aufgehangen. Ok, Akku raus, Akku rein, wieder anschalten, geht wieder. Denkste!
Da bleibt das Smartphone einfach beim Samsung-Logo stehen, friert ein und macht nichts mehr. Alles Mögliche versucht, nix geht mehr.

Was ist nun zu tun?
Gute Frage! Eine Antwort habe ich nicht sofort gefunden, also einfach mal ein wenig rumprobiert. Mehr kann man ja nicht mehr kaputtmachen 😉
Geholfen hat ein leeren der Cache-Partition.

Wie das geht?
Nehmt den Akku aus dem Galaxy R, entfernt die Micro-SD- und die SIM-Karte. Legt den Akku wieder ein. Haltet die Lauter-Taste, den Home-Button und den Power-Knopf gedrückt. Nach 3 Sekunden lasst nur den Power-Knopf los.
Das Handy bootet in ein Recovery-System. Nach einigen Sekunden erscheint ein Auswahlmenü, in diesem wählt ihr den unteren Punkt „wipe cache partition“ aus. Die Lautstärketasten dienen zur Navigation im Menü, mit dem Home-Button bestätigt ihr eure Auswahl.
Nach dem Leeren der Cache-Partition nehmt ihr den Akku wieder raus, setzt Micro-SD- und SIM-Karte sowie den Akku wieder ein und das Handy bootet wieder brav, ganz so, wie es sich gehört.

Einziger Nachteil: Einige Anwendungen auf dem Handy vergessen ihre Einstellungen. Weitere Daten werden nicht gelöscht.

P.S. Wie immer gilt: Nachmachen auf eigene Gefahr, und wenn ihr was kaputt macht, seid ihr ganz alleine dafür verantwortlich.





Raspberry Supercomputer

23 09 2012

Wer die Systemhelden seit Anfang an kennt, kennt evtl. auch CSI Munich. Dort zeigten Constantin und Rolf wie man günstig einen ZFS-Pool aus günstigen USB-Sticks bauen kann um die Möglichkeiten des Dateisystems zu testen.

An der Universität von Southhampton hat man sich jetzt einen Supercomputer gebaut. Dieser „Cluster“ besteht aus 64 Raspberry Pi, das Gehäuse wurde aus Lego gebaut. Wer sich so einen Supercomputer nachbauen will braucht nur noch 64 Raspberry Pi, die Anleitung zum Nachbau ist online verfügbar.

Geniale Idee.