2017 IEEE Symposium on Security and Privacy (SP) 2017
DOI: 10.1109/sp.2017.58
|View full text |Cite
|
Sign up to set email alerts
|

Implementing and Proving the TLS 1.3 Record Layer

Abstract: The record layer is the main bridge between TLS applications and internal sub-protocols. Its core functionality is an elaborate form of authenticated encryption: streams of messages for each sub-protocol (handshake, alert, and application data) are fragmented, multiplexed, and encrypted with optional padding to hide their lengths. Conversely, the sub-protocols may provide fresh keys or signal stream termination to the record layer. Compared to prior versions, TLS 1.3 discards obsolete schemes in favor of a com… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1

Citation Types

1
28
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
6
4

Relationship

2
8

Authors

Journals

citations
Cited by 52 publications
(29 citation statements)
references
References 36 publications
1
28
0
Order By: Relevance
“…Related Work. Projects such as Everest [8,12], Cao [5], and Jasmin [1], generate verified cryptographic implementations from higher level specifications, e.g. F* models.…”
Section: Introductionmentioning
confidence: 99%
“…Related Work. Projects such as Everest [8,12], Cao [5], and Jasmin [1], generate verified cryptographic implementations from higher level specifications, e.g. F* models.…”
Section: Introductionmentioning
confidence: 99%
“…High-assurance cryptographic libraries, for instance, get linked into real applications such as web browsers [24,43] and web servers, which include millions of lines of legacy C/C++ code. Even if the abstractions of the source language ensure that the API of a TLS library cannot leak the server's private key [33], such guarantees are completely lost when compiling the library and linking it into a C/C++ application that can get compromised via a buffer overflow, simply allowing the adversary to read the private key from memory [39]. A compromised or malicious application that links in a high-assurance library can easily read and write its data and code, jump to arbitrary memory locations, or smash the stack, blatantly violating any sourcelevel abstraction and breaking any security guarantee obtained by source-level reasoning.…”
Section: Introductionmentioning
confidence: 99%
“…A number of previous works have shown how to verify cryptographic protocol implementations to prove the absence of some of these kinds of bugs. In particular, implementations of TLS in F# [13], C [14], and JavaScript [15] have been verified for correctness, memory safety, and cryptographic security. An implementation of a non-standard variant of Signal written in a subset of JavaScript was also verified for cryptographic security [16], but not for correctness.…”
Section: Introduction: Cryptographic Web Applicationsmentioning
confidence: 99%