Can anyone else explain in simple words the difference between Secure boot
and Trusted boot.

Thank you Greg for your continued elaboration.

On Thu, Jan 10, 2019 at 6:28 PM Dr. Greg <g...@enjellic.com> wrote:

> On Tue, Jan 08, 2019 at 03:02:32PM -0800, Mat wrote:
>
> Good evening, I hope the week has gone well.
>
> > There are firmware based secure boot using fTPM secure partitioning and
> > more.
> >
> > Some chipset vendors also support secure boot natively.
>
> If you are talking fTPM I assume you are referring to ARM hardware.
> Platform Trust Technology (PTT) would be the equivalent on Intel
> which, presumably, runs on the Management Engine rather then in a
> TrustZone TEE which is where the fTPM is implemented on ARM.
>
> So if you have fTPM support and the ARM platform is UEFI I'm assuming
> the OEM has wired up their hardware to implement the UEFI Secure Boot
> standard.
>
> > 1. Is there a cpu architecture-neutral way to implement
> > secure/trusted boot.
>
> I think to assist the conversation it is important to differentiate
> between Secure Boot and Trusted Boot, they are entirely different
> concepts.
>
> 'Secure Boot' implies that the firmware will verify that the operating
> system image that is being loaded has been signed with an asymmetric
> key that it has access to.  The security predicate that you are
> operating with is a guarantee that at system boot time an operating
> system image with known provenance was loaded.
>
> 'Trusted Boot' is a much broader security guarantee that has no
> equivalent in the ARM world, as far as I know.  In the Intel world,
> where it is implemented as Trusted eXecution Technology (TXT), it
> provides a guarantee that an authenticated/signed code module was used
> to initialize a root of trust that a system integrity predicate can be
> constructed on.
>
> The Intel Software Development Manual (SDM) has an entire section on
> how TXT works.  The short description is that Intel supplies system
> initialization code in the form of an Authenticated Code Module (ACM).
> Special processor instructions (GETSEC leaf instructions) execute this
> module after verifying the signature on the module and further
> verifying that the processor and chipset are in a known state.
>
> The code in the ACM runs at a privilege level that allows access to a
> hardware TPM that is unavailable at any other time.  The ACM clears
> Platform Configuration Registers (PCR's) and then seeds them through
> linear extension with checksums over various critical aspects of the
> system such as the firmware and its configuration.  The ACM also can
> implement a launch control policy that can be used to verify the
> system is in a specific state before control is returned to the
> security hypervisor (tboot) which continues on with the system boot.
>
> As the operating system continues forward it has an assurance that the
> hardware TPM has been initialized to a precisely known state.  The
> strategy for a 'trusted system' is to extend the PCR's with values
> derived from operational elements of the system, such as the
> cryptographic hashes of executables run by the operating system.
>
> So that is how 'Trusted Boot' works.
>
> If you have fTPM support and the ARM platform is UEFI and the OEM has
> wired up their hardware to implement the UEFI Secure Boot standard you
> would be in a position to implement 'Secure Boot', ie. a signed
> operating system image.
>
> The platform vendor should have options available through the BIOS to
> install a custom platform key.  The default will undoubtedly be the
> Microsoft signing key.
>
> You can install a custom signing key and then sign your operating
> system image with the private portion of the key.  At that point the
> firmware will only load an operating system whose signature matches
> that which is authenticated by the public/private keypair you have
> loaded.
>
> The issue is that anything can happen after that point.  With 'Trusted
> Boot' you are in a position to detect that but 'Secure Boot' doesn't
> provide the ability to do that by default.  You do have access to a
> TPM (fTPM) so with a bit of effort you could construct something
> similar but it will require a bit of code rolling.  Without chipset
> support you will not be able to implement the type of guarantee that
> is available with TXT.
>
> Given that Secure Boot is a UEFI standard it would be the closest
> thing possible to a cpu/architecture independent method of
> establishing some type of security construct.  Extending a security
> guarantee beyond boot is a decidedly non-trivial process.
>
> > 2. Assuming an internet facing router(without secure/trusted boot)
> > is hardened enough with basic security measures, what are different
> > attack vectors to install malicious code on the router.
>
> If it was easy to predict that we wouldn't have the cybersecurity
> challenge that we have on our hands.... :-) The whole concept of
> 0-day's is that they are a class of vulnerability that no one knew
> existed.
>
> The solution to that is allowing the platform to engage in only known
> behaviors.  The goal of 'Trusted Boot', or something equivalent built
> on top of Secure Boot, is to have confidence that the current behavior
> of a platform could only have been achieved through a trajectory path
> of known behaviors, originating from a known and trusted origin point.
>
> A methodology for doing that is certainly not something that is
> codified in any type of cpu or architecturally independent manner.
>
> > -C
>
> Hopefully the above is helpful.
>
> Good luck with your efforts.
>
> Dr. Greg
>
> As always,
> Dr. G.W. Wettstein, Ph.D.   Enjellic Systems Development, LLC.
> 4206 N. 19th Ave.           Specializing in information infra-structure
> Fargo, ND  58102            development.
> PH: 701-281-1686
> FAX: 701-281-3949           EMAIL: g...@enjellic.com
>
> ------------------------------------------------------------------------------
> "Simplicity is prerequisite for reliability."
>                                 -- Edsger W. Dijkstra
>
_______________________________________________
tboot-devel mailing list
tboot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tboot-devel

Reply via email to