AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Möglichst zufälliges Passwort (masterkey) generieren
Thema durchsuchen
Ansicht
Themen-Optionen

Möglichst zufälliges Passwort (masterkey) generieren

Ein Thema von Satty67 · begonnen am 11. Sep 2010 · letzter Beitrag vom 12. Sep 2010
Antwort Antwort
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#1

AW: Möglichst zufälliges Passwort (masterkey) generieren

  Alt 11. Sep 2010, 23:52
Das Problem von Random hat BUG ja nochmal erklärt...

Übrigens bringt da ein 1 MB großes Passwort herzlich wenig
Der masterkey ist nicht direkt der key für AES256. Das ist die Basis (Passwort/Salt) um eine KEY/IV Kombination zu bilden, die dann natürlich die passende Länge haben muss. Aber grundsätzlich richtig, das nicht mehr als 32 Zeichen gebraucht werden, mein Problem war nur, die Zahl der BruteForce-Tests zu erhöhen.

Der Hinweis von BUG auf CryptGenRandom war schon passend.

Geändert von Satty67 (11. Sep 2010 um 23:55 Uhr)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Möglichst zufälliges Passwort (masterkey) generieren

  Alt 12. Sep 2010, 08:36
Natürlich gibt es PRNG die kryptographisch sicherer sind, als das in Delphi implementierte Verfahren. Ich glaube, der Mersenne-Twister ist, richtig initialisiert, so ein Kandidat.

Ich denke, es würde auch ausreichen, die Reihenfolge des Befüllens zu ändern: Wenn man nicht weiss, das Du die Bytes einmalig von hinten nach vorne befüllst, oder drei mal um die Ecke, dann muss man eben doch ziemlich viel rumprobieren.

Delphi-Quellcode:
  For i := 0 to 255 do Bytes[i] := randomByte;
  ShuffleFisherYates(Bytes);
Deterministisch ist das ja, so wie bei allen PRNG, aber da soll mal einer drauf kommen.

Alternativ kannst Du dir Krypto-Hardware besorgen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Möglichst zufälliges Passwort (masterkey) generieren

  Alt 12. Sep 2010, 10:58
Also mein größtes Problem war ja, das ich erstmal nicht wusste, welche Möglichkeiten in der vorhandenen Bibliothek stecken. Mit CryptGenRandom (und Google) kam ich dann auf die Lösung. Zu meiner Schande muss ich gestehen, dass ich den RNGProvider als Provider für eine RNG Verschlüsselung interpretiert hatte (vgl. AESProvider, DECProvider).

Der spezielle RNG (RandomNumberGenerator) für Cryptologie kapselt scheinbar CryptGenRandom.

meine derzeitige Lösung sieht so aus:
Code:
public string GenerateRandomASCIIString(int length)
        {
            RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();
           
            byte[] randBytes = new byte[length];
            rand.GetBytes(randBytes);
           
            for (int i = 0; i < randBytes.Length; i++)
            {
                randBytes[i] = (byte)(randBytes[i] / 2);
                if (randBytes[i] < 33)
                    randBytes[i] = (byte)(randBytes[i] + 33);
            }
           
            string randString = Encoding.UTF8.GetString(randBytes);
            return randString;
        }
Ja, das ist jetzt kein Delphi-Code, aber war ja auch eine allgemeine Frage.

Im Moment wird noch auf darstellbare ASCII-Zeichen (unterer UTF-8 Zeichensatz) geschrumpft, damit ich das Ergebnis kontrollieren kann. Das ist nur temporär.

Das ganze ist Part einer Fuhrpark-Verwaltung, bei der spezielle Dokumente zu einem Fahrzeug verschlüsselt abgelegt werden können. Da das ganze universell werden soll, wollte ich gleich best mögliche Sicherheit implementieren.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Möglichst zufälliges Passwort (masterkey) generieren

  Alt 12. Sep 2010, 10:50
Übrigens bringt da ein 1 MB großes Passwort herzlich wenig
Der masterkey ist nicht direkt der key für AES256. Das ist die Basis (Passwort/Salt) um eine KEY/IV Kombination zu bilden, die dann natürlich die passende Länge haben muss. Aber grundsätzlich richtig, das nicht mehr als 32 Zeichen gebraucht werden, mein Problem war nur, die Zahl der BruteForce-Tests zu erhöhen.
Okay so gut bin ich nun nicht in der Materie

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:54 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