Der Standardwert für FeedbackSize für mit TripleDES.Create erstellte Instanzen wurde geändert
Der Standardwert für die SymmetricAlgorithm.FeedbackSize-Eigenschaft in der von TripleDES.Create() zurückgegebenen TripleDES-Instanz wurde von 64 in 8 geändert, um die Migration vom .NET Framework zu vereinfachen. Diese Eigenschaft wird nur verwendet, wenn für die Mode-Eigenschaft CipherMode.CFB gilt, es sei denn, sie wird direkt im aufrufenden Code verwendet.
Unterstützung für den CFB-Modus steht für .NET seit dem 5.0 RC1-Release zur Verfügung. Nur .NET 5 RC1 und .NET 5 RC2-Anwendungen sollten also von dieser Änderung betroffen sein.
Änderungsbeschreibung
In .NET Core und vorherigen Vorabversionen von .NET 5 weist TripleDES.Create().FeedbackSize
einen Standardwert von 64 auf. Ab der RTM-Version von .NET 5 weist TripleDES.Create().FeedbackSize
einen Standardwert von 8 auf.
Grund für die Änderung
Im .NET Framework legt die TripleDES-Basisklasse für FeedbackSize einen Standardwert von 64 fest, die TripleDESCryptoServiceProvider-Klasse überschreibt den Standardwert jedoch durch 8. Als die FeedbackSize-Eigenschaft in der Version 2.0 von .NET Core eingeführt wurde, wurde dieses Verhalten beibehalten. Im .NET Framework gibt TripleDES.Create() jedoch eine Instanz von TripleDESCryptoServiceProvider zurück. Der Standardwert der Algorithmusfactory ist also 8. Für .NET Core und .NET 5 und höher gibt die Algorithmusfactory eine nicht öffentliche Implementierung zurück, die bis jetzt einen Standardwert von 64 aufwies.
Das Ändern des FeedbackSize-Werts der TripleDES-Implementierungsklasse in 8 ermöglicht es, dass Anwendungen, die für das .NET Framework geschrieben wurden, in dem der Verschlüsselungsmodus auf CFB festgelegt war, die die FeedbackSize-Eigenschaft jedoch nicht explizit zuwiesen, in .NET 5 weiterhin funktionieren.
Eingeführt in Version
5.0
Empfohlene Maßnahme
Anwendungen, die Daten in den RC1- oder RC2-Versionen von .NET 5 verschlüsseln oder entschlüsseln, tun dies auch bei CFB64, wenn die folgenden Bedingungen erfüllt sind:
- Eine TripleDES-Instanz von TripleDES.Create() ist vorhanden.
- Der Standardwert für FeedbackSize wird verwendet.
- Die Mode-Eigenschaft ist auf CipherMode.CFB festgelegt.
Wenn dieses Verhalten beibehalten werden soll, weisen Sie die FeedbackSize-Eigenschaft 64
zu.
Nicht für alle TripleDES
-Implementierungen wird derselbe Standardwert für FeedbackSize verwendet. Wenn Sie den CFB-Verschlüsselungsmodus für TripleDES-Instanzen verwenden, sollten Sie den FeedbackSize-Eigenschaftswert immer explizit zuweisen.
TripleDES cipher = TripleDES.Create();
cipher.Mode = CipherMode.CFB;
// Explicitly set the FeedbackSize for CFB to control between CFB8 and CFB64.
cipher.FeedbackSize = 8;