[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1452137300.3969.30.camel@linux.vnet.ibm.com>
Date: Wed, 06 Jan 2016 22:28:20 -0500
From: Mimi Zohar <zohar@...ux.vnet.ibm.com>
To: David Howells <dhowells@...hat.com>
Cc: petkan@...-labs.com, jmorris@...ei.org,
linux-security-module@...r.kernel.org, keyrings@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] X.509: Partially revert patch to add validation against
IMA MOK keyring
On Wed, 2016-01-06 at 21:13 -0500, Mimi Zohar wrote:
> On Thu, 2016-01-07 at 00:34 +0000, David Howells wrote:
> > David Howells <dhowells@...hat.com> wrote:
> >
> > > Partially revert commit 41c89b64d7184a780f12f2cccdabe65cb2408893:
> > >
> > > Author: Petko Manolov <petkan@...-labs.com>
> > > Date: Wed Dec 2 17:47:55 2015 +0200
> > > IMA: create machine owner and blacklist keyrings
> > >
> > > The problem is that prep->trusted is a simple boolean and the additional
> > > x509_validate_trust() call doesn't therefore distinguish levels of
> > > trustedness, but is just OR'd with the result of validation against the
> > > system trusted keyring.
> > >
> > > However, setting the trusted flag means that this key may be added to *any*
> > > trusted-only keyring - including the system trusted keyring.
>
> Hm, I'm not able to add a key to the system keyring that is signed by a
> key on either the system or the IMA MOK keyrings. The system keyring
> seems to be "locked". A key that is signed by either a key on the
> system or the IMA MOK keyring can be added to the IMA keyring.
>
> keyctl show %keyring:.system_keyring
> Keyring
> 973688077 ---lswrv 0 0 keyring: .system_keyring
>
> evmctl import m1-cert-signed.der 973688077
> add_key failed
> errno: Permission denied (13)
The "KEY_USR_WRITE" permission is required in order to add keys to a
keyring. This permission is specified for the IMA keyring, but not for
the system keyring, which explains why I could add a key to the IMA
keyring, but not the system keyring.
system_trusted_keyring =
keyring_alloc(".system_keyring",
KUIDT_INIT(0), KGIDT_INIT(0),
current_cred(),
((KEY_POS_ALL & ~KEY_POS_SETATTR) |
KEY_USR_VIEW | KEY_USR_READ |
KEY_USR_SEARCH),
KEY_ALLOC_NOT_IN_QUOTA, NULL);
keyring[id] = keyring_alloc(keyring_name[id], KUIDT_INIT(0),
KGIDT_INIT(0), cred,
((KEY_POS_ALL & ~KEY_POS_SETATTR) |
KEY_USR_VIEW | KEY_USR_READ |
KEY_USR_WRITE | KEY_USR_SEARCH),
KEY_ALLOC_NOT_IN_QUOTA, NULL);
The only keys added to the system keyring should be those listed in the
Kconfig SYSTEM_TRUSTED_KEYS specified file.
Mimi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists