Skip to content

Mein Vortrag beim 35C3

Der diesjährige 35. Chaos Communication Congress ist leider schon wieder vorbei. In den Leipziger Messehallen fanden sich 17.000 Hackerinnen und Hacker zusammen, um Vorträgen zu lauschen, neue Ideen zu probieren, zu hacken oder einfach eine schöne Zeit zu haben.

Ich hatte das Vergnügen zusammen mit Kristin Pietrzyk einen Vortrag zu halten: Unter findet ihr einen Mitschnitt. Viel Spaß beim Anhören.

Vorsicht vor gefälschten PGP-Schlüsseln

Wer mir eine OpenPGP-verschlüsselte E-Mail schicken will, sollte demnächst doppelt vorsichtig sein. Ich entdeckte heute, dass es zur Key-ID 0xEA3E4D61 zwei Schlüssel gibt. Einer der beiden wurde vermutlich automatisch erzeugt und gehört mir nicht! Der Fingerabdruck meines derzeitig aktiven Schlüssels ist:

pub   4096R/0x65B3F094EA3E4D61 2010-01-15
Schl.-Fingerabdruck = 60D8 5B8D 9A1C D2D1 355E  BE9F 65B3 F094 EA3E 4D61
uid                  Jens Kubieziel <jens@kubieziel.de>
uid                  Jens Kubieziel <jens@freie-re.de>
uid                  Jens Kubieziel <kubieziel@gmx.de>
uid                  Jens Kubieziel <lugjena@kubieziel.de>
uid                  Jens Kubieziel <jens@torservers.net>
sub   4096R/0x7A0A527D47FFDBE1 2010-01-15

Wenn ihr mir eine verschlüsselte E-Mail schicken wollt, vergleicht unbedingt die obige zweite Zeile. Im Allgemeinen empfiehlt es sich in der Konfigurationsdatei von GnuPG die Variable keyid-format 0xlong oder gleich long zu setzen. Die kurze Key-ID ist, wie oben zu sehen, leicht zu fälschen.

Update: Das Problem betrifft nicht nur mich. Auf Twitter war von mehreren Fällen zu lesen und auch die Kernel-Entwickler sind betroffen.

Keysigning bei den Chemnitzer Linux-Tagen 2016

Am 19. und 20. März fanden in Chemnitz wieder die Chemnitzer Linux-Tage statt. Einer alten Tradition folgend organisierte ich das Keysigning. Das heißt, Leute mit einem OpenPGP-Schlüssel können teilnehmen und sich gegenseitig ihre Identität bestätigen. Durch die Prüfung und Signatur wird das Vertrauensnetz (Web of Trust) gestärkt.

In den letzten Jahren stellten wir uns dazu in einer Reihe auf. Die erste Person bewegte sich dann zur zweiten und anschließend zur dritten, vierten usw. Nachdem die erste Person vorbei war, fing die zweite an. So sah das ungefähr aus:

Startaufstellung:

1 2 3 4 5 6 7 8 9 10

Erste Person startet:

2 3 4 5 6 7 8 9 10
1

Zweite Person startet:

3 4 5 6 7 8 9 10
2 1

Nach einer Weile startet die sechste Person:

7 8 9 10 1
6 5 4 3 2

Das heißt, die erste Person reiht sich wieder ans das Ende ein. Eine Reihe zeigt jeweils den Ausweis und die andere Reihe vergleicht.

Bei dem Verfahren ist nun der Nachteil, dass anfangs sehr viele Leute im Leerlauf sind. Sie müssen warten, bis die erste Person endlich bei denen angekommen ist. Um dies ein wenig zu beschleunigen, haben wir die Reihe dieses Jahr direkt gefaltet. Nach der Sortierung in eine Reihe stellten sich alle gegenüber auf:

1 2 3 4 5
10 9 8 7 6

Die Idee war, dass wieder eine Reihe prüft und die andere den Ausweis zeigt. Leider habe ich das wohl nicht genau genug erklärt und es wurde parallel von beiden Seiten gemacht. Als die Reihe nun zur Hälfte abgearbeitet war, kamen die Teilnehmer bei ursprünglichen Gegenüber wieder an und nahmen an, alle erwischt zu haben. Dies ist aber nicht der Fall:

2 3 4 5 6
1 10 9 8 7

Die Aufstellung oben ist nach dem ersten Wechsel. In der initialen Aufstellung verglich beispielsweise Teilnehmer 3 mit Teilnehmer 8 die Daten. In obigem Schritt vergleicht 3 mit 10 usw. Nach fünf Schritten stehen sich 3 und 8 wieder gegenüber. Teilnehmer 3 hat dann die Identität der Teilnehmer 8, 10, 2, 4 und 6 verifiziert. Was ist mit 1, 5, 7 und 9? Diese fehlen offensichtlich. Es kostete mich einige Mühe die Teilnehmer zu überzeugen, dass der Lauf noch nicht beendet ist. Hoffentlich kann ich alle dann im nächsten Jahr auf diese Seite verweisen und die Überzeugungsarbeit wird einfacher. :-)

Wer sich für den Stand des Web of Trust interessiert:

Web of Trust @ CLT 16

Neues TLS-Zertifikat

Der Webserver hat seit heute ein neues Zertifikat. Ich bin jetzt von CAcert auf Let’s Encrypt umgestiegen. Bei den Übernauten ist die Einrichtung sehr einfach. Nachdem die Befehle uberspace-letsencrypt, letsencrypt certonly und uberspace-prepare-certificate eingegeben wurden, war alles fertig.

Wenn ihr das Zertifikat prüfen wollt, hier ist der SHA-256-Hash:

B8:8A:B3:34:0E:5F:97:6A:88:F0:A7:E7:91:73:F4:50:42:29:0A:73:07:54:68:2D:96:EB:36:29:BB:FC:58:A8

Lenovo-Laptops mit SuperFish-AdWare

Die aktuellen Nachrichten über Wanzen in Festplatten oder geknackte SIM-Karten hören sich auf der einen Seite sehr bedrohlich an, auf der anderen Seite werden viele dies abtun, als Verschwörungstheorie oder »Betrifft-mich-nicht«. Doch dann war von Barbies zu lesen, die alles mithören und ins Internet übertragen und Samsung warnt, vor seinen Fernsehgeräten nichts Privates zu erzählen. Im letzteren Fall werden die Daten im Klartext übertragen und damit kann jeder mithören, was vor dem gerät erzählt wird. Der große Lauschangriff mal ganz anders.

Ansicht des Zertifikats im Zertifikatsmanager
Detailansicht des Zertifikats von Chris Palmer (@fugueish)
Lenovo reiht sich nun ebenfalls in die Liste der Hersteller ein, die offensichtlich wenig auf die Privatsphäre der Käufer geben. Verschiedene Medien (The Next Web, Forbes, Heise, ZEIT Online, Golem u.a.) meldeten, dass Lenovo auf Laptops die Software SuperFish Visual Discovery vorinstalliert. Dies ist Adware, d. h. sie blendet Werbung auf Webseiten ein. Dies wird dadurch bewerkstelligt, indem ein Schnippsel JavaScript geladen wird und die unerwünschten Inhalte überträgt. Doch damit gaben sich die Hersteller der Software nicht zufrieden. In die vorab installierten und damit vertrauenswürdigen Zertifikate wurde auch ein Zertifikat eingefügt. Immer wenn nun eine verschlüsselte, sichere Webseite besucht wird, kommt das Zertifikat nicht von der ursprünglichen Webseite, sondern von der SuperFish-Software. Damit kann die Software den verschlüsselten Datenverkehr mitlesen und diese Daten auch manipulieren. Dieser so genannte Man-in-the-Middle-Angriff ist eine klassische Angriffstechnologie und dient in der Regel nicht guten Zwecken.
Code zur Installation des Zertifikats
Code, der versucht, das Zertifikat in verschiedenen Browsern zu installieren (via @supersat)

Die EFF beobachtet seit längerem den Status von Zertifikaten mit dem SSL Observatory und meldete, dass sie in dem Datensatz 44.000 dieser SuperFish-Mitm-Zertifikate fanden. Das Bild links zeigt ein wenig Quellcode. Demnach versucht die Software ihr Zertifikat in verschiedene Browser zu importieren. Das erklärt auch, warum u.a. auch Firefox betroffen ist. Denn im Gegensatz zu Google Chrome nutzt dieser nicht die Zertifikatsverwaltung von Windows.

Robert Graham hat neben anderen Forschern das Zertifikat aus der Software extrahiert und in kurzer Zeit das Passwort ermittelt (Das Passwort »komodia« liefert dann auch den Hinweis auf den Komodia SSL Digestor). Wie er schreibt, benötigte er keine Spezialkenntnisse. Ein geschickter Angreifer kann dies ebenfalls tun. Damit lässt sich dann auch für Dritte sämtliche verschlüsselte Kommunikation brechen. Aber der Superfish Software scheint auch der Status fremder Zertifikate egal zu sein. In einer Diskussion auf Hacker News berichtete jemand, dass die Software beliebige (auch ungültige) fremde Zertifikate akzeptiert. Ähnliches geht auch mit fakehost.lenovo.com oder CanIBesuperFished.com. Insgesamt reißt die Software damit ein riesengroßes Loch in die Sicherheit der Rechner. Mich erinnerte das spontan an den Fall von Sony, die auch Malware auf die Rechner installieren.

Was lässt sich nun gegen die Infektion tun? Die Software selbst ist in der Liste der installierten Programme von Windows zu finden und kann dort einfach deinstalliert werden. Allerdings bleiben eine Reihe von Einträgen in der Registry und das Zertifikat noch erhalten. Hier ist dann Handarbeit angesagt. Dazu müsst ihr den certmgr von Windows öffnen und das Zertifikat entfernen. Bei der EFF gibt es eine Schritt-für-Schritt-Anleitung, wie das zu tun ist.

Lenovo hat mittlerweile reagiert und einerseits ein schönes Statement bei Twitter abgegeben:

Daneben gibt es eine Veröffentlichung, die den Vorfall klar als Vulnerability mit hohem Impact benennt. Die Veröffentlichung hat auch eine Liste der Produkte, die betroffen sind.

Pidgin mit dem Hidden Service von jabber.ccc.de nutzen

Erweiterte Einstellungen bei PidginIch hatte kürzlich eine Diskussion, wie und ob man das Programm Pidgin mit dem Hidden Service des XMPP-Service jabber.ccc.de nutzen kann. Im Web gibt es recht wenige Anleitungen dazu. Daher will ich das hier kurz aufschreiben.

Der Hidden Service hat die Adresse okj7xc6j2szr2y75.onion. Dieser wird in Pidgin als Verbindungsserver benutzt. Um derartige Adressen nutzen zu können, muss auf eurem Rechner Tor installiert und gestartet sein. Das kann in Form des Tor Browser Bundle oder als eigene Software sein.

Zum Einrichten eures Accounts wählt ihr Konten -> Konten verwalten. Das geht auch kurz über Strg+A. Im folgenden Menü könnt ihr einen neuen Account hinzufügen oder einen existierenden Account bearbeiten. Im nun folgenden Fenster gebt ihr in das Feld Benutzer euren Benutzernamen ein. Der hat die Form euername@jabber.ccc.de.

Wechselt nun in den nächsten Reiter »Erweitert«. Das dritte Eingabefenster heißt »Verbindungsserver«. Dort tragt ihr die Onion-Adresse okj7xc6j2szr2y75.onion ein. Speichert die Einstellungen und verbindet euch mit dem Konto.

Im letzten Schritt benötigt Pidgin eine Information über den Tor-Proxy. Denn um euch mit der Onion-Adresse von oben verbinden zu können, muss die Verbindung über Tor gehen. Im Reiter »Proxy« wählt ihr aus der Liste der Proxy-Typen »SOCKS5« aus. Bei »Host« kommt 127.0.0.1 oder localhost rein. Im Feld »Port« hängt es davon ab, ob ihr das Tor Browser Bundle (Port 9150) oder einen systemweiten Tor-Daemon (Port 9050) benutzt. Im Falle des Tor Browser Bundles muss dieses noch laufen. Tragt den richtigen Port ein und speichert die Einstellungen. Nun läuft die Verbindung über den Hidden Service.

Das wars dann schon. Viel Spass beim anonymen Chatten. :-)

Update: Nach einem Hinweis von @publictorsten Tor als Voraussetzung erwähnt.

tweetbackcheckcronjob