Passer à la navigation principale Passer à la recherche Passer au contenu principal

Secure distributed programming with value-dependent types

  • Nikhil Swamy
  • , Juan Chen
  • , Cédric Fournet
  • , Pierre Yves Strub
  • , Karthikeyan Bhargavan
  • , Jean Yang
  • Microsoft Research
  • MSR-INRIA
  • INRIA Institut National de Recherche en Informatique et en Automatique
  • Massachusetts Institute of Technology

Résultats de recherche: Contribution à un journalArticleRevue par des pairs

Résumé

Distributed applications are difficult to program reliably and securely. Dependently typed functional languages promise to prevent broad classes of errors and vulnerabilities, and to enable program verification to proceed side-by-side with development. However, as recursion, effects, and rich libraries are added, using types to reason about programs, specifications, and proofs becomes challenging. We present F*, a full-fledged design and implementation of a new dependently typed language for secure distributed programming. Unlike prior languages, F* provides arbitrary recursion while maintaining a logically consistent core; it enables modular reasoning about state and other effects using affine types; and it supports proofs of refinement properties using a mixture of cryptographic evidence and logical proof terms. The key mechanism is a new kind system that tracks several sub-languages within F* and controls their interaction. F* subsumes two previous languages, F7 and Fine. We prove type soundness (with proofs mechanized in Coq) and logical consistency for F*. We have implemented a compiler that translates F * to .NET bytecode, based on a prototype for Fine. F * provides access to libraries for concurrency, networking, cryptography, and interoperability with C#, F#, and the other .NET languages. The compiler produces verifiable binaries with 60% code size overhead for proofs and types, as much as a 45x improvement over the Fine compiler, while still enabling efficient bytecode verification. To date, we have programmed and verified more than 20,000 lines of F* including (1) new schemes for multi-party sessions; (2) a zero-knowledge privacy-preserving payment protocol; (3) a provenance-aware curated database; (4) a suite of 17 web-browser extensions verified for authorization properties; and (5) a cloudhosted multi-tier web application with a verified reference monitor.

langue originaleAnglais
Pages (de - à)266-278
Nombre de pages13
journalACM SIGPLAN Notices
Volume46
Numéro de publication9
Les DOIs
étatPublié - 1 sept. 2011
Modification externeOui

Empreinte digitale

Examiner les sujets de recherche de « Secure distributed programming with value-dependent types ». Ensemble, ils forment une empreinte digitale unique.

Contient cette citation