Re: [PATCH v3 10/14] KEYS: change link restriction for secondary to also trust mok

From: Eric Snowberg
Date: Thu Aug 12 2021 - 18:11:18 EST



> On Aug 12, 2021, at 1:46 PM, Mimi Zohar <zohar@xxxxxxxxxxxxx> wrote:
>
> Hi Eric,
>
> On Wed, 2021-08-11 at 22:18 -0400, Eric Snowberg wrote:
>> With the introduction of the mok keyring, the end-user may choose to
>> trust Machine Owner Keys (MOK) within the kernel. If they have chosen to
>> trust them, the .mok keyring will contain these keys. If not, the mok
>> keyring will always be empty. Update the restriction check to allow the
>> secondary trusted keyring to also trust mok keys.
>>
>> Signed-off-by: Eric Snowberg <eric.snowberg@xxxxxxxxxx>
>> ---
>> v3: Initial version
>> ---
>> certs/system_keyring.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/certs/system_keyring.c b/certs/system_keyring.c
>> index cb773e09ea67..8cc19a1ff051 100644
>> --- a/certs/system_keyring.c
>> +++ b/certs/system_keyring.c
>> @@ -110,7 +110,7 @@ static __init struct key_restriction *get_builtin_and_secondary_restriction(void
>> if (!restriction)
>> panic("Can't allocate secondary trusted keyring restriction\n");
>>
>> - restriction->check = restrict_link_by_builtin_and_secondary_trusted;
>> + restriction->check = restrict_link_by_builtin_secondary_and_ca_trusted;
>>
>> return restriction;
>> }
>
> Not everyone needs to build a generic kernel, like the distros. As
> previously discussed, not everyone is willing to trust the new MOK
> keyring nor the UEFI variable for enabling it. For those environments,
> they should be able to totally disable the MOK keyring.
>
> Please define a Kconfig similar to "CONFIG_SECONDARY_TRUSTED_KEYRING"
> for MOK. The "restriction" would be based on the new Kconfig being
> enabled.

Yes, I can add that. Currently there is a Kconfig to enable the secondary
and another for IMA to trust the secondary. Would you like to see two new
Kconfig options added? One that allows the secondary to use the mok as a new
trust source and another for IMA to trust the mok keyring. Or a single Kconfig
that handles both? Thanks.