University of Cambridge > Talks.cam > REMS lunch > Not-quite-so-broken TLS: lessons in re-engineering a security protocol specification and implementation

Not-quite-so-broken TLS: lessons in re-engineering a security protocol specification and implementation

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Peter Sewell.

nonstandard room: FW26

Transport Layer Security (TLS) implementations have a history of security flaws. The immediate causes of these are often programming errors, e.g.~in memory management, but the root causes are more fundamental: the challenges of interpreting the ambiguous prose specification, the complexities inherent in large APIs and code bases, inherently unsafe programming choices, and the impossibility of directly testing conformance between implementations and the specification.

We present Not-quite-so-broken TLS , the result of our re-engineered approach to security protocol specification and implementation that addresses these root causes. The same code serves dual roles: it is both a specification of TLS , executable as a test oracle to check conformance of traces from arbitrary implementations, and a usable implementation of TLS ; a modular and declarative programming style provides clean separation between its components. Many security flaws are thus excluded by construction.

Not-quite-so-broken TLS can be used in standalone applications, which we demonstrate with a messaging client, and can also be compiled into a Xen unikernel (a specialised virtual machine image) with a TCB that is 4\% of a standalone system running a standard Linux/OpenSSL stack, with all network traffic being handled in a memory-safe language; this supports applications including HTTPS , IMAP, Git, and Websocket clients and servers.

This talk is part of the REMS lunch series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2024 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity