W jądrze Linuksa 6.4 wprowadzono możliwość, aby pęk kluczy maszyny mógł opcjonalnie przechowywać tylko klucze wymuszone przez CA.
Eric Snowberg z firmy Oracle pracował nad ograniczeniami dotyczącymi zbioru kluczy wymuszającymi urzędy certyfikacji, aby umożliwić wymuszanie przez urząd certyfikacji (CA) pęku kluczy komputera. Snowberg wyjaśnił w serii poprawek:
“Przed wprowadzeniem pęku kluczy maszynowych większość dystrybucji po prostu zezwalała na używanie wszystkich kluczy zawartych w pęku kluczy platformy zarówno do weryfikacji jądra, jak i modułów. Dokonywało się to za pomocą łatki spoza drzewa. Niektóre dystrybucje nawet dalej i załadował wszystkie te klucze do drugorzędnego zaufanego pęku kluczy. Pozwoliło to również właścicielowi systemu na dodanie własnego klucza do użycia IMA.
Każda dystrybucja zawiera podobną dokumentację dotyczącą podpisywania modułów jądra i rejestrowania klucza w MOK. proces jest dość prosty. Wraz z wprowadzeniem pęku kluczy maszynowych proces pozostaje w zasadzie taki sam, bez potrzeby stosowania jakichkolwiek łat spoza drzewa.
Pęk kluczy maszynowych umożliwił dystrybucjom wyeliminowanie łatek wychodzących z drzewa dla podpisywanie modułów jądra.Jednak nie pozwala użytkownikowi końcowemu na dodawanie własnych kluczy dla IMA. Obecnie pęk kluczy komputera nie może być używany jako kolejna kotwica zaufania do dodawania kluczy do pęku kluczy ima, ponieważ obecnie nie istnieje wymuszanie CA. Zwiększyłoby to obecną lukę w integralności. IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY Kconfig stwierdza, że klucze mogą być dodawane do pęków kluczy ima, jeśli klucz jest prawidłowo podpisany przez certyfikat CA we wbudowanym lub dodatkowym zaufanym pęku kluczy. Obecnie nie ma kodu wymuszającego zawartość certyfikatu urzędu certyfikacji.
Ta seria przedstawia sposób egzekwowania CA z brelokiem do maszyny. Wprowadza trzy różne sposoby konfigurowania pęku kluczy maszyny. Dodano nowe opcje Kconfig, aby kontrolować typy kluczy, które można do niego dodawać. Domyślna opcja umożliwia umieszczenie wszystkich kluczy MOK w pęku kluczy maszyny. Gdy wybrano CONFIG_INTEGRITY_CA_MACHINE_KEYRING, bit CA X.509 musi być prawdziwy, a użycie klucza musi zawierać keyCertSign; można również ustawić dowolne inne pole użytkowania. Gdy wybrano również
CONFIG_INTEGRITY_CA_MACHINE_KEYRING_MAX, bit CA X.509 musi być prawdziwy, a użycie klucza musi zawierać keyCertSign. W przypadku tej opcji wykorzystanie digitalSignature może nie być ustawione. Jeśli klucz nie przejdzie kontroli ograniczeń CA, zamiast trafiać do pęku kluczy maszyny, jest dodawany do pęku kluczy platformy. Dzięki możliwości skonfigurowania pęku kluczy
komputera z ograniczeniami urzędu certyfikacji, usunięto kod, który uniemożliwiał włączenie pęku kluczy komputera za pomocą IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY”.
Ponownie, jak stwierdzono, jest to ściśle wyrazić zgodę z zachowaniem domyślnym zezwalającym na umieszczenie wszystkich kluczy MOK w pęku kluczy komputera.
TPMDD pull request został wysłany dzisiaj dla jądra Linuksa 6.4 i zawiera tę nową funkcjonalność.
“Pęk kluczy.machine, używany do kluczy właściciela maszyny (MOK), uzyskał możliwość przechowywania tylko wymuszonych przez CA klucze i umieścić resztę w pęku kluczy.platform, oddzielając w ten sposób klucze podpisywania kodu od kluczy używanych do podpisywania certyfikatów. Zasadniczo odblokowuje to użycie pęku kluczy.machine jako kotwicy zaufania dla IMA. Jest to funkcja opcjonalna, co oznacza, że dodatkowe ograniczenia nie zablokują nikogo, kto nie dba o nie”.
Udoskonalenia Linuksa związane z obsługą Integrity Measurement Architecture (IMA) pozostają dużym obszarem zainteresowania dla interesariuszy korporacyjnych.