![]() |
Pw sicherheit anzeigen
Hallo leute,
Ich habe ein kleines Problem, Und zwar habe ich ein Programm mit dem ich ein Zufallspasswort erstelle. Ich kann folgendes auswählen:
Jetzt würde ich gerne die sicherheit des Passwortes anzeigen. Jetzt könnte ich natürlich für jede kategorie Punkte vergeben, also für jedes zeichen +1 punkt, wenn sonderzeichen aktiviert dann +6 punkte, für zahlen +3 punkte... nur würde das ganze nicht aufgehen, da wenn der benutzer ein passwort mit der länge 1 erstellen würde, wäre das Pw ja vollkommen unsicher, wird aber als sicher angezeigt. Wie könnte ich das lösen? Ich möchte auch nicht die ausgabe überprüfen, da ich ca. 5 ausgaben und nicht nur eine habe. vielen dank schon mal mfg headi |
Re: Pw sicherheit anzeigen
Schau Dir mal
![]() ...:cat:... |
Re: Pw sicherheit anzeigen
du könntest aber auch die Länge des Editfelds prüfen und einen Fehler ausgeben, wenn das Passwort zu kurz ist..
Delphi-Quellcode:
sollte funktionieren und ist am einfachsten.
if length (Edit1.Text) > 4 then
.... end else ShowMessage('Passwort zu kurz'); |
Re: Pw sicherheit anzeigen
Zitat:
...:cat:... |
Re: Pw sicherheit anzeigen
klar ist es das nicht und mit dem Link den du gegeben hast kann er sein selbst geschriebenes Programm wegschmeißen und es ersetzen :D...
ich habe einfach nur an die Zeichenlimitierung gedacht ;) |
Re: Pw sicherheit anzeigen
Zitat:
...:cat:... |
Re: Pw sicherheit anzeigen
ja nur die Funktion beinhaltet schon eine Wertetabelle und ist sehr effizient,
die anderen Kriterien mit einzubauen ist da gar nicht mehr sonderlich von Nöten denke ich.. aber machen kann man das bestimmt. |
Re: Pw sicherheit anzeigen
erstmal vielen dank
der code von hagen, ist eigentlich genau das was ich gesucht habe, nur ein kleines Problem habe ich noch, und zwar bewertet der einfach viel zu streng :? wie kann ich das noch ein bisschen verleichtern. Also ich meine z.B. "=]*7)3h7($5tQTRDAtWk" ist sicher ziehmlich sicher, bekommt aber nur 70/100 punkten. vielen dank mfg headi |
Re: Pw sicherheit anzeigen
hier hat Hagen auch noch einen kleinen Generatoransatz zum Passworterstellen angezeigt..versuch mal damit ob das Ergebnis als sicher eingestuft wird:
Delphi-Quellcode:
function Passwort: String
var Buffer: array[0..1023] of Byte; begin CaptureInput(Buffer); Result := THash_MD5.CalcBuffer(Buffer, SizeOf(Buffer), fmtMIME64); end; |
Re: Pw sicherheit anzeigen
Zitat:
Aber ich habe jetzt glaub rausgefunden an was es liegt, denn wenn ich z.B. passwörter mit der Länge < 10 erstelle sind die alle nur mässig sicher. Kann es sein dass der code nicht auf die länge achtet?? mfg headi sonst funktioniert alles perfekt :thumb: |
Re: Pw sicherheit anzeigen
Zitat:
Delphi-Quellcode:
:mrgreen:
const
GoodLength = 10.0; // good length of Passphrases ...:cat:... |
Re: Pw sicherheit anzeigen
hier der Link zur MD5-Unit
![]() allerdings ist ein kleiner Fehler in der Unit..und zwar oben bei den functions fehlt folgende Zeile:
Delphi-Quellcode:
sonst bekommt man einen Fehler
function MD5_HashForString(aValue: String): TMD5Digest;
|
Re: Pw sicherheit anzeigen
Bei meiner Funktion muß man immer eines bedenken, nämlich WAS gilt heutzutage als sicheres Passwort ?
Die Antwort ist: ein mindestens 128 Bit langes Passwort das statistisch aus Zufallsähnlichen Daten besteht. Gehen wir aber mal vom Menschlichem Input aus dann ergeben sich mehrere Probleme: 1.) der Mensch gibt sinnvolle Wörter ein 2.) der Mensch beschränkt sich auf durchschnittlich nur 36 Zeichen aus einem Zeichensatz von 256 möglichen Zeichen. Die Entropie der Passwörter ist also nur 3.6 statt 8. 3.) der Mensch nimmt sehr gerne Passwörter die identisch mit dem Tastaturlayout sind,zb. 1234567890 oder qwertz Das heist nun der Algorithmus muß die Passwörter clever gewichten. Ein Passwort wie P$[ mit 3 Zeichen muß aber immer schlechter als ein Passwort wir "aaaa" mit 4 Zeichen bewertet werden. Denn eine Brute Force Attacke beginnt meistens mit 1 Zeichen, a 256 Möglichkeiten, dann 2 Zeichen mit 256 * 256 Möglichkeiten dann 3 mit 256*256*256 und eben 4 mit 256*256*256*256. Ergo: das längere Passwort muß egal wie es aussieht sicherer sein. Nun zur Entropie: wenn wir ein Passwort haben wollen das so sicher ist wie ein 128 Bit langes Passwort das per quasi zufällig erzeugt wurde aber aus deutschen/englishen Wörtern besteht dann muß diese Passwort ca. 128 * 8 / 3.6 = 285 Bits = 36 Zeichen bestehen. Meine Funktion rechnet aber mit einem 10 Zeichen Passwort schon als ein gutes Passwort. Ergo: wenn die Funktion es wirklich richtig machen wollte dann würde sie fast alle menschlichen Passwörter als sehr miserabel einstufen müssen. Ich habe also die Funktion schon stark abgeschwächt. Und nochwas: diese Funktion dient ausschließlich zur Qualifizierung eines menschlichen Passwortes. Bei einem quasi zufälligen Maschinenpasswort das mit einer Hash Funktion erzeugt wurde ist diese Funktion sinnlos. Gruß Hagen |
Re: Pw sicherheit anzeigen
Zitat:
Achja eine Frage habe ich noch, man hört immer so von wegen ein passwort ist nur sicher, wenn es möglichst hoch verschlüsselt ist und so. Was ist denn da der Unterschied zu einem normalen passwort? Ich meine wenn ich mich hier auf dem Forum mit "wpo34vxç%ypv5kl*çu34" anmelde, denke ich ist das ziehmlich sicher und ich habe da auch gar nichts verschlüsselt oder so. Sind die verschlüsselten Passwörter einfach für Programme, die diese dann auch wieder entschlüsseln? vielen dank schonmal mfg headi |
Re: Pw sicherheit anzeigen
Verschlüsselt ist der falsche Begriff da er suggeriert das man es auch wieder "ent-schlüsseln" kann.
Um das reale Passwort, zb. "Test" zu schützen sollte man daraus quasi einen Sessionkey erzeugen. Dazu wird mit Hilfe einer Hash Funktion, einer "secure Oneway function", sichere Einweg-"verschlüsselung" aus dem "Test" ein binärer Wert erzeugt. Je nachdem welchen Algo man benutzt wird dieser binäre Wert dann immer 128 oder zb. 256 Bit groß sein. Man könnte das eher als "Prüfsumme" bezeichnen. Wichtig an dieser Hash Funktion ist aber das man nur von A nach B rechnen kann und nicht mehr von B nach A, praktisch gesehen wohlgemerkt. Man kann also aus "Test" einen Hash erzeugen aber ausgehend von einem beliebigen Hash ist es fast unmöglich wieder "Test" zu berechnen. Dies dient primär zum Schutz DEINES Passwortes. Denn ein Login zb. hier in der DP würde praktisch gesehen so aussehen: Du erzeugst erstmal einen Zufallswert, sogenanter Salt. Dieser sollte ca. 128 Bit groß sein. Du erzeugst aus dem Salt + Passwort mit einer Hashfunktion einen sogenannten Hash-Digest. Durch den Zufallssalt wird dieser Wert jedesmal anders aussehen. Beides sendest du an den DP Server. Der DP-Server nimmt den Salt + das gespeicherte Passwort und erzeugt seinerseits diesen Hashdigest. Er vergleicht nun deinen errechneten Wert mit seinem. Wenn beide gleich sind dann ist sicher das Du das gleiche Passwort kennst wie das das auf dem DP Server gespeichert wurde. Ein Angreifer der nun diesen Hash-Digest unterwegs abhört wird nun eben nicht dein Reales Passwort "Test" lesen können, da es quasi nur INDIREKT und sogar noch pseudozufällig in dem Hashdigest vorkommt. Mathematisch praktisch gesehen müsste dieser Angreifer den Salt abfangen und deinen Hashdigest. Dann fängt er an ALLE Kombinationen von Passwörtern durchzuprobieren solange bis er den gleichen Hashdigest erzeugt hat. Dies IST die EINZIGSTE Möglichkeit einen solchen Hashdigest zu knacken und nennt sich Brute Force Attacke, Durchprobieren! Aber jetzt kommt der klitzekleine und fiese Hacken den die Mathematiker eingebaut haben zum tragen. Denn dieser Hash-Digest ist 128 Bit groß und der Salt sollte ebenfalls 128 Bit groß sein. Damit haben die mathematiker die Kombinationsvielfalt so hoch gesetzt das es bis zur Implosion der Sonne dauern würde so einen Angriff praktisch durchzuführen. Ergo: auf diesem Wege kann zb. ein Server überprüfen ob du ein Geheimnis kennst das er ebenfalls kennt und das ohne das man beim Lauschen an der Kommunikation irgendwelche brauchbaren Informationen kommt. Es schützt also DICH und DEIN Passwort. Hashfunktionen sind Algortihmen der Kryptographie, sehr richtig, sie sind aber eben keine "Ver-schlüsselungen" im wörtlichen Sinne, da sie eben Einweg sind. Gruß Hagen |
Re: Pw sicherheit anzeigen
@ negaH: vielen dank jetzt habe ich das glaube kapiert :thumb:
vielen dank auch nochmals allen anderen! mfg headi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz