Skip to content
This repository has been archived by the owner on Jun 8, 2022. It is now read-only.

Introduce documentation on trusted payloads #41

Closed
wants to merge 2 commits into from
Closed

Introduce documentation on trusted payloads #41

wants to merge 2 commits into from

Conversation

lukehinds
Copy link
Member

This change includes a section on the setup and execution of
trusted payloads using the Keylime Tenant.

Copy link

@fduthilleul fduthilleul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed the documentation mainly from a spelling point of view.
This is my consolidated feedback. Let me know if it makes sense.

@lukehinds
Copy link
Member Author

Many thanks @fduthilleul

@lukehinds
Copy link
Member Author

I am going to update this to instead show local_revocations on a different node running an agent, rather than onto the node itself that has failed. Starting to understand the design better now, so that would be much more useful for the end user to learn about.

docs/user_guide/secure_payloads.rst Outdated Show resolved Hide resolved
docs/user_guide/secure_payloads.rst Outdated Show resolved Hide resolved
@lukehinds
Copy link
Member Author

@fduthilleul @jetwhiz @jetwhiz

review recommendations included in 98fb9ee

This change includes a section on the setup and execution of
trusted payloads using the Keylime Tenant.

Secure payloads offer the ability to securely provision secrets to an enrolled node.

The payload itself is sent via the Keylime Tenant to the verifier and only when a node
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this still needs correction -- the verifier never receives the payload. The payload is always sent directly from the tenant to the node/agent. The verifier's job is to send its key half (the v_key) to the node when the node passed its enrollment criteria.

Maybe word this to say

The encrypted payload itself is sent via the Keylime Tenant to the target node's Agent, along with the Tenant's u_key half. Only when a node has passed its enrollment criteria (including any tpm_policy or IMA whitelist) will the Verifier send its v_key half to the Agent so that it can decrypt the payload.

* The tenant will generate a new CA (if one hasn't been generated yet) and then generate a new cert/key combo for the agent to be bootstrapped
* The tenant will include the payload files with the `--include` option
* Tenant and verifier will bootstrap the agent and derive a key as normal
* Once the bootstrap key has been derived and tpm_policy and IMA verification has passed, Keylime will decrypt and extract the zipped payload that includes both the cert/key and files situated in the payload folder.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we specify that the node's "Keylime agent" is decrypting and extracting the zipped payload (instead of just generically "Keylime") to make this more explicit?

That is, say "the Keylime agent will decrypt and extract the zipped payload ..."

Send the files using the Keylime Tenant

```
keylime_tenant -t <agent-ip> --cert myca --include payload
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should change myca to just the default location (/var/lib/keylime/ca) to avoid confusion here?

@lukehinds
Copy link
Member Author

lukehinds commented Sep 26, 2019

I made a new commit 9588e9d with a rewrite made by @nabilschear - his PR landed in my local repo as the original had merged

Please review as a fresh read.

@lukehinds lukehinds mentioned this pull request Oct 9, 2019
10 tasks
@lukehinds lukehinds mentioned this pull request Oct 16, 2019
10 tasks
@lukehinds lukehinds mentioned this pull request Oct 23, 2019
10 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants