Linux-Integrity Archive on lore.kernel.org
 help / color / Atom feed
From: Lakshmi <nramas@linux.microsoft.com>
To: Ken Goldman <kgold@linux.ibm.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 12:37:03 -0700
Message-ID: <2bf6f51f-a55b-9f7d-0e50-25d92fc95e8b@linux.microsoft.com> (raw)
In-Reply-To: <b1a2edc1-45c7-7a9f-7a77-e252b2f85a64@linux.ibm.com>

On 5/22/19 11:57 AM, Ken Goldman wrote:

> 
> 1 - How is your solution - including a public key with each event - 
> related to this issue?
This a change from my earlier proposal. In the new proposal I am making 
the public key is not included with each event. The data included in 
each IMA event does not change. For instance, when IMA signature 
validation is selected (ima-sig template, for instance), each event will 
have the IMA signature (which includes the 4 Byte Key Identifier and the 
Signature)

> 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.
Yes - the attestation service (verifier) will be attesting only client 
machines known to the enterprise. But such clients could be running 
different versions of the OS and the kernel modules.
We cannot assume that this would be a limited set. Therefore, 
maintaining the hash\signature of all such components, for all versions 
of the components, and re-validating that in the service is not a 
scalable solution.

Instead, we want the IMA sub-system on the clients to do the signature 
validation (As it is done today). In addition to that, the clients will 
log the public keys from keyrings such as IMA, Platform, and BuiltIn 
Trusted Keys - this will be done only once and not in each IMA event 
(This is a change from my earlier proposal).

Using this data the service will verify that the clients used only 
trusted key(s) for signature validation.

> 
> Like I said, it should be rare.  In the worst case, can't the service 
> tell by trying both keys?If the service is validating the signature again it can try all the 
keys. But we don't want to take that approach - instead we want to 
verify the keys used by the client.

> 
> 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?
I have a new proposal as described above. Sorry if I had confused you.


> How does this solve the collision issue?  If there are two keys with the 
> same key ID, isn't there still a collision?
Like I have said above, the client will log all the keys from the 
relevant keyrings (IMA, Platform, etc.) The service will verify that 
they are all known\trusted keys - which gives the assurance that the IMA 
signature validation done by the client was performed using trusted 
signing key(s).


> I understand how the client keyring is used in IMA to check file
> signatures, but how is that related to the attestation service?
In my new proposal, the keys in the client keyrings will be logged in 
the IMA log. The attestation service will verify that they are 
known\trusted keys.

Thanks,
  -lakshmi

      reply index

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14 17:14 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
2019-05-22 19:37           ` Lakshmi [this message]

Reply instructions:

You may reply publically 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=2bf6f51f-a55b-9f7d-0e50-25d92fc95e8b@linux.microsoft.com \
    --to=nramas@linux.microsoft.com \
    --cc=balajib@linux.microsoft.com \
    --cc=dhowells@redhat.com \
    --cc=jamorris@linux.microsoft.com \
    --cc=jorhand@linux.microsoft.com \
    --cc=kgold@linux.ibm.com \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --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

Linux-Integrity Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-integrity/0 linux-integrity/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-integrity linux-integrity/ https://lore.kernel.org/linux-integrity \
		linux-integrity@vger.kernel.org linux-integrity@archiver.kernel.org
	public-inbox-index linux-integrity


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-integrity


AGPL code for this site: git clone https://public-inbox.org/ public-inbox