Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano proces zaświadczania tożsamości podczas korzystania z kluczy symetrycznych w usłudze Device Provisioning Service. Uwierzytelnianie za pomocą klucza symetrycznego to intuicyjna metoda uwierzytelniania urządzenia przy użyciu wystąpienia usługi Device Provisioning Service. Ta metoda zaświadczania reprezentuje środowisko "Hello world" dla deweloperów, którzy są nowi w aprowizacji urządzeń lub nie mają rygorystycznych wymagań dotyczących zabezpieczeń. Zaświadczania urządzeń przy użyciu modułu TPM lub certyfikatu X.509 są bezpieczniejsze i powinny być używane do bardziej rygorystycznych wymagań dotyczących zabezpieczeń.
Rejestracje kluczy symetrycznych zapewniają również możliwość uruchamiania starszych urządzeń z ograniczoną funkcjonalnością zabezpieczeń w chmurze za pośrednictwem usługi Azure IoT.
Tworzenie klucza symetrycznego
Domyślnie usługa Device Provisioning Service tworzy nowe klucze symetryczne o długości 64 bajtów po utworzeniu nowych rejestracji z włączoną opcją Wygeneruj klucze symetryczne automatycznie .
Możesz również podać własne klucze symetryczne dla rejestracji, wyłączając tę opcję. Klucze symetryczne muszą mieć format Base 64 i mieć długość klucza z zakresu od 16 bajtów do 64 bajtów.
Szczegółowy proces zaświadczania
Zaświadczanie klucza symetrycznego za pomocą usługi Device Provisioning Service jest wykonywane przy użyciu tych samych tokenów zabezpieczających obsługiwanych przez centra IoT w celu identyfikowania urządzeń. Te tokeny zabezpieczające to tokeny sygnatury dostępu współdzielonego (SAS).
Tokeny SAS mają skrót sygnatury utworzony przy użyciu symetrycznego klucza. Usługa przygotowywania urządzeń odtwarza podpis, aby potwierdzić, czy przedstawiony podczas atestacji token zabezpieczający jest autentyczny.
Tokeny SAS mają następującą formę:
SharedAccessSignature sig={signature}&se={expiry}&skn={policyName}&sr={URL-encoded-resourceURI}
Oto składniki każdego tokenu:
| Wartość | Description |
|---|---|
| {signature} | Ciąg podpisu HMAC-SHA256. W przypadku rejestracji indywidualnych ten podpis jest generowany przy użyciu klucza symetrycznego (podstawowego lub pomocniczego) do wykonania skrótu. W przypadku grup rejestracji klucz pochodzący z klucza grupy rejestracji jest używany do wykonywania skrótu. Skrót jest wykonywany na komunikacie w postaci: URL-encoded-resourceURI + "\n" + expiry.
Ważne: klucz musi zostać zdekodowany z base64 przed użyciem do wykonywania obliczeń HMAC-SHA256. Ponadto wynik podpisu musi być zakodowany pod adresem URL. |
| {resourceURI} | Identyfikator URI punktu końcowego rejestracji, do którego można uzyskać dostęp za pomocą tego tokenu, zaczynając od identyfikatora zakresu dla instancji usługi Device Provisioning Service. Na przykład {Scope ID}/registrations/{Registration ID} |
| {wygaśnięcie} | Ciągi znaków UTF-8 reprezentujące liczbę sekund od początku epoki 00:00:00 UTC 1 stycznia 1970 r. |
| {URL-zakodowany-resourceURI} | Kodowanie małymi literami adresu URL małymi literami identyfikatora URI zasobu |
| {policyName} | Nazwa zasad dostępu współdzielonego, do których odwołuje się ten token. Nazwa polityki używana podczas konfiguracji za pomocą zaświadczania klucza symetrycznego to rejestracja. |
Przykłady kodu tworzące token SAS można znaleźć w temacie Struktura tokenu SAS.
Rejestracje indywidualne z kluczami symetrycznymi
Gdy urządzenie jest uwierzytelniane przy pomocy indywidualnej rejestracji, używa klucza symetrycznego zdefiniowanego we wpisie rejestracji indywidualnej do utworzenia skróconej sygnatury dla tokenu SAS.
Rejestracje grup z kluczami symetrycznymi
W przeciwieństwie do rejestracji indywidualnej klucz symetryczny grupy rejestracji nie jest używany bezpośrednio przez urządzenia podczas udostępniania. Zamiast tego urządzenia konfigurowane za pośrednictwem grupy zapisów korzystają z wywodzonego klucza urządzenia. Klucz pochodny urządzenia jest skrótem identyfikatora rejestracji urządzenia i jest obliczany przy użyciu klucza symetrycznego grupy rejestracji. Urządzenie może następnie użyć swojego pochodnego klucza urządzenia do podpisania tokenu SAS, który jest używany do rejestracji w usłudze DPS. Ponieważ urządzenie wysyła identyfikator rejestracji podczas rejestrowania, usługa DPS może użyć klucza symetrycznego grupy rejestracji w celu ponownego wygenerowania pochodnego klucza urządzenia i zweryfikowania podpisu w tokenie SAS.
Najpierw unikatowy identyfikator rejestracji jest definiowany dla każdego urządzenia uwierzytelniającego się za pośrednictwem grupy rejestracji. Identyfikator rejestracji jest niezależnym od wielkości liter ciągiem (do 128 znaków) znaków alfanumerycznych oraz znaków specjalnych: - . _ :. Ostatni znak musi być alfanumeryczny lub kreskowy ('-'). Identyfikator rejestracji powinien być unikalny i rozpoznawać urządzenie. Na przykład adres MAC lub numer seryjny dostępny w celu unikatowego zidentyfikowania urządzenia. W takim przypadku identyfikator rejestracji może składać się z adresu MAC i numeru seryjnego podobnego do następującego przykładu:
sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
Po zdefiniowaniu identyfikatora rejestracji dla urządzenia klucz symetryczny dla grupy rejestracji jest używany do obliczania skrótu HMAC-SHA256 identyfikatora rejestracji w celu utworzenia pochodnego klucza urządzenia. Niektóre przykładowe podejścia do przetwarzania pochodnego klucza urządzenia są podane na poniższych kartach.
Rozszerzenie IoT dla interfejsu wiersza polecenia platformy Azure udostępnia compute-device-key polecenie do generowania pochodnych kluczy urządzeń. To polecenie może być używane na systemach opartych na Windows lub Linux, w powłoce PowerShell lub Bash.
Zastąp wartość --key argumentu kluczempodstawowym z grupy rejestracji.
Zastąp wartość argumentu --registration-id identyfikatorem rejestracji.
az iot dps enrollment-group compute-device-key --key 8isrFI1sGsIlvvFSSFRiMfCNzv21fjbE/+ah/lSh3lF8e2YG1Te7w1KpZhJFFXJrqYKi9yegxkqIChbqOS9Egw== --registration-id sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
Przykładowy wynik:
"Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc="
Następnie wynikowy klucz urządzenia jest używany do generowania tokenu SAS do uwierzytelniania. Każde urządzenie w grupie rejestracji jest wymagane do zaświadczania przy użyciu tokenu zabezpieczającego wygenerowanego na podstawie unikatowego klucza pochodnego. Klucz symetryczny grupy rejestracji nie może być używany bezpośrednio do uwierzytelnienia.
Zainstaluj pochodny klucz urządzenia
W idealnym przypadku klucze urządzeń są tworzone i instalowane w fabryce. Ta metoda gwarantuje, że klucz grupy nigdy nie jest uwzględniony w żadnym oprogramowaniu wdrożonym na urządzeniu. Po przypisaniu adresu MAC lub numeru seryjnego do urządzenia, klucz może zostać uzyskany i wstrzyknięty do urządzenia w sposób, w jaki producent zdecyduje się go przechowywać.
Rozważmy poniższy diagram przedstawiający tabelę kluczy urządzeń wygenerowaną w fabryce przez utworzenie skrótu każdego identyfikatora rejestracji urządzenia przy użyciu klucza rejestracji grupy (K).
Identyfikator rejestracji i pochodny klucz urządzenia zainstalowany w fabryce reprezentuje tożsamość każdego urządzenia. Klucz urządzenia nigdy nie jest kopiowany do innej lokalizacji, a klucz grupy nigdy nie jest przechowywany na urządzeniu.
Jeśli klucze urządzeń nie są zainstalowane w fabryce, należy użyć sprzętowego modułu zabezpieczeń (HSM) do bezpiecznego przechowywania tożsamości urządzenia.
Dalsze kroki
Teraz, gdy masz już wiedzę na temat zaświadczania klucza symetrycznego, zapoznaj się z następującymi artykułami, aby dowiedzieć się więcej: