Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Gedeelde certificaatarchieven
WinUI-apps maken gebruik van het nieuwe isolatiemodel dat is geïntroduceerd in Windows 8. In dit model worden apps uitgevoerd in een besturingssysteemconstructie op laag niveau, een app-container genoemd, waarmee de app geen toegang heeft tot resources of bestanden buiten zichzelf, tenzij dit expliciet is toegestaan. In de volgende secties worden de gevolgen beschreven die dit heeft voor de openbare-sleutelinfrastructuur (PKI).
Certificaatopslag per app-container
Certificaten die zijn bedoeld voor gebruik in een specifieke app-container, worden per gebruiker, per app-containerlocatie opgeslagen. Een app die wordt uitgevoerd in een app-container heeft schrijftoegang tot alleen de eigen certificaatopslag. Als de toepassing certificaten toevoegt aan een van de winkels, kunnen deze certificaten niet worden gelezen door andere apps. Als een app wordt verwijderd, worden alle certificaten die specifiek voor deze app zijn, ook verwijderd. Een app heeft ook leestoegang tot andere certificaatarchieven van lokale machines dan het archief MY en REQUEST.
Cache
Elke app-container heeft een geïsoleerde cache waarin verlenercertificaten kunnen worden opgeslagen die nodig zijn voor validatie, certificaatintrekkingslijsten (CRL) en OCSP-antwoorden (Online Certificate Status Protocol).
Gedeelde certificaten en sleutels
Wanneer een smartcard in een kaartenlezer wordt ingevoegd, worden de certificaten en sleutels op de kaart doorgegeven aan de gebruikersopslag MY, waar ze kunnen worden gedeeld door een volledige vertrouwensapplicatie die de gebruiker uitvoert. App-containers hebben standaard echter geen toegang tot de MY Store per gebruiker.
Om dit probleem op te lossen en groepen entiteiten toegang te geven tot groepen bronnen, ondersteunt het app-containerisolatiemodel het concept van mogelijkheden. Met een mogelijkheid kan een app-containerproces toegang krijgen tot een specifieke resource. De sharedUserCertificates-mogelijkheid verleent een app-container leestoegang tot de certificaten en sleutels in de gebruikersopslag MY en het vertrouwde rootsarchief van de smartcard. De mogelijkheid verleent geen leestoegang tot het archief met gebruikersaanvragen.
U geeft de mogelijkheid sharedUserCertificates op in het manifest, zoals wordt weergegeven in het volgende voorbeeld.
<Capabilities>
<Capability Name="sharedUserCertificates" />
</Capabilities>
Certificaatvelden
De certificaatstandaard voor openbare sleutel X.509 is na verloop van tijd herzien. Elke opeenvolgende versie van de gegevensstructuur heeft de velden bewaard die in de vorige versies bestonden en meer toegevoegd, zoals wordt weergegeven in de volgende afbeelding.
Sommige van deze velden en extensies kunnen rechtstreeks worden opgegeven wanneer u de klasse CertificateRequestProperties gebruikt om een certificaataanvraag te maken. De meeste kunnen dat niet. Deze velden kunnen worden ingevuld door de verlenende instantie of ze kunnen leeg blijven. Zie de volgende secties voor meer informatie over de velden:
Velden voor versie 1
| Veld | Beschrijving |
|---|---|
| Versie | Hiermee geeft u het versienummer van het gecodeerde certificaat. Momenteel zijn de mogelijke waarden van dit veld 0, 1 of 2. |
| Serienummer | Bevat een positief, uniek geheel getal dat is toegewezen door de certificeringsinstantie (CA) aan het certificaat. |
| Handtekening-algoritme | Bevat een object-id (OID) die het algoritme aangeeft dat door de CA wordt gebruikt om het certificaat te ondertekenen. Bijvoorbeeld: 1.2.840.113549.1.1.5 geeft een SHA-1-hashingalgoritme op in combinatie met het RSA-versleutelingsalgoritme van RSA Labs. |
| Issuer | Bevat de DN (X.500 Distinguished Name) van de CA die het certificaat heeft gemaakt en ondertekend. |
| Geldigheid | Hiermee geeft u het tijdsinterval op waarin het certificaat geldig is. Datums tot eind 2049 gebruiken de Coordinated Universal Time-indeling (Greenwich Mean Time) (yymmddhhmmssz). Datums vanaf 1 januari 2050 gebruiken de gegeneraliseerde tijdnotatie (jjjjmmddhhmmssz). |
| Onderwerp | Bevat een X.500-naam van de entiteit die is gekoppeld aan de publieke sleutel in het certificaat. |
| Openbare sleutel | Bevat de openbare sleutel en de bijbehorende algoritmegegevens. |
Velden voor versie 2
Een X.509 versie 2-certificaat bevat de basisvelden die zijn gedefinieerd in versie 1 en voegt de volgende velden toe.
| Veld | Beschrijving |
|---|---|
| Unieke id van verlener | Bevat een unieke waarde die kan worden gebruikt om de X.500-naam van de CA ondubbelzinnig te maken bij hergebruik door verschillende entiteiten in de loop van de tijd. |
| Unieke onderwerp-id | Bevat een unieke waarde die kan worden gebruikt om de X.500-naam van het certificaatonderwerp ondubbelzinnig te maken bij hergebruik door verschillende entiteiten in de loop van de tijd. |
Extensies van versie 3
Een X.509 versie 3-certificaat bevat de velden die zijn gedefinieerd in versie 1 en versie 2 en voegt certificaatextensies toe.
| Veld | Beschrijving |
|---|---|
| Autoriteitssleutel-ID | Identificeert de openbare sleutel van de certificeringsinstantie (CA) die overeenkomt met de persoonlijke CA-sleutel die wordt gebruikt om het certificaat te ondertekenen. |
| Basisbeperkingen | Hiermee geeft u op of de entiteit kan worden gebruikt als ca en, als dat het is, het aantal onderliggende CA's dat eronder in de certificaatketen kan bestaan. |
| Certificaatbeleid | Hiermee geeft u het beleid waaronder het certificaat is uitgegeven en de doeleinden waarvoor het kan worden gebruikt. |
| CRL-distributiepunten | Bevat de URI van de basiscertificaatintrekkingslijst (CRL). |
| Uitgebreid sleutelgebruik | Hiermee geeft u de manier op waarop de openbare sleutel in het certificaat kan worden gebruikt. |
| Alternatieve naam van uitgever | Hiermee geeft u een of meer alternatieve naamformulieren op voor de verlener van de certificaataanvraag. |
| Sleutelgebruik | Hiermee geeft u beperkingen op voor de bewerkingen die kunnen worden uitgevoerd door de openbare sleutel in het certificaat. |
| Naambeperkingen | Hiermee geeft u de naamruimte waarin alle onderwerpnamen in een certificaathiërarchie zich moeten bevinden. De extensie wordt alleen gebruikt in een CA-certificaat. |
| Beleidsbeperkingen | Pathvalidatie beperken door beleidstoewijzing te verbieden of te vereisen dat elk certificaat in de hiërarchie een acceptabele beleidsidentificator bevat. De extensie wordt alleen gebruikt in een CA-certificaat. |
| Beleidstoewijzingen | Hiermee geeft u het beleid op in een onderliggende CA die overeenkomt met beleidsregels in de verlenende CA. |
| Gebruiksperiode van persoonlijke sleutel | Hiermee geeft u een andere geldigheidsperiode voor de persoonlijke sleutel op dan voor het certificaat waaraan de persoonlijke sleutel is gekoppeld. |
| Alternatieve onderwerpnaam | Hiermee geeft u een of meer alternatieve naamformulieren op voor het onderwerp van de certificaataanvraag. Voorbeelden van alternatieve formulieren zijn e-mailadressen, DNS-namen, IP-adressen en URI's. |
| Kenmerken van onderwerpmap | Hiermee worden identificatiekenmerken, zoals de nationaliteit van het certificaatonderwerp, overgebracht. De extensiewaarde is een reeks OID-waardeparen. |
| Onderwerpsleutelidentificatie | Onderscheid maakt tussen meerdere openbare sleutels die door het certificaatonderwerp worden bewaard. De extensiewaarde is doorgaans een SHA-1-hash van de sleutel. |
Windows developer