A Case Study in Language-Based Security: Building an I/O Library for Wyvern
summary
A small standard I/O library for Wyvern is built and shown workable: capabilities enforce least privilege by handing narrow file or directory handles (readers/writers only), the existing effect system needs bounded effect members to prevent conflating file and network FFI effects, and format-checking is implemented as a format string extension library that statically prevents mismatched specifiers. The implementation exposes gaps (no covariant type parameters yet) and motivates concrete language extensions.
AI-written summary · about
chapters (17)
- 0:00Intro
- 0:16Emerging languages build in security features
- 1:02What PL-based security features are ready...
- 1:14The Wyvern PL has novel security features Wyvern was designed from the ground up to be secure. It has static types, plus
- 1:49Building an I/O library is a useful case study • Everything dangerous involves input or output
- 2:30Want to limit privileges of untrusted code
- 3:08Capabilities give you the ability to do things
- 3:37Wyvern's object capabilities control privileges
- 4:51Capability granularities in file system design
- 5:56Restricting untrusted module privileges
- 6:59Other permissions supported by wrapping Missing read-only directory access . Maybe not general enough to justify in design
- 8:00Capabilities were effective; tweaks can help
- 10:17Abstractions: both specific and general effects
- 11:47Global effects can be hard to distinguish
- 12:56Solution: Bounded effect members
- 14:00Format string language extension adds safety require stdout val x : String - "World" stdout.printf(-)
- 15:37Wyvern I/O Library Case Study Takeaways
related talks
30mA Case Study in Language-Based Security: Building an I/O Library for Wyvern
13mOwlC: Compiling Security Protocols to Verified, Secure...
01h 02mT1: Secure Programming For Embedded Systems
38mBuilding Secure Systems in Haskell
21mSecurely Compiling F* Programs With IO and Then Linking Them Against Weakly-Typ...
01h 00mKeynote: Bringing Verified Cryptographic Protocols to Practice
20mEio 1.0 – Effects-based IO for OCaml 5
17mBuilding Bridges: Safe Interactions with Foreign Languages through Omniglot
