Poświadczanie za pomocą modułu TPM

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, oprogramowania układowego lub zintegrowanego modułu TPM. Emulowane oprogramowanie modułów TPM doskonale nadają się do tworzenia prototypów lub testowania, ale nie zapewniają tego samego poziomu zabezpieczeń co dyskretne, układowe lub zintegrowane moduły 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ą klucza HMAC i ich kluczami poręczenia. Moduł TPM to branżowy standard ISO z grupy zaufanych komputerów. Więcej informacji na temat modułu TPM można przeczytać na temat kompletnej specyfikacji MODUŁU TPM 2.0 lub specyfikacji ISO/IEC 11889. W tym artykule założono również, ż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ć koncepcyjnie, co dzieje się z mikroukładem zabezpieczeń modułu TPM, gdy urządzenie aprowizuje i dlaczego jest tak bezpieczne.

Omówienie

Moduły TPM używają klucza poręczenia (EK) jako bezpiecznego katalogu głównego zaufania. Klucz EK jest unikatowy dla modułu TPM i zasadniczo zmienia urządzenie na nowe.

Moduły TPM mają inny typ klucza nazywanego kluczem głównym magazynu (SRK). SRK może zostać wygenerowany przez właściciela modułu TPM po przejąniu własności 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 do samego modułu TPM dla tego właściciela. SRK udostępnia piaskownicę do przechowywania kluczy przez właściciela i zapewnia możliwość odwoływania 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 ma on zarówno EK, jak i SRK, który jest dostępny do użycia.

Diagram przedstawiający przejęcie własności modułu TPM.

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 podczas produkcji lub testowania końcowego i przekazać EK_pub do usługi aprowizacji, aby urządzenie było rozpoznawane podczas nawiązywania połączenia z aprowizowaniem. 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 urządzenie nadal będzie rozpoznawane przez usługę Device Provisioning Podczas nawiązywania połączenia z aprowizowaniem.

Proces zaświadczania

Gdy urządzenie z modułem TPM łączy się z usługą Device Provisioning Service, usługa najpierw sprawdza podane EK_pub względem EK_pub przechowywanych na liście rejestracji. Jeśli EK_pubs nie są zgodne, urządzenie nie może aprowizować. Jeśli EK_pubs się dopasować, usługa wymaga, aby urządzenie udowodniło własność prywatnej części klucza EK za pośrednictwem wyzwania innego niż wyzwanie, które jest bezpiecznym wyzwaniem używanym do udowodnienia tożsamości. Usługa Device Provisioning Generuje inną wartość, a następnie szyfruje ją przy użyciu protokołu SRK, a następnie EK_pub, które są dostarczane przez urządzenie podczas początkowego wywołania rejestracji. Moduł TPM zawsze zachowuje prywatną część klucza EK. Zapobiega to fałszowaniu i zapewnia bezpieczne aprowizowanie tokenów SAS na autoryzowanych urządzeniach.

Omówimy szczegółowo proces zaświadczania.

Urządzenie żąda przypisania usługi IoT Hub

Najpierw urządzenie łączy się z usługą Device Provisioning i żąda aprowizacji. W ten sposób urządzenie udostępnia usłudze identyfikator rejestracji, zakres identyfikatora oraz EK_pub i SRK_pub z modułu TPM. Usługa przekazuje zaszyfrowany element inny niż z powrotem do urządzenia i prosi urządzenie o odszyfrowywanie elementu innego i użycie go do podpisania tokenu SAS w celu ponownego nawiązania połączenia i zakończenia aprowizacji.

Aprowizowanie żądań urządzeń

Wyzwanie niezwiązane

Urządzenie pobiera nonce i używa prywatnych części klucza EK i SRK, aby odszyfrować nonce do modułu TPM; kolejność delegatów szyfrowania niezwiązanych z zaufaniem od klucza EK, który jest niezmienny, do SRK, który może ulec zmianie, jeśli nowy właściciel przejmuje własność modułu TPM.

Odszyfrowywanie nietypowego

Weryfikowanie poświadczeń innych niż i odbieranie poświadczeń

Urządzenie może następnie podpisać token SAS przy użyciu odszyfrowanego elementu innego niż i ponownie opublikować połączenie z usługą Device Provisioning Przy użyciu podpisanego tokenu SAS. Po zakończeniu zadania Nonce usługa umożliwia aprowizację urządzenia.

Ponowne ustanawianie połączenia z usługą Device Provisioning w celu zweryfikowania własności klucza EK