[Cryptech Tech] Draft Requirements
Rob Austein
sra at hactrn.net
Thu Feb 19 23:26:37 UTC 2015
First response to Requirements draft as relates to RPKI.
- Not sure about per-key storage requirements yet. Origin of per-key
numbers currently shown in Wiki not immediately obvious to me
(perhaps I need to read the Wiki page a few more times?).
- Algorithms look OK for current RPKI and BGPSEC specs: everything is
RSA-2048, EC-P256, and SHA-256.
I think Randy wants EdDSA 25519, but has not sold SIDR WG on it, so
it's not in the current specs.
- RPKI has a lot of keys flying around. The obvious ones to protect
are CA keys, but there are a lot of EE keys as well.
Depending on software design choices, RPKI EE keys can be use-once
throwaways, ie, one generates the keypair, signs something, and
destroys the private key; opinions vary on how good an idea this is,
as key generation is relatively expensive, thus this could be
construed as an invitation to an amplification attack, but this
approach does bypass the question of storing all those EE keys.
- RPKI CA operators fall into two very different categories (based
purely on operational issues, no fundamental protocol difference):
- operators who provide hosting (eg, at present, all of the RIRs)
will be operating a separate CA for each hosted customer (hundreds
or thousands of CAs);
- operators who don't provide hosting will (probably) just be
operating a handful of CAs for themselves.
Very different requirements. In practice, at present, I think all
of the RIRs who use HSMs only use them for their own CAs, not for
customer ("member") CAs, much less customer EE operations, thus
avoiding the key storage issue.
- A typical singleton change to an RPKI CA's outputs requires 2-5
signatures, depending on implementation choices and the specific
change being made:
- New object (EE key signing CMS);
- EE certificate for new object (CA key signing EE certificate);
- Manifest (EE key signing CMS);
- EE certificate for manifest (CA key signing EE certificate);
- CRL (CA signing CRL).
Bulk changes to the outputs of a single CA can amortize the last
three signatures over the entire batch. Since CRLs and manifests
are supposed to stay synchronized, we will probably issue a new CRL
every time we issue a new manifest (ie, with every change) even if
we haven't revoked anything.
Adding or changing a child CA is similar, with 2-4 signatures (one
fewer because parent CA signs child CA certificate directly rather
than issuing an EE certificate for a CMS-wrapped blob).
- The "one signature/hour" guess for CRL signing is probably (very)
optimistic. When a customer clicks on the button saying "I want to
originate my prefix foo at AS bar", the customer probably expects
something to happen quickly, not after lunch. Opinions seem to vary
greatly on this point, mostly depending on whether or not the person
expressing the opinion has a job description like "NOC monkey".
I suspect the history of expected publication times in the DNS
hosting business may be a better model for customer expectations
here than the traditional CA business.
- RPKI only uses CRLs, not OSCP; the CRLs are published along with the
rest of the RPKI data.
The above is probably too verbose for the requirements page, which is
why I'm sending it as email rather than just editing the page. Use as
you see fit.
More information about the Tech
mailing list