Subject: [Anima] comments about draft-richardson-anima-masa-considerations

From: Toerless Eckert <[email-masked]>
Date: Tue, 10 Mar 2020 06:23:18 +0100

Very interesting document.

Some alas not very structured comments:

1. tooling: would be great if you had a makefile that automatically
updates the .txt when you do a commit in github. .mkd is just 'ok',
but not 'great' to read (like .txt is).

2. "A three-tier PKI infrastructure is appropriate"

I was confused by that statement vs. the followig text. When i heard for
example "intermedia CA" in other contexts (enterprise PKI
architectures), it meant that there was another layer of CA below the
intermediate CAs, namely the "assigning CA(s)". And they called that a
three-tier PKI infrastructure too.

The reason for three tiers of CA is when you have multuple functions
within an organization that need to run CAs. The root CA is the offline
magic you described, so it not really for day to day work. The
intermediate CA are run by the enterprise security department which sets
policies which department can do what with their CAs. The departments
(like manufacturing) run the assigning ("leaf") CA.

In any case, "intermediate" sounds really as if there are more CA below it.

Related: Whether or not you want a CA in the manufacturing plant also
depends on the trust model to your likely outsourced manufacturing plant
and the tracking/control you want to exercise on it. Your headqaurter
based CA will not sign IDevIDs for the plant cousins grey market plant
across the street ;-)

3. Title etc..

Something like "IDevID, MASA and voucher considerations for BRSKI infrastructures" 
would be better matching the content.

The text also reads more like design and not operations, maybe consider if where you say "operations" (also in the text) it is really design.

4. "There are two fundamental ways to generate IDevID certificates ..."

But then you have 3 bullet points.

5.  Key generation process

I think the different mechanisms you describe also exist to support
other systems than those that we have constrained BRSKI to so far, e.g.:
also systems without certificates, but ... hmm, forgot name, the stuff
we discussed with ACME ?

Maybe just note that these systems have additional pro and cons when
used outside of the realms of BRSKI with IDevID generation, but that
those differences are out of scope of this document. Until they are not,
because someone brings that stuff into BRSKI)

6.  why should i read this

The intro would be helped if it outlined example target readers and what
they would get out of reading the document.

For example; For organizations considering to deploy equipment
using BRSKI, an understanding of the design of the manufacturers design 
and operations IDevID, MASA and voucher can be beneficial or may even be required
to understand security, risk, compliance, trust and reliability aspects
of the pledge devices from that manufacturer.

Not as glamorous, but maybe closer to the truth ?
The autors where overwhelmed of all the different options discussed or
used in the industry, their interactions and implications and just wanted
to start dumping this onto paper in the hope that some sane structuring can evolve
;-)

7. From where we are to BRSKI

I think one mayor reason why to read this are manufacturers that may
have have or plan to have one of the described IDevID designs and now
want to understand what is needed to add support for MASA to their
designs. That could be called out in the introduction, but i think
the IDevID section itself could better distinguish between the
description/judgement that is independent of MASA and then the
new MASA considerations. Maybe structure, put MASA text always at end of
options "When adding/using MASA in this option, the following
applies...".

Cheers

    Toerless

In-Reply-To: <4178.1583770121@localhost>

On Mon, Mar 09, 2020 at 12:08:41PM -0400, Michael Richardson wrote:
> 
> I will post -03 today, after a few other review comments.
> 
> "Xialiang (Frank, Network Standard & Patent Dept)" wrote:
>     > This draft is useful for helping guy to get valuable guidance of
>     > deploying BRSKI MASA service, please see my current comments as below:
> 
> Thank you for your comments.
> 
>     > pg 4:
>     > One way to do the transmission is during a manufacturing during a Bed
>     > of Nails (see [BedOfNails]) or Boundary Scan.
> 
> 
>     > comment:
>     > Can the manufacturer internal scep or similar protocols be the other ways?
> 
> SCEP is the Simple Certificate Enrollment Protocol.
> It variously described as a Verisign/Cisco originated protocol described in
> draft-gutmann-scep-XX.txt and in draft-nourse-scep-XX before that,
> going back to 2000.  Never published, I think because of the problems that it
> has, and because RFC7030 solves those problems.
> In particular, any device/person posessing a valid password can typically
> request any certificate contents.
> 
> Having said that, SCEP could be used in a controlled manufacturing
> environment to do initial enrollment.  My understanding is that the issues
> that make it a problem (and which I think has prevented the IETF from
> publishing it, preferring EST/RFC7030) would not apply in a controlled
> environment like a manufacturer.
> 
> I have added a section matching Laurence's slide 32.
> 
>     > pg 4:
> 
>     > has been started the first time.
> 
>     > comment:
>     > Both in the manufacturing process and in-field provisioning process?
> 
> For on-device private key generation, the device needs to be started at least
> once in the factory, when it is attached to the factory provisioning system.
> After that, some flag needs to be set to prevent any further generation.
> This could be as serious as a blowing a fuse!
> 
> I have clarified this section:
> https://github.com/mcr/masa-operational-considerations/commit/10a12fb406d254dc1172ae5cb2be2f2cc920f709
> 
>     > pg 4:
>     > A serial number for the device can be assigned and placed into a
> 
> 
>     > comment:
>     > Is it appropriate to assign the serial number to device, since device has
>     > already had its own SN?
> 
> This is device has a single serial number.
> The point is that a device may not yet have a serial number, and it is
> possible to assign the serial number during this process.  Or perhaps more to
> the point, the manufacturer step that a serial number is assigned,  is the
> right time to deploy the private key.
> 
> 
>     > pg 5:
>     > Ongoing access to the root-CA is important, but not as critical as
>     > access to the MASA key.
> 
> 
>     > comment:
>     > MASA key is not relevant with the IDevID three-tier PKI
>     > infrastructure. So, does this sentence make sense here?
> 
> This comment is about relative levels of access to the private keys.
> The key that the MASA uses to sign vouchers *needs* to be online.
> The root-CA for the IDevID PKI can be offline, locked in a vault (and guarded
> by Godzilla if you like).
> 
> 
>     > pg 5:
> 
>     > The IDevID certificates have very long (ideally infinite)
>     > validity lifetimes for reasons that [ieee802-1AR] explains, but once
>     > the certificates have been created the intermediate CA has no further
>     > obligations as neither CRLs nor OCSP are appropriate.
> 
>     > comment:
> 
>     > Miss some text here for clarifying how the updated intermediate CAs with
>     > new keypair can still be used to validate the old IDevID which is issued
>     > with the intermediate CA's old keypair. Can the updated intermediate CA
>     > still store and use the old keypair?
> 
>     > And why do you say that the intermediate CA has no further obligations for
>     > its status update once the IDevIDs have been created?
> 
> I have changed the text to clarify that the private key is not needed online
> after the CA has been retired, but that the intermediate CA certificate
> should have infinite/indefinite lifetime.
>   https://github.com/mcr/masa-operational-considerations/commit/07b551d2cad9584f6fbe984cd2ba854461ee7fb3
> 
> 
>     > pg 6:
> 
>     > A plan to escrow the signing keys SHOULD be detailed, and it is
>     > likely that customers will want to review it for high-value products.
> 
> 
>     > comment:
>     > what is the "escrow the signing keys"?
> 
> It means to keep a (secure) copy with a lawyer in case the company goes under.
> https://en.wikipedia.org/wiki/Source_code_escrow
>         Source code escrow is the deposit of the source code of software with
>         a third-party escrow agent. Escrow is typically requested by a party
>         licensing software (the licensee), to ensure maintenance of the software
>         instead of abandonment or orphaning. The software's source code is released
>         to the licensee if the licensor files for bankruptcy or otherwise fails to
>         maintain and update the software as promised in the software license
>         agreement.
> 
> I have changed the text to speak about business continuity planning instead.
> 
>     > pg 7:
> 
>     > In order to avoid locking down a single validation key, a PKI infrastructure is
>     > appropriate.
> 
> 
> 
>     > comment:
> 
>     > A PKI infrastructure for MASA?
> 
> Yes, for the voucher signing key.
> Good cryptographic hygiene would replace the voucher signing key
> periodically.  The PKI infrastructure means that the vouchers could still be
> validated.
> 
>     > pg 7:
> 
>     > a new End-Entity (EE) Certificate with an online
>     > private key, and use that to sign voucher requests. The entity used
>     > to sign [RFC8366] format vouchers does not need to be a certificate
>     > authority.
> 
> 
> 
> 
>     > comment:
>     > Why is it the EE Certificate?
> 
> End-Entity certificates are certificates which are not Certificate
> Authorities (whether root or intermediate).  The voucher does not need to be
> signed by a certificate authority, as the voucher is not a certifiate.
> 
> 
> --
> Michael Richardson <[email-masked]>, Sandelman Software Works
>  -= IPv6 IoT consulting =-
> 
> 
> 

> _______________________________________________
> Anima mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/anima

-- 
---
[email-masked]

---

From: Michael Richardson <[email-masked]>
Date: Tue, 10 Mar 2020 16:44:46 -0400

> but not 'great' to read (like .txt is).

I do.  And I regularly commit the .txt file too.
I just don't use the all-singing-all-dancing one, and I don't generate it via travis-ci.

    > three-tier PKI infrastructure too.

The point you are making is whether we count End-Entity certificates or not.
I assumed one did, that the leaves were the third tier.
You are making the point that if we count only CAs, then I have described a
two-tier system.
My understanding is that all CAs which are not the root CA are intermediate
CAs, and that seems to be how they are described in most documentation I have
used.

But, I don't operate a commercial CA, so I don't really know, which is why I
want these parts reviewed....

    > (like manufacturing) run the assigning ("leaf") CA.

I think that, for the purposes of produces and IDevIDs, that the manufacturer
should not mix their internal business CA (which has a "marketing" or
"manufacturing" department) with their product CA.
Except in the smallest of entities, they should not share the same root-CA,
and even in a 30-person operation, I still think that would be a mistake.

I can rewrite this to say it is a two-tier system, and clearly describe it
(probably add a diagram) as having a root, and a minimum of one intermediate
CA.  I have no objection if someone wants to have more levels :-)

    > based CA will not sign IDevIDs for the plant cousins grey market plant

Exactly.  I have been trying to get Cullen to contribute to this document, as
he has direct experience dealing with the "across the street" problem.
Depending on the model of how/where the private key is generated, it could be
that no signing ever needs to occur in the plant.  Or access to the signing
system requires that some VPN be up to HQ.

    > would be better matching the content.

I like that title, and I will use it.
I am concerned that MASA needs to be expanded in the title, though.
Doing so, makes it very long.

    > The text also reads more like design and not operations, maybe consider
    > if where you say "operations" (also in the text) it is really design.

I see your point.
I am laying out considerations on how to design the system based upon
operational concerns.

    > But then you have 3 bullet points.

There are 10 kinds of people in the world... fixed.

    > also systems without certificates, but ... hmm, forgot name, the stuff

Section 2 is about provisioning of secrets into devices, and it is hardly
unique to BRSKI.   The Intel SDO/ARM Pelion system, Rambus has a product that
is apparently widely used... part of the point of this document is to make it
clear that provisioning IDevID is a solved problem.

    > because someone brings that stuff into BRSKI)

I'm not sure I understand what your objection :-)

    > they would get out of reading the document.

Agreed, opened an issue.

    > options "When adding/using MASA in this option, the following

okay.

--
]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        |    IoT architect   [
]     [email-masked]  http://www.sandelman.ca/        |   ruby on rails    [

---

From: Toerless Eckert <[email-masked]>
Date: Tue, 10 Mar 2020 22:29:30 +0100

> I just don't use the all-singing-all-dancing one, and I don't generate it via travis-ci.

I thought when i read it yesterday, the .txt file was quite behind..

> want these parts reviewed....

Right. My information came from some enterprise that has a three tier "CA" system.
But of course we should ask actual PKI experts.

But beside the naming, i did like the organization reasons of
enterprises to actually have three tiers of CA as i explained, not only two.
Aka: as soon as you got two separate organizational entities (security
overlords and actual working parts of a company) AND you want the
offline root CA (which i think we agree, you MUST), you probably want
three instead of two tiers of CA.

> "manufacturing" department) with their product CA.

Are you talking root-CA now ? I think to avoid having the overhead of
multiple root-CAs (and associated overhead) that's exactly why there
are three-tier CA ssytems.

> and even in a 30-person operation, I still think that would be a mistake.

Would be good to get opinions from folks with more experts for this than
i think we have in ANIMA. WHats a good IETF group to join and ask for this ?

> CA.  I have no objection if someone wants to have more levels :-)

Sure, i have no strong opinions about how much we want in this document,
but am curious about the subject matter. Ideal hallway talk for an
in-person IETF... and then i might have had a stronger opinion *sigh*

> system requires that some VPN be up to HQ.

Any big manufacturer with interest in security would be indeed an interesting
contributor to this, but i fear there is today little room between
"OMG, lets not document how bad we are" and "OMG, this is competitively a great differentiator"
At least in the perception of i think many players in the industry.

So, one of the good things this document could do is to educate
non-manufacturer readers about the details of the maufacturers process
that they need to inquire with the manufacturer so that they can vet the
trust they can have in the manufacturer, for example re. leakage or
government agency (ab)use of private keys.

A similar transparency which i think was forced upon manufacturers
by i think the government and security sensitive custsomers is how/what
parts of a product need to be destroyed in which manner to prohibit
later retrieval of customer proprietary data. 

> Doing so, makes it very long.

Look at the length of titles in research papers and feel better. ;-)
Even if you expand, pls. still expand the abbreviation, its important
for searches.

> I am laying out considerations on how to design the system based upon

Sure.  Security concerns, Reliability concerns, Cost concerns could
be called part of operational concerns, but i think it would help
to also explicitly mentiong them in the beginning. You do discuss
them in the text.

> clear that provisioning IDevID is a solved problem.

Hah!. Then you should say so explicitly. Because one of the takeaways i
took reading from the text was that there are many options and its not obvious
how to choose between them.

> I'm not sure I understand what your objection :-)

Remember the side meeting we had with ACME, if i remember about some of
the ssytems where you are not using actual certificates but some other
form of credentials (forgot name). We discusssed those initially in
BRSKI, and i think there are still mentions of them in the voucher doc,
but so far they are out of scope of the current ANIMA solutions. But
they may not stay out of scope, and if this document wants to be
proactive include them, then maybe it could be split up more explicitly
between the options to provision any type of secure keying material into
devices and a second part that refines this for the case when that
material is an IDevID.

But it would be more work, so only useful if sufficienly beneficial.
Maybe for the larger IETF right now (ACME), but not ANIMA alone.

>     > options "When adding/using MASA in this option, the following

Thanks for the work. Might make sense to present to other WGs where you
might find more contributors/co-authors.

Cheers
    Toerless