From: ebiederm@xmission.com (Eric W. Biederman) To: Matthew Garrett <mjg59@srcf.ucam.org> Cc: linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, linux-efi@vger.kernel.org Subject: Re: [PATCH 07/11] kexec: Disable in a secure boot environment Date: Tue, 04 Sep 2012 15:12:52 -0700 [thread overview] Message-ID: <87fw6xtp23.fsf@xmission.com> (raw) In-Reply-To: <20120904212717.GA30899@srcf.ucam.org> (Matthew Garrett's message of "Tue, 4 Sep 2012 22:27:17 +0100") Matthew Garrett <mjg59@srcf.ucam.org> writes: > On Tue, Sep 04, 2012 at 02:13:54PM -0700, Eric W. Biederman wrote: >> Matthew Garrett <mjg59@srcf.ucam.org> writes: >> > And >> > secondly, there are already several non-EFI platforms that want to enact >> > a policy preventing root from being able to arbitrarily replace the >> > kernel. Given that people are doing this in the wild, it makes sense to >> > move towards offering that policy in the mainline kernel. >> >> Either this code makes sense without an appeal to EFI or this code makes >> no sense. > > The driving force behind this code right now is that our choices are > either (1) do something like this, or (2) disable kexec entirely. Actually there is an interesting question here. Why does even EFI secure boot justify this? If I install my own key in EFI I should be able to boot a kernel that does anything I want it to. My machine doing what I want it to is the point of trusted boot is it not? > Like I > said, long term we'd want to provide appropriate technical mechanisms to > make kexec usable in a world where people want to be able to trust their > kernel, and we have people working on that. But that being our > motivation for the implementation doesn't mean that other parties won't > have uses for it, and I'd like to find a solution that satisfies them as > well. I expect you want to make that that medium term. Enterprise distros don't ship without kexec-on-panic. Too often long term seems to be something that no one ever gets around to in kernel development. >> It is fine for jumping through the EFI trusted boot hoops to be your >> motivation, but EFI policy should not be the justification for kernel >> implementation details. > > Sure it is. The kernel exists to provide the functionality that people > require, and UEFI imposes that requirement on the people. It's like > saying gcc policy shouldn't be the justification for kernel > implementation details. We don't control the gcc developers, but we have > to consume what they provide us with. This isn't efi specific code. We need to be able to think about what is happening with a local analysis so we can see if it is correct. This is slightly violated already as pointed out elsewhere, as CAP_SECURE_BOOT means we did not boot securely. >> So please rework this to come from an angle that makes sense all by >> itself. > > I'm afraid I have no idea what you're asking for here. Some vendors want > to be able to ensure that kexec is only used to load trusted code. Right > now there's no mechanism for ensuring that, so why not at least provide > a mechanism for them to turn it off at runtime? There is a mechanism to turn it off at runtime CAP_SYS_BOOT. In general booting anything else besides what you are running is equally bad. What I am asking for is a mechanism that makes sense without having to think about EFI. Without having to think about the silly hoops people are going through because of the impending launch of windows 8. As Alan says a capability doesn't seem horrible. But if we use a capability it needs to be a well named capability, and the semantics of the capability need to make inherent sense. I have the basic question, why can't I trust the root who has all capabilities? What makes the root user more trusted than the linux kernel. Especially when typically the root user is the owner of the machine. There is a element here where it seems implementing the policy you are proposing will start encouraging people to start hoarding kernel bugs instead of reporting them. So implementing this policy might make the kernel in net less secure. How is that prevented? Ultimately the question is. This is Unix. In Unix we give root rope and let him hang himself or shoot himself in the foot (not that we encourage it). Why are we now implementing a security model where we don't trust root? What is gained from a security model where root is untrusted? Eric
next prev parent reply other threads:[~2012-09-04 22:13 UTC|newest] Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-09-04 15:55 [RFC] First attempt at kernel secure boot support Matthew Garrett 2012-09-04 15:55 ` [PATCH 01/11] Secure boot: Add new capability Matthew Garrett 2012-09-04 15:55 ` [PATCH 02/11] PCI: Lock down BAR access in secure boot environments Matthew Garrett 2012-10-01 21:00 ` Pavel Machek 2012-09-04 15:55 ` [PATCH 03/11] x86: Lock down IO port " Matthew Garrett 2012-09-04 16:16 ` Alan Cox 2012-09-04 16:16 ` Matthew Garrett 2012-09-04 15:55 ` [PATCH 04/11] ACPI: Limit access to custom_method Matthew Garrett 2012-09-04 15:55 ` [PATCH 05/11] asus-wmi: Restrict debugfs interface Matthew Garrett 2012-09-04 16:12 ` Alan Cox 2012-09-04 16:13 ` Matthew Garrett 2012-09-04 15:55 ` [PATCH 06/11] Restrict /dev/mem and /dev/kmem in secure boot setups Matthew Garrett 2012-09-04 15:55 ` [PATCH 07/11] kexec: Disable in a secure boot environment Matthew Garrett 2012-09-04 20:13 ` Eric W. Biederman 2012-09-04 20:22 ` Matthew Garrett 2012-09-04 21:13 ` Eric W. Biederman 2012-09-04 21:27 ` Matthew Garrett 2012-09-04 22:12 ` Eric W. Biederman [this message] 2012-09-04 23:25 ` Matthew Garrett 2012-09-05 4:33 ` Eric W. Biederman 2012-09-05 5:16 ` Matthew Garrett 2012-09-05 7:00 ` Eric W. Biederman 2012-09-05 7:03 ` Matthew Garrett 2012-09-04 21:39 ` Alan Cox 2012-09-04 21:40 ` Matthew Garrett 2012-09-05 15:43 ` Roland Eggner 2012-09-05 15:46 ` Matthew Garrett 2012-09-05 21:13 ` Mimi Zohar 2012-09-05 21:41 ` Matthew Garrett 2012-09-05 21:49 ` Eric Paris 2012-09-04 15:55 ` [PATCH 08/11] Secure boot: Add a dummy kernel parameter that will switch on Secure Boot mode Matthew Garrett 2012-09-04 15:55 ` [PATCH 09/11] efi: Enable secure boot lockdown automatically when enabled in firmware Matthew Garrett 2012-09-04 15:55 ` [PATCH 10/11] acpi: Ignore acpi_rsdp kernel parameter in a secure boot environment Matthew Garrett 2012-09-04 16:30 ` Shuah Khan 2012-09-04 16:38 ` Matthew Garrett 2012-09-04 16:44 ` Shuah Khan 2012-09-04 20:37 ` Alan Cox 2012-09-04 20:37 ` Matthew Garrett 2012-09-04 20:50 ` Josh Boyer 2012-09-04 15:55 ` [PATCH 11/11] SELinux: define mapping for new Secure Boot capability Matthew Garrett 2012-09-04 16:08 ` [RFC] First attempt at kernel secure boot support Alan Cox 2012-09-04 16:12 ` Matthew Garrett 2012-10-01 21:07 ` Pavel Machek
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=87fw6xtp23.fsf@xmission.com \ --to=ebiederm@xmission.com \ --cc=linux-efi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=mjg59@srcf.ucam.org \ --subject='Re: [PATCH 07/11] kexec: Disable in a secure boot environment' \ /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
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).