Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

.NET Framework Cryptography Model

 

.NET Framework stellt Implementierungen von vielen kryptografischen Standardalgorithmen bereit.  Diese Algorithmen sind einfach zu verwenden und die sichersten möglichen Standardeigenschaften.  Darüber hinaus ist das .NET Framework-Kryptografiemodell mit Objektvererbung, Streamdesign und Konfiguration äußerst erweiterbar.  

Das Sicherheitssystem von .NET Framework implementiert ein erweiterbares Muster der abgeleiteten Klassenvererbung.  Die Hierarchie lautet wie folgt:  

Wird dieses Muster abgeleiteter Klassen verwendet, ist es einfach, einen neuen Algorithmus oder eine neue Implementierung eines vorhandenen Algorithmus hinzuzufügen.  Möchten Sie z. B. einen neuen Algorithmus für einen öffentlichem Schlüssel erstellen, würden Sie von der AsymmetricAlgorithm-Klasse erben.  Um eine neue Implementierung eines bestimmten Algorithmus zu erstellen, würden Sie eine nicht abstrakte abgeleitete Klasse dieses Algorithmus erstellen.  

Als ein Beispiel für die verschiedenen Implementierungen eines Algorithmus können Sie sich symmetrische Algorithmen ansehen.  Die Basis für alle symmetrischen Algorithmen ist die SymmetricAlgorithm-Klasse, die von den 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 ist.  Außerdem gibt es einen dritten Typ von Implementierung ,Cryptography Next Generation (CNG), zusätzlich zu den verwalteten und den CAPI-Implementierungen.  Ein Beispiel für einen CNG-Algorithmus ist ECDiffieHellmanCng.  CNG-Algorithmen sind ab Windows Vista verfügbar.  

Sie haben die Wahl, welche Implementierung für Sie am besten geeignet ist.  Die verwalteten Implementierungen sind auf allen Plattformen verfügbar, die .NET Framework unterstützen.  Die CAPI-Implementierungen sind unter älteren Betriebssystemen verfügbar und werden nicht mehr entwickelt.  CNG ist die neueste Implementierung, in der die neue Entwicklungen erfolgen.  Die verwalteten Implementierungen sind nicht durch die FIPS (Federal Information Processing Standards) zertifiziert und möglicherweise langsamer als die Wrapperklassen.  

Die Common Language Runtime verwendet ein streamorientiertes Design für die Implementierung von symmetrischen Algorithmen und Hashalgorithmen.  Der Kern dieses Designs ist die CryptoStream-Klasse, die aus der Stream-Klasse abgeleitet ist.  Streambasierte kryptografische Objekte unterstützen eine einzelne Standardschnittstelle (CryptoStream) für die Verarbeitung des Datenübertragungsanteils des jeweiligen Objekts.  Da alle Objekte auf Basis einer Standardschnittstelle erstellt werden, können Sie mehrere Objekte verketten (z. B. ein Hashobjekt, auf das ein Verschlüsselungsobjekt folgt), und Sie können mehrere Vorgänge für die Daten ausführen, ohne eine temporäre Speicherung für die Daten zu benötigen.  Das Streamingmodell ermöglicht es Ihnen auch, Objekte aus kleineren Objekten zu erstellen.  Beispielsweise kann ein kombinierter Verschlüsselungs- und Hashalgorithmus als einzelnes Streamobjekt (Datenstromobjekt) angezeigt werden, obwohl dieses Objekt möglicherweise aus einem Satz von Streamobjekten erstellt wurde.  

Mit einer kryptografischen Konfiguration können Sie eine bestimmte Implementierung eines Algorithmus zu einem Algorithmusnamen auflösen, wodurch Erweiterbarkeit der Kryptografieklassen von .NET Framework ermöglicht wird.  Sie können Ihre eigene Hardware- oder Softwareimplementierung eines Algorithmus hinzufügen und die Implementierung dem von Ihnen gewählten Algorithmusnamen zuordnen.  Ist in der Konfigurationsdatei kein Algorithmus angegeben, werden die Standardeinstellungen verwendet.  Weitere Informationen zu einer kryptografischen Konfiguration finden Sie unter Konfigurieren kryptografischer Klassen.  

Sie können einen Algorithmus für unterschiedliche Zwecke wählen: z. B. für Datenintegrität, für Datenschutz oder zum Generieren eines Schlüssels.  Symmetrische und Hashalgorithmen sind dazu vorgesehen, Daten entweder aus Integritätsgründen (Schutz vor Änderungen) oder aus Datenschutzgründen (Schutz vor Anzeigen) zu schützen.  Hashalgorithmen werden hauptsächlich für die Datenintegrität verwendet.  

Es folgt eine Liste empfohlener Algorithmen nach Anwendung:

Anzeigen: