Semantic information about programs and data, obtained from the programming language level, provides leverage for addressing difficult problems in computer systems. Programming language ideas can be applied effectively to problems in security, systems, and databases. I am particularly interested in using language-level information to
improve security guarantees, performance, and transparency for distributed systems and mobile code.
One example of this approach is my current work on the problem of protecting secret data. Current trends are making this problem both more important and more difficult. Computer systems are nearly completely connected via the Internet, allowing software to disseminate private information to almost any location. In addition, we increasingly use untrusted software; for example, downloaded software such as applets. Standard access-control mechanisms are inadequate because they do not control information propagation. The new programming language Jif judiciously extends Java with privacy annotations that facilitate static analysis of information flows within programs. Privacy annotations are decentralized in the sense that they work even in systems with mutual distrust. These innovations make Jif the most practical language yet implemented for static enforcement of privacy policies. Further areas of investigation include extensions to Jif to address covert channels and probabilistic computation, and its application to secure distributed computation.
Program Committee Member: 4th Symposium on Operating System Design and Implementation.
“Protecting Privacy using the Decentralized Label Model.” ACM Transactions on Software Engineering Methodology. To appear.