Independent Submission A. Keromytis Request for Comments: 5708 Columbia University Category: Informational January 2010 ISSN: 2070-1721X.509 Key and Signature Encoding for the KeyNote Trust Management System
Keromytis Informational [Page 1]
RFC 5708 X.509 Encoding for KeyNote January 2010 1. IntroductionKeyNote is a simple and flexible trust-management system designed to work well for a variety of large- and small-scale, Internet-based applications. It provides a single, unified language for both local policies and credentials. KeyNote policies and credentials, called 'assertions', contain predicates that describe the trusted actions permitted by the holders of specific public keys. KeyNote assertions are essentially small, highly structured programs. A signed assertion, which can be sent over an untrusted network, is also called a 'credential assertion'. Credential assertions, which also serve the role of certificates, have the same syntax as policy assertions but are also signed by the principal delegating the trust. Note that only one principal may sign a credential assertion, but trust may be delegated to multiple principals. The credential assertion may delegate trust to each of these principals separately or to groups of principals required to act together. For more details on KeyNote, see [KEYNOTE]. This document assumes reader familiarity with the KeyNote system.
1.1. Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].
Keromytis Informational [Page 2]
RFC 5708 X.509 Encoding for KeyNote January 2010 2. X.509 Key Identifier EncodingX.509 key identifiers in KeyNote are encoded as an ASN1 Distinguished Encoding Rules (DER) encoding of the whole X.509 certificate, as defined in Section 4 of [RFC5280].
3. X.509 Key Identifier Normalized Forms
For comparison purposes, the Subject public key in X.509 certificates is used in the normalized form described in Section 2 of [RFC2792]. The resulting RSA or DSA key is then used for comparing, per [RFC2792]. All X.509 key comparisons in KeyNote occur between normalized forms. Note that this allows for comparison between a directly encoded RSA or DSA key (as specified in RFC 2792) and the same key when contained in an X.509 certificate.
4. X.509 Signature Computation and Encoding
X.509 key identifier signatures are defined for historical reasons. Implementers are encouraged to use the RSA- or DSA-based signature encodings instead.
Keromytis Informational [Page 3]
RFC 5708 X.509 Encoding for KeyNote January 2010
X.509 key identifier signatures encoded in this way in KeyNote must be identified by the "sig-x509-XXX-YYY:" algorithm name, where XXX is a hash function name (see Section 5 and Section 7 of this document) and YYY is an ASCII encoding ("hex" or "base64").
5. Hash Functions For RSA, DSA, and X.509 Key Identifier Signatures
For historical reasons (backward compatibility), X.509 key identifier signatures SHOULD support SHA1 as the hash function, using the "sha1" keyword. In addition, SHA256, SHA512, and RIPEMD160 ([SHA256+], [SHA2-2], [RIPEMD-160]) signatures MUST be supported for use with X.509 key identifier signatures, by using the "sha256", "sha512", and "ripemd160" keywords, respectively (see Section 7).
6. Security Considerations
This document discusses the format of X.509 keys and signatures as used in KeyNote. The security of KeyNote credentials utilizing such keys and credentials is directly dependent on the strength of the related public key algorithms. On the security of KeyNote itself, see [KEYNOTE]. Furthermore, it is the responsibility of the application developer to ensure that X.509 certificates are valid (signed by a trusted authority, not expired, and not revoked).
7. IANA Considerations
Per [RFC2792], IANA has provided a registry of reserved algorithm identifiers. The following are reserved by this document as KeyNote public key format identifiers:
Keromytis Informational [Page 4]
RFC 5708 X.509 Encoding for KeyNote January 2010
Note that the double quotes are not part of the algorithm identifiers.8. References 8.1. Normative References[SHA256+] Eastlake 3rd, D. and T. Hansen, "US Secure Hash
8.2. Informative References
[KEYNOTE] Blaze, M., Feigenbaum, J., Ioannidis, J., and A.
Keromytis Informational [Page 5]
RFC 5708 X.509 Encoding for KeyNote January 2010
[RIPEMD-160] 3.ISO/IEC 10118-3:1998, "Information technology -
9. Acknowledgements
The author would like to thank Jim Schaad for his review and comments on earlier versions of this document.