HKDF für Windows verwendet die CNG-Implementierung

Ab .NET 11 verwendet HKDF unter Windows die in Windows integrierte Implementierung von Cryptography API: Next Generation (CNG). Die Windows-Implementierung schränkt einige Eingabegrößen stärker ein als die vorherige .NET-Implementierung, sodass einige Eingaben, die in früheren .NET-Versionen funktionierten, nun CryptographicException auslösen.

Eingeführt in Version

.NET 11 Vorschau 1

Bisheriges Verhalten

Zuvor akzeptierten unter Windows DeriveKey und Expand Eingaben beliebiger Größe, solange die Eingaben gemäß der HKDF-Spezifikation zulässig waren.

Neues Verhalten

Ab .NET 11 begrenzen DeriveKey und Expand unter Windows die maximale Eingabelänge für Eingabeschlüsselmaterial und pseudozufällige Schlüssel. Wenn das an DeriveKey übergebene Eingabeschlüsselmaterial oder der an Expand übergebene pseudozufällige Schlüssel den Grenzwert überschreitet, löst die Methode CryptographicException aus.

Beide Grenzwerte sind derzeit 2.048 Bytes.

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Bei Windows wurde .NET 11 von einer verwalteten HKDF-Implementierung in die von Windows CNG bereitgestellte Implementierung geändert. Die .NET Kryptografiebibliotheken bevorzugen Plattformimplementierungen für kryptografische Algorithmen.

Typische Verwendungen von HKDF sollten diese Grenzwerte nicht erreichen. Wenn Ihre Anwendung unter Windows Eingabeschlüsselmaterial oder pseudozufällige Schlüssel übergibt, die größer als 2.048 Byte sind, sollten Sie kleinere Eingaben in Betracht ziehen.

Betroffene APIs