Scratchbook

Das Leben ist immer anders als die Realität.

Sichere Authentifizierung mit Javascript

Claude, 30. Januar 2011, 01:06 Uhr

Warning: Use of undefined constant ri_rand_compare - assumed 'ri_rand_compare' (this will throw an Error in a future version of PHP) in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/random-image-widget/random_image.php on line 129 Warning: Use of undefined constant ri_rand_compare - assumed 'ri_rand_compare' (this will throw an Error in a future version of PHP) in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/random-image-widget/random_image.php on line 130 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 700 Warning: Invalid argument supplied for foreach() in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 707 Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 700 Warning: Invalid argument supplied for foreach() in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 707

Nightly hacking. Und zwar:

Es gibt soo viele Seiten, wo man sich nicht über eine verschlüsselte Verbindung anmeldet.
Tja, was tun, damit das Passwort nicht unverschlüsselt übertragen wird und in die Nase eines Netzwerkschnüfflers gerät?

Wir brauchen ein Taschentuch. Und wickeln das Passwort dort drin ein.

Der Server generiert ein Taschentuch. In diesem Fall eine Zufallszahl:

$_SESSION['challenge'] = sha1(mt_rand(0, 1000000) . mktime());

Das schicken wir an den Browser. Sieht dann so aus:

Das Chrüsimüsi bei „Server challenge“ ist unser Taschentuch. Das Verfahren heisst nämlich „Challenge-Response„.

Jetzt tippe ich mein Passwort ein. Vor dem Absenden wird mein Passwort zusammen mit dem Taschentuch verchrügelet und erst dann an den Server geschickt:

var sha1 = hex_sha1(passval + challenge);

Das da unten; ja genau da wo es heisst: „[password] =>“ – dort ist mein Passwort im Taschentuch drin. Dieses Gstellaasch wird an den Server geschickt.

Dort angekommen, macht der Server das gleiche. Er wickelt das Passwort aus der Datenbank in das gleiche Taschentuch ein und vergleicht sein Ergebnis mit dem vom Browser erhaltenen:

if (sha1($db_password . $_SESSION['challenge']) == $_POST['password']) 
{
	echo 'Logged in. <a href="">Reload</a>';
	session_destroy(); //wichtig, neues Taschentuch generieren #replay-attacks
}

Sind die beiden Ergebnisse identisch, war das Passwort richtig.

Sicherheitsmassnahme

Für den Fall, dass ich in meinem Browser aus Versehen kein Javascript aktiviert habe, und das Passwort nicht per Taschentuch durch’s Netzwerk reisen würde, sondern im Klartext, stelle ich das Passwortfeld als Platzhalter dar, welcher dann durch ein Eingabefeld ersetzt wird, wenn Javascript aktiviert ist.

Damit kann ich gar nicht erst ein Passwort eintippen…

So. Die Taschentuch-einwickel-Funktion (aka SHA1) habe ich hier gefunden.
Ausprobieren könnt ihr’s da: http://scratchbook.ch/js_challenge-response/
Den Code gibt’s auf Github: https://github.com/claudehohl/js_challenge-response/blob/master/index.php

Tweets that mention Sichere Authentifizierung mit Javascript « Scratchbook -- Topsy.com

[…] This post was mentioned on Twitter by 奥山実, Claude Hohl. Claude Hohl said: Ein Taschentuch hilft gegen Schnüffelnasen im Netzwerk: http://bit.ly/ikywO4 #javascript #challenge_response #POC […]

hanna

Echt goil, Respekt!

Jetzt ist hanna aber eine Hexe. Deshalb hat sie nicht nur einen Besen, sondern auch einen Schnupfen.
Einen gewaltigen Schnupfen. Sie muss nämlich mal bei Claude rein,
um festzustellen, ob der Kerl nicht nur ein guter Webmaster, sondern auch ein excellenter Künstler ist.

Was hilft nun?
Na, Tachentücher, eine gewaltige Menge davon, ein ganzes Lager!
Alle schön in schillernden Regenbogenfarben, gut geordnet nach der Marke
„Tempo“ vorproduziert. 😉
Wenn jetzt Claudes Taschentuch vorbeikommt, wird in Windeseile im
Lager nachgeschaut, ob hanna Claudes Tuch als Kopie dahat.
Da hanna vorher Claudes Angewohnheiten ausgeforscht hat, ist die Gefahr, das Claude ein Künstler ist gross —

Hexx vide bex, drin ist die Hex‘ -Graf Zahl ist der Grösste — !!!111elf!
Ist das Leben nicht zauberhaft? 😉

lg
hanna.

Claude

HANNA!!1! 😀 😀

Graf Zahl? Ich kenn nur den Graf von Dezibert: http://scratchbook.ch/2011/02/25/der-graph-von-dezibert/ 😛

Soso, Hanna hat Claudes Angewohnheiten ausgeforscht. Was ist denn ein Künstler genau? Definier mal… Dann sag ich dir, ob ich mich dazu zähle!

Ach ja, Schnupfen. Du auch? Ich liege seit Mittwoch im Bett 🙁 Heute ist Sonntag, und ich bin immer noch etwas matt und müde..

Aber danke fürs Lob 🙂 Magst du solche Javascript Künste? Schau mal hier: http://scratchbook.ch/blinkentube/changing-figures ^^ (und noch mehr: http://scratchbook.ch/2010/07/25/javascript-meets-blinkenlights/)

lg
claude

Claude

A halt, stop. Da ist eine versteckte Botschaft dahinter 😀

„Na, Tachentücher, eine gewaltige Menge davon, ein ganzes Lager!
Alle schön in schillernden Regenbogenfarben … vorproduziert“. RAINBOW TABLE xD

Nützt dir nix. Die Taschentücher sind das „Salz“, die Challenge, mit dem mein Passwort eingewickelt wird; wie du siehst: hex_sha1(passval + challenge);

Was nützt es dir, ganz viele Salzberge in schillernden Regenbogenfarben zu produzieren, welche sowieso jedes mal rein zufällig generiert werden? Das eigentliche Passwort wird ja dann mit diesem Salz/Taschentuch eingewickelt.

Eine Schwachstelle könnte der Zufallsgenerator sein:
sha1(mt_rand(0, 1000000) . mktime());

Zufallszahl nach Mersenne Twister, gekoppelt mit der aktuellen Zeit. Nicht so wasserdicht?

hanna

Claude,
Wow!

Dein Artikel hier ist das Beste auf diesem Blog, na vom
Eisberg – Internet mal abgesehen 😉

> Eine Schwachstelle könnte der Zufallsgenerator sein:
Eine Schwachstelle ist die Zugänglichkeit des Zufallsgenerators,
wenn sich feine Leute an ihn heranmachen, noch genauer, beide Seiten
der Übertragungskette in Augenschein nehmen. Da kann dieses Teil auch in Hardware gegossen sein, etwa ne Z-Diode mit nachfolgendem Schmitt-Triigger.

> A halt, stop. Da ist eine versteckte Botschaft dahinter 😀 …
Was könnte unseren Boris nun gestorben haben, Claude?

..

Claude

„Dein Artikel hier ist das Beste auf diesem Blog“ – oha, hast Du alle 2’489 Artikel durchgelesen und eine Bewertungstabelle erstellt? 😛

„Was könnte unseren Boris nun gestorben haben, Claude?“
Äml sicher kein Selbstmord. Völlig ausgeschlossen. Burkhard Schröder’s idiotische Anmassungen sagen mir das. (http://scratchbook.ch/2012/04/30/noch-einmal-tron/)

Ich muss mich da genauer mit beschäftigen, Hanna. Ich hab nur kurz geforscht, da gibts Theorien über eine Puppe als Leiche, Geheimdienste, künstliche Inszenierungen und so weiter.

Da habt ihr vermutlich mehr Informationen. Ach ja, warum ich jetzt von euch, Hanna(s) in der Mehrzahl spreche:

Jan Gaspard: Es gibt einen echten Hanna – und eine wahre Hanna. Es handelt sich um mehrere Personen (Hacker), die zum Teil aus dem persönlichen Umfeld von Tron und seiner Familie stammen und tiefer in den ganzen Themenzusammenhang hineinblicken als die meisten anderen.

Wenn ich mal Zeit habe, befasse ich mich näher damit.

hanna

Hm.
Da werde ich Dir mal zur Hälfte entgegenkommen: 😉
Die wahre Hanna ist Bori’s Mutter.

Achja:
Die Rita ist nix für Dich. Genau so die Lynn.
Herr Gaspard um so mehr. Habt ihr alle Hörspiele bis #41?

..

..

Claude

Ah okay, alles klar.

Ohja. Ritalin ist scheisse. Wie ich ja auch geschrieben hab 🙂
Aber warum kommst Du ausgerechnet jetzt hier in diesem Kontext darauf?

Ich lad mir grad das Offenbarung23 Torrent, Folge 1-33. Stuck at 64% -.-

hanna

> Aber warum kommst Du ausgerechnet jetzt hier in diesem Kontext darauf?
helloween in Ost Berlin …, Stasi, ihre EDV und Methoden.

Wenn du schon dabei bist, solltest Du auch den Film „Wer ist Hanna“
torrentisieren, da war Herr Gaspard Gostwriter … 😉

Und lasse das ganze Zeugs bitte Daniel zukommen.

..

Claude

„helloween in Ost Berlin …, Stasi, ihre EDV und Methoden.“ – WAT? Ich komm grad gar nicht draus. *confused*

Okay. Ja, das ist eine gute Idee. Hast Du deswegen auch nach FTP-Speicherplatz gefragt?

hanna

Nö. 😉 😉
ich wollte eigendlich ein gutes Blog abschiessen und ’ne beginnende
Freundschaft beenden. 😉

Oder vielleicht doch nicht?

Tsts … 😉

Claude

Soso. Da schaut der Claude grad seine erste Folge von «my little pony – friendship is magic», und Du schreibst über beginnende Freundschaften beenden. Passt ja grad prima! 😀

Du weisst… Freundschaft ist Magie –> https://www.youtube.com/watch?v=8xtle0njT8M 😉

Daniel

@hanna,
>Da werde ich Dir mal zur Hälfte entgegenkommen: 😉
>Die wahre Hanna ist Bori’s Mutter.
Interessant, wirst du uns (irgendwann) auch noch die zweite Hälfte aufschlüsseln?
>Herr Gaspard um so mehr. Habt ihr alle Hörspiele bis #41?
Noch nicht…
>helloween in Ost Berlin …, Stasi, ihre EDV und Methoden.
Tamara Danz gehörte zu jenen Musikern in der DDR, die mit Ihrer Musik gegen die herrschende Staatsdoktrin rebellierte. Sie entwickelte einen typischen Stil bei der Interpretation der Titel, wie es wohl nur sehr wenigen Sängerinnen und Sängern der Welt gelang.
http://www.youtube.com/watch?v=4viMLxdG6-s
Was willst du uns damit sagen?
>Wenn du schon dabei bist, solltest Du auch den Film “Wer ist Hanna”
>torrentisieren, da war Herr Gaspard Gostwriter
Ich habe soeben den Trailer geschaut. Zuvor noch nie davon gehört. Sieht nach einer packenden Story aus, so dass ich mir den Film wohl anschauen muss 🙂
>ich wollte eigendlich ein gutes Blog abschiessen und ‘ne beginnende
>Freundschaft beenden. 😉
>Oder vielleicht doch nicht?
Was muss ich da zwischen den Zeilen lesen?
@Claude
Wie kommst du jetzt auf <>???
Für mich abschreckend, aber dieser Begriff kam tatsächlich in einer Umfrage neulich am Easterhegg vor. Must du mir bei Gelegenheit vielleicht mal genauer erklären, was die Motivation ist, sich so etwas anzuschauen…
lg

Claude

😀 hrhrhr
Durch den neusten Chaosradio Podcast. Ich blogge das noch 🙂

Daniel

„Wer ist Hanna“, Sehr emotionaler und gut gelungener Film mit viel Spannung.
Hat mir sehr gefallen, vielen Dank für den Tipp 🙂
Bin grad per Zufall über diese FTP Source gestossen!
Wer den Streifen in Englisch ebenfalls saugen möchte:
ftp://93.190.206.160/public/d/dmp/movies/Hanna.2011.DVDRip.XviD-AMIABLE/

Warning: count(): Parameter must be an array or an object that implements Countable in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/themes/scratchbook/navigation_bar_bottom.php on line 1