public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Mark D. Baushke" <mdb@juniper.net>
To: David Howells <dhowells@redhat.com>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>,
	James Morris <jmorris@namei.org>,
	Marcel Holtmann <marcel@holtmann.org>, <petkan@mip-labs.com>,
	<linux-security-module@vger.kernel.org>,
	<keyrings@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] X.509: Partially revert patch to add validation against IMA MOK keyring
Date: Mon, 11 Jan 2016 17:28:59 -0800	[thread overview]
Message-ID: <88773.1452562139@eng-mail01.juniper.net> (raw)
In-Reply-To: <27007.1452559481@warthog.procyon.org.uk>

Hi David,

David Howells <dhowells@redhat.com> writes:

> Mimi Zohar <zohar@linux.vnet.ibm.com> wrote:
> 
> > Is this the primary use case scenario for your patches?
> > Unfortunately, your posted patches would break the existing IMA
> > trust model.
> 
> Why so?

The intent is that the 'vendor' of a software solution be able to
provide a kernel with one or more .system keys as the root of trust.
(In many cases, this root of trust may be tied to a system that does
measured boot as well.)

Further, that the 'vendor' provide a mechanism where a 'machine owner'
is able to be delegated to add new certificate authorities to a machine
owner keyring and those certificates may be used to sign signing keys
which may in turn be added to the .ima and/or .evm system keyrings to
ensure that IMA signed files are able to be run by the system.

As you suggested in an earlier message thread, it is NOT intended that
generic commercial Certificate Authorities get involved with this set of
operations.

The 'machine owner' key may also be used to add additional third-party
certificate authorities or signing keys to appropriate keyrings in the
system (generally the '.ima_mok' or the .ima keyrings).

> The patches give you per-keyring control over restricting what is
> permitted in a keyring, allows you to use any criteria you like,
> whether it be just the contents of that keyring or CA certs in some
> other keyring(s) and a blacklist.

Could you ellaboriate on the identify of 'you' in this case? Is it the
vendor the system which is trying to warranty the software provided to
the machine owner? Or, is it the 'machine owner'?

> In other words, it should be able to do everything one can do now -
> except that it controls linkage between trusted keyrings with the same
> restrictions as adding new keys.

Hmmm... I suspect I may be missing something.

If the 'vendor' selling the software desires that the 'machine owner'
not extend the kernel with new kernel modules, how is that provided for
in your linkage model?

Another use case, is that the 'vendor' trusts a third-party to properly
deliver both LKMs and user-land programs, but only if the 'machine
owner' explicitly authorizes the keys for that 'third-party' explicitly.

As you may see here, I am attempting to outline a use modle where it is
possible to build up a hierarchy tree of trust rather than a flat set of
keys that are all-powerful.

Delegation to add a key into the .ima keyring is important.

Keeping signing keys separate from delegated certificate authority keys
is also important.

> So if it breaks the IMA trust model, then doesn't that suggest that
> the trust model is broken anyway?

It is possible that I do not properly understand your new per-key
control over a keyring. I would welcome enlightenment.

One of the fundamental assumptions of a big server is that a kernel that
might need to be running non-stop for many years, but might unload and
reload LKMs more often than that and will certainly have the possibility
of updating user-land software (hopefully without needing a reboot) on a
periodic basis.

I hope that my message provides some insight into the problem at hand.

	Thank you,
	-- Mark

  reply	other threads:[~2016-01-12  1:29 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-06 13:45 [PATCH] X.509: Partially revert patch to add validation against IMA MOK keyring David Howells
2016-01-07  0:04 ` James Morris
2016-01-07  0:34 ` David Howells
2016-01-07  2:13   ` Mimi Zohar
2016-01-07  3:28     ` Mimi Zohar
2016-01-07 15:31   ` Mimi Zohar
2016-01-10 10:36     ` James Morris
2016-01-10 13:26       ` Mimi Zohar
2016-01-10 17:46         ` David Howells
2016-01-10 20:33           ` David Howells
2016-01-10 23:55             ` Mimi Zohar
2016-01-12  0:44               ` David Howells
2016-01-12  1:28                 ` Mark D. Baushke [this message]
2016-01-12  2:03                   ` David Howells
2016-01-12  2:25                     ` Mark D. Baushke
2016-01-12  3:35                     ` Mimi Zohar
2016-01-12 10:08                       ` David Howells
2016-01-12 13:21                         ` Mimi Zohar
2016-01-12 13:55                           ` David Howells
2016-01-12 15:17                             ` Mimi Zohar
2016-01-12 15:56                               ` David Howells
2016-01-12 16:02                                 ` Mimi Zohar
2016-01-12 14:11                         ` Petko Manolov
2016-01-10 20:33           ` Petko Manolov
2016-01-12  1:38             ` David Howells
2016-01-12 16:14               ` Petko Manolov
2016-01-12 17:08                 ` David Howells
2016-01-13 16:31                   ` Petko Manolov
2016-01-13 17:51                     ` Mimi Zohar
2016-01-13 18:01                       ` Petko Manolov
2016-01-13 18:19                       ` David Howells
2016-01-13 18:35                         ` Petko Manolov
2016-01-13 18:56                           ` Mimi Zohar
2016-01-13 19:19                             ` Petko Manolov

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=88773.1452562139@eng-mail01.juniper.net \
    --to=mdb@juniper.net \
    --cc=dhowells@redhat.com \
    --cc=jmorris@namei.org \
    --cc=keyrings@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=petkan@mip-labs.com \
    --cc=zohar@linux.vnet.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: link
Be 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