From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751926AbcAGD2c (ORCPT ); Wed, 6 Jan 2016 22:28:32 -0500 Received: from e28smtp07.in.ibm.com ([125.16.236.7]:46043 "EHLO e28smtp07.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750892AbcAGD2a (ORCPT ); Wed, 6 Jan 2016 22:28:30 -0500 X-IBM-Helo: d28dlp01.in.ibm.com X-IBM-MailFrom: zohar@linux.vnet.ibm.com X-IBM-RcptTo: keyrings@vger.kernel.org;linux-kernel@vger.kernel.org;linux-security-module@vger.kernel.org Message-ID: <1452137300.3969.30.camel@linux.vnet.ibm.com> Subject: Re: [PATCH] X.509: Partially revert patch to add validation against IMA MOK keyring From: Mimi Zohar To: David Howells Cc: petkan@mip-labs.com, jmorris@namei.org, linux-security-module@vger.kernel.org, keyrings@vger.kernel.org, linux-kernel@vger.kernel.org Date: Wed, 06 Jan 2016 22:28:20 -0500 In-Reply-To: <1452132813.3969.8.camel@linux.vnet.ibm.com> References: <20160106134525.15633.73582.stgit@warthog.procyon.org.uk> <24185.1452126854@warthog.procyon.org.uk> <1452132813.3969.8.camel@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.11 (3.12.11-1.fc21) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16010703-0025-0000-0000-0000091754B9 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 wrote: > > > > > Partially revert commit 41c89b64d7184a780f12f2cccdabe65cb2408893: > > > > > > Author: Petko Manolov > > > 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