All of lore.kernel.org
 help / color / mirror / Atom feed
* Security Working Group meeting - Wednesday August 31
@ 2022-08-31  1:08 Joseph Reynolds
  2022-08-31  1:16 ` Security Working Group meeting - Wednesday August 31 - new venue Joseph Reynolds
  2022-08-31 18:09 ` Security Working Group meeting - Wednesday August 31 - results Joseph Reynolds
  0 siblings, 2 replies; 21+ messages in thread
From: Joseph Reynolds @ 2022-08-31  1:08 UTC (permalink / raw)
  To: openbmc

This is a reminder of the OpenBMC Security Working Group meeting 
scheduled for this Wednesday August 31 at 10:00am PDT.


ATTNTION - Venue Change.  The meeting moved to Discord voice, beginning 
with this meeting.  Please update your calendars.

=== MEETING ACCESS ON DISCORD VOICE starting on Aug 31, 2022  ===

Discord > OpenBMC > Voice channels >  Security ~ 
https://discord.com/channels/775381525260664832/1002376534377635860 
<https://discord.com/channels/775381525260664832/1002376534377635860>



We'll discuss the following items on the agenda 
<https://docs.google.com/document/d/1b7x9BaxsfcukQDqbvZsU2ehMq4xoJRQvLxxsDUWmAOI>, 
and anything else that comes up:

1. Continue Measured Boot discussion.

2. Gerrit review: Proposal for dynamic changes to Redfish authorization 
rules https://gerrit.openbmc.org/c/openbmc/docs/+/56401


Access, agenda and notes are in the wiki:
https://github.com/openbmc/openbmc/wiki/Security-working-group 
<https://github.com/openbmc/openbmc/wiki/Security-working-group>

- Joseph

^ permalink raw reply	[flat|nested] 21+ messages in thread
* Security Working Group meeting - Wednesday August 31 - results
@ 2022-09-08 18:57 George Almasi
       [not found] ` <101586.1662709990@dooku>
  0 siblings, 1 reply; 21+ messages in thread
From: George Almasi @ 2022-09-08 18:57 UTC (permalink / raw)
  To: openbmc

First off, apologies if I am messing up the mailing list threading. I'm 
going to attempt to address
questions raised by Patrick about keylime and openbmc in the last few days.

> Is the suggestion that they rewrite it in C++ and contribute that?  If 
> it is, why would they invest in building a project and community from 
> scratch as opposed to using an existing one just because all the other 
> in-tree servers are hyper-cost optimized?

No. To repeat what Thore Somers mentioned: the Red Hat team has done
a good job of porting the keylime *agent* to Rust.

We will never attempt to cram Python into OpenBMC :)

The rust agent compiles and runs on the generic ARM version of OpenBMC;
we have tested this, and Angelo Ruocco is working on a recipe. We are
having difficulties with the AST2600 in particular, but that seems to
be more of a Rust/ARM compilation issue than anything else. We are having
zero troubles on a generic armv7 qemu emulator.

In reply to Michael Richardson -- the _entire_ keylime project is not being
rewritten in rust; only the agent is. The verifiers and registrars and whatnot
have no reason to exist on embedded systems, and there is no reason to make
small footprint versions of them.


> This is very concerning to me.  There is no authentication?

> Blindly advertising to the world which versions of firmware you are
> running so an attacker knows exactly which vulnerabilities you are
> likely to have doesn't sound appealing.


Valid concern. Agreed on not advertising firmware (or kernel) (or anything)
versions to anyone who has no business knowing these things. Fortunately
the keylime developers have considered these issues and over time have
come up with a fairly safe architecture for establishing mutual trust between
agents and other keylime components (like registrars and verifiers). The
security architecture _has_ been peer reviewed and tweaked.

I am not going to attempt to reproduce the entire process here,
but I'll mention salient points of it. First off, the keylime agent will
not blindly talk to just anyone. The agent has to be configured a-priori
with the IP address of a registrar, and it will not attempt to establish
communication with any other entity.

Of course IP addresses can be spoofed, so the keylime agent possesses a certificate
that will authenticate the registrar. The current implementation is an mTLS cert, but a server
side certificate would suffice for this, as the entity being authenticated is the registrar,
not the OpenBMC agent.

Next, of course, the agent has to authenticate itself to the registrar. The TPM device is a crypto engine
with a key pair built into it for the express purpose of identifying itself (the Endorsement Key).
The process of authenticating a TPM device to the registrar is fairly complex and involves a a roundtrip.
In this process other (secondary) keys are created that are henceforth used for regular communication.

I'm going to stop here before this becomes a lecture. From a practical standpoint, getting the keylime
agent into OpenBMC involves getting the agent built in the ecosystem, and inventing a way to
configure the system. Since attestation with keylime can be done at _any point_ in the lifecycle
of an OpenBMC deployment, it is sufficient for us to configure the keylime agent with redfish; and that is
our plan. Details to follow.


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2022-09-12 19:32 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-31  1:08 Security Working Group meeting - Wednesday August 31 Joseph Reynolds
2022-08-31  1:16 ` Security Working Group meeting - Wednesday August 31 - new venue Joseph Reynolds
2022-08-31 18:09 ` Security Working Group meeting - Wednesday August 31 - results Joseph Reynolds
2022-09-01 11:25   ` Patrick Williams
2022-09-01 12:41     ` Brad Bishop
2022-09-01 15:07       ` Patrick Williams
2022-09-05 19:04       ` Joseph Reynolds
2022-09-01 21:23     ` Michael Richardson
2022-09-02 16:07       ` Thore Sommer
2022-09-06 13:10         ` Patrick Williams
2022-09-05 18:56     ` Joseph Reynolds
2022-09-06  8:05       ` Michael Richardson
2022-09-06 13:09         ` Patrick Williams
2022-09-12 19:31         ` George Almasi
2022-09-06 13:07       ` Patrick Williams
2022-09-07  8:01         ` Michael Richardson
2022-09-01 11:27   ` Patrick Williams
2022-09-05 18:59     ` Joseph Reynolds
2022-09-06 20:16       ` Patrick Williams
2022-09-08 18:57 George Almasi
     [not found] ` <101586.1662709990@dooku>
2022-09-09 18:49   ` George Almasi

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.