Racets: Faceted Execution in Racket
Kristopher Micinski, Zhanpeng Wang, Thomas Gilray

TL;DR
Racets introduces a library-based implementation of faceted execution in Racket, enabling policy-agnostic programming for secure data handling without modifying language runtime, demonstrated through a web-based Battleship game.
Contribution
It presents Racets, a lightweight, macro-based implementation of faceted execution in Racket, facilitating policy-agnostic programming without runtime modifications.
Findings
Enables privacy policy enforcement independently of application code
Demonstrates practical use with a web-based Battleship game
Highlights interactions with non-faceted code
Abstract
Faceted Execution is a linguistic paradigm for dynamic information-flow control. Under faceted execution, secure program data is represented by faceted values: decision trees that encode how the data should appear to its owner (represented by a label) versus everyone else. When labels are allowed to be first-class (i.e., predicates that decide at runtime which data to reveal), faceted execution enables policy-agnostic programming: a programming style that allows privacy policies for data to be enforced independently of code that computes on that data. To date, implementations of faceted execution are relatively heavyweight: requiring either changing the language runtime or the application code (e.g., by using monads). Following Racket's languages-as-libraries approach, we present Racets: an implementation of faceted execution as a library of macros. Given Racket's highly-expressive…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Advanced Malware Detection Techniques · Distributed systems and fault tolerance
