draft-ietf-keyprov-dskpp-04.txt   draft-ietf-keyprov-dskpp-05.txt 
KEYPROV Working Group A. Doherty KEYPROV Working Group A. Doherty
Internet-Draft RSA, The Security Division of EMC Internet-Draft RSA, The Security Division of EMC
Intended status: Standards Track M. Pei Intended status: Standards Track M. Pei
Expires: December 24, 2008 Verisign, Inc. Expires: January 13, 2009 Verisign, Inc.
S. Machani S. Machani
Diversinet Corp. Diversinet Corp.
M. Nystrom M. Nystrom
RSA, The Security Division of EMC RSA, The Security Division of EMC
June 22, 2008 July 12, 2008
Dynamic Symmetric Key Provisioning Protocol (DSKPP) Dynamic Symmetric Key Provisioning Protocol (DSKPP)
draft-ietf-keyprov-dskpp-04.txt draft-ietf-keyprov-dskpp-05.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 39 skipping to change at page 1, line 39
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on December 24, 2008. This Internet-Draft will expire on January 13, 2009.
Abstract Abstract
DSKPP is a client-server protocol for initialization (and DSKPP is a client-server protocol for initialization (and
configuration) of symmetric keys to locally and remotely accessible configuration) of symmetric keys to locally and remotely accessible
cryptographic modules. The protocol can be run with or without cryptographic modules. The protocol can be run with or without
private-key capabilities in the cryptographic modules, and with or private-key capabilities in the cryptographic modules, and with or
without an established public-key infrastructure. without an established public-key infrastructure.
Two variations of the protocol support multiple usage scenarios. Two variations of the protocol support multiple usage scenarios.
skipping to change at page 4, line 23 skipping to change at page 4, line 23
9.6.1. Client Contributions to K_TOKEN Entropy . . . . . . . 72 9.6.1. Client Contributions to K_TOKEN Entropy . . . . . . . 72
9.6.2. Key Confirmation . . . . . . . . . . . . . . . . . . 73 9.6.2. Key Confirmation . . . . . . . . . . . . . . . . . . 73
9.6.3. Server Authentication . . . . . . . . . . . . . . . . 73 9.6.3. Server Authentication . . . . . . . . . . . . . . . . 73
9.6.4. User Authentication . . . . . . . . . . . . . . . . . 73 9.6.4. User Authentication . . . . . . . . . . . . . . . . . 73
9.6.5. Key Protection in Two-Pass DSKPP . . . . . . . . . . 74 9.6.5. Key Protection in Two-Pass DSKPP . . . . . . . . . . 74
10. Internationalization Considerations . . . . . . . . . . . . . 74 10. Internationalization Considerations . . . . . . . . . . . . . 74
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 75 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 75
11.1. URN Sub-Namespace Registration . . . . . . . . . . . . . 75 11.1. URN Sub-Namespace Registration . . . . . . . . . . . . . 75
11.2. XML Schema Registration . . . . . . . . . . . . . . . . . 75 11.2. XML Schema Registration . . . . . . . . . . . . . . . . . 75
11.3. MIME Media Type Registration . . . . . . . . . . . . . . 76 11.3. MIME Media Type Registration . . . . . . . . . . . . . . 76
12. Intellectual Property Considerations . . . . . . . . . . . . 76 11.4. Status Code Registry . . . . . . . . . . . . . . . . . . 76
12. Intellectual Property Considerations . . . . . . . . . . . . 77
13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 77 13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 77
14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 77 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 78
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 78 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 78
15.1. Normative references . . . . . . . . . . . . . . . . . . 78 15.1. Normative references . . . . . . . . . . . . . . . . . . 78
15.2. Informative references . . . . . . . . . . . . . . . . . 78 15.2. Informative references . . . . . . . . . . . . . . . . . 79
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 80 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 81
A.1. Trigger Message . . . . . . . . . . . . . . . . . . . . . 81 A.1. Trigger Message . . . . . . . . . . . . . . . . . . . . . 82
A.2. Four-Pass Protocol . . . . . . . . . . . . . . . . . . . 81 A.2. Four-Pass Protocol . . . . . . . . . . . . . . . . . . . 82
A.2.1. <KeyProvClientHello> Without a Preceding Trigger . . 82 A.2.1. <KeyProvClientHello> Without a Preceding Trigger . . 83
A.2.2. <KeyProvClientHello> Assuming a Preceding Trigger . . 83 A.2.2. <KeyProvClientHello> Assuming a Preceding Trigger . . 84
A.2.3. <KeyProvServerHello> Without a Preceding Trigger . . 84 A.2.3. <KeyProvServerHello> Without a Preceding Trigger . . 85
A.2.4. <KeyProvServerHello> Assuming a Preceding Trigger . . 85 A.2.4. <KeyProvServerHello> Assuming a Preceding Trigger . . 86
A.2.5. <KeyProvClientNonce> Using Default Encryption . . . . 85 A.2.5. <KeyProvClientNonce> Using Default Encryption . . . . 86
A.2.6. <KeyProvServerFinished> Using Default Encryption . . 87 A.2.6. <KeyProvServerFinished> Using Default Encryption . . 88
A.3. Two-Pass Protocol . . . . . . . . . . . . . . . . . . . . 87 A.3. Two-Pass Protocol . . . . . . . . . . . . . . . . . . . . 88
A.3.1. Example Using the Key Transport Profile . . . . . . . 87 A.3.1. Example Using the Key Transport Profile . . . . . . . 88
A.3.2. Example Using the Key Wrap Profile . . . . . . . . . 90 A.3.2. Example Using the Key Wrap Profile . . . . . . . . . 91
A.3.3. Example Using the Passphrase-Based Key Wrap Profile . 93 A.3.3. Example Using the Passphrase-Based Key Wrap Profile . 94
Appendix B. Integration with PKCS #11 . . . . . . . . . . . . . 96 Appendix B. Integration with PKCS #11 . . . . . . . . . . . . . 97
B.1. The 4-pass Variant . . . . . . . . . . . . . . . . . . . 96 B.1. The 4-pass Variant . . . . . . . . . . . . . . . . . . . 97
B.2. The 2-pass Variant . . . . . . . . . . . . . . . . . . . 96 B.2. The 2-pass Variant . . . . . . . . . . . . . . . . . . . 97
Appendix C. Example of DSKPP-PRF Realizations . . . . . . . . . 99 Appendix C. Example of DSKPP-PRF Realizations . . . . . . . . . 100
C.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 99 C.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 100
C.2. DSKPP-PRF-AES . . . . . . . . . . . . . . . . . . . . . . 99 C.2. DSKPP-PRF-AES . . . . . . . . . . . . . . . . . . . . . . 100
C.2.1. Identification . . . . . . . . . . . . . . . . . . . 99 C.2.1. Identification . . . . . . . . . . . . . . . . . . . 100
C.2.2. Definition . . . . . . . . . . . . . . . . . . . . . 99 C.2.2. Definition . . . . . . . . . . . . . . . . . . . . . 100
C.2.3. Example . . . . . . . . . . . . . . . . . . . . . . . 100 C.2.3. Example . . . . . . . . . . . . . . . . . . . . . . . 101
C.3. DSKPP-PRF-SHA256 . . . . . . . . . . . . . . . . . . . . 101 C.3. DSKPP-PRF-SHA256 . . . . . . . . . . . . . . . . . . . . 102
C.3.1. Identification . . . . . . . . . . . . . . . . . . . 101 C.3.1. Identification . . . . . . . . . . . . . . . . . . . 102
C.3.2. Definition . . . . . . . . . . . . . . . . . . . . . 101 C.3.2. Definition . . . . . . . . . . . . . . . . . . . . . 102
C.3.3. Example . . . . . . . . . . . . . . . . . . . . . . . 102 C.3.3. Example . . . . . . . . . . . . . . . . . . . . . . . 103
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 102 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 103
Intellectual Property and Copyright Statements . . . . . . . . . 104 Intellectual Property and Copyright Statements . . . . . . . . . 105
1. Introduction 1. Introduction
A symmetric key cryptographic module provides data authentication and A symmetric key cryptographic module provides data authentication and
encryption services to software (or firmware) applications hosted on encryption services to software (or firmware) applications hosted on
hardware devices, such as personal computers, handheld mobile phones, hardware devices, such as personal computers, handheld mobile phones,
one-time password tokens, USB flash drives, tape drives, etc. Until one-time password tokens, USB flash drives, tape drives, etc. Until
recently, provisioning symmetric keys to these modules has been labor recently, provisioning symmetric keys to these modules has been labor
intensive, involving manual operations that are device-specific, and intensive, involving manual operations that are device-specific, and
inherently error-prone. inherently error-prone.
skipping to change at page 12, line 46 skipping to change at page 12, line 46
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
References to qualified elements in the DSKPP schema defined herein References to qualified elements in the DSKPP schema defined herein
use the prefix "dskpp". use the prefix "dskpp".
This document relies on qualified elements already defined in the This document relies on qualified elements already defined in the
Portable Symmetric Key Container [PSKC] namespace, which is Portable Symmetric Key Container [PSKC] namespace, which is
represented by the prefix "pskc" and declared as: represented by the prefix "pskc" and declared as:
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
Finally, the DSKPP syntax presented in this document relies on Finally, the DSKPP syntax presented in this document relies on
algorithm identifiers defined in the XML Signature [XMLDSIG] algorithm identifiers defined in the XML Signature [XMLDSIG]
namespace: namespace:
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
References to algorithm identifiers in the XML Signature namespace References to algorithm identifiers in the XML Signature namespace
are represented by the prefix "ds". are represented by the prefix "ds".
skipping to change at page 30, line 37 skipping to change at page 30, line 37
This profile establishes a symmetric key, K_TOKEN, in the This profile establishes a symmetric key, K_TOKEN, in the
cryptographic module using key transport and key derivation. Key cryptographic module using key transport and key derivation. Key
transport is carried out using a public key whose private key part transport is carried out using a public key whose private key part
resides in the cryptographic module as the key transport key. A resides in the cryptographic module as the key transport key. A
provisioning master key, K_PROV, MUST be transported from the DSKPP provisioning master key, K_PROV, MUST be transported from the DSKPP
server to the client. From K_PROV, two keys are derived: the server to the client. From K_PROV, two keys are derived: the
symmetric key to be established, K_TOKEN, and a key used to compute symmetric key to be established, K_TOKEN, and a key used to compute
MACs, K_MAC. MACs, K_MAC.
This profile MUST be identified with the following URN: This profile MUST be identified with the following URN:
urn:ietf:params:xml:schema:keyprov:protocol#transport urn:ietf:params:xml:schema:keyprov:dskpp#transport
In the two-pass version of DSKPP, the client MUST send a payload In the two-pass version of DSKPP, the client MUST send a payload
associated with this key protection method. This payload MUST be of associated with this key protection method. This payload MUST be of
type <ds:KeyInfoType> ([XMLDSIG]), and only those choices of <ds: type <ds:KeyInfoType> ([XMLDSIG]), and only those choices of <ds:
KeyInfoType> that identify a public key are allowed. The <ds: KeyInfoType> that identify a public key are allowed (i.e., <ds:
KeyName>, <ds:KeyValue>, <ds:X509Data>, or <ds:PGPData>). The <ds:
X509Certificate> option of the <ds:X509Data> alternative is X509Certificate> option of the <ds:X509Data> alternative is
RECOMMENDED when the public key corresponding to the private key on RECOMMENDED when the public key corresponding to the private key on
the cryptographic module has been certified. the cryptographic module has been certified.
The server payload associated with this key protection method MUST be The server payload associated with this key protection method MUST be
of type xenc:EncryptedKeyType ([XMLENC]), and only those encryption of type xenc:EncryptedKeyType ([XMLENC]), and only those encryption
methods utilizing a public key that are supported by the DSKPP client methods utilizing a public key that are supported by the DSKPP client
(as indicated in the <SupportedEncryptionAlgorithms> element of the (as indicated in the <SupportedEncryptionAlgorithms> element of the
<KeyProvClientHello> message in the case of 2-pass DSKPP) are allowed <KeyProvClientHello> message in the case of 2-pass DSKPP) are allowed
as values for the <xenc:EncryptionMethod>. Further, in the case of as values for the <xenc:EncryptionMethod>. Further, in the case of
skipping to change at page 31, line 49 skipping to change at page 31, line 50
This profile establishes a symmetric key, K_TOKEN, in the This profile establishes a symmetric key, K_TOKEN, in the
cryptographic module through key wrap and key derivation. Key wrap cryptographic module through key wrap and key derivation. Key wrap
is carried out using a symmetric key wrapping key, known in advance is carried out using a symmetric key wrapping key, known in advance
by both the cryptographic module and the DSKPP server. A by both the cryptographic module and the DSKPP server. A
provisioning master key, K_PROV, MUST be transported from the DSKPP provisioning master key, K_PROV, MUST be transported from the DSKPP
server to the client. From K_PROV, two keys are derived: the server to the client. From K_PROV, two keys are derived: the
symmetric key to be established, K_TOKEN, and a key used to compute symmetric key to be established, K_TOKEN, and a key used to compute
MACs, K_MAC. MACs, K_MAC.
This profile MUST be identified with the following URI: This profile MUST be identified with the following URI:
urn:ietf:params:xml:schema:keyprov:protocol#wrap urn:ietf:params:xml:schema:keyprov:dskpp#wrap
In the 2-pass version of DSKPP, the client MUST send a payload In the 2-pass version of DSKPP, the client MUST send a payload
associated with this key protection method. This payload MUST be of associated with this key protection method. This payload MUST be of
type <ds:KeyInfoType> ([XMLDSIG]), and only those choices of <ds: type <ds:KeyInfoType> ([XMLDSIG]), and only those choices of <ds:
KeyInfoType> that identify a symmetric key are allowed. The <ds: KeyInfoType> that identify a symmetric key are allowed (i.e., <ds:
KeyName> alternative is RECOMMENDED. KeyName> and <ds:KeyValue>). The <ds:KeyName> alternative is
RECOMMENDED.
The server payload associated with this key protection method MUST be The server payload associated with this key protection method MUST be
of type xenc:EncryptedKeyType ([XMLENC]), and only those encryption of type xenc:EncryptedKeyType ([XMLENC]), and only those encryption
methods utilizing a symmetric key that are supported by the DSKPP methods utilizing a symmetric key that are supported by the DSKPP
client (as indicated in the <SupportedEncryptionAlgorithms> element client (as indicated in the <SupportedEncryptionAlgorithms> element
of the <KeyProvClientHello> message in the case of 2-pass DSKPP) are of the <KeyProvClientHello> message in the case of 2-pass DSKPP) are
allowed as values for the <xenc:EncryptionMethod>. Further, in the allowed as values for the <xenc:EncryptionMethod>. Further, in the
case of 2-pass DSKPP, <ds:KeyInfo> MUST contain the same value (i.e. case of 2-pass DSKPP, <ds:KeyInfo> MUST contain the same value (i.e.
identify the same symmetric key) as the <Payload> of the identify the same symmetric key) as the <Payload> of the
corresponding supported key protection method in the corresponding supported key protection method in the
skipping to change at page 33, line 15 skipping to change at page 33, line 21
the user of the device and the DSKPP server. To preserve the the user of the device and the DSKPP server. To preserve the
property of not exposing K_TOKEN to any other entity than the DSKPP property of not exposing K_TOKEN to any other entity than the DSKPP
server and the cryptographic module itself, the method SHOULD be server and the cryptographic module itself, the method SHOULD be
employed only when the device contains facilities (e.g. a keypad) for employed only when the device contains facilities (e.g. a keypad) for
direct entry of the passphrase. A provisioning master key, K_PROV, direct entry of the passphrase. A provisioning master key, K_PROV,
MUST be transported from the DSKPP server to the client. From MUST be transported from the DSKPP server to the client. From
K_PROV, two keys are derived: the symmetric key to be established, K_PROV, two keys are derived: the symmetric key to be established,
K_TOKEN, and a key used to compute MACs, K_MAC. K_TOKEN, and a key used to compute MACs, K_MAC.
This profile MUST be identified with the following URI: This profile MUST be identified with the following URI:
urn:ietf:params:xml:schema:keyprov:protocol#passphrase-wrap urn:ietf:params:xml:schema:keyprov:dskpp#passphrase-wrap
In the 2-pass version of DSKPP, the client MUST send a payload In the 2-pass version of DSKPP, the client MUST send a payload
associated with this key protection method. This payload MUST be of associated with this key protection method. This payload MUST be of
type <ds:KeyInfoType> ([XMLDSIG]). The <ds:KeyName> option MUST be type <ds:KeyInfoType> ([XMLDSIG]). The <ds:KeyName> option MUST be
used and the key name MUST identify the passphrase that will be used used and the key name MUST identify the passphrase that will be used
by the server to generate the key wrapping key. As an example, the by the server to generate the key wrapping key. As an example, the
identifier could be a user identifier or a registration identifier identifier could be a user identifier or a registration identifier
issued by the server to the user during a session preceding the DSKPP issued by the server to the user during a session preceding the DSKPP
protocol run. protocol run.
skipping to change at page 50, line 12 skipping to change at page 50, line 12
o <EncryptionAlgorithm>: The encryption algorithm to use when o <EncryptionAlgorithm>: The encryption algorithm to use when
protecting R_C. protecting R_C.
o <MacAlgorithm>: The MAC algorithm to be used by the DSKPP server. o <MacAlgorithm>: The MAC algorithm to be used by the DSKPP server.
o <EncryptionKey>: Information about the key to use when encrypting o <EncryptionKey>: Information about the key to use when encrypting
R_C. It will either be the server's public key (the <ds:KeyValue> R_C. It will either be the server's public key (the <ds:KeyValue>
alternative of ds:KeyInfoType) or an identifier for a shared alternative of ds:KeyInfoType) or an identifier for a shared
secret key (the <ds:KeyName> alternative of ds:KeyInfoType). secret key (the <ds:KeyName> alternative of ds:KeyInfoType).
o <KeyPackageFormat>: The key package format type to be used by the o <KeyPackageFormat>: The key package format type to be used by the
DSKPP server. The default setting relies on the KeyPackageType DSKPP server. The default setting relies on the KeyPackageType
element defined in "urn:ietf:params:xml:schema:keyprov:container" element defined in "urn:ietf:params:xml:schema:keyprov:pskc"
[PSKC]. [PSKC].
o <Payload>: The actual payload. For this version of the protocol, o <Payload>: The actual payload. For this version of the protocol,
only one payload is defined: the pseudorandom string R_S. only one payload is defined: the pseudorandom string R_S.
o <Extensions>: A list of server extensions. Two extensions are o <Extensions>: A list of server extensions. Two extensions are
defined for this message in this version of DSKPP: the defined for this message in this version of DSKPP: the
ClientInfoType and the ServerInfoType (see Section 5). ClientInfoType and the ServerInfoType (see Section 5).
o <Mac>: The MAC MUST be present if the DSKPP run will result in the o <Mac>: The MAC MUST be present if the DSKPP run will result in the
replacement of an existing symmetric key with a new one (i.e., if replacement of an existing symmetric key with a new one (i.e., if
the <KeyID> element was present in the <ClientHello message). In the <KeyID> element was present in the <ClientHello message). In
this case, the DSKPP server MUST prove to the cryptographic module this case, the DSKPP server MUST prove to the cryptographic module
skipping to change at page 58, line 49 skipping to change at page 58, line 49
DSKPP data in XML form (server random nonce, server public key, DSKPP data in XML form (server random nonce, server public key,
...) ...)
7. DSKPP Schema 7. DSKPP Schema
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<xs:schema <xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
targetNamespace="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" targetNamespace="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
elementFormDefault="qualified" attributeFormDefault="unqualified" elementFormDefault="qualified" attributeFormDefault="unqualified"
version="1.0"> version="1.0">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
schemaLocation= schemaLocation=
"www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/> "http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<xs:import namespace="urn:ietf:params:xml:ns:keyprov:container:1.0" <xs:import namespace="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
schemaLocation="keyprov-pskc-1.0.xsd"/> schemaLocation="keyprov-pskc-1.0.xsd"/>
<xs:complexType name="AbstractRequestType" abstract="true"> <xs:complexType name="AbstractRequestType" abstract="true">
<xs:annotation> <xs:annotation>
<xs:documentation> Basic types </xs:documentation> <xs:documentation> Basic types </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:attribute name="Version" type="dskpp:VersionType" <xs:attribute name="Version" type="dskpp:VersionType"
use="required"/> use="required"/>
</xs:complexType> </xs:complexType>
<xs:complexType name="AbstractResponseType" abstract="true"> <xs:complexType name="AbstractResponseType" abstract="true">
skipping to change at page 76, line 47 skipping to change at page 76, line 47
File extension(s): .xmls File extension(s): .xmls
Macintosh File Type Code(s): (none) Macintosh File Type Code(s): (none)
Person & email address to contact for further information: Person & email address to contact for further information:
Andrea Doherty (andrea.doherty@rsa.com) Andrea Doherty (andrea.doherty@rsa.com)
Intended usage: LIMITED USE Intended usage: LIMITED USE
Author/Change controller: The IETF Author/Change controller: The IETF
Other information: This media type is a specialization of Other information: This media type is a specialization of
application/xml [RFC3203], and many of the considerations application/xml [RFC3203], and many of the considerations
described there also apply to application/dskpp+xml. described there also apply to application/dskpp+xml.
11.4. Status Code Registry
This section registers status codes included in each DSKPP response
message. The status codes are defined in the schema in the
<StatusCode> type definition as described in the XML schema in
Section 7. The following summarizes the registry:
Related Registry:
KEYPROV DSKPP Registries, Status codes for DSKPP
Defining RFC:
RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the
RFC number for this specification.]
Registration/Assignment Procedures:
Following the policies outlined in [RFC3575], the IANA policy for
assigning new values for the status codes for DSKPP MUST be
"Specification Required" and their meanings MUST be documented in
an RFC or in some other permanent and readily available reference,
in sufficient detail that interoperability between independent
implementations is possible. No mechanism to mark entries as
"deprecated" is envisioned. It is possible to delete or update
entries from the registry.
Registrant Contact:
IETF, KEYPROV working group (keyprov@ietf.org),
Andrea Doherty (andrea.doherty@rsa.com)
This section pre-registers the initial status codes, as described
above in Section 4.7, including their textual description. The list
in Section 4.7, starts with the StatusCode "Continue" and ends with
the StatusCode "InitializationFailed".
12. Intellectual Property Considerations 12. Intellectual Property Considerations
RSA and RSA Security are registered trademarks or trademarks of RSA RSA and RSA Security are registered trademarks or trademarks of RSA
Security Inc. in the United States and/or other countries. The names Security Inc. in the United States and/or other countries. The names
of other products and services mentioned may be the trademarks of of other products and services mentioned may be the trademarks of
their respective owners. their respective owners.
13. Contributors 13. Contributors
This work is based on information contained in [RFC4758], authored by This work is based on information contained in [RFC4758], authored by
skipping to change at page 80, line 27 skipping to change at page 81, line 11
[RFC3203] Murata, M., St. Laurent, S., and D. Kohn, "XML Media [RFC3203] Murata, M., St. Laurent, S., and D. Kohn, "XML Media
Types", RFC 3203, January 2001, Types", RFC 3203, January 2001,
<http://www.ietf.org/rfc/rfc3203.txt>. <http://www.ietf.org/rfc/rfc3203.txt>.
[RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet [RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet
X.509 Public Key Infrastructure Certificate and X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile", RFC 3280, Certificate Revocation List (CRL) Profile", RFC 3280,
April 2002, <http://www.ietf.org/rfc/rfc3280.txt>. April 2002, <http://www.ietf.org/rfc/rfc3280.txt>.
[RFC3575] Aboba, B., "IANA Considerations for RADIUS", RFC 3575,
July 2003, <http://www.ietf.org/rfc/rfc3575.txt>.
[RFC3688] Mealling, M., "The IETF XML Registry", RFC 3688, BCP 81, [RFC3688] Mealling, M., "The IETF XML Registry", RFC 3688, BCP 81,
January 2004, <http://www.ietf.org/rfc/rfc3688.txt>. January 2004, <http://www.ietf.org/rfc/rfc3688.txt>.
[RFC4758] RSA, The Security Division of EMC, "Cryptographic Token [RFC4758] RSA, The Security Division of EMC, "Cryptographic Token
Key Initialization Protocol (CT-KIP)", November 2006, Key Initialization Protocol (CT-KIP)", November 2006,
<http://www.ietf.org/rfc/rfc4758.txt>. <http://www.ietf.org/rfc/rfc4758.txt>.
[SKPC-ASN.1] [SKPC-ASN.1]
"Symmetric Key Package Content Type", 2007, <http:// "Symmetric Key Package Content Type", 2007, <http://
www.ietf.org/internet-drafts/ www.ietf.org/internet-drafts/
skipping to change at page 81, line 10 skipping to change at page 82, line 10
This appendix contains example messages that illustrate parameters, This appendix contains example messages that illustrate parameters,
encoding, and semantics in four-and two- pass DSKPP exchanges. The encoding, and semantics in four-and two- pass DSKPP exchanges. The
examples are written using XML, and are syntactically correct. MAC examples are written using XML, and are syntactically correct. MAC
and cipher values are fictitious however. and cipher values are fictitious however.
A.1. Trigger Message A.1. Trigger Message
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvTrigger Version="1.0" <dskpp:KeyProvTrigger Version="1.0"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dskpp:InitializationTrigger> <dskpp:InitializationTrigger>
<dskpp:DeviceIdentifierData> <dskpp:DeviceIdentifierData>
<dskpp:DeviceId> <dskpp:DeviceId>
<pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer> <pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer>
<pskc:SerialNo>XL0000000001234</pskc:SerialNo> <pskc:SerialNo>XL0000000001234</pskc:SerialNo>
<pskc:Model>U2</pskc:Model> <pskc:Model>U2</pskc:Model>
</dskpp:DeviceId> </dskpp:DeviceId>
</dskpp:DeviceIdentifierData> </dskpp:DeviceIdentifierData>
<dskpp:KeyID>SE9UUDAwMDAwMDAx</dskpp:KeyID> <dskpp:KeyID>SE9UUDAwMDAwMDAx</dskpp:KeyID>
<dskpp:TokenPlatformInfo KeyLocation="Hardware" <dskpp:TokenPlatformInfo KeyLocation="Hardware"
skipping to change at page 82, line 10 skipping to change at page 83, line 10
</dskpp:InitializationTrigger> </dskpp:InitializationTrigger>
</dskpp:KeyProvTrigger> </dskpp:KeyProvTrigger>
A.2. Four-Pass Protocol A.2. Four-Pass Protocol
A.2.1. <KeyProvClientHello> Without a Preceding Trigger A.2.1. <KeyProvClientHello> Without a Preceding Trigger
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvClientHello Version="1.0" <dskpp:KeyProvClientHello Version="1.0"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dskpp:DeviceIdentifierData> <dskpp:DeviceIdentifierData>
<dskpp:DeviceId> <dskpp:DeviceId>
<pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer> <pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer>
<pskc:SerialNo>XL0000000001234</pskc:SerialNo> <pskc:SerialNo>XL0000000001234</pskc:SerialNo>
<pskc:Model>U2</pskc:Model> <pskc:Model>U2</pskc:Model>
</dskpp:DeviceId> </dskpp:DeviceId>
</dskpp:DeviceIdentifierData> </dskpp:DeviceIdentifierData>
<dskpp:SupportedKeyTypes> <dskpp:SupportedKeyTypes>
<dskpp:Algorithm>http://www.ietf.org/keyprov/pskc#hotp <dskpp:Algorithm>http://www.ietf.org/keyprov/pskc#hotp
</dskpp:Algorithm> </dskpp:Algorithm>
skipping to change at page 83, line 10 skipping to change at page 84, line 10
http://www.ietf.org/keyprov/pskc#KeyContainer http://www.ietf.org/keyprov/pskc#KeyContainer
</dskpp:KeyPackageFormat> </dskpp:KeyPackageFormat>
</dskpp:SupportedKeyPackages> </dskpp:SupportedKeyPackages>
</dskpp:KeyProvClientHello> </dskpp:KeyProvClientHello>
A.2.2. <KeyProvClientHello> Assuming a Preceding Trigger A.2.2. <KeyProvClientHello> Assuming a Preceding Trigger
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvClientHello Version="1.0" <dskpp:KeyProvClientHello Version="1.0"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dskpp:DeviceIdentifierData> <dskpp:DeviceIdentifierData>
<dskpp:DeviceId> <dskpp:DeviceId>
<pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer> <pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer>
<pskc:SerialNo>XL0000000001234</pskc:SerialNo> <pskc:SerialNo>XL0000000001234</pskc:SerialNo>
<pskc:Model>U2</pskc:Model> <pskc:Model>U2</pskc:Model>
</dskpp:DeviceId> </dskpp:DeviceId>
</dskpp:DeviceIdentifierData> </dskpp:DeviceIdentifierData>
<dskpp:KeyID>SE9UUDAwMDAwMDAx</dskpp:KeyID> <dskpp:KeyID>SE9UUDAwMDAwMDAx</dskpp:KeyID>
<dskpp:TriggerNonce>112dsdfwf312asder394jw==</dskpp:TriggerNonce> <dskpp:TriggerNonce>112dsdfwf312asder394jw==</dskpp:TriggerNonce>
<dskpp:SupportedKeyTypes> <dskpp:SupportedKeyTypes>
skipping to change at page 84, line 10 skipping to change at page 85, line 10
http://www.ietf.org/keyprov/pskc#KeyContainer http://www.ietf.org/keyprov/pskc#KeyContainer
</dskpp:KeyPackageFormat> </dskpp:KeyPackageFormat>
</dskpp:SupportedKeyPackages> </dskpp:SupportedKeyPackages>
</dskpp:KeyProvClientHello> </dskpp:KeyProvClientHello>
A.2.3. <KeyProvServerHello> Without a Preceding Trigger A.2.3. <KeyProvServerHello> Without a Preceding Trigger
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvServerHello Version="1.0" SessionID="4114" Status="Continue" <dskpp:KeyProvServerHello Version="1.0" SessionID="4114" Status="Continue"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<dskpp:KeyType> <dskpp:KeyType>
http://www.rsa.com/rsalabs/otps/schemas/2005/09/otps-wst#SecurID-AES http://www.rsa.com/rsalabs/otps/schemas/2005/09/otps-wst#SecurID-AES
</dskpp:KeyType> </dskpp:KeyType>
<dskpp:EncryptionAlgorithm> <dskpp:EncryptionAlgorithm>
http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:EncryptionAlgorithm> </dskpp:EncryptionAlgorithm>
<dskpp:MacAlgorithm> <dskpp:MacAlgorithm>
http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:MacAlgorithm> </dskpp:MacAlgorithm>
skipping to change at page 85, line 11 skipping to change at page 86, line 11
<dskpp:Nonce>qw2ewasde312asder394jw==</dskpp:Nonce> <dskpp:Nonce>qw2ewasde312asder394jw==</dskpp:Nonce>
</dskpp:Payload> </dskpp:Payload>
</dskpp:KeyProvServerHello> </dskpp:KeyProvServerHello>
A.2.4. <KeyProvServerHello> Assuming a Preceding Trigger A.2.4. <KeyProvServerHello> Assuming a Preceding Trigger
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvServerHello Version="1.0" SessionID="4114" <dskpp:KeyProvServerHello Version="1.0" SessionID="4114"
Status="Continue" Status="Continue"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<dskpp:KeyType> <dskpp:KeyType>
urn:ietf:params:xml:schema:keyprov:otpalg#SecurID-AES urn:ietf:params:xml:schema:keyprov:otpalg#SecurID-AES
</dskpp:KeyType> </dskpp:KeyType>
<dskpp:EncryptionAlgorithm> <dskpp:EncryptionAlgorithm>
http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:EncryptionAlgorithm> </dskpp:EncryptionAlgorithm>
<dskpp:MacAlgorithm> <dskpp:MacAlgorithm>
http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:MacAlgorithm> </dskpp:MacAlgorithm>
skipping to change at page 87, line 10 skipping to change at page 88, line 10
<dskpp:Mac>4bRJf9xXd3KchKoTenHJiw==</dskpp:Mac> <dskpp:Mac>4bRJf9xXd3KchKoTenHJiw==</dskpp:Mac>
</dskpp:AuthenticationCodeMac> </dskpp:AuthenticationCodeMac>
</dskpp:AuthenticationData> </dskpp:AuthenticationData>
</dskpp:KeyProvClientNonce> </dskpp:KeyProvClientNonce>
A.2.6. <KeyProvServerFinished> Using Default Encryption A.2.6. <KeyProvServerFinished> Using Default Encryption
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvServerFinished Version="1.0" SessionID="4114" Status="Success" <dskpp:KeyProvServerFinished Version="1.0" SessionID="4114" Status="Success"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0"> xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0">
<dskpp:KeyPackage> <dskpp:KeyPackage>
<dskpp:KeyPackage Version="1.0"> <dskpp:KeyPackage Version="1.0">
<pskc:MACAlgorithm>http://www.w3.org/2000/09/xmldsig#hmac-sha1 <pskc:MACAlgorithm>http://www.w3.org/2000/09/xmldsig#hmac-sha1
</pskc:MACAlgorithm> </pskc:MACAlgorithm>
<pskc:Device> <pskc:Device>
<pskc:Key <pskc:Key
KeyAlgorithm="http://www.rsa.com/rsalabs/otps/schemas/2005/09/ KeyAlgorithm="http://www.rsa.com/rsalabs/otps/schemas/2005/09/
otps-wst#SecurID-AES" otps-wst#SecurID-AES"
KeyId="XL0000000001234"> KeyId="XL0000000001234">
<pskc:Issuer>CredentialIssuer</pskc:Issuer> <pskc:Issuer>CredentialIssuer</pskc:Issuer>
<pskc:Usage OTP="true"> <pskc:Usage OTP="true">
<pskc:ResponseFormat Format="DECIMAL" Length="6"/> <pskc:ResponseFormat Format="DECIMAL" Length="6"/>
</pskc:Usage> </pskc:Usage>
<pskc:FriendlyName>MyFirstToken</pskc:FriendlyName> <pskc:FriendlyName>MyFirstToken</pskc:FriendlyName>
<pskc:Data Name="TIME"> <pskc:Data>
<pskc:PlainValue>AAAAADuaygA=</pskc:PlainValue> <pskc:Time>
<pskc:PlainValue>0</pskc:PlainValue>
</pskc:Time>
</pskc:Data> </pskc:Data>
<pskc:ExpiryDate>2012-12-31T00:00:00</pskc:ExpiryDate> <pskc:ExpiryDate>2012-12-31T00:00:00</pskc:ExpiryDate>
</pskc:Key> </pskc:Key>
</pskc:Device> </pskc:Device>
</dskpp:KeyPackage> </dskpp:KeyPackage>
</dskpp:KeyPackage> </dskpp:KeyPackage>
<dskpp:Mac <dskpp:Mac
MacAlgorithm="http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes"> MacAlgorithm="http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes">
miidfasde312asder394jw== miidfasde312asder394jw==
</dskpp:Mac> </dskpp:Mac>
skipping to change at page 87, line 49 skipping to change at page 88, line 51
A.3. Two-Pass Protocol A.3. Two-Pass Protocol
A.3.1. Example Using the Key Transport Profile A.3.1. Example Using the Key Transport Profile
The client indicates support all the Key Transport, Key Wrap, and The client indicates support all the Key Transport, Key Wrap, and
Passphrase-Based Key Wrap profiles: Passphrase-Based Key Wrap profiles:
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvClientHello Version="1.0" <dskpp:KeyProvClientHello Version="1.0"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<dskpp:DeviceIdentifierData> <dskpp:DeviceIdentifierData>
<dskpp:DeviceId> <dskpp:DeviceId>
<pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer> <pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer>
<pskc:SerialNo>XL0000000001234</pskc:SerialNo> <pskc:SerialNo>XL0000000001234</pskc:SerialNo>
<pskc:Model>U2</pskc:Model> <pskc:Model>U2</pskc:Model>
</dskpp:DeviceId> </dskpp:DeviceId>
</dskpp:DeviceIdentifierData> </dskpp:DeviceIdentifierData>
<dskpp:ClientNonce>xwQzwEl0CjPAiQeDxwRJdQ==</dskpp:ClientNonce> <dskpp:ClientNonce>xwQzwEl0CjPAiQeDxwRJdQ==</dskpp:ClientNonce>
<dskpp:SupportedKeyTypes> <dskpp:SupportedKeyTypes>
skipping to change at page 88, line 33 skipping to change at page 89, line 34
<dskpp:Algorithm>http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes <dskpp:Algorithm>http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:Algorithm> </dskpp:Algorithm>
</dskpp:SupportedEncryptionAlgorithms> </dskpp:SupportedEncryptionAlgorithms>
<dskpp:SupportedMacAlgorithms> <dskpp:SupportedMacAlgorithms>
<dskpp:Algorithm>http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes <dskpp:Algorithm>http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:Algorithm> </dskpp:Algorithm>
</dskpp:SupportedMacAlgorithms> </dskpp:SupportedMacAlgorithms>
<dskpp:SupportedProtocolVariants> <dskpp:SupportedProtocolVariants>
<dskpp:TwoPass> <dskpp:TwoPass>
<dskpp:SupportedKeyProtectionMethod> <dskpp:SupportedKeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#wrap urn:ietf:params:xml:schema:keyprov:dskpp#wrap
</dskpp:SupportedKeyProtectionMethod> </dskpp:SupportedKeyProtectionMethod>
<dskpp:Payload> <dskpp:Payload>
<ds:KeyInfo xsi:type="ds:KeyInfoType"> <ds:KeyInfo xsi:type="ds:KeyInfoType">
<ds:KeyName>Key_001</ds:KeyName> <ds:KeyName>Key_001</ds:KeyName>
</ds:KeyInfo> </ds:KeyInfo>
</dskpp:Payload> </dskpp:Payload>
<dskpp:SupportedKeyProtectionMethod> <dskpp:SupportedKeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#transport urn:ietf:params:xml:schema:keyprov:dskpp#transport
</dskpp:SupportedKeyProtectionMethod> </dskpp:SupportedKeyProtectionMethod>
<dskpp:SupportedKeyProtectionMethod> <dskpp:SupportedKeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#passphrase-wrap urn:ietf:params:xml:schema:keyprov:dskpp#passphrase-wrap
</dskpp:SupportedKeyProtectionMethod> </dskpp:SupportedKeyProtectionMethod>
<dskpp:Payload> <dskpp:Payload>
<ds:KeyInfo xsi:type="ds:KeyInfoType"> <ds:KeyInfo xsi:type="ds:KeyInfoType">
<ds:X509Data> <ds:X509Data>
<ds:X509Certificate>miib</ds:X509Certificate> <ds:X509Certificate>miib</ds:X509Certificate>
</ds:X509Data> </ds:X509Data>
</ds:KeyInfo> </ds:KeyInfo>
</dskpp:Payload> </dskpp:Payload>
</dskpp:TwoPass> </dskpp:TwoPass>
</dskpp:SupportedProtocolVariants> </dskpp:SupportedProtocolVariants>
skipping to change at page 89, line 28 skipping to change at page 90, line 29
</dskpp:AuthenticationData> </dskpp:AuthenticationData>
</dskpp:KeyProvClientHello> </dskpp:KeyProvClientHello>
In this example, the server responds to the previous request using In this example, the server responds to the previous request using
the key transport profile. the key transport profile.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvServerFinished Version="1.0" SessionID="4114" <dskpp:KeyProvServerFinished Version="1.0" SessionID="4114"
Status="Success" Status="Success"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<dskpp:KeyPackage> <dskpp:KeyPackage>
<dskpp:ServerID>https://www.somedskppservice.com/</dskpp:ServerID> <dskpp:ServerID>https://www.somedskppservice.com/</dskpp:ServerID>
<dskpp:KeyProtectionMethod> <dskpp:KeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#transport urn:ietf:params:xml:schema:keyprov:dskpp#transport
</dskpp:KeyProtectionMethod> </dskpp:KeyProtectionMethod>
<dskpp:KeyPackage Version="1.0"> <dskpp:KeyPackage Version="1.0">
<pskc:EncryptionKey> <pskc:EncryptionKey>
<ds:X509Data> <ds:X509Data>
<ds:X509Certificate>miib</ds:X509Certificate> <ds:X509Certificate>miib</ds:X509Certificate>
</ds:X509Data> </ds:X509Data>
</pskc:EncryptionKey> </pskc:EncryptionKey>
<pskc:Device> <pskc:Device>
<pskc:DeviceId> <pskc:DeviceInfo>
<pskc:Manufacturer>ACME</pskc:Manufacturer> <pskc:Manufacturer>ACME</pskc:Manufacturer>
<pskc:SerialNo>0755225266</pskc:SerialNo> <pskc:SerialNo>0755225266</pskc:SerialNo>
</pskc:DeviceId> </pskc:DeviceInfo>
<pskc:Key KeyAlgorithm="http://www.ietf.org/keyprov/pskc#hotp" <pskc:Key KeyAlgorithm="http://www.ietf.org/keyprov/pskc#hotp"
KeyId="0755225266"> KeyId="0755225266">
<pskc:Issuer>AnIssuer</pskc:Issuer> <pskc:Issuer>AnIssuer</pskc:Issuer>
<pskc:Usage OTP="true"> <pskc:Usage OTP="true">
<pskc:ResponseFormat Length="8" Format="DECIMAL"/> <pskc:ResponseFormat Length="8" Format="DECIMAL"/>
</pskc:Usage> </pskc:Usage>
<pskc:Data Name="COUNTER"> <pskc:Data>
<pskc:PlainValue>AprkuA==</pskc:PlainValue> <pskc:Secret>
</pskc:Data>
<pskc:Data Name="SECRET">
<pskc:EncryptedValue Id="ED"> <pskc:EncryptedValue Id="ED">
<xenc:EncryptionMethod <xenc:EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#rsa_1_5"/> Algorithm="http://www.w3.org/2001/04/xmlenc#rsa_1_5"/>
<xenc:CipherData> <xenc:CipherData>
<xenc:CipherValue>rf4dx3rvEPO0vKtKL14NbeVu8nk= <xenc:CipherValue>rf4dx3rvEPO0vKtKL14NbeVu8nk=
</xenc:CipherValue> </xenc:CipherValue>
</xenc:CipherData> </xenc:CipherData>
</pskc:EncryptedValue> </pskc:EncryptedValue>
</pskc:Secret>
<pskc:Counter>
<pskc:PlainValue>0</pskc:PlainValue>
</pskc:Counter>
</pskc:Data> </pskc:Data>
</pskc:Key> </pskc:Key>
</pskc:Device> </pskc:Device>
</dskpp:KeyPackage> </dskpp:KeyPackage>
</dskpp:KeyPackage> </dskpp:KeyPackage>
<dskpp:Mac <dskpp:Mac
MacAlgorithm="http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes"> MacAlgorithm="http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes">
miidfasde312asder394jw== miidfasde312asder394jw==
</dskpp:Mac> </dskpp:Mac>
<dskpp:AuthenticationData> <dskpp:AuthenticationData>
skipping to change at page 90, line 42 skipping to change at page 91, line 44
A.3.2. Example Using the Key Wrap Profile A.3.2. Example Using the Key Wrap Profile
The client sends a request that specifies a shared key to protect the The client sends a request that specifies a shared key to protect the
K_TOKEN, and the server responds using the Key Wrap Profile. K_TOKEN, and the server responds using the Key Wrap Profile.
Authentication data in this example is based on an authentication Authentication data in this example is based on an authentication
code rather than a device certificate. code rather than a device certificate.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvClientHello Version="1.0" <dskpp:KeyProvClientHello Version="1.0"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:pkcs-5= xmlns:pkcs-5=
"http://www.rsasecurity.com/rsalabs/pkcs/schemas/pkcs-5v2-0#"> "http://www.rsasecurity.com/rsalabs/pkcs/schemas/pkcs-5v2-0#">
<dskpp:DeviceIdentifierData> <dskpp:DeviceIdentifierData>
<dskpp:DeviceId> <dskpp:DeviceId>
<pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer> <pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer>
<pskc:SerialNo>XL0000000001234</pskc:SerialNo> <pskc:SerialNo>XL0000000001234</pskc:SerialNo>
<pskc:Model>U2</pskc:Model> <pskc:Model>U2</pskc:Model>
</dskpp:DeviceId> </dskpp:DeviceId>
</dskpp:DeviceIdentifierData> </dskpp:DeviceIdentifierData>
skipping to change at page 91, line 30 skipping to change at page 92, line 31
<dskpp:Algorithm>http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes <dskpp:Algorithm>http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:Algorithm> </dskpp:Algorithm>
</dskpp:SupportedEncryptionAlgorithms> </dskpp:SupportedEncryptionAlgorithms>
<dskpp:SupportedMacAlgorithms> <dskpp:SupportedMacAlgorithms>
<dskpp:Algorithm>http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes <dskpp:Algorithm>http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:Algorithm> </dskpp:Algorithm>
</dskpp:SupportedMacAlgorithms> </dskpp:SupportedMacAlgorithms>
<dskpp:SupportedProtocolVariants> <dskpp:SupportedProtocolVariants>
<dskpp:TwoPass> <dskpp:TwoPass>
<dskpp:SupportedKeyProtectionMethod> <dskpp:SupportedKeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#wrap urn:ietf:params:xml:schema:keyprov:dskpp#wrap
</dskpp:SupportedKeyProtectionMethod> </dskpp:SupportedKeyProtectionMethod>
<dskpp:Payload> <dskpp:Payload>
<ds:KeyInfo xsi:type="ds:KeyInfoType"> <ds:KeyInfo xsi:type="ds:KeyInfoType">
<ds:KeyName>Key_001</ds:KeyName> <ds:KeyName>Key_001</ds:KeyName>
</ds:KeyInfo> </ds:KeyInfo>
</dskpp:Payload> </dskpp:Payload>
</dskpp:TwoPass> </dskpp:TwoPass>
</dskpp:SupportedProtocolVariants> </dskpp:SupportedProtocolVariants>
<dskpp:SupportedKeyPackages> <dskpp:SupportedKeyPackages>
<dskpp:KeyPackageFormat> <dskpp:KeyPackageFormat>
skipping to change at page 92, line 4 skipping to change at page 93, line 5
</dskpp:KeyPackageFormat> </dskpp:KeyPackageFormat>
</dskpp:SupportedKeyPackages> </dskpp:SupportedKeyPackages>
<dskpp:AuthenticationData> <dskpp:AuthenticationData>
<dskpp:ClientID>31300257</dskpp:ClientID> <dskpp:ClientID>31300257</dskpp:ClientID>
<dskpp:AuthenticationCodeMac> <dskpp:AuthenticationCodeMac>
<dskpp:IterationCount>512</dskpp:IterationCount> <dskpp:IterationCount>512</dskpp:IterationCount>
<dskpp:Mac>4bRJf9xXd3KchKoTenHJiw==</dskpp:Mac> <dskpp:Mac>4bRJf9xXd3KchKoTenHJiw==</dskpp:Mac>
</dskpp:AuthenticationCodeMac> </dskpp:AuthenticationCodeMac>
</dskpp:AuthenticationData> </dskpp:AuthenticationData>
</dskpp:KeyProvClientHello> </dskpp:KeyProvClientHello>
In this example, the server responds to the previous request using In this example, the server responds to the previous request using
the key wrap profile. the key wrap profile.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvServerFinished Version="1.0" Status="Success" <dskpp:KeyProvServerFinished Version="1.0" Status="Success"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<dskpp:KeyPackage> <dskpp:KeyPackage>
<dskpp:ServerID>https://www.somedskppservice.com/</dskpp:ServerID> <dskpp:ServerID>https://www.somedskppservice.com/</dskpp:ServerID>
<dskpp:KeyProtectionMethod> <dskpp:KeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#wrap urn:ietf:params:xml:schema:keyprov:dskpp#wrap
</dskpp:KeyProtectionMethod> </dskpp:KeyProtectionMethod>
<dskpp:KeyPackage Version="1.0"> <dskpp:KeyPackage Version="1.0">
<pskc:EncryptionKey> <pskc:EncryptionKey>
<ds:KeyName>PRE_SHARED_KEY</ds:KeyName> <ds:KeyName>PRE_SHARED_KEY</ds:KeyName>
</pskc:EncryptionKey> </pskc:EncryptionKey>
<pskc:MACAlgorithm>http://www.w3.org/2000/09/xmldsig#hmac-sha1 <pskc:MACAlgorithm>http://www.w3.org/2000/09/xmldsig#hmac-sha1
</pskc:MACAlgorithm> </pskc:MACAlgorithm>
<pskc:Device> <pskc:Device>
<pskc:Key KeyAlgorithm="http://www.ietf.org/keyprov/pskc#hotp" <pskc:Key KeyAlgorithm="http://www.ietf.org/keyprov/pskc#hotp"
KeyId="312345678"> KeyId="312345678">
<pskc:Issuer>CredentialIssuer</pskc:Issuer> <pskc:Issuer>CredentialIssuer</pskc:Issuer>
<pskc:Usage OTP="true"> <pskc:Usage OTP="true">
<pskc:ResponseFormat Format="DECIMAL" Length="6"/> <pskc:ResponseFormat Format="DECIMAL" Length="6"/>
</pskc:Usage> </pskc:Usage>
<pskc:FriendlyName>MyFirstToken</pskc:FriendlyName> <pskc:FriendlyName>MyFirstToken</pskc:FriendlyName>
<pskc:Data Name="SECRET"> <pskc:Data>
<pskc:Secret>
<pskc:EncryptedValue> <pskc:EncryptedValue>
<xenc:EncryptionMethod <xenc:EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/> Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
<xenc:CipherData> <xenc:CipherData>
<xenc:CipherValue> <xenc:CipherValue>
kyzrWTJuhJKQHhZtf2CWbKC5H3LdfAPvKzHHQ8SdxyE= kyzrWTJuhJKQHhZtf2CWbKC5H3LdfAPvKzHHQ8SdxyE=
</xenc:CipherValue> </xenc:CipherValue>
</xenc:CipherData> </xenc:CipherData>
</pskc:EncryptedValue> </pskc:EncryptedValue>
<pskc:ValueMAC>cwJI898rRpGBytTqCAsegaQqPZA= <pskc:ValueMAC>cwJI898rRpGBytTqCAsegaQqPZA=
</pskc:ValueMAC> </pskc:ValueMAC>
</pskc:Data> </pskc:Secret>
<pskc:Data Name="COUNTER"> <pskc:Counter>
<pskc:PlainValue>AAAAAAAAAAA=</pskc:PlainValue> <pskc:PlainValue>1/pskc:PlainValue>
</pskc:Counter>
</pskc:Data> </pskc:Data>
<pskc:ExpiryDate>2012-12-31T00:00:00</pskc:ExpiryDate> <pskc:ExpiryDate>2012-12-31T00:00:00</pskc:ExpiryDate>
</pskc:Key> </pskc:Key>
</pskc:Device> </pskc:Device>
</dskpp:KeyPackage> </dskpp:KeyPackage>
</dskpp:KeyPackage> </dskpp:KeyPackage>
<dskpp:Mac <dskpp:Mac
MacAlgorithm="http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes"> MacAlgorithm="http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes">
miidfasde312asder394jw== miidfasde312asder394jw==
</dskpp:Mac> </dskpp:Mac>
skipping to change at page 93, line 27 skipping to change at page 94, line 30
The client sends a request similar to that in Appendix A.3.1 with The client sends a request similar to that in Appendix A.3.1 with
authentication data based on an authentication code, and the server authentication data based on an authentication code, and the server
responds using the Passphrase-Based Key Wrap Profile. The responds using the Passphrase-Based Key Wrap Profile. The
authentication data is set in clear text when it is sent over a authentication data is set in clear text when it is sent over a
secure transport channel such as TLS. secure transport channel such as TLS.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvClientHello Version="1.0" <dskpp:KeyProvClientHello Version="1.0"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:pkcs-5= xmlns:pkcs-5=
"http://www.rsasecurity.com/rsalabs/pkcs/schemas/pkcs-5v2-0#"> "http://www.rsasecurity.com/rsalabs/pkcs/schemas/pkcs-5v2-0#">
<dskpp:DeviceIdentifierData> <dskpp:DeviceIdentifierData>
<dskpp:DeviceId> <dskpp:DeviceId>
<pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer> <pskc:Manufacturer>ManufacturerABC</pskc:Manufacturer>
<pskc:SerialNo>XL0000000001234</pskc:SerialNo> <pskc:SerialNo>XL0000000001234</pskc:SerialNo>
<pskc:Model>U2</pskc:Model> <pskc:Model>U2</pskc:Model>
</dskpp:DeviceId> </dskpp:DeviceId>
</dskpp:DeviceIdentifierData> </dskpp:DeviceIdentifierData>
skipping to change at page 94, line 19 skipping to change at page 95, line 21
</dskpp:Algorithm> </dskpp:Algorithm>
</dskpp:SupportedEncryptionAlgorithms> </dskpp:SupportedEncryptionAlgorithms>
<dskpp:SupportedMacAlgorithms> <dskpp:SupportedMacAlgorithms>
<dskpp:Algorithm> <dskpp:Algorithm>
http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes
</dskpp:Algorithm> </dskpp:Algorithm>
</dskpp:SupportedMacAlgorithms> </dskpp:SupportedMacAlgorithms>
<dskpp:SupportedProtocolVariants> <dskpp:SupportedProtocolVariants>
<dskpp:TwoPass> <dskpp:TwoPass>
<dskpp:SupportedKeyProtectionMethod> <dskpp:SupportedKeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#wrap urn:ietf:params:xml:schema:keyprov:dskpp#wrap
</dskpp:SupportedKeyProtectionMethod> </dskpp:SupportedKeyProtectionMethod>
<dskpp:Payload> <dskpp:Payload>
<ds:KeyInfo xsi:type="ds:KeyInfoType"> <ds:KeyInfo xsi:type="ds:KeyInfoType">
<ds:KeyName>Key_001</ds:KeyName> <ds:KeyName>Key_001</ds:KeyName>
</ds:KeyInfo> </ds:KeyInfo>
</dskpp:Payload> </dskpp:Payload>
<dskpp:SupportedKeyProtectionMethod> <dskpp:SupportedKeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#passphrase-wrap urn:ietf:params:xml:schema:keyprov:dskpp#passphrase-wrap
</dskpp:SupportedKeyProtectionMethod> </dskpp:SupportedKeyProtectionMethod>
</dskpp:TwoPass> </dskpp:TwoPass>
</dskpp:SupportedProtocolVariants> </dskpp:SupportedProtocolVariants>
<dskpp:SupportedKeyPackages> <dskpp:SupportedKeyPackages>
<dskpp:KeyPackageFormat> <dskpp:KeyPackageFormat>
http://www.ietf.org/keyprov/pskc#KeyContainer http://www.ietf.org/keyprov/pskc#KeyContainer
</dskpp:KeyPackageFormat> </dskpp:KeyPackageFormat>
</dskpp:SupportedKeyPackages> </dskpp:SupportedKeyPackages>
<dskpp:AuthenticationData> <dskpp:AuthenticationData>
<dskpp:ClientID>31300257</dskpp:ClientID> <dskpp:ClientID>31300257</dskpp:ClientID>
skipping to change at page 95, line 4 skipping to change at page 96, line 6
</dskpp:AuthenticationData> </dskpp:AuthenticationData>
</dskpp:KeyProvClientHello> </dskpp:KeyProvClientHello>
In this example, the server responds to the previous request using In this example, the server responds to the previous request using
the Passphrase-Based Key Wrap Profile. the Passphrase-Based Key Wrap Profile.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<dskpp:KeyProvServerFinished Version="1.0" <dskpp:KeyProvServerFinished Version="1.0"
SessionID="4114" Status="Success" SessionID="4114" Status="Success"
xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0" xmlns:dskpp="urn:ietf:params:xml:ns:keyprov:dskpp:1.0"
xmlns:pskc="urn:ietf:params:xml:ns:keyprov:container:1.0" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc:1.0"
xmlns:pkcs-5="http://www.rsasecurity.com/rsalabs/pkcs/schemas/pkcs-5v2-0#" xmlns:pkcs-5="http://www.rsasecurity.com/rsalabs/pkcs/schemas/pkcs-5v2-0#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<dskpp:KeyPackage> <dskpp:KeyPackage>
<dskpp:ServerID>https://www.somedskppservice.com/</dskpp:ServerID> <dskpp:ServerID>https://www.somedskppservice.com/</dskpp:ServerID>
<dskpp:KeyProtectionMethod> <dskpp:KeyProtectionMethod>
urn:ietf:params:xml:schema:keyprov:protocol#passphrase-wrap urn:ietf:params:xml:schema:keyprov:dskpp#passphrase-wrap
</dskpp:KeyProtectionMethod> </dskpp:KeyProtectionMethod>
<dskpp:KeyPackage Version="1.0"> <dskpp:KeyPackage Version="1.0">
<pskc:EncryptionKey> <pskc:EncryptionKey>
<pskc:DerivedKey Id="#Passphrase1"> <pskc:DerivedKey Id="#Passphrase1">
pskc:CarriedKeyName>Passphrase1</pskc:CarriedKeyName> <pskc:CarriedKeyName>Passphrase1</pskc:CarriedKeyName>
<pskc:KeyDerivationMethod <pskc:KeyDerivationMethod
Algorithm= Algorithm=
"http://www.rsasecurity.com/rsalabs/pkcs/schemas/pkcs-5#pbkdf2"> "http://www.rsasecurity.com/rsalabs/pkcs/schemas/pkcs-5#pbkdf2">
<pkcs-5:Parameters xsi:type="pkcs-5:PBKDF2ParameterType"> <pkcs-5:Parameters xsi:type="pkcs-5:PBKDF2ParameterType">
<Salt> <Salt>
<Specified>Df3dRAhjGh8=</Specified> <Specified>Df3dRAhjGh8=</Specified>
</Salt> </Salt>
<IterationCount>2000</IterationCount> <IterationCount>2000</IterationCount>
<KeyLength>16</KeyLength> <KeyLength>16</KeyLength>
<PRF/> <PRF/>
</pkcs-5:Parameters> </pkcs-5:Parameters>
</pskc:KeyDerivationMethod> </pskc:KeyDerivationMethod>
<xenc:ReferenceList> <xenc:ReferenceList>
<xenc:DataReference URI="#ED"/> <xenc:DataReference URI="#ED"/>
</xenc:ReferenceList> </xenc:ReferenceList>
</pskc:DerivedKey> </pskc:DerivedKey>
</pskc:EncryptionKey> </pskc:EncryptionKey>
<pskc:Device> <pskc:Device>
<pskc:DeviceId> <pskc:DeviceInfo>
<pskc:Manufacturer>ACME</pskc:Manufacturer> <pskc:Manufacturer>Manufacturer</pskc:Manufacturer>
<pskc:SerialNo>0755225266</pskc:SerialNo> <pskc:SerialNo>0755225266</pskc:SerialNo>
</pskc:DeviceId> </pskc:DeviceInfo>
<pskc:Key KeyAlgorithm="http://www.ietf.org/keyprov/pskc#hotp" <pskc:Key KeyAlgorithm="http://www.ietf.org/keyprov/pskc#hotp"
KeyId="0755225266"> KeyId="0755225266">
<pskc:Issuer>AnIssuer</pskc:Issuer> <pskc:Issuer>AnIssuer</pskc:Issuer>
<pskc:Usage OTP="true"> <pskc:Usage OTP="true">
<pskc:ResponseFormat Length="8" Format="DECIMAL"/> <pskc:ResponseFormat Length="6" Format="DECIMAL"/>
</pskc:Usage> </pskc:Usage>
<pskc:Data Name="COUNTER"> <pskc:Data>
<pskc:PlainValue>AprkuA==</pskc:PlainValue> <pskc:Secret>
</pskc:Data>
<pskc:Data Name="SECRET">
<pskc:EncryptedValue Id="ED"> <pskc:EncryptedValue Id="ED">
<xenc:EncryptionMethod <xenc:EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/> Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
<xenc:CipherData> <xenc:CipherData>
<xenc:CipherValue>rf4dx3rvEPO0vKtKL14NbeVu8nk= <xenc:CipherValue>rf4dx3rvEPO0vKtKL14NbeVu8nk=
</xenc:CipherValue> </xenc:CipherValue>
</xenc:CipherData> </xenc:CipherData>
</pskc:EncryptedValue> </pskc:EncryptedValue>
</pskc:Secret>
<pskc:Counter>
<pskc:PlainValue>0</pskc:PlainValue>
</pskc:Counter>
</pskc:Data> </pskc:Data>
</pskc:Key> </pskc:Key>
</pskc:Device> </pskc:Device>
</dskpp:KeyPackage> </dskpp:KeyPackage>
</dskpp:KeyPackage> </dskpp:KeyPackage>
<dskpp:Mac <dskpp:Mac
MacAlgorithm="http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes"> MacAlgorithm="http://www.ietf.org/keyprov/dskpp#dskpp-prf-aes">
miidfasde312asder394jw== miidfasde312asder394jw==
</dskpp:Mac> </dskpp:Mac>
<dskpp:AuthenticationData> <dskpp:AuthenticationData>
 End of changes. 54 change blocks. 
102 lines changed or deleted 138 lines changed or added

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