Das Kryptographiemodell in .NET Framework

.NET Framework enthält viele Implementierungen kryptographischer Standardalgorithmen. Die Verwendung dieser Algorithmen ist einfach, und die Standardeigenschaften sind auf größtmögliche Sicherheit eingestellt. Außerdem ist das Kryptographiemodell von .NET Framework 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:

  • Die Algorithmustypklasse, z. B. SymmetricAlgorithm oder HashAlgorithm. Diese Ebene ist abstrakt.
  • Algorithmusklasse, die von der Algorithmustypklasse erbt, z. B. RC2 oder SHA1. Diese Ebene ist abstrakt.
  • Die Implementierung einer Algorithmusklasse, die von der Algorithmusklasse erbt, z. B. RC2CryptoServiceProvider oder SHA1Managed. Diese Ebene ist voll 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.

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. Alle streambasierten kryptographischen Objekte unterstützen für die Behandlung des Objektteils, das für den Datentransfer zuständig ist, eine einzelne Standardschnittstelle (CryptoStream). 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 die Erstellung von Objekten aus kleineren Objekten. So kann beispielsweise eine Kombination aus Verschlüsselungs- und Hashalgorithmus als einzelnes Streamobjekt betrachtet werden, obwohl dieses Objekt vielleicht aus mehreren Streamobjekten erstellt wurde.

Kryptographische Konfiguration

Durch die kryptographische Konfiguration wird es möglich, die Kryptographieklassen 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 kryptographischen Konfiguration finden Sie unter Konfigurieren kryptographischer Klassen.

Siehe auch

Übersicht über Kryptographie | Kryptographische Aufgaben | Kryptographische Dienste