sichere accounts

qvvr

Mitglied
bin gerade dabei einen sicheren loginbereich zu programmieren.
bin dabei auf begriffe wie:
crypt() / md5() /rainbowtables
gestoßen,kenne mich damit aber nicht wirklich aus:
-> wie sichert man am besten userdaten&pws/realisiert einen sichern memberbereich?
 
Rainbowtables werden soweit ich weiss zur Verschlüsselung benutzt. Wie das geht kann ich dir allerdings auch nicht sagen
wink.gif
..
 
Rainbow Tables werden NICHT zur Verschlüsselung verwendet. Rainbow Tables sind Datenbanken mit Hashs und den dazugehörigen Passwörtern. Sie dienen dazu, zu einem Hash das Ursprungspasswort zu finden und werden meist von Hackern und Crackern verwendet. GDataOnline ist eine grosse Online-Rainbow-Table.

MD5 ist ein 32-Byte-Hash, Crypt nur 16 (so weit ich weiss). Bei PHP solltest du MD5 verwenden, für .htaccess brauchst du Crypt.
 
Zusätzlich zur Verschlüsselung mit md5 soltlest du einen "Salt" einsetzen.
Einfach mal googlen, da gibt es genug Infos zu.
 
hm, kapiere aber trotzdem noch nichtmal die grundlegenden sachen:
-v.a.: warum muss man überhaupt verschlüsseln? wenn ein hacker zurgiff auf die datenbank hat, hat er dann nicht automatisch zugriff auf meine scripte und kennt damit die verschlüsselung? bringt eine verschlüsselung also etwas außer zeit?

-was ist der unterschied zwischen crypt() und md5() verschlüsselung?
-ist sowas sicher/ausreichend: http://www.gaijin.at/scrphpcrypt.php ?
 
mhh...
also im Prinziep gibt es bisher keine Möglichkeit um eine md5 Verschlüsselung zu entschlüsseln.
Über die Ranbow-Tables kann man dies aber dann doch schaffen.
Daher solltest du die Verschlüsselung ja leicht abwandeln.

Ein Angreifer wird zudem meist von einem Standard-Hash ausgehen, ist dies nicht der Fall wäre der Aufwand erst neue Rainbow-Tables anzulegen (dauert je nach Komplexität & Rechenpower einige Tage bis Monate) und dann die Passwörter rauszusuchen viel zu groß.
Die Daten werden folglich uninteressant für den Angreifer.


Unterschied zw. md5 und crypt ist die stärke der Verschlüsselung.
Bei crypt (nutzt die DES Verschlüsselung) entsteht ein Hash, der aus 56 Bit besteht, bei md5 besteht dieser aus 128 Bit.
Dies bedeutet für einen Angreifer wiederum mehr mögliche Kombinationen, und damit verbunden mehr Zeitaufwand um entsprechende Datenbanken mit Vergleichsschlüsseln anzulegen.

Vorteil bei crypt:
Hier läßt sich relativ simpel ein Salt einfügen;
Nachteil:
Unsicher durch die geringere Verschlüsselung; Zudem wurde DES bereits geknackt.


Das Script selbst ist allein deswegen nicht sicher, da es öffentlich im Netz steht.
Du solltest daher von vornherein, wenn du es verwendest, einige Dinge ändern.
Da ich kein Sicherheitsexperte bin, kann ich Dir hierzu nicht viel mehr sagen. Sorry

Gruß,
André


PS: Hab die Infos oben zum Großteil unter php.net, wikipedia oder anderen Ressouren nachgeschlagen. Gesamtzeit für die Recherche liegt unterhalb von 5 Minuten... nur mal als Denkanstoss...
 
QUOTE (qvvr @ So 11.3.2007, 23:24) hm, kapiere aber trotzdem noch nichtmal die grundlegenden sachen:
-v.a.: warum muss man überhaupt verschlüsseln? wenn ein hacker zurgiff auf die datenbank hat, hat er dann nicht automatisch zugriff auf meine scripte und kennt damit die verschlüsselung? bringt eine verschlüsselung also etwas außer zeit?




Sicherheit ist nicht nur mit einem Element getan. Sicherheit ist ein System. Natürlich bringt das Hashing von Passwörtern alleine keine Sicherheit - trägt aber dazu bei.
- falls du mal gehackt werden solltest, hat er zwar deinen Salt, aber muss dennoch die ganzen Rainbowtabellen nochmal neu "generieren". Das kann Jahre dauern! Bis dahin solltest du diesen Hack bemerkt haben, und kannst dann einfach einen neuen Salt erstellen und dementsprechend die Passwörter neu generieren.

- es gibt auch Lücken, wo der Angreifer nicht komplett auf deinem Server kann, aber eventuell einzelne Datensätze ausspionieren kann (auch z.B. als "Dritter" Mithörer, Bundestrojaner lässt güßen
wink.gif
) - schon alleine aus diesem Grund sollte man Passwörter niemals im Plain-Text Format übertragen.



QUOTE -was ist der unterschied zwischen crypt() und md5() verschlüsselung?

wurde bereits von DaBone erläutert.
Für mich wäre aber sogar md5 zu unsicher. Wenn du grad neu am programmieren bist, gewöhn dich an sha1()



QUOTE -ist sowas sicher/ausreichend: http://www.gaijin.at/scrphpcrypt.php ?

Nein! Wenn du genauer hinschaust basiert das Ganze auf die crypt() Funktion.



QUOTE Vorteil bei crypt:
Hier läßt sich relativ simpel ein Salt einfügen;

Mit sha1/md5 genau so:
md5($passwort.$salt);

bzw.

sha1($passwort.$salt);


qvvr, sei das aber das nächste mal nicht so Lesescheu...
 
Zurück
Oben