Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule omówiono używanie certyfikatów w aplikacjach WinUI. Certyfikaty cyfrowe są używane w kryptografii klucza publicznego w celu powiązania klucza publicznego z osobą, komputerem lub organizacją. Tożsamości powiązane są najczęściej używane do uwierzytelniania jednej jednostki w innej. Na przykład certyfikaty są często używane do uwierzytelniania serwera internetowego dla użytkownika i użytkownika na serwerze sieci Web. Możesz tworzyć żądania certyfikatów i instalować lub importować wystawione certyfikaty. Można również zarejestrować certyfikat w hierarchii certyfikatów.
Udostępnione magazyny certyfikatów
Aplikacje WinUI używają nowego modelu aplikacji izolacjonistycznego wprowadzonego w systemie Windows 8. W tym modelu aplikacje działają w konstrukcji systemu operacyjnego niskiego poziomu, nazywanej kontenerem aplikacji, która uniemożliwia aplikacji dostęp do zasobów lub plików spoza siebie, chyba że jawnie zezwoli na to. W poniższych sekcjach opisano implikacje związane z infrastrukturą kluczy publicznych (PKI).
Przechowywanie certyfikatu dla każdego kontenera aplikacji
Certyfikaty przeznaczone do użytku w określonym kontenerze aplikacji są przechowywane dla poszczególnych użytkowników, w poszczególnych lokalizacjach kontenera aplikacji. Aplikacja działająca w kontenerze aplikacji ma prawa zapisu jedynie do własnego magazynu certyfikatów. Jeśli aplikacja dodaje certyfikaty do dowolnego ze swoich sklepów, te certyfikaty nie mogą być odczytywane przez inne aplikacje. Jeśli aplikacja zostanie odinstalowana, wszystkie certyfikaty specyficzne dla niej zostaną również usunięte. Aplikacja ma również dostęp do odczytu do magazynów certyfikatów komputera lokalnego innych niż magazyn MOJE i REQUEST.
Pamięć podręczna
Każdy kontener aplikacji ma izolowaną pamięć podręczną, w której może przechowywać certyfikaty wystawców wymagane do weryfikacji, listy odwołania certyfikatów (CRL), oraz odpowiedzi protokołu stanu certyfikatów online (OCSP).
Certyfikaty i klucze udostępnione
Po wstawieniu karty inteligentnej do czytnika certyfikaty i klucze zawarte na karcie są propagowane do magazynu MY użytkownika, w którym mogą być udostępniane przez dowolną aplikację o pełnym zaufaniu uruchomioną przez użytkownika. Domyślnie jednak kontenery aplikacji nie mają dostępu do poszczególnych użytkowników w moim sklepie.
Aby rozwiązać ten problem i umożliwić grupom użytkowników dostęp do grup zasobów, model izolacji kontenera aplikacji obsługuje koncepcję funkcji. Funkcja umożliwia procesowi kontenera aplikacji uzyskiwanie dostępu do określonego zasobu. Funkcjonalność sharedUserCertificates umożliwia kontenerowi aplikacji dostęp do odczytu certyfikatów i kluczy znajdujących się w magazynie MY użytkownika oraz w magazynie zaufanych głównych certyfikatów karty inteligentnej. Ta funkcja nie udziela dostępu do odczytu do magazynu ŻĄDAŃ użytkownika.
W manifeście należy określić funkcję sharedUserCertificates, jak pokazano w poniższym przykładzie.
<Capabilities>
<Capability Name="sharedUserCertificates" />
</Capabilities>
Pola certyfikatu
Standard certyfikatu klucza publicznego X.509 został zmieniony w czasie. Każda kolejna wersja struktury danych zachowała pola, które istniały w poprzednich wersjach i dodała więcej, jak pokazano na poniższej ilustracji.
Niektóre z tych pól i rozszerzeń można określić bezpośrednio podczas tworzenia żądania certyfikatu za pomocą klasy CertificateRequestProperties . Większość nie może. Te pola mogą być wypełniane przez urząd wystawiający lub mogą być puste. Aby uzyskać więcej informacji na temat pól, zobacz następujące sekcje:
Pola wersji 1
| Pole | Opis |
|---|---|
| Wersja | Określa numer wersji zakodowanego certyfikatu. Obecnie możliwe wartości tego pola to 0, 1 lub 2. |
| Numer seryjny | Zawiera dodatnią, unikatową liczbę całkowitą przypisaną przez urząd certyfikacji (CA) do certyfikatu. |
| Algorytm podpisu | Zawiera identyfikator obiektu (OID), który określa algorytm używany przez urząd certyfikacji do podpisania certyfikatu. Na przykład 1.2.840.113549.1.1.5 określa algorytm wyznaczania wartości skrótu SHA-1 w połączeniu z algorytmem szyfrowania RSA z laboratoriów RSA. |
| Wystawca | Zawiera nazwę wyróżniającą X.500 urzędu certyfikacji, który wystawił certyfikat i go podpisał. |
| Ważność | Określa przedział czasu, w którym certyfikat jest ważny. Daty do końca 2049 r. używają formatu uniwersalnego czasu koordynowanego (Czas średni Greenwich) (yymmdhhmmssz). Daty rozpoczynające się od 1 stycznia 2050 r. używają uogólnionego formatu czasu (yyyymmdhhmmssz). |
| Temat | Zawiera nazwę wyróżniającą X.500 podmiotu związanego z kluczem publicznym znajdującym się w certyfikacie. |
| Klucz publiczny | Zawiera informacje o kluczu publicznym i skojarzonym algorytmie. |
Pola wersji 2
Certyfikat X.509 w wersji 2 zawiera podstawowe pola zdefiniowane w wersji 1 i dodaje następujące pola.
| Pole | Opis |
|---|---|
| Unikatowy identyfikator wystawcy | Zawiera unikatową wartość, która może służyć do zapewnienia jednoznaczności nazwy X.500 urzędu certyfikacji w miarę upływu czasu, gdy jest ponownie wykorzystywana przez różne jednostki. |
| Unikatowy identyfikator podmiotu | Zawiera unikatową wartość, której można użyć, aby nazwa X.500 podmiotu certyfikatu była jednoznaczna przy ponownym użyciu przez różne podmioty w czasie. |
Rozszerzenia w wersji 3
Certyfikat X.509 w wersji 3 zawiera pola zdefiniowane w wersji 1 i wersji 2 oraz dodaje rozszerzenia certyfikatów.
| Pole | Opis |
|---|---|
| Identyfikator klucza urzędu certyfikacji | Identyfikuje klucz publiczny urzędu certyfikacji odpowiadający kluczowi prywatnemu urzędu certyfikacji używanemu do podpisywania certyfikatu. |
| Podstawowe ograniczenia | Określa, czy jednostka może być używana jako urząd certyfikacji, a jeśli tak, liczba podrzędnych urzędów certyfikacji, które mogą istnieć poniżej w łańcuchu certyfikatów. |
| Zasady certyfikatów | Określa zasady, w ramach których certyfikat został wystawiony, oraz cele, do których można go użyć. |
| Punkty dystrybucji CRL | Zawiera identyfikator URI listy odwołania certyfikatów podstawowych (CRL). |
| Ulepszone użycie klucza | Określa sposób, w jaki można użyć klucza publicznego zawartego w certyfikacie. |
| Alternatywna nazwa wystawcy | Określa co najmniej jedną alternatywną formę nazwy wystawcy żądania certyfikatu. |
| Użycie klucza | Określa ograniczenia dotyczące operacji, które mogą być wykonywane przez klucz publiczny zawarty w certyfikacie. |
| Ograniczenia nazw | Określa przestrzeń nazw, w której muszą znajdować się wszystkie nazwy podmiotów w hierarchii certyfikatów. Rozszerzenie jest używane tylko w certyfikacie urzędu certyfikacji. |
| Ograniczenia zasad | Ograniczenie poprawności ścieżki przez zakaz mapowania zasad lub wymaganie, aby każdy certyfikat w hierarchii posiadał akceptowalny identyfikator zasad. Rozszerzenie jest używane tylko w certyfikacie CA. |
| Mapowania zasad | Określa zasady w podrzędnym urzędzie certyfikacji, które odpowiadają zasadom w urzędzie wystawiającym certyfikaty. |
| Okres użycia klucza prywatnego | Określa inny okres ważności klucza prywatnego niż dla certyfikatu, z którym jest skojarzony klucz prywatny. |
| Alternatywna nazwa tematu | Określa co najmniej jedną alternatywną formę nazwy podmiotu żądania certyfikatu. Przykładowe alternatywne formy obejmują adresy e-mail, nazwy DNS, adresy IP i identyfikatory URI. |
| Atrybuty katalogu subiektu | Przekazuje atrybuty identyfikacji, takie jak narodowość podmiotu certyfikatu. Wartość rozszerzenia jest sekwencją par OID-value. |
| Identyfikator klucza podmiotu (Subject Key Identifier) | Rozróżnia wiele kluczy publicznych przechowywanych przez podmiot certyfikatu. Wartość rozszerzenia jest zazwyczaj skrótem SHA-1 klucza. |