Dela via


Kryptografi

Artikeln innehåller en översikt över de kryptografifunktioner som är tillgängliga för WinUI-appar. Detaljerad information om vissa uppgifter finns i tabellen i slutet av den här artikeln.

Terminologi

Följande terminologi används ofta i kryptografi och offentlig nyckelinfrastruktur (PKI).

Begrepp Beskrivning
Kryptering Processen att transformera data med hjälp av en kryptografisk algoritm och nyckel. Transformerade data kan bara återställas med samma algoritm och samma (symmetriska) eller relaterade (offentliga) nyckel.
Dekryptering Processen att returnera krypterade data till sitt ursprungliga formulär.
Klartext Ursprungligen refererade till ett okrypterat textmeddelande. Refererar för närvarande till okrypterade data.
Kryptotext Ursprungligen refererade till ett krypterat och därför oläsligt textmeddelande. Syftar för närvarande på vilka krypterade data som helst.
Hashing Processen att konvertera data med variabel längd till en fast längd, vanligtvis mindre, värde. Genom att jämföra hashvärden kan du få en rimlig försäkran om att två eller flera data är desamma.
Signature Krypterad hash för digitala data som vanligtvis används för att autentisera avsändaren av data eller kontrollera att data inte manipulerades under överföringen.
Algoritm En stegvis procedur för att kryptera data.
Nyckel Ett slumptal eller pseudorandomnummer som används som indata till en kryptografisk algoritm för att kryptera och dekryptera data.
Kryptografi för symmetrisk nyckel Kryptografi där kryptering och dekryptering använder samma nyckel. Detta kallas även hemlig nyckelkryptografi.
Asymmetrisk nyckelkryptografi Kryptografi där kryptering och dekryptering använder en annan men matematiskt relaterad nyckel. Detta kallas även kryptografi för offentliga nycklar.
Kodning Processen att koda digitala meddelanden, inklusive certifikat, för transport över ett nätverk.
Algoritmleverantör En DLL som implementerar en kryptografisk algoritm.
Nyckellagringsprovider En container för lagring av nyckelmaterial. För närvarande kan nycklar lagras i programvara, smartkort eller den betrodda plattformsmodulen (TPM).
X.509-certifikat Ett digitalt dokument, som vanligtvis utfärdas av en certifikatutfärdare, för att verifiera identiteten för en enskild person, ett system eller en enhet till andra berörda parter.

 

Namnområden

Följande namnområden är tillgängliga för användning i appar.

Windows.Security.Cryptography

Innehåller klassen CryptographicBuffer och statiska metoder som gör att du kan:

  • Konvertera data till och från strängar
  • Konvertera data till och från bytematriser
  • Koda meddelanden för nätverkstransport
  • Avkoda meddelanden efter transport

Windows.Security.Cryptography.Certificates

Innehåller klasser, gränssnitt och uppräkningstyper som gör att du kan:

  • Skapa en certifikatbegäran
  • Installera ett certifikatsvar
  • Importera ett certifikat i en PFX-fil
  • Ange och hämta egenskaper för certifikatbegäran

Windows.Security.Cryptography.Core

Innehåller klasser och uppräkningstyper som gör att du kan:

  • Kryptera och dekryptera data
  • Hashdata
  • Signera data och verifiera signaturer
  • Skapa, importera och exportera nycklar
  • Arbeta med asymmetriska nyckelalgoritmprovidrar
  • Arbeta med symmetriska nyckelalgoritmprovidrar
  • Arbeta med hash-algoritmprovidrar
  • Arbeta med algoritmprovidrar för datorautentiseringskod (MAC)
  • Arbeta med algoritmprovidrar för nyckelhärledning

Windows.Security.Cryptography.DataProtection

Innehåller klasser som gör att du kan:

  • Asynkront kryptera och dekryptera statiska data
  • Asynkront kryptera och dekryptera dataströmmar

Funktioner för krypto- och PKI-program

Det förenklade programmeringsgränssnittet för appar möjliggör följande PKI-funktioner (cryptographic and public key infrastructure).

Stöd för kryptografi

Du kan utföra följande kryptografiska uppgifter. Mer information finns i namnområdet Windows.Security.Cryptography.Core .

  • Skapa symmetriska nycklar
  • Utföra symmetrisk kryptering
  • Skapa asymmetriska nycklar
  • Utföra asymmetrisk kryptering
  • Härled lösenordsbaserade nycklar
  • Skapa autentiseringskoder för meddelanden (MACs)
  • Hash-innehåll
  • Signera innehåll digitalt

SDK:t tillhandahåller också ett förenklat gränssnitt för lösenordsbaserat dataskydd. Du kan använda detta för att utföra följande uppgifter. Mer information finns i namnområdet Windows.Security.Cryptography.DataProtection .

  • Asynkront skydd av statiska data
  • Asynkront skydd av en dataström

Kodningsstöd

En app kan koda kryptografiska data för överföring över ett nätverk och avkoda data som tas emot från en nätverkskälla. Mer information finns i de statiska metoder som är tillgängliga i namnområdet Windows.Security.Cryptography .

PKI-stöd

Appar kan utföra följande PKI-uppgifter. Mer information finns i namnområdet Windows.Security.Cryptography.Certificates .

  • Skapa ett certifikat
  • Skapa ett självsignerat certifikat
  • Installera ett certifikatsvar
  • Importera ett certifikat i PFX-format
  • Använda certifikat och nycklar för smartkort (sharedUserCertificates-funktioner)
  • Använd certifikat från användarens MY Store (sharedUserCertificates-kapabiliteter)

Dessutom kan du använda manifestet för att utföra följande åtgärder:

  • Ange betrodda rotcertifikat per applikation
  • Specificera peer-betrodda certifikat för varje program
  • Inaktivera uttryckligen arv från systemets förtroendekedja
  • Ange kriterier för val av certifikat
    • Endast maskinvarucertifikat
    • Certifikat som kedjas via en angiven uppsättning utfärdare
    • Välj automatiskt ett certifikat från programarkivet

Detaljerade artiklar

Följande artiklar innehåller mer information om säkerhetsscenarier:

Ämne Beskrivning
Certificates I den här artikeln beskrivs användningen av certifikat i WinUI-appar. Digitala certifikat används i kryptering med offentliga nycklar för att binda en offentlig nyckel till en person, dator eller organisation. De bundna identiteterna används oftast för att autentisera en entitet till en annan. Certifikat används till exempel ofta för att autentisera en webbserver till en användare och en användare till en webbserver. Du kan skapa certifikatbegäranden och installera eller importera utfärdade certifikat. Du kan också registrera ett certifikat i en certifikathierarki.
Krypteringsnycklar Den här artikeln visar hur du använder standardfunktioner för nyckelhärledning för att härleda nycklar och hur du krypterar innehåll med symmetriska och asymmetriska nycklar.
Dataskydd Den här artikeln beskriver hur du använder klassen DataProtectionProvider i namnområdet Windows.Security.Cryptography.DataProtection för att kryptera och dekryptera digitala data i en WinUI-app.
MACs, hashvärden och signaturer I den här artikeln beskrivs hur koder för meddelandeautentisering (MAC), hashar och signaturer kan användas i WinUI-appar för att identifiera manipulering av meddelanden.
Exportrestriktioner för kryptografi Använd den här informationen för att avgöra om din app använder kryptografi på ett sätt som kan förhindra att den visas i Microsoft Store.
Vanliga kryptografiuppgifter De här artiklarna innehåller exempelkod för vanliga kryptografiuppgifter i WinUI, till exempel att skapa slumpmässiga tal, jämföra buffertar, konvertera mellan strängar och binära data, kopiera till och från bytematriser samt koda och avkoda data.