Udostępnij za pośrednictwem


Zaświadczanie certyfikatu X.509

W tym artykule opisano pojęcia związane z aprowizacją urządzeń przy użyciu zaświadczania certyfikatów X.509 w usłudze Device Provisioning Service (DPS). 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.

Omówienie łańcucha certyfikatów 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. To rozwiązanie ustanawia delegowany łańcuch zaufania z certyfikatu głównego wygenerowanego przez zaufany urząd certyfikacji (CA) w dół za pośrednictwem każdego certyfikatu pośredniego do końcowego certyfikatu 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 hierarchię logiczną lub fizyczną skojarzona z urządzeniami. Na przykład producent może utworzyć następującą hierarchię certyfikatów:

  • Certyfikat głównego urzędu certyfikacji z podpisem własnym rozpoczyna łańcuch certyfikatów.
  • Certyfikat główny generuje unikatowy certyfikat pośredniego urzędu certyfikacji dla każdej fabryki.
  • Certyfikat każdej fabryki generuje unikatowy pośredni certyfikat urzędu certyfikacji dla każdej linii produkcyjnej w fabryce.
  • Certyfikat linii produkcyjnej generuje 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, który reprezentuje 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. Certyfikat główny może być również nazywany certyfikatem 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), który może również podpisywać nowe certyfikaty. Ostatni certyfikat pośredni w łańcuchu podpisuje certyfikat liścia. Certyfikat pośredniczący może być również nazywany pośrednim certyfikatem urzędu certyfikacji.

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 ContosoRootCertprogram . Każda jednostka zależna 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 musi 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 i 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 jego certyfikatem, aby odpowiedzieć na dowód posiadania z usługi.

Używanie certyfikatów X.509 z usługą DPS

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 algorytmu szyfrowania usługi DPS

Usługa Device Provisioning Service akceptuje tylko certyfikaty X.509, które używają algorytmu Rivest-Shamir-Adleman (RSA) lub algorytmu Szyfrowania krzywej Elliptic (ECC) na potrzeby szyfrowania. EcC i RSA zapewniają równoważne poziomy siły szyfrowania, ale usługa ECC używa krótszej długości klucza.

Jeśli używasz metod ECC do generowania certyfikatów X.509 na potrzeby zaświadczania urządzeń, zalecamy następujące krzywe eliptyczne:

  • nistP256
  • nistP384
  • nistP521

Wymagania dotyczące nazewnictwa certyfikatów usługi DPS

Certyfikaty liści używane z wpisami rejestracji indywidualnej muszą mieć nazwę pospolitą podmiotu (CN) ustawioną 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.

W przypadku grup rejestracji nazwa pospolita podmiotu (CN) ustawia 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.

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 nie powiedzie się.

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 koń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 firmę, która używa następującego łańcucha urządzeń dla urządzenia.

Diagram przedstawiający przykładowy łańcuch certyfikatów urządzeń.

W tym przykładzie certyfikat główny jest weryfikowany przy użyciu usługi DPS, a intermediate2 certyfikat jest przekazywany do grupy rejestracji.

Diagram przedstawiający certyfikaty główne i pośrednie 2 przekazywane do usługi DPS.

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 intermediate1 .

Diagram przedstawiający niepowodzenie uwierzytelniania łańcucha certyfikatów, ponieważ nie jest on łańcuchem łańcucha certyfikatów w łańcuchu głównym.

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.

Diagram przedstawiający pomyślny łańcuch certyfikatów urządzeń.

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, 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 itd. 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.

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ń i 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 .