Defensive JavaScript: Building and Verifying Secure Web Components

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 co...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Bhargavan, Karthikeyan, Delignat-Lavaud, Antoine, Maffeis, Sergio
Format: Buchkapitel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 123
container_issue
container_start_page 88
container_title
container_volume 8604
creator Bhargavan, Karthikeyan
Delignat-Lavaud, Antoine
Maffeis, Sergio
description 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.
doi_str_mv 10.1007/978-3-319-10082-1_4
format Book Chapter
fullrecord <record><control><sourceid>hal_sprin</sourceid><recordid>TN_cdi_hal_primary_oai_HAL_hal_01102144v1</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>oai_HAL_hal_01102144v1</sourcerecordid><originalsourceid>FETCH-LOGICAL-h1464-1782a66029bf4e49d8e9bbcdfaad053bfda6cb554d908dfb47e96531b4389cf83</originalsourceid><addsrcrecordid>eNo1kL1PwzAQxc2XRCnd2FhYGQx3uUtij1ULFBSJAZhPdmLTQGmrBFXiv8dtYTq993466T2lLhFuEKC8taXRpAmtTtJkGoUP1BklY6fpUA2wQNREbI_UKOH_GfKxGgBBpm3JdKpGff8BAEhkSrADdTENMSz7dhOuntzGvdRdu_4-VyfRLfow-rtD9XZ_9zqZ6er54XEyrvQcuWCNpclcUUBmfeTAtjHBel830bkGcvKxcUXt85wbC6aJnstgi5zQMxlbR0NDdb3_O3cLWXftl-t-ZOVamY0r2XqACBkybzCxuGf7BC7fQyd-tfrsBUG2E0nqLCSptewmkTQR_QKXc1Hg</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>book_chapter</recordtype></control><display><type>book_chapter</type><title>Defensive JavaScript: Building and Verifying Secure Web Components</title><source>Springer Books</source><creator>Bhargavan, Karthikeyan ; Delignat-Lavaud, Antoine ; Maffeis, Sergio</creator><contributor>Lopez, Javier ; Martinelli, Fabio ; Aldini, Alessandro</contributor><creatorcontrib>Bhargavan, Karthikeyan ; Delignat-Lavaud, Antoine ; Maffeis, Sergio ; Lopez, Javier ; Martinelli, Fabio ; Aldini, Alessandro</creatorcontrib><description>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.</description><identifier>ISSN: 0302-9743</identifier><identifier>ISBN: 9783319100814</identifier><identifier>ISBN: 3319100815</identifier><identifier>EISSN: 1611-3349</identifier><identifier>EISBN: 3319100823</identifier><identifier>EISBN: 9783319100821</identifier><identifier>DOI: 10.1007/978-3-319-10082-1_4</identifier><language>eng</language><publisher>Cham: Springer International Publishing</publisher><subject>Cloud Server ; Computer Science ; Cryptography and Security ; External Function ; Object Prototype ; Password Manager ; Security Goal</subject><ispartof>Foundations of Security Analysis and Design VII, 2014, Vol.8604, p.88-123</ispartof><rights>Springer International Publishing Switzerland 2014</rights><rights>Distributed under a Creative Commons Attribution 4.0 International License</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><orcidid>0000-0002-3152-8997</orcidid><relation>Lecture Notes in Computer Science</relation></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/978-3-319-10082-1_4$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/978-3-319-10082-1_4$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>230,779,780,784,793,885,27925,38255,41442,42511</link.rule.ids><backlink>$$Uhttps://inria.hal.science/hal-01102144$$DView record in HAL$$Hfree_for_read</backlink></links><search><contributor>Lopez, Javier</contributor><contributor>Martinelli, Fabio</contributor><contributor>Aldini, Alessandro</contributor><creatorcontrib>Bhargavan, Karthikeyan</creatorcontrib><creatorcontrib>Delignat-Lavaud, Antoine</creatorcontrib><creatorcontrib>Maffeis, Sergio</creatorcontrib><title>Defensive JavaScript: Building and Verifying Secure Web Components</title><title>Foundations of Security Analysis and Design VII</title><description>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.</description><subject>Cloud Server</subject><subject>Computer Science</subject><subject>Cryptography and Security</subject><subject>External Function</subject><subject>Object Prototype</subject><subject>Password Manager</subject><subject>Security Goal</subject><issn>0302-9743</issn><issn>1611-3349</issn><isbn>9783319100814</isbn><isbn>3319100815</isbn><isbn>3319100823</isbn><isbn>9783319100821</isbn><fulltext>true</fulltext><rsrctype>book_chapter</rsrctype><creationdate>2014</creationdate><recordtype>book_chapter</recordtype><recordid>eNo1kL1PwzAQxc2XRCnd2FhYGQx3uUtij1ULFBSJAZhPdmLTQGmrBFXiv8dtYTq993466T2lLhFuEKC8taXRpAmtTtJkGoUP1BklY6fpUA2wQNREbI_UKOH_GfKxGgBBpm3JdKpGff8BAEhkSrADdTENMSz7dhOuntzGvdRdu_4-VyfRLfow-rtD9XZ_9zqZ6er54XEyrvQcuWCNpclcUUBmfeTAtjHBel830bkGcvKxcUXt85wbC6aJnstgi5zQMxlbR0NDdb3_O3cLWXftl-t-ZOVamY0r2XqACBkybzCxuGf7BC7fQyd-tfrsBUG2E0nqLCSptewmkTQR_QKXc1Hg</recordid><startdate>2014</startdate><enddate>2014</enddate><creator>Bhargavan, Karthikeyan</creator><creator>Delignat-Lavaud, Antoine</creator><creator>Maffeis, Sergio</creator><general>Springer International Publishing</general><general>Springer</general><scope>1XC</scope><scope>VOOES</scope><orcidid>https://orcid.org/0000-0002-3152-8997</orcidid></search><sort><creationdate>2014</creationdate><title>Defensive JavaScript</title><author>Bhargavan, Karthikeyan ; Delignat-Lavaud, Antoine ; Maffeis, Sergio</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-h1464-1782a66029bf4e49d8e9bbcdfaad053bfda6cb554d908dfb47e96531b4389cf83</frbrgroupid><rsrctype>book_chapters</rsrctype><prefilter>book_chapters</prefilter><language>eng</language><creationdate>2014</creationdate><topic>Cloud Server</topic><topic>Computer Science</topic><topic>Cryptography and Security</topic><topic>External Function</topic><topic>Object Prototype</topic><topic>Password Manager</topic><topic>Security Goal</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Bhargavan, Karthikeyan</creatorcontrib><creatorcontrib>Delignat-Lavaud, Antoine</creatorcontrib><creatorcontrib>Maffeis, Sergio</creatorcontrib><collection>Hyper Article en Ligne (HAL)</collection><collection>Hyper Article en Ligne (HAL) (Open Access)</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Bhargavan, Karthikeyan</au><au>Delignat-Lavaud, Antoine</au><au>Maffeis, Sergio</au><au>Lopez, Javier</au><au>Martinelli, Fabio</au><au>Aldini, Alessandro</au><format>book</format><genre>bookitem</genre><ristype>CHAP</ristype><atitle>Defensive JavaScript: Building and Verifying Secure Web Components</atitle><btitle>Foundations of Security Analysis and Design VII</btitle><seriestitle>Lecture Notes in Computer Science</seriestitle><date>2014</date><risdate>2014</risdate><volume>8604</volume><spage>88</spage><epage>123</epage><pages>88-123</pages><issn>0302-9743</issn><eissn>1611-3349</eissn><isbn>9783319100814</isbn><isbn>3319100815</isbn><eisbn>3319100823</eisbn><eisbn>9783319100821</eisbn><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.</abstract><cop>Cham</cop><pub>Springer International Publishing</pub><doi>10.1007/978-3-319-10082-1_4</doi><tpages>36</tpages><orcidid>https://orcid.org/0000-0002-3152-8997</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0302-9743
ispartof Foundations of Security Analysis and Design VII, 2014, Vol.8604, p.88-123
issn 0302-9743
1611-3349
language eng
recordid cdi_hal_primary_oai_HAL_hal_01102144v1
source Springer Books
subjects Cloud Server
Computer Science
Cryptography and Security
External Function
Object Prototype
Password Manager
Security Goal
title Defensive JavaScript: Building and Verifying Secure Web Components
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-20T17%3A51%3A26IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-hal_sprin&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=bookitem&rft.atitle=Defensive%20JavaScript:%20Building%20and%20Verifying%20Secure%20Web%20Components&rft.btitle=Foundations%20of%20Security%20Analysis%20and%20Design%20VII&rft.au=Bhargavan,%20Karthikeyan&rft.date=2014&rft.volume=8604&rft.spage=88&rft.epage=123&rft.pages=88-123&rft.issn=0302-9743&rft.eissn=1611-3349&rft.isbn=9783319100814&rft.isbn_list=3319100815&rft_id=info:doi/10.1007/978-3-319-10082-1_4&rft_dat=%3Chal_sprin%3Eoai_HAL_hal_01102144v1%3C/hal_sprin%3E%3Curl%3E%3C/url%3E&rft.eisbn=3319100823&rft.eisbn_list=9783319100821&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true