Delen via


Cryptography

Het artikel bevat een overzicht van de cryptografiefuncties die beschikbaar zijn voor WinUI-apps. Zie de tabel aan het einde van dit artikel voor gedetailleerde informatie over bepaalde taken.

Terminologie

De volgende terminologie wordt vaak gebruikt in cryptografie en openbare-sleutelinfrastructuur (PKI).

Termijn Beschrijving
Versleuteling Het proces van het transformeren van gegevens met behulp van een cryptografisch algoritme en sleutel. De getransformeerde gegevens kunnen alleen worden hersteld met hetzelfde algoritme en dezelfde (symmetrische) of gerelateerde (openbare) sleutel.
Decryptie Het proces van het retourneren van versleutelde gegevens naar de oorspronkelijke vorm.
Platte tekst Oorspronkelijk verwezen naar een niet-versleuteld tekstbericht. Verwijst momenteel naar niet-versleutelde gegevens.
Coderingstekst Oorspronkelijk verwezen naar een versleuteld en daarom onleesbaar tekstbericht. Verwijst momenteel naar versleutelde gegevens.
Hashing (het proces van hashen) Het proces van het converteren van gegevens met variabele lengte naar een vaste lengte, vaak een kleinere waarde. Door hashes te vergelijken, kunt u redelijke zekerheid krijgen dat twee of meer gegevens hetzelfde zijn.
Signature Versleutelde hash van digitale gegevens die doorgaans worden gebruikt om de afzender van de gegevens te verifiëren of te controleren of er tijdens de verzending niet met de gegevens is geknoeid.
Algoritme Een stapsgewijze procedure voor het versleutelen van gegevens.
Sleutel Een willekeurig of pseudorandomnummer dat wordt gebruikt als invoer voor een cryptografisch algoritme voor het versleutelen en ontsleutelen van gegevens.
Symmetrische sleutelcryptografie Cryptografie waarin versleuteling en ontsleuteling dezelfde sleutel gebruiken. Dit wordt ook wel cryptografie van geheime sleutels genoemd.
Cryptografie van asymmetrische sleutels Cryptografie waarin versleuteling en ontsleuteling een andere, maar wiskundige gerelateerde sleutel gebruiken. Dit wordt ook wel openbare-sleutelcryptografie genoemd.
Codering Het proces van het coderen van digitale berichten, inclusief certificaten, voor transport via een netwerk.
Algoritmeprovider Een DLL waarmee een cryptografisch algoritme wordt geïmplementeerd.
Sleutelopslagprovider Een container voor het opslaan van sleutelmateriaal. Op dit moment kunnen sleutels worden opgeslagen in software, smartcards of tpm (Trusted Platform Module).
X.509-certificaat Een digitaal document, meestal uitgegeven door een certificeringsinstantie, om de identiteit van een persoon, systeem of entiteit aan andere belanghebbenden te verifiëren.

 

Naamruimten

De volgende naamruimten zijn beschikbaar voor gebruik in apps.

Windows.Security.Cryptography

Bevat de CryptografischeBuffer-klasse en statische methoden waarmee u het volgende kunt doen:

  • Gegevens converteren naar en van tekenreeksen
  • Gegevens converteren naar en van bytematrices
  • Berichten coderen voor netwerktransport
  • Decodeer berichten na transport

Windows.Security.Cryptography.Certificates

Bevat klassen, interfaces en opsommingstypen waarmee u het volgende kunt doen:

  • Een certificaataanvraag maken
  • Een certificaatantwoord installeren
  • Een certificaat importeren in een PFX-bestand
  • Eigenschappen van certificaataanvragen specificeren en ophalen

Windows.Security.Cryptography.Core

Bevat klassen en opsommingstypen waarmee u het volgende kunt doen:

  • Gegevens versleutelen en ontsleutelen
  • Hashgegevens
  • Gegevens ondertekenen en handtekeningen verifiëren
  • Sleutels maken, importeren en exporteren
  • Werken met leveranciers van asymmetrische sleutelalgoritmen
  • Werken met aanbieders van symmetrische sleutelalgoritmen
  • Werken met hash-algoritmeproviders
  • Werken met MAC-algoritmeproviders (Machine Authentication Code)
  • Werken met providers van belangrijke afleidingsalgoritmen

Windows.Security.Cryptography.DataProtection

Bevat klassen waarmee u het volgende kunt doen:

  • Statische gegevens asynchroon versleutelen en ontsleutelen
  • Gegevensstromen asynchroon versleutelen en ontsleutelen

Mogelijkheden voor crypto- en PKI-toepassingen

De vereenvoudigde programmeerinterface voor toepassingen die beschikbaar is voor apps, maakt de volgende mogelijkheden voor cryptografische en openbare-sleutelinfrastructuur (PKI) mogelijk.

Ondersteuning voor cryptografie

U kunt de volgende cryptografische taken uitvoeren. Zie de naamruimte Windows.Security.Cryptography.Core voor meer informatie.

  • Symmetrische sleutels maken
  • Symmetrische versleuteling uitvoeren
  • Asymmetrische sleutels maken
  • Asymmetrische versleuteling uitvoeren
  • Sleutels op basis van wachtwoorden afleiden
  • Berichtverificatiecodes maken (MACs)
  • Hash-inhoud
  • Inhoud digitaal ondertekenen

De SDK biedt ook een vereenvoudigde interface voor gegevensbeveiliging op basis van wachtwoorden. U kunt dit gebruiken om de volgende taken uit te voeren. Zie de naamruimte Windows.Security.Cryptography.DataProtection voor meer informatie.

  • Asynchrone beveiliging van statische gegevens
  • Asynchrone beveiliging van een gegevensstroom

Ondersteuning voor codering

Een app kan cryptografische gegevens coderen voor verzending via een netwerk en gegevens decoderen die zijn ontvangen van een netwerkbron. Zie de statische methoden die beschikbaar zijn in de naamruimte Windows.Security.Cryptography voor meer informatie.

PKI-ondersteuning

Apps kunnen de volgende PKI-taken uitvoeren. Zie de naamruimte Windows.Security.Cryptography.Certificates voor meer informatie.

  • Een certificaat maken
  • Een zelfondertekend certificaat maken
  • Een certificaatantwoord installeren
  • Een certificaat importeren in PFX-indeling
  • Smartcardcertificaten en sleutels gebruiken (sharedUserCertificates-mogelijkheden set)
  • Gebruik certificaten uit de MY-opslag van de gebruiker (eigenschappenreeks sharedUserCertificates)

Daarnaast kunt u het manifest gebruiken om de volgende acties uit te voeren:

  • Vertrouwde basiscertificaten per toepassing opgeven
  • Vertrouwde certificaten per toepassingspeer opgeven
  • Overname van systeemvertrouwen expliciet uitschakelen
  • De certificaatselectiecriteria opgeven
    • Alleen hardwarecertificaten
    • Certificaten die via een bepaald set uitgevers worden gekoppeld
    • Automatisch een certificaat selecteren in het toepassingsarchief

Gedetailleerde artikelen

De volgende artikelen bevatten meer informatie over beveiligingsscenario's:

Onderwerp Beschrijving
Certificates In dit artikel wordt het gebruik van certificaten in WinUI-apps besproken. Digitale certificaten worden gebruikt in openbare-sleutelcryptografie om een openbare sleutel te binden aan een persoon, computer of organisatie. De afhankelijke identiteiten worden meestal gebruikt om de ene entiteit te verifiëren bij een andere. Certificaten worden bijvoorbeeld vaak gebruikt voor het verifiëren van een webserver voor een gebruiker en een gebruiker voor een webserver. U kunt certificaataanvragen maken en uitgegeven certificaten installeren of importeren. U kunt ook een certificaat inschrijven in een certificaathiërarchie.
Cryptografische sleutels In dit artikel wordt beschreven hoe u standaardfuncties voor sleutelderivatie gebruikt om sleutels af te leiden en hoe u inhoud versleutelt met behulp van symmetrische en asymmetrische sleutels.
Gegevensbeveiliging In dit artikel wordt uitgelegd hoe u de klasse DataProtectionProvider gebruikt in de naamruimte Windows.Security.Cryptography.DataProtection om digitale gegevens in een WinUI-app te versleutelen en ontsleutelen.
MACs, hashes en handtekeningen In dit artikel wordt beschreven hoe berichtenverificatiecodes (MACs), hashes en handtekeningen kunnen worden gebruikt in WinUI-apps voor het detecteren van manipulatie van berichten.
Exportbeperkingen voor cryptografie Gebruik deze informatie om te bepalen of uw app cryptografie gebruikt op een manier die kan voorkomen dat deze wordt vermeld in de Microsoft Store.
Algemene cryptografietaken Deze artikelen bevatten voorbeeldcode voor algemene WinUI-cryptografietaken, zoals het maken van willekeurige getallen, het vergelijken van buffers, het converteren tussen tekenreeksen en binaire gegevens, het kopiëren van en naar bytematrices, en het coderen en decoderen van gegevens.