[ipxe-devel] [RESEND PATCH 0/5] [crypto] Relax root certificate restrictions
Michael Brown
mcb30 at ipxe.org
Fri Mar 3 13:39:58 UTC 2017
On 03/03/17 12:37, Ladi Prosek wrote:
> The goal of this series is to make it possible to use iPXE with security
> features, such as HTTPS, in enterprise environments where rebuilding
> from sources is not an option and connecting to external services is not
> desired. An ideal iPXE binary for this environment:
>
> 1) Does not use any cross-cert server by default. It can be configured
> at runtime but is not required at build time (PATCH 1).
>
> 2) Does not contain any trusted certificate fingerprints. They can be
> configured at runtime but the binary may have nothing embedded in it
> (PATCH 5).
>
> 3) Allows trusted root certificate fingerprints to be changed by trusted
> images (PATCH 3, 4).
>
> 4) Assumes initrd, kernel command line, and images embedded in iPXE to
> be trusted (PATCH 2).
>
> The particular scenario I am interested in is ipxe.lkrn booted locally
> from ISOLINUX and passed a script as initrd. The script is trusted and
> should be able to configure crypto as needed before chaining into an
> HTTPS-downloaded image. Thanks!
I agree with the goal. I am not (yet) convinced that
current_image->flags & IMAGE_TRUSTED
is a suitable definition of this goal, since it leaves open the question
of whether or not an interactive command line is allowed to redefine the
root of trust. Specifically, with this definition:
- an interactive command line entered via the default Ctrl-B prompt
would _not_ be allowed to change the root of trust
- an interactive command line entered via an identical-looking Ctrl-B
prompt generated by an embedded script _would_ be allowed to change the
root of trust
- an interactive command line entered as a debugging tool from a trusted
menu script _would_ be allowed to change the root of trust
I wonder if it might be cleaner to either:
- allow for a build in which the root of trust may be changed once (and
thereafter may not be changed again), or
- extend the existing "image trust requirement" concept (as exposed by
the "imgtrust" command) to include the notion of whether or not the root
of trust is allowed to be changed.
Michael
More information about the ipxe-devel
mailing list