Archive for the ‘Technik’ Category

Gefahren mit Zeigern

Monday, July 16th, 2007

Zeiger sind gotos der Datenstrukturseite

Prof. Dr.-Ing. M. Nagl

md5-Passwort entschlüsseln

Thursday, June 28th, 2007

Mich fragte mal jemand, wieso man mit md5 "verschlüsselte" Passwörter nicht wieder entschlüsseln kann. Dies liegt daran, dass md5 eine Einwegfunktion ist, d.h. eine Funktion, die sich nicht umkehren lässt. Es gibt unendlich viele Funktionsargumente, aber nur eine beschränkte (wenn auch sehr große) Anzahl an Funktionswerten bzw. Bildern. md5 verschlüsselt nämlich nicht, er bildet nur eine Prüfsumme.

Klingt vielleicht auf den ersten Blick verwirrend, ist aber eigentlich ganz einfach. Ich versuche im Folgenden, den Sachverhalt mit einem Beispiel zu verdeutlichen. (Mit der Thematik Vertraute finden sicherlich einige Dinge, die im Detail nicht ganz stimmen; für einen ersten Einstieg in die Materie halte ich es jedoch für verschmerzbar, wenn gewisse Details nicht 100%ig auf den realen Fall übertragbar sind.)

Man stelle sich vor, seine Bankkarten-PIN laute 4711 (entspricht dem Passwort eines Benutzers). Damit sich diese bei der Übertragung vom Geldautomat (entspricht dem Eingabeformular im Browser) zum zentralen Bankserver (entspricht dem Server einer Internetseite) nicht abfängen lässt, wird eine md5-Ähnliche Funktion auf die PIN angewandt, beispielsweise quersumme(4711) = 13. Der zentrale Server überprüft nun, ob die übertragene 13 gleich der Quersumme der gespeicherten PIN 4711 ist.

Wenn nun ein böser Bub die Übertragung anzapft und die Prüfsumme 13 abfängt, so ist es ihm möglich, diese Prüfesumme zu verwenden, um an diesem Automaten Geld abzuheben. Es ist ihm jedoch nicht möglich, daraus auf die geheime PIN zu schließen. Diese kann nämlich nicht nur 4711, sondern bspw. auch 9400 oder 1237 lauten. Es ist nicht möglich, aus der Quersumme auf die ursprüngliche Zahl zu schließen!

Ähnlich verhält es sich auch beim md5-Algorithmus, einmal angewandt kann die Eingabe nicht wieder entschlüsselt werden.

Es ist jedoch möglich, md5 zu knacken, bspw. mittels Brute-Force-Angriffs. Dies bedeutet, dass alle möglichen Eingaben durchprobiert werden, bis man Erfolg hat. Man erhält dadurch (nach einer unter Umständen sehr langen Zeit) ein Argument, für das md5 den selben Funktionswert zurück gibt wie beim "korrekten" Passwort. Abhängen vom gewählten Passwort ist die Chance mehr oder weniger klein, dass es sich dabei um das ursprüngliche Passwort handeln. Ohne weitere Informationen (bspw. Kontext-Informationen) ist es jedoch nicht möglich festzustellen, ob das erhaltende Argument tatsächlich das Passwort des Nutzers ist.

Mit einem kleinen Trick kann man die Sicherheit von md5 oder anderer Hashing-Algorithmen wie SHA-1 jedoch erhöhen: mit sogenannten Salts. Dies ist ein für jede Anwendung spezifischer Wert, der zusätzlich zum Argument übergeben wird. Dadurch ist es einem Angreifer, selbst wenn er einen Hash (Funktionswert) oder gar ein mögliches Argument besitzt, nicht möglich, auf mehr als eine Seite zuzugreifen.

Auf mein obiges Beispiels von Geldautomaten bezogen: Stellen wir uns vor, wir haben zwei Geldautomaten, Automat 1 und Automat 2 mit jeweils passendem Server dazu. Gebe ich meine PIN an Automat 1 ein, so berechnet dieser nicht quersumme(PIN), sondern quersumme(PIN+1); Automat 2 analog dazu quersumme(PIN+2). Lautet die PIN 4711, so berechnet Automat 1 quersumme(4712) = 14. Der böse Bub fängt nun die übertragene 14 ab und schließt, den quersumme-Algorithmus vor Augen, auf eine mögliche PIN 1238. Mit dieser versucht er nun, bei Automat 2 Geld abzuheben was jedoch scheitert, denn quersumme(1238+2) = 7, jedoch quersumme(4711+2) = 15. Der Angreifer muss nun also nicht nur Automat 1 belauschen, sondern zusätzlich rausfinden, welchen Salt Automat 1 verwendet, anschließend Automat 2 belauschen, dessen Salt herausfinden und anschließend versuchen, die gesammelten Ergebnisse so zu verwursten, dass er gültige PINs für die Automaten berechnen kann.

Während dies bei der Quersumme noch relativ einfach möglich ist wird es mit zunehmender Komplexität der Algorithmen immer schwieriger.

Je nach Anwendungsfall reicht md5, besser jedoch md5+Salt. Wer mehr Sicherheit benötigt, sollte SHA-1(+Salt) verwenden oder weitere Stufen, bspw. SHA-256(+Salt). 

..

Neuerungen in GTK+ 2.11/2.12

Thursday, May 24th, 2007

Soeben wurde GTK+ 2.11.0 veröffentlicht und gibt einen ersten Einblick auf das, was uns mit GTK+ 2.12 erwarten wird. Und ich muss sagen: da sind einige Highlights dabei! Hier nun eine Zusammenfassung mit Screenshots:

(more…)

100 Spam-Mails pro Woche

Wednesday, February 14th, 2007

… erhält der durchschnittliche Deutsche Internetbenutzer laut einer Studie. Schön wär’s! Argh, ich wäre schon froh, wenn ich nur 100 Spam-Mails pro Tag kriege. Allein in den paar Sekunden, in denen ich diesen Beitrag schreibe, sind schon wieder mehrere Mails im Filter gelandet. Alle Spammer an die Wand! Bitte.

Übersetzungen mit php-gettext

Friday, January 5th, 2007

Im aktuellen phpMagazin (2.2007) wird mein Artikel "Übersetzers Liebling" veröffentlicht, in dem ich die Vorteile, die man durch die Verwendung des php-Moduls gettext bzw. Danilo Å egans php-gettext erfährt, beschreibe. Es wird erklärt, wie man eine php-Anwendung übersetzbar macht und wie man die einem zur Verfügung stehenden Funktionen zu verwenden hat. Zum besseren Verständnis wird alles zusätzlich durch komplette Beispiele erläutert. Mein dort erwähnter Patch für php-gettext befindet sich hier.

Kommentare und Anregungen können gerne hier in meinem Blog hinterlassen werden; ich werde versuchen sie im kommenden Teil zu berücksichtigen.

now playing: Les Cowboys Fringants – Un P’tit Tour

Nie wieder Trekstor

Wednesday, September 27th, 2006

Beim Dreck-Store ist der Name wohl Programm. Nachdem ich mich daran gewöhnt hatte, dass mein überteuerter ogg-Player öfter als mir lieb ist abstürzt, versagte meine externe USB-Festplatte ihren Dienst. Dann fiel mir auf, dass ihr Netzteil ungewöhnlich heiß wird, und eine Recherche im Internet machte mir dann klar, dass mich das nicht mehr wundern sollte:

Das alte Netzteil
(einmal kurz am Kabel gewackelt, und tadaa, Qualität made in Fernost)

Das Netzteil trägt wohl CE- (*lach*) und GS-Siegel zu Unrecht, diverse Quellen berichten, es bestehe Brandgefahr. Wunderbar, also den Support angeschrieben, und nach nur zweieinhalb Wochen kam ein professionell verpacktes, neues und hoffentlich ungefährliches Netzteil ohne Entschuldigungsschreiben per Post:

Das neue Netzteil

(so sieht ein liebevoll verpacktes "Paket" mit c/o-Absender aus)

Und ich komme endlich wieder an meine Daten. 

Evolution mit Bogofilter

Tuesday, September 19th, 2006

Ich habe gestern Nacht testweise Mozilla Thunderbird gestartet, mit nur einer guten und drei (!) Spam-Mails gefüttert und heute Morgen 98 Mails abgerufen. Thunderbird erkannte 87 Mails als Spam. 100% korrekt.

Der Spamfilter von Evolution hat bei mir noch nie funktioniert, obwohl ich neben dem Spam-Assassin- auch das Bogofilter-Plugin ausprobiert habe. Als ich dann aber Evolution über ein Terminal startete merkte ich, dass aufgrund eines Konflikts das Anti-Spam-Plugin nicht geladen werden konnte. Die Lösung ist einfach:

Wenn man das Bogofilter-Plugin verwenden möchte, die Datei /usr/lib/evolution/2.6/plugins/org-gnome-sa-junk-plugin.eplug löschen, umbenennen oder verschieben. Möchte man das Spam-Assassin-Plugin benutzen, so verfahre man entsprechend mit der Datei /usr/lib/evolution/2.6/plugins/org-gnome-bf-junk-plugin.eplug.

Et voilà, nachdem ich Bogofilter mit 2000 guten und 5000 Spam-Mails gefüttert habe, hatte ich auch heute morgen mit Evolution keine einzige der 87 Spam-Mails im Posteingang. Perfekt!

Nein, nicht ganz. Leider werden erkannte Spam-Mails nicht als "ungelesen" angezeigt, was die händische Kontrolle erschwert. Hat jemand ‘ne Ahnung, woran das liegt? Die Filteregel »Wenn "Unerwünscht-Test" ist "Nachricht ist unerwünscht", dann "Status nicht setzen": "Gelesen"« hat geholfen :)

GNOME 2.16 ins Deutsche übersetzt

Sunday, September 3rd, 2006

Heute Mittag habe ich die letzten Zeichenketten übersetzt, sodass GNOME auch in Version 2.16 wieder komplett auf Deutsch verfügbar sein wird. Ich freue mich besonders, dass ich mich dieses Mal bei gleich sieben Leuten bedanken kann.

Beni Goll (Alacarte), Christian Kintner (u.A. Evolution und Dasher), Hendrik Brandt (u.A. Orca), Jens Seidel (Korrekturlesen), Jochen Skulj (u.A. Tomboy und gEdit), Johannes Schmid (Gnome-Power-Manager) und Michael Kanis (Bug-Buddy, Gnome-Keyring): vielen Dank für eure Mithilfe, alleine hätte ich die Übersetzung kaum fertigstellen können! Es wäre toll, wenn ihr weiterhin am Ball bleibt und eure gesammelte Erfahrung in weitere Übersetzungen steckt, falls ihr mal wieder ein paar freie Minuten habt.

Es gibt noch viele zu übersetzende Programme, wen es also in den Fingern juckt, mal etwas für GNOME zu tun: mein Aufruf gilt noch immer, meldet euch bei Interesse doch einfach auf der Mailingliste.

now playing: Beck – Lonesome Tears

hendi goes web 2.0

Monday, August 28th, 2006

Und es schaut dank Inspiration bei famfamfam super aus, oder?

musik.hendi.name

(Nicht meckern, dass ich abgekupfert habe, ist nur eine rein private Seite)

Scheiß Spammer

Friday, August 25th, 2006

Unter Windows haben mich die "Ihre Festplatte ist voll, leeren Sie doch mal den Papierkorb"-Hinweise genervt, ist doch logisch und unnötig zu erwähnen. Eben bekam ich unter GNOME den Hinweis, das meine Platte zu 99% voll ist, und da fiel mir der Tipp von Microsoft wieder ein.

$ df -h | grep home
/dev/hda4              41G   40G  991M  99% /home

Und nach dem Säubern des Spam-Ordners und dem Löschen von Evolutions Müll-Ordner:

$ df -h | grep home
/dev/hda4              41G   40G  1,5G  97% /home

500MB Spam? Wow.