Verwendet UuidCreate einen CSPRNG?

Bitte beachten Sie, dass dies nicht @ imein application, es ist eine Anwendung, die ich für einen Kunden penteste. Normalerweise stelle ich Fragen wie diese aufhttps: //security.stackexchange.com, da dies jedoch mehr mit Programmierung zu tun hat, habe ich hier nachgefragt.

Gewährt,RFC 4122 for UUIDs gibt nicht an, dass UUIDs des Typs 4 von einem kryptografisch sicheren Pseudozufallszahlengenerator (CSPRNG) generiert werden müssen. Es heißt einfach

Setzen Sie alle anderen Bits auf zufällig (oder pseudozufällig) ausgewählte Werte.

Auch einige Implementierungen des Algorithmus, wiedieses in Java, benutze einen CSPRNG.

Ich habe versucht herauszufinden, ob die Implementierung von Microsoft dies tut oder nicht. Hauptsächlich darum, wie .NET oder MSSQL Server sie generiert.

Überprüfen der .NET source wir können diesen Code sehen:

 Marshal.ThrowExceptionForHR(Win32Native.CoCreateGuid(out guid), new IntPtr(-1));
 return guid;

Überprüfen derCoCreateGuid Docco, es heißt

Die CoCreateGuid-Funktion ruft die RPC-Funktion UuidCreate @ au

lles, was ich über diese Funktion herausfinden kann, istHie. Ich scheine das Ende des Hasenlochs erreicht zu haben.

Now, hat jemand irgendwelche Informationen darüber, wieUuidCreate generiert seine UUIDs?

Ich habe viele ähnliche Beiträge gesehen:

Wie zufällig ist System.Guid.NewGuid ()? (Nimm zweiIst die Verwendung einer GUID eine gültige Methode zum Generieren einer zufälligen Zeichen- und Zahlenfolge?Wie sicher sind GUIDs nicht zu erraten?Wie werden GUIDs in SQL Server generiert?

Die erste davon sagt:

A GUID gibt keine Garantie für Zufälligkeit, sondern für Eindeutigkeit. Wenn Sie eine Zufälligkeit wünschen, verwenden Sie Random, um eine Zeichenfolge zu generieren.

Ich bin damit einverstanden, außer in meinem Fall für zufällige, unvorhersehbare Zahlen, würden Sie natürlich einen CSPRNG anstelle von @ verwendeRandom (z.B.RNGCryptoServiceProvider).

Und die letzteren Staaten (tatsächlich aus Wikipedia zitiert):

Cryptanalyse des WinAPI-GUID-Generators zeigt, dass die Reihenfolge der V4-GUIDs pseudozufällig ist; Bei vollständiger Kenntnis des internen Zustands ist es möglich, vorherige und nachfolgende Werte vorherzusage

etzt auf der anderen Seite des Zaudieser Beitra von Will Dean sagt

Das letzte Mal, als ich mir das anschaute (vor ein paar Jahren, wahrscheinlich XP SP2), habe ich mich direkt mit dem OS-Code befasst, um zu sehen, was tatsächlich geschah, und mit dem sicheren Zufallszahlengenerator wurde eine Zufallszahl generiert.

Selbstverständlich ist dies implementierungsspezifisch und kann jederzeit geändert werden (z. B. bei Windows-Updates), selbst wenn aktuell ein CSPRNG verwendet wird. Unwahrscheinlich, aber theoretisch möglich.

Mein Punkt ist, dass es keinen kanonischen Verweis dafür gibt. Der obige Verweis soll zeigen, dass ich meine Recherchen durchgeführt habe, und keiner der obigen Beiträge verweist auf etwas Autoritäres.

Der Grund ist, dass ich zu entscheiden versuche, ob ein System, das GUIDs für Authentifizierungstoken verwendet, geändert werden muss. Aus rein gestalterischer Sicht lautet die Antwort auf jeden FallJ, jedoch aus praktischer Sicht, wenn das WindowsUuidCreateenn die @ -Funktion tatsächlich ein CSPRNG verwendet, besteht keine unmittelbare Gefahr für das System. Kann jemand Licht ins Dunkel bringen?

Ich suche nach Antworten mit einer seriösen Quelle, um sie zu sichern.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage