Skip to main navigation Skip to search Skip to main content

A Capability-Based Module System for Authority Control

Darya Melicher*, Yangqingwei Shi, Alex Potanin, Jonathan Aldrich

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference Paperpeer-review

12 Citations (Scopus)

Abstract

The principle of least authority states that each component of the system should be given authority to access only the information and resources that it needs for its operation. This principle is fundamental to the secure design of software systems, as it helps to limit an application's attack surface and to isolate vulnerabilities and faults. Unfortunately, current programming languages do not provide adequate help in controlling the authority of application modules, an issue that is particularly acute in the case of untrusted third-party extensions. 

In this paper, we present a language design that facilitates controlling the authority granted to each application module. The key technical novelty of our approach is that modules are firstclass, statically typed capabilities. First-class modules are essentially objects, and so we formalize our module system by translation into an object calculus and prove that the core calculus is typesafe and authority-safe. Unlike prior formalizations, our work defines authority non-transitively, allowing engineers to reason about software designs that use wrappers to provide an attenuated version of a more powerful capability. 

Our approach allows developers to determine a module's authority by examining the capabilities passed as module arguments when the module is created, or delegated to the module later during execution. The type system facilitates this by identifying which objects provide capabilities to sensitive resources, and by enabling security architects to examine the capabilities passed into and out of a module based only on the module's interface, without needing to examine the module's implementation code. An implementation of the module system and illustrative examples in the Wyvern programming language suggest that our approach can be a practical way to control module authority.

Original languageEnglish
Title of host publication31st European Conference on Object-Oriented Programming, ECOOP 2017
EditorsPeter Müller
Place of PublicationSaarbrücken/Wadern
PublisherSchloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
Number of pages27
ISBN (Electronic)9783959770354
DOIs
Publication statusPublished - Jun 2017
Externally publishedYes
Event31st European Conference on Object-Oriented Programming, ECOOP 2017 - Barcelona, Spain
Duration: 18 Jun 201723 Jun 2017

Publication series

NameLeibniz International Proceedings in Informatics, LIPIcs
Volume74
ISSN (Print)1868-8969

Conference

Conference31st European Conference on Object-Oriented Programming, ECOOP 2017
Country/TerritorySpain
CityBarcelona
Period18/06/1723/06/17

Fingerprint

Dive into the research topics of 'A Capability-Based Module System for Authority Control'. Together they form a unique fingerprint.

Cite this