Udostępnij przez


Opis sposobu, w jaki usługa Azure IoT Edge używa certyfikatów

Dotyczy:Znacznik wyboru usługi IoT Edge 1.5 IoT Edge 1.5

Ważne

Obsługiwana wersja usługi IoT Edge 1.5 LTS. Usługa IoT Edge 1.4 LTS kończy się od 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Usługa IoT Edge używa różnych typów certyfikatów do różnych celów. Ten artykuł wyjaśnia, jak IoT Edge wykorzystuje certyfikaty w scenariuszach z Azure IoT Hub i bramami IoT Edge.

Ważne

W przypadku zwięzłości ten artykuł dotyczy usługi IoT Edge w wersji 1.2 lub nowszej. Pojęcia dotyczące certyfikatów w wersji 1.1 są podobne, ale istnieją pewne różnice:

  • Certyfikat urzędu certyfikacji urządzenia w wersji 1.1 jest teraz nazywany certyfikatem urzędu certyfikacji Edge.
  • Certyfikat CA obciążenia roboczego w wersji 1.1 jest wycofany z użytku. W wersji 1.2 lub nowszej środowisko uruchomieniowe modułu usługi IoT Edge generuje wszystkie certyfikaty serwera bezpośrednio z certyfikatu urzędu certyfikacji brzegowego bez pośredniego certyfikatu urzędu certyfikacji w łańcuchu certyfikatów.

Podsumowanie

Usługa IoT Edge używa certyfikatów w tych podstawowych scenariuszach. Skorzystaj z linków, aby dowiedzieć się więcej na temat każdego scenariusza.

Aktor Przeznaczenie Certyfikat
IoT Edge Zapewnia komunikację z odpowiednim centrum IoT Hub Certyfikat serwera IoT Hub
Usługa IoT Hub Pomaga zapewnić, że żądanie pochodzi z wiarygodnego urządzenia usługi IoT Edge Certyfikat tożsamości IoT Edge
Urządzenie podrzędne IoT Zapewnia komunikację z odpowiednią bramą Azure IoT Edge Certyfikat serwera modułu IoT Edge Hub edgeHub, wydany przez urząd certyfikacji usługi Edge
IoT Edge Podpisuje nowe certyfikaty serwera modułu. Na przykład edgeHub Certyfikat urzędu certyfikacji usługi Edge
IoT Edge Pomaga zapewnić, że żądanie pochodzi z wiarygodnego urządzenia podrzędnego Certyfikat tożsamości urządzenia IoT

Wymagania wstępne

Scenariusz pojedynczego urządzenia

Aby ułatwić poznanie pojęć dotyczących certyfikatów usługi IoT Edge, wyobraź sobie scenariusz, w którym urządzenie usługi IoT Edge o nazwie EdgeGateway łączy się z usługą Azure IoT Hub o nazwie ContosoIotHub. W tym przykładzie wszystkie operacje uwierzytelniania wykorzystują uwierzytelnianie certyfikatem X.509 zamiast kluczy symetrycznych. Aby ustanowić zaufanie w tym scenariuszu, musimy zagwarantować, że urządzenie usługi IoT Hub i usługi IoT Edge jest autentyczne: "Czy to urządzenie jest prawdziwe i prawidłowe?" i "Czy tożsamość usługi IoT Hub jest poprawna?". Oto ilustracja scenariusza:

Diagram stanu scenariusza zaufania przedstawiający połączenie między urządzeniem usługi IoT Edge i usługą IoT Hub.

W tym artykule wyjaśniono odpowiedzi na każde pytanie, a następnie rozszerzamy przykład w kolejnych sekcjach.

Urządzenie weryfikuje tożsamość usługi IoT Hub

Jak usługa EdgeGateway sprawdza, czy rozmawia z prawdziwą firmą ContosoIotHub? Gdy usługa EdgeGateway komunikuje się z chmurą, łączy się z punktem końcowym ContosoIoTHub.Azure-devices.NET. Aby upewnić się, że punkt końcowy jest autentyczny, usługa IoT Edge potrzebuje firmy ContosoIoTHub do pokazania identyfikacji (ID). Identyfikator musi być wystawiony przez urząd, któremu ufa EdgeGateway . Aby zweryfikować tożsamość usługi IoT Hub, usługi IoT Edge i IoT Hub używają protokołu uzgadniania TLS do sprawdzania tożsamości serwera usługi IoT Hub. Na poniższym diagramie przedstawiono handshake TLS. Niektóre szczegóły zostały pominięte, aby zachować prostotę. Aby uzyskać więcej informacji na temat protokołu uzgadniania TLS , zobacz Uzgadnianie protokołu TLS w Wikipedii.

Uwaga

W tym przykładzie contosoIoTHub reprezentuje nazwę hosta usługi IoT Hub ContosoIotHub.Azure-devices.NET.

Diagram sekwencji przedstawiający wymianę certyfikatów z usługi IoT Hub do urządzenia usługi IoT Edge z weryfikacją certyfikatu z zaufanym magazynem głównym na urządzeniu usługi IoT Edge.

W tym kontekście nie musisz znać dokładnych szczegółów algorytmu kryptograficznego. Kluczową rzeczą jest to, że algorytm sprawdza, czy serwer posiada klucz prywatny sparowany z jego kluczem publicznym. To sprawdzenie potwierdza, że prezenter certyfikatu nie skopiował ani nie ukradł go. Pomyśl o dokumencie tożsamości ze zdjęciem, na którym twoja twarz pasuje do zdjęcia. Jeśli ktoś ukradnie Twój identyfikator, nie może go użyć, ponieważ twarz jest unikatowa. W przypadku kluczy kryptograficznych para kluczy jest powiązana i unikatowa. Zamiast dopasowywać twarz do identyfikatora zdjęcia, algorytm kryptograficzny używa pary kluczy do zweryfikowania tożsamości.

W naszym scenariuszu firma ContosoIotHub przedstawia następujący łańcuch certyfikatów:

Diagram przepływu przedstawiający łańcuch pośrednich i głównych urzędów certyfikacji dla usługi IoT Hub.

Główny urząd certyfikacji (CA) jest certyfikatem głównym Baltimore CyberTrust. Firma DigiCert podpisuje ten certyfikat główny i jest powszechnie zaufany i przechowywany w wielu systemach operacyjnych. Na przykład zarówno Ubuntu, jak i Windows zawierają go w domyślnym magazynie certyfikatów.

Magazyn certyfikatów systemu Windows:

Zrzut ekranu przedstawiający certyfikat główny Baltimore CyberTrust wymieniony w magazynie certyfikatów systemu Windows.

Magazyn certyfikatów systemu Ubuntu:

Zrzut ekranu przedstawiający certyfikat główny Baltimore CyberTrust wymieniony w magazynie certyfikatów ubuntu.

Gdy urządzenie sprawdza certyfikat root Baltimore CyberTrust, jest już obecny w systemie operacyjnym. Z perspektywy EdgeGateway, ponieważ łańcuch certyfikatów od ContosoIotHub jest podpisany przez główny urząd certyfikacji, któremu ufa system operacyjny, certyfikat jest uznawany za godny zaufania. Ten certyfikat jest nazywany certyfikatem serwera usługi IoT Hub. Aby uzyskać więcej informacji na temat certyfikatu serwera usługi IoT Hub, zobacz Obsługa protokołu TLS (Transport Layer Security) w usłudze IoT Hub.

Podsumowując, usługa EdgeGateway może zweryfikować tożsamość firmy ContosoIotHub i ufać jej , ponieważ:

  • Firma ContosoIotHub prezentuje certyfikat serwera usługi IoT Hub
  • Certyfikat serwera jest zaufany w magazynie certyfikatów systemu operacyjnego
  • Dane zaszyfrowane przy użyciu klucza publicznego firmy ContosoIotHub mogą być odszyfrowywane przez firmę ContosoIotHub, co potwierdza posiadanie klucza prywatnego

Usługa IoT Hub weryfikuje tożsamość urządzenia usługi IoT Edge

Jak firma ContosoIotHub sprawdza, czy komunikuje się z usługą EdgeGateway? Ponieważ usługa IoT Hub obsługuje wzajemne protokoły TLS (mTLS), sprawdza certyfikat usługi EdgeGateway podczas uzgadniania protokołu TLS uwierzytelnionego przez klienta. Dla uproszczenia pominiemy kilka kroków na poniższym diagramie.

Diagram sekwencji przedstawiający wymianę certyfikatów z urządzenia usługi IoT Edge do usługi IoT Hub z weryfikacją odcisku palca certyfikatu w usłudze IoT Hub.

W takim przypadku usługa EdgeGateway udostępnia certyfikat tożsamości urządzenia usługi IoT Edge. Z perspektywy ContosoIotHub, sprawdza się, czy odcisk palca dostarczonego certyfikatu odpowiada jego rekordowi, oraz czy EdgeGateway posiada klucz prywatny sparowany z przedstawionym certyfikatem. Podczas aprowizowania urządzenia usługi IoT Edge w usłudze IoT Hub należy podać odcisk palca. Usługa IoT Hub używa odcisku palca do zweryfikowania certyfikatu.

Napiwek

Usługa IoT Hub wymaga dwóch odcisków palca podczas rejestrowania urządzenia usługi IoT Edge. Najlepiej przygotować dwa różne certyfikaty tożsamości urządzenia z różnymi datami wygaśnięcia. Jeśli jeden certyfikat wygaśnie, drugi jest nadal ważny i daje czas na wymianę wygasłego certyfikatu. Jednak do rejestracji można użyć tylko jednego certyfikatu. Użyj pojedynczego certyfikatu, ustawiając ten sam odcisk palca certyfikatu zarówno dla odcisków palca podstawowego, jak i pomocniczego podczas rejestrowania urządzenia.

Na przykład użyj następującego polecenia, aby uzyskać odcisk palca certyfikatu tożsamości w usłudze EdgeGateway:

sudo openssl x509 -in /var/lib/aziot/certd/certs/deviceid-random.cer -noout -nocert -fingerprint -sha256

Polecenie zwraca odcisk palca SHA256 certyfikatu:

SHA256 Fingerprint=1E:F3:1F:88:24:74:2C:4A:C1:A7:FA:EC:5D:16:C4:11:CD:85:52:D0:88:3E:39:CB:7F:17:53:40:9C:02:95:C3

Jeśli wyświetlisz wartość odcisku palca SHA256 dla urządzenia EdgeGateway zarejestrowanego w usłudze IoT Hub, zobaczysz, że jest on zgodny z odciskiem palca w usłudze EdgeGateway:

Zrzut ekranu witryny Azure Portal odcisku palca urządzenia EdgeGateway w witrynie ContosoIotHub.

Podsumowując, firma ContosoIotHub ufa usłudze EdgeGateway , ponieważ usługa EdgeGateway przedstawia prawidłowy certyfikat tożsamości urządzenia usługi IoT Edge z odciskiem palca zgodnym z tym, który został zarejestrowany w usłudze IoT Hub.

Aby uzyskać więcej informacji na temat procesu tworzenia certyfikatów, zobacz Tworzenie i aprowizowanie urządzenia usługi IoT Edge w systemie Linux przy użyciu certyfikatów X.509.

Uwaga

Niniejszy przykład nie obejmuje usługi Azure IoT Hub Device Provisioning Service (DPS), która obsługuje uwierzytelnianie przy użyciu urzędu certyfikacji X.509 w IoT Edge, kiedy jest aprowizowana za pomocą grupy rejestracji. W przypadku usługi DPS należy przekazać certyfikat urzędu certyfikacji lub certyfikat pośredni, a następnie zweryfikować łańcuch certyfikatów, a następnie aprowizować urządzenie. Aby dowiedzieć się więcej, zobacz Zaświadczenie certyfikatu X.509 programu DPS.

W witrynie Azure Portal usługa DPS wyświetla odcisk palca SHA1 certyfikatu zamiast odcisku palca SHA256.

Usługa DPS rejestruje lub aktualizuje odcisk palca SHA256 w usłudze IoT Hub. Odcisk palca można sprawdzić za pomocą polecenia openssl x509 -in /var/lib/aziot/certd/certs/deviceid-long-random-string.cer -noout -fingerprint -sha256. Po rejestracji usługa IoT Edge używa uwierzytelniania odciskiem palca w usłudze IoT Hub. Jeśli urządzenie zostanie ponownie aprowidowane i zostanie wystawiony nowy certyfikat, usługa DPS aktualizuje usługę IoT Hub przy użyciu nowego odcisku palca.

Obecnie usługa IoT Hub nie obsługuje bezpośredniego uwierzytelniania za pomocą urzędu certyfikacji X.509 w powiązaniu z usługą IoT Edge.

Użycie certyfikatu na potrzeby operacji tożsamości modułu

Na diagramach weryfikacji certyfikatu może ona wyglądać tak, jakby usługa IoT Edge używa tylko certyfikatu do komunikacji z usługą IoT Hub. Usługa IoT Edge ma kilka modułów. Usługa IoT Edge używa certyfikatu do zarządzania tożsamościami modułów dla modułów wysyłających komunikaty. Moduły nie używają certyfikatu do uwierzytelniania w usłudze IoT Hub, ale używają kluczy SAS pochodzących z klucza prywatnego generowanego przez środowisko uruchomieniowe modułu usługi IoT Edge. Te klucze sygnatury dostępu współdzielonego nie zmieniają się nawet wtedy, gdy certyfikat tożsamości urządzenia wygaśnie. Jeśli certyfikat wygaśnie, usługa edgeHub nadal działa, ale tylko operacje tożsamości modułu kończą się niepowodzeniem.

Interakcja między modułami a usługą IoT Hub jest bezpieczna, ponieważ klucz SAS pochodzi z tajnego źródła, a IoT Edge zarządza tym kluczem bez ryzyka ingerencji ludzkiej.

Scenariusz hierarchii urządzeń zagnieżdżonych z usługą IoT Edge jako bramą

Teraz rozumiesz prostą interakcję między usługą IoT Edge i usługą IoT Hub. Usługa IoT Edge może również działać jako brama dla urządzeń podrzędnych lub innych urządzeń usługi IoT Edge. Te kanały komunikacyjne muszą być szyfrowane i zaufane. Ze względu na dodatkową złożoność rozszerzmy przykładowy scenariusz, aby uwzględnić urządzenie podrzędne.

Dodamy zwykłe urządzenie IoT o nazwie TempSensor, które łączy się z nadrzędnym urządzeniem usługi IoT EdgeGateway, które łączy się z usługą IoT Hub ContosoIotHub. Tak jak poprzednio, wszystkie uwierzytelnianie korzysta z uwierzytelniania certyfikatu X.509. W tym scenariuszu pojawiają się dwa pytania: "Czy urządzenie TempSensor jest uzasadnione?" i "Czy tożsamość urządzenia EdgeGateway jest poprawna?". Scenariusz przedstawiono tutaj:

Diagram przedstawiający połączenie między urządzeniem usługi IoT Edge, bramą usługi IoT Edge i usługą IoT Hub.

Napiwek

TempSensor to urządzenie IoT w tym scenariuszu. Koncepcja certyfikatu jest taka sama, jeśli element TempSensor jest podrzędnym urządzeniem usługi IoT Edge nadrzędnym urządzeniem EdgeGateway.

Urządzenie weryfikuje tożsamość bramy

Jak narzędzie TempSensor sprawdza, czy komunikuje się z prawdziwą bramą EdgeGateway? Gdy element TempSensor chce komunikować się z usługą EdgeGateway, funkcja TempSensor wymaga elementu EdgeGateway, aby wyświetlić identyfikator. Identyfikator musi być wystawiony przez urząd, któremu ufa tempSensor .

Diagram sekwencji przedstawiający wymianę certyfikatów z urządzenia bramy na urządzenie usługi IoT Edge z weryfikacją certyfikatu przy użyciu prywatnego głównego urzędu certyfikacji.

Przepływ jest taki sam, jak w przypadku rozmowy usługi EdgeGateway z firmą ContosoIotHub. Protokoły TempSensor i EdgeGateway używają protokołu uzgadniania TLS, aby zweryfikować tożsamość urządzenia EdgeGateway . Istnieją dwa ważne szczegóły:

  • Specyfika nazwy hosta: certyfikat przedstawiony przez usługę EdgeGateway musi być wystawiony na tę samą nazwę hosta (domenę lub adres IP), którego element TempSensor używa do nawiązywania połączenia z usługą EdgeGateway.
  • Specyfika głównego urzędu certyfikacji z podpisem własnym: łańcuch certyfikatów przedstawiony przez usługę EdgeGateway prawdopodobnie nie znajduje się w domyślnym magazynie głównym zaufanego systemu operacyjnego.

Aby zrozumieć szczegóły, najpierw przeanalizujmy łańcuch certyfikatów przedstawiony przez usługę EdgeGateway.

Diagram przepływu przedstawiający łańcuch urzędów certyfikacji dla bramy usługi IoT Edge.

Specyfika nazwy hosta

Nazwa pospolita certyfikatu CN = edgegateway.local znajduje się w górnej części łańcucha. edgegateway.local to nazwa pospolita certyfikatu serwera edgeHub. edgegateway.local jest również nazwą hosta EdgeGateway w sieci lokalnej (LAN lub VNet), w której są połączone protokoły TempSensor i EdgeGateway. Może to być prywatny adres IP, taki jak 192.168.1.23 lub w pełni kwalifikowana nazwa domeny (FQDN), taka jak diagram. Certyfikat serwera edgeHub jest generowany przy użyciu parametru nazwa hosta zdefiniowanego w pliku config.toml usługi IoT Edge. Nie należy mylić certyfikatu serwera edgeHub z certyfikatem urzędu certyfikacji edge. Aby uzyskać więcej informacji na temat zarządzania certyfikatem urzędu certyfikacji usługi Edge, zobacz Zarządzanie certyfikatami usługi IoT Edge.

Gdy element TempSensor łączy się z usługą EdgeGateway, funkcja TempSensor używa nazwy hosta edgegateway.local w celu nawiązania połączenia z usługą EdgeGateway. Element TempSensor sprawdza certyfikat przedstawiony przez usługę EdgeGateway i sprawdza, czy nazwa pospolita certyfikatu to edgegateway.local. Jeśli nazwa pospolita certyfikatu jest inna, narzędzie TempSensor odrzuca połączenie.

Uwaga

Dla uproszczenia w przykładzie przedstawiono nazwę pospolitą certyfikatu podmiotu (CN) jako właściwość, która jest weryfikowana. W praktyce, jeśli certyfikat ma alternatywną nazwę podmiotu (SAN), sieć SAN jest weryfikowana zamiast CN. Ogólnie rzecz biorąc, ponieważ sieć SAN może zawierać wiele wartości, ma zarówno główną domenę/nazwę hosta właściciela certyfikatu, jak i wszystkie domeny alternatywne.

Dlaczego edgeGateway musi być poinformowany o własnej nazwie hosta?

Usługa EdgeGateway nie ma niezawodnego sposobu, aby wiedzieć, jak inni klienci w sieci mogą się z nią łączyć. Na przykład w sieci prywatnej mogą istnieć serwery DHCP lub usługi mDNS, które wyświetlają wartość EdgeGateway jako 10.0.0.2 lub example-mdns-hostname.local. Jednak niektóre sieci mogą mieć serwery DNS mapowane edgegateway.local na .

Aby rozwiązać ten problem, usługa IoT Edge używa skonfigurowanej wartości nazwy hosta w programie config.toml i tworzy dla niego certyfikat serwera. Gdy żądanie przychodzi do modułu edgeHub , przedstawia certyfikat z właściwą nazwą pospolitą certyfikatu (CN).

Dlaczego usługa IoT Edge tworzy certyfikaty?

W tym przykładzie w łańcuchu certyfikatów występuje obciążenie ca edgegateway obciążenia iotedged. Jest to urząd certyfikacji, który istnieje na urządzeniu usługi IoT Edge znanym jako urząd certyfikacji usługi Edge (wcześniej znany jako urząd certyfikacji urządzenia w wersji 1.1). Podobnie jak główny urząd certyfikacji Baltimore CyberTrust w poprzednim przykładzie, urząd certyfikacji usługi Edge może wystawiać inne certyfikaty. Co najważniejsze, a także w tym przykładzie wystawia certyfikat serwera do modułu edgeHub . Może jednak również wystawiać certyfikaty innym modułom uruchomionym na urządzeniu usługi IoT Edge.

Ważne

Domyślnie bez konfiguracji urząd certyfikacji usługi Edge jest automatycznie generowany przez środowisko uruchomieniowe modułu usługi IoT Edge po uruchomieniu po raz pierwszy, znany jako urząd certyfikacji usługi Szybki start Edge, a następnie wystawia certyfikat do modułu edgeHub . Ten proces przyspiesza połączenie urządzenia podrzędnego, umożliwiając usłudze EdgeHub prezentowanie ważnego certyfikatu, który jest podpisany. Bez tej funkcji należy uzyskać urząd certyfikacji w celu wystawienia certyfikatu dla modułu edgeHub . Korzystanie z automatycznie wygenerowanego urzędu certyfikacji przeglądarki Microsoft Edge nie jest obsługiwane w środowisku produkcyjnym. Aby uzyskać więcej informacji na temat urzędu certyfikacji usługi Edge szybkiego startu, zobacz Szybki start Edge URZĘDU certyfikacji.

Czy nie jest niebezpieczne posiadanie certyfikatu wystawcy na urządzeniu?

Urząd certyfikacji edge został zaprojektowany w celu umożliwienia rozwiązań z ograniczoną, zawodną, kosztowną lub nieobecną łącznością, ale jednocześnie mają ścisłe przepisy lub zasady dotyczące odnawiania certyfikatów. Bez urzędu certyfikacji usługi Edge usługa IoT Edge — a w szczególności edgeHub — nie może działać.

Aby zabezpieczyć urząd certyfikacji usługi Edge w środowisku produkcyjnym:

  • Umieść klucz prywatny EdgeCA w module zaufanej platformy (TPM), najlepiej w sposób, w którym klucz prywatny jest generowany efemerycznie i nigdy nie opuszcza modułu TPM.
  • Użyj infrastruktury kluczy publicznych (PKI), do której jest rzutowy urząd certyfikacji usługi Edge. Dzięki temu można wyłączyć lub odrzucić odnawianie naruszonych certyfikatów. Infrastruktura kluczy publicznych może być zarządzana przez dział IT klienta, jeśli ma wiedzę na temat tego, jak (niższy koszt) lub za pośrednictwem komercyjnego dostawcy infrastruktury kluczy publicznych.

Specyfika głównego urzędu certyfikacji z podpisem własnym

Moduł edgeHub jest ważnym składnikiem tworzącym usługę IoT Edge przez obsługę całego ruchu przychodzącego. W tym przykładzie używa certyfikatu wystawionego przez urząd certyfikacji usługi Edge, który z kolei jest wystawiany przez główny urząd certyfikacji z podpisem własnym. Ponieważ główny urząd certyfikacji nie jest zaufany przez system operacyjny, jedynym sposobem, w jaki tempSensor ufa, jest zainstalowanie certyfikatu urzędu certyfikacji na urządzeniu. Jest to również znany jako scenariusz pakietu zaufania, w którym należy dystrybuować katalog główny do klientów, którzy muszą ufać łańcuchowi. Scenariusz pakietu zaufania może być kłopotliwy, ponieważ potrzebujesz dostępu do urządzenia i zainstalowania certyfikatu. Zainstalowanie certyfikatu wymaga planowania. Można to zrobić za pomocą skryptów, dodanych podczas produkcji lub wstępnie zainstalowanych na obrazie systemu operacyjnego.

Uwaga

Niektórzy klienci i zestawy SDK nie używają zaufanego magazynu głównego systemu operacyjnego i należy przekazać plik głównego urzędu certyfikacji bezpośrednio.

Stosując wszystkie te koncepcje, TempSensor może sprawdzić, czy komunikuje się z prawdziwym elementem EdgeGateway, ponieważ przedstawił certyfikat pasujący do adresu, a certyfikat jest podpisany przez zaufany katalog główny.

Aby sprawdzić łańcuch certyfikatów, możesz użyć openssl go na urządzeniu TempSensor . W tym przykładzie zwróć uwagę, że nazwa hosta dla połączenia jest zgodna z nazwą CN certyfikatu głębokości 0 i że główny urząd certyfikacji jest zgodny.

openssl s_client -connect edgegateway.local:8883 --CAfile my_private_root_CA.pem

depth=3 CN = my_private_root_CA
verify return:1
depth=2 CN = my_optional_intermediate_CA
verify return:1
depth=1 CN = iotedged workload ca edgegateway
verify return:1
depth=0 CN = edgegateway.local
verify return: 1
CONNECTED(00000003)
---
Certificate chain
0 s:/CN=edgegateway.local
  i:/CN=iotedged workload ca edgegateway
1 s:/CN=iotedged workload ca edgegateway
  i:/CN=my_optional_intermediate_CA
2 s:/CN=my_optional_intermediate_CA
  i:/CN=my_private_root_CA

Aby dowiedzieć się więcej o openssl poleceniu, zobacz dokumentację protokołu OpenSSL.

Możesz również sprawdzić certyfikaty, w których są one przechowywane domyślnie w programie /var/lib/aziot/certd/certs. Certyfikaty urzędu certyfikacji usługi Edge, certyfikaty tożsamości urządzeń i certyfikaty modułów można znaleźć w katalogu. Za pomocą openssl x509 poleceń można sprawdzić certyfikaty. Na przykład:

sudo ls -l /var/lib/aziot/certd/certs
total 24
-rw-r--r-- 1 aziotcs aziotcs 1090 Jul 27 21:27 aziotedgedca-86f154be7ff14480027f0d00c59c223db6d9e4ab0b559fc523cca36a7c973d6d.cer
-rw-r--r-- 1 aziotcs aziotcs 2589 Jun 22 18:25 aziotedgedmoduleIoTEdgeAPIProxy637913460334654299server-c7066944a8d35ca97f1e7380ab2afea5068f39a8112476ffc89ea2c46ca81d10.cer
-rw-r--r-- 1 aziotcs aziotcs 2576 Jun 22 18:25 aziotedgedmoduleedgeHub637911101449272999server-a0407493b6b50ee07b3fedbbb9d181e7bb5f6f52c1d071114c361aca628daa92.cer
-rw-r--r-- 1 aziotcs aziotcs 1450 Jul 27 21:27 deviceid-bd732105ef89cf8edd2606a5309c8a26b7b5599a4e124a0fe6199b6b2f60e655.cer

Podsumowując, element TempSensor może ufać usłudze EdgeGateway, ponieważ:

  • Moduł edgeHub pokazał prawidłowy certyfikat serwera modułu usługi IoT Edge dla edgegateway.local
  • Certyfikat jest wystawiany przez urząd certyfikacji usługi Edge wystawiony przez my_private_root_CA
  • Ten prywatny główny urząd certyfikacji jest również przechowywany w narzędziu TempSensor jako zaufany główny urząd certyfikacji wcześniej
  • Algorytmy kryptograficzne sprawdzają, czy łańcuch własności i wystawiania może być zaufany

Certyfikaty dla innych modułów

Inne moduły mogą pobierać certyfikaty serwera wystawione przez urząd certyfikacji usługi Edge. Na przykład moduł Grafana z interfejsem internetowym. Może również pobrać certyfikat z urzędu certyfikacji usługi Edge. Moduły są traktowane jako urządzenia podrzędne hostowane w kontenerze. Jednak uzyskanie certyfikatu ze środowiska uruchomieniowego modułu usługi IoT Edge jest specjalnymi uprawnieniami. Moduły wywołają interfejs API obciążenia, aby otrzymać certyfikat serwera w łańcuchu do skonfigurowanego urzędu certyfikacji usługi Edge.

Brama weryfikuje tożsamość urządzenia

Jak usługa EdgeGateway sprawdza, czy komunikuje się z aplikacją TempSensor? EdgeGateway używa uwierzytelniania klienta TLS do uwierzytelniania tempSensor.

Diagram przedstawiający wymianę certyfikatów między urządzeniem usługi IoT Edge i bramą z sprawdzeniem certyfikatu względem certyfikatów usługi IoT Hub.

Sekwencja jest podobna do ContosoIotHub sprawdzającego urządzenie. Jednak w scenariuszu bramy EdgeGateway opiera się na ContosoIotHub jako źródle prawdy dla rekordu certyfikatu. Usługa EdgeGateway przechowuje również kopię w trybie offline lub pamięć podręczną, jeśli nie ma połączenia z chmurą.

Napiwek

W przeciwieństwie do urządzeń IoT Edge, urządzenia podrzędne IoT nie są ograniczone do uwierzytelniania X.509 odcisku. Uwierzytelnianie urzędu certyfikacji X.509 jest również opcją. Zamiast tylko szukać dopasowania odcisku palca, EdgeGateway może również sprawdzić, czy certyfikat TempSensor jest oparty na urzędzie certyfikacji przekazanym do ContosoIotHub.

Podsumowując, funkcja EdgeGateway może ufać funkcji TempSensor, ponieważ:

  • Element TempSensor przedstawia prawidłowy certyfikat tożsamości urządzenia IoT w związku ze swoją nazwą
  • Odcisk palca certyfikatu tożsamości jest zgodny z odciskiem palca przekazanym do usługi ContosoIotHub
  • Algorytmy kryptograficzne sprawdzają, czy łańcuch własności i wystawiania może być zaufany

Gdzie uzyskać certyfikaty i zarządzanie

W większości przypadków podajesz własne certyfikaty lub używasz certyfikatów generowanych automatycznie. Na przykład urząd certyfikacji edge i certyfikat edgeHub są generowane automatycznie.

Najlepszym rozwiązaniem jest jednak skonfigurowanie urządzeń do używania serwera rejestracji za pośrednictwem serwera Secure Transport (EST) do zarządzania certyfikatami x509. Serwer EST pozwala uniknąć ręcznej obsługi i instalowania certyfikatów na urządzeniach. Aby uzyskać więcej informacji na temat korzystania z serwera EST, zobacz Configure Enrollment over Secure Transport Server for Azure IoT Edge (Konfigurowanie rejestracji za pośrednictwem bezpiecznego serwera transportu dla usługi Azure IoT Edge).

Certyfikaty można również użyć do uwierzytelniania na serwerze EST. Te certyfikaty uwierzytelniają się za pomocą serwerów EST w celu wystawiania innych certyfikatów. Usługa certyfikatów używa certyfikatu bootstrap do uwierzytelniania za pomocą serwera EST. Certyfikat bootstrap jest długotrwały. Po pierwszym uwierzytelnieniu usługa certyfikatu żąda certyfikatu tożsamości z serwera EST. Certyfikat tożsamości jest używany w przyszłych żądaniach EST do tego samego serwera.

Jeśli nie możesz użyć serwera EST, zażądaj certyfikatów od dostawcy infrastruktury kluczy publicznych. Ręcznie zarządzaj plikami certyfikatów w Twoim IoT Hub i Twoich urządzeniach IoT Edge. Aby uzyskać więcej informacji, zobacz zarządzanie certyfikatami na urządzeniu usługi IoT Edge.

W celu weryfikacji koncepcji utwórz certyfikaty testowe. Aby uzyskać więcej informacji, zobacz Tworzenie certyfikatów demonstracyjnych w celu testowania funkcji urządzeń usługi IoT Edge.

Certyfikaty w usłudze IoT

Urząd certyfikacji

Urząd certyfikacji wystawia certyfikaty cyfrowe. Urząd certyfikacji działa jako zaufana trzecia strona pomiędzy właścicielem certyfikatu a jego odbiorcą. Certyfikat cyfrowy potwierdza, że odbiorca jest właścicielem klucza publicznego. Łańcuch zaufania certyfikatów zaczyna się od certyfikatu głównego, który jest podstawą zaufania we wszystkich certyfikatach wystawianych przez urząd. Właściciel certyfikatu głównego może wystawiać dodatkowe certyfikaty pośrednie (certyfikaty urządzeń podrzędnych).

Certyfikat głównego urzędu certyfikacji

Certyfikat głównego urzędu certyfikacji jest podstawą zaufania dla procesu. W środowisku produkcyjnym zazwyczaj kupujesz ten certyfikat urzędu certyfikacji od zaufanego komercyjnego urzędu certyfikacji, takiego jak Baltimore, Verisign lub DigiCert. Jeśli kontrolujesz wszystkie urządzenia łączące się z urządzeniami IoT Edge, możesz użyć korporacyjnego urzędu certyfikacji. W obu przypadkach łańcuch certyfikatów z usługi IoT Edge do usługi IoT Hub używa certyfikatu głównego urzędu certyfikacji. Urządzenia podrzędne IoT muszą ufać certyfikatowi głównemu. Przechowuj certyfikat urzędu certyfikacji root CA w zaufanym magazynie głównych certyfikatów lub podaj szczegóły certyfikatu w kodzie aplikacji.

Certyfikaty pośrednie

W typowym procesie produkcyjnym dla bezpiecznych urządzeń producenci rzadko używają certyfikatów root CA bezpośrednio ze względu na ryzyko wycieku lub narażenia. Certyfikat głównego urzędu certyfikacji tworzy i podpisuje cyfrowo co najmniej jeden certyfikat pośredniego urzędu certyfikacji. Może istnieć jeden lub łańcuch certyfikatów pośrednich. Scenariusze wymagające łańcucha certyfikatów pośrednich obejmują:

  • Hierarchia działów w obrębie producenta
  • Wiele firm zaangażowanych szeregowo w produkcję urządzenia
  • Klient kupując główny urząd certyfikacji i wyprowadzając certyfikat podpisywania dla producenta w celu logowania urządzeń w imieniu klienta

Producent używa pośredniego certyfikatu urzędu certyfikacji na końcu tego łańcucha do podpisania certyfikatu urzędu certyfikacji edge umieszczonego na urządzeniu końcowym. Zakład produkcyjny ściśle chroni te certyfikaty pośrednie. Ścisłe procesy fizyczne i elektroniczne kontrolują ich użycie.

Następne kroki