The Transport Layer Security (TLS) Protocol Version 1.2
RFC 5246
| Document | Type |
RFC - Proposed Standard
(August 2008; Errata)
Obsoleted by RFC 8446
Updated by RFC 6176, RFC 7905, RFC 5878, RFC 5746, RFC 7465, RFC 7568, RFC 7919, RFC 8447, RFC 7507, RFC 7685, RFC 7627
Updates RFC 4492
|
|
|---|---|---|---|
| Last updated | 2015-10-14 | ||
| Stream | IETF | ||
| Formats | plain text pdf html bibtex | ||
| Stream | WG state | (None) | |
| Document shepherd | No shepherd assigned | ||
| IESG | IESG state | RFC 5246 (Proposed Standard) | |
| Consensus Boilerplate | Unknown | ||
| Telechat date | |||
| Responsible AD | Tim Polk | ||
| Send notices to | (None) | ||
Network Working Group T. Dierks
Request for Comments: 5246 Independent
Obsoletes: 3268, 4346, 4366 E. Rescorla
Updates: 4492 RTFM, Inc.
Category: Standards Track August 2008
The Transport Layer Security (TLS) Protocol
Version 1.2
Status of This Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Abstract
This document specifies Version 1.2 of the Transport Layer Security
(TLS) protocol. The TLS protocol provides communications security
over the Internet. The protocol allows client/server applications to
communicate in a way that is designed to prevent eavesdropping,
tampering, or message forgery.
Table of Contents
1. Introduction ....................................................4
1.1. Requirements Terminology ...................................5
1.2. Major Differences from TLS 1.1 .............................5
2. Goals ...........................................................6
3. Goals of This Document ..........................................7
4. Presentation Language ...........................................7
4.1. Basic Block Size ...........................................7
4.2. Miscellaneous ..............................................8
4.3. Vectors ....................................................8
4.4. Numbers ....................................................9
4.5. Enumerateds ................................................9
4.6. Constructed Types .........................................10
4.6.1. Variants ...........................................10
4.7. Cryptographic Attributes ..................................12
4.8. Constants .................................................14
5. HMAC and the Pseudorandom Function .............................14
6. The TLS Record Protocol ........................................15
6.1. Connection States .........................................16
6.2. Record Layer ..............................................19
6.2.1. Fragmentation ......................................19
Dierks & Rescorla Standards Track [Page 1]
RFC 5246 TLS August 2008
6.2.2. Record Compression and Decompression ...............20
6.2.3. Record Payload Protection ..........................21
6.2.3.1. Null or Standard Stream Cipher ............22
6.2.3.2. CBC Block Cipher ..........................22
6.2.3.3. AEAD Ciphers ..............................24
6.3. Key Calculation ...........................................25
7. The TLS Handshaking Protocols ..................................26
7.1. Change Cipher Spec Protocol ...............................27
7.2. Alert Protocol ............................................28
7.2.1. Closure Alerts .....................................29
7.2.2. Error Alerts .......................................30
7.3. Handshake Protocol Overview ...............................33
7.4. Handshake Protocol ........................................37
7.4.1. Hello Messages .....................................38
7.4.1.1. Hello Request .............................38
7.4.1.2. Client Hello ..............................39
7.4.1.3. Server Hello ..............................42
7.4.1.4. Hello Extensions ..........................44
7.4.1.4.1. Signature Algorithms ...........45
7.4.2. Server Certificate .................................47
7.4.3. Server Key Exchange Message ........................50
7.4.4. Certificate Request ................................53
7.4.5. Server Hello Done ..................................55
7.4.6. Client Certificate .................................55
7.4.7. Client Key Exchange Message ........................57
7.4.7.1. RSA-Encrypted Premaster Secret Message ....58
7.4.7.2. Client Diffie-Hellman Public Value ........61
7.4.8. Certificate Verify .................................62
7.4.9. Finished ...........................................63
8. Cryptographic Computations .....................................64
8.1. Computing the Master Secret ...............................64
Show full document text