| < draft-ietf-jose-json-web-encryption-24.txt | draft-ietf-jose-json-web-encryption-25.txt > | |||
|---|---|---|---|---|
| JOSE Working Group M. Jones | JOSE Working Group M. Jones | |||
| Internet-Draft Microsoft | Internet-Draft Microsoft | |||
| Intended status: Standards Track J. Hildebrand | Intended status: Standards Track J. Hildebrand | |||
| Expires: September 19, 2014 Cisco | Expires: October 2, 2014 Cisco | |||
| March 18, 2014 | March 31, 2014 | |||
| JSON Web Encryption (JWE) | JSON Web Encryption (JWE) | |||
| draft-ietf-jose-json-web-encryption-24 | draft-ietf-jose-json-web-encryption-25 | |||
| Abstract | Abstract | |||
| JSON Web Encryption (JWE) represents encrypted content using | JSON Web Encryption (JWE) represents encrypted content using | |||
| JavaScript Object Notation (JSON) based data structures. | JavaScript Object Notation (JSON) based data structures. | |||
| Cryptographic algorithms and identifiers for use with this | Cryptographic algorithms and identifiers for use with this | |||
| specification are described in the separate JSON Web Algorithms (JWA) | specification are described in the separate JSON Web Algorithms (JWA) | |||
| specification and IANA registries defined by that specification. | specification and IANA registries defined by that specification. | |||
| Related digital signature and MAC capabilities are described in the | Related digital signature and MAC capabilities are described in the | |||
| separate JSON Web Signature (JWS) specification. | separate JSON Web Signature (JWS) specification. | |||
| 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 September 19, 2014. | This Internet-Draft will expire on October 2, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 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 36, line 11 ¶ | skipping to change at page 36, line 11 ¶ | |||
| encryption. These results can be used to validate JWE decryption | encryption. These results can be used to validate JWE decryption | |||
| implementations for these algorithms. Note that since the RSAES- | implementations for these algorithms. Note that since the RSAES- | |||
| PKCS1-V1_5 computation includes random values, the encryption results | PKCS1-V1_5 computation includes random values, the encryption results | |||
| above will not be completely reproducible. However, since the AES | above will not be completely reproducible. However, since the AES | |||
| CBC computation is deterministic, the JWE Encrypted Ciphertext values | CBC computation is deterministic, the JWE Encrypted Ciphertext values | |||
| will be the same for all encryptions performed using these inputs. | will be the same for all encryptions performed using these inputs. | |||
| A.3. Example JWE using AES Key Wrap and AES_128_CBC_HMAC_SHA_256 | A.3. Example JWE using AES Key Wrap and AES_128_CBC_HMAC_SHA_256 | |||
| This example encrypts the plaintext "Live long and prosper." to the | This example encrypts the plaintext "Live long and prosper." to the | |||
| recipient using AES Key Wrap for key encryption and AES GCM for | recipient using AES Key Wrap for key encryption and | |||
| content encryption. The representation of this plaintext is: | AES_128_CBC_HMAC_SHA_256 for content encryption. The representation | |||
| of this plaintext is: | ||||
| [76, 105, 118, 101, 32, 108, 111, 110, 103, 32, 97, 110, 100, 32, | [76, 105, 118, 101, 32, 108, 111, 110, 103, 32, 97, 110, 100, 32, | |||
| 112, 114, 111, 115, 112, 101, 114, 46] | 112, 114, 111, 115, 112, 101, 114, 46] | |||
| A.3.1. JWE Header | A.3.1. JWE Header | |||
| The following example JWE Protected Header declares that: | The following example JWE Protected Header declares that: | |||
| o the Content Encryption Key is encrypted to the recipient using the | o the Content Encryption Key is encrypted to the recipient using the | |||
| AES Key Wrap algorithm with a 128 bit key to produce the JWE | AES Key Wrap algorithm with a 128 bit key to produce the JWE | |||
| skipping to change at page 42, line 5 ¶ | skipping to change at page 42, line 5 ¶ | |||
| "KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY", | "KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY", | |||
| "tag": | "tag": | |||
| "Mz-VPPyU4RlcuYv1IwIvzw" | "Mz-VPPyU4RlcuYv1IwIvzw" | |||
| } | } | |||
| Appendix B. Example AES_128_CBC_HMAC_SHA_256 Computation | Appendix B. Example AES_128_CBC_HMAC_SHA_256 Computation | |||
| This example shows the steps in the AES_128_CBC_HMAC_SHA_256 | This example shows the steps in the AES_128_CBC_HMAC_SHA_256 | |||
| authenticated encryption computation using the values from the | authenticated encryption computation using the values from the | |||
| example in Appendix A.3. As described where this algorithm is | example in Appendix A.3. As described where this algorithm is | |||
| defined in Sections 4.8 and 4.8.3 of JWA, the AES_CBC_HMAC_SHA2 | defined in Sections 5.2 and 5.2.3 of JWA, the AES_CBC_HMAC_SHA2 | |||
| family of algorithms are implemented using Advanced Encryption | family of algorithms are implemented using Advanced Encryption | |||
| Standard (AES) in Cipher Block Chaining (CBC) mode with PKCS #5 | Standard (AES) in Cipher Block Chaining (CBC) mode with PKCS #5 | |||
| padding to perform the encryption and an HMAC SHA-2 function to | padding to perform the encryption and an HMAC SHA-2 function to | |||
| perform the integrity calculation - in this case, HMAC SHA-256. | perform the integrity calculation - in this case, HMAC SHA-256. | |||
| B.1. Extract MAC_KEY and ENC_KEY from Key | B.1. Extract MAC_KEY and ENC_KEY from Key | |||
| The 256 bit AES_128_CBC_HMAC_SHA_256 key K used in this example is: | The 256 bit AES_128_CBC_HMAC_SHA_256 key K used in this example is: | |||
| [4, 211, 31, 197, 84, 157, 252, 254, 11, 100, 157, 250, 63, 170, 106, | [4, 211, 31, 197, 84, 157, 252, 254, 11, 100, 157, 250, 63, 170, 106, | |||
| skipping to change at page 44, line 45 ¶ | skipping to change at page 44, line 45 ¶ | |||
| Nat Sakimura, Jim Schaad, Hannes Tschofenig, and Sean Turner. | Nat Sakimura, Jim Schaad, Hannes Tschofenig, and Sean Turner. | |||
| Jim Schaad and Karen O'Donoghue chaired the JOSE working group and | Jim Schaad and Karen O'Donoghue chaired the JOSE working group and | |||
| Sean Turner and Stephen Farrell served as Security area directors | Sean Turner and Stephen Farrell served as Security area directors | |||
| during the creation of this specification. | during the creation of this specification. | |||
| Appendix D. Document History | Appendix D. 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 ]] | |||
| -25 | ||||
| o Corrected two external section number references that had changed. | ||||
| o Corrected a typo in an algorithm name in the prose of an example. | ||||
| -24 | -24 | |||
| o Corrected complete JSON Serialization example. | o Corrected complete JSON Serialization example. | |||
| o Replaced uses of the term "associated data" wherever it was used | o Replaced uses of the term "associated data" wherever it was used | |||
| to refer to a data value with "additional authenticated data", | to refer to a data value with "additional authenticated data", | |||
| since both terms were being used as synonyms, causing confusion. | since both terms were being used as synonyms, causing confusion. | |||
| o Updated the JSON reference to RFC 7159. | o Updated the JSON reference to RFC 7159. | |||
| End of changes. 6 change blocks. | ||||
| 7 lines changed or deleted | 14 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||