| < draft-hartke-dice-profile-02.txt | draft-hartke-dice-profile-03.txt > | |||
|---|---|---|---|---|
| DICE Working Group K. Hartke, Ed. | dice K. Hartke | |||
| Internet-Draft Universitaet Bremen TZI | Internet-Draft Universitaet Bremen TZI | |||
| Intended status: Informational December 19, 2013 | Intended status: Informational H. Tschofenig | |||
| Expires: June 22, 2014 | Expires: August 18, 2014 ARM Ltd. | |||
| February 14, 2014 | ||||
| A DTLS Profile for the Internet of Things | A DTLS 1.2 Profile for the Internet of Things | |||
| draft-hartke-dice-profile-02 | draft-hartke-dice-profile-03 | |||
| Abstract | Abstract | |||
| This document defines a DTLS profile that is suitable for Internet of | This document defines a DTLS profile that is suitable for Internet of | |||
| Things applications and is reasonably implementable on many | Things applications and is reasonably implementable on many | |||
| constrained devices. | constrained devices. | |||
| Disclaimer | ||||
| This is a very early, very rough draft. At this stage, the draft is | ||||
| not intended to make any specific proposal for a profile, but aims to | ||||
| create a shared understanding of what a DTLS profile defines. No | ||||
| security analysis has been performed. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on June 22, 2014. | This Internet-Draft will expire on August 18, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2014 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. The Communication Model . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. Applicability . . . . . . . . . . . . . . . . . . . . . . 3 | 3. The Ciphersuite Concept . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.2. Cipher Suites . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Pre-Shared Secret Authentication with DTLS . . . . . . . . . 6 | |||
| 2.3. Extensions . . . . . . . . . . . . . . . . . . . . . . . 3 | 5. Raw Public Key Use with DTLS . . . . . . . . . . . . . . . . 8 | |||
| 2.4. Other . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 6. Certificate Use with DTLS . . . . . . . . . . . . . . . . . . 10 | |||
| 3. Implementation Considerations . . . . . . . . . . . . . . . . 4 | 7. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 5 | 8. Session Resumption . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 9. TLS Compression . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 10. Perfect Forward Secrecy . . . . . . . . . . . . . . . . . . . 13 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 | 11. Keep-Alive . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 12. Negotiation and Downgrading Attacks . . . . . . . . . . . . . 14 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 5 | 13. Privacy Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 6 | 14. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 | 15. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 16. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
| 17. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | ||||
| 17.1. Normative References . . . . . . . . . . . . . . . . . . 16 | ||||
| 17.2. Informative References . . . . . . . . . . . . . . . . . 17 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| 1. Introduction | 1. Introduction | |||
| This document defines a DTLS 1.2 [RFC6347] profile that enables | This document defines a DTLS 1.2 [RFC6347] profile that offers | |||
| secure and private exchange of information in Internet of Things | communication security for Internet of Things (IoT) applications and | |||
| applications and is reasonably implementable on many constrained | is reasonably implementable on many constrained devices. It aims to | |||
| devices. | meet the following goals: | |||
| o One-stop list of RFCs to be implemented. | o One-stop shop for implementers through the specification jungle. | |||
| o No changes to TLS or DTLS. | o This document does not alter the DTLS 1.2 specification. | |||
| o No new extensions defined by the profile. | o This document does not introduce new extensions. | |||
| o No negotiation of the profile between client and server. | o This profile aligns with the DTLS security modes of the | |||
| Constrained Application Protocol (CoAP) [I-D.ietf-core-coap]. | ||||
| o Profile avoids doing things the TLS WG decided not to do. | DTLS is used to secure a number of applications run over an | |||
| unreliable datagram transport. CoAP [I-D.ietf-core-coap] is one such | ||||
| protocol and has been designed specifically for use in IoT | ||||
| environments. CoAP can be secured using a number of different ways, | ||||
| also called security modes. These security modes are: | ||||
| o Profile aligns with the DTLS security modes of the Constrained | No Security Protection at the Transport Layer: No DTLS is used but | |||
| Application Protocol (CoAP) [I-D.ietf-core-coap]. | instead application layer security functionality is assumed. | |||
| o Profile takes advantage of existing hardware support where | Shared Secret-based DTLS Authentication: DTLS supports the use of | |||
| possible. | shared secrets [RFC4279]. This credential is useful if the number | |||
| of communication relationships between the IoT device and servers | ||||
| is small and for very constrained devices. Shared secret-based | ||||
| authentication mechanisms offer good performance and require a | ||||
| minimum of data to be exchanged. | ||||
| o Document includes a brief discussion of extensions not included. | DTLS Authentication using Asymmetric Credentials: TLS supports | |||
| client and server authentication using asymmetric credentials. | ||||
| Two approaches for validating these public key are available. | ||||
| First, [I-D.ietf-tls-oob-pubkey] allows raw public keys to be used | ||||
| in TLS without the overhead of certificates. This approach | ||||
| requires out-of-band validation of the public key. Second, the | ||||
| use of X.509 certificates [RFC5280] with TLS is common on the Web | ||||
| today (at least for server-side authentication) and certain IoT | ||||
| environments may also re-use those capabilities. Certificates | ||||
| bind an identifier to the public key signed by a certification | ||||
| authority (CA). A trust anchor store has to be provisioned on the | ||||
| device to indicate what CAs are trusted. Furthermore, the | ||||
| certificate may contain a wealth of other information used to make | ||||
| authorization decisions. | ||||
| 2. Profile | As described in [I-D.ietf-lwig-tls-minimal] an application designer | |||
| developing an IoT device needs to think about the security threats | ||||
| that need to be mitigated. For many Internet connected devices it | ||||
| is, however, likely that authentication of the device and the server | ||||
| infrastructure will be required. Along with the ability to upload | ||||
| sensor data and to retrieve configuration information the need for | ||||
| integrity and confidentiality protection will arise. While these | ||||
| security services can be provided at different layers in the protocol | ||||
| stack the use of channel security, as offered by DTLS, has been very | ||||
| popular on the Internet and it is likely to be useful for IoT | ||||
| scenarios as well. In case the channel security features offered by | ||||
| DTLS meet the security requirements of your application the remainder | ||||
| of the document might offer useful guidance. | ||||
| 2.1. Applicability | Not every IoT deployment will use CoAP but the discussion regarding | |||
| choice of credentials and cryptographic algorithms will be very | ||||
| similar. As such, the discussions in this document are applicable | ||||
| beyond the use of the CoAP protocol. | ||||
| o Communication Model | The design of DTLS is intentionally very similar to TLS. Since DTLS | |||
| operates on top of an unreliable datagram transport a few | ||||
| enhancements to the TLS structure are, however necessary. RFC 6347 | ||||
| explains these differences in great detail. As a short summary, for | ||||
| those familiar with TLS the differences are: | ||||
| o Threat Model | o An explicit sequence number and an epoch field is included in the | |||
| TLS Record Layer. Section 4.1 of RFC 6347 explains the processing | ||||
| rules for these two new fields. The value used to compute the MAC | ||||
| is the 64-bit value formed by concatenating the epoch and the | ||||
| sequence number. | ||||
| o Security Requirements | o Stream ciphers must not be used with DTLS. The only stream cipher | |||
| defined for TLS 1.2 is RC4. | ||||
| o Classes of Devices [I-D.ietf-lwig-terminology] | o The TLS Handshake Protocol has been enhanced to include a | |||
| stateless cookie exchange for Denial of Service (DoS) resistance. | ||||
| Furthermore, the header has been extended to deal with message | ||||
| loss, reordering, and fragmentation. Retransmission timers have | ||||
| been included to deal with message loss. For DoS protection a new | ||||
| handshake message, the HelloVerifyRequest, was added to DTLS. | ||||
| This handshake message is sent by the server and includes a | ||||
| stateless cookie, which is returned in a ClientHello message back | ||||
| to the server. This type of DoS protection mechanism has also | ||||
| been incorporated into the design of IKEv2. Although the exchange | ||||
| is optional for the server to execute, a client implementation has | ||||
| to be prepared to respond to it. | ||||
| o Trust Model | 2. The Communication Model | |||
| o ... | This document describes a profile of DTLS 1.2 and to be useful it has | |||
| to make assumptions about the envisioned communication architecture. | ||||
| The architecture shown in Figure 1 assumes a uni-cast communication | ||||
| interaction with an IoT device acting as a client and the client | ||||
| interacts with one or multiple servers. Which server to contact is | ||||
| based on pre-configuration onto the client (e.g., as part of the | ||||
| firmware). This configuration information also includes information | ||||
| about the PSK identity and the corresponding secret to be used with | ||||
| that specific server (in case of symmetric credentials). For | ||||
| asymmetric cryptography mutual authentication is assumed in this | ||||
| profile. For raw public keys the public key or the hash of the | ||||
| public key is assumed to be available to both parties. For | ||||
| certificate-based authentication the client may have a trust anchor | ||||
| store pre-populated, which allows the client to perform path | ||||
| validation for the certificate obtained during the handshake with the | ||||
| server. The client also needs to know which certificate or raw | ||||
| public key it has to use with a specific server. | ||||
| 2.2. Cipher Suites | This document only focuses on the description of the DTLS client-side | |||
| functionality. | ||||
| o Specific Cipher Suite(s) -vs- Cryptographic Agility | +////////////////////////////////////+ | |||
| | Configuration | | ||||
| |////////////////////////////////////| | ||||
| | Server A --> PSK Identity, PSK | | ||||
| | Server B --> Public Key (Server B),| | ||||
| | Public Key (Client) | | ||||
| | Server C --> Public Key (Client), | | ||||
| | Trust Anchor Store | | ||||
| +------------------------------------+ | ||||
| oo | ||||
| oooooo | ||||
| o | ||||
| +------+ | ||||
| |Client|--- | ||||
| +------+ \ | ||||
| \ ,-------. | ||||
| ,' `. +------+ | ||||
| / IP-based \ |Server| | ||||
| ( Network ) | A | | ||||
| \ / +------+ | ||||
| `. ,' | ||||
| '---+---' +------+ | ||||
| | |Server| | ||||
| | | B | | ||||
| | +------+ | ||||
| | | ||||
| | +------+ | ||||
| +----------------->|Server| | ||||
| | C | | ||||
| +------+ | ||||
| o Server Authentication -vs- Mutual Authentication | Figure 1: DTLS Profile: Assumed Communication Model. | |||
| o X.509 Certificates -vs- Raw Public Keys -vs- Pre-Shared Keys | A future version of this document may provide profiles for other | |||
| communication architectures. | ||||
| o Perfect Forward Secrecy | 3. The Ciphersuite Concept | |||
| o Only AEAD Cipher Suites | TLS (and consequently DTLS) introduced the concept of ciphersuites | |||
| and an IANA registry [IANA-TLS] was created to keep track of the | ||||
| specified suites. A ciphersuites (and the specification that defines | ||||
| it) contains the following information: | ||||
| o ... | o Authentication and Key Exchange Algorithm (e.g., PSK) | |||
| 2.3. Extensions | o Cipher and Key Length(e.g., AES with 128 bit keys) | |||
| o Mode of operation (e.g., CBC) | ||||
| o Signature Algorithms [RFC5246] | o Hash Algorithm for Integrity Protection (e.g., SHA in combination | |||
| with HMAC) | ||||
| o Server Name Indication [RFC6066] | o Hash Algorithm for use with the Pseudorandom Function (e.g. HMAC | |||
| with the SHA-256) | ||||
| o Maximum Fragment Length [RFC6066] | o Misc information (e.g., length of authentication tags) | |||
| o Client Certificate URLs [RFC6066] | The TLS ciphersuite TLS_PSK_WITH_AES_256_CBC_SHA, for example, uses a | |||
| pre-shared authentication and key exchange algorithm. RFC 4279, | ||||
| which defined this ciphersuite predates publication of TLS 1.2. It | ||||
| uses the Advanced Encryption Standard (AES) encryption algorithm, | ||||
| which is a block cipher. Since the AES algorithm supports different | ||||
| key lengths (such as 128, 192 and 256 bits) this information has to | ||||
| be specified as well and the selected ciphersuite supports 256 bit | ||||
| keys. A block cipher encrypts plaintext in fixed-size blocks and AES | ||||
| operates on fixed block size of 128 bits. For messages exceeding 128 | ||||
| bits, the message is partitioned into 128-bit blocks and the AES | ||||
| cipher is applied to these input blocks with appropriate chaining, | ||||
| which is called mode of operation. In our example, the mode of | ||||
| operation is cipher block chaining (CBC). Since encryption itself | ||||
| does not provide integrity protection a hash function is specified as | ||||
| well, which will be used in concert with the HMAC function. In this | ||||
| case, the Secure Hash Algorithm (SHA). | ||||
| o Truncated HMAC [RFC6066] | TLS 1.2 introduced Authenticated Encryption with Associated Data | |||
| (AEAD) ciphersuites. AEAD is a class of block cipher modes which | ||||
| encrypt (parts of) the message and authenticate the message | ||||
| simultaneously. Examples of such modes include the Counter with CBC- | ||||
| MAC (CCM) mode, and the Galois/Counter Mode (GCM). | ||||
| o Certificate Status Request [RFC6066] | TLS 1.2 also replaced the combination of MD5/SHA-1 hash functions in | |||
| the TLS pseudo random function (PRF) with cipher-suite-specified | ||||
| PRFs. For this reason authors of more recent TLS 1.2 ciphersuite | ||||
| specifications explicitly indicate the MAC algorithm and the hash | ||||
| functions used with the TLS PRF. | ||||
| o Supported Elliptic Curves [RFC4492] | 4. Pre-Shared Secret Authentication with DTLS | |||
| o Supported Point Formats [RFC4492] | The use of pre-shared secret credentials is one of the most basic | |||
| o Application Layer Protocol [I-D.ietf-tls-applayerprotoneg] | techniques for DTLS since it is both computational efficient and | |||
| bandwidth conserving. Pre-shared secret based authentication was | ||||
| introduced to TLS with RFC 4279 [RFC4279]. The exchange shown in | ||||
| Figure 2 illustrates the DTLS exchange including the cookie exchange. | ||||
| While the server is not required to initiate a cookie exchange with | ||||
| every handshake, the client is required to implement and to react on | ||||
| it when challenged. | ||||
| o Cached Info [I-D.ietf-tls-cached-info] | Client Server | |||
| ------ ------ | ||||
| ClientHello --------> | ||||
| o Session Resumption without Server-Side State [RFC5077] | <-------- HelloVerifyRequest | |||
| (contains cookie) | ||||
| o Renegotiation Indication [RFC5746] | ClientHello --------> | |||
| (with cookie) | ||||
| ServerHello | ||||
| *ServerKeyExchange | ||||
| <-------- ServerHelloDone | ||||
| ClientKeyExchange | ||||
| ChangeCipherSpec | ||||
| Finished --------> | ||||
| ChangeCipherSpec | ||||
| <-------- Finished | ||||
| o Heartbeat [RFC6520] | Application Data <-------> Application Data | |||
| o ... | Legend: | |||
| 2.4. Other | * indicates an optional message payload | |||
| o Timer Values | Figure 2: DTLS PSK Authentication including the Cookie Exchange. | |||
| o Compression | [RFC4279] does not mandate the use of any particular type of | |||
| identity. Hence, the TLS client and server clearly have to agree on | ||||
| the identities and keys to be used. The mandated encoding of | ||||
| identities in Section 5.1 of RFC 4279 aims to improve | ||||
| interoperability for those cases where the identity is configured by | ||||
| a person using some management interface. Many IoT devices do, | ||||
| however, not have a user interface and most of their credentials are | ||||
| bound to the device rather than the user. Furthermore, credentials | ||||
| are provisioned into trusted hardware modules or in the firmware by | ||||
| the developers. As such, the encoding considerations are not | ||||
| applicable to this usage environment. For use with this profile the | ||||
| PSK identities MUST NOT assume a structured format (as domain names, | ||||
| Distinguished Names, or IP addresses have) and a bit-by-bit | ||||
| comparison operation can then be used by the server-side | ||||
| infrastructure. | ||||
| o Renegotiation -vs- Reconnection | As described in Section 2 clients may have pre-shared keys with | |||
| several different servers. The client indicates which key it uses by | ||||
| including a "PSK identity" in the ClientKeyExchange message. To help | ||||
| the client in selecting which PSK identity / PSK pair to use, the | ||||
| server can provide a "PSK identity hint" in the ServerKeyExchange | ||||
| message. For Iot environments a simplifying assumption is made that | ||||
| the hint for PSK key selection is based on the domain name of the | ||||
| server. Hence, servers SHOULD NOT send the "PSK identity hint" in | ||||
| the ServerKeyExchange message and client MUST ignore the message. | ||||
| o Session Resumption (with Server-Side State) | RFC 4279 requires TLS implementations supporting PSK ciphersuites to | |||
| support arbitrary PSK identities up to 128 octets in length, and | ||||
| arbitrary PSKs up to 64 octets in length. This is a useful | ||||
| assumption for TLS stacks used in the desktop and mobile environment | ||||
| where management interfaces are used to provision identities and | ||||
| keys. For the IoT environment, however, many devices are not | ||||
| equipped with displays and input devices (e.g., keyboards). Hence, | ||||
| keys are distributed as part of hardware modules or are embedded into | ||||
| the firmware. As such, these restrictions are not applicable to this | ||||
| profile. | ||||
| o Extended Session Resumption | Constrained Application Protocol (CoAP) [I-D.ietf-core-coap] | |||
| [I-D.hummen-dtls-extended-session-resumption] | currently specifies TLS_PSK_WITH_AES_128_CCM_8 as the mandatory to | |||
| implement ciphersuite for use with shared secrets. This ciphersuite | ||||
| uses the AES algorithm with 128 bit keys and CCM as the mode of | ||||
| operation. The label "_8" indicates that an 8-octet authentication | ||||
| tag is used. This ciphersuite makes use of the default TLS 1.2 | ||||
| Pseudorandom Function (PRF), which uses HMAC with the SHA-256 hash | ||||
| function. | ||||
| o Replay Protection | 5. Raw Public Key Use with DTLS | |||
| o Certificate Revocation | The use of raw public keys with DTLS, as defined in | |||
| [I-D.ietf-tls-oob-pubkey], is the first entry point into public key | ||||
| cryptography without having to pay the price of certificates and a | ||||
| PKI. The specification re-uses the existing Certificate message to | ||||
| convey the raw public key encoded in the SubjectPublicKeyInfo | ||||
| structure. To indicate support two new TLS extensions had been | ||||
| defined as shown in Figure 3, namely the server_certificate_type and | ||||
| the client_certificate_type. To operate this mechanism securely it | ||||
| is necessary to authenticate and authorize the public keys out-of- | ||||
| band. This document therefore assumes that a client implementation | ||||
| comes with one or multiple raw public keys of servers, it has to | ||||
| communicate with, pre-provisioned. Additionally, a device will have | ||||
| its own raw public key. To replace, delete, or add raw public key to | ||||
| this list requires a software update, for example using a firmware | ||||
| update. | ||||
| o Encrypt-then-MAC [I-D.gutmann-tls-encrypt-then-mac] | Client Server | |||
| ------ ------ | ||||
| o Hash Algorithm [I-D.campagna-suitee] | ClientHello --------> | |||
| client_certificate_type | ||||
| server_certificate_type | ||||
| o ... | <------- HelloVerifyRequest | |||
| 3. Implementation Considerations | ClientHello --------> | |||
| client_certificate_type | ||||
| server_certificate_type | ||||
| o [I-D.sheffer-tls-bcp] | ServerHello | |||
| client_certificate_type | ||||
| server_certificate_type | ||||
| Certificate | ||||
| ServerKeyExchange | ||||
| CertificateRequest | ||||
| <-------- ServerHelloDone | ||||
| o [I-D.ietf-lwig-tls-minimal] | Certificate | |||
| ClientKeyExchange | ||||
| CertificateVerify | ||||
| [ChangeCipherSpec] | ||||
| Finished --------> | ||||
| o [I-D.ietf-lwig-guidance] | [ChangeCipherSpec] | |||
| <-------- Finished | ||||
| o Random Number Generation [RFC4086] | Figure 3: DTLS Raw Public Key Exchange including the Cookie Exchange. | |||
| o Denial-of-Service Countermeasures [RFC6347] | The ciphersuite for use with this credential type is | |||
| TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 [I-D.mcgrew-tls-aes-ccm-ecc]. | ||||
| This elliptic curve cryptography (ECC) based AES-CCM TLS ciphersuite | ||||
| uses the Elliptic Curve Diffie Hellman (ECDHE) as the key | ||||
| establishment mechanism and an Elliptic Curve Digital Signature | ||||
| Algorithm (ECDSA) for authentication. This ciphersuite make use of | ||||
| the AEAD capability in DTLS 1.2 and utilizes an eight-octet | ||||
| authentication tag. Based on the Diffie-Hellman it provides perfect | ||||
| forward secrecy (PFS). More details about the PFS can be found in | ||||
| Section 10. | ||||
| o Cipher Suite Negotiation | RFC 6090 [RFC6090] provides valuable information for implementing | |||
| o Version Negotiation [I-D.pettersen-tls-version-rollback-removal] | Elliptic Curve Cryptography algorithms. | |||
| [I-D.bmoeller-tls-downgrade-scsv] | ||||
| o Upgrade from Server-Authenticated to Mutually-Authenticated | Since many IoT devices will either have limited ways to log error or | |||
| no ability at all, any error will lead to implementations attempting | ||||
| to re-try the exchange. | ||||
| o Common Implementation Pitfalls | QUESTION: [I-D.sheffer-tls-bcp] recommends a different ciphersuite, | |||
| namely TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 [RFC5289] or | ||||
| alternatively TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (with a 2048-bit or | ||||
| 1024 DH parameters as second and third priority, respectively). Is | ||||
| TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 a good choice? | ||||
| o ... | 6. Certificate Use with DTLS | |||
| 4. Privacy Considerations | The use of mutual certificate-based authentication is shown in | |||
| Figure 4. Note that the figure also makes use of the cached info | ||||
| extension, which is indicated by the TLS extension | ||||
| (cached_information) and the changed content in the exchanged | ||||
| certificates. Caching certificate chains allows the client to reduce | ||||
| the communication overhead significantly since otherwise the server | ||||
| would provide the end entity certificate, and the certificate chain. | ||||
| Because certificate validation requires that root keys be distributed | ||||
| independently, the self-signed certificate that specifies the root | ||||
| certificate authority is omitted from the chain. Client | ||||
| implementations MUST be provisioned with a trust anchor store that | ||||
| contains the root certificates. The use of the Trust Anchor | ||||
| Management Protocol (TAMP) [RFC5934] is, however, not envisioned. | ||||
| Instead IoT devices using this profile MUST rely a software update | ||||
| mechanism to provision these trust anchors. | ||||
| o [RFC6973] | When DTLS is used to secure CoAP messages then the server provided | |||
| certificates MUST contain the fully qualified DNS domain name or | ||||
| "FQDN". The coaps URI scheme is described in Section 6.2 of | ||||
| [I-D.ietf-core-coap]. This FQDN is stored in the SubjectAltName or | ||||
| in the CN, as explained in Section 9.1.3.3 of [I-D.ietf-core-coap], | ||||
| and used by the client to match it against the FQDN used during the | ||||
| look-up process, as described in RFC 6125 [RFC6125]. For the profile | ||||
| in this specification does not assume dynamic discovery of local | ||||
| servers. | ||||
| o [I-D.cooper-ietf-privacy-requirements] | For client certificates the identifier used in the SubjectAltName or | |||
| in the CN MUST be an EUI-64 [EUI64], as mandated in Section 9.1.3.3 | ||||
| of [I-D.ietf-core-coap]. | ||||
| o Meta Data | For certificate revocation neither the Online Certificate Status | |||
| Protocol (OCSP) nor Certificate Revocation Lists (CRLs) are used. | ||||
| Instead, this profile relies on a software update mechanism. While | ||||
| multiple OCSP stapling [RFC6961] has recently been introduced as a | ||||
| mechanism to piggyback OCSP request/responses inside the DTLS/TLS | ||||
| handshake to avoid the cost of a separate protocol handshake further | ||||
| investigations are needed to determine its suitability for the IoT | ||||
| environment. | ||||
| o Traffic Patterns | Client Server | |||
| ------ ------ | ||||
| o Fingerprinting | ClientHello --------> | |||
| cached_information | ||||
| o ... | <------- HelloVerifyRequest | |||
| 5. Security Considerations | ClientHello --------> | |||
| cached_information | ||||
| ServerHello | ||||
| cached_information | ||||
| Certificate | ||||
| ServerKeyExchange | ||||
| CertificateRequest | ||||
| <-------- ServerHelloDone | ||||
| o [RFC3552] | Certificate | |||
| ClientKeyExchange | ||||
| CertificateVerify | ||||
| [ChangeCipherSpec] | ||||
| Finished --------> | ||||
| o ... | [ChangeCipherSpec] | |||
| <-------- Finished | ||||
| 6. IANA Considerations | Figure 4: DTLS Mutual Certificate-based Authentication. | |||
| Regarding the ciphersuite choice the discussion in Section 5 applies. | ||||
| Further details about X.509 certificates can be found in | ||||
| Section 9.1.3.3 of [I-D.ietf-core-coap]. | ||||
| QUESTION: What restrictions regarding the depth of the certificate | ||||
| chain should be made? Is one level enough? | ||||
| 7. Error Handling | ||||
| DTLS uses the Alert protocol to convey error messages and specifies a | ||||
| longer list of errors. However, not all error messages defined in | ||||
| the TLS specification are applicable to this profile. All error | ||||
| messages marked as RESERVED are only supported for backwards | ||||
| compatibility with SSL and are therefore not applicable to this | ||||
| profile. Those include decryption_failed_RESERVED, | ||||
| no_certificate_RESERVE, and export_restriction_RESERVED. A number of | ||||
| the error messages are applicable only for certificate-based | ||||
| authentication ciphersuites. Hence, for PSK and raw public key use | ||||
| the following error messages are not applicable: bad_certificate, | ||||
| unsupported_certificate, certificate_revoked, certificate_expired, | ||||
| certificate_unknown, unknown_ca, and access_denied. | ||||
| Since this profile does not make use of compression at the TLS layer | ||||
| the decompression_failure error message is not applicable either. | ||||
| RFC 4279 introduced a new alert message unknown_psk_identity for PSK | ||||
| ciphersuites. As stated in Section 2 of RFC 4279 the | ||||
| decryption_error error message may also be used instead. For this | ||||
| profile the TLS server MUST return the decryption_error error message | ||||
| instead of the unknown_psk_identity. | ||||
| Furthermore, the following errors should not occur based on the | ||||
| description in this specification: | ||||
| protocol_version: This document only focuses on one version of the | ||||
| DTLS protocol. | ||||
| insufficient_security: This error message indicates that the server | ||||
| requires ciphers to be more secure. This document does, however, | ||||
| specify the only acceptable ciphersuites and client | ||||
| implementations must support them. | ||||
| user_canceled: The IoT devices in focus of this specification are | ||||
| assumed to be unattended. | ||||
| 8. Session Resumption | ||||
| Session resumption is a feature of DTLS that allows a client to | ||||
| continue with an earlier established session state. The resulting | ||||
| exchange is shown in Figure 5. In addition, the server may choose | ||||
| not to do a cookie exchange when a session is resumed. Still, | ||||
| clients have to be prepared to do a cookie exchange with every | ||||
| handshake. | ||||
| Client Server | ||||
| ------ ------ | ||||
| ClientHello --------> | ||||
| ServerHello | ||||
| [ChangeCipherSpec] | ||||
| <-------- Finished | ||||
| [ChangeCipherSpec] | ||||
| Finished --------> | ||||
| Application Data <-------> Application Data | ||||
| Figure 5: DTLS Session Resumption. | ||||
| Clients MUST implement session resumption to improve the performance | ||||
| of the handshake (in terms of reduced number of message exchanges, | ||||
| lower computational overhead, and less bandwidth conserved). | ||||
| Since the communication model described in Section 2 does not assume | ||||
| that the server is constrained. RFC 5077 [RFC5077] describing TLS | ||||
| session resumption without server-side state is not utilized by this | ||||
| profile. | ||||
| 9. TLS Compression | ||||
| [I-D.sheffer-tls-bcp] recommends to always disable DTLS-level | ||||
| compression due to attacks. For IoT applications compression at the | ||||
| DTLS is not needed since application layer protocols are highly | ||||
| optimized and the compression algorithms at the DTLS layer increase | ||||
| code size and complexity. Hence, for use with this profile | ||||
| compression at the DTLS layer MUST NOT be implemented by the DTLS | ||||
| client. | ||||
| 10. Perfect Forward Secrecy | ||||
| Perfect forward secrecy is designed to prevent the compromise of a | ||||
| long-term secret key from affecting the confidentiality of past | ||||
| conversations. The PSK ciphersuite recommended in the CoAP | ||||
| specification [I-D.ietf-core-coap] does not offer this property. | ||||
| [I-D.sheffer-tls-bcp] on the other hand recommends using ciphersuites | ||||
| offering this security property. | ||||
| QUESTION: Should the PSK ciphersuite offer PFS? | ||||
| 11. Keep-Alive | ||||
| RFC 6520 [RFC6520] defines a heartbeat mechanism to test whether the | ||||
| other peer is still alive. The same mechanism can also be used to | ||||
| perform path MTU discovery. | ||||
| QUESTION: Do IoT deployments make use of this extension? | ||||
| 12. Negotiation and Downgrading Attacks | ||||
| CoAP demands version 1.2 of DTLS to be used and the earlier version | ||||
| of DTLS is not supported. As such, there is no risk of downgrading | ||||
| to an older version of DTLS. The work described in | ||||
| [I-D.bmoeller-tls-downgrade-scsv] is therefore also not applicable to | ||||
| this environment since there is no legacy server infrastructure to | ||||
| worry about. | ||||
| QUESTION: Should we say something for non-CoAP use of DTLS? | ||||
| To prevent the TLS renegotiation attack [RFC5746] clients MUST | ||||
| respond to server-initiated renegotiation attempts with an Alert | ||||
| message (no_renegotiation) and clients MUST NOT initiate them. TLS | ||||
| and DTLS allows a client and a server who already have a TLS | ||||
| connection to negotiate new parameters, generate new keys, etc by | ||||
| initiating a TLS handshake using a ClientHello message. | ||||
| Renegotiation happens in the existing TLS connection, with the new | ||||
| handshake packets being encrypted along with application data. | ||||
| 13. Privacy Considerations | ||||
| The DTLS handshake exchange conveys various identifiers, which can be | ||||
| observed by an on-path eavesdropper. For example, the DTLS PSK | ||||
| exchange reveals the PSK identity, the supported extensions, the | ||||
| session id, algorithm parameters, etc. When session resumption is | ||||
| used then individual TLS sessions can be correlated by an on-path | ||||
| adversary. With many IoT deployments it is likely that keying | ||||
| material and their identifiers are persistent over a longer period of | ||||
| time due to the cost of updating software on these devices. | ||||
| User participation with many IoT deployments poses a challenge since | ||||
| many of the IoT devices operate unattended, even though they will | ||||
| initially be enabled by a human. The ability to control data sharing | ||||
| and to configure preference will have to be provided at a system | ||||
| level rather than at the level of a DTLS profile, which is the scope | ||||
| of this document. Quite naturally, the use of DTLS with mutual | ||||
| authentication will allow a TLS server to collect authentication | ||||
| information about the IoT device (potentially over a long period of | ||||
| time). While this strong form of authentication will prevent mis- | ||||
| attribution it also allows strong identification. This device- | ||||
| related data collection (e.g., sensor recordings) will be associated | ||||
| with other data to be truly useful and this extra data might include | ||||
| personal data about the owner of the device or data about the | ||||
| environment it senses. Consequently, the data stored on the server- | ||||
| side will be vulnerable to stored data compromise. For the | ||||
| communication between the client and the server this specification | ||||
| prevents eavesdroppers to gain access to the communication content. | ||||
| While the PSK-based ciphersuite does not provide PFS the asymmetric | ||||
| version does. No explicit techniques, such as extra padding, have | ||||
| been provided to make traffic analysis more difficult. | ||||
| 14. Security Considerations | ||||
| This entire document is about security. | ||||
| The TLS protocol requires random numbers to be available during the | ||||
| protocol run. For example, during the ClientHello and the | ||||
| ServerHello exchange the client and the server exchange random | ||||
| numbers. Also, the use of the Diffie Hellman exchange requires | ||||
| random numbers during the key pair generation. Special care has to | ||||
| be paid when generating random numbers in embedded systems as many | ||||
| entropy sources available on desktop operating systems or mobile | ||||
| devices might be missing, as described in [Heninger]. Consequently, | ||||
| if not enough time is given during system start time to fill the | ||||
| entropy pool then the output might be predictable and repeatable, for | ||||
| example leading to the same keys generated again and again. | ||||
| Guidelines and requirements for random number generation can be found | ||||
| in RFC 4086 [RFC4086]. | ||||
| We would also like to point out that designing a software update | ||||
| mechanism into an IoT system is crucial to ensure that both | ||||
| functionality can be enhanced and that potential vulnerabilities can | ||||
| be fixed. This software update mechanism is also useful for changing | ||||
| configuration information, for example, trust anchors and other | ||||
| keying related information. | ||||
| 15. IANA Considerations | ||||
| This document includes no request to IANA. | This document includes no request to IANA. | |||
| 7. Acknowledgements | 16. Acknowledgements | |||
| Thanks to Rene Hummen, Sye Loong Keoh, Sandeep Kumar, Eric Rescorla, | Thanks to Rene Hummen, Sye Loong Keoh, Sandeep Kumar, Eric Rescorla, | |||
| Zach Shelby, Hannes Tschofenig, and Sean Turner for helpful comments | Zach Shelby, and Sean Turner for helpful comments and discussions | |||
| and discussions that have shaped the document. | that have shaped the document. | |||
| 8. References | 17. References | |||
| 8.1. Normative References | 17.1. Normative References | |||
| [I-D.ietf-tls-applayerprotoneg] | [EUI64] "GUIDELINES FOR 64-BIT GLOBAL IDENTIFIER (EUI-64) | |||
| Friedl, S., Popov, A., Langley, A., and S. Emile, | REGISTRATION AUTHORITY", April 2010, | |||
| "Transport Layer Security (TLS) Application Layer Protocol | <http://standards.ieee.org/regauth/oui/tutorials/ | |||
| Negotiation Extension", draft-ietf-tls-applayerprotoneg-03 | EUI64.html>. | |||
| (work in progress), October 2013. | ||||
| [I-D.ietf-core-coap] | ||||
| Shelby, Z., Hartke, K., and C. Bormann, "Constrained | ||||
| Application Protocol (CoAP)", draft-ietf-core-coap-18 | ||||
| (work in progress), June 2013. | ||||
| [I-D.ietf-tls-cached-info] | [I-D.ietf-tls-cached-info] | |||
| Santesson, S. and H. Tschofenig, "Transport Layer Security | Santesson, S. and H. Tschofenig, "Transport Layer Security | |||
| (TLS) Cached Information Extension", draft-ietf-tls- | (TLS) Cached Information Extension", draft-ietf-tls- | |||
| cached-info-15 (work in progress), October 2013. | cached-info-15 (work in progress), October 2013. | |||
| [I-D.ietf-tls-oob-pubkey] | [I-D.ietf-tls-oob-pubkey] | |||
| Wouters, P., Tschofenig, H., Gilmore, J., Weiler, S., and | Wouters, P., Tschofenig, H., Gilmore, J., Weiler, S., and | |||
| T. Kivinen, "Using Raw Public Keys in Transport Layer | T. Kivinen, "Using Raw Public Keys in Transport Layer | |||
| Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
| (DTLS)", draft-ietf-tls-oob-pubkey-10 (work in progress), | (DTLS)", draft-ietf-tls-oob-pubkey-11 (work in progress), | |||
| October 2013. | January 2014. | |||
| [RFC4492] Blake-Wilson, S., Bolyard, N., Gupta, V., Hawk, C., and B. | [I-D.mcgrew-tls-aes-ccm-ecc] | |||
| Moeller, "Elliptic Curve Cryptography (ECC) Cipher Suites | McGrew, D., Bailey, D., Campagna, M., and R. Dugal, "AES- | |||
| for Transport Layer Security (TLS)", RFC 4492, May 2006. | CCM ECC Cipher Suites for TLS", draft-mcgrew-tls-aes-ccm- | |||
| ecc-08 (work in progress), February 2014. | ||||
| [RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, | [RFC4279] Eronen, P. and H. Tschofenig, "Pre-Shared Key Ciphersuites | |||
| "Transport Layer Security (TLS) Session Resumption without | for Transport Layer Security (TLS)", RFC 4279, December | |||
| Server-Side State", RFC 5077, January 2008. | 2005. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, August 2008. | (TLS) Protocol Version 1.2", RFC 5246, August 2008. | |||
| [RFC5746] Rescorla, E., Ray, M., Dispensa, S., and N. Oskov, | [RFC5746] Rescorla, E., Ray, M., Dispensa, S., and N. Oskov, | |||
| "Transport Layer Security (TLS) Renegotiation Indication | "Transport Layer Security (TLS) Renegotiation Indication | |||
| Extension", RFC 5746, February 2010. | Extension", RFC 5746, February 2010. | |||
| [RFC6066] Eastlake, D., "Transport Layer Security (TLS) Extensions: | [RFC6066] Eastlake, D., "Transport Layer Security (TLS) Extensions: | |||
| Extension Definitions", RFC 6066, January 2011. | Extension Definitions", RFC 6066, January 2011. | |||
| [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and | ||||
| Verification of Domain-Based Application Service Identity | ||||
| within Internet Public Key Infrastructure Using X.509 | ||||
| (PKIX) Certificates in the Context of Transport Layer | ||||
| Security (TLS)", RFC 6125, March 2011. | ||||
| [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | |||
| Security Version 1.2", RFC 6347, January 2012. | Security Version 1.2", RFC 6347, January 2012. | |||
| [RFC6520] Seggelmann, R., Tuexen, M., and M. Williams, "Transport | [RFC6520] Seggelmann, R., Tuexen, M., and M. Williams, "Transport | |||
| Layer Security (TLS) and Datagram Transport Layer Security | Layer Security (TLS) and Datagram Transport Layer Security | |||
| (DTLS) Heartbeat Extension", RFC 6520, February 2012. | (DTLS) Heartbeat Extension", RFC 6520, February 2012. | |||
| 8.2. Informative References | 17.2. Informative References | |||
| [Heninger] | ||||
| Heninger, N., Durumeric, Z., Wustrow, E., and A. | ||||
| Halderman, "Mining Your Ps and Qs: Detection of Widespread | ||||
| Weak Keys in Network Devices", 21st USENIX Security | ||||
| Symposium, https://www.usenix.org/conference/ | ||||
| usenixsecurity12/technical-sessions/presentation/heninger, | ||||
| 2012. | ||||
| [I-D.bmoeller-tls-downgrade-scsv] | [I-D.bmoeller-tls-downgrade-scsv] | |||
| Moeller, B., "TLS Signaling Cipher Suite Value (SCSV) for | Moeller, B. and A. Langley, "TLS Fallback Signaling Cipher | |||
| Preventing Protocol Downgrade Attacks", draft-bmoeller- | Suite Value (SCSV) for Preventing Protocol Downgrade | |||
| tls-downgrade-scsv-00 (work in progress), September 2013. | Attacks", draft-bmoeller-tls-downgrade-scsv-01 (work in | |||
| progress), November 2013. | ||||
| [I-D.campagna-suitee] | [I-D.campagna-suitee] | |||
| Campagna, M., "A Cryptographic Suite for Embedded Systems | Campagna, M., "A Cryptographic Suite for Embedded Systems | |||
| (SuiteE)", draft-campagna-suitee-04 (work in progress), | (SuiteE)", draft-campagna-suitee-04 (work in progress), | |||
| October 2012. | October 2012. | |||
| [I-D.cooper-ietf-privacy-requirements] | [I-D.cooper-ietf-privacy-requirements] | |||
| Cooper, A., Farrell, S., and S. Turner, "Privacy | Cooper, A., Farrell, S., and S. Turner, "Privacy | |||
| Requirements for IETF Protocols", draft-cooper-ietf- | Requirements for IETF Protocols", draft-cooper-ietf- | |||
| privacy-requirements-01 (work in progress), October 2013. | privacy-requirements-01 (work in progress), October 2013. | |||
| [I-D.greevenbosch-tls-ocsp-lite] | [I-D.greevenbosch-tls-ocsp-lite] | |||
| Greevenbosch, B., "OCSP-lite - Revocation of raw public | Greevenbosch, B., "OCSP-lite - Revocation of raw public | |||
| keys", draft-greevenbosch-tls-ocsp-lite-01 (work in | keys", draft-greevenbosch-tls-ocsp-lite-01 (work in | |||
| progress), June 2013. | progress), June 2013. | |||
| [I-D.gutmann-tls-encrypt-then-mac] | [I-D.gutmann-tls-encrypt-then-mac] | |||
| Gutmann, P., "Encrypt-then-MAC for TLS and DTLS", draft- | Gutmann, P., "Encrypt-then-MAC for TLS and DTLS", draft- | |||
| gutmann-tls-encrypt-then-mac-04 (work in progress), | gutmann-tls-encrypt-then-mac-05 (work in progress), | |||
| October 2013. | December 2013. | |||
| [I-D.hummen-dtls-extended-session-resumption] | [I-D.hummen-dtls-extended-session-resumption] | |||
| Hummen, R., Gilger, J., and H. Shafagh, "Extended DTLS | Hummen, R., Gilger, J., and H. Shafagh, "Extended DTLS | |||
| Session Resumption for Constrained Network Environments", | Session Resumption for Constrained Network Environments", | |||
| draft-hummen-dtls-extended-session-resumption-01 (work in | draft-hummen-dtls-extended-session-resumption-01 (work in | |||
| progress), October 2013. | progress), October 2013. | |||
| [I-D.ietf-core-coap] | ||||
| Shelby, Z., Hartke, K., and C. Bormann, "Constrained | ||||
| Application Protocol (CoAP)", draft-ietf-core-coap-18 | ||||
| (work in progress), June 2013. | ||||
| [I-D.ietf-lwig-guidance] | [I-D.ietf-lwig-guidance] | |||
| Bormann, C., "Guidance for Light-Weight Implementations of | Bormann, C., "Guidance for Light-Weight Implementations of | |||
| the Internet Protocol Suite", draft-ietf-lwig-guidance-03 | the Internet Protocol Suite", draft-ietf-lwig-guidance-03 | |||
| (work in progress), February 2013. | (work in progress), February 2013. | |||
| [I-D.ietf-lwig-terminology] | [I-D.ietf-lwig-terminology] | |||
| Bormann, C., Ersue, M., and A. Keranen, "Terminology for | Bormann, C., Ersue, M., and A. Keranen, "Terminology for | |||
| Constrained Node Networks", draft-ietf-lwig-terminology-05 | Constrained Node Networks", draft-ietf-lwig-terminology-06 | |||
| (work in progress), July 2013. | (work in progress), December 2013. | |||
| [I-D.ietf-lwig-tls-minimal] | [I-D.ietf-lwig-tls-minimal] | |||
| Kumar, S., Keoh, S., and H. Tschofenig, "A Hitchhiker's | Kumar, S., Keoh, S., and H. Tschofenig, "A Hitchhiker's | |||
| Guide to the (Datagram) Transport Layer Security Protocol | Guide to the (Datagram) Transport Layer Security Protocol | |||
| for Smart Objects and Constrained Node Networks", draft- | for Smart Objects and Constrained Node Networks", draft- | |||
| ietf-lwig-tls-minimal-00 (work in progress), September | ietf-lwig-tls-minimal-00 (work in progress), September | |||
| 2013. | 2013. | |||
| [I-D.ietf-tls-applayerprotoneg] | ||||
| Friedl, S., Popov, A., Langley, A., and S. Emile, | ||||
| "Transport Layer Security (TLS) Application Layer Protocol | ||||
| Negotiation Extension", draft-ietf-tls-applayerprotoneg-04 | ||||
| (work in progress), January 2014. | ||||
| [I-D.pettersen-tls-version-rollback-removal] | [I-D.pettersen-tls-version-rollback-removal] | |||
| Pettersen, Y., "Managing and removing automatic version | Pettersen, Y., "Managing and removing automatic version | |||
| rollback in TLS Clients", draft-pettersen-tls-version- | rollback in TLS Clients", draft-pettersen-tls-version- | |||
| rollback-removal-02 (work in progress), August 2013. | rollback-removal-02 (work in progress), August 2013. | |||
| [I-D.sheffer-tls-bcp] | [I-D.sheffer-tls-bcp] | |||
| Sheffer, Y. and R. Holz, "Recommendations for Secure Use | Sheffer, Y. and R. Holz, "Recommendations for Secure Use | |||
| of TLS and DTLS", draft-sheffer-tls-bcp-01 (work in | of TLS and DTLS", draft-sheffer-tls-bcp-01 (work in | |||
| progress), September 2013. | progress), September 2013. | |||
| [IANA-TLS] | ||||
| IANA, "TLS Cipher Suite Registry", http://www.iana.org/ | ||||
| assignments/tls-parameters/ | ||||
| tls-parameters.xhtml#tls-parameters-4, 2014. | ||||
| [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC | [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC | |||
| Text on Security Considerations", BCP 72, RFC 3552, July | Text on Security Considerations", BCP 72, RFC 3552, July | |||
| 2003. | 2003. | |||
| [RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness | [RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness | |||
| Requirements for Security", BCP 106, RFC 4086, June 2005. | Requirements for Security", BCP 106, RFC 4086, June 2005. | |||
| [RFC4492] Blake-Wilson, S., Bolyard, N., Gupta, V., Hawk, C., and B. | ||||
| Moeller, "Elliptic Curve Cryptography (ECC) Cipher Suites | ||||
| for Transport Layer Security (TLS)", RFC 4492, May 2006. | ||||
| [RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, | ||||
| "Transport Layer Security (TLS) Session Resumption without | ||||
| Server-Side State", RFC 5077, January 2008. | ||||
| [RFC5289] Rescorla, E., "TLS Elliptic Curve Cipher Suites with | ||||
| SHA-256/384 and AES Galois Counter Mode (GCM)", RFC 5289, | ||||
| August 2008. | ||||
| [RFC5934] Housley, R., Ashmore, S., and C. Wallace, "Trust Anchor | ||||
| Management Protocol (TAMP)", RFC 5934, August 2010. | ||||
| [RFC6090] McGrew, D., Igoe, K., and M. Salter, "Fundamental Elliptic | ||||
| Curve Cryptography Algorithms", RFC 6090, February 2011. | ||||
| [RFC6961] Pettersen, Y., "The Transport Layer Security (TLS) | ||||
| Multiple Certificate Status Request Extension", RFC 6961, | ||||
| June 2013. | ||||
| [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | |||
| Morris, J., Hansen, M., and R. Smith, "Privacy | Morris, J., Hansen, M., and R. Smith, "Privacy | |||
| Considerations for Internet Protocols", RFC 6973, July | Considerations for Internet Protocols", RFC 6973, July | |||
| 2013. | 2013. | |||
| Author's Address | Authors' Addresses | |||
| Klaus Hartke (editor) | Klaus Hartke | |||
| Universitaet Bremen TZI | Universitaet Bremen TZI | |||
| Postfach 330440 | Postfach 330440 | |||
| Bremen D-28359 | Bremen D-28359 | |||
| Germany | Germany | |||
| Phone: +49-421-218-63905 | Phone: +49-421-218-63905 | |||
| Email: hartke@tzi.org | Email: hartke@tzi.org | |||
| Hannes Tschofenig | ||||
| ARM Ltd. | ||||
| 110 Fulbourn Rd | ||||
| Cambridge CB1 9NJ | ||||
| Great Britain | ||||
| Email: Hannes.tschofenig@gmx.net | ||||
| URI: http://www.tschofenig.priv.at | ||||
| End of changes. 97 change blocks. | ||||
| 140 lines changed or deleted | 648 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||