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 pojęcia związane z aprowizacją urządzeń przy użyciu zaświadczania modułu TPM (Trusted Platform Module) w usłudze Device Provisioning Service (DPS). Ten artykuł dotyczy wszystkich osób zaangażowanych w przygotowanie urządzenia do wdrożenia.
Moduł TPM (Trusted Platform Module) to typ sprzętowego modułu zabezpieczeń (HSM). W tym artykule założono, że używasz dyskretnego, opartego na oprogramowaniu układowym lub zintegrowanego modułu TPM. TPM-emulowane programowo doskonale nadają się do tworzenia prototypów lub testowania, ale nie zapewniają tego samego poziomu bezpieczeństwa co dyskretne, układowe lub zintegrowane TPM. Nie zalecamy używania programowych modułów TPM w środowisku produkcyjnym.
Ten artykuł dotyczy tylko urządzeń korzystających z modułu TPM 2.0 z obsługą kluczy uwierzytelniania komunikatów opartych na skrótach (HMAC) i ich kluczami poręczenia. TPM jest branżowym standardem ISO opracowanym przez Trusted Computing Group, a więcej informacji można znaleźć w kompletnej specyfikacji TPM 2.0 lub specyfikacji ISO/IEC 11889. Artykuł zakłada, że znasz pary kluczy publicznych i prywatnych oraz sposób ich użycia do szyfrowania.
Zestawy SDK urządzeń Device Provisioning Service obsługują wszystkie elementy opisane w tym artykule. Nie ma potrzeby implementowania obsługi modułu TPM, jeśli używasz zestawów SDK na urządzeniach. Ten artykuł pomaga zrozumieć w sposób koncepcyjny, co się dzieje z mikroukładem zabezpieczeń modułu TPM, gdy urządzenie jest konfigurowane oraz dlaczego to rozwiązanie jest tak bezpieczne.
Przegląd
Moduły TPM używają klucza poręczenia (EK) jako bezpiecznego podstawowego elementu zaufania. Zmiana klucza EK, który jest unikatowy dla modułu TPM, zasadniczo przekształca urządzenie w nowe.
Moduły TPM mają inny typ klucza nazywanego kluczem głównym magazynu (SRK). Właściciel modułu TPM może wygenerować SRK po tym, jak przejmuje własność modułu TPM. Przejęcie własności modułu TPM jest specyficznym dla modułu TPM sposobem na powiedzenie "ktoś ustawia hasło w module HSM". Jeśli urządzenie TPM zostanie sprzedane nowemu właścicielowi, nowy właściciel może przejąć własność modułu TPM w celu wygenerowania nowego SRK. Nowa generacja SRK gwarantuje, że poprzedni właściciel nie może używać modułu TPM. Ponieważ SRK jest unikatowy dla właściciela modułu TPM, SRK może służyć do zapieczętowania danych w samym module TPM dla tego właściciela. SRK oferuje środowisko do przechowywania kluczy przez właściciela oraz umożliwia odwołanie dostępu w przypadku sprzedaży urządzenia lub modułu TPM. To jak przeprowadzka do nowego domu: przejęcie własności zmienia zamki na drzwiach i niszczy wszystkie meble pozostawione przez poprzednich właścicieli (SRK), ale nie można zmienić adresu domu (EK).
Po skonfigurowaniu urządzenia jest dostępne zarówno EK, jak i SRK do użycia.
Konkretne kroki związane z przejęciem własności modułu TPM różnią się w zależności od producenta, zestawu używanych narzędzi TPM i systemu operacyjnego urządzenia.
Usługa Device Provisioning Service używa publicznej części klucza EK (EK_pub) do identyfikowania i rejestrowania urządzeń. Dostawca urządzenia może odczytać EK_pub w trakcie produkcji lub testów końcowych i przekazać EK_pub do usługi aprowizacji, aby urządzenie było rozpoznawane podczas łączenia się z usługą aprowizacji. Usługa Device Provisioning nie sprawdza SRK ani właściciela, więc "czyszczenie" modułu TPM usuwa dane klienta, ale EK (i inne dane dostawcy) jest zachowywany, a usługa Device Provisioning nadal rozpoznaje urządzenie przy połączeniu w celu prowizjonowania.
Proces zaświadczania
Gdy urządzenie z modułem TPM łączy się z usługą Device Provisioning Service, usługa najpierw porównuje podane EK_pub z EK_pub przechowywanym na liście rejestracji. Jeśli EK_pubs nie są zgodne, urządzenie nie może zostać skonfigurowane. Jeśli EK_pubs się dopasują, usługa wymaga, aby urządzenie udowodniło własność prywatnej części klucza EK za pomocą wyzwania przy pomocy liczby jednorazowej (nonce), które jest bezpiecznym wyzwaniem używanym do udowodnienia tożsamości. Usługa Device Provisioning generuje wartość jednorazową, a następnie szyfruje ją przy użyciu SRK, a później EK_pub, które są dostarczane przez urządzenie podczas początkowego wywołania rejestracji. Moduł TPM zawsze chroni prywatną część klucza EK. Zabezpieczenia te uniemożliwiają fałszowanie i zapewniają bezpieczne aprowizowanie tokenów SAS na autoryzowanych urządzeniach.
Omówimy szczegółowo proces zaświadczania.
Urządzenie prosi o przypisanie do usługi IoT Hub
Najpierw urządzenie łączy się z Usługą Aprowizacji Urządzeń i prosi o aprowizację. W ten sposób urządzenie przekazuje usłudze swój identyfikator rejestracyjny, zakres identyfikatora oraz klucze publiczne EK_pub i SRK_pub z modułu TPM. Usługa przekazuje zaszyfrowaną liczbę jednorazową z powrotem do urządzenia i prosi urządzenie o jej odszyfrowanie oraz użycie do podpisania tokenu SAS w celu ponownego połączenia i zakończenia aprowizacji.
Wyzwanie niezwiązane
Urządzenie pobiera nonce i używa prywatnych części klucza EK i SRK, aby odszyfrować nonce wewnątrz modułu TPM; kolejność szyfrowania nonce deleguje zaufanie od klucza EK, który jest niezmienny, do SRK, który może ulec zmianie, jeśli nowy właściciel obejmie własność modułu TPM.
Zweryfikuj wartość jednostkową i odbierz poświadczenia
Urządzenie może następnie podpisać token SAS przy użyciu odszyfrowanego kodu jednorazowego i ponownie nawiązać połączenie z usługą Device Provisioning Service przy użyciu podpisanego tokenu SAS. Po zakończeniu zadania Nonce, usługa umożliwia konfigurację urządzenia.