Table of contents

A letter to the NSA

-----BEGIN PGP MESSAGE-----
hQIOAyeSEjeRhByyEAf7BvMlCu8i9tm9NOZLEv/qUWFpEMTEjnCycIz9yM9gOBGb
9jJ0btqiRatYyQqTZKLfrHPxi2jb6cWe+tTPGuSQ/pMfFMde65V+1Ph2PQcwRZMk
Wtw5182LYlsrNbxW6fPczOztaNwuUelRTYsdxHRFzxVyYdbb2UMtF4X9MjkN68Te
3rE8lUb3IM3+zNmCn1fhT/ststw5/BK1Gl6ZId1kOy59Zbi1fO8DGBMcaeZT0aow
pd6io2/MMjGJux8JRTzRCAlCVCgFGZV8MHiJgBL8bCcg6zlxJ3JZ4zDCkRjjsiEO
yY14hAlubrCZ3/Q06ubsX915KOfW6mqZizWWLuQUigf/Ru1DWThY7U1U+5VYJOZ/
EPRbp6+GR+22Ae5BM9/BQQC5CpOk9Q/v/WArbzQtPpyPMz7NgLrQHUTEYQVuKA34
OTJqerGCoQf8LWUNjILu9KVI9+rWpycY735uUrNQd8W1mb4Hj/Mr2Gve+hZ1K72E
WuN4SiMxS2Y92hpKUZXddYcRx4+jccYq0KkmSP44Yjwda5Lgpao4ErnylB2sxIPY
Pl1EYLhtpPhe/qtQOcMfkjXSuX36WLDuMbkC5bP67+2OjxCBIVkXAU+6DLTMBCdp
eYKZsVcMAEpd/mWnYwiwwSY5TylLxOnf2Q0tujMno0eqXZGO+81MJEiw5ggMkXV7
O9LBCAHz1HL8ibxWr78qRF65eJp172hXLjSAVttAa3nUiOTAMwZTS+1crhRa01G4
zX9/t96sxEdMuvQODabqMqDwQcBXAisWT2F9RDs3zL954brEjj67b/ebv3RKZTpI
rYNw0J/sJdi6lN8jNrlzmzKw/F7P2vD7gZ5/kL4p1xW/5qY3XEUqDVXqTNfxJ4RS
9JBcIMK5wFy6iGSkHyAb7zrMKoX6Sjaq/fVLrF6dCouHYJmIy8+4IB8LYN55+qEX
xvE3LwtSDWi6ua0BSqW5HELAwEwQ4I/RZz7yCMDRlfy4bAk9l/C+6WcMzJmWeghr
yteVFKydAwVn+OlvpehAkAF8IN0TxgtR3tkBUOGGSt+S03MsHAsruDF/RtHQpXJe
oe2yPR9XLFQRowumpFTq4DDqYrrPLCfUMo1sn4UOBUYDTcUHWiHSAjeIn3E51iLz
UvHDSbTQZKf7AGd+JYfKmtvZqkQGj5/e7AtgooWTomGjeccX0Jhsj7vfqoXYF30w
X5KjH/ReSyw3OXg/K8QYEUf1kRjl31segXY5dmq+3/ZSt7bEm7B72vB97up99k8/
21f5coRpHR414Z4sLc5Guk/mUlX8edTHYK3jIA==
=6n4J
-----END PGP MESSAGE-----

↷ 02.07.2013 🠶 #geschwätz

John B. Emerson wird neuer US-Botschafter in Deutschland

US-Präsident Obama hat einen neuen US-Botschafter für Deutschland ernannt[1]: John B. Emerson. Offensichtlich handelt es sich um einen Gefälligkeitsposten, sprich: eine Belohnung. Denn Emerson hat für die Wiederwahl Obamas schlappe $500.000 aufgetrieben.

Aber wer ist der Mann?

Er wuchs in Bloomfield, NJ und Larchmont NY, auf, ein Geburtsdatum konnte ich interessanterweise nicht finden, er wurde 1954 geboren. Sein Vater war James G. Emerson, ein Pfarrer der Presbyterianischen Kirche, ebenso wie sein Grossvater John Sutherland Bonnell. Das B. in seinem Namen steht für jenes Bonell, vollständig heisst er also John Bonell Emerson. Seine Mutter Margaret Bonnell Emerson, Sozialarbeiterin, die Tochter des erwähnten John Sutherland Bonell, der einer der ersten Gegner von Joseph McCarthy's antikommunistischen Hexenjagden in den 1950er Jahren war [17].

Emerson besuchte das Hamilton College und schloss dort mit einem Bachelor in "Regierung und Philosophie" ab [2], anschliessend studierte er an der Universität von Chicago und machte dort einen DJ (Doktor der Rechtswissenschaften [3]). Emerson war von jungen Jahren an Mitglied der Demokraten. Er war schon während des Colleges politisch aktiv, so beteiligte er sich unter anderem an Antikriegs-Demos und war Freiwilliger im Wahlkampfbüro der Präsidentschaftskampagne von George McGovern (Demokraten) 1972.

Nach dem Abschluss in Chicago zog er nach Los Angeles um, wo er eine Anwaltsstelle bei Manatt,
Phelps & Phillips annahm. Dort war er für Business und Entertainment Prozesse sowie Verwaltungsrecht zuständig und stieg später zum Partner auf.

Ende der 1980er Jahre war er der stellvertretende Generalstaatsanwalt von Los Angeles (sofern ich chief city attorney richtig übersetze), wahrscheinlich während der Amtszeit von James Hahn (1985-2001) [4], das lässt sich leider nicht so genau herausfinden.

Nebenher war er weiter politisch aktiv und hatte eine wichtige Rolle bei der Kampagne zur Senatswahl Jerry Brown's 1982, Gary Hart's Präsidentschaftskanditatur 1984 und 1986-1987. Er war ausserdem Bill
Clintons Kampagnenmanager 1992. Nach Clintons Wahlsieg bekleidete Emerson einen Posten als stellvertretender Assistent des Präsidenten von 1993 bis 1997. Während dieser Zeit hat er unter anderem die Regierungsaktivitäten nach dem Northridge Erdbeben 1994 geleitet.

Während des Clintonwahlkampfes hat er seine Frau Kimberly Marteau Emerson kennengelernt, die sich in vielerlei Weise sozial engagiert. Sie war früher Direktorin der U.S. Information Agency [16]. Die beiden haben eine Tochter, Jacqueline Emerson [18], Spitzname Jackie. Jackie ist Schauspielerin und hat u.a. bei "Hunger Games" mitgespielt [19]. Ausserdem gibt es noch zwei jüngere Zwillingsgeschwister, über die ich aber nichts herausfinden konnte (es gibt auch Grenzen).

Nachdem Ende Clintons Amtszeit wechselte Emerson in die Wirtschaft zu Capital Group Companies, eine Firma die auch in Deutschland erhebliche Beteiligungen hat, zum Beispiel an Bayer, Deutsche Bank, Siemens oder VW. Heute leitet er die Abteilung Vermögensverwaltung bei CG.

Emerson ist nicht nur bei Präsidenten ein grosser Spendenorganisator, er spendet auch selbst reichlich und ist an einigen dutzend Organisationen beteiligt oder aktives Mitglied. Einige Beispiele: LA Metropolitan YMCA [9], Music Center LA, The Buckey School, die Oper von LA, Los Angeles Mayor's Trade Advisory Council, Council on Foreign Relations [7][8] und Pacific Council of Internation Policy [14]. Vor allem die letzten beiden sind bemerkenswert, dabei handelt es sich um konservative Think Tanks, denen einige illustre Persönlichkeiten angehören.

Wie man sieht, ist der Mann praktisch Zeit seines Lebens mit Geld- und Politiprominenz herumgehangen [10]. Das ist seine wichtigste Eigenschaft: sein Netzwerk aus Beziehungen in Politik und Wirtschaft bis in höchste Kreise. Zu seinen Freunden gehören Leute wie Rick Allen, ex nationaler Sicherheitsberater, Reagan Administration; M. Larry Lawrence, San Diego Hotlier und Investor (Clinton Spender), später US-Botschafter Schweiz; Roger Altman, US-Finanzministerium, auf dessen Ranch Jackson Hole, Wyo Emerson Urlaub gemacht hat; Hillary Clinton, mit der er Basketballspiele besucht hat; Bill Clinton, mit dem er joggt; Gary Ross, Drehbuchautor; John Cook und Frank Wells, Disney Executives; Mike Farrell, Schauspieler oder Mickey Kantor, US Handelsministerium.


Der Mann scheint recht symphatisch und umgänglich zu sein. Eine seiner Erfolgsmethoden, Krisen zu bewältigen, ist Riesenmeetings abzuhalten, dazu sämtliche irgendwie Beteiligten einzuladen und jeden
anzuhören. Er scheint auch ein Händchen dafür zu haben, mit Gegnern angemessen umzugehen. Eine nette Anekdote mag als Beispiel dienen: bei einer Wahlkampfveranstaltung zum Staatsanwalt LA hatte Emerson Taschenlampen als Geschenke verteilt. Sein Gegner, Adam Schiff, hatte sich über die Taschenlampen lustig gemacht und aufgeregt. Die Bekämpfung von Verbrechen sei eine grössere Sache als Taschenlampen. Die Anwesenden erwarteten eine harte Antwort von Emerson, der jedoch in mildem Ton antwortete: 'Ich vermute, Adam hat seine Taschenlampe noch nicht bekommen.', worauf tosender Applaus und Gelächter folgten [5].

Sonstige Fakten:

Sein von seinen Freunden verwendeter Spitzname ist übrigens "Emo" und er lebte seit bis kurz nach der Geburt der Zwillinge in der Dupont Circle Nachbarschaft in Washington, DC. Das ist eine Gegend, die sich einige Blocks nördlich vom weissen Haus befindet. Dorthin gezogen ist er 1993, wann genau er wieder weggezogen ist, ist unklar. Offenbar lebt er jetzt wieder in LA.

Er war an der Al Gore Fundraiser Affäre in einem Tempel beteiligt [6].

Quellen:

↷ 01.07.2013 🠶 #gesellschaft

Hach Goggelmoggel

Update 2013-08-13:

Auszüge zum Thema Rationalismus aus Isaac Asimovs Buch "It’s Been a Good Life" hat Brain Pickings zusammengestellt. Sehr erhellend. Mein Lieblingszitat:
The soft bonds of love are indifferent to life and death. They hold through time so that yesterday’s love is part of today’s and the confidence in tomorrow’s love is also part of today’s. And when one dies, the memory lives in the other, and is warm and breathing. And when both die — I almost believe, rationalist though I am — that somewhere it remains, indestructible and eternal, enriching all of the universe by the mere fact that once it existed.

Update 2013-06-25:

Aus aktuellem Anlass, der Courage Edward Snowdens, Aung San Suu kyi über Courage und Susan Sonntag ebenfalls. Beides ausführliche Buchvorstellungen beim von mir heiss geliebten Brain Pickings. Letzteres habe ich mir auch direkt gleich bestellt.

Update 2013-06-25:

Richard Feynman erklärt das Feuer:

↷ 25.06.2013 🠶 #gefunden

Was für ein Sumpf!

Woah, da kommt ja eine Menge Gülle hoch auf einmal.

Perlentaucher hat eine gute Zusammenfassung des aktuellen Kenntnisstands zum PRISM Skandal veröffentlicht. Dort finden sich diverse interessante Dinge, wie zum Beispiel ein Verweis auf die Software Accumulo. Es handelt sich dabei um eine NoSQL Datenbank (ein Column-DBMS um genau zu sein), das die NSA verwendet um unser aller Daten auszuwerten und zu speichern. Die Software wurde auch von der NSA entwickelt.

Neben der NSA haben da aber auch noch diverse andere Firmen mitgemacht. sqrrl zum Beispiel, dessen Gründer vorher 10 Jahre bei der NSA gearbeitet hat, wie man in diesem Vortrag hier erfährt. Auch Booz Allen Hamilton gehört zu den Contributors von Accumulo. Wir erinnern uns: das ist die Firma, bei der Edward Snowden zuletzt tätig war. Ich hab den ganzen anderen Firmen jetzt nicht hinterher gegoogelt aber ich denke, das wird bei denen auch nicht anders sein.

Und heute kommt von Snowden ein weiterer Leak (via): Es gibt eine geheime Presidential Order, mit der Obama die Bildung einer Cyberkriegsabteilung angeordnet hat. Wie schon vorher nichts, das wir nicht ohnehin eigentlich längst gewusst haben. Nur das meiste davon waren bislang eher Verschwörungstheorien. Über Schneiers ursprünglichen Beitrag bin ich auf diesen einen Artikel im Wired gestossen, in dem der jetzige NSA Chef Alexander näher betrachtet wird. Und worauf stosse ich da? Auf die Firma Endgame Systems, die auch auf der Accumuloliste als Contributor steht!

Und wenn man die Contributors mal durchgeht, stellt sich raus, dass die alle da drin stecken: die arbeiten mit der "Intelligence Community" zusammen, sind "DoD contrator" und so weiter: Basistech, TexelTek, Objectice Solutions, SW Complete, SRA, Peterson Technologies, Data Tactics und Tetra Concepts. Und das sind natürlich nur die Unternehmen, von denen man auf öffentlichem Wege erfahren kann.

Das ist alles ein einziger riesiger faschistischer Sumpf. Mir ist schlecht.

↷ 21.06.2013 🠶 #networking

Probleme mit note und Crypt::PWSafe3 1.08

Mein Perlmodul Crypt::PWSafe3 ist ein Interface zur Datenbank des Passwortmanagers Password Safe, das ich vor geraumer Zeit entwickelt habe. Das Notizverwaltungsscript note - ebenfalls von mir - hat dafür ein Backendmodul bekommen, so dass man mit note auf PasswordSafe Dateien zugreifen kann.

Mit Version 1.08 des Crypt::PWSafe3 Moduls gab es aber ein Problem, wenn man note gestartet hatte, erschien nach der Passworteingabe diese Meldung:

notedb seems to be encrypted!

Ursache dafür war ein Bug in Crypt::PWSafe 1.08, eigentlich sogar auch noch einer im note. Der Bug ist - vorsichtig ausgedrückt - eklig. Eigentlich handelt es sich bei dem Modul um eine Portierung eines Pythonmoduls. Die Verschlüsselung der PasswordSafe Datenbank ist nicht gerade unkompliziert und anhand des vorhandenen Pythonmoduls hatte ich eine Vorlage, wie man das implementieren kann.

Natürlich gibt es diverse Unterschiede zwischen Python und Perl, einer davon sind Formatstrings, die von den pack() und unpack() Routinen akzeptiert werden. Diese Routinen kann man verwenden, um zum Beispiel aus binären Daten typisierte Werte zu extrahieren (z.b. aus einer Bytefolge eine Fliesspunktzahl). Das Datenbankformat von PasswordSafe schreibt nun für alle Felder Little Endian Bytereihenfolge vor, was beim Ent- und Verschlüsseln natürlich berücksichtigt werden muss.

Die Formatstrings von pack() und unpack() in Python bieten samt und sonders entsprechende Flags an, z.b. "L<4" extrahiert eine 4-Byte-Long-Zahl im little endian Bytereihenfolge. In der alten Version meines Moduls (1.04) hatte ich diese Flags noch nicht verwendet. Das war für mich auch kein Problem, da ich nur little endian Maschinen zur Verfügung hatte, also funktionierte alles. Portabel ist aber was anders. Also habe ich das bei 1.08 geändert und die endian Flags in den entsprechenden Routinen eingebaut.

Und hier haben wir nun das Problem: Der Formatstring für Hexwerte "H*" bietet in Python ebenfalls den little endian Flag, in Perl aber nicht! Ich stand also vor einem Problem, das ich gelöst habe, indem ich einfach "H*" durch "L<4" ersetzt habe. Die Ent- und Verschlüsselung funktionierte immer noch wie vorher und mit der Lösung war das Modul nun endlich vollständig portabel.

Der Haken an der Sache war, dass man natürlich von "L<4" einen Wert in der korrekten Grösse (16 Byte) zurück bekommt, aber keinen Hexstring, sondern eine Zahl. Modulintern war das völlig redundant, da an der Stelle sowieso nur mit Zahlen hantiert wird. Das war auch der Grund, weswegen ich das - wohlwissend um den Umstand - so gelassen habe.

Zum Problem wurde das ganze erst im Zusammenspiel mit note. Note ist sehr alt. 15 Jahre werden das jetzt schon sein, seit es das gibt, oder mehr. Müsste ich mal nachschauen. Jedenfalls hat jeder Eintrag im Note eine ID, d.h. eine Nummer. Über diese ID wird der Eintrag adressiert. Also mit dem Befehl "e 18" bearbeitet man den Eintrag 18. Diesen Umstand berücksichtigen sämtliche Speicherbackends von Note, von denen es mittlerweile eine Reihe gibt, die aber samt und sonders proprietär sind. Das PasswordSafe-Backend ist das erste und einzige offene Backend und dessen Format ist vorgegeben. Und dieses Format kennt eine solche Nomenklatur mit numerierten IDs pro Eintrag nicht. Statt dessen werden in PasswordSafe die Einträge mit einer UUID adressiert. Das ist sehr elegant aber für mich als Noteautor wenig hilfreich.

Gelöst habe ich das, indem ich im Backendmodul eine Routine eingebaut habe, die aus den UUIDs einigermaßen kleine Zahlen generiert. Der Algorithmus ist primitiv, aber er erzeugt für die gleiche UUID immer die gleiche Zahl. Somit sind Note-Einträge eindeutig adressierbar und die Inkompatibilität war gelöst. Allerdings basiert die Routine darauf, dass die UUID als Hexstring vorliegt. Jedoch war das bei Crypt::PWSafe3 ab 1.08 nicht mehr der Fall, hatte ich dort ja für Hexstrings auf "L<4" umgestellt.

Die Routine hat daher nicht mehr funktioniert und immer IDs erzeugt, die bei 1 anfingen und einfach fortliefen. Hier kommt der zweite Bug zu Tage. An sich wäre das kein Problem: solange die IDs reproduzierbar und eindeutig sind, ist ja alles gut. Aber im Note ist eine Abfrage eingebaut, die prüft, ob auf eine verschlüsselte Datei zugegriffen wurde und die Entschlüsselung funktioniert hat, bzw. ob dies bei abgeschalteter Verschlüsselung geschah. Dazu nimmt sich Note den Eintrag mit der ID 1 und guckt beim Datum, ob es mit einer zweistelligen Zahl beginnt.

Das funktioniert bei allen Backends, nicht aber mit Crypt::PWSafe3. Dazu muss man wissen, dass die Passwortabfrage aus Implementierungsgründen im Backend eingebaut ist und bei dem Backend also nicht die Abfrage aus Note selbst verwendet wird. Daher muss man in der Config bei Verwendung dieses Backends die Verschlüsselung abschalten, damit sich beide Abfragen nicht in die Quere kommen. Dadurch wird aber die erwähnte Prüfroutine aktiviert. Die oben zitierte Fehlermeldung kommt von da.

Bis Crypt::PWSafe3 1.08 war das nie ein Problem, weil die Routine, die aus den UUIDs die Note-IDs erzeugt hat, niemals eine ID 1 errechnet hatte. Das war nicht beabsichtigt, aber so wie ich den Algorithmus gestaltet hatte, wird da wohl nie eine 1 herauskommen. Daher kam die Prüffunktion im Note nie zum Zug, weil es keinen Eintrag mit der ID 1 kam, was Note dazu veranlasst hatte, weiterzumachen (in der Annahme, die Datenbank sei leer). Mit dem geänderten unpack() Format für Hexstrings auf "L<4" kam aber nun auf einmal eine ID 1 heraus. Und hier kommt der nächste Bug: Im Backendmodul NOTEDB::pwsafe3 wiederum konvertiere ich die verschiedenen Felder der Datenbank in Note-kompatible Werte. Das Datumsfeld habe ich aber falsch konvertiert, da wurde ein einfacher localtime() String zurück gegeben, der mit dem Tag begann (wie in "Mi 19 Jun 2013 19:16:22 CEST"). Da das Datum nicht mit einer zweistelligen Zahl begann, hat die Noteroutine den erwähnten Fehler geworfen, davon ausgehend, dass auf eine verschlüsselte Datenbank zugegriffen wurde, die nicht entschlüsselt wurde.

Ich habe daher nun in Version 1.10 von Crypt::PWSafe3 wieder auf "H*" umgestellt. Das wird zwar eventuell Schwierigkeiten auf big endian Architekturen geben (Solaris z.b.), aber sollte es dazu kommen, werde ich den Bugreport an die Perlentwickler weiterleiten, weil das dann in dem Fall nicht mein Fehler ist. Gleichzeitig habe ich auch noch das Backendmodul für Note upgedatet, welches jetzt korrekte Datumswerte zurückliefert (für den Fall, dass doch mal eine ID 1 heraus kommt).

In der neuen Note-Version (1.16) wird nun auch nicht mehr länger der Eintrag mit der ID 1 geprüft, sondern einfach der erste Eintrag, welche ID auch immer der haben mag.

↷ 19.06.2013 🠶 #source