Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Modèle de chiffrement de .NET Framework

 

.NET Framework fournit des implémentations de nombreux algorithmes de chiffrement standard.  Ces algorithmes sont faciles à utiliser et leurs propriétés par défaut sont les plus sûres possible.  En outre, le modèle de chiffrement .NET Framework de l'héritage d'objets, de la conception orientée flux et de la configuration, est très extensible.  

Le système de sécurité .NET Framework implémente un modèle extensible d'héritage de classes dérivées.  Cette hiérarchie se présente comme suit :  

À l'aide de ce modèle de classes dérivées, il est facile d'ajouter un nouvel algorithme ou la nouvelle implémentation d'un algorithme existant.  Par exemple, pour créer un algorithme de clé publique, vous devez hériter de la classe AsymmetricAlgorithm.  Pour créer une nouvelle implémentation d'un algorithme spécifique, vous devez créer une classe non abstraite dérivée de cet algorithme.  

Prenez comme exemple d'implémentation les algorithmes symétriques.  La base de tous les algorithmes symétriques est SymmetricAlgorithm, qui est hérité par les algorithmes suivants :  

  1. Aes

  2. DES

  3. RC2

  4. Rijndael

  5. TripleDES

Aes est hérité par deux classes : AesCryptoServiceProvider et AesManaged.  La classe AesCryptoServiceProvider est un wrapper pour l'implémentation de l'API de chiffrement Windows (CAPI) d'AES. La classe AesManaged est écrite entièrement en code managé.  Il existe également l'implémentation Cryptography Next Generation (CNG), en plus des implémentations CAPI et managées.   ECDiffieHellmanCng est un exemple d'algorithme CNG.  Les algorithmes CNG sont disponibles sur Windows Vista et versions ultérieures.  

Vous pouvez choisir l'implémentation qui vous convient le mieux.  Les implémentations managées sont disponibles sur toutes les plateformes qui prennent en charge .NET Framework.  Les implémentations CAPI sont disponibles sur les anciens systèmes d'exploitation et ne sont plus développées.  L'implémentation CNG est la plus récente et c'est elle qui fait l'objet des derniers développements en date.  Toutefois, les implémentations managées ne sont pas certifiées par les normes FIPS et peuvent être plus lentes que les classes wrapper.  

Le Common Language Runtime utilise une conception orientée flux pour implémenter les algorithmes symétriques et les algorithmes de hachage.  La base de cette conception est la classe CryptoStream qui dérive de la classe Stream.  Les objets de chiffrement basés sur les flux prennent en charge une seule interface standard (CryptoStream) pour la gestion du transfert des données de l'objet.  Comme tous les objets sont créés à l'aide d'une interface standard, vous pouvez chaîner plusieurs objets (par exemple, un objet de hachage suivi d'un objet de chiffrement), ainsi qu'effectuer plusieurs opérations sur les données sans avoir besoin de stockage intermédiaire.  Le modèle basé sur les flux vous permet également de créer des objets à partir d'objets plus petits.  Par exemple, un algorithme combinant hachage et chiffrement peut être affiché comme un objet de flux unique, même si cet objet a été créé à partir d'un ensemble d'objets de flux.  

La configuration du chiffrement vous permet de résoudre une implémentation d'un algorithme en un nom d'algorithme. De cette façon, les classes de chiffrement .NET Framework peuvent être étendues.  Vous pouvez ajouter votre propre implémentation logicielle ou matérielle d'un algorithme, puis la mapper vers le nom d'algorithme de votre choix.  Si un algorithme n'est pas spécifié dans le fichier de configuration, les paramètres par défaut sont utilisés.  Pour plus d'informations sur la configuration du chiffrement, consultez Configuration de classes de chiffrement.  

Vous pouvez sélectionner un algorithme pour différentes raisons. Par exemple, pour l'intégrité ou la confidentialité des données, ou pour générer une clé.  Les algorithmes symétriques et les algorithmes de hachage sont conçus pour protéger les données pour des raisons d'intégrité (empêcher leur modification) ou pour des raisons de confidentialité (empêcher leur affichage).  Les algorithmes de hachage sont principalement utilisés pour l'intégrité des données.  

Voici une liste des algorithmes recommandés pour chaque application :

Afficher: