Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das kryptografische Konfigurationssystem in .NET Framework lässt keine ordnungsgemäße kryptografische Flexibilität zu und ist in .NET Core und .NET 5+ nicht vorhanden. . Die Abwärtskompatibilitätsanforderungen von NET verhindern auch, dass das Framework bestimmte kryptografische APIs aktualisiert, um mit fortschritten bei der Kryptografie schrittzuhalten. Daher sind die folgenden APIs ab .NET 5 als veraltet gekennzeichnet. Die Verwendung dieser APIs generiert warnungen SYSLIB0007 zur Kompilierungszeit und zur PlatformNotSupportedException Laufzeit.
- System.Security.Cryptography.AsymmetricAlgorithm.Create()
- System.Security.Cryptography.HashAlgorithm.Create()
- System.Security.Cryptography.HMAC.Create()
- System.Security.Cryptography.KeyedHashAlgorithm.Create()
- System.Security.Cryptography.SymmetricAlgorithm.Create()
Problemumgehungen
Der empfohlene Handlungsverlauf besteht darin, Aufrufe der jetzt veralteten APIs durch Aufrufe von Factory-Methoden für bestimmte Algorithmen zu ersetzen, z. B. Aes.Create(). Dadurch erhalten Sie die vollständige Kontrolle darüber, welche Algorithmen instanziiert werden.
Wenn Sie die Kompatibilität mit vorhandenen Nutzlasten beibehalten müssen, die von .NET Framework-Apps generiert werden, die die jetzt veralteten APIs verwenden, verwenden Sie die in der folgenden Tabelle vorgeschlagenen Ersetzungen. Die Tabelle enthält eine Zuordnung von .NET Framework-Standardalgorithmen zu ihren .NET 5+-Entsprechungen.
.NET Framework .NET Core / .NET 5+ kompatibler Ersatz Bemerkungen AsymmetricAlgorithm.Create() RSA.Create() HashAlgorithm.Create() SHA1.Create() Der SHA-1-Algorithmus gilt als fehlerhaft. Erwägen Sie die Verwendung eines stärkeren Algorithmus, wenn möglich. Weitere Anleitungen erhalten Sie von Ihrem Sicherheitsberater. HMAC.Create() HMACSHA1() Von der Nutzung des HMACSHA1-Algorithmus in den meisten modernen Anwendungen wird abgeraten. Erwägen Sie die Verwendung eines stärkeren Algorithmus, wenn möglich. Weitere Anleitungen erhalten Sie von Ihrem Sicherheitsberater. KeyedHashAlgorithm.Create() HMACSHA1() Der HMACSHA1-Algorithmus ist für die meisten modernen Anwendungen nicht empfohlen. Erwägen Sie die Verwendung eines stärkeren Algorithmus, wenn möglich. Weitere Anleitungen erhalten Sie von Ihrem Sicherheitsberater. SymmetricAlgorithm.Create() Aes.Create()
Unterdrücken einer Warnung
Wenn Sie die veralteten APIs verwenden müssen, können Sie die Warnung im Code oder in der Projektdatei unterdrücken.
Um nur einen einzelnen Verstoß zu unterdrücken, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Warnung zu deaktivieren und dann erneut zu aktivieren.
// Disable the warning.
#pragma warning disable SYSLIB0007
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0007
Um alle SYSLIB0007 Warnungen in Ihrem Projekt zu unterdrücken, fügen Sie ihrer Projektdatei eine <NoWarn> Eigenschaft hinzu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0007</NoWarn>
</PropertyGroup>
</Project>
Weitere Informationen finden Sie unter Unterdrücken von Warnungen.