diff options
Diffstat (limited to 'doc/protocol/draft-hajjeh-tls-sign-00.txt')
-rw-r--r-- | doc/protocol/draft-hajjeh-tls-sign-00.txt | 504 |
1 files changed, 0 insertions, 504 deletions
diff --git a/doc/protocol/draft-hajjeh-tls-sign-00.txt b/doc/protocol/draft-hajjeh-tls-sign-00.txt deleted file mode 100644 index 6fc44075ad..0000000000 --- a/doc/protocol/draft-hajjeh-tls-sign-00.txt +++ /dev/null @@ -1,504 +0,0 @@ - -Internet Engineering Task Force I. Hajjeh -INTERNET DRAFT A. Serhrouchni - ENST Paris - M. Badra, Ed. - O. Cherkaoui - UQAM University -Expires: June 2005 January 09, 2005 - - TLS Sign - <draft-hajjeh-tls-sign-00.txt> - - -Status - - 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. - - 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.txt - - The list of Internet-Draft Shadow Directories can be accessed at - http://www.ietf.org/shadow.html - -Copyright Notice - - Copyright (C) The Internet Society (2004). All Rights Reserved. - -Abstract - - TLS protocol provides authentication and data protection for - communication between two entities. However, missing from the - protocol is a way to perform non-repudiation service. - - This document defines extensions to the TLS protocol to allow it to - perform non-repudiation service. It is based on [TLSSign] and it - provides the client and the server the ability to sign by TLS, - handshake and applications data using certificates such as X.509. - - - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 1] -INTERNET-DRAFT TLS Sign January 2005 - -Table of Contents - - Abstract...........................................................1 - 1 Introduction.....................................................2 - 1.2 Requirements language..........................................3 - 2 TLS Sign overview................................................3 - 2.1 Signed data Record type.....................................5 - 2.1.1 TLS Sign activate/deactivate..............................5 - 2.1.1 TLS sign packet format....................................5 - 2.2 Storing signed data.........................................6 - Security Considerations............................................7 - References.........................................................7 - Author's Addresses.................................................8 - -1 Introduction - - Actually, TLS is the most deployed security protocol for securing - exchanges. It provides end-to-end secure communications between two - entities with authentication and data protection. However, what is - missing from the protocol is a way to provide the non-repudiation - service. - - This document describes how the non-repudiation service may be - integrated as an optional module in TLS. This is in order to provide - both parties with evidence that the transaction has taken place and - to offer a clear separation with application design and development. - TLS-Sign's design motivations included: - - o TLS is application protocol-independent. Higher-level protocol - can operate on top of the TLS protocol transparently. - - o TLS is a modular nature protocol. Since TLS is developed in four - independent protocols, the approach defined in this document can - be added by extending the TLS protocol and with a total - reuse of pre-existing TLS infrastructures and implementations. - - o Several applications like E-Business require non-repudiation - proof of transactions. It is critical in these applications to - have the non-repudiation service that generates, distributes, - validates and maintains the evidence of an electronic - transaction. Since TLS is widely used to secure these - applications exchanges, the non-repudiation should be offered by - TLS. - - o Generic Non repudiation with TLS. TLS SIGN provides a generic - non-repudiation service that can be easily used with protocols. - TLS SIGN minimizes both design and implementation of the - signature service and that of the designers and implementators - who wish to use this module. - - - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 2] -INTERNET-DRAFT TLS Sign January 2005 - -1.2 Requirements language - - The key words "MUST", "SHALL", "SHOULD", and "MAY", in this document - are to be interpreted as described in RFC-2119. - -2 TLS Sign overview - - TLS Sign is integrated as a higher-level module of the TLS Record - protocol. It is optionally used if the two entities agree. This is - negotiated by extending Client and Server Hello messages in the same - way defined in [TLSExt]. - - In order to allow a TLS client to negotiate the TLS Sign, a new - extension type should be added to the Extended Client and Server - Hellos messages. TLS clients and servers may include an extension of - type 'signature' in the Extended Client and Server Hellos messages. - The 'extension_data' field of this extension contains a - 'signature_request' where: - - enum { - pkcs7(0), smime(1), xmldsig(2), (255); - } ContentFormat; - - struct { - ContentFormat content_format; - SignMethod sign_meth; - Signature_type sign_type<1..2^16-1>; - } signature_request; - - enum { - ssl_client_auth_cert(0), ssl_client_auth_cert_url(1), (255); - } SignMethod; - - opaque Signature_type<1..2^16-1>; - - The client initiates the TLS Sign module by sending the - ExtendedClientHello including the 'signature' extension. This - extension contains: - - - the signature type (e.g., non-repudiation with proof of origin), - - the content format (e.g., PKCS7 [PKCS7], S/MIME [S/MIME], XMLDSIG - [XMLDSIG]), - - the signature method (e.g. X509 authentication certificate). - Actually, this document uses the same certificate used in client - authentication. Any new signature method MAY be added in future - versions (e.g. delegated attributes certificates). - - The server MAY reject the connection by sending the error alert - "unsupported_extension" [TLSExt] and closing the connection. - - - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 3] -INTERNET-DRAFT TLS Sign January 2005 - - If the server has an interest in getting non-repudiation data from - the client and that the cipher_suites list sent by the client does - not include any cipher_suite with signature ability, the server MUST - close the connection by sending a fatal error. - - If the server has an interest in getting non-repudiation data from - the client and that the cipher_suites list sent by the client - includes at least a cipher_suite with signature ability, the server - MUST select a cipher_suite with signature ability and MUST provide a - certificate (e.g., RSA) that MAY be used for key exchange. Further, - the server MUST request a certificate from the client with signing - ability in the certificate request message (e.g., an RSA or a DSS - signature-capable certificate). This request however, MUST be - appropriate for the selected cipher suite. - - If the server has no interest in getting non-repudiation data from - the client, the server will select a cipher_suite or, if no - acceptable choices are presented, return a handshake failure alert - and close the connection [TLS]." - - However, the client MAY demand a non-repudiation data without having - a certificate. In this case, the client MAY reject the connection if - the server is not ready to give it the non-repudiation service. This - may be done using the signature type field of the signature_request - structure. - - Client Server - ------ ------ - - ClientHello --------> - ServerHello - Certificate - ServerKeyExchange* - CertificateRequest - <-------- ServerHelloDone - Certificate - ClientKeyExchange - CertificateVerify - ChangeCipherSpec - Finished --------> - ChangeCipherSpec - <-------- Finished - (Signed) Application Data <-------> (Signed) App. Data - - - - - - - - - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 4] -INTERNET-DRAFT TLS Sign January 2005 - -2.1 Signed data Record type - - New record type is added in this document: the signed data protocol. - The message consists of a single byte of value 1 or 0. - - enum { - change_cipher_spec(20), alert(21), handshake(22), - application_data(23), tls_sign(25), (255) - } ContentType; - - struct { - enum { tls_sign_off(0), tls_sign_on(1), (255) } type; - } TLSSignOnOff; - -2.1.1 TLS Sign activate/deactivate - - To manage the generation of evidence, new record protocol is added - by this document, called tls_sign_on_off. This protocol consists of - a single message that is encrypted and compressed under the - established connection state. Thus, no man in the middle can replay - or inject this message. It consists of a Boolean of value 1 - (tls_sign_on) or 0 (tls_sign_off). - - The tls_sign_on_off message is sent by both the client and server to - notify the receiving party that subsequent records will carry data - under the negotiated parameters and keys. - - If the client was not authenticated in his first TLS exchange or - does not support a signature algorithm, the server who receives - tls_sign_on_off message, MAY answer by signed data, ignore it or MAY - invite the client to start a new TLS session sending the - HelloRequest message. - - This message can be sent at any point after the TLS session has been - established. - -2.1.1 TLS sign packet format - - This document defines a new packet format that encapsulates signed - data. The packet format is shown below. The fields are transmitted - from left to right. - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Content-Type | Length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Signed Data ... - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - Content-Type - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 5] -INTERNET-DRAFT TLS Sign January 2005 - - 0 1 2 3 4 5 6 7 - +-+-+-+-+-+-+-+-+ - |A D R R R R R R| - +-+-+-+-+-+-+-+-+ - - A = acknowledgement of receipt - D = signed data - R = Reserved - - When the whole signed data is delivered to the receiver, the TLS - Sign will check the signature. If the signature is valid and that - the sender requires a proof of receipt, the receiver MUST generate a - message with Type=A (acknowledgement of receipt), and as data-field - the digest of the whole data. The data-field is of course signed by - the receiver before it is sent to the sender. - -2.2 Storing signed data - - The objective of TLS Sign is to provide both parties with evidence - that can be stored and later presented to a third party to resolve - disputes that arise if and when a communication is repudiated by one - of the entities involved. This document provides the two basic types - of non-repudiation service: - - o Non-repudiation with proof of origin: provides the TLS server - with evidence proving that the TLS client has sent it the signed - data at a certain time. - - o Non-repudiation with proof of delivery: provides the TLS client - with evidence that the server has received the client's signed - data at a specific time. - - TLS Handshake exchanges the current time and date according to the - entities internal clock. Thus, the time and date can be stored with - the signed data as a proof of communication. For B2C or B2B - transactions, non-repudiation with proof of origin and non- - repudiation with proof of receipt are both important. If the TLS - client requests a non-repudiation service with proof of receipt, the - server SHOULD verify and send back to client a signature on the hash - of signed data. - - The following figure explains the different events for proving and - storing signed data [RFC2828]. RFC 2828 uses the term "critical - action" to refer to the act of communication between the two - entities. For a complete non-repudiation deployment, 6 phases should - be respected: - - - - - - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 6] -INTERNET-DRAFT TLS Sign January 2005 - - -------- -------- -------- -------- -------- . -------- - Phase 1: Phase 2: Phase 3: Phase 4: Phase 5: . Phase 6: - Request Generate Transfer Verify Retain . Resolve - Service Evidence Evidence Evidence Evidence . Dispute - -------- -------- -------- -------- -------- . -------- - Service Critical Evidence Evidence Archive . Evidence - Request => Action => Stored => Is => Evidence . Is - Is Made Occurs For Later Tested In Case . Verified - and Use | ^ Critical . ^ - Evidence v | Action Is . | - Is +-------------------+ Repudiated . | - Generated |Verifiable Evidence|------> ... . ----+ - +-------------------+ - - 1- Requesting explicit transaction evidence before sending data. - Normally, this action is taken by the SSL/TLS client - - 2- If the server accepts, the client will generate evidence by - signing data using his X.509 authentication certificate. Server will - go through the same process if the evidence of receipt is requested. - - 3 - The signed data is then sent by the initiator (client or server) - and stored it locally, or by a third party, for a later use if - needed. - - 4 - The entity that receive the evidence process to verify the - signed data. - - 5- The evidence is then stored by the receiver entity for a later - use if needed. - - 6- In this phase, which occurs only if the critical action is - repudiated, the evidence is retrieved from storage, presented, and - verified to resolve the dispute. - - With this method, the stored signed data (or evidence) can be - retrieved by both parties, presented and verified if the critical - action is repudiated. - -Security Considerations - - Security issues are discussed throughout this memo. - -References - - [TLS] Dierks, T., et. al, "The TLS Protocol Version 1.0", RFC - 2246, January 1999. - - [TLSExt] Blake-Wilson, S., et. al, "Transport Layer Security (TLS) - Extensions", RFC 3546, June 2003. - - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 7] -INTERNET-DRAFT TLS Sign January 2005 - - [PKCS7] RSA Laboratories, "PKCS #7: RSA Cryptographic Message - Syntax Standard," version 1.5, November 1993. - - [S/MIME] Ramsdell, B., "S/MIME Version 3 Message Specification", RFC - 2633, June 1999. - - [XMLDSIG]Eastlake, D., et. al, "(Extensible Markup Language) XML - Signature Syntax and Processing", RFC 3275, March 2002. - - [TLSSign]Hajjeh, I., Serhrouchni, A., "Integrating a signature - module in SSL/TLS, ICETEĈ2004, ACM/IEEE, First - International Conference on E-Business and - Telecommunication Networks, Portugal, August 2004. - - [RFC2828]Shirey, R., "Internet Security Glossary", RFC 2828, May - 2000. - -Author's Addresses - - Ibrahim Hajjeh - ENST - 46 rue Barrault - 75013 Paris Phone: NA - France Email: Ibrahim.Hajjeh@enst.fr - - Ahmed serhrouchni - ENST - 46 rue Barrault - 75013 Paris Phone: NA - France Email: Ahmed.serhrouchni@enst.fr - - Mohamad Badra - UQAM University - Montreal (Quebec) Phone: NA - Canada Email: Mohamad.Badra@uqam.ca - - Omar Cherkaoui - UQAM University - Montreal (Quebec) Phone: NA - Canada Email: Omar.Cherkaoui@uqam.ca - - Acknowledgements - - The authors would like to thank Eric Rescorla for discussions and - comments on the design of TLS Sign. - - Intellectual Property Statement - - The IETF takes no position regarding the validity or scope of any - Intellectual Property Rights or other rights that might be claimed - to pertain to the implementation or use of the technology described - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 8] -INTERNET-DRAFT TLS Sign January 2005 - - in this document or the extent to which any license under such - rights might or might not be available; nor does it represent that - it has made any independent effort to identify any such rights. - Information on the IETF's procedures with respect to rights in IETF - Documents can be found in BCP 78 and BCP 79. - - Copies of IPR disclosures made to the IETF Secretariat and any - assurances of licenses to be made available, or the result of an - attempt made to obtain a general license or permission for the use - of such proprietary rights by implementers or users of this - specification can be obtained from the IETF on-line IPR repository - at http://www.ietf.org/ipr. - - The IETF invites any interested party to bring to its attention any - copyrights, patents or patent applications, or other proprietary - rights that may cover technology that may be required to implement - this standard. Please address the information to the IETF at ietf- - ipr@ietf.org. - - Disclaimer of Validity - - 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. - - Copyright Statement - - 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. - - Acknowledgment - - Funding for the RFC Editor function is currently provided by the - Internet Society. - - - - - - - - - - - - - - -Hajjeh, et. al. Informational - Expires June 2005 [Page 9] - |