Posts mit dem Label security werden angezeigt. Alle Posts anzeigen
Posts mit dem Label security werden angezeigt. Alle Posts anzeigen

Mittwoch, 23. Juni 2010

Certificates for the masses

Sicherheit hat ihren Preis, und in der Regel bedeutet "Preis" in diesem Zusammenhang "handelsübliche Devisen in signifikanten Mengen". Viele Leute scheuen die Investition, weil sie ihnen im Vergleich zum vermeintlichen Risiko zu hoch erscheint. Denken Sie an die billigen Schließzylinder aus dem Baumarkt, mit denen viele Wohnungstüren gesichert sind. Es gibt deutlich bessere, aber eben auch deutlich teurere Systeme, und so fällt bei vielen die Abwägung zwischen dem sicheren finanziellen Verlust durch die Anschaffung einer guten Türsicherung und dem potenziellen Schaden durch eine durchstöberte und ausgeräumte Wohnung zu Gunsten des Einbruchsrisikos aus.

Was Sie mit Ihrer Wohnung anstellen, ist in erster Linie Ihre Sache. Kommunikation im Internet ist eine andere, weil davon immer mindestens zwei betroffen sind. Wenn Sie bei Ihrem Lieblingshändler etwas bestellen, wollen Sie erstens sicher sein, auch wirklich mit ihm zu reden und nicht mit jemandem, der einfach nur Ihr Geld abgreifen will, zweitens wollen Sie, dass Ihre Bestellung in genau der gewünschten Form beim Händler ankommt und dass sich drittens niemand unter Ihrer Identität eine Bestellung erschleicht und dabei Ihr Konto belastet. In Wirklichkeit sind es noch ein paar Anforderungen mehr, aber die Botschaft ist hoffentlich klar: Wenn Sie für sichere Internetkommunikation sorgen, profitieren gleich mehrere Leute.

Die Schwierigkeit ist nur: Wie stelle ich sicher, dass Leute, die sich im realen Leben niemals begegnen werden, trotzdem sicher miteinander reden können? Die Antwort: Indem ich Vertrauen als Währung einsetze.

Welche Eigenschaften hat Währung? Sie ist rar, sie ist attraktiv, man möchte also gern mehr davon haben und ist entsprechend bereit, dafür auch etwas zu leisten. Unter bestimmten Umständen kann sie sich sogar vermehren.

Mit Vertrauen ist es ähnlich. In unsicheren Umgebungen wie dem Internet ist es ein rares Gut, aber viele Leute brauchen vertrauenswürdige Kommunikation und sind bereit, dafür einen gewissen Aufwand zu betreiben. Den entsprechenden Aufwand vorausgesetzt, kann Vertrauen insgesamt auch zunehmen.

Für vertrauenswürdige Kommunikation haben sich zwei Modelle herausgebildet. Im hierarchischen Modell gibt es eine zentrale Stelle, die allgemeines Vertrauen genießt und Leuten, die sich ihr gegenüber identifizieren können, Zertifikate ausstellt. Typische Vertreter dieses Modells sind unter anderem Verisign oder Signtrust. Der Vorteil dieser Methode besteht darin, dass man es mit einer klar umrissenen und überschaubaren Menge solcher Zertifizierungsstellen zu tun hat und diese Liste einfach in jeden Browser integrieren kann. Der Nachteil besteht in den Kosten. Einerseits müssen die Zertifizierungsstellen viel Aufwand betreiben, damit die Menschen ihnen vertrauen. Sie müssen besonders gesicherte Rechenzentren mit besonders strengen Zugangskontrollen betreiben, sie müssen speziell ausgebildete Mitarbeiter haben, kurz: Sie müssen allen Leuten immer wieder zeigen, dass man nicht ohne weiteres an ihre Zertifikate kommt, dass sie jeden erdenklichen Aufwand betreiben, ihr Produkt zu schützen. Das Ganze kostet natürlich viel Geld. Darüber hinaus lassen sie sich auch ihre Oligopolstellung natürlich bezahlen. Im Ergebnis zahlt man pro Jahr zwei- bis dreistellige Eurobeträge, um etwas zu können, was man in der analogen Welt gratis kann: eine rechtsgültige Unterschrift leisten.

Entsprechend gab es schon früh einen alternativen, dezentralen Ansatz, das "Web of Trust". Die Idee dahinter besteht darin, sich gegenseitig die Zertifikate zu unterschreiben und die Glaubwürdigkeit eines Zertifikats dadurch zu steigern, dass dort möglichst viele Leute unterschrieben haben, die man kennt und denen man bereits vertraut. So überzeugend sich die Idee auf den ersten Blick anhört, hat sie doch in der Praxis mehrere Nachteile. Erstens kursieren die unterschriebenen Zertifikate vor allem innerhalb relativ kleiner Gruppen, überschreiten aber selten deren Grenzen. Im Ergebnis kann zwar die Umweltschützergruppe in Erlangen untereinander sichere Mails verschicken, aber wenn sie ihre Mitstreiter in Parchim anschreiben wollen, können sie nicht sicher sein, dass deren Schlüssel tatsächlich echt sind, so lange nicht ein Mittelsmann zu beiden Gruppen gleichzeitig Kontakt hat. Zweitens schwankt die Qualität, mit der beim gegenseitigen Schlüsselsignieren vorgegangen wird. Es sind Fälle bekannt, in denen zufällig die vorgelegten Ausweise vertauscht wurden und die Prüfer Schlüssel beglaubigten, deren Name nicht mit denen des  Ausweises übereinstimmte. Drittens lässt sich ein solch dezentrales Netz schlecht in Browser einbinden. Die Nutzer müssen ihr Vertrauensnetz also selber pflegen. Einen einheitlichen und zuverlässigen Weg, die Echtheit eines beliebigen digitalen Schlüssels zu prüfen, gibt es nicht. Selbst der Schlüssel von Bruce Schneier persönlich ist für mich so lange wertlos, wie er keine Unterschrift von jemandem enthält, dessen Identität ich verifiziert habe. Viertens sind unterschriebene Schlüssel ein Eldorado für Datensammler, ermöglichen sie doch die Erstellung eines detaillierten sozialen Netzes.

Es bleiben also zuverlässig aber teuer auf der einen, sowie gratis aber unzuverlässig auf der anderen Seite. Im Ergebnis wurschteln sich viele private und nichtkommerzielle Seiten mit selbstsignierten Zertifikaten durchs Leben, was zwar nichts kostet, aber aus Sicherheitssicht eine äußerst fragwürdige Idee darstellt. Gibt es nichts zwischen den beiden Ansätzen?

Doch, es gibt, und wie es aussieht, wird deutlich, wenn man sich die oben beschriebene Idee mit Vertrauen als Währung in Erinnerung ruft. Wie wäre es, wenn man Vetrauen ähnlich wie eine Währung in Zahlen ausdrückt und wenn es möglich wäre, Vertrauenspunkte ähnlich wie eine Währung zu handeln, nur dass sich die Punkte vermehren, wenn man sie vergibt?

Weiterhin scheint der Ansatz mit einer zentralen Zertifizierungsstelle allgemein anerkannt zu sein. Wenn man es jetzt noch schafft, bei gleichbleibendem Vertrauensniveau den Zertifizierungsaufwand sowie das Haftungsrisiko auszulagern, hat man zwei große Kostenblöcke weniger.

CAcert verfolgt genau diesen Ansatz. Abgesehen von der Unterbringung der Verwaltungsserver lassen sie praktisch alles von Freiwilligen erledigen: Softwareentwicklung und Support, Dokumentation und Austüfteln des Zertifizierungsverfahrens finden ausschließlich durch die Gemeinschaft statt. Selbst der Zertifizierungsprozess ist komplett in den Händen tausender Menschen, die weltweit kostenlos für CAcert arbeiten. Um sicher zu stellen, dass diese "Assurer" genannten Helfer auch korrekt arbeiten, setzt CAcert das oben skizzierte Punktesystem ein. Dieses funktioniert in zwei Abschnitten: Die ersten hundert Punkte erreicht man, indem man sich seine Identität von verschiedenen Assurern bestätigen lässt. Hierzu trifft man sich persönlich und legt zwei von einer staatlichen Behörde ausgestellte Ausweise vor. Akzeptiert werden Führerscheine, Reisepässe und Personalausweise. Je nach Status des Assurers und dessen Eindruck vom Treffen kann man so jeweils maximal 35 Punkte erreichen. Je nach Punktestand kann man sich verschiedene Zertifikate ausstellen. Dies fängt bei einem einfachen Clientzertifikat mit 6 Monaten Laufzeit an, das nicht weiter besagt, als dass die eigene E-Mailadresse auf Gültigkeit geprüft wurde, geht über Serverzertifikate mit 24 Monaten Laufzeit und endet bei Zertifikaten zum Codesignieren, die auf den eigenen Namen ausgestellt sind.

Sobald man durch mehrere Überprüfungen 100 Punkte beisammen hat, steigern weitere Assurances zwar die eigene Glaubwürdigkeit, aber es schlägt sich nicht mehr in Punkten nieder. Statt dessen kann man nach Ablegen einer Onlineprüfung selbst Assurer werden und pro durchgeführter Identitätskontrolle bis zu zwei Punkte bekommen, bis man so auf insgesamt 150 Punkte gekommen ist. Je mehr Punkte man auf diese Weise beisammen hat, desto mehr kann man selbst vergeben. Man fängt bei 10 an und kann sich bis zu 35 steigern.

Das alles klingt zunächst etwas kompliziert, hat aber großen Charme: Da man in der Regel bestrebt ist, möglichst schnell die nötigen Punkte beisammen zu bekommen, wird man dazu tendieren, sich von Leuten prüfen zu lassen, die ihrerseits viele Punkte vergeben können. Diese wiederum haben so viel Erfahrung gesammelt, dass sie nicht nur einfach die Ausweise ansehen, ein Formular unterschreiben und dann verschwinden, sondern noch eine Menge erzählen, worauf man achten muss. Welche Sicherheitsmerkmale gibt es bei Ausweisen? Wie verhalte ich mich, wenn mir ein unbekanntes Ausweisdokument vorgelegt wird? Wie führe ich eine Überprüfung bei Minderjährigen durch? Welche formalen Voraussetzungen muss eine Assurance erfüllen? Was darf, was muss, was darf auf keinen Fall notiert werden?

Gerade die erfahreneren Assurer neigen zu Pedanterie, aber genau darauf fußt die ganze Idee: Je penibler die Überprüfungen durchgeführt werden, desto mehr neigen die Anwender dazu, dem System zu vertrauen. Wenn man sich überlegt, dass es bei einigen kommerziellen Zertifizierungsstellen reicht, ein Fax zu schicken und die etwas besseren sich auf das bisweilen äußerst nachlässig durchgeführte Postident-Verfahren verlassen, braucht CAcert keinen Vergleich zu scheuen.

Die Assurer haben auch allen Grund, saubere Arbeit zu leisten: Mit dem Beitritt zu CAcert-Community erklärt man schriftlich, sich der internen Schiedsgerichtsbarkeit zu unterwerfen und im Streitfall mit bis zu 1000 € persönlich zu haften. Dies kann vor allem dann passieren, wenn man nachgewiesen bekommt, nachlässig geprüft zu haben. Das erklärt vielleicht, warum gerade die auf Messen an den CAcert-Ständen sitzenden Assurer sich nicht selten eine halbe Stunde Zeit nehmen, um ein paar Felder auf einem Formular auszufüllen, zwei Ausweise anzusehen und viele bohrende Fragen zu stellen, ob man wirklich genau wisse, worauf man sich gerade einlässt.

Über den ernsthaften Hintergrund hinaus, vetrauenswürdige Kommunikation als Leistung der Community anzubieten, darf man allerdings auch nicht den Punkt vergessen, der die ganzen Gemeinschaftsprojekte am Leben hält: Spaß. Man lernt interessante Menschen kennen und bei dieser Gelegenheit eine Menge darüber, wie Ausweise national und international gehandhabt werden, was sich die ausstellenden Behörden einfallen ließen, um die Sicherheit dieser Dokumente zu gewährleisten und hört eine Menge Döntjes darüber, welche Fantasieprodukte von Vertretern der Staatsmacht schon als gültige Ausweise anerkannt wurden.

Mittwoch, 13. Januar 2010

Malware attachement not detected by Yahoo scanner

This mail just arrived in my Yahoo account:

UPS Tracking Number 5600012.
Mittwoch, den 13. Januar 2010, 17:59:28 Uhr
Von:
UPS Manager Merlin Villarreal
An:




UPS_invoice_NR67974.zip (27KB)

Hello!

The courier company was not able to deliver your parcel by your address.
Cause: Error in shipping address.

You may pickup the parcel at our post office personaly!

Please attention!
The shipping label is attached to this e-mail.
Please print this label to get this package at our post office.


Please do not reply to this e-mail, it is an unmonitored mailbox.



Thank you.
United Parcel Service of America.

Although it was obvious for me that there must be something wrong with this mail (my address was not in the "to:" field, I don't use my Yahoo address for shipping issues and I've never been in contact with UPS before), I was surprised that the automatic Yahoo attachment scanner did not raise an alert. So I first entered the mail body in Google and found this article. Wait a minute, this article was written in October 2009, nearly 3 months ago. I clicked some other addresses that were shown by Google and found that this malware is broadcasted since August 2009, more than enough time for Yahoo to adapt its signatures. Maybe the malware has already been deleted without Yahoo telling me. So I decided to download the attachment onto my Linux box:

c0274669838712565b1ff5f36a5e8886 UPS_invoice_NR67974.zip

Yahoo still did not complain. So let's see what's in the Zip file:

Archive: UPS_invoice_NR67974.zip
End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of UPS_invoice_NR67974.zip or
UPS_invoice_NR67974.zip.zip, and cannot find UPS_invoice_NR67974.zip.ZIP, period.

Ah, this looks much more like I expected. If it's not a Zip, what is it?

UPS_invoice_NR67974.zip: RAR archive data, v1d, os: Win32

And unpacking this file revealed

2149ae56fffb57b17b55221c8922db96 UPS_invoice_NR67974.exe

An online malware check with Virustotal returned this result. What strikes me most, is that only 20% of the scanners used by this site were able to detect the malware.

Today's lesson: Don't trust your antivirus software too much. The best antivirus program is worth nothing if you don't use your brain. Keep your eyes open even if your system says that there's no need.

Update: Yahoo's scanner still does not recognize attached malware. I just received this message:

UPS Tracking Number 2527010.

Dienstag, den 19. Januar 2010, 16:31:07 Uhr
Von:
UPS Manager Wilson Akins
An:




UPS_invoice _Nr78155.zip (43KB)

Dear customer!

The courier company was not able to deliver your parcel by your address.
Cause: Error in shipping address.

You may pickup the parcel at our post office personaly!

Please attention!
The shipping label is attached to this e-mail.
Please print this label to get this package at our post office.

Please do not reply to this e-mail, it is an unmonitored mailbox.

Thank you.
United Parcel Service.


Again, Yahoo's scanner did not complain. This time an attachmend with this MD5 sum slipped through:

f44d4410401a43380077a0bf769fa49c UPS_invoice _Nr78155.zip


Virustotal thinks differently about this, although only 6 out of 41 raised an alert. Kaspersky detected Packed.Win32.Krap.w.

I wouldn't make such a fuss about it, if it weren't that obvious that these files are infected. I would expect every common scanner to find the malicious content.

Second update:

MD5 sum:

dc4a1e661cab4b9b062d78b5c4efd989 DHL_Label _Nr34791.zip

contains:

28d798d6021e600101ba68ea87345656 DHL_Label _Nr34791.exe

Zip file has been uploaded to different online malware scanners and returned these results:

Yahoo is informed and shows no reaction. Come on guys, is it really that difficult? I know it's a free service, but does this mean they have to be exposed to malware. Think about it, you're not only putting in danger your non-paying customers, but all the people they have contact with. Is it that what you want?

Third update:

Md5 sum:

0369b2f18a421c9b7a6939ebca4ce575 UPS_invoice_NR45675.zip

Yahoo scores 0:4. Hopefully the paying customers get a better service.

Fourth update:

MD5 sum:

e0c80f8b6b859b4aa19937384931a91b UPS_invoice_Nr19373.zip

  • Kaspersky is currently working on their scanner page, so this service is not available right now.
  • Dr Web runs into timeout.
  • Did anyone ever succed in sending a file to Jotti? I keep trying this for weeks, but I always get stuck after pressing the "send" button.
Anyhow, the case is clear: Yahoo has a security hole, knows about it and couldn't care less.

I don't know what song Yahoo's security guys like best, but it's not "She works hard for her money".