Mein Dell Streak Ersteindruck

20 12 2010

Ich darf mitspielen! Rückblickend frage ich mich, wie ich es so lange mit Windows Mobile 6 aushalten konnte, aber seit zwei Wochen bin ich endlich stolzer Besitzer eines Dell Streak. Android ist eine Wohltat, man muss nicht mal mehr Minderwertigkeitskomplexe gegenüber iPhone-Nutzern haben, im Gegenteil. Nun mal einige Ersteindrücke vom Gerät.

Die Größe ist genau richtig. Nicht so groß, dass es nicht mehr transportabel wäre oder man damit nicht mehr mit einer Hand telefonieren könnte; aber eben auch groß genug, dass die Bedienung der Apps richtig Spaß macht. Ich bin sogar so weit, dass ich morgens nach dem Aufstehen alle Standardkommunikationstasks (Mails, Twitter, Google Reader, ein paar Newsseiten) noch im Bett erledige und meinen Hauptrechner im Zweifel gar nicht mehr starten muss. Gleiches gilt für das ins Bett gehen, wo ich meinen Rechner auch nicht mehr zwingend noch mal anwerfen muss. Das würde alles auch auf einem iPhone oder einem HTC Desire gehen, aber mit dem Dell auf 5" macht es regelrecht Spaß. Ich empfinde es, von der groben Peinlichkeit mal abgesehen, auch nicht als unpraktisch, damit zu telefonieren. Trotzdem werde ich unterwegs meistens ein Headset benutzen, weil ich ja sowieso außer Haus stets Musik oder Podcasts auf den Ohren habe.

Apropos Headset: Das mitgelieferte Ohrkanal-Headset klingt gar nicht so übel und sitzt auch recht bequem. Überraschung. Trotzdem habe ich mir als allererstes ein Headset gekauft (noch bevor das Gerät da war). Erstes Ärgernis: Das iPhone hat eine andere Belegung am vierpoligen 3,5mm Headsetanschluss, laut Wikipedia belegt das iPhone Masse und AUX falsch herum. Na prima. Gut für mich, dass ich das Headset direkt an einen dankbaren iPhone/MacBook Besitzer weitergeben konnte. Nur findet man aber tatsächlich kein Headset mit der "richtigen" Belegung, weil sich fast alle Hersteller auf das iPhone kaprizieren. Nun habe ich das Creative HS-730i bestellt, das bringt nämlich einen 3,5mm Klinken-Adapter für Nokia-Telefone mit, was mir die leise Hoffnung beschert, dass die "Nokia-Belegung" die "richtige" Belegung ist, die übrigens auch mein altes HTC Touch HD nutzt. Solange muss das Originalheadset aushalten.

Das war es leider noch nicht an Stecker-Inkompatibilitäten. Der Dock-Anschluss vom Dell Streak ist angelblich ein PDMI-Anschluss, eine standardisierte Schnittstelle mit USB 2.0, 3.0, Displayport und allerlei analogen und digitalen Soundausgängen. Das ist sehr cool an sich, aber leider ist das Streak das erste und bisher einzige Gerät mit diesem Anschluss. Herzlichen Glückwunsch, denn dadurch gibt es keine Kabel oder Docks von Drittanbietern und das Original USB- und Ladekabel von Dell kostet inkl. Versand 33€! WTF? Für 15€ mehr bekommt man das Kabel plus KFZ-Halterung, was gar keine so schlechte Idee ist, denn das Display ist größer und besser als das von meinem TomTom Go 720T. Mal überlegen.

Dass ich nur ein Kabel habe, ist aber nicht ganz so schlimm, denn das Streak hält bei geringer Nutzung locker zwei Tage durch und auch bei Vielnutzung komme ich damit gut über den Tag. Gut. Nicht so gut sind die Neustarts bei geringer mechanischer Belastung im Akkubetrieb. Wenn man das Gerät in zwei Händen hält und leicht gegeneinander verdreht, startet es reproduzierbar neu. Man muss es also wie ein rohes Ei behandeln und selbst wenn man es in der Jackentasche hat und sich in der Bahn hinsetzt, löst man solche Neustarts manchmal schon aus. Ein Anruf bei der sehr guten Dell Hotline brachte mich nicht weiter, man bot mir eine Reperatur an, aber einen Monat kann ich nicht auf meinen neuen Liebling verzichten. Also habe ich das gemacht, was mir als erstes in den Sinn gekommen ist: Der Akkudeckel schließt zwei Kontakte kurz, die mir sofort verdächtig waren. Sie etwas heraus zu biegen brachte nichts, aber ein dünnes Drähtchen als Überbrückung stellte die Neustarts sofort ab. Heureka und Glück gehabt. Jetzt bin ich rundum glücklich.

Die genannten Kritikpunkte sind schon alles, was ich auszusetzen habe/hatte. Ich bin wirklich ausgesprochen zufrieden mit dem Gerät, auch der Preis stimmte und lag knapp unter den 410€ netto, bis zu denen man so ein Gerät sofort von der Steuer absetzen kann. Für den Originalpreis von 550-600€ hätte ich es übrigens nicht gekauft, weil ich nicht so viel für ein Telefon ausgeben möchte. So ist es die für seinen Einsatzzweck perfekte Lösung.

P.S. Erste App-Empfehlungen für Android: Die Kontakte-Synchronisation mit Thunderbird klappte auf Anhieb prima mit dem MyPhoneExplorer. Auf dem Gerät sind Google Reader, TweetDeck, K-9 Mail, KeePassDroid und Google Maps ein Muss, aber auch Google Goggles macht riesigen Spaß und mit Google Listen habe ich eine superbe Podcast-Losung gefunden. Listen richtet sich mit einer eigenen Kategorie im Google Reader ein, so dass man seine Podcasts am Desktop abonnieren und verwalten kann. Das Programm beachtet die Gelesen-Markierungen und lädt Dateien in der Warteschlange automatisch im WLAN herunter. Bedienung über Bluetooth im Auto klappt super, übrigens auch mit dem Standard-Musikplayer. Es funktioniert einfach alles bisher, ich fühle mich angekommen, es lebe Android.

Nachtrag 04.01.2010: Ich habe ein Headset gefunden, das brauchbar klingt, sich bequem trägt und von der Steckerbelegung her (sogar ohne einen der mitgelieferten) Adapter ans Streak passt: Das Creative HS-730i. Fehlt nur noch ein bezahlbares Dock oder ein Zweitladekabel, das nicht 33€ kostet. Dieses Billig-Dock wäre die Lösung, ist aber noch immer nicht lieferbar. Sowieso nervt der PDMI-Anschluss. Dass nur Dell den beim Streak einsetzt ist ärgerlich, aber viel nerviger ist, dass er sich nur schlecht blind einstecken lässt und man zum Aufladen immer das eigene Kabel dabei haben muss. Einfach ein Mini- oder Micro-USB-Kabel ausleihen ist also nicht.


HTML5-Elemente auch im IE ohne JavaScript und trotzdem valide

20 12 2010

Ha, na sowas. Da kommt jemand mit einer relativ eleganten Möglichkeit um die Ecke, dem IE die neuen HTML5-Elemente auch ohne JavaScript bekannt zu machen. Er benutzt dafür einen XML-Namespace und benutzt dann so Sachen wie html5:section statt section. Das ist geradezu genial und funktioniert angeblich sogar zuverlässig, validiert aber in erster Linie nicht, wenn man sich nicht mit XHTML5 ganz anderen Ärger ins Haus holen will. Daneben ist es auch komisch, wenn der Autor so ein HTML schreiben muss, nur um auf den IE Rücksicht zu nehmen. Wie ließe sich das also noch verbessern?

Mir kam sofort die naheliegende Idee, das mit einem serverseitigen Ausgabefilter nur an die IEs auszuliefern. Die Voraussetzung wird nicht jedes CMS einfach so mitmachen, aber falls doch, ermöglicht einem das, die HTML5-Elemente jetzt zu benutzen. Wie genau soll das funktionieren? Wenn man einen serverseitigen DOM/HTML-Parser benutzt, ist es relativ leicht, aber das sollte in der CMS-Landschaft die große Ausnahme sein. Also braucht man ein paar simple RegExes:

  • <html muss im HTML-Output durch <html xmlns="http://www.w3.org/1999/xhtml" xmlns:html5="http://www.w3.org/1999/xhtml" ersetzt werden. Wenn man gründlich arbeitet, prüft man vorher, ob das HTML-Element nicht schon die passenden Namespaces trägt.
  • <(/?)(abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video) muss im HTML-Code durch <$1html5:$2 ersetzt werden, das sind die öffnenden und schließenden Tags.
  • (abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video) muss im CSS durch html5\:$1 ersetzt werden.

Das schöne an dieser Lösung ist, dass man Serverseitig recht einfach einen IE erkennen kann und ihm die gefilterten Quellen anbietet. Dass der Code für den IE nicht validiert, halte ich für verschmerzbar. Falls man versehentlich einen Browser erwischt, der sich nur als IE ausgibt, klappt zudem trotzdem alles. Und das wichtigste in meinen Augen ist, dass man die CSS Spezifität nicht verändert und sich auf diesem Weg keine Seiteneffekte ins Boot holt. Gut so.

Der einzige Nachteil, den ich momentan sehe, ist die Voraussetzung eines finalen Output-Filters. Viele CMSe buffern den HTML-Output sowieso und bieten einen Hook an, an den man sich einfach dranhängt, in dem Fall hat man natürlich leichtes Spiel. Etwas schwieriger ist das bei CMSen, die sowas nicht haben und vor allem bei statischen CSS-Dateien, in dem Fall muss man irgendwie einen Filter in den Workflow frickeln, was stark von der eingesetzen Serverumgebung abhängt und nicht einfach generalisiert lösbar sein wird. Wenn man aber sowieso schon ein CSS-Framework wie Turbine einsetzt, lässt sich das prima dort lösen, vielleicht gar mit einem HTML5-Enabler Plugin. Ansonsten wäre das mal ein guter Anlass, so ein Framework einzusetzen.

Damit löst man aber noch immer nicht das Cache-Problem: Man muss externe Proxy-Caches aushebeln und benötigt zudem plötzlich zwei lokale Caches, die von der Cache-Logik unterschieden werden müssen. Da wird es dann diffizil und man verzichtet vielleicht lieber auf eine Browser-Unterscheidung, macht den Output-Filter immer an und scheißt auf den Validator. Ist ja auch eine Lösung und man muss weiterhin nicht selbst mit den Namespaces hantieren.


Was für ein feiner Rootkit-MBR-Supertrojaner

13 12 2010

Kürzlich wurde ich gerufen, um einen Rechner mit Windows 7 von einem Trojaner zu befreien, der eine lustige TAN-Abfrage in das Online-Banking der Postbank injiziert ("Geben Sie 20 TANs ein" direkt nach der Eingabe von Kotonummer und PIN). Schnell war klar, dass ich es mit einem ordentlichen Stück Software zu tun hatte, weil alleine die organische Einbindung der injizierten Abfrage mittels jQuery UI wirklich sauber ausgeführt wurde. So gehört sich das. Der Virenscanner hat zwar etwas gefunden, aber das verriet lediglich den Weg der Infektion über ein veraltetes Java-Plugin (Update 17, aktuell ist Update 23). Ein Autostart war auch schnell auffindbar, aber ebenfalls eine Sackgasse: Die Exe hatte 0 Byte und war zusammen mit dem Autostart-Eintrag nach jedem Löschen plus Neustart wieder da. Klingt ziemlich nach Rootkit, also Rechner mitnehmen und genauer ansehen.

Also habe ich als nächstes die Desinfec't DVD von der c't 02/2010 gebootet und einige Stunden Bitdefender, Kaspersky und Avira mit aktuellen Signaturen laufen lassen. Für sowas braucht man viel Zeit, weil alleine die Akualisierung der Scanner sich bei mir im Stundenbereich bewegt hat. Verwunderliches Ergebnis: Nichts, keine einzige verdächtige Datei, die Avira nicht schon aus dem laufenden System heraus in Quarantäne verschoben hatte. Nanu? Irgendwo her muss der Scheiß doch kommen und so neu oder unbekannt wird so ein Virus auch nicht sein. Bleibt also als letzte Möglichkeit der MBR. Also schnell mal mit fixmbr.exe hantiert und von einer Boot-CD aus den Autostart und die immer wieder neu angelegte 0-Byte-Exe gelöscht, und zack, das war es. Keine TAN-Abfrage mehr beim Banking. Die hatte übrigens den Firefox und den Internet Explorer betroffen, nicht aber einen testweise heruntergeladenen Protable Chrome. Scheinbar injiziert sich das Ding als geheime DLL in ihm bekannte Browser, um sein Unwesen zu treiben.

So muss das. Diese Scriptkiddie-Virusbaukasten-Kinderkacke langweilt doch nur. Ich warte schon lange auf solche Schadsoftware, die mal ein echter Gegner ist; die auch mal von Leuten lanciert wird, die nicht mit ihren scheiß Botnetzen und adoleszent geprägten Allmachtsfantasien irgendwelche Seiten DDoSen, weil man dort ihren Account wegen Missbrauchs geblockt hat. Von sowas hat mir gerade gestern noch jemand erzählt, der eine Matchmaker/Liga-Seite für ein beliebtes Computerspiel betreibt. Stattdessen gibt es ordentlich gestaltete Software, die ihren Zweck erfüllt und mal wieder zeigt, wie angreifbar Online-Banking mit TAN-Liste doch ist. Mit Browser-basiertem Banking hat man da besonders als Angreifer leichtes Spiel, aber wenn jemand so weit ist, dass er sich mit einem MBR-Rootkit tarnen und unauffällig den ganzen Browser manipulieren kann, sollte auch ein Angriff auf StarMoney oder andere Banksoftware kein prinzipielles Problem sein.

Dass man hier sehr auffällig direkt 20 iTANs haben will, ist wohl dem Umstand geschuldet, dass man diese nur verkauft und eben nicht direkt selber nutzt. Sollte sich jemand finden, der bereit ist, das zu tun, ist es natürlich viel erfolgsversprechender, eine legitime TAN-Abfrage abzuwarten und nur die Überweisungsdaten zu manipulieren. Dagegen helfen einige neuere TAN-Verfahren, die neben der TAN auch immer Ziel und Betrag der Überweisung anzeigen. Wenn man dem überhaupt Beachtung schenkt. mTAN oder die neueren TAN-Generatoren tun da gute Dienste, weil sie die TAN-Generierung an die angezeigten Überweisungsdaten binden. Nutzt sowas, wenn ihr das noch nicht macht. Oder eben HBCI-Chipkarten-Banking mit (teurem) Kartenleser mit Display und eigenem Pinpad, aber das ist wirklich sehr unkomfortabel, vor allem wenn man mehr als eine Bank hat.

Insgesamt muss man sagen: Haltet um Gottes Willen Eure Software aktuell! Ein Java Update 17 ist einfach mal sechs Versionen alt und enthält etliche Sicherheitslücken, die sich ohne Zutun des Anwenders bequem im Browser ausnutzen lassen. Was aus sowas werden kann, hat dieser Fall mal wieder eindrucksvoll bewiesen. Auf dem betroffenen Rechner habe ich jetzt Java einfach deinstalliert, denn bezeichnend an der Sache ist, dass der Besitzer von Java eben noch nie etwas gehört hatte; kein Wunder also, dass er dessen Update-Anfragen offensichtlich ignoriert hat. Weg damit. Überhaupt: Alle Browser-Plugins sind tickende Zeitbomben, das gilt genau so für Flash und den Adobe Reader (oder Shockwave oder Quicktime oder Windows Media). Die Browser sind heutzutage echt ziemlich sicher geworden, vor allem Google Chrome mit seinen ungefragten Hintergrund-Updates geht da den richtigen Weg. Aber wenn man sich diese Sicherheit mit Sandboxen und allem durch veraltete Plugins direkt wieder kaputt macht, ist das ein Fehler im Prinzip. Also: Plugins vermeiden oder zumindest nicht ungefragt ausführbar machen, ein Flashblocker ist heutzutage sicherheitstechnisch wirklich Gold wert, NoScript kann das sogar mit allen Plugins. Ansonsten muss Java eben ganz gehen, aber das hatten wir ja schon neulich.