Met de Linux 6.4-kernel wordt de mogelijkheid geïntroduceerd zodat de sleutelring van de machine optioneel alleen door CA afgedwongen sleutels kan opslaan.
Eric Snowberg van Oracle heeft gewerkt aan CA-afdwingingssleutelringbeperkingen, zodat de certificeringsinstantie (CA) de machinesleutelring kan afdwingen. Snowberg uitgelegd in de patchserie:
“Voorafgaand aan de introductie van de machine-sleutelhanger, stonden de meeste distro’s gewoon toe dat alle sleutels in de platform-sleutelhanger werden gebruikt voor zowel kernel-als moduleverificatie. Dit werd gedaan door een out-of-tree-patch. Sommige distro’s namen het zelfs verder en laadde al deze sleutels in de secundaire vertrouwde sleutelring. Hierdoor kon de systeemeigenaar ook zijn eigen sleutel toevoegen voor IMA-gebruik.
Elke distro bevat vergelijkbare documentatie over het ondertekenen van kernelmodules en het inschrijven van de sleutel in de MOK. proces is vrij eenvoudig. Met de introductie van de machinesleutelhanger blijft het proces in wezen hetzelfde, zonder dat er boompatches nodig zijn.
Met de machinesleutelring konden distro’s de out of treepatches voor ondertekening van de kernelmodule.Het schiet echter tekort om de eindgebruiker toe te staan zijn eigen sleutels voor IMA toe te voegen. Momenteel kan de machinesleutelring niet worden gebruikt als een ander vertrouwensanker voor het toevoegen van sleutels aan de ima-sleutelhanger, aangezien CA-handhaving momenteel niet bestaat. Dit zou de huidige integriteitskloof vergroten. De IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY Kconfig geeft aan dat sleutels kunnen worden toegevoegd aan de ima-sleutelhangers als de sleutel geldig is ondertekend door een CA-certificaat in de ingebouwde of secundaire vertrouwde sleutelring van het systeem. Momenteel is er geen code die de inhoud van een CA-certificaat afdwingt.
Deze serie introduceert een manier om CA-handhaving uit te voeren met de machinesleutelhanger. Het introduceert drie verschillende manieren om de sleutelhanger van de machine te configureren. Er zijn nieuwe Kconfig-opties toegevoegd om te bepalen welke soorten sleutels eraan kunnen worden toegevoegd. Met de standaardoptie kunnen alle MOK-sleutels in de sleutelhanger van de machine worden geplaatst. Wanneer CONFIG_INTEGRITY_CA_MACHINE_KEYRING is geselecteerd, moet de X.509 CA-bit waar zijn en moet het sleutelgebruik keyCertSign bevatten; elk ander gebruiksveld kan ook worden ingesteld. Als ook
CONFIG_INTEGRITY_CA_MACHINE_KEYRING_MAX is geselecteerd, moet de X.509 CA-bit waar zijn en moet het sleutelgebruik keyCertSign bevatten. Bij deze optie kan het gebruik van digitale handtekeningen niet worden ingesteld. Als een sleutel niet door de CA-restrictiecontrole komt, wordt deze in plaats van in de sleutelring van de machine toegevoegd aan de platformsleutelring. Met de mogelijkheid om de
sleutelhanger van de machine te configureren met CA-beperkingen, is code verwijderd die ervoor zorgde dat de sleutelring van de machine niet kon worden ingeschakeld met IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY.”
Nogmaals, zoals vermeld, is dit strikt aanmelden met het standaardgedrag waarbij alle MOK-sleutels in de sleutelring van de machine worden geplaatst.
De TPMDD pull request is vandaag verzonden voor de Linux 6.4-kernel en bevat deze nieuwe functionaliteit.
“De.machine keyring, gebruikt voor Machine Owner Keys (MOK), kreeg de mogelijkheid om alleen CA-afgedwongen op te slaan sleutels en laat de.platform-sleutelhanger rusten, waardoor de codeondertekeningssleutels worden gescheiden van de sleutels die worden gebruikt om certificaten te ondertekenen. Dit ontgrendelt in wezen het gebruik van de.machine-sleutelhanger als een vertrouwensanker voor IMA. Het is een opt-in-functie, wat betekent dat de extra beperkingen niemand zullen blokkeren die er niet om geeft.”
Linux-verbeteringen rond de Integrity Measurement Architecture (IMA)-behandeling blijven een groot interessegebied voor zakelijke belanghebbenden.