5 Internet-Draft M. Brown
6 November 2006 RedPhone Security
7 Expires: May 2007 R. Housley
11 Transport Layer Security (TLS) Evidence Extensions
12 <draft-housley-evidence-extns-01.txt>
18 By submitting this Internet-Draft, each author represents that any
19 applicable patent or other IPR claims of which he or she is aware
20 have been or will be disclosed, and any of which he or she becomes
21 aware will be disclosed, in accordance with Section 6 of BCP 79.
23 Internet-Drafts are working documents of the Internet Engineering
24 Task Force (IETF), its areas, and its working groups. Note that
25 other groups may also distribute working documents as Internet-
28 Internet-Drafts are draft documents valid for a maximum of six months
29 and may be updated, replaced, or obsoleted by other documents at any
30 time. It is inappropriate to use Internet-Drafts as reference
31 material or to cite them other than as "work in progress."
33 The list of current Internet-Drafts can be accessed at
34 http://www.ietf.org/ietf/1id-abstracts.txt.
36 The list of Internet-Draft Shadow Directories can be accessed at
37 http://www.ietf.org/shadow.html.
41 Copyright (C) The Internet Society (2006). All Rights Reserved.
45 This document specifies evidence creation extensions to the Transport
46 Layer Security (TLS) Protocol. Extension types are carried in the
47 client and server hello message extensions to confirm that both
48 parties support the protocol features needed to perform evidence
49 creation. The syntax and semantics of the evidence creation alerts
50 and messages are described in detail.
56 Brown & Housley [Page 1]
58 Internet-Draft November 2006
63 Transport Layer Security (TLS) protocol [TLS1.0][TLS1.1] is being
64 used in an increasing variety of operational environments, including
65 ones that were not envisioned when the original design criteria for
66 TLS were determined. The extensions specified in this document
67 support evidence creation in environments where the peers in the TLS
68 session cooperate to create persistent evidence of the TLS-protected
69 application data. Such evidence may be necessary to meet business
70 requirements, including regulatory requirements. Also, evidence may
71 be used in tandem with authorization information to make high
72 assurance access control and routing decisions in military and
73 government environments. Evidence created using this extension may
74 also be used to audit various aspects of the TLS handshake, including
75 the cipher suite negotiation and the use of other TLS extensions. In
76 many cases, the evidence does not need to be validated by third
77 parties; however, in other cases, the evidence might be validated by
78 third parties. To accommodate all of these situations, the evidence
79 is generated using a digital signature. Since validation of a
80 digital signature requires only public information, evidence
81 generated with this mechanism is suitable for sharing with third
84 When digital certificates are to be employed in evidence creations,
85 the client must obtain the public key certificate (PKC) for the
86 server, and the server must obtain the PKC for the client. This is
87 most easily accomplished by using the PKCs provided in the Handshake
88 Protocol Certificate messages. Further, both parties SHOULD have an
89 opportunity to validate the PKC that will be used by the other party
90 before evidence creation. Again, this is naturally accomplished
91 using the Handshake Protocol, where the TLS session can be rejected
92 if the PKC cannot be validated.
94 This document describes evidence creation TLS extensions supporting
95 both TLS 1.0 and TLS 1.1. These extensions observe the conventions
96 defined for TLS Extensions [TLSEXT]. The extensions are designed to
97 be backwards compatible, meaning that the protocol alerts and
98 messages associated with the evidence creation extensions will be
99 exchanged only if the client indicates support for them in the client
100 hello message and the server indicates support for them in the server
103 Clients typically know the context of the TLS session before it is
104 established. As a result, the client can request the use of the
105 evidence creation extensions in sessions where they might be needed.
106 Servers accept extended client hello messages, even if the server
107 does not support the all of the listed extensions. However, the
108 server will not indicate support for any extensions that are not
112 Brown & Housley [Page 2]
114 Internet-Draft November 2006
117 "understood" by the implementation. At the end of the hello message
118 exchange, the client may reject communications with servers that do
119 not support the evidence creation extensions, or the client may
120 accept the situation and proceed, whichever is appropriate.
124 The syntax for the evidence creation messages is defined using the
125 TLS Presentation Language, which is specified in Section 4 of
128 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
129 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
130 document are to be interpreted as described in RFC 2119 [STDWORDS].
134 Figure 1 illustrates the placement of the evidence creation alerts
135 and messages in the TLS session. The first pair of evidence creation
136 alerts indicates the beginning of the protected content that will be
137 covered by the evidence. The first pair of alerts can appear any
138 place after the TLS Handshake Protocol Finished messages, which
139 ensures that they are integrity protected. The second pair of
140 evidence creation alerts indicates the ending of the protected
141 content that will be covered by the evidence. Immediately after the
142 reception of the final alert, a pair of Evidence Protocol messages is
143 exchanged to create the persistent evidence.
145 Generating evidence is not compatible with Diffie-Hellman Ephemeral
146 (DHE) key exchanges. DHE does not permit the same keying material to
147 be generated for validation of the evidence after the TLS session is
148 over. Persistent evidence requires the use of a digital signature so
149 that it can be validated well after the TLS session is over.
151 The ClientHello message includes an indication that the evidence
152 creation messages are supported. The ServerHello message also
153 includes an indication that the evidence creation messages are
154 supported. Both the client and the server MUST indicate support for
155 the evidence protocol alerts and messages; otherwise they MUST NOT be
156 employed by either the client or the server.
168 Brown & Housley [Page 3]
170 Internet-Draft November 2006
175 ClientHello -------->
180 <-------- ServerHelloDone
188 Application Data <-------> Application Data
189 Alert(evidence_start1) -------->
191 <-------- Alert(evidence_start2)
193 Application Data <-------> Application Data
194 Alert(evidence_end1) -------->
196 <-------- Alert(evidence_end2)
197 EvidenceRequest -------->
198 <-------- EvidenceResponse
199 Application Data <-------> Application Data
201 * Indicates optional or situation-dependent messages that
203 + Indicates messages optional to the TLS handshake that
204 MUST be sent when using TLS evidence.
207 Figure 1. Example TLS Session with Evidence Creation.
224 Brown & Housley [Page 4]
226 Internet-Draft November 2006
229 2. Evidence Extension Types
231 The general extension mechanisms enable clients and servers to
232 negotiate whether to use specific extensions, and how to use specific
233 extensions. As specified in [TLSEXT], the extension format used in
234 the extended client hello message and extended server hello message
235 within the TLS Handshake Protocol is:
238 ExtensionType extension_type;
239 opaque extension_data<0..2^16-1>;
242 The extension_type identifies a particular extension type, and the
243 extension_data contains information specific to the particular
246 As specified in [TLSEXT], for all extension types, the extension type
247 MUST NOT appear in the extended server hello message unless the same
248 extension type appeared in the preceding client hello message.
249 Clients MUST abort the handshake if they receive an extension type in
250 the extended server hello message that they did not request in the
251 preceding extended client hello message.
253 When multiple extensions of different types are present in the
254 extended client hello message or the extended server hello message,
255 the extensions can appear in any order, but there MUST NOT be more
256 than one extension of the same type.
258 This document specifies the use of the evidence_creation extension
259 type. This specification adds one new type to ExtensionType:
262 evidence_creation(TBD), (65535)
265 The evidence_creation extension is relevant when a session is
266 initiated and also for any subsequent session resumption. However, a
267 client that requests resumption of a session does not know whether
268 the server has maintained all of the context necessary to accept this
269 request, and therefore the client SHOULD send an extended client
270 hello message that includes the evidence_creation extension type.
271 This indicates that the client requests the server's continued
272 cooperation in creating evidence. If the server denies the
273 resumption request, then the evidence_creation extension will be
274 negotiated normally using the full Handshake protocol.
276 Clients MUST include the evidence_creation extension in the extended
280 Brown & Housley [Page 5]
282 Internet-Draft November 2006
285 client hello message to indicate their desire to send and receive
286 evidence creation alerts and messages. The extension_data field
287 indicates the evidence creation algorithms that are supported. The
288 format is indicated with the EvidenceCreateList type:
290 uint16 EvidenceCreateSuite[2];
293 EvidenceCreateSuite evidence_suites<2..2^16-1>;
294 } EvidenceCreateList;
296 The EvidenceCreateList enumerates the evidence creation algorithms
297 that are supported by the client. The client MUST order the entries
298 from most preferred to least preferred, but all of the entries MUST
299 be acceptable to the client. Values are defined in Appendix A, and
300 others can be registered in the future.
302 Servers that receive an extended client hello message containing the
303 evidence_creation extension MUST respond with the evidence_creation
304 extension in the extended server hello message if the server is
305 willing to send and receive evidence creation alerts and messages.
306 The evidence_creation extension MUST be omitted from the extended
307 server hello message if the server is unwilling to send and receive
308 using one of the evidence creation algorithm suites identified by the
309 client. The extension_data field indicates the evidence creation
310 algorithm suite that the server selected from the list provided by
311 the client. The format is indicated with the EvidenceCreateSuite
316 This document specifies the use of four new alert message
317 descriptions: the evidence_start1, evidence_start2, evidence_end1,
318 and evidence_end2. These descriptions are specified in Sections 3.1,
319 3.2, 3.3, and 3.4, respectively. The alert descriptions are
320 presented below in the order they MUST be sent; sending alerts in an
321 unexpected order results in a fatal error. These descriptions are
322 always used with the warning alert level. This specification adds
323 four new types to AlertDescription:
326 evidence_start1(TBD),
327 evidence_start2(TBD),
330 evidence_failure(TBD),
336 Brown & Housley [Page 6]
338 Internet-Draft November 2006
341 3.1. The evidence_start1 Description
343 The client and the server need to synchronize evidence creation.
344 Either party may indicate the desire to start creating evidence by
345 sending the evidence_start1 alert. If the other party is ready to
346 begin creating evidence, then the other party MUST send an
347 evidence_start2 alert in response to the evidence_start1 alert that
348 was sent. If the other party is unwilling to begin creating
349 evidence, the other party MUST respond with fatal
350 evidence_failure(TBD) alert and terminate the TLS session.
352 Evidence may be collected more than once during a TLS session;
353 however, evidence gathering MUST NOT be nested. That is, a party
354 sending the a second evidence_start1 alert before evidence_end2 alert
355 has occurred and the evidence protocol has completed is a protocol
356 violation. Reception of an evidence_start1 alert that would result
357 in evidence nesting MUST be responded to with a fatal
358 evidence_failure(TBD) alert and terminating the TLS session.
360 Digital signatures are used in evidence creation. If an
361 evidence_start1 alert is received before the other party has provided
362 a valid PKC, then the evidence_start1 alert recipient MUST terminate
363 the TLS session using a fatal certificate_unknown alert.
365 3.2. The evidence_start2 Description
367 The evidence_start2 alert is sent in response to the evidence_start1
368 alert. By sending the evidence_start2 alert, the sending party
369 indicates that they are also ready to begin creating evidence. After
370 this pair of alerts is exchanged, both the client and the server use
371 the hash function indicated in the extended server hello message to
372 start computing the evidence. Each party computes two independent
373 hash values: one for each octet that is written, and one for each
376 Digital signatures are used in evidence creation. If an
377 evidence_start2 alert is received before the other party has provided
378 a valid PKC, then the evidence_start2 alert recipient MUST terminate
379 the TLS session using a fatal certificate_unknown alert.
381 3.3. The evidence_end1 Description
383 Either party may initiate the closure of an evidence-creating
384 interval and the exchange of evidence messages by sending the
385 evidence_end1 alert. Upon sending evidence_end1, the sender MUST not
386 send any more application data on this connection until the Evidence
387 Protocol messages are exchanged.
392 Brown & Housley [Page 7]
394 Internet-Draft November 2006
397 The evidence_end1 alert sender MAY initiate the Evidence Protocol as
398 described in Section 4 at any time following this alert. The
399 evidence_end1 alert sender SHOULD ensure that it has received all
400 pending application data writes from the other party before
401 initiating the Evidence Protocol. One way to ensure that all of the
402 application data has been received it to wait for the receipt of an
403 evidence_end2 alert. If the Evidence Protocol begins before all of
404 the application data is available, the result will be a fatal
405 evidence_failure(TBD) alert when signature verification fails.
407 3.4. The evidence_end2 Description
409 The evidence_end2 alert is sent in response to the evidence_end1
410 alert. The evidence_end1 alert receiver SHOULD complete any pending
411 writes. The intent is to include any application data that would be
412 sent in response to application data that was received before the
413 evidence_end1 alert as part of evidence creation. Once the pending
414 writes are complete, the evidence_end1 alert receiver sends the
417 At this point, each party completes the hash value computations.
419 The evidence_end2 alert receiver MUST respond by initiating the
420 Evidence Protocol as described in Section 4, if it has not already
423 3.5. The evidence_failure Description
425 The evidence_failure fatal alert is sent to indicate a failure in
426 evidence creation. During evidence synchronization, this alert
427 indicates that the sending party is unwilling to begin evidence
428 creation. During the Evidence Protocol, this alert indicates that
429 the evidence provided by the other party is not acceptable or cannot
434 This document specifies an additional TLS Protocol: the Evidence
435 Protocol. It is used to create persistent evidence of the TLS
436 session content. This specification adds one new Record layer
448 Brown & Housley [Page 8]
450 Internet-Draft November 2006
453 Persistence evidence of the TLS session content is produced by the
454 TLS Evidence Protocol. Evidence messages are supplied to the TLS
455 Record Layer, where they are encapsulated within one or more
456 TLSPlaintext structures, which are processed and transmitted as
457 specified by the current active session state.
459 The Evidence Protocol structure follows:
462 request(1), response(2), (255)
466 EvidenceMsgType evidence_msg_type;
467 uint24 length; /* number of octets in message */
468 select (EvidenceMsgType) {
469 case request: EvidenceRequest;
470 case response: EvidenceResponse;
474 The Evidence Protocol messages are presented below in the order they
475 MUST be sent; sending evidence messages in an unexpected order
476 results in a fatal unexpected_message(10) alert. The EvidenceRequest
477 message and the EvidenceResponse message are specified in Section 4.2
478 and Section 4.3, respectively. Section 4.1 describes structures that
479 are used in the EvidenceRequest and EvidenceResponse messages.
481 4.1. Certificates and Digital Signatures
483 The evidence Protocol makes use of the ASN.1Cert definition used
484 elsewhere in TLS. It is repeated here for convenience.
486 opaque ASN.1Cert<1..2^24-1>;
504 Brown & Housley [Page 9]
506 Internet-Draft November 2006
509 The EvidenceSignature definition is very similar to the Signature
510 definition used elsewhere in TLS. The EvidenceSignature definition
511 signs hash[hash_size], but the Signature definition used elsewhere in
512 TLS signs a combination of an md5_hash and a sha_hash. Also, the
513 EvidenceSignature definition excludes the anonymous case.
515 enum { rsa, dsa, ecdsa } EvidenceSignatureAlgorithm;
517 select (EvidenceSignatureAlgorithm)
519 digitally-signed struct {
520 opaque hash[hash_size];
523 digitally-signed struct {
524 opaque hash[hash_size];
527 digitally-signed struct {
528 opaque hash[hash_size];
532 The hash algorithm and the hash_size depend on evidence create
533 algorithm suite selected by the server in the evidence_creation
536 4.2. EvidenceRequest Message
538 The EvidenceRequest message contains the evidence_end1 alert sender's
539 contribution to the persistent evidence. It employs the evidence
540 create algorithm suite selected by the server in the
541 evidence_creation extension in the extended server hello message.
544 Evidence evidence<1..2^16-1>;
545 ASN.1Cert party1_certificate;
546 EvidenceSignature party1_signature;
560 Brown & Housley [Page 10]
562 Internet-Draft November 2006
566 EvidenceCreateSuite evidence_suite;
567 uint64 gmt_unix_time;
568 uint64 app_data_sent_offset;
569 uint64 app_data_received_offset;
570 opaque handshake_protocol_hash<1..512>;
571 opaque app_data_sent_hash<1..512>;
572 opaque app_data_received_hash<1..512>;
575 The elements of the EvidenceRequest structure are described below:
578 Contains an evidence create algorithm identifier, a timestamp,
579 and three hash values in the Evidence structure as described
583 Contains the X.509 certificate of the signer. While this
584 certificate was probably exchanged and validated in the
585 Handshake Protocol, inclusion here makes it clear which
586 certificate was employed by the signer when the evidence is
587 validated in the future, possibly by a third party.
590 Contains the digital signature computed by the sender of the
591 evidence_end1 alert using the evidence creation algorithm suite
592 identified in evidence_create_suite. The hash value is
597 The elements of the Evidence structure are described below:
600 Indicates the evidence creation algorithm suite selected by the
601 server in the evidence_creation extension in the Handshake
602 Protocol. This value determines the structure of the hash
603 values and digital signatures.
606 Indicates the current date and time according to the local
607 system clock used by the sender of the evidence_end1 alert.
608 This time value is intended to represent the moment in time
609 that evidence_end1 was sent. Unlike other places in the TLS
610 protocol, a 64-bit value is used to ensure that time values do
616 Brown & Housley [Page 11]
618 Internet-Draft November 2006
622 Indicates the number of octets that were sent as part of this
623 TLS session before evidence collection began.
625 app_data_received_offset
626 Indicates the number of octets that were received as part of
627 this TLS session before evidence collection began.
629 handshake_protocol_hash
632 Hash(handshake_messages),
634 where handshake_messages refers to all Handshake Protocol
635 messages sent or received, beginning with the most recent
636 client hello message. If the double handshake mechanism
637 described in the security considerations of [TLSAUTHZ] is used
638 to encrypt the Handshake Protocol, the plaintext form of these
639 messages is used in calculating this hash value.
641 Verification of the handshake_protocol_hash is performed using
642 the plaintext form of the Handshake protocol messages. For
643 this hash value to be validated at a later time, this
644 information must be saved as part of the overall evidence. Any
645 attempt to save this data must ensure that it is not
646 inappropriately disclosed by employing suitable physical
647 protection or cryptographic mechanisms that are at least as
648 strong as the selected TLS ciphersuite. Suitable controls are
649 discussed further in the Security Considerations; see Section
652 In the case of successful TLS session resumption, the most
653 recent client hello message will contain a valid
654 ClientHello.session_id value as well as extensions, and these
655 extensions may include sensitive data. The TLS Authorization
656 Extension [AUTHZ] is one example where an extension might
657 contain sensitive information. Thus, even when session
658 resumption is employed, the content of the Handshake protocol
659 messages ought to be protected.
661 TLS users should ensure that the content of the Handshake
662 protocol messages contain sufficient evidence to determine the
663 intent of the signers, where "signers" are defined as the
664 subject identities in the exchanged X.509 certificates.
665 Clients and servers MAY record the protocol messages containing
666 an expression of the intent of the signers using a suitable TLS
667 extension [TLSEXT], such as [TLSAUTHZ]. For example, a client
668 may request access to a resource provided by the server,
672 Brown & Housley [Page 12]
674 Internet-Draft November 2006
677 provide sufficient authentication and authorization information
678 grounds to convince the server to grant the requested access,
679 and receive an affirmative response from the server. A record
680 of TLS Handshake protocol messages representing this example
681 may provide a sufficient record of the intent of both the
682 client and the server.
687 Hash(sent_application_data),
689 where sent_application_data refers to all of the Application
690 Data messages sent since the most recent evidence_start1 or
691 evidence start2 alert was sent, and ending with the sending of
692 the evidence_end1 alert. The alerts are not application data,
693 and they are not included in the hash computation.
695 app_data_received_hash
698 Hash(received_application_data),
700 where received_application_data refers to all of the
701 Application Data messages received since the most recent
702 evidence_start1 or evidence start2 alert was received, and
703 ending with the receipt of the evidence_end2 alert. The alerts
704 are not application data, and they are not included in the hash
707 4.3. EvidenceResponse Message
709 The EvidenceResponse message contains the complete persistent
710 evidence. The value is saved by one or both parties as evidence of
711 the TLS session content identified by the evidence_start1,
712 evidence_start2, evidence_end1, and evidence_end2 alerts.
715 Evidence evidence<1..2^16-1>;
716 ASN.1Cert party1_certificate;
717 EvidenceSignature party1_signature;
718 ASN.1Cert party2_certificate;
719 EvidenceSignature party2_signature;
728 Brown & Housley [Page 13]
730 Internet-Draft November 2006
733 The elements of the EvidenceResponse structure are described below:
736 Contains an evidence create algorithm identifier, a timestamp,
737 and three hash values in the Evidence structure as described in
738 section 4.2. The evidence creation algorithm MUST match the
739 evidence create algorithm suite selected by the server in the
740 evidence_creation extension in the extended server hello
741 message. The timestamp MUST be acceptable to the
742 EvidenceRequest recipient as the same value is provided in the
743 EvidenceResponse message. The three hash values received in
744 the EvidenceRequest message MUST match locally computed values
745 over the same data. Note that the app_data_sent_hash and the
746 app_data_received_hash values represent the session from the
747 perspective of the EvidenceRequest originator, and the values
748 are not swapped to represent the EvidenceRequest recipient
749 perspective. If any of these conditions is not met, then the
750 EvidenceResponse message MUST NOT be sent, and the TLS session
751 MUST be closed immediately after sending a fatal
752 evidence_failure(TBD) alert.
755 Contains the X.509 certificate of the sender of the
756 evidence_end1 alert. If this certificate cannot be validated,
757 then TLS session must be closed immediately after sending one
758 of the following fatal alerts: bad_certificate(42),
759 unsupported_certificate(43), certificate_revoked(44), or
760 certificate_expired(45). These alerts are described in Section
764 Contains the digital signature computed by the sender of the
765 evidence_end1 alert. If this signature cannot be validated,
766 then TLS session must be closed immediately after sending a
767 fatal evidence_failure(TBD) alert.
770 Contains the X.509 certificate of the sender of the
771 evidence_end2 alert. While this certificate was probably
772 exchanged and validated in the Handshake Protocol, inclusion
773 here make it clear which certificate was employed by the signer
774 when the evidence is validated in the future, possibly by a
784 Brown & Housley [Page 14]
786 Internet-Draft November 2006
790 Contains the digital signature computed by the sender of the
791 evidence_end2 alert using the evidence creation algorithm suite
792 identified in evidence_suite. The hash value is computed as:
796 5. IANA Considerations
798 This document defines one TLS extension: evidence_creation(TBD).
799 This extension type value is assigned from the TLS Extension Type
800 registry defined in [TLSEXT].
802 This document defines five TLS alert descriptions: the
803 evidence_start1(TBD), evidence_start2(TBD), evidence_end1(TBD),
804 evidence_end2(TBD), and evidence_failure(TBD). These alert
805 descriptions are assigned from the TLS Alert registry defined in
808 This document defines one TLS ContentType: evidence(TBD). This
809 ContentType value is assigned from the TLS ContentType registry
812 This document establishes a registry for TLS Evidence Protocol
813 EvidenceMsgType. The first two entries in the registry are
814 request(1) and response(2). All additional TLS Evidence Protocol
815 EvidenceMsgType values are assigned by Standards Action as described
818 This document establishes a registry for Evidence Create Algorithm
819 suite identifiers. Appendix A lists the initial values for this
820 registry. Evidence Create Algorithm suite identifier values with the
821 first byte in the range 0-191 (decimal) inclusive are assigned by
822 Standards Action as described in [IANA]. Values with the first byte
823 in the range 192-254 (decimal) are assigned by Specification Required
824 as described in [IANA]. Values with the first byte 255 (decimal) are
825 reserved for Private Use as described in [IANA].
827 6. Security Considerations
829 This document describes an extension to the TLS protocol, and the
830 security considerations in [TLS1.1] and [TLSEXT] apply.
831 Additionally, temporal and storage security considerations are
840 Brown & Housley [Page 15]
842 Internet-Draft November 2006
845 6.1. Temporal Considerations
847 Generating evidence that covers Application Data values that do not
848 explicitly or implicitly indicate the point in time at which the
849 Application Data was transferred over the TLS session might give rise
850 to replay attacks, post-dating, pre-dating, or other temporal
851 disputes. To avoid these concerns, the evidence includes an
852 indication of the date and time. The TLS implementation MUST NOT
853 attempt to extract date and time values from the Application Data;
854 doing so is likely to be error prone. Instead, the date and time
855 SHOULD come from a local clock or a trustworthy time server. Date
856 and time are provided by one of the parties, and the other party
857 determines that the date and time value is sufficiently accurate.
859 When a more highly trusted time source is needed, the Time-Stamp
860 Protocol [TSP] can be used to obtain a time-stamp on the evidence
861 from a trusted third party.
863 6.2. Storage Considerations
865 Parties that choose to preserve a plaintext record of Application
866 Data or Handshake Protocol messages for evidence verification at a
867 later time must ensure must ensure that this data is not
868 inappropriately disclosed by employing suitable physical protection
869 or cryptographic mechanisms that are at least as strong as the
870 selected TLS ciphersuite.
872 Suitable physical controls for the protection of Application Data or
873 Handshake Protocol messages containing keying material or sensitive
874 data should use removable storage media in conjunction with durable,
875 locking storage containers. If the removable media is transferred
876 from one location to another or backup copies are made, secure
877 handling protections ought to be employed, which might include the
878 use of insured or bonded couriers.
880 A suitable cryptographic mechanism provides confidentiality
881 protection, since the hash value in the evidence itself provides
882 integrity protection. One reasonable solution is to encrypt the
883 Handshake Protocol messages and Application Data messages with a
884 fresh symmetric encryption key using the same algorithm that was
885 negotiated for the selected TLS ciphersuite. The key generation
886 should follow the recommendations in [RANDOM]. Then, the symmetric
887 key is encrypted for storage with the party's RSA public key or long-
888 lived key-encryption key. The Cryptographic Message Syntax (CMS)
889 [CMS] offers a convenient way to keep all of this information
896 Brown & Housley [Page 16]
898 Internet-Draft November 2006
901 An alternative cryptographic mechanism is to save the TLS session
902 itself. The negotiated TLS ciphersuite was already used to protect
903 the Application Data messages, and the Handshake Protocol messages
904 contain the keying material necessary to decrypt them if the party
905 retains the private keys and/or pre-shared secrets.
909 7.1. Normative References
911 [IANA] Narten, T., and H. Alvestrand, "Guidelines for Writing
912 an IANA Considerations Section in RFCs", RFC 3434,
915 [DSS] Federal Information Processing Standards Publication
916 (FIPS PUB) 186, Digital Signature Standard, 2000.
918 [PKCS1] Kaliski, B., "PKCS #1: RSA Encryption Version 1.5",
919 RFC 2313, March 1998.
921 [PKIX1] Housley, R., Polk, W., Ford, W. and D. Solo, "Internet
922 Public Key Infrastructure - Certificate and
923 Certificate Revocation List (CRL) Profile", RFC 3280,
926 [TLS1.0] Dierks, T., and C. Allen, "The TLS Protocol, Version 1.0",
927 RFC 2246, January 1999.
929 [TLS1.1] Dierks, T., and E. Rescorla, "The Transport Layer Security
930 (TLS) Protocol, Version 1.1", RFC 4346, April 2006.
932 [TLSEXT] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J.,
933 and T. Wright, "Transport Layer Security (TLS) Extensions",
934 RFC 4366, April 2006.
936 [SHA] Federal Information Processing Standards Publication
937 (FIPS PUB) 180-2, Secure Hash Algorithm, 2002.
939 [STDWORDS] Bradner, S., "Key words for use in RFCs to Indicate
940 Requirement Levels", BCP 14, RFC 2119, March 1997.
942 [X9.62] X9.62-1998, "Public Key Cryptography For The Financial
943 Services Industry: The Elliptic Curve Digital
944 Signature Algorithm (ECDSA)", January 7, 1999.
952 Brown & Housley [Page 17]
954 Internet-Draft November 2006
957 7.2. Informative References
959 [AUTHZ] Brown, M., and R. Housley, "Transport Layer Security
960 (TLS) Authorization Extensions", work in progress,
961 draft-housley-tls-authz-extns.
963 [CMS] Housley, R., "Cryptographic Message Syntax (CMS)",
966 [TSP] Adams, C., Cain, P., Pinkas, D., and R. Zuccherato,
967 "Internet X.509 Public Key Infrastructure: Time-Stamp
968 Protocol (TSP)", RFC 3161,August 2001.
972 Thanks to C. Robert Beattie, J.D. and Randy V. Sabett, J.D., CISSP
973 for their observations and comparisons between the Uniform Electronic
974 Transactions Act (1999) prepared by the National Conference of
975 Commissioners on Uniform State Laws versus the American Bar
976 Association's Digital Signature Guidelines (1996), their observations
977 regarding the strengths and weaknesses of these two approaches, and
978 their desire to promote trust and reduce potential for litigation in
979 online transactions. Their pro bono contribution of time and
980 expertise deserves recognition.
982 This material is based, in part, upon work supported by the United
983 States Navy Space and Naval Warfare Systems Command under Contract
984 No. N00039-06-C-0097.
1008 Brown & Housley [Page 18]
1010 Internet-Draft November 2006
1013 Appendix A. Evidence Create Algorithms
1015 The following values define the EvidenceCreateSuite identifiers used
1016 in the TLS Evidence Extensions.
1018 An EvidenceCreateSuite defines a cipher specification supported by
1019 TLS Evidence Extensions. A suite identifier names a public key
1020 signature algorithm and an associated one-way hash function. A
1021 registration is named as follows:
1023 <SignatureAlgorithm>_WITH_<HashFunction>
1025 These components have the following meaning:
1027 <SignatureAlgorithm>
1028 Specifies the digital signature algorithm and key length
1029 associated with the algorithm. It is used to digitally sign
1030 the evidence. The "RSA_1024" value indicates the use of the
1031 PKCS#1 v1.5 [PKCS1] digital signature algorithm using a
1032 1024-bit public key. The "DSS_1024" value indicates the use of
1033 the DSS digital signature algorithm [DSS] with a 1024-bit
1034 public key. The "ECDSA_P384" value indicates the use of the
1035 ECDSA digital signature algorithm [X9.62] using the P-384 named
1039 Specifies the one-way hash function used as part of the digital
1040 signature. The "SHA_1", "SHA_224", "SHA_256", "SHA_384", and
1041 "SHA_512" values identify members of the Secure Hash Algorithm
1042 family of one-way- hash functions [SHA].
1044 In most cases it will be appropriate to use the same algorithms and
1045 certified public keys that were negotiated in the TLS Handshake
1046 Protocol. The following additional steps are required in order to
1047 employ the digital signature aspects of a TLS CipherSuite to a valid
1048 EvidenceCreateSuite:
1050 1) CipherSuites that do not include signature-capable certificates
1051 cannot be used as EvidenceCreateSuite.
1053 2) CipherSuites that specify the use of MD5 one-way hash function
1054 should not be used as EvidenceCreateSuite.
1056 Of course, any aspect of a CipherSuite that deals with symmetric
1057 ciphers and symmetric cipher key lengths is not relevant to the
1058 EvidenceCreateSuite.
1064 Brown & Housley [Page 19]
1066 Internet-Draft November 2006
1069 All public key certificate profiles used in TLS are defined by the
1070 IETF PKIX working group in [PKIX1]. When a key usage extension is
1071 present, then either the digitalSignature bit or the nonRepudiation
1072 bit MUST be set for the public key to be eligible for signing
1073 evidence. If both bits are set, then this requirement is satisfied.
1075 The following EvidenceCreateSuite definitions are made at this time.
1076 Section 5 specifies the procedures for registering additional
1077 EvidenceCreateSuite definitions.
1079 EvidenceCreateSuite RSA_1024_WITH_SHA_1 = { 0x00, 0x01 };
1080 EvidenceCreateSuite RSA_1024_WITH_SHA_256 = { 0x00, 0x02 };
1081 EvidenceCreateSuite RSA_2048_WITH_SHA_256 = { 0x00, 0x03 };
1083 EvidenceCreateSuite DSS_1024_WITH_SHA_1 = { 0x00, 0x11 };
1084 EvidenceCreateSuite DSS_2048_WITH_SHA_256 = { 0x00, 0x12 };
1086 EvidenceCreateSuite ECDSA_P256_WITH_SHA_256 = { 0x00, 0x21 };
1087 EvidenceCreateSuite ECDSA_P384_WITH_SHA_384 = { 0x00, 0x22 };
1088 EvidenceCreateSuite ECDSA_P521_WITH_SHA_512 = { 0x00, 0x23 };
1120 Brown & Housley [Page 20]
1122 Internet-Draft November 2006
1130 Saint Paul, MN 55105
1132 mark <at> redphonesecurity <dot> com
1136 918 Spring Knoll Drive
1139 housley <at> vigilsec <dot> com
1141 Full Copyright Statement
1143 Copyright (C) The Internet Society (2006). This document is subject
1144 to the rights, licenses and restrictions contained in BCP 78, and
1145 except as set forth therein, the authors retain all their rights.
1147 This document and translations of it may be copied and furnished to
1148 others, and derivative works that comment on or otherwise explain it
1149 or assist in its implementation may be prepared, copied, published
1150 and distributed, in whole or in part, without restriction of any
1151 kind, provided that the above copyright notice and this paragraph are
1152 included on all such copies and derivative works. However, this
1154 document itself may not be modified in any way, such as by removing
1155 the copyright notice or references to the Internet Society or other
1156 Internet organizations, except as needed for the purpose of
1157 developing Internet standards in which case the procedures for
1158 copyrights defined in the Internet Standards process must be
1159 followed, or as required to translate it into languages other than
1162 This document and the information contained herein are provided on an
1163 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1164 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
1165 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
1166 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
1167 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1168 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1176 Brown & Housley [Page 21]