All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <masami.hiramatsu@linaro.org>
To: u-boot@lists.denx.de
Subject: [PATCH 1/4] tools: mkeficapsule: add firmwware image signing
Date: Fri, 14 May 2021 22:09:46 +0900	[thread overview]
Message-ID: <CAA93ih0KHaq+EnfrzNF+kVhqZ=5HApeStOnYH+GGU6prJYOwPw@mail.gmail.com> (raw)
In-Reply-To: <20210514095138.GB28950@laputa>

Hi all,

I think it's time to summarize the topics on this thread.

1. tools/mkeficapsule, config options dependency
  - The tools, especially useful and distributable tools like
mkeficapsule should not be changed by the target board configuration.
  - Since there are target boards which don't need capsule
authentication, it should be configurable. That also can optimize the
library dependency.

2. tools/mkeficapsule, revert -K/-D options
  - Since these options are for embedding a public key in the
devicetree, that is not related to the capsule file. Also, the same
feature can be provided by a simple shell script.

3. capsule authentication, key embedding method
  - Embedding key in the devicetree is too fragile, especially, the
document says overwriting new device tree including key with fdt
command. That is not for the product, only for proof of concept.
  - Such a key should be embedded in the U-Boot, or hardware secure
storage so that the user can not change it.
    (BTW, I think there are more options, like embedding keys in SCP
firmware, TF-A, or OP-TEE, outside of U-Boot)

4. capsule authentication, authentication enablement
  - The UEFI spec said IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED can be
supported but cleared (for the current running firmware). This means
it is possible that the authentication feature is supported, but not
enabled.
  - For ensuring security, if U-Boot is compiled with
CONFIG_EFI_CAPSULE_AUTHETICATE=y,
IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED must always be set.

Are there any other topics on this thread? and any other comments on
these topics?

Thank you,


2021?5?14?(?) 18:51 AKASHI Takahiro <takahiro.akashi@linaro.org>:

>
> Heinrich,
>
> Can you please reply to each of my replies?
> Otherwise, I don't know which one of my comments/opinions you agree to
> and which one not.
>
> On Fri, May 14, 2021 at 10:45:48AM +0200, Heinrich Schuchardt wrote:
> > On 5/14/21 9:13 AM, AKASHI Takahiro wrote:
> > > > E.g for IMAGE_ATTRIBUTE_IN_USE
> > > >
> > > > AttributesSupported | AttributesSetting | Meaning
> > > > --------------------+-------------------+--------------------
> > > > 0                   | 0                 | state is unknown
> > > > 0                   | 1                 | state is unknown
> > > > 1                   | 0                 | image is not in use
> > > > 1                   | 1                 | image is in use
> > > We are discussing *_REQUIRED.
> > > Can you give me the same table for *_REQUIRED?
> > >
> > > -Takahiro Akashi
> > >
> > >
> >
> > IMAGE_ATTRIBUTE_RESET_REQUIRED
> >
> > AttributesSupported | AttributesSetting | Meaning
> > --------------------+-------------------+--------------------
> > 0                   | 0                 | state is unknown
> > 0                   | 1                 | state is unknown
> > 1                   | 0                 | reset is not needed
> >                     |                   | to complete upgrade
> > 1                   | 1                 | reset is needed
> >                     |                   | to complete upgrade
> >
> >
> > IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED
> >
> > AttributesSupported | AttributesSetting | Meaning
> > --------------------+-------------------+--------------------
> > 0                   | 0                 | state is unknown
> > 0                   | 1                 | state is unknown
> > 1                   | 0                 | signed and unsigned
> >                     |                   | capsules are accepted
> > 1                   | 1                 | capsules are only
> >                     |                   | accepted after
> >                     |                   | checking the signature
>
> So what?
> This table shows there is a case where the authentication will be
> skipped even if CONFIG_EFI_CAPSULE_AUTHETICATE is on and
> it is completely compliant with UEFI specification.
>
> That is what I and Masami was discussing.
>
> > > > > > But as I mentioned in my comment against Sughosh's patch,
> > > > > > the authentication process will be enforced only if the capsule has
> > > > > > an attribute, IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED.
> > > > > >
> > > > >
> > > > > That would be a security desaster.
>
> So I said that you should discuss the topic in UEFI forum first
> if you think so.
>
> -Takahiro Akashi
>
>
> > For both bits AttributesSupported=0 does not make much sense.
> >
> > IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED is a property of the current
> > image and should only be deleted by installing a new capsule.
> >
> > A vendor might send you a special firmware image for unlocking your
> > device after registering as a developer. Xiaomi handled it like this for
> > one of my routers.
> >
> > Best regards
> >
> > Heinrich



--
Masami Hiramatsu

  parent reply	other threads:[~2021-05-14 13:09 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-12  4:57 [PATCH 0/4] efi_loader: capsule: improve capsule authentication support AKASHI Takahiro
2021-05-12  4:57 ` [PATCH 1/4] tools: mkeficapsule: add firmwware image signing AKASHI Takahiro
2021-05-12  8:56   ` Heinrich Schuchardt
2021-05-13  3:08     ` AKASHI Takahiro
2021-05-13  4:22       ` Heinrich Schuchardt
2021-05-13  5:00         ` AKASHI Takahiro
2021-05-13  5:35           ` Heinrich Schuchardt
2021-05-13  6:36             ` AKASHI Takahiro
2021-05-13  6:45               ` Heinrich Schuchardt
2021-05-13  7:45                 ` AKASHI Takahiro
2021-05-13  5:12         ` Masami Hiramatsu
2021-05-13  5:50           ` Heinrich Schuchardt
2021-05-13  6:44             ` Masami Hiramatsu
2021-05-13  6:52               ` Heinrich Schuchardt
2021-05-13  7:38                 ` AKASHI Takahiro
2021-05-13  6:50             ` AKASHI Takahiro
2021-05-13  6:55               ` Heinrich Schuchardt
2021-05-13  7:23                 ` AKASHI Takahiro
2021-05-13  8:18                   ` Masami Hiramatsu
2021-05-13  8:38                     ` AKASHI Takahiro
2021-05-13 10:27                       ` Ilias Apalodimas
2021-05-13 16:12                         ` Masami Hiramatsu
2021-05-13 16:32                           ` Heinrich Schuchardt
2021-05-13 16:42                             ` Ilias Apalodimas
2021-05-14  4:50                               ` AKASHI Takahiro
2021-05-14  7:56                                 ` Ilias Apalodimas
2021-05-14  4:13                             ` AKASHI Takahiro
2021-05-13 10:40                       ` Heinrich Schuchardt
2021-05-13 18:25                     ` Heinrich Schuchardt
2021-05-14  6:19                       ` AKASHI Takahiro
2021-05-14  6:59                         ` Heinrich Schuchardt
2021-05-14  7:13                           ` AKASHI Takahiro
2021-05-14  8:45                             ` Heinrich Schuchardt
2021-05-14  9:51                               ` AKASHI Takahiro
2021-05-14 10:08                                 ` Heinrich Schuchardt
2021-05-14 13:09                                 ` Masami Hiramatsu [this message]
2021-05-14 13:39                                   ` Ilias Apalodimas
2021-05-15  2:03                                   ` Heinrich Schuchardt
2021-05-15  2:14                                     ` Masami Hiramatsu
2021-05-12  4:57 ` [PATCH 2/4] tools: mkeficapsule: remove device-tree related operation AKASHI Takahiro
2021-05-12  7:20   ` Ilias Apalodimas
2021-05-12  7:49     ` Masami Hiramatsu
2021-05-12  8:01       ` Ilias Apalodimas
2021-05-12 10:01         ` Heinrich Schuchardt
2021-05-13  2:33           ` AKASHI Takahiro
2021-05-13  5:08             ` Heinrich Schuchardt
2021-05-13  7:13               ` AKASHI Takahiro
2021-05-13 17:42                 ` Heinrich Schuchardt
2021-05-14  2:21                   ` [PATCH 2/4] tools: mkeficapsule: remove device-tree related operationy AKASHI Takahiro
2021-05-14  2:23                   ` [PATCH 2/4] tools: mkeficapsule: remove device-tree related operation Masami Hiramatsu
2021-05-12  4:57 ` [PATCH 3/4] tools: add fdtsig command AKASHI Takahiro
2021-05-13  5:23   ` Heinrich Schuchardt
2021-05-13  7:03     ` AKASHI Takahiro
2021-05-12  4:57 ` [PATCH 4/4] test/py: efi_capsule: add image authentication test AKASHI Takahiro
2021-05-12  5:04 ` [PATCH 0/4] efi_loader: capsule: improve capsule authentication support Heinrich Schuchardt

Reply instructions:

You may reply publicly 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='CAA93ih0KHaq+EnfrzNF+kVhqZ=5HApeStOnYH+GGU6prJYOwPw@mail.gmail.com' \
    --to=masami.hiramatsu@linaro.org \
    --cc=u-boot@lists.denx.de \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.