Individual Submission K. Meadors Internet-Draft Drummond Group Inc. Document: draft-meadors-certificate-exchange- D. Moberg 00.txt Cyclone Commerce Expires: July 2005 January 2005 Certificate Exchange Messaging for EDIINT draft-meadors-certificate-exchange-00.doc By submitting this Internet-Draft, I certify that any applicable patent or other IPR claims of which I am aware have been disclosed, or will be disclosed, and any of which I become aware will be disclosed, in accordance with RFC 3668. Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Any questions, comments, and reports of defects or ambiguities in this specification may be sent to the mailing list for the EDIINT working group of the IETF, using the address . Requests to subscribe to the mailing list should be addressed to . Abstract The EDIINT AS1, AS2 and AS3 message formats do not currently contain any neutral provisions for transporting and exchanging trading partner profiles or digital certificates. EDIINT Certificate Exchange Messaging provides the format and means to effectively exchange Meadors, Moberg Expires - July 2005 [Page 1] Draft CEM for EDIINT January 2005 certificates for use within trading partner relationships. The messaging consists of two types of messages, Request and Response, which allow trading partners to communicate certificates, their intended usage and their acceptance through XML. Certificates can be specified for use in digital signatures, data encryption or SSL/TLS over HTTP (HTTPS). Conventions used in this document 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. Feedback Instructions NOTE TO RFC EDITOR: This section should be removed by the RFC editor prior to publication. If you want to provide feedback on this draft, follow these guidelines: -Send feedback via e-mail to kyle@drummondgroup.com, with "Certificate Exchange" in the Subject field. -Be specific as to what section you are referring to, preferably quoting the portion that needs modification, after which you state your comments. -If you are recommending some text to be replaced with your suggested text, again, quote the section to be replaced, and be clear on the section in question. Table of Contents 1. Introduction...................................................3 1.1 Overview...................................................3 1.2 Terminology and Key Word Convention........................3 1.3 Certificate Lifecycle......................................5 2. Message Processing.............................................5 2.1 Message Structure..........................................5 2.2 Version Header.............................................7 2.3 Certificate Exchanging.....................................7 2.4 Certificate Implementation.................................8 2.5 CEM Response...............................................9 3. XML Schema Description.........................................9 3.1 EDIINTCertificateExchangeRequest element...................9 3.2 EDIINTCertificateExchangeResponse element.................12 Meadors, Moberg Expires - July 2005 [Page 2] Draft CEM for EDIINT January 2005 4. Use Case Scenarios............................................14 4.1 Maintenance Configuration Processing......................14 4.2 Initial Configuration Processing..........................15 5. Profile Exchange Messaging....................................17 6. Security Considerations.......................................18 7. IANA Considerations...........................................18 8. References....................................................19 8.1 Normative References......................................19 8.2 Informative References....................................20 9. Acknowledgments...............................................20 Author's Addresses...............................................20 Appendix.........................................................20 1. Introduction 1.1 Overview The growth and acceptance of EDIINT protocols, AS1, AS2 and AS3, in numerous supply-chains was due in part to the security feature which was provided. The security is not possible without the digital certificates which enable it. To maintain the level of security necessary to transmit business documentation, existing certificates must occasionally be replaced and exchanged with newer ones. The exchanging of digital certificates is unavoidable given how certificates can expire or become compromised. Complicating this is supply-chains which cannot afford to shutdown their business transactions while trading partners laboriously upload new certificates. Certificate exchange must be accomplished in a reliable and seamless format so as not to affect ongoing business transactions. This document describes how EDIINT products may exchange public-key certificates. Since EDIINT is built upon the security provided by public-private key pairs, it is vital that implementers are able to update their trading partners with new certificates as their old certificates expire, become outdated or insecure. EDIINT Certificate Exchange Messaging (CEM) described here utilizes XML data to exchange the certificate and provide information on its intended usage and acceptance within the trading partner relationship. There are two types of CEM messages, the CEM Request which presents the new certificate to be introduced into the trading partner relationship and the CEM Response which is the recipientÆs response to the CEM Request. CE messages can be exchanged through AS1 [AS1], AS2 [AS2] or AS3 [AS3] message transports. However, it is possible to leverage CE messaging through other transport standards besides EDIINT. 1.2 Terminology and Key Word Convention Meadors, Moberg Expires - July 2005 [Page 3] Draft CEM for EDIINT January 2005 [RFC2818] provides a glossary of Internet security terms, and several of their definitions are listed here verbatim. However, some definitions required for this document were undefined by [RFC2818] or rewritten to better explain their specific use within CEM. Certificate û A digital certificate contains the ownerÆs (End EntityÆs) name, the issuerÆs name, a serial number, expiration date, and a copy of the ownerÆs Public Key. The Public Key is used for Encrypting messages and Verifying Signatures (verifying a signature is also called Authentication). Certificate Revocation List (CRL) û A data structure that enumerates digital certificates that have been invalidated by their issuer prior to when they were scheduled to expire. [RFC2828] Certification Authority (CA) û An entity that issues digital certificates (especially X.509 certificates) and vouches for the binding between the data items in a certificate. [RFC2828] CA Certificate - A certificate issued by a trusted certification authority. CA certificates are not used to encrypt data but to sign other certificates. CA certificates are signed by themselves, but are not considered self-signed certificates for the purpose of this document. Certification Hierarchy - In this structure, one CA is the top CA, the highest level of the hierarchy. The top CA may issue public-key certificates to one or more additional CAs that form the second highest level. Each of these CAs may issue certificates to more CAs at the third highest level, and so on. The CAs at the second-lowest of the hierarchy issue certificates only to non-CA entities, called "end entities" that form the lowest level. Thus, all certification paths begin at the top CA and descend through zero or more levels of other CAs. All certificate users base path validations on the top CA's public key. [RFC2828] CEM Request ûThe EDIINT Certificate Exchange Messaging (CEM) Request is one of two possible CEM messages. It presents a certificate to be introduced into the trading partner relationship along with relevant information on how it is to be implemented. CEM Response ûThe EDIINT Certificate Exchange Messaging (CEM) Response is one of two possible CEM messages. It is the response to the CEM Request indicating whether or not the end entity certificate present in the CEM Request was accepted. End Entity û A system entity that is the subject of a public-key certificate and that is using, or is permitted and able to use, the matching private key only for a purpose or purposes other than Meadors, Moberg Expires - July 2005 [Page 4] Draft CEM for EDIINT January 2005 signing a digital certificate; i.e., an entity that is not a CA. [RFC2828] End Entity Certificate - A certificate which is used to encrypt data or authenticate a signature. (The private key associated with the certificate is used to decrypt data or sign data). The certificate may be self-signed or issued by a trusted certificate. Intermediary Certificate - A certificate issued by a CA certificate which itself issues another certificate (either intermediary or end entity). Intermediary certificates are not used to encrypt data but to sign other certificates. Public Key - The publicly-disclosable component of a pair of cryptographic keys used for asymmetric cryptography. [RFC2828] Public Key Certificate - A digital certificate that binds a system entity's identity to a public key value, and possibly to additional data items. [RFC2828] Self-signed Certificate - A certificate which is issued by itself (both issuer and subject are the same) and is an End Entity certificate. 1.3 Certificate Lifecycle A certificate has five states. 1. Pending - Upon receiving a certificate from a trading partner, the certificate is marked as Pending until a decision can be made to trust it or if its validity period has not yet begun. 2. Rejected û If a Pending certificate is not trusted, it is considered Rejected. 3. Accepted - Once a Pending certificate has been trusted, it is considered Accepted. An Accepted certificate may be used in secure transactions. 4. Expired û A certificate which is no longer valid because its expiration date has passed. Expired certificates SHOULD be kept in a certificate storehouse for decrypting and validating past transactions. 5. Revoked û A certificate which has been explicitly revoked by its owner or the certificate authority. 2. Message Processing 2.1 Message Structure CEM messages use the underlying EDIINT transport, such as AS2, to communicate information on the certificate, its intended use and its Meadors, Moberg Expires - July 2005 [Page 5] Draft CEM for EDIINT January 2005 acceptance. Both digital certifications and the XML data describing their intended use are stored within a multipart-related MIME envelope [RFC2387]. The certificates are stored in SMIME, certs-only MIME envelope [3851], and processing information is XML data which is identified through the MIME content-type of application/ediint-cert- exchange+xml. The format for CEM messages is as follows: Various EDIINT headers Disposition-Notification-To: http://10.1.1.1:80/exchange/as2-company Content-Type: multipart/signed; micalg=sha1; protocol="application/pkcs7-signature"; boundary="--OUTER-BOUNDARY" ----OUTER-BOUNDARY Content-Type: multipart/related; type="application/ediint-cert- exchange+xml"; boundary="--INNER-BOUNDARY" ----INNER-BOUNDARY Content-Type: application/ediint-cert-exchange+xml Content-ID: <20040101-1.alpha@example.org> [CEM XML data] ----INNER-BOUNDARY Content-Type: application/pkcs7-mime; smime-type=certs-only Content-ID: <20040101-2.alpha@example.org> [digital certificate] ----INNER-BOUNDARY-- ----OUTER-BOUNDARY Content-Type: application/pkcs7-signature [Digital Signature] ----OUTER-BOUNDARY-- One and only one MIME type of application/ediint-cert-exchange+xml MUST be present in the multipart/related structure, and it MUST be the root element. Multiple certs-only media types may be included, but at least one MUST be present. A unique content-id header MUST be present within each of the multipart structures. Both the CEM Request and CEM Response message SHOULD be signed. If it is desired to enable automatic exchange based on a previous trust relationship, then both the CEM Request and CEM Response message MUST be signed. Also, CEM messages SHOULD request a MDN and SHOULD request a signed MDN. Extra security such as applying data encryption is OPTIONAL. The MDN can be either synchronous or asynchronous. The MDN response verifies the transport delivery but is not equivalent to the Meadors, Moberg Expires - July 2005 [Page 6] Draft CEM for EDIINT January 2005 CEM Response message. All necessary headers MUST be applied to the message per the underlying transport standard. 2.2 Version Header Before a CEM Request message is generated, the initiator MUST determine if the recipient can accept the CEM Request message. For both AS2 and AS3, the version header value of 1.2 or greater (e.g. 1.3) indicates the implementation can both initiate and receive CEM message exchanges. AS2 and AS3 implementers of CEM MUST utilize the proper version header in all of their messages, both CEM messages and normal document transport messages. Since there is no AS1 version header, trading partners using AS1 MUST decide within the trading partner agreement whether to utilize CEM. For CEM Request messages of initial trading partner configurations, the initiator MUST decide within the trading partner agreement if the recipient can accept the CEM Request. 2.3 Certificate Exchanging After obtaining the desired certificate, the initiator of the certificate exchange transmits the end-entity certificate in the CEM Request message. If the end-entity certificate is not self-signed, then the CA certificate and any other certificates needed to create the chain of trust for the end-entity certificate MUST be included in the CEM Request message. Multiple end-entity certificates MAY also be present. Certificates are referenced and identified in the XML data by their content-id used in the multipart-related structure. Information on how the certificate is to be used, or certificate usage, by the user agent and other related information is found in the XML data. A certificate can be used for a single function, like digital signatures, or used for multiple functions, such as both digital signatures and data encryption. If a certificate is intended for multiple usages, such as for both digital signatures and data encryption, the certificate MUST be listed only once in the CEM Request message and its multiple usage listed through the CertUsage XML element. Upon receipt of the CEM Request, the recipient trading partner processes the transport message as normal and returns the MDN. The recipient MUST return the MDN before parsing and interpreting the CEM XML data. The returned MDN only provides information on the veracity of the transport message and not the acceptance of the certificate(s) being exchanged. Meadors, Moberg Expires - July 2005 [Page 7] Draft CEM for EDIINT January 2005 2.4 Certificate Implementation The new certificate is considered to be in the Pending state for the recipient who MUST decide whether to accept the certificate as trustworthy. This decision is arbitrary and left to each individual trading partner. Upon accepting the certificate, it is to be considered an Accepted certificate within the trading partner relationship. If the certificate is not accepted, it is considered Rejected. When a certificate is intended for use in data encryption or TLS/SSL server authentication, the initiator MUST consider the certificate to be Accepted and be prepared for its trading partner to begin using the certificate upon generating the CEM Request message. After a recipient generates a positive CEM Response message for a certificate, the recipient MUST immediately begin using the certificate in trading with the initiator of the request. The recipient MAY apply encryption to the CEM Response message using the new Accepted certificate or MAY apply encryption to the CEM Response message using the previously Accepted encryption certificate. When a certificate is intended for use in digital signatures or TLS/SSL client authentication, the initiator MUST NOT use the certificate until the recipient trading partner generates a CEM Response accepting the certificate or the start of the respond by date, which is listed in the RespondByDate XML element. The initiator MAY use the certificate after the respond by date, regardless of whether the partner has accepted it or not. The certificate used for the digital signature of the CEM Request message MUST be the one which is currently Accepted within the trading partner relationship. Since implementers of EDIINT often use the same certificate with multiple trading partners, implementers of CEM MUST be able to keep both the old and new certificates as Accepted. If the initiator has generated a CEM Request and exchanged a new encryption certificate to multiple trading partners, it MUST be able to accept encrypted data which uses either the older, existing encryption certificate or the newly exchanged encryption certificate. Likewise, a recipient of a CEM Request MUST be able to authenticate digital signatures using either the new or old certificates, since the initiator may not be able to switch certificates until all trading partners accept the new certificate. Similar provisions MUST be made for certificates intended for TLS/SSL server and client authentication. Revoking a certificate MUST be done outside of CEM. If a CEM Request message contains a certificate which is currently Accepted and has the identical usage for the certificate that has been Accepted, the recipient MUST NOT reject the duplicate certificate but MUST respond with a CEM Response message indicating Meadors, Moberg Expires - July 2005 [Page 8] Draft CEM for EDIINT January 2005 the certificate has been accepted. For example, if Certificate A is currently Accepted as the encryption certificate for a user agent, any CEM Request message containing Certificate A with the usage as the encryption only MUST be accepted by an existing trading partner. This situation may be necessary for an implementation intending to verify its current trading partner certificate. If two trading partners utilize multiple EDIINT protocols for trading, such as AS2 for a primary transport and AS1 as the backup transport, it is dependent upon implementation and trading partner agreement how CEM messages are sent and which transports the exchanged certificates affect. 2.5 CEM Response If a CEM Request is received, the recipient MUST respond with a CEM Response message indicating if the certificate is Accepted or Rejected. If multiple end-entity certificates were included within the CEM Request, the recipient MAY generate individual CEM Response messages for each certificate or the recipient MAY consolidate responses for multiple certificates in one or more CEM Response messages. The recipient MUST NOT generate more than one CEM Response for a given end-entity certificate. CEM Response are NOT sent for any certificates other than end-entity certificates. Based on the CEM Response message, the initiator determines if the exchanged certificate may be used in future trading with the recipient partner. 3. XML Schema Description The CEM schema has two top-level elements, EDIINTCertificateExchangeRequest and EDIINTCertificateExchangeResponse. The EDIINTCertificateExchangeRequest element is present only in the CEM Request message, and the EDIINTCertificateExchangeResponse is present only in the CEM Response message. All other elements nest directly or indirectly from these. Please refer to the appendix for the actual schema document. 3.1 EDIINTCertificateExchangeRequest element EDIINTCertificateExchangeRequest contains two elements, TradingPartnerInfo, which can only appear once and TrustRequest, which may be present multiple times. TrustRequest contains information on a certificate and its intended usage. TradingPartnerInfo exists to provide information on the publication of the CEM Request message since processing of the XML data may occur apart from the handling of the accompanying transport message, for example the AS2 request. Meadors, Moberg Expires - July 2005 [Page 9] Draft CEM for EDIINT January 2005 TradingPartnerInfo identifies the entity that created the CEM message through the nested Name element. Both the optional qualifier attribute and the element value of Name are left open to the implementer, but some suggested choices are to list the EDI identification or the transport trading partner relationship, for example the qualifier of ôAS2ö and the value of the AS2 system identifier (AS2-From value). MessageOriginated is included in TradingPartnerInfo to identify the time and date the message was created. The MessageOriginated date and time values MUST follow XML standard dateTime type syntax and be listed to at least the nearest second and expressed in local time with UTC offset. The TrustRequest element contains the EndEntity, TrustChain, CertUsage, RespondByDate and ResponseURL elements. The required EndEntity element is found only once in a TrustRequest element and contains the content-id reference to the end-entity certificate being exchanged. TrustChain references any certificates necessary to complete the chain of trust for the end entity certificate. For example, if the end entity certificate being exchanged is self-signed Meadors, Moberg Expires - July 2005 [Page 10] Draft CEM for EDIINT January 2005 then there would not be a TrustChain element. However, if the end entity certificate is issued by an intermediary certificate which is issued by a root CA certificate, both the intermediary certificate and the CA certificate would be referenced in the same CertificateContentID element within the same TrustChain element. EndEntity contains the nested elements of CertificateIdentifier and CertificateContentID, and TrustChain only contains CertificateContentID. CertificateContentID is a string element which references the content-id of the multipart/related structure where the certificate is stored. CertificateIdentifier comes from the XML Signature schema namespace [XML-DSIG]. CertificateIdentifier contains the string element X509IssuerName and the integer element X509SerialNumber. X509SerialNumber is the assigned serial number of the end entity certificate as it is listed. X509IssuerName contains the issuer name information of the end-entity certificate, such as common name, organization, etc. This information can be described in any format, but it is RECOMMENDED to list each issuer attribute abbreviation [X.520] [PROFILE] followed by the equal sign (i.e. ô=ö), then separating each attribute listing by a single semi-colon (e.g. CN=The Common Name;O=Organization;à). Refer to the appendix and the sample CEM Request message for an example of the X509IssuerName. Meadors, Moberg Expires - July 2005 [Page 11] Draft CEM for EDIINT January 2005 CertUsage is an unbounded element which contains enumerated values on how the exchanged certificate is to be used. There are enumerated values for SMIME digital signatures (digitalSignature), SMIME data encryption (keyEncipherment), the server certificate used in TLS transport encryption (tlsServer) and the client certificate used in TLS transport encryption (tlsClient). While the element is unbounded, CertUsage only has a potential number of four occurrences due to the limit of the enumerated values. RespondByDate is a required element of the XML standard dateTime type expressed in local time with UTC offset, which provides information on when the certificate should be trusted, inserted into the trading partner relationship and responded to by a CEM Response message. If the certificate can not be trusted or inserted into the trading partner relationship, the CEM Response message should still be returned by the date indicated. ResponseURL is an optional element which indicates where the CEM Response message should be sent. This value takes precedence over the existing inbound URL of the current trading partner relationship. If the element is absent, the CEM Response message is returned according to the URL stipulated in the trading partner relationship. The Response MUST use the same transport protocol (AS1, AS2, or AS3) as the Request. The Response URL MUST use this protocol. 3.2 EDIINTCertificateExchangeResponse element Meadors, Moberg Expires - July 2005 [Page 12] Draft CEM for EDIINT January 2005 EDIINTCertificateExchangeResponse contains the two elements TradingPartnerInfo and TrustResponse. TradingPartnerInfo, which is also found in EDIINTCertificateExchangeRequest, describes the trading partner generating this response message. TrustResponse provides information on the acceptance of a previously sent end entity certificate. There can be multiple TrustResponse elements within an EDIINTCertificateExchangeResponse. A TrustResponse element identifies a certificate which has been previously exchanged within the trading partner relationship through a CEM Request and now has been either accepted or rejected by the partner. The CertificateReference element is of the same type as the CertificateIdentifier element. A CertificateReference element in a CEM Response MUST be identical to its CertificateIdentifier counterpart in the associated CEM Request since they identify the same certificate in question. The required element CertStatus has the enumerated values of ôAcceptedö or ôRejectedö. ôAcceptedö indicates the certificate was trusted by the trading partner and is now ready for use within the trading partner relationship, and ôRejectedö indicates the certificate is not trusted by the trading partner nor can it be currently used with the trading partner relationship. If the value of ôRejectedö is chosen, the optional string element ReasonForRejection may be included. If present, ReasonForRejection should contain a brief description of why the certificate was not accepted. Since the value for this element is not enumerated but open, it MUST be interpreted through human means. Meadors, Moberg Expires - July 2005 [Page 13] Draft CEM for EDIINT January 2005 4. Use Case Scenarios These scenarios illustrate how the request and response messages described in Section 2 and 3 can be used to exchange certificates. The requirements of this standard are in Section 2 and 3; this section is only illustrative. 4.1 Maintenance Configuration Processing This use case assumes an established relationship with currently working certificates. Examples of this use case include, but are not limited to a certificate with an expiration date approaching. If the current certificate is used to sign the Certificate Exchange messages, this signature can be used to establish a level of trust in the transaction. For this example, the AS2 transport protocol is used. 4.1.1. Step 1 Initiator creates an EDIINTCertificateExchangeRequest as described in Section 2. Message Processing and Section 3. XML Schema Description and sends it according to EDIINT-AS2 protocol. A positive MDN received during this step indicates successful transmission of the message but does not imply successful action on the certificate. In the case of an encryption certificate, the initiator MUST be immediately ready to receive documents encrypted with the new certificate. In the case of a signing certificate, the initiator can begin signing documents with the new certificate at the RespondByDate or upon receipt of an EDIINTCertificateExchangeResponse from the partner indicating acceptance of the certificate. If an acceptance response is not received by the RespondByDate, the initiator may or may not begin signing with the new certificate, depending on the implementationÆs capabilities and the policies of the initiator. 4.1.2. Step 2 Receiver validates the EDIINTCertificateExchangeRequest message at the AS2 level and returns a correct MDN. If the message is a proper AS2 document, the receiver MUST automatically accept or reject the new certificate(s) or require manual intervention. If the certificate Meadors, Moberg Expires - July 2005 [Page 14] Draft CEM for EDIINT January 2005 is automatically accepted or rejected, an EDIINTCertificateExchangeResponse MUST be generated and returned to the initiator. Since the trading relationship could be hindered if action is not taken prior to the RespondByDate, manual intervention MUST be done before that date. When the manual intervention determines to accept or reject the new certificate, an EDIINTCertificateExchangeResponse MUST be generated and returned to the initiator. Both automatic and manual EDIINTCertificateExchangeResponses MUST be formatted according to Section 2. Message Processing and Section 3. XML Schema Description and sent according to EDIINT-AS2 protocol. A positive MDN received for the response message indicates successful transmission of the response message. After the receiver accepts the new certificate and returns an acceptance response, the receiver encrypts all messages to the initiator with the new encryption certificate. The receiver continues to accept messages from the initiator that are signed with the old signing certificate, and also accepts messages signed with the new signing certificate. The initiator may start signing with the new certificate when it receives the acceptance response, or when it receives acceptance responses from all its partners, or after the RespondByDate, or when the old signing certificate expires. 4.1.3. Step 3 After the exchange is complete, some cleanup may be desirable, including retiring or archiving the old certificates. This step is considered an implementation detail that is left purely to the vendors and users. 4.2 Initial Configuration Processing This use case assumes all necessary elements of an EDIINT relationship exist outside of the certificates, including an understanding of the partnerÆs ability to support a CEM. Establishing these elements may be accomplished via an automated exchange, a manual process, or any other method desirable. No methods of exchanging the additional information are described in this specification. Examples of this use case include, but are not limited to the first exchange of a certificate, or recovery from an expired or compromised certificate. This case assumes no signing certificate has been established, precluding a signature being used to establish a level of trust. Therefore, extra precautions may be appropriate in this use case. There are additional use cases possible where some certificates are already established. It is not practical to cover every case here, but this case and the maintenance case should give sufficient guidance. Meadors, Moberg Expires - July 2005 [Page 15] Draft CEM for EDIINT January 2005 4.2.1. Step 1 Initiator creates an EDIINTCertificateExchangeRequest as described in Section 2.0 Message Format and Section 3.0 XML Schema. The initiator sends it according to EDIINT-AS2 protocol. Using a digital signature on the AS2 message is optional, as the receiver will not be able to verify until after accepting the signature certificate. If the receiver supports this use case, they MUST accept this message regardless of the presence of a signature. Unless the initiator possesses the receiverÆs encryption certificate, encryption MUST NOT be used. Unless the initiator possesses the receiverÆs signature certificate, they SHOULD NOT request a signed MDN. If the MDN is not signed, there is no legal proof the receiver received the message. In addition, a positive MDN received during this step gives some indication of successful transmission of the message, but does not imply successful action on the certificate. In the case of an encryption certificate, the initiator MUST be immediately ready to receive documents encrypted with the new certificate. In the case of a signing certificate, the initiator can begin signing documents with the new certificate at the RespondByDate or upon receipt of an EDIINTCertificateExchangeResponse from the partner indicating they are ready. If an acceptance response is not received by the RespondByDate, the initiator may or may not begin signing with the new certificate, depending on the implementationÆs capabilities and the policies of the initiator. 4.2.2. Step 2 Receiver validates the EDIINTCertificateExchangeRequest message at the AS2 level and returns an MDN according to the EDIINT-AS2 protocol. If the message is a proper AS2 document, the receiver MUST automatically accept or reject the new certificate(s), or require manual intervention. Caution should be used in automatically accepting the certificate, as it may be impossible to verify the sender is authentic. If the certificate is automatically accepted or rejected, an EDIINTCertificateExchangeResponse MUST be generated and returned to the initiator. Since the trading relationship could be hindered if action is not taken prior to the RespondByDate, manual intervention MUST be done before that date. When the manual intervention determines to accept or reject the certificate, an EDIINTCertificateExchangeResponse MUST be generated and returned to the initiator. In both the automatic and manual case, the EDIINTCertificateExchangeResponses MUST be formatted according to Section 2. Message Processing and Section 3. XML Schema Description and sent according to EDIINT-AS2 protocol. If the original CEM included the encryption certificate, or if the receiver has the initiator encryption certificate on file, it may be used to encrypt Meadors, Moberg Expires - July 2005 [Page 16] Draft CEM for EDIINT January 2005 the AS2 message including the EDIINTCertificateExchangeResponse. Otherwise, it may be necessary to send this EDIINTCertificateExchangeResponse unencrypted. The message may be signed, but it is possible the initiator will have no way to verify the signature. The initiator MUST accept this response, regardless of if it is signed. A positive MDN received for the response message indicates successful transmission of the response message. After the receiver accepts the certificate and returns an acceptance response, the receiver may encrypt messages to the initiator with the encryption certificate. The receiver begins to accept messages from the initiator that are signed with the signing certificate. The initiator may start signing with the certificate when it receives the acceptance response, or when it receives acceptance responses from all its partners, or after the RespondByDate. 4.2.3. Step 3 After the exchange is complete, additional certificates may need to be exchanged before a complete trading relationship can be successful. This step is considered an implementation detail that is left purely to the vendors and users. 5. Profile Exchange Messaging CEM provides the means to exchange certificates among trading partners. However, other profile information, such as URLs and preferred security settings, is needed to create a trading partner relationship. A future standard is needed to describe profile descriptions and how they will be exchanged. The format for this profile attachment is not defined in this specification but is planned for a future document. It will build upon the existing CEM protocol with profile information stored with XML data. Both certificate and profile description information will be placed into a multipart/related [RFC2387] body part entity. A possible format for a profile description message is as follows: Various EDIINT headers Disposition-Notification-To: http://10.1.1.1:80/exchange/as2_company Disposition-Notification-Options: signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, sha1 Content-Type: multipart/signed; micalg=sha1; protocol="application/pkcs7-signature"; boundary="--BOUNDARY1" ----BOUNDARY1 Content-Type: multipart/related; start=ö"; type=öapplication/ediint-cert-exchange+xmlö; Meadors, Moberg Expires - July 2005 [Page 17] Draft CEM for EDIINT January 2005 boundary="--BOUNDARY2" ----BOUNDARY2 Content-Type: application/ediint-cert-exchange+xml Content-ID: [CEM XML data] ----BOUNDARY2 [Profile information attachment] ----BOUNDARY2-- ----BOUNDARY1 Content-Type: application/pkcs7-signature [Digital Signature] ----BOUNDARY1-- 6. Security Considerations Certificate exchange is safe for transmitting. However, implementers SHOULD verify the received certificate to determine if it is truly from the stated originator through out-of-band means for the initial use case of 4.2 or whenever the request is not signed. 7. IANA Considerations MIME Media type name: Application MIME subtype name: EDIINT-cert-exchange+xml Required parameters: None Optional parameters: This parameter has identical semantics to the charset parameter of the ôapplication/xmlö media type as specified in [RFC3023]. Encoding considerations: Identical to those of "application/xml" as described in [RFC3023], section 3.2. Security considerations: See section 6. Interoperability Considerations: See section 2.2 Published specification: This document. Applications which use this media type: EDIINT applications, such as AS1, AS2 and AS3 implementations. Meadors, Moberg Expires - July 2005 [Page 18] Draft CEM for EDIINT January 2005 Additional Information: None Intended Usage: Common Author/Change controller: See AuthorÆs section of this document. 8. References 8.1 Normative References [AS1] RFC3335 ôMIME-based Secure Peer-to-Peer Business Data Interchange over the Internet using SMTPö, T. Harding, R. Drummond, C. Shih, 2002. [AS2] draft-ietf-ediint-as2-15.txt ôMIME-based Secure Peer-to-Peer Business Data Interchange over the Internet using HTTPö, D. Moberg, R. Drummond, 2004. [AS3] draft-ietf-ediint-as3-02.txt ôMIME-based Secure Peer-to-Peer Business Data Interchange over the Internet using FTPö, T. Harding, R. Scott, 2003. [RFC2119] RFC2119 ôKey Words for Use in RFC's to Indicate Requirement Levelsö, S.Bradner, March 1997. [RFC2246] RFC2246 "The TLS Protocol", Dierks, T. and C. Allen, January 1999. [RFC2387] RFC2387 "The MIME Multipart/Related Content-type", E. Levinson, August 1998. [RFC2818] RFC2818 "HTTP over TLS", Rescorla, E., May 2000. [RFC2828] RFC2828 ôInternet Security Glossaryö, R. Shirley, May 2000. [RFC3023] RFC3023 ôXML Media Typesö, M. Murata, January 2001. [3821] RFC3821 ôS/MIME Version 3.1 Message Specificationö, B. Ramsdell, July 2004. [XML-DSIG] RFC3275 ôXML-Signature Syntax and Processingö, D. Eastlake, March 2002. [X.520] ITU-T Recommendation X.520: Information Technology û Open Systems Interconnection - The Directory: Selected Attribute Types, 1993. Meadors, Moberg Expires - July 2005 [Page 19] Draft CEM for EDIINT January 2005 [PROFILE] Housley, R., Polk, W., Ford, W. and D. Solo, "Internet X.509 Public Key Infrastructure: Certificate and CRL Profile", RFC 3280, April 2002. 8.2 Informative References 9. Acknowledgments The authors wish to extend gratitude to the ecGIF sub-committee within the EAN.UCC organization from which this effort began. Of special note is John Duker who chaired the sub-committee and provided valuable editing, Richard Bigelow who greatly assisted development of the ideas presented, John Koehring with his insights on implementation and James Zwyer for his contribution to the use case scenarios. Author's Addresses Kyle Meadors Drummond Group Inc. 4700 Bryant Irvin Court, Suite 303 Fort Worth, TX 76107 USA Email: kyle@drummondgroup.com Dale Moberg Cyclone Commerce 8388 E. Hartford Drive, Suite 100 Scottsdale, AZ 85255 USA Email: dmoberg@cyclonecommerce.com Copyright Notice Copyright (C) The Internet Society 2004. This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Appendix A.1 EDIINT Certificate Exchange XML Schema Meadors, Moberg Expires - July 2005 [Page 20] Draft CEM for EDIINT January 2005 Meadors, Moberg Expires - July 2005 [Page 21] Draft CEM for EDIINT January 2005 A.2 Example of EDIINT Certificate Exchange Request XML Meadors, Moberg Expires - July 2005 [Page 22] Draft CEM for EDIINT January 2005 Somewhere.com 2005-05-17T07:21:00-03:00 digitalSignature 2005-05-20T07:21:00-03:00 http://somewhere.com/someplace CN=EDIINT WG; O=IETF; OU=EDIINT; L=New York; S=New York; C=US 123454321 0001@example.org 0002@example.org 0003@example.org keyEncipherment 2005-05-20T07:21:00-03:00 http://foo.com/path CN=EDIINT WG; O=IETF; OU=EDIINT; L=New York; S=New York; C=US 987654321 0004@example.org Meadors, Moberg Expires - July 2005 [Page 23] Draft CEM for EDIINT January 2005 0005@example.org 0006@example.org A.3 Example of EDIINT Certificate Exchange Response XML Rejected Invalid KeyUsage extension CN=EDIINT WG; O=IETF; OU=EDIINT; L=New York; S=New York; C=US 123454321 Accepted CN=US;O=Somewhere.com 987654321 Meadors, Moberg Expires - July 2005 [Page 24]