Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

11

11.09.2014, 22:18

Deswegen kennst nur du ihn bzw. die internen Vorgänge. Es ist bzw. es muss eine Konstante sein, denn wie du richtig erkannt hast: wie willst du sonst den gleichen Hash für das Passwort wiederbekommen?

edit:
In der Datenbank wäre er denkbar ungünstig. Knackt wer die DB sieht er die Hashwerte der Passwörter UND den SALT. Undenkbar!
Der wird intern irgendwo gespeichert. Am besten als Konstante im Code.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

12

11.09.2014, 22:25

In der Datenbank wäre er denkbar ungünstig. Knackt wer die DB sieht er die Hashwerte der Passwörter UND den SALT. Undenkbar!
Der wird intern irgendwo gespeichert. Am besten als Konstante im Code.


Also ich kenn das nur so, dass es für jedes Passwort einen eigenen Salt gibt, der auch ohne Bedenken in der Datenbank gespeichert werden kann.
Der Salt ist ja nur dafür da um Wörterbuchattacken zu verhinden und dabei ist es ja egal, ob man den Salt kennt oder nicht. Wenn es immer der gleiche Salt wäre, dann würde ja auch 2 mal das gleiche Passwort wieder den gleichen Hash erzeugen.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

13

11.09.2014, 22:29

Gut, das ist wiederum wahr. Ich kenne es von meinen bisherigen Erfahrungen nur mit einem SALT, aber deine Aussage macht durchaus Sinn.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Daedra22

Treue Seele

  • »Daedra22« ist der Autor dieses Themas

Beiträge: 115

Wohnort: Osten

Beruf: Student Informationstechnik

  • Private Nachricht senden

14

11.09.2014, 22:36

Ja der Salt Wert scheint immer ein anderer zu sein, da ich es in der Datenbank gerade geprüft habe.
Aber wie komme ich denn an die Salt Werte bei Joomla ran ?
In den Tabellen der Datenbank scheint nirgens ein Eintrag dazu zu sein, aber irgendwo müssen die Dinger ja stecken ...

Oder ich schreibe die Salt Generierung einfach raus aus Joomla und belasse es beim MD5 Hashing Verfahren ?
Who are you? - I am a game designer.
No you are not! - I am a game designer.
What kind of a designer ? - I am a game designer.
You mean you play games ? - I am a game designer.

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

15

11.09.2014, 22:41

In den Tabellen der Datenbank scheint nirgens ein Eintrag dazu zu sein, aber irgendwo müssen die Dinger ja stecken ...



Zitat von »http://en.wikipedia.org/wiki/Bcrypt«

The prefix "$2a$" or "2y" in a hash string in a shadow password file indicates that hash string is a bcrypt hash in modular crypt format.[2] The rest of the hash string includes the cost parameter, a 128-bit salt (base-64 encoded as 22 characters), and the 192-bit hash value (base-64 encoded as 31 characters).


Also am Beispiel von "$2y$10$ApdT.mqDtJoT2PcCQSU2g.f5Q8XHgUEHjvCfGbiOPiM.duxE40iau"

$2y = format
$10$ = Wie oft (bin nicht so tief in bcrypt drin, aber so hab ich das Ding immer verstanden) das Password gehasht wurde
ApdT.mqDtJoT2PcCQSU2g. = Salt
f5Q8XHgUEHjvCfGbiOPiM.duxE40iau = Passwort

Es würde mich schwer enttäuschen, wenn Java nicht schon direkt irgendwo eine bcrypt implementierung hätte, die du einfach verwenden kannst.

16

11.09.2014, 23:33

Relevanter Link: https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet

Oder ich schreibe die Salt Generierung einfach raus aus Joomla und belasse es beim MD5 Hashing Verfahren ?

Auf keinen Fall es gibt dutzende MD5 Hash Datenbanken mit denen man die Passwörter dann einfach auslesen kann. Joomla verwendet bestimmt einen abgewandelten Algorithmus mit mehreren MD5 Zyklen. Evt. solltest Du Dir für Joomla sonst einfach einen Authentification-Service in PHP bauen, den Du von Deiner Java Anwendung aus aufrufst. Vielleicht kannst Du Dir mit Joomla die Session-ID teilen oder so. Ein User sollte übrigens nicht in der Lage sein unter normalen Umständen die Hash-Werte anderer Benutzer zu lesen.

BTW Deine Ausführungen hören sich ziemlich gruselig an. PHP und Java kombinieren würde ich nur wenn es unbedingt sein muss oder Altlasten berücksichtigt werden müssen. Hast Du schon mal nach Java-CMS geschaut?

Daedra22

Treue Seele

  • »Daedra22« ist der Autor dieses Themas

Beiträge: 115

Wohnort: Osten

Beruf: Student Informationstechnik

  • Private Nachricht senden

17

12.09.2014, 00:15

Hmm also Sylence deine Ausführungen verstehe ich nicht ganz, der Salt Wert den du da lieferst ist der schon gehashed ? und Warum gerade diese Zeichenfolge bis zum Punkt die anderen gehashten Zeichenfolgen haben keinen Punkt ... ? Und Chromanoid ja ich werde anscheinend wirklich diesen Authentification Service nutzen müssen, obwohl ich keine Ahnung von PHP habe und alles bisher korrekt realisiert habe und nun an den Passwörtern scheitere... Gibt es da einfache Möglichkeiten oder Tutorials wie ich das mir schnell anlesen kann ?
Who are you? - I am a game designer.
No you are not! - I am a game designer.
What kind of a designer ? - I am a game designer.
You mean you play games ? - I am a game designer.

Daedra22

Treue Seele

  • »Daedra22« ist der Autor dieses Themas

Beiträge: 115

Wohnort: Osten

Beruf: Student Informationstechnik

  • Private Nachricht senden

18

12.09.2014, 10:43

Das Verfahren ist wie ich gerade herausgefunden habe doch kein MD5 sondern BCrypt, MD5 war es bei den alten Versionen von Joomla (1.7 and lower).
Wenn das Template mir mit php schon alles vorgibt und ich nur die Passwörter in Java auch so hinbekommen will, dann wird sich das doch irgendwie machen lassen, es ist die letzte Hürde dann kann ich alles zuende realisieren.
Du siehst ja die Beispielpasswörter da ist nirgends ein Doppelpunkt LetsGo ...
Aber BCrypt verwendet ja auch einen Salt Wert.
Who are you? - I am a game designer.
No you are not! - I am a game designer.
What kind of a designer ? - I am a game designer.
You mean you play games ? - I am a game designer.

19

12.09.2014, 11:06

Wie ein Bcrypt-Passworthash aufgebaut ist und wie du an den Salt kommst, hat Sylence in seinem Beitrag eigentlich ziemlich eindeutig erklärt.

Daedra22

Treue Seele

  • »Daedra22« ist der Autor dieses Themas

Beiträge: 115

Wohnort: Osten

Beruf: Student Informationstechnik

  • Private Nachricht senden

20

12.09.2014, 11:20

Ok nur um das zusammenzufassen was ihr bisher erklärt habt:
Zu Testzwecken habe ich 3 Accounts mit dem Passwort "passwort" erstellt und diese gehashten Werte erhalten:

$2y$10$eh6J.za3TuwGpDvUJbfR5uTBcn9MB22qx7OdgIrPEDfx0FP4thMaO
$2y$10$SV01GiET6b.gcleKFo8rNebUhQ.bgj6v7bqIrU/UQf6bLrcAB84aG
$2y$10$UvHyh.ShtqqgPiVaz2ApGeBC.XriGUkucPtLI5hK5S92mM5bOGvYu


Bis zum 3. $-Zeichen sind es nur Typangaben. also:

eh6J.za3TuwGpDvUJbfR5uTBcn9MB22qx7OdgIrPEDfx0FP4thMaO
SV01GiET6b.gcleKFo8rNebUhQ.bgj6v7bqIrU/UQf6bLrcAB84aG
UvHyh.ShtqqgPiVaz2ApGeBC.XriGUkucPtLI5hK5S92mM5bOGvYu


Die ersten 22 Zeichen also die Salt Werte:

eh6J.za3TuwGpDvUJbfR5u
SV01GiET6b.gcleKFo8rNe
UvHyh.ShtqqgPiVaz2ApGe


Die restlichen 31 Zeichen das gehashte Passwort:

TBcn9MB22qx7OdgIrPEDfx0FP4thMaO
bUhQ.bgj6v7bqIrU/UQf6bLrcAB84aG
BC.XriGUkucPtLI5hK5S92mM5bOGvYu

Müsste das gehashte Passwort nicht bei allen 3en gleich sein ?
Dann könnt ich ja einfach die ersten 22 Zeichen abschneiden und nur den Rest vergleichen wenn ich es in Java so realisiere ?
Who are you? - I am a game designer.
No you are not! - I am a game designer.
What kind of a designer ? - I am a game designer.
You mean you play games ? - I am a game designer.

Werbeanzeige