All of lore.kernel.org
 help / color / mirror / Atom feed
From: dhowells@redhat.com (David Howells)
To: linux-security-module@vger.kernel.org
Subject: [PATCH 08a/30] kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE
Date: Wed, 21 Feb 2018 16:20:51 +0000	[thread overview]
Message-ID: <23576.1519230051@warthog.procyon.org.uk> (raw)
In-Reply-To: <20180119125425.l72meyyc2qtrriwe@dwarf.suse.cz>

Jiri Bohac <jbohac@suse.cz> wrote:

> Key verification may and will fail for lots of reasons which is
> just going to make a user's life harder. E.g. you want to kexec
> an old kernel with an expired key. Or your date is just wrong and
> you get -EKEYEXPIRED.

Note that we can't check for expired keys as we can't trust the system clock
to be correct at this point.

> Also, only now I found that some of the error codes the crypto
> code returns yield really confusing messages (e.g.
> kexec_file_load of an unsigned kernel returns -ELIBBAD which
> makes kexec exit with "kexec_file_load failed: Accessing a
> corrupted shared library").

Yeah, that should be fixed.

> Maybe the error code could be unified to -EKEYREJECTED for all
> sorts of key verification failures?

Things like ENOMEM and EINTR definitely need to stay separate (not that I
allow interruption at the moment).

ENOKEY (couldn't find matching key), EINVAL (didn't recognise identifier),
ENOPKG (couldn't find a crypto algo) and EBADMSG (couldn't parse signature)
are arguable.  I think there's a valid case for treating ENOKEY, EINVAL and
ENOPKG differently to EKEYREJECTED - more so for ENOKEY.  In my opinion,
ENOKEY, EINVAL and ENOPKG are not fatal errors if we're not enforcing
signature checking, but EKEYREJECTED and EBADMSG are.

David
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: David Howells <dhowells@redhat.com>
To: Jiri Bohac <jbohac@suse.cz>
Cc: dhowells@redhat.com, linux-security-module@vger.kernel.org,
	gnomes@lxorguk.ukuu.org.uk, linux-efi@vger.kernel.org,
	linux-kernel@vger.kernel.org, jforbes@redhat.com,
	Chun-Yi Lee <joeyli.kernel@gmail.com>
Subject: Re: [PATCH 08a/30] kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE
Date: Wed, 21 Feb 2018 16:20:51 +0000	[thread overview]
Message-ID: <23576.1519230051@warthog.procyon.org.uk> (raw)
In-Reply-To: <20180119125425.l72meyyc2qtrriwe@dwarf.suse.cz>

Jiri Bohac <jbohac@suse.cz> wrote:

> Key verification may and will fail for lots of reasons which is
> just going to make a user's life harder. E.g. you want to kexec
> an old kernel with an expired key. Or your date is just wrong and
> you get -EKEYEXPIRED.

Note that we can't check for expired keys as we can't trust the system clock
to be correct at this point.

> Also, only now I found that some of the error codes the crypto
> code returns yield really confusing messages (e.g.
> kexec_file_load of an unsigned kernel returns -ELIBBAD which
> makes kexec exit with "kexec_file_load failed: Accessing a
> corrupted shared library").

Yeah, that should be fixed.

> Maybe the error code could be unified to -EKEYREJECTED for all
> sorts of key verification failures?

Things like ENOMEM and EINTR definitely need to stay separate (not that I
allow interruption at the moment).

ENOKEY (couldn't find matching key), EINVAL (didn't recognise identifier),
ENOPKG (couldn't find a crypto algo) and EBADMSG (couldn't parse signature)
are arguable.  I think there's a valid case for treating ENOKEY, EINVAL and
ENOPKG differently to EKEYREJECTED - more so for ENOKEY.  In my opinion,
ENOKEY, EINVAL and ENOPKG are not fatal errors if we're not enforcing
signature checking, but EKEYREJECTED and EBADMSG are.

David

  reply	other threads:[~2018-02-21 16:20 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-09 17:30 [PATCH 00/30] security, efi: Add kernel lockdown David Howells
2017-11-09 17:30 ` David Howells
2017-11-09 17:30 ` [PATCH 01/30] Add the ability to lock down access to the running kernel image David Howells
2017-11-09 17:30   ` David Howells
2017-11-09 17:31 ` [PATCH 03/30] ima: require secure_boot rules in lockdown mode David Howells
2017-11-09 17:31   ` David Howells
2017-11-09 17:31 ` [PATCH 05/30] Restrict /dev/{mem, kmem, port} when the kernel is locked down David Howells
2017-11-09 17:31   ` David Howells
2017-11-09 17:31 ` [PATCH 06/30] kexec: Disable at runtime if " David Howells
2017-11-09 17:31   ` David Howells
2017-11-09 17:31 ` [PATCH 07/30] Copy secure_boot flag in boot params across kexec reboot David Howells
2017-11-09 17:31   ` David Howells
2017-11-09 17:31 ` [PATCH 08/30] kexec_file: Restrict at runtime if the kernel is locked down David Howells
2017-11-09 17:31   ` David Howells
     [not found]   ` <151024869793.28329.4817577607302613028.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2018-01-11 11:59     ` Jiri Bohac
2018-01-11 11:59       ` Jiri Bohac
2018-01-11 11:59       ` Jiri Bohac
2018-01-11 12:02       ` [PATCH 08b/30] " Jiri Bohac
2018-01-11 12:02         ` Jiri Bohac
     [not found]       ` <20180111115915.dejachty3l7fwpmf-Q+Z4OdfSLAKN3ZZ/Hiejyg@public.gmane.org>
2018-01-11 12:01         ` [PATCH 08a/30] kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE Jiri Bohac
2018-01-11 12:01           ` Jiri Bohac
2018-01-11 12:01           ` Jiri Bohac
2018-01-11 12:43         ` [PATCH 08/30] kexec_file: Restrict at runtime if the kernel is locked down David Howells
2018-01-11 12:43           ` David Howells
2018-01-11 12:43           ` David Howells
2018-01-11 12:47           ` David Howells
2018-01-11 12:47             ` David Howells
     [not found]             ` <13005.1515674877-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2018-01-11 15:44               ` Jiri Bohac
2018-01-11 15:44                 ` Jiri Bohac
2018-01-11 15:44                 ` Jiri Bohac
     [not found]             ` <20180111154445.duootisvanetnr24-Q+Z4OdfSLAKN3ZZ/Hiejyg@public.gmane.org>
2018-01-17 16:16               ` David Howells
2018-01-17 16:16                 ` David Howells
2018-01-17 16:16                 ` David Howells
     [not found]       ` <20180111120157.23qceywzi6omvvkb-Q+Z4OdfSLAKN3ZZ/Hiejyg@public.gmane.org>
2018-01-16 16:31         ` [PATCH 08a/30] kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE David Howells
2018-01-16 16:31           ` David Howells
2018-01-16 16:31           ` David Howells
2018-01-16 19:39           ` Jiri Bohac
2018-01-16 19:39             ` Jiri Bohac
2018-01-17 16:34             ` David Howells
2018-01-17 16:34               ` David Howells
     [not found]               ` <24618.1516206864-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2018-01-19 12:54                 ` Jiri Bohac
2018-01-19 12:54                   ` Jiri Bohac
2018-01-19 12:54                   ` Jiri Bohac
2018-02-21 16:20                   ` David Howells [this message]
2018-02-21 16:20                     ` David Howells
2018-02-22 14:20   ` [PATCH 08/30] kexec_file: Restrict at runtime if the kernel is locked down David Howells
2018-02-22 14:20     ` David Howells
2018-02-22 14:21     ` David Howells
2018-02-22 14:21       ` David Howells
2018-02-22 19:14       ` Jiri Bohac
2018-02-22 19:14         ` Jiri Bohac
2018-02-22 19:08     ` Jiri Bohac
2018-02-22 19:08       ` Jiri Bohac
     [not found] ` <151024863544.28329.2436580122759221600.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2017-11-09 17:30   ` [PATCH 02/30] Add a SysRq option to lift kernel lockdown David Howells
2017-11-09 17:30     ` David Howells
2017-11-09 17:30     ` David Howells
2017-11-09 17:31   ` [PATCH 04/30] Enforce module signatures if the kernel is locked down David Howells
2017-11-09 17:31     ` David Howells
2017-11-09 17:31     ` David Howells
2018-02-22 13:07     ` David Howells
2018-02-22 13:07       ` David Howells
2018-02-22 18:44       ` Jiri Bohac
2018-02-22 18:44         ` Jiri Bohac
2017-11-09 17:31   ` [PATCH 09/30] hibernate: Disable when " David Howells
2017-11-09 17:31     ` David Howells
2017-11-09 17:31     ` David Howells
2017-11-09 17:34   ` [PATCH 30/30] efi: Lock down the kernel if booted in secure boot mode David Howells
2017-11-09 17:34     ` David Howells
2017-11-09 17:34     ` David Howells
2017-11-09 17:31 ` [PATCH 10/30] uswsusp: Disable when the kernel is locked down David Howells
2017-11-09 17:31   ` David Howells
2017-11-09 17:32 ` [PATCH 11/30] PCI: Lock down BAR access " David Howells
2017-11-09 17:32   ` David Howells
2017-11-09 17:32 ` [PATCH 12/30] x86: Lock down IO port " David Howells
2017-11-09 17:32   ` David Howells
2017-11-09 17:32 ` [PATCH 13/30] x86/msr: Restrict MSR " David Howells
2017-11-09 17:32   ` David Howells
2017-11-09 17:32 ` [PATCH 14/30] asus-wmi: Restrict debugfs interface " David Howells
2017-11-09 17:32   ` David Howells
2017-11-09 17:32 ` [PATCH 15/30] ACPI: Limit access to custom_method " David Howells
2017-11-09 17:32   ` David Howells
2017-11-09 17:32 ` [PATCH 16/30] acpi: Ignore acpi_rsdp kernel param when the kernel has been " David Howells
2017-11-09 17:32   ` David Howells
2017-11-09 17:32 ` [PATCH 17/30] acpi: Disable ACPI table override if the kernel is " David Howells
2017-11-09 17:32   ` David Howells
2017-11-09 17:32 ` [PATCH 18/30] acpi: Disable APEI error injection " David Howells
2017-11-09 17:32   ` David Howells
2019-11-07  8:21   ` Joey Lee
2022-05-28  0:11     ` joeyli
2017-11-09 17:33 ` [PATCH 19/30] scsi: Lock down the eata driver David Howells
2017-11-09 17:33   ` David Howells
2017-11-09 17:33 ` [PATCH 20/30] Prohibit PCMCIA CIS storage when the kernel is locked down David Howells
2017-11-09 17:33   ` David Howells
2017-11-09 17:33 ` [PATCH 21/30] Lock down TIOCSSERIAL David Howells
2017-11-09 17:33   ` David Howells
2017-11-09 17:33 ` [PATCH 22/30] Lock down module params that specify hardware parameters (eg. ioport) David Howells
2017-11-09 17:33   ` David Howells
2017-11-09 17:33 ` [PATCH 23/30] x86/mmiotrace: Lock down the testmmiotrace module David Howells
2017-11-09 17:33   ` David Howells
2017-11-09 17:33 ` [PATCH 24/30] debugfs: Disallow use of debugfs files when the kernel is locked down David Howells
2017-11-09 17:33   ` David Howells
2017-11-09 17:33 ` [PATCH 25/30] Lock down /proc/kcore David Howells
2017-11-09 17:33   ` David Howells
2017-11-09 17:33 ` [PATCH 26/30] Lock down ftrace David Howells
2017-11-09 17:33   ` David Howells
     [not found]   ` <151024883613.28329.14808632296386937974.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2017-11-10  9:23     ` Jiri Kosina
2017-11-10  9:23       ` Jiri Kosina
2017-11-10  9:23       ` Jiri Kosina
     [not found]   ` <alpine.LRH.2.00.1711101021440.24296-n3slAPhISTXBD9DXoRIzZw@public.gmane.org>
2017-11-10 10:07     ` David Howells
2017-11-10 10:07       ` David Howells
2017-11-10 10:07       ` David Howells
     [not found]       ` <27323.1510308432-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2017-11-10 10:15         ` Jiri Kosina
2017-11-10 10:15           ` Jiri Kosina
2017-11-10 10:15           ` Jiri Kosina
     [not found]       ` <nycvar.YFH.7.76.1711101114410.32604-YHPUNQjx9ReKbouaWp301Q@public.gmane.org>
2017-11-10 10:21         ` David Howells
2017-11-10 10:21           ` David Howells
2017-11-10 10:21           ` David Howells
2017-11-10 10:23           ` Jiri Kosina
2017-11-10 10:23             ` Jiri Kosina
     [not found]           ` <nycvar.YFH.7.76.1711101122190.32604-YHPUNQjx9ReKbouaWp301Q@public.gmane.org>
2017-11-10 11:06             ` David Howells
2017-11-10 11:06               ` David Howells
2017-11-10 11:06               ` David Howells
2017-11-09 17:34 ` [PATCH 27/30] Lock down kprobes David Howells
2017-11-09 17:34   ` David Howells
2017-11-09 17:34 ` [PATCH 28/30] bpf: Restrict kernel image access functions when the kernel is locked down David Howells
2017-11-09 17:34   ` David Howells
2017-11-09 17:34 ` [PATCH 29/30] efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode David Howells
2017-11-09 17:34   ` David Howells
2018-03-03  1:18 ` [PATCH 00/30] security, efi: Add kernel lockdown Andrew Morton
2018-03-03  1:18   ` Andrew Morton

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=23576.1519230051@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=linux-security-module@vger.kernel.org \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.