AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AES - wie cipher aus kennwort?

Ein Thema von geofranz01 · begonnen am 25. Apr 2008 · letzter Beitrag vom 27. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
geofranz01

Registriert seit: 17. Jun 2007
72 Beiträge
 
Delphi 2007 Enterprise
 
#1

AES - wie cipher aus kennwort?

  Alt 25. Apr 2008, 16:38
Hallo,

ich bin gerade dabei zu Verstädniszwecken eine eigene kleine AES-Implementierung zu schreiben. Vorerst beschränke ich mich auf 128bit Schlüssellänge. Es funktioniert auch alles schon super, ich weiß jedoch jetzt nicht wirklich, wie ich das Passwort des Anwenders (z.B. Baum (nur ein Beispiel, natürlich ziemlich unsicher)) in den cipher-Block umwandle. Gibt es da irgendeine Art "Vorschrift"? Ich weiß nicht ob die Methode mit Wiederholen des Passwortes bis zu 16 Zeichen bzw. abschneiden des Passwortes nach 16 Zeichen so sinnvoll ist (wie im WWW manchmal vorgeschlagen). Wäre eine 128bit langer Hash des Kennwortes gut? Wie wird das denn in den profesionellen Implementierungen gemacht?.

mfg,
geofranz
Max
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: AES - wie cipher aus kennwort?

  Alt 25. Apr 2008, 16:44
Guck dir mal Hagens DEC an. Dort findest du sowohl AES als auch z.b. eine SHA-1 Hash Implementierung.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: AES - wie cipher aus kennwort?

  Alt 25. Apr 2008, 16:54
Ein MD5 Hash über das Passwort wäre nicht schlecht.
Jede winzige Änderung am PW führt zu einem ganz anderen Hashwert.
Allerdings ist das noch nicht sicher genug, da es Tools gibt, um von einem MD5 Hash einen passenden Plaintext zu errechnen.
Deshalb solltest du das Passwort noch modifizieren:
Delphi-Quellcode:
var
  pw, hash_pw: string;
begin
  pw := ....; // Passwort im Klartext
  hash_pw := '**42**'+pw + '##'; // Passwort modifizieren

  hash := MD5Calc(hash_pw);
Wie du das Passwort modifizierst ist egal, es muss nur immer gleich sein.
Das Modifizierungsverfahren hältst du geheim.
Aber selbst wenn es bekannt würde, hätte ein Hacker trotzdem grosse Probleme ein gültiges Password zu ermitteln.
Es wäre nur durch brute-force zu knacken.
Andreas
  Mit Zitat antworten Zitat
geofranz01

Registriert seit: 17. Jun 2007
72 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: AES - wie cipher aus kennwort?

  Alt 25. Apr 2008, 17:05
Danke euch beiden!
Wenn ich das richtig sehe, werden an das Passwort (wenn es zu wenig Zeichen hat) einfach Nullen angehängt, oder?
Gut, dann mache ich das mit einem Hash, da das Progamm nur zu Demonstrations-/Lehrzwecken dient (mit Sourcecode), muss es nicht durch eine zusätzliche geheime Passwortmodulation erweitert werden.

Noch so nebenbei: Ist denn dann jede Implementierung (außer in den Grundfesten) anders, d.h. jedes Programm würde mir für die gleiche Datei andere Ausgaben leifern (bei gleichem Kennwort) oder gibt es einen Standard?
Max
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: AES - wie cipher aus kennwort?

  Alt 25. Apr 2008, 17:25
Ehm ehm ehm .. nein erstmal MD5 ist nicht zu empfehlen. SHA eignet sich da besser (weniger Kollisionen = sicherer). Es werden keine 0en an ein zu kurzes Kennwort angehangen. Der Hash hat eine konstante länge. Das Problem löst sich damit also von selbst
  Mit Zitat antworten Zitat
geofranz01

Registriert seit: 17. Jun 2007
72 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: AES - wie cipher aus kennwort?

  Alt 25. Apr 2008, 17:38
@Zacherl: Mit dem Hash ist das ja klar, aber ich glaube das in der DEC irgendwo gesehen zu haben. Naja egal, egal wahrscheinlich habe ich mich irgendwie vertan.

Danke!

mfg,
geofranz
Max
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#7

Re: AES - wie cipher aus kennwort?

  Alt 26. Apr 2008, 17:23
Zitat von Zacherl:
Ehm ehm ehm .. nein erstmal MD5 ist nicht zu empfehlen. SHA eignet sich da besser (weniger Kollisionen = sicherer).
Die Kollisionen sind relativ uninteressant, wenn man den Hash als Schlüssel verwendet (interessanter wäre es, wenn versucht wird das Passwort zu rekonstruieren).

Völlig falsch ist aber die Aussage
Zitat:
Es werden keine 0en an ein zu kurzes Kennwort angehangen. Der Hash hat eine konstante länge. Das Problem löst sich damit also von selbst
Wenn ein Passwort zu einfach ist, wird der einfache Hash auch nicht durch "Zauberei" sicherer.

Sichere Schlüssel sollten aus Passphrasen und "Salz" berechnet werden (z.B. gemäß Standard PKCS#5)

Gruß Gammatester
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#8

Re: AES - wie cipher aus kennwort?

  Alt 26. Apr 2008, 18:46
Zitat von shmia:
... da es Tools gibt, um von einem MD5 Hash einen passenden Plaintext zu errechnen.
öhm... geht das wirklich, einen passenden Plaintext aus einem MD5Hash zu errechnen? Ich dachte immer das geht nur über Bruteforce...
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: AES - wie cipher aus kennwort?

  Alt 26. Apr 2008, 18:54
Zitat von shmia:
... da es Tools gibt, um von einem MD5 Hash einen passenden Plaintext zu errechnen.
cool, mit welchem Tool kann man das machen? Kannst du da mal bitte einen Link angeben.

Neugierige Grüsse
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#10

Re: AES - wie cipher aus kennwort?

  Alt 26. Apr 2008, 19:59
Zitat von dominikkv:
Ich dachte immer das geht nur über Bruteforce...
Eine Hash-Funktion ist eine nicht-umkehrbahre Funktion. Es gibt aber Rainbow-Tabellen, welche Hashs von vielen Passwörtern errechnet haben und abgespeichert haben. Nun kann man den Hash in der Datenbank suchen und die Datenbank spuckt die Passwörter aus, die diesen Hash ergeben. Deswegen sollte man immer das Passwort vor dem Hashen salzen, siehe unten im Beitrag.

Zitat von Shmia:
Das Modifizierungsverfahren hältst du geheim.
Bitte was? Security through obscurity = no go!

Du hängst an das Passwort hinten noch ein paar zufällige Bits dran, dann jagst du's durch die Hash-Funktion. Dieses sog. Salt speicherst du dann vor dem verschlüsselten Text. So kannst du Angriffe durch eben diese obengenannten Rainbow-Tabellen entgehen.
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz