Das Kryptografiemodell in .NET Framework

.NET Framework enthält viele Implementierungen kryptografischer Standardalgorithmen. Die Verwendung dieser Algorithmen ist einfach, und die Standardeigenschaften sind auf größtmögliche Sicherheit eingestellt. Außerdem ist das .NET Framework-Kryptografiemodell mit Objektvererbung, Streamdesign und Konfiguration in hohem Maß erweiterbar.

Objektvererbung

Durch das .NET Framework-Sicherheitssystem wird ein erweiterbares Muster abgeleiteter Klassenvererbung mit folgender Hierarchie implementiert:

Mit diesem Muster abgeleiteter Klassen ist es einfach, einen neuen Algorithmus oder eine neue Implementierung eines vorhandenen Algorithmus hinzuzufügen. Wenn beispielsweise ein neuer Algorithmus mit öffentlichem Schlüssel erstellt wird, erbt dieser von der AsymmetricAlgorithm-Klasse. Um eine neue Implementierung eines bestimmten Algorithmus zu erstellen, wird eine nicht abstrakte abgeleitete Klasse dieses Algorithmus erstellt.

Implementierung von Algorithmen in .NET Framework

Als Beispiel für die verschiedenen für einen Algorithmus verfügbaren Implementierungen können symmetrische Algorithmen genannt werden. Die Basis aller symmetrischen Algorithmen ist der SymmetricAlgorithm, der durch die folgenden Algorithmen geerbt wird:

  1. Aes

  2. DES

  3. RC2

  4. Rijndael

  5. TripleDES

Aes wird von zwei Klassen geerbt: AesCryptoServiceProvider und AesManaged. Die AesCryptoServiceProvider-Klasse ist ein Wrapper um die Implementierung der Windows-Kryptografie API (CAPI) von Aes, während die AesManaged-Klasse vollständig in verwaltetem Code geschrieben wird. Zudem ist neben den verwalteten und CAPI-Implementierungen ein dritter Typ von Implementierung verfügbar, Cryptography Next Generation (CNG). Ein Beispiel für einen CNG-Algorithmus ist ECDiffieHellmanCng. CNG-Algorithmen sind unter Windows Vista und höher verfügbar.

Sie können sich für die Implementierung entscheiden, die Ihnen am besten entspricht. Die verwalteten Implementierungen sind auf allen Plattformen verfügbar, die .NET Framework unterstützen. Die CAPI-Implementierungen auf älteren Betriebssystemen verfügbar und werden nicht mehr weiterentwickelt. CNG bildet die neueste Implementierung, Neuentwicklungen finden weiter statt. Allerdings sind verwaltete Implementierungen nicht nach den Federal Information Processing Standards (FIPS) zertifiziert und möglicherweise langsamer als die Wrapperklassen.

Streamdesign

Die Common Language Runtime verwendet einen streamorientierten Entwurf für die Implementierung symmetrischer und Hashalgorithmen. Die Basis dieses Entwurfs bildet die CryptoStream-Klasse, die sich von der Stream-Klasse ableitet. Streambasierte kryptografische Objekte unterstützen eine einzelne Standardschnittstelle (CryptoStream) für die Behandlung des Objektteils, das für den Datentransfer zuständig ist. Da alle Objekte auf einer Standardschnittstelle aufbauen, lassen sich mehrere Objekte (z. B. ein Hashobjekt und ein nachfolgendes Verschlüsselungsobjekt) verketten. Außerdem können mehrere Datenoperationen ausgeführt werden, ohne dass dafür ein Zwischenspeicher erforderlich wäre. Das Streamingmodell ermöglicht darüber hinaus auch das Erstellen von Objekten aus kleineren Objekten. So kann beispielsweise eine Kombination aus Verschlüsselungs- und Hashalgorithmus als einzelnes Streamobjekt betrachtet werden, obwohl dieses Objekt möglicherweise aus mehreren Streamobjekten erstellt wurde.

Kryptografische Konfiguration

Durch die kryptografische Konfiguration wird es möglich, die Kryptografieklassen von .NET Framework zu erweitern, da eine bestimmte Implementierung eines Algorithmus zu einem Algorithmusnamen aufgelöst werden kann. Sie können eine eigene Hardware- oder Softwareimplementierung eines Algorithmus hinzufügen und die Implementierung einem Algorithmusnamen Ihrer Wahl zuordnen. Wenn der Algorithmus in der Konfigurationsdatei nicht definiert wird, werden die Standardeinstellungen verwendet. Weitere Informationen zur kryptografischen Konfiguration finden Sie unter Konfigurieren kryptografischer Klassen.

Auswählen eines Algorithmus

Sie können aus verschiedenen Gründen einen Algorithmus auswählen: zum Beispiel aus Gründen der Datenintegrität, des Datenschutzes oder zum Generieren eines Schlüssels. Symmetrische und Hashalgorithmen sind zum Schützen der Datenintegrität (Schutz von Änderungen) oder für den Datenschutz (Schutz vor Anzeige) vorgesehen. Hashalgorithmen werden hauptsächlich für die Datenintegrität verwendet.

Im Folgenden finden Sie eine Liste empfohlener Algorithmen nach Anwendung:

Siehe auch

Konzepte

Kryptografische Dienste

Kryptografische Dienste

Weitere Ressourcen

Kryptografische Aufgaben

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Juli 2010

Thema erweitert.

Informationsergänzung.