Fully Abstract Compilation to Java']JavaScript

被引:38
作者
Fournet, Cedric
Swamy, Nikhil
Chen, Juan
Dagand, Pierre-Evariste
Strub, Pierre-Yves
Livshits, Benjamin
机构
关键词
Program equivalence; full abstraction; refinement types;
D O I
10.1145/2480359.2429114
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Many tools allow programmers to develop applications in high-level languages and deploy them in web browsers via compilation to JavaScript. While practical and widely used, these compilers are ad hoc: no guarantee is provided on their correctness for whole programs, nor their security for programs executed within arbitrary JavaScript contexts. This paper presents a compiler with such guarantees. We compile an ML-like language with higher-order functions and references to JavaScript, while preserving all source program properties. Relying on type-based invariants and applicative bisimilarity, we show full abstraction: two programs are equivalent in all source contexts if and only if their wrapped translations are equivalent in all JavaScript contexts. We evaluate our compiler on sample programs, including a series of secure libraries.
引用
收藏
页码:371 / 383
页数:13
相关论文
共 23 条
[1]   Secure implementation of channel abstractions [J].
Abadi, M ;
Fournet, C ;
Gonthier, G .
INFORMATION AND COMPUTATION, 2002, 174 (01) :37-83
[2]  
Abadi M., 1998, ICALP, V1443, P868
[3]   On Protection by Layout Randomization [J].
Abadi, Martin ;
Plotkin, Gordon .
2010 23RD IEEE COMPUTER SECURITY FOUNDATIONS SYMPOSIUM (CSF), 2010, :337-351
[4]   Secure Compilation to Modern Processors [J].
Agten, Pieter ;
Strackx, Raoul ;
Jacobs, Bart ;
Piessens, Frank .
2012 IEEE 25TH COMPUTER SECURITY FOUNDATIONS SYMPOSIUM (CSF), 2012, :171-185
[5]  
Ahmed A., 2008, ICFP
[6]  
[Anonymous], 2008, TACAS
[7]  
[Anonymous], 2012, CAJA ATTACK VECTIRS
[8]  
Cooper Ezra., 2006, FMCO
[9]  
Guha Arjun., 2010, ECOOP
[10]  
Kennedy A., 2006, TCS, V364