Unterstützt winapis bcrypt.h tatsächlich bcrypt hashing?

8

Das hört sich vielleicht nach einer seltsamen Frage an, und es fühlt sich ein bisschen seltsam an, dass ich das wirklich fragen muss, aber nachdem ich ein paar Stunden über die MSDN-Dokumentation für die in Vista hinzugefügten bcrypt -Routinen gestanden habe, Ich bin fast zu dem Schluss gekommen, dass es keine wirkliche Unterstützung von bcrypt gibt!

Laut Wikipedia:

  

bcrypt ist eine adaptive kryptographische Hash-Funktion für Passwörter   ... basierend auf der Blowfish-Chiffre ... Neben der Einbindung eines   Salz zum Schutz vor Rainbow-Table-Attacken, BCrypt ist eine adaptive   Hash: im Laufe der Zeit kann es immer langsamer gemacht werden, so bleibt es   resistent gegen gezielte Brute-Force-Suchangriffe gegen den Hash und   das Salz.

Aus der Dokumentation zu MSDN ist die "bcrypt" -Bibliothek jedoch anscheinend eine generische Schnittstelle für Verschlüsselung und Hashing. Sie müssen einen Handle für einen "Algorithmus-Provider" über die BCRyptOpenAlgorithmProvider-Funktion , die mehrere integrierte Algorithmen zur Auswahl hat. Aber das Wort "Blowfish" erscheint nirgendwo in der Liste.

Also vermisse ich etwas? Lese ich das falsch? Oder unterstützt die "bcrypt" -Bibliothek von Windows überhaupt nicht bcrypt?

    
Mason Wheeler 14.03.2012, 22:57
quelle

2 Antworten

5

Im Kontext des MSDN ist BCrypt eine Kurzform von "BestCrypt" , aber der PR-Name dafür lautet:

  

Kryptographie-API: Nächste Generation (Cng)

Es ist in bcrypt.dll implementiert.

BestCrypt / BCrypt / Cng ist der Nachfolger des älteren CryptoAPI .

Microsoft entfernt langsam Verweise auf "BestCrypt" von ihrer Site, aber Sie können es immer noch auf einigen Seiten sehen wie:

  

SHA256Cng-Klasse

     

Dieser Algorithmus dient nur zum Hashing und bietet keine Verschlüsselung oder Entschlüsselung. Es verwendet den BCrypt (BestCrypt) Layer CNG.

Es ist interessant (für mich jedenfalls), dass das .NET-Framework Ihnen im Allgemeinen drei Implementierungen für jede Art von Kryptoalgorithmus zur Verfügung stellen kann. Für SHA2-Hashing gibt es beispielsweise:

Kurzversion

Nein, bcrypt ist die Abkürzung für bestcrypt . Und nein, es unterstützt kein bcrypt (blowfish crypt) Passwort Hashing.

    
Ian Boyd 03.05.2015 13:19
quelle
4

Die BCrypt-APIs sind generisch und unterstützen verschiedene kryptographische Hash-Algorithmen, aber bcrypt gehört nicht dazu. Das B-Präfix scheint nur eine Möglichkeit zu sein, zwischen den älteren APIs und der nächsten Generation zu unterscheiden.

    
John 16.03.2012 16:00
quelle