Freigeben über


Kryptografie

Der Artikel enthält eine Übersicht über die Kryptografiefeatures, die winUI-Apps zur Verfügung stehen. Ausführliche Informationen zu bestimmten Vorgängen finden Sie in der Tabelle am Ende dieses Artikels.

Terminologie

Die folgende Terminologie wird häufig in Kryptografie- und Public Key-Infrastruktur (Public Key Infrastructure, PKI) verwendet.

Begriff Beschreibung
Verschlüsselung Der Prozess der Transformation von Daten mithilfe eines kryptografischen Algorithmus und Schlüssels. Die transformierten Daten können nur mithilfe desselben Algorithmus und desselben (symmetrischen) oder verwandten (öffentlichen) Schlüssels wiederhergestellt werden.
Entschlüsselung Der Prozess der Rückgabe verschlüsselter Daten an das ursprüngliche Formular.
Klartext Ursprünglich wurde auf eine unverschlüsselte Textnachricht verwiesen. Verweist aktuell auf unverschlüsselte Daten.
Geheimtext Ursprünglich wurde auf eine verschlüsselte und daher nicht lesbare Textnachricht verwiesen. Bezieht sich derzeit auf verschlüsselte Daten.
Hashing Der Vorgang zur Umwandlung von Daten mit variabler Länge in eine feste Länge, in der Regel einen kleineren Wert. Durch den Vergleich von Hashes können Sie eine angemessene Sicherheit erhalten, dass zwei oder mehr Daten gleich sind.
Signature Verschlüsselter Hash digitaler Daten, der in der Regel verwendet wird, um den Absender der Daten zu authentifizieren oder zu überprüfen, ob die Daten während der Übertragung nicht manipuliert wurden.
Algorithmus Eine schrittweise Vorgehensweise zum Verschlüsseln von Daten.
Schlüssel Eine zufällige oder pseudozufällige Zahl, die als Eingabe für einen kryptografischen Algorithmus zum Verschlüsseln und Entschlüsseln von Daten verwendet wird.
Symmetrische Schlüsselkryptografie Kryptografie, bei der Verschlüsselung und Entschlüsselung denselben Schlüssel verwenden. Dies wird auch als Kryptografie mit geheimem Schlüssel bezeichnet.
Kryptografie mit asymmetrischem Schlüssel Kryptografie, bei der Verschlüsselung und Entschlüsselung einen anderen, aber mathematisch verwandten Schlüssel verwenden. Dies wird auch als Kryptografie für öffentliche Schlüssel bezeichnet.
Codieren Der Prozess der Codierung digitaler Nachrichten, einschließlich Zertifikaten, für den Transport über ein Netzwerk.
Algorithmusanbieter Eine DLL, die einen kryptografischen Algorithmus implementiert.
Schlüsselspeicheranbieter Ein Container zum Speichern von Schlüsselmaterial. Derzeit können Schlüssel in Software, Smartcards oder dem vertrauenswürdigen Plattformmodul (TPM) gespeichert werden.
X.509-Zertifikat Ein digitales Dokument, das in der Regel von einer Zertifizierungsstelle ausgestellt wurde, um die Identität einer Person, eines Systems oder einer Entität für andere Interessierte zu überprüfen.

 

Namespaces

Die folgenden Namespaces sind für die Verwendung in Apps verfügbar.

Windows.Security.Cryptography

Enthält die CryptographicBuffer-Klasse und statische Methoden, die Folgendes ermöglichen:

  • Konvertieren von Daten in und aus Zeichenfolgen
  • Konvertieren von Daten in und aus Bytearrays
  • Codieren von Nachrichten für den Netzwerktransport
  • Decodieren von Nachrichten nach dem Transport

Windows.Security.Cryptography.Certificates

Enthält Klassen, Schnittstellen und Enumerationstypen, die Folgendes ermöglichen:

  • Erstellen einer Zertifikatanforderung
  • Installation einer Zertifikatsantwort
  • Importieren eines Zertifikats in einer PFX-Datei
  • Eigenschaften von Zertifikatanforderungen angeben und abrufen

Windows.Security.Cryptography.Core

Enthält Klassen und Enumerationstypen, die Folgendes ermöglichen:

  • Verschlüsseln und Entschlüsseln von Daten
  • Hashdaten
  • Signieren von Daten und Überprüfen von Signaturen
  • Erstellen, Importieren und Exportieren von Schlüsseln
  • Arbeiten mit Anbietern von asymmetrischen Schlüsselalgorithmus
  • Arbeiten mit anbietern von symmetrischen Schlüsselalgorithmus
  • Arbeiten mit Hashalgorithmusanbietern
  • Arbeiten mit Mac-Algorithmusanbietern (Machine Authentication Code)
  • Arbeiten mit Anbietern von Schlüsselableitungsalgorithmus

Windows.Security.Cryptography.DataProtection

Enthält Klassen, mit denen Sie folgende Aktionen ausführen können:

  • Asynchrones Verschlüsseln und Entschlüsseln statischer Daten
  • Datenströme asynchron verschlüsseln und entschlüsseln

Krypto- und PKI-Anwendungsfunktionen

Die vereinfachte Anwendungsprogrammierschnittstelle, die für Apps verfügbar ist, ermöglicht die folgenden Funktionen für kryptografische und public Key-Infrastruktur (PKI).

Kryptografieunterstützung

Sie können die folgenden kryptografischen Aufgaben ausführen. Weitere Informationen finden Sie im Windows.Security.Cryptography.Core-Namespace .

  • Erstellen symmetrischer Schlüssel
  • Ausführen der symmetrischen Verschlüsselung
  • Erstellen asymmetrischer Schlüssel
  • Asymmetrische Verschlüsselung durchführen
  • Ableiten kennwortbasierter Schlüssel
  • Erstellung von Nachrichtenauthentifizierungscodes (MACs)
  • Hashinhalt
  • Digitales Signieren von Inhalten

Das SDK bietet auch eine vereinfachte Schnittstelle für den kennwortbasierten Datenschutz. Sie können dies verwenden, um die folgenden Aufgaben auszuführen. Weitere Informationen finden Sie im Windows.Security.Cryptography.DataProtection-Namespace .

  • Asynchroner Schutz statischer Daten
  • Asynchroner Schutz eines Datenstroms

Codierungsunterstützung

Eine App kann kryptografische Daten für die Übertragung über ein Netzwerk codieren und Von einer Netzwerkquelle empfangene Daten decodieren. Weitere Informationen finden Sie unter den statischen Methoden, die im Windows.Security.Cryptography-Namespace verfügbar sind.

PKI-Unterstützung

Apps können die folgenden PKI-Aufgaben ausführen. Weitere Informationen finden Sie im Namespace "Windows.Security.Cryptography.Certificates ".

  • Erstellen eines Zertifikats
  • Erstellen eines selbstsignierten Zertifikats
  • Installieren einer Zertifikatantwort
  • Importieren eines Zertifikats im PFX-Format
  • Verwenden von Smartcardzertifikaten und Schlüsseln (sharedUserCertificates-Funktionen festgelegt)
  • Verwendung von Zertifikaten aus dem Zertifikatspeicher „MY“ des Benutzers (festgelegte sharedUserCertificates-Funktionen)

Darüber hinaus können Sie das Manifest verwenden, um die folgenden Aktionen auszuführen:

  • Angeben von vertrauenswürdigen Stammzertifikaten pro Anwendung
  • Festlegen von vertrauenswürdigen Zertifikaten für jeden Anwendungs-Peer
  • Deaktivieren der expliziten Vererbung von Systemvertrauen
  • Angeben der Zertifikatauswahlkriterien
    • Nur Hardwarezertifikate
    • Zertifikate, die durch eine bestimmte Menge von Ausstellern verbunden werden
    • Automatisches Auswählen eines Zertifikats aus dem Anwendungsspeicher

Detaillierte Artikel

Die folgenden Artikel enthalten weitere Details zu Sicherheitsszenarien:

Thema Beschreibung
Zertifikate In diesem Artikel wird die Verwendung von Zertifikaten in WinUI-Apps erläutert. Digitale Zertifikate werden in der Kryptografie für öffentliche Schlüssel verwendet, um einen öffentlichen Schlüssel an eine Person, einen Computer oder eine Organisation zu binden. Die gebundenen Identitäten werden am häufigsten verwendet, um eine Entität für eine andere zu authentifizieren. Beispielsweise werden Zertifikate häufig verwendet, um einen Webserver für einen Benutzer und einen Benutzer auf einem Webserver zu authentifizieren. Sie können Zertifikatanforderungen erstellen und ausgestellte Zertifikate installieren oder importieren. Sie können ein Zertifikat auch in einer Zertifikathierarchie registrieren.
Kryptografieschlüssel In diesem Artikel wird erläutert, wie Sie Standardschlüsselableitungsfunktionen verwenden, um Schlüssel abzuleiten und Inhalte mithilfe symmetrischer und asymmetrischer Schlüssel zu verschlüsseln.
Datenschutz In diesem Artikel wird erläutert, wie Sie die DataProtectionProvider-Klasse im Windows.Security.Cryptography.DataProtection-Namespace verwenden, um digitale Daten in einer WinUI-App zu verschlüsseln und zu entschlüsseln.
MACs, Hashes und Signaturen In diesem Artikel wird erläutert, wie Nachrichtenauthentifizierungscodes (MACs), Hashes und Signaturen in WinUI-Apps verwendet werden können, um Nachrichtenmanipulation zu erkennen.
Exporteinschränkungen für Kryptografie Verwenden Sie diese Informationen, um festzustellen, ob Ihre App Kryptografie auf eine Weise verwendet, die verhindern kann, dass sie im Microsoft Store aufgeführt wird.
Allgemeine Kryptografieaufgaben Diese Artikel enthalten Beispielcode für allgemeine WinUI-Kryptografieaufgaben, z. B. erstellen Zufällige Zahlen, Vergleichen von Puffern, Konvertieren zwischen Zeichenfolgen und Binären Daten, Kopieren in und aus Bytearrays sowie Codieren und Decodieren von Daten.