LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Eric Snowberg <eric.snowberg@oracle.com> To: keyrings@vger.kernel.org, linux-integrity@vger.kernel.org, zohar@linux.ibm.com, dhowells@redhat.com, dwmw2@infradead.org, herbert@gondor.apana.org.au, davem@davemloft.net, jarkko@kernel.org, jmorris@namei.org, serge@hallyn.com Cc: eric.snowberg@oracle.com, keescook@chromium.org, gregkh@linuxfoundation.org, torvalds@linux-foundation.org, scott.branden@broadcom.com, weiyongjun1@huawei.com, nayna@linux.ibm.com, ebiggers@google.com, ardb@kernel.org, nramas@linux.microsoft.com, lszubowi@redhat.com, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, linux-security-module@vger.kernel.org, James.Bottomley@HansenPartnership.com, pjones@redhat.com, glin@suse.com, konrad.wilk@oracle.com Subject: [PATCH v3 04/14] integrity: add add_to_mok_keyring Date: Wed, 11 Aug 2021 22:18:45 -0400 [thread overview] Message-ID: <20210812021855.3083178-5-eric.snowberg@oracle.com> (raw) In-Reply-To: <20210812021855.3083178-1-eric.snowberg@oracle.com> Add the ability to load Machine Owner Key (MOK) keys to the mok keyring. If the permissions do not allow the key to be added to the mok keyring this is not an error, add it to the platform keyring instead. Signed-off-by: Eric Snowberg <eric.snowberg@oracle.com> --- v1: Initial version v3: Unmodified from v1 --- security/integrity/integrity.h | 4 ++++ .../integrity/platform_certs/mok_keyring.c | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/security/integrity/integrity.h b/security/integrity/integrity.h index e0e17ccba2e6..60d5c7ba05b2 100644 --- a/security/integrity/integrity.h +++ b/security/integrity/integrity.h @@ -278,9 +278,13 @@ integrity_audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int type) #ifdef CONFIG_INTEGRITY_PLATFORM_KEYRING void __init add_to_platform_keyring(const char *source, const void *data, size_t len); +void __init add_to_mok_keyring(const char *source, const void *data, size_t len); #else static inline void __init add_to_platform_keyring(const char *source, const void *data, size_t len) { } +void __init add_to_mok_keyring(const char *source, const void *data, size_t len) +{ +} #endif diff --git a/security/integrity/platform_certs/mok_keyring.c b/security/integrity/platform_certs/mok_keyring.c index fe4f2d336260..f260edac0863 100644 --- a/security/integrity/platform_certs/mok_keyring.c +++ b/security/integrity/platform_certs/mok_keyring.c @@ -21,6 +21,27 @@ static __init int mok_keyring_init(void) } device_initcall(mok_keyring_init); +void __init add_to_mok_keyring(const char *source, const void *data, size_t len) +{ + key_perm_t perm; + int rc; + + perm = (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_VIEW; + rc = integrity_load_cert(INTEGRITY_KEYRING_MOK, source, data, len, perm); + + /* + * If the mok keyring restrictions prevented the cert from loading, + * this is not an error. Just load it into the platform keyring + * instead. + */ + if (rc) + rc = integrity_load_cert(INTEGRITY_KEYRING_PLATFORM, source, + data, len, perm); + + if (rc) + pr_info("Error adding keys to mok keyring %s\n", source); +} + /* * Try to load the MokListTrustedRT UEFI variable to see if we should trust * the mok keys within the kernel. It is not an error if this variable -- 2.18.4
next prev parent reply other threads:[~2021-08-12 2:21 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-12 2:18 [PATCH v3 00/14] Enroll kernel keys thru MOK Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 01/14] integrity: Introduce a Linux keyring for the Machine Owner Key (MOK) Eric Snowberg 2021-08-12 18:58 ` Jarkko Sakkinen 2021-08-12 22:16 ` Eric Snowberg 2021-08-13 18:26 ` Nayna 2021-08-12 21:31 ` Mimi Zohar 2021-08-12 22:36 ` Eric Snowberg 2021-08-13 0:35 ` Mimi Zohar 2021-08-12 2:18 ` [PATCH v3 02/14] KEYS: CA link restriction Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 03/14] integrity: Trust MOK keys if MokListTrustedRT found Eric Snowberg 2021-08-12 2:18 ` Eric Snowberg [this message] 2021-08-12 19:32 ` [PATCH v3 04/14] integrity: add add_to_mok_keyring Jarkko Sakkinen 2021-08-12 22:04 ` Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 05/14] integrity: restrict INTEGRITY_KEYRING_MOK to restrict_link_by_ca Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 06/14] integrity: accessor function to get trust_moklist Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 07/14] integrity: add new keyring handler for mok keys Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 08/14] KEYS: add a reference to mok keyring Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 09/14] KEYS: Introduce link restriction to include builtin, secondary and mok keys Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 10/14] KEYS: change link restriction for secondary to also trust mok Eric Snowberg 2021-08-12 19:46 ` Mimi Zohar 2021-08-12 22:10 ` Eric Snowberg 2021-08-12 22:14 ` Mimi Zohar 2021-08-12 2:18 ` [PATCH v3 11/14] KEYS: link secondary_trusted_keys to mok trusted keys Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 12/14] integrity: Do not allow mok keyring updates following init Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 13/14] integrity: store reference to mok keyring Eric Snowberg 2021-08-12 2:18 ` [PATCH v3 14/14] integrity: change ima link restriction to include mok keys Eric Snowberg
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210812021855.3083178-5-eric.snowberg@oracle.com \ --to=eric.snowberg@oracle.com \ --cc=James.Bottomley@HansenPartnership.com \ --cc=ardb@kernel.org \ --cc=davem@davemloft.net \ --cc=dhowells@redhat.com \ --cc=dwmw2@infradead.org \ --cc=ebiggers@google.com \ --cc=glin@suse.com \ --cc=gregkh@linuxfoundation.org \ --cc=herbert@gondor.apana.org.au \ --cc=jarkko@kernel.org \ --cc=jmorris@namei.org \ --cc=keescook@chromium.org \ --cc=keyrings@vger.kernel.org \ --cc=konrad.wilk@oracle.com \ --cc=linux-crypto@vger.kernel.org \ --cc=linux-integrity@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=lszubowi@redhat.com \ --cc=nayna@linux.ibm.com \ --cc=nramas@linux.microsoft.com \ --cc=pjones@redhat.com \ --cc=scott.branden@broadcom.com \ --cc=serge@hallyn.com \ --cc=torvalds@linux-foundation.org \ --cc=weiyongjun1@huawei.com \ --cc=zohar@linux.ibm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).