Udostępnij przez


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 tajnych danych, 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ą zazwyczaj ułożone w łańcuchu zaufania, w którym każdy certyfikat w łańcuchu jest podpisany kluczem prywatnym następnego wyższego certyfikatu, aż do zakończenia na certyfikacie głównym podpisanym własnym podpisem. 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 tożsamości przy użyciu certyfikatów X.509.

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średni CA dla każdej fabryki.
  • Certyfikat każdej fabryki generuje unikalny pośredni certyfikat CA dla każdej linii produkcyjnej w fabryce.
  • Certyfikat linii produkcyjnej generuje unikatowy certyfikat urządzenia dla każdego urządzenia produkowanego na linii.

Aby dowiedzieć się więcej, zobacz Uwierzytelnianie tożsamości przy użyciu certyfikatów X.509.

Certyfikat główny

Certyfikat główny to certyfikat X.509 z podpisem własnym, który reprezentuje urząd certyfikacji. Jest to punkt końcowy 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), a także może podpisać nowe certyfikaty. Ostatni certyfikat pośredni w łańcuchu podpisuje certyfikat końcowy. 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 ContosoRootCert. Każda spółka zależna używa swojego certyfikatu pośredniego do podpisywania certyfikatów liści dla każdego urządzenia. W tym scenariuszu firma Contoso może użyć pojedynczego wystąpienia usługi DPS, gdzie 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 końcowy lub certyfikat końcowej instancji 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 innych certyfikatów. Jednoznacznie identyfikuje urządzenie dla usługi aprowizacji i jest czasami nazywane certyfikatem urządzenia. Podczas uwierzytelniania urządzenie używa klucza prywatnego skojarzonego z jego certyfikatem, aby odpowiedzieć na wyzwanie związane z dowodem posiadania od usługi.

Przygotowywanie certyfikatów

Urządzenia używają dwóch różnych typów certyfikatów podczas nawiązywania połączenia z usługą IoT Hub za pośrednictwem usługi DPS. Podczas przygotowywania urządzenia przed nawiązaniem połączenia upewnij się, że masz wszystkie odpowiednie certyfikaty utworzone i dodane do urządzenia.

  • Publiczne certyfikaty główne: wszystkie urządzenia muszą mieć kopię publicznych certyfikatów głównych używanych przez usługę IoT Hub, IoT Central i Device Provisioning Service do autoryzowania połączeń.
  • Certyfikaty uwierzytelniania: certyfikaty X.509 są zalecaną metodą uwierzytelniania tożsamości urządzenia.

Wymagane publiczne certyfikaty główne

Urządzenia usługi Azure IoT używają protokołu TLS do weryfikowania autentyczności punktu końcowego usługi IoT Hub lub DPS, z którymi się łączą. Każde urządzenie wymaga kopii certyfikatu głównego używanego przez usługę IoT Hub i usługę DPS. Zalecamy, aby wszystkie urządzenia zawierały następujące główne urzędy certyfikacji w ich zaufanym magazynie certyfikatów:

  • Główny certyfikat G2 firmy DigiCert
  • Urząd certyfikacji główny RSA Microsoft 2017

Aby uzyskać więcej informacji na temat zalecanych rozwiązań dotyczących certyfikatów, zobacz Obsługa protokołu TLS w usłudze Azure IoT Hub Device Provisioning Service (DPS).

Uwierzytelnianie 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 uwierzytelniania X.509:

  • Wpisy indywidualnej rejestracji są konfigurowane przy użyciu certyfikatu urządzenia przypisanego do określonego urządzenia. Te wpisy kontrolują rejestracje dla określonych urządzeń.
  • Wpisy grupy rejestracji są skojarzone z określonym pośrednim lub nadrzędnym certyfikatem urzędu certyfikacji. Te wpisy zarządzają rejestracjami dla wszystkich urządzeń, które mają ten pośredni lub główny certyfikat w swoim łańcuchu certyfikatów.

Certyfikat można określić tylko w jednym wpisie rejestracji w instancji 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 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 DPS i musi być unikatowy dla instancji DPS (zakresu ID), w której 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 jest wyświetlany w rekordach rejestracji dla uwierzytelnioowanego urządzenia w grupie rejestracji. W przypadku rejestracji indywidualnych identyfikator urządzenia można ustawić w zgłoszeniu 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 kolejności urządzeń systemu 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średnie2 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 łączy się on z korzeniem.

Jeśli podczas aprowizacji urządzenie wysyła kompletny łańcuch urządzeń w następujący sposób, 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 konfigurować 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 i tak dalej, schodząc w dół łańcucha do korzenia.

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

  • Jeśli pierwszy znaleziony wpis rejestracji jest włączony, usługa aprowizuje urządzenie.
  • Jeśli pierwszy znaleziony wpis rejestracji jest wyłączony, usługa nie skonfiguruje urządzenia.
  • Jeśli nie znaleziono wpisu rejestracji dla żadnego z certyfikatów w łańcuchu certyfikatów urządzenia, usługa nie konfiguruje 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żesz utworzyć pojedynczy włączony wpis rejestracji grupowej dla certyfikatu głównego, aby umożliwić dostęp wszystkim pięciu urządzeniom. Jeśli certyfikat B zostanie później naruszony, możesz utworzyć wpis nieaktywnej grupy rejestracji dla certyfikatu B, aby uniemożliwić rejestrowanie urządzeń 4 i 5. Jeśli w późniejszym czasie urządzenie 3 zostanie naruszone, możesz utworzyć wyłączony wpis indywidualnej rejestracji 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 .