draft-ietf-jose-jwk-thumbprint-06.txt   draft-ietf-jose-jwk-thumbprint-07.txt 
JOSE Working Group M. Jones JOSE Working Group M. Jones
Internet-Draft Microsoft Internet-Draft Microsoft
Intended status: Standards Track N. Sakimura Intended status: Standards Track N. Sakimura
Expires: December 26, 2015 NRI Expires: January 7, 2016 NRI
June 24, 2015 July 6, 2015
JSON Web Key (JWK) Thumbprint JSON Web Key (JWK) Thumbprint
draft-ietf-jose-jwk-thumbprint-06 draft-ietf-jose-jwk-thumbprint-07
Abstract Abstract
This specification defines a method for computing a hash value over a This specification defines a method for computing a hash value over a
JSON Web Key (JWK). It defines which fields in a JWK are used in the JSON Web Key (JWK). It defines which fields in a JWK are used in the
hash computation, the method of creating a canonical form for those hash computation, the method of creating a canonical form for those
fields, and how to convert the resulting Unicode string into a byte fields, and how to convert the resulting Unicode string into a byte
sequence to be hashed. The resulting hash value can be used for sequence to be hashed. The resulting hash value can be used for
identifying or selecting the key represented by the JWK that is the identifying or selecting the key represented by the JWK that is the
subject of the thumbprint. subject of the thumbprint.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 26, 2015. This Internet-Draft will expire on January 7, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 23 skipping to change at page 2, line 23
3. JSON Web Key (JWK) Thumbprint . . . . . . . . . . . . . . . . 3 3. JSON Web Key (JWK) Thumbprint . . . . . . . . . . . . . . . . 3
3.1. Example JWK Thumbprint Computation . . . . . . . . . . . . 4 3.1. Example JWK Thumbprint Computation . . . . . . . . . . . . 4
3.2. JWK Members Used in the Thumbprint Computation . . . . . . 5 3.2. JWK Members Used in the Thumbprint Computation . . . . . . 5
3.2.1. JWK Thumbprint of a Private Key . . . . . . . . . . . 6 3.2.1. JWK Thumbprint of a Private Key . . . . . . . . . . . 6
3.2.2. Why Not Include Optional Members? . . . . . . . . . . 6 3.2.2. Why Not Include Optional Members? . . . . . . . . . . 6
3.3. Order and Representation of Members in Hash Input . . . . 7 3.3. Order and Representation of Members in Hash Input . . . . 7
3.4. Selection of Hash Function . . . . . . . . . . . . . . . . 8 3.4. Selection of Hash Function . . . . . . . . . . . . . . . . 8
3.5. JWK Thumbprints of Keys Not in JWK Format . . . . . . . . 8 3.5. JWK Thumbprints of Keys Not in JWK Format . . . . . . . . 8
4. Practical JSON and Unicode Considerations . . . . . . . . . . 8 4. Practical JSON and Unicode Considerations . . . . . . . . . . 8
5. Relationship to Digests of X.509 Values . . . . . . . . . . . 9 5. Relationship to Digests of X.509 Values . . . . . . . . . . . 9
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.1. Normative References . . . . . . . . . . . . . . . . . . . 11 8.1. Normative References . . . . . . . . . . . . . . . . . . . 11
8.2. Informative References . . . . . . . . . . . . . . . . . . 12 8.2. Informative References . . . . . . . . . . . . . . . . . . 12
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 12 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 12
Appendix B. Document History . . . . . . . . . . . . . . . . . . 12 Appendix B. Document History . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
skipping to change at page 8, line 17 skipping to change at page 8, line 17
A specific hash function must be chosen by an application to compute A specific hash function must be chosen by an application to compute
the hash value of the hash input. For example, SHA-256 [SHS] might the hash value of the hash input. For example, SHA-256 [SHS] might
be used as the hash function by the application. While SHA-256 is a be used as the hash function by the application. While SHA-256 is a
good default choice at the time of this writing, the hash function of good default choice at the time of this writing, the hash function of
choice can be expected to change over time as the cryptographic choice can be expected to change over time as the cryptographic
landscape evolves. landscape evolves.
Note that in many cases, only the party that creates a key will need Note that in many cases, only the party that creates a key will need
to know the hash function used. A typical usage is for the producer to know the hash function used. A typical usage is for the producer
of the key to use the base64url-encoded JWK Thumbprint value as a of the key to use the base64url-encoded JWK Thumbprint value as a
"kid" (key ID) value. The consumer of the "kid" treats it as an "kid" (key ID) value. In this case, the consumer of the "kid" treats
opaque value that it uses to select the key. Only if multiple it as an opaque value that it uses to select the key.
parties will be reproducing the JWK Thumbprint calculation for some
reason, will parties other than the original producer of the JWK However, in some cases, multiple parties will be reproducing the JWK
Thumbprint need to know which hash function was used. Thumbprint calculation and comparing the results. In these cases,
the parties will need to know which hash function was used and use
the same one.
3.5. JWK Thumbprints of Keys Not in JWK Format 3.5. JWK Thumbprints of Keys Not in JWK Format
Note that a key need not be in JWK format to create a JWK Thumbprint Note that a key need not be in JWK format to create a JWK Thumbprint
of it. The only prerequisites are that the JWK representation of the of it. The only prerequisites are that the JWK representation of the
key be defined and the party creating the JWK Thumbprint is in key be defined and the party creating the JWK Thumbprint is in
possession of the necessary key material. These are sufficient to possession of the necessary key material. These are sufficient to
create the hash input from the JWK representation of the key, as create the hash input from the JWK representation of the key, as
described in Section 3.3. described in Section 3.3.
skipping to change at page 12, line 18 skipping to change at page 12, line 19
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, May 2008. (CRL) Profile", RFC 5280, May 2008.
[RFC7493] Bray, T., "The I-JSON Message Format", RFC 7493, [RFC7493] Bray, T., "The I-JSON Message Format", RFC 7493,
March 2015. March 2015.
Appendix A. Acknowledgements Appendix A. Acknowledgements
James Manger and John Bradley participated in discussions that led to James Manger and John Bradley participated in discussions that led to
the creation of this specification. Jim Schaad also contributed to the creation of this specification. Thanks also to Joel Halpern,
this specification. Adam Montville, Kathleen Moriarty, and Jim Schaad for their reviews
of this specification.
Appendix B. Document History Appendix B. Document History
[[ to be removed by the RFC editor before publication as an RFC ]] [[ to be removed by the RFC editor before publication as an RFC ]]
-07
o Addressed Gen-ART review comment by Joel Halpern.
-06 -06
o Addressed comments in SecDir review by Adam Montville. o Addressed comments in SecDir review by Adam Montville.
-05 -05
o Addressed comments in Kathleen Moriarty's AD review. o Addressed comments in Kathleen Moriarty's AD review.
-04 -04
 End of changes. 7 change blocks. 
12 lines changed or deleted 19 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/