Hi ACMErs,
I just wanted to mention that key-attestation schemes represent an alternative 
to PKCS #10 (PoP).
As an example the FIDO/Google U2F-token builds on this concept.  In summary the 
advantages could be:

- HSM-secured attestation keys could vouch for slightly less secured web-server 
keys
- Alternative to backup secrets
- CSR independent of requested key usage (like ECDSA versus ECDH or ECDSA 
versus RSA_OAEP)
- True attestation (=keys can be proved to reside in secure storage) could be a 
requirement for certain certification levels although probably not for 
web-servers

The following mockup (here dressed in JCS notation), should give you an idea on 
how such a CSR could be architected:

{
  "@context": "https://letsencrypt.org/acme/v1";,
  "@qualifier": "AttestedCSR",
  "domain": "example.com",
  "nonce": "yPdYDThBqWRuKoZ24sXLOcqyKFx7abbSp8DF11rv0mo",
  "dateTime": "2015-01-02T12:25:19Z",
  "keyAttestationAlgorithm": "ACME-KA1",
  "attestedKeys":
    [{
       "id": "Key.1",
       "keyAttestation": 
"niS9_Urs0sscTE2bUkjkE7WgIALnjRdaxCHhQ...s9RdobcnDmWfE_ZUb9rHUva2I_JnZY3q1JnAkXGW_6rhA5kxn32zBoR9SvL",
       "publicKey":
         {
           "type": "RSA",
           "n": 
"ld-uUL2csxx3hbGqN_Ix48wbIgcas2i42ujmW3D2ZtT8tmr...B7VnYF56h45CD3FPLAYR9ZFNlAWdgTQi5OUdSJvAwK1w",
           "e": "AQAB"
         }
     }],
  "attestationKey":
    {
      "certificatePath": 
[MIIETTCCAjWgAwIBAgIGAUoqo740MA0GCSqGSI...uREScyhb_49Dqaq-OypeSJSChtKT4UuQTcmz2cs9Zi90RyQ7UzWNrQjoLERGLkuetIw]
    },
  "signatureKeyAttestation": 
"NrZnvexftkY_NtGcrQf2RDKizybbgWKUm8...gDUXsWfeVoF5aoFbx8OXzlFhKd_BB91OGZADSkuBacptgWETjXHNC5NUQ78W",
  "signature":
    {
      "algorithm": "ES512",
      "publicKey":
        {
          "type": "EC",
          "curve": "P-521",
          "x": 
"AP_f3bqRvBAvtC2dATIxEsXZfc-THnnMTkjOcyILsW3AFGGEp1d9NOESbIuCUw3fwFvR0WltuROBMg9ouycegZQn",
          "y": 
"ABrvjyrr0v7VcehkYbiyPM-V7Wwy7OrLWaOLn1q2TPmpqdH-PybgkAUSbwHzMNXYQNe4og5PKgRsBJWoKrxcZZLt"
        },
      "value": 
"MIGHAkIB4jih8QzkJYZ4bKa_cuwtiVTIctq66QFhA5F6TNy...-8oDgaqYUjIpFYW8yP8yuZH9ODNI6n28w5ktUBsmRIk-ixiOjSV02R6A6W"
    }
}

The key attestation properties are created inside of the attesting unit since 
the only thing an attester (of this kind NB) can sign is is something it has 
created itself which in this case is limited to key-pairs.  That is, the CSR 
body is not signed by the attestation key, but by an ephemeral signature key 
which also is attested.  The attestation itself is a signature over the public 
key.   All keys can thus be securely derived to the supplied attestationKey.

Anders
_______________________________________________
Acme mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/acme

Reply via email to