Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le système de configuration de chiffrement dans .NET Framework ne permet pas une agilité de chiffrement appropriée et n’est pas présent dans .NET Core et .NET 5+. . Les exigences de compatibilité descendante de NET empêchent également le framework de mettre à jour certaines API de chiffrement pour suivre les avancées du chiffrement. Par conséquent, les API suivantes sont marquées comme obsolètes, à partir de .NET 5. L’utilisation de ces API génère un avertissement SYSLIB0007 au moment de la compilation et un PlatformNotSupportedException au moment de l’exécution.
- 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()
Solutions de contournement
Le cours d’action recommandé consiste à remplacer les appels aux API désormais obsolètes par des appels aux méthodes de fabrique pour des algorithmes spécifiques, par exemple Aes.Create(). Cela vous donne un contrôle total sur les algorithmes instanciés.
Si vous devez maintenir la compatibilité avec les charges utiles existantes générées par les applications .NET Framework qui utilisent les API désormais obsolètes, utilisez les remplacements suggérés dans le tableau suivant. La table fournit un mappage des algorithmes par défaut .NET Framework à leurs équivalents .NET 5+.
.NET Framework Remplacement compatible .NET Core / .NET 5+ Remarques AsymmetricAlgorithm.Create() RSA.Create() HashAlgorithm.Create() SHA1.Create() L’algorithme SHA-1 est considéré comme rompu. Envisagez d’utiliser un algorithme plus fort si possible. Consultez votre conseiller de sécurité pour obtenir des conseils supplémentaires. HMAC.Create() HMACSHA1() L’algorithme HMACSHA1 est déconseillé pour la plupart des applications modernes. Envisagez d’utiliser un algorithme plus fort si possible. Consultez votre conseiller de sécurité pour obtenir des conseils supplémentaires. KeyedHashAlgorithm.Create() HMACSHA1() L’algorithme HMACSHA1 est déconseillé pour la plupart des applications modernes. Envisagez d’utiliser un algorithme plus fort si possible. Consultez votre conseiller de sécurité pour obtenir des conseils supplémentaires. SymmetricAlgorithm.Create() Aes.Create()
Supprimer un avertissement
Si vous devez utiliser les API obsolètes, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.
Pour supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez l’avertissement.
// Disable the warning.
#pragma warning disable SYSLIB0007
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0007
Pour supprimer tous les SYSLIB0007 avertissements dans votre projet, ajoutez une <NoWarn> propriété à votre fichier projet.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0007</NoWarn>
</PropertyGroup>
</Project>
Pour plus d’informations, consultez Supprimer des avertissements.