Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Delade certifikatarkiv
WinUI-appar använder den nya isolationistiska programmodellen som introducerades i Windows 8. I den här modellen körs appar i en lågnivåkonstruktion av operativsystemet, som kallas en appcontainer, som förbjuder appen från att komma åt resurser eller filer utanför sig själv om det inte uttryckligen tillåts att göra det. I följande avsnitt beskrivs de konsekvenser detta har för PKI (Public Key Infrastructure).
Certifikatlagring per app-container
Certifikat som är avsedda att användas i en specifik app-container lagras per användare och per app-container. En app som körs i en appcontainer har skrivåtkomst till endast sin egen certifikatlagring. Om programmet lägger till certifikat i något av dess lager kan dessa certifikat inte läsas av andra appar. Om en app avinstalleras tas även eventuella certifikat som är specifika för den bort. En app har också läsbehörighet till andra lokala datorcertifikatarkiv än my- och REQUEST-arkivet.
Cache
Varje appcontainer har en isolerad cache där den kan lagra utfärdarcertifikat som behövs för validering, listor över återkallade certifikat (CRL) och OCSP-svar (Online Certificate Status Protocol).
Delade certifikat och nycklar
När ett smartkort infogas i en läsare sprids certifikaten och nycklarna på kortet till användarens MY Store där de kan delas av alla program med fullständigt förtroende som användaren kör. Som standard har dock appcontainrar inte åtkomst till min butik per användare.
För att lösa det här problemet och möjliggöra för grupper av principaler att få åtkomst till grupper av resurser stöder appcontainer-isoleringsmodellen konceptet med funktionaliteter. En funktion gör att en appcontainerprocess kan komma åt en specifik resurs. Funktionen sharedUserCertificates ger en appcontainer läsbehörighet till certifikaten och nycklarna som finns i användarens MY Store och Smart Card Trusted Roots Store. Funktionen beviljar inte läsbehörighet till user REQUEST store.
Du anger funktionen sharedUserCertificates i manifestet enligt följande exempel.
<Capabilities>
<Capability Name="sharedUserCertificates" />
</Capabilities>
Certifikatfält
Certifikatstandarden för den offentliga X.509-nyckeln har reviderats över tid. Varje efterföljande version av datastrukturen har bevarat fälten som fanns i de tidigare versionerna och lagt till fler, som du ser i följande bild.
Vissa av dessa fält och tillägg kan anges direkt när du använder klassen CertificateRequestProperties för att skapa en certifikatbegäran. De flesta kan inte. Dessa fält kan fyllas i av den utfärdande myndigheten eller lämnas tomma. Mer information om fälten finns i följande avsnitt:
Fält i version 1
| Fält | Beskrivning |
|---|---|
| Utgåva | Anger versionsnumret för det kodade certifikatet. För närvarande är de möjliga värdena för det här fältet 0, 1 eller 2. |
| Serienummer | Innehåller ett positivt, unikt heltal som tilldelats certifikatutfärdare (CA) till certifikatet. |
| Signatur algoritm | Innehåller en objektidentifierare (OID) som anger den algoritm som används av certifikatutfärdaren för att signera certifikatet. Till exempel anger 1.2.840.113549.1.1.5 en SHA-1-hashalgoritm kombinerad med RSA-krypteringsalgoritmen från RSA Laboratories. |
| Utfärdare | Innehåller det unika X.500-namnet (DN) för certifikatutfärdare som skapade och signerade certifikatet. |
| Giltighet | Anger det tidsintervall under vilket certifikatet är giltigt. Datum till slutet av 2049 använder formatet Coordinated Universal Time (Greenwich Mean Time) (yymmddhhmmssz). Datum som börjar med 1 januari 2050 använder det generaliserade tidsformatet (ååååmmddhhmmssz). |
| Subjekt | Innehåller ett unikt X.500-namn för entiteten som är associerad med den offentliga nyckeln i certifikatet. |
| Offentlig nyckel | Innehåller den offentliga nyckeln och tillhörande algoritminformation. |
Fält i version 2
Ett X.509 version 2-certifikat innehåller de grundläggande fälten som definierats i version 1 och lägger till följande fält.
| Fält | Beskrivning |
|---|---|
| Utfärdarens unika identifierare | Innehåller ett unikt värde som kan användas för att göra X.500-namnet på certifikatmottagaren entydigt när det återanvänds av olika entiteter över tid. |
| Unik identifierare för ämne | Innehåller ett unikt värde som kan användas för att göra X.500-namnet på certifikatets ämne entydigt när det återanvänds av olika entiteter över tid. |
Version 3-tillägg
Ett X.509 version 3-certifikat innehåller fälten som definierats i version 1 och version 2 och lägger till certifikattillägg.
| Fält | Beskrivning |
|---|---|
| Myndighetsnyckelidentifierare | Identifierar den offentliga certifikatutfärdarnyckeln (CA) som motsvarar den privata certifikatutfärdarnyckel som används för att signera certifikatet. |
| Grundläggande begränsningar | Anger om entiteten kan användas som certifikatutfärdare och i så fall antalet underordnade certifikatutfärdare som kan finnas under den i certifikatkedjan. |
| Certifikatprinciper | Anger de principer under vilka certifikatet har utfärdats och de syften för vilka det kan användas. |
| CRL-distributionsplatser | Innehåller URI:n för listan över återkallade bascertifikat (CRL). |
| Förbättrad nyckelanvändning | Anger hur den offentliga nyckeln i certifikatet kan användas. |
| Alternativ namn för utfärdare | Anger ett eller flera alternativa namnformulär för utfärdaren av certifikatbegäran. |
| Nyckelanvändning | Anger begränsningar för de åtgärder som kan utföras av den offentliga nyckeln i certifikatet. |
| Namnbegränsningar | Anger det namnområde inom vilket alla ämnesnamn i en certifikathierarki måste finnas. Tillägget används endast i ett CA-certifikat. |
| Principbegränsningar | Begränsar sökvägsvalidering genom att förbjuda principmappning eller genom att kräva att varje certifikat i hierarkin innehåller en acceptabel principidentifierare. Tillägget används endast i ett CA-certifikat. |
| Principmappningar | Anger principerna i en underordnad certifikatutfärdare som motsvarar principer i den utfärdande certifikatutfärdare. |
| Användningsperiod för privat nyckel | Anger en annan giltighetsperiod för den privata nyckeln än för certifikatet som den privata nyckeln är associerad med. |
| Alternativt ämnesnamn | Anger ett eller flera alternativa namnformulär för certifikatbegärans ämne. Exempel på alternativa formulär är e-postadresser, DNS-namn, IP-adresser och URI:er. |
| Attribut för ämnesregister | Förmedlar identifieringsattribut, till exempel certifikatets nationalitet. Tilläggsvärdet är en sekvens med OID-värdepar. |
| Nyckelidentifierare för subjekt | Skiljer mellan flera offentliga nycklar som innehas av certifikatmottagaren. Tilläggsvärdet är vanligtvis en SHA-1-hash för nyckeln. |
Windows developer