Freigeben über


Das Kryptografiemodell in .NET Framework

Aktualisiert: November 2007

.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 Kryptografiemodell 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:

  • 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.

  • Implementierung einer Algorithmusklasse, die von einer 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 kryptografischen 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.

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.

Siehe auch

Konzepte

Übersicht über Kryptografie

Weitere Ressourcen

Kryptografische Aufgaben

Kryptografische Dienste