2016 · 39 citations · 37 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesSafety EngineeringAccess ControlAuthorizationPrivilege ManagementSystem SecurityChannelsFormal ModelingInvariantsJavascriptLogical RelationsPrivilege Restriction
Object capabilities are a technique for fine-grained privilege separation in programming languages and systems, with important applications in security. However, current formal characterisations do not fully capture capability-safety of a programming language and are not sufficient for verifying typical applications. Using state-of-the-art techniques from programming languages research, we define a logical relation for a core calculus of JavaScript that better characterises capability-safety. The relation is powerful enough to reason about typical capability patterns and supports evolvable invariants on shared data structures, capabilities with restricted authority over them and isolated components with restricted communication channels. We use a novel notion of effect parametricity for deriving properties about effects. Our results imply memory access bounds that have previously been used to characterise capability-safety.
37
Notions of computation and monads
Eugenio Moggi · Information and Computation · 1991 · 1.7K citations
Jonathan Woodruff, Robert N. M. Watson, David Chisnall et al. · ACM SIGARCH Computer Architecture News · 2014 · 214 citations