[LINK] The Jeeves Programming Language
stephen at melbpc.org.au
stephen at melbpc.org.au
Fri Jan 27 01:28:47 AEDT 2012
Jeeves Programming Language
<http://www.newscientist.com> 25th January 2012 by Jacob Aron
Researchers at the Massachusetts Institute of Technology have come up
with a new programming language, called Jeeves, that automatically
enforces privacy policies.
Programmers have to explicitly ensure data flowing through their software
obeys necessary privacy policies, but it is easy to slip up and let
information leak out.
Jeeves solves that by substituting the value of variables within the
software depending on who the user is.
For example, say Alice posts a message but doesn't want anyone but
herself to see who wrote it. The programmer can use the variable "author"
without worrying what the user sees - when the software runs, Jeeves
ensures Alice will see her own name, but everyone else logging in will
see "Anonymous".
Jean Yang, who helped develop Jeeves, says the new language lets a
programmer delegate privacy responsibilities and concentrate on the
actual function of their code, much like a party host might entrust their
butler with ensuring the needs of each guest are met so they can spend
more time socialising ..
Jeeves Website: <https://sites.google.com/site/jeevesprogramming/home>
It is becoming increasingly important for applications to not leak
sensitive data.
With current techniques, the programmer bears the burden of ensuring that
the application's behavior adheres to policies about information flow.
Unfortunately, privacy policies are difficult to manage because their
global nature requires coordinated reasoning and enforcement.
To address this problem, we describe a programming model that makes the
system responsible for ensuring adherence to privacy policies.
The programming model has two components: core programs describing
functionality independent of privacy concerns and declarative,
decentralized policies controlling how sensitive values are disclosed
depending on the context. The system is responsible for automatically
ensuring outputs are consistent with the policies.
We have implemented this programming model in a new functional constraint
language named Jeeves.
In Jeeves, sensitive values are introduced as symbolic variables and
policies correspond to constraints that are resolved at output channels.
We have implemented Jeeves as an embedded domain-specific language in
Scala using an SMT solver as a model finder.
Jeeves Programming Language
We present the Jeeves language, which allows the programmer provide
privacy policies separately from the core program. The programmer can
introduce sensitive values into a core program written independently of
policies, provide decentralized and declarative policies, and rely on the
runtime system to automatically enforce the policies in the context of
each output channel.
Implementation
We have implemented Jeeves as an embedded domain-specific language in
Scala. Our implementation supports symbolic evaluation of expressions
containing sensitive values, stores a constraint environment to propagate
policies, and uses the Z3 SMT solver to determine outputs consistent with
policies. Jeeves supports equality constraints on immutable integers,
booleans, and objects.
The code is on Google code here: http://code.google.com/p/scalasmt/
We have a platform ScalaSMT for general-purpose constraint-based
programming in Scala (browse here) ..
http://code.google.com/p/scalasmt/source/browse/#hg%2Fsrc%2Fmain%2Fscala
. and a more specialized Jeeves library on top of that (browse here) ..
<http://code.google.com/p/scalasmt/source/browse/#hg%2Fsrc%2Fmain%2Fscala%
2Fjeeves>
--
Cheers,
Stephen
More information about the Link
mailing list