All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ken Goldman <kgold@linux.ibm.com>
To: Lakshmi <nramas@linux.microsoft.com>,
	Linux Integrity <linux-integrity@vger.kernel.org>,
	Mimi Zohar <zohar@linux.ibm.com>,
	David Howells <dhowells@redhat.com>,
	James Morris <jamorris@linux.microsoft.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Cc: Balaji Balasubramanyan <balajib@linux.microsoft.com>,
	Prakhar Srivastava <prsriva@linux.microsoft.com>,
	jorhand@linux.microsoft.com
Subject: Re: [PATCH 0/2] public key: IMA signer logging: Log public key of IMA Signature signer in IMA log
Date: Wed, 22 May 2019 14:57:28 -0400	[thread overview]
Message-ID: <b1a2edc1-45c7-7a9f-7a77-e252b2f85a64@linux.ibm.com> (raw)
In-Reply-To: <54663a75-a601-ae6c-8068-bc2c3923a948@linux.microsoft.com>

On 5/20/2019 7:15 PM, Lakshmi wrote:
> On 5/17/19 7:41 AM, Ken Goldman wrote:
> 
> Hi Ken,
> 
> Apologize for the delay in responding.
> 
>> Since a platform typically uses only a few signing keys, 4 bytes makes 
>> the chance of a collision quite small.  The collision would have to be 
>> within the same log, not global.
>>
>> In that worst case, the verifier would have to try two keys.  It's a
>> slight performance penalty, but does anything break?
> 
> Problem Statement:
> - If the attestation service has to re-validate the signature reported 
> in the IMA log, the service has to maintain the hash\signature of all 
> the binaries deployed on all the client nodes. This approach will not 
> scale for large cloud deployments.

1 - How is your solution - including a public key with each event - 
related to this issue?

2 - I don't understand how a large cloud affects scale.  Wouldn't the 
verifier would typically be checking known machines - those of their 
enterprise - not every machine on the cloud?

Can't we assume a typical attestation use case has a fairly locked down 
OS with a limited number of applications.

> - Possibility of collision of "Key Ids" is non-zero
> - In the service if the "Key Id" alone is used to verify using a map of
> "Key Id" to "Signing Key(s)", the service cannot determine if the 
> trusted signing key was indeed used by the client for signature 
> validation (Due to "Key Id" collision issue or malicious signature).

Like I said, it should be rare.  In the worst case, can't the service 
tell by trying both keys?

> 
> Proposed Solution:
> - The service receives known\trusted signing key(s) from a trusted 
> source (that is different from the client machines)
> - The clients measure the keys in key rings such as IMA, Platform, 
> BuiltIn Trusted, etc. as early as possible in the boot sequence.
> - Leave all IMA measurements the same - i.e., we don't log public keys 
> in the IMA log for each file, but just use what is currently available 
> in IMA.

I thought your solution was to change the IMA measurements, adding the 
public key to each entry with a new template?  Did I misunderstand, or 
do you have a new proposal?

> 
> Impact:
> - The service can verify that the keyrings have only known\trusted keys.

If the service already has trusted keys from a trusted source, why do 
they have to come from the client at all?

> - The service can cross check the "key id" with the key rings measured.
> - The look up of keys using the key id would be simpler and faster on 
> the service side.
> - It can also handle collision of Key Ids.

How does this solve the collision issue?  If there are two keys with the 
same key ID, isn't there still a collision?

> 
> Note that the following is a key assumption:
> 
> - Only keys signed by a key in the "BuiltIn Trusted Keyring" can be 
> added to IMA\Platform keyrings.

I understand how the client keyring is used in IMA to check file
signatures, but how is that related to the attestation service?

> 
> 
> Thanks,
>   -lakshmi
> 


  reply	other threads:[~2019-05-22 18:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14 17:14 [PATCH 0/2] public key: IMA signer logging: Log public key of IMA Signature signer in IMA log Lakshmi
2019-05-14 17:29 ` Mimi Zohar
2019-05-15 18:17   ` Lakshmi
2019-05-16 22:45     ` Mimi Zohar
2019-05-16 14:34 ` Ken Goldman
2019-05-17  1:29   ` Lakshmi
2019-05-17 14:41     ` Ken Goldman
2019-05-20 23:15       ` Lakshmi
2019-05-22 18:57         ` Ken Goldman [this message]
2019-05-22 19:37           ` Lakshmi

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=b1a2edc1-45c7-7a9f-7a77-e252b2f85a64@linux.ibm.com \
    --to=kgold@linux.ibm.com \
    --cc=balajib@linux.microsoft.com \
    --cc=dhowells@redhat.com \
    --cc=jamorris@linux.microsoft.com \
    --cc=jorhand@linux.microsoft.com \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nramas@linux.microsoft.com \
    --cc=prsriva@linux.microsoft.com \
    --cc=zohar@linux.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 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.