Zaświadczanie certyfikatu X.509

Ten artykuł zawiera omówienie pojęć związanych z usługą Device Provisioning Service (DPS) podczas aprowizowania urządzeń przy użyciu zaświadczania certyfikatów X.509. Ten artykuł dotyczy wszystkich osób zaangażowanych w przygotowanie urządzenia do wdrożenia.

Certyfikaty X.509 można przechowywać w sprzętowym module zabezpieczeń HSM.

Napiwek

Zdecydowanie zalecamy używanie modułu HSM z urządzeniami do bezpiecznego przechowywania wpisów tajnych, takich jak certyfikat X.509, na urządzeniach w środowisku produkcyjnym.

Certyfikaty X.509

Korzystanie z certyfikatów X.509 jako mechanizmu zaświadczania to doskonały sposób skalowania produkcji i upraszczania aprowizacji urządzeń. Certyfikaty X.509 są zwykle rozmieszczone w łańcuchu zaufania certyfikatów, w którym każdy certyfikat w łańcuchu jest podpisany przez klucz prywatny następnego wyższego certyfikatu i tak dalej, kończąc certyfikat główny z podpisem własnym. Ten układ ustanawia delegowany łańcuch zaufania z certyfikatu głównego wygenerowanego przez zaufany główny urząd certyfikacji (CA) w dół przez każdy pośredni urząd certyfikacji do certyfikatu "liścia" jednostki końcowej zainstalowanego na urządzeniu. Aby dowiedzieć się więcej, zobacz Uwierzytelnianie urządzeń przy użyciu certyfikatów X.509 urzędu certyfikacji.

Często łańcuch certyfikatów reprezentuje pewną hierarchię logiczną lub fizyczną skojarzona z urządzeniami. Na przykład producent może:

  • wystawianie certyfikatu głównego urzędu certyfikacji z podpisem własnym
  • używanie certyfikatu głównego do generowania unikatowego pośredniego certyfikatu urzędu certyfikacji dla każdej fabryki
  • użyj certyfikatu każdej fabryki, aby wygenerować unikatowy pośredni certyfikat urzędu certyfikacji dla każdej linii produkcyjnej w zakładzie
  • i na koniec użyj certyfikatu linii produkcyjnej, aby wygenerować unikatowy certyfikat urządzenia (jednostki końcowej) dla każdego urządzenia produkowanego w wierszu.

Aby dowiedzieć się więcej, zobacz Koncepcyjna wiedza na temat certyfikatów X.509 urzędu certyfikacji w branży IoT.

Certyfikat główny

Certyfikat główny to certyfikat X.509 z podpisem własnym reprezentujący urząd certyfikacji. Jest to terminy lub kotwica zaufania łańcucha certyfikatów. Certyfikaty główne mogą być wystawiane samodzielnie przez organizację lub kupowane z głównego urzędu certyfikacji. Aby dowiedzieć się więcej, zobacz Get X.509 CA certificates (Pobieranie certyfikatów urzędu certyfikacji X.509). Certyfikat główny może być również określany jako certyfikat głównego urzędu certyfikacji.

Certyfikat pośredni

Certyfikat pośredniczący to certyfikat X.509 podpisany przez certyfikat główny (lub inny certyfikat pośredniczący z certyfikatem głównym w łańcuchu). Ostatni certyfikat pośredni w łańcuchu jest używany do podpisywania certyfikatu liścia. Certyfikat pośredniczący może być również określany jako certyfikat pośredniego urzędu certyfikacji.

Dlaczego pośrednie certyfikaty są przydatne?

Certyfikaty pośrednie są używane na różne sposoby. Na przykład certyfikaty pośrednie mogą służyć do grupowania urządzeń według linii produktów, klientów kupujących urządzenia, działy firmy lub fabryki.

Załóżmy, że firma Contoso jest dużą korporacją z własną infrastrukturą kluczy publicznych (PKI) przy użyciu certyfikatu głównego o nazwie ContosoRootCert. Każda spółka zależna firmy Contoso ma własny certyfikat pośredniczący podpisany przez firmę ContosoRootCert. Każda spółka zależna będzie następnie używać certyfikatu pośredniego do podpisywania certyfikatów liści dla każdego urządzenia. W tym scenariuszu firma Contoso może użyć jednego wystąpienia usługi DPS, w którym contosoRootCert jest zweryfikowanym certyfikatem. Mogą mieć grupę rejestracji dla każdej jednostki zależnej. W ten sposób każda jednostka zależna nie będzie musiała martwić się o weryfikowanie certyfikatów.

Certyfikat "liścia" jednostki końcowej

Certyfikat liścia lub certyfikat jednostki końcowej identyfikuje właściciela certyfikatu. Ma certyfikat główny w łańcuchu certyfikatów, a także zero lub więcej certyfikatów pośrednich. Certyfikat liścia nie jest używany do podpisywania żadnych innych certyfikatów. Jednoznacznie identyfikuje urządzenie w usłudze aprowizacji i jest czasami określane jako certyfikat urządzenia. Podczas uwierzytelniania urządzenie używa klucza prywatnego skojarzonego z tym certyfikatem, aby odpowiedzieć na dowód posiadania z usługi.

Certyfikaty liści używane z rejestracją indywidualną lub wpisami grupy Rejestracji muszą mieć ustawioną nazwę pospolitą podmiotu (CN) na identyfikator rejestracji. Identyfikator rejestracji identyfikuje rejestrację urządzenia w usłudze DPS i musi być unikatowy dla wystąpienia usługi DPS (zakresu identyfikatora), w którym urządzenie jest rejestrowane. Identyfikator rejestracji jest ciągiem bez uwzględniania wielkości liter znaków alfanumerycznych oraz znakami specjalnymi: '-', , '.''_', ':'. Ostatni znak musi być alfanumeryczny lub kreskowy ('-'). Usługa DPS obsługuje identyfikatory rejestracji o długości do 128 znaków; jednak maksymalna długość nazwy pospolitej podmiotu w certyfikacie X.509 wynosi 64 znaki. W związku z tym identyfikator rejestracji jest ograniczony do 64 znaków w przypadku używania certyfikatów X.509.

W przypadku grup rejestracji nazwa pospolita podmiotu (CN) ustawia również identyfikator urządzenia zarejestrowany w usłudze IoT Hub. Identyfikator urządzenia zostanie wyświetlony w rekordach rejestracji dla uwierzytelnioowanego urządzenia w grupie rejestracji. W przypadku rejestracji indywidualnych identyfikator urządzenia można ustawić we wpisie rejestracji. Jeśli nie ustawiono go we wpisie rejestracji, zostanie użyta nazwa pospolita podmiotu (CN).

Aby dowiedzieć się więcej, zobacz Uwierzytelnianie urządzeń podpisanych przy użyciu certyfikatów X.509 urzędu certyfikacji.

Kontrolowanie dostępu urządzenia do usługi aprowizacji przy użyciu certyfikatów X.509

Usługa aprowizacji udostępnia dwa typy rejestracji, których można użyć do kontrolowania dostępu urządzenia za pomocą mechanizmu zaświadczania X.509:

  • Wpisy rejestracji indywidualnej są konfigurowane przy użyciu certyfikatu urządzenia skojarzonego z określonym urządzeniem. Te wpisy kontrolują rejestracje dla określonych urządzeń.
  • Wpisy grupy rejestracji są skojarzone z określonym pośrednim lub głównym certyfikatem urzędu certyfikacji. Te wpisy kontrolują rejestracje wszystkich urządzeń z tym pośrednim lub głównym certyfikatem w łańcuchu certyfikatów.

Certyfikat można określić tylko w jednym wpisie rejestracji w wystąpieniu usługi DPS.

Obsługa wzajemnego protokołu TLS

Gdy rejestracje usługi DPS są skonfigurowane na potrzeby zaświadczania X.509, wzajemne protokoły TLS (mTLS) są obsługiwane przez usługę DPS.

Wymagania dotyczące łańcucha urządzeń usługi DPS

Gdy urządzenie próbuje zarejestrować się za pośrednictwem usługi DPS przy użyciu grupy rejestracji, urządzenie musi wysłać łańcuch certyfikatów z certyfikatu liścia do zweryfikowanego certyfikatu. W przeciwnym razie uwierzytelnianie zakończy się niepowodzeniem.

Jeśli na przykład tylko certyfikat główny zostanie zweryfikowany i certyfikat pośredni zostanie przekazany do grupy rejestracji, urządzenie powinno przedstawić łańcuch certyfikatów z certyfikatu liścia do zweryfikowanego certyfikatu głównego. Ten łańcuch certyfikatów obejmuje wszystkie certyfikaty pośrednie między. Uwierzytelnianie zakończy się niepowodzeniem, jeśli usługa DPS nie może przejść przez łańcuch certyfikatów do zweryfikowanego certyfikatu.

Rozważmy na przykład korporację przy użyciu następującego łańcucha urządzeń dla urządzenia.

Example device certificate chain

W tym przykładzie tylko certyfikat główny jest weryfikowany, a certyfikat pośredni2 jest przekazywany do grupy rejestracji.

Example root verified

Jeśli urządzenie wysyła tylko następujący łańcuch urządzeń podczas aprowizacji, uwierzytelnianie zakończy się niepowodzeniem. Ponieważ usługa DPS nie może podjąć próby uwierzytelnienia przy założeniu ważności certyfikatu pośredniego1

Example failing certificate chain

Jeśli urządzenie wysyła pełny łańcuch urządzeń w następujący sposób podczas aprowizacji, usługa DPS może podjąć próbę uwierzytelnienia urządzenia.

Example device certificate chain

Kolejność operacji usługi DPS z certyfikatami

Gdy urządzenie łączy się z usługą aprowizacji, usługa przeprowadzi łańcuch certyfikatów rozpoczynający się od certyfikatu urządzenia (liścia) i wyszukuje odpowiedni wpis rejestracji. Używa pierwszego wpisu znalezionego w łańcuchu, aby określić, czy należy aprowizować urządzenie. Oznacza to, że jeśli istnieje rejestracja indywidualna dla certyfikatu urządzenia (liścia), usługa aprowizacji stosuje ten wpis. Jeśli na urządzeniu nie ma rejestracji indywidualnej, usługa szuka grupy rejestracji odpowiadającej pierwszemu certyfikatowi pośredniemu. Jeśli go znajdzie, stosuje ten wpis; w przeciwnym razie wyszukuje grupę rejestracji dla następnego certyfikatu pośredniego i tak dalej w dół łańcucha do katalogu głównego.

Usługa stosuje pierwszy wpis, który znajdzie, w taki sposób, że:

  • Jeśli zostanie włączony pierwszy wpis rejestracji, usługa aprowizuje urządzenie.
  • Jeśli pierwszy wpis rejestracji zostanie wyłączony, usługa nie aprowizować urządzenia.
  • Jeśli nie znaleziono wpisu rejestracji dla żadnego z certyfikatów w łańcuchu certyfikatów urządzenia, usługa nie aprowizować urządzenia.

Należy pamiętać, że każdy certyfikat w łańcuchu certyfikatów urządzenia można określić we wpisie rejestracji, ale można go określić tylko w jednym wpisie w wystąpieniu usługi DPS.

Ten mechanizm i hierarchiczna struktura łańcuchów certyfikatów zapewniają zaawansowaną elastyczność w sposobie kontrolowania dostępu do poszczególnych urządzeń oraz grup urządzeń. Załóżmy na przykład pięć urządzeń z następującymi łańcuchami certyfikatów:

  • Urządzenie 1: certyfikat główny —> certyfikat A —> certyfikat 1 urządzenia
  • Urządzenie 2: certyfikat główny —> certyfikat A —> certyfikat 2 urządzenia
  • Urządzenie 3: certyfikat główny —> certyfikat A —> certyfikat 3 urządzenia
  • Urządzenie 4: certyfikat główny —> certyfikat B —> certyfikat 4 urządzenia
  • Urządzenie 5: certyfikat główny —> certyfikat B —> certyfikat 5 urządzenia

Początkowo można utworzyć pojedynczy wpis rejestracji grupy włączonej dla certyfikatu głównego, aby umożliwić dostęp dla wszystkich pięciu urządzeń. Jeśli certyfikat B zostanie później naruszony, możesz utworzyć wyłączony wpis grupy rejestracji dla certyfikatu B, aby uniemożliwić rejestrowanie urządzenia 4 i urządzenia 5 . Jeśli urządzenie 3 zostanie naruszone, możesz utworzyć wyłączony wpis rejestracji indywidualnej dla jego certyfikatu. Spowoduje to odwołanie dostępu dla urządzenia 3, ale nadal umożliwia rejestrowanie urządzeń 1 i Urządzeń 2 .