Defensive JavaScript: Building and Verifying Secure Web Components

Abstract : Defensive JavaScript (DJS) is a typed subset of JavaScript that guarantees that the functional behavior of a program cannot be tampered with even if it is loaded by and executed within a malicious environment under the control of the attacker. As such, DJS is ideal for writing JavaScript security components, such as bookmarklets, single sign-on widgets, and cryptographic libraries, that may be loaded within untrusted web pages alongside unknown scripts from arbitrary third parties. We present a tutorial of the DJS language along with motivations for its design. We show how to program security components in DJS, how to verify their defensiveness using the DJS typechecker, and how to analyze their security properties automatically using ProVerif.
Document type :
Book sections
Complete list of metadatas

https://hal.inria.fr/hal-01102144
Contributor : Bruno Blanchet <>
Submitted on : Friday, April 15, 2016 - 4:31:38 AM
Last modification on : Friday, May 25, 2018 - 12:02:06 PM
Long-term archiving on : Tuesday, November 15, 2016 - 4:05:23 AM

File

djs-tutorial.pdf
Files produced by the author(s)

Identifiers

Collections

Citation

Karthikeyan Bhargavan, Antoine Delignat-Lavaud, Sergio Maffeis. Defensive JavaScript: Building and Verifying Secure Web Components. Alessandro Aldini; Javier Lopez; Fabio Martinelli. Foundations of Security Analysis and Design VII, 8604, Springer, pp.88-123, 2014, Lecture Notes in Computer Science, 978-3-319-10081-4. ⟨10.1007/978-3-319-10082-1_4⟩. ⟨hal-01102144⟩

Share

Metrics

Record views

183

Files downloads

236