Process Calculus and Security

Slides:



Advertisements
Similar presentations
07/09/2014 Agay Spring School, March'02 Mobility 2 : Mobile Values Cédric Fournet Microsoft Research Cambridge (joint work with Martin Abadi)
Advertisements

Computational Privacy. Overview Goal: Allow n-private computation of arbitrary funcs. –Impossible in information-theoretic setting Computational setting:
Foundations of Cryptography Lecture 10 Lecturer: Moni Naor.
Course on Probabilistic Methods in Concurrency (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 The pi-calculus and the asynchronous.
CS 395T Computational Soundness of Formal Models.
Analysis of Security Protocols (V) John C. Mitchell Stanford University.
ECOMMERCE TECHNOLOGY SUMMER 2002 COPYRIGHT © 2002 MICHAEL I. SHAMOS Cryptographic Security.
ECOMMERCE TECHNOLOGY FALL 2003 COPYRIGHT © 2003 MICHAEL I. SHAMOS Cryptography.
Co-operative Private Equality Test(CPET) Ronghua Li and Chuan-Kun Wu (received June 21, 2005; revised and accepted July 4, 2005) International Journal.
Receipt-freeness and coercion-resistance: formal definitions and fault attacks Stéphanie Delaune / Steve Kremer / Mark D. Ryan.
Spi Calculus Gokhan Gokoz Chad R. Meiners. What Spi Calculus Is Spi calculus is a form of pi calculus extended to support cryptography. Pi calculus is.
1 © IBM, A Reactively Secure Dolev-Yao-style Cryptographic Library DIMACS, June 2004 Michael Backes, Birgit Pfitzmann, Michael Waidner IBM Research,
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
CS555Spring 2012/Topic 41 Cryptography CS 555 Topic 4: Computational Approach to Cryptography.
Feb 19, 2002Mårten Trolin1 Previous lecture Practical things about the course. Example of cryptosystem — substitution cipher. Symmetric vs. asymmetric.
Process Calculus and Security 18739A: Foundations of Security and Privacy Anupam Datta Fall
Universally Composable Symbolic Analysis of Security Protocols Jonathan Herzog (Joint work with Ran Canetti) 7 June 2004 The author's affiliation with.
Automatic Implementation of provable cryptography for confidentiality and integrity Presented by Tamara Rezk – INDES project - INRIA Joint work with: Cédric.
A Cryptography Tutorial Jim Xu College of Computing Georgia Tech
CS5204 – Fall Cryptographic Security Presenter: Hamid Al-Hamadi October 13, 2009.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 9: Cryptography.
CIS 5371 Cryptography Introduction.
Security in Process Calculi CS 259 Vitaly Shmatikov.
Authentication and Authorization Authentication is the process of verifying a principal’s identity (but how to define “identity”?) –Who the person is –Or,
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
The Spi Calculus A Calculus for Cryptographic Protocols Presented By Ramesh Yechangunja.
CS526: Information Security Prof. Sam Wagstaff September 16, 2003 Cryptography Basics.
Basic Cryptography 1. What is cryptography? Cryptography is a mathematical method of protecting information –Cryptography is part of, but not equal to,
1 Reasoning about Concrete Security in Protocol Proofs A. Datta, J.Y. Halpern, J.C. Mitchell, R. Pucella, A. Roy.
Security in Process Calculi CS 395T. Overview uPi calculus Core language for parallel programming Modeling security via name scoping uApplied pi calculus.
15-499Page :Algorithms and Applications Cryptography I – Introduction – Terminology – Some primitives – Some protocols.
1 CIS 5371 Cryptography 1.Introduction. 2 Prerequisites for this course  Basic Mathematics, in particular Number Theory  Basic Probability Theory 
JFK Protocol in Applied Pi Calculus CS 395T. Proving Security u“Real” protocol Process-calculus specification of the actual protocol u“Ideal” protocol.
Systems Architecture Receiver Anonymity Matthias Füssel, Dennis Schneider June 5, 2007.
Message Authentication Code
Attacks on Public Key Encryption Algorithms
Encryption and Integrity
Symmetric Cryptography
Key Exchange References: Applied Cryptography, Bruce Schneier
Cryptographic Hash Function
Security Protocols Analysis
Fundamental Concepts in Security and its Application Cloud Computing
Cryptography.
Presented by: Dr. Munam Ali Shah
The first Few Slides stolen from Boaz Barak
Course Business I am traveling April 25-May 3rd
Just Fast Keying (JFK) Protocol
Analyzing Key Distribution and Authentication Protocols
Cryptography Basics and Symmetric Cryptography
Man in the Middle Attacks
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Soundness of Formal Encryption in the Presence of Key Cycles
Security through Encryption
Chapter 11 – Message Authentication and Hash Functions
CS/ECE 478 Network Security Dr. Attila Altay Yavuz
Introduction to Symmetric-key and Public-key Cryptography
Protocol Verification by the Inductive Method
Probabilistic Polynomial-Time Calculus
Cryptography Lecture 11.
Outline Using cryptography in networks IPSec SSL and TLS.
Provable Security at Implementation-level
Lecture 10: Network Security.
Cryptography Lecture 5.
Chapter -7 CRYPTOGRAPHIC HASH FUNCTIONS
Cryptography Lecture 9.
Digital Signatures Reference: Pfleeger , Charles P., Security in Computing, 2nd Edition, Prentice Hall, /7/2019 Ref: Pfleeger96, Ch.4.
Protocol Verification by the Inductive Method
Cryptography Lecture 10.
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Review of Cryptography: Symmetric and Asymmetric Crypto Advanced Network Security Peter Reiher August, 2014.
Presentation transcript:

Process Calculus and Security CS 259 Process Calculus and Security John Mitchell (with some slides from Vitaly Shmatikov)

Overview Pi calculus Applied pi calculus Core language for parallel programming Modeling security via name scoping Applied pi calculus Modeling cryptographic primitives with functions and equational theories Equivalence-based notions of security A little bit of operational semantics Security as testing equivalence

Pi Calculus Modeling language for concurrent systems [Milner et al.] Modeling language for concurrent systems High-level mathematical model of parallel processes A “core” of concurrent programming languages By comparison, lambda-calculus is the “core” of functional programming languages Mobility is a basic primitive Basic computational step is the transfer of a communication link between two processes Interconnections between processes change as they communicate Can be used as a general programming language In theory at least; see Pierce’s Pict implementation

A Little Bit of History 1980: Calculus of Communicating Systems (CCS) [Milner] 1980: Calculus of Communicating Systems (CCS) 1992: Pi Calculus [Milner, Parrow, Walker] Ability to pass channel names between processes 1998: Spi Calculus [Abadi, Gordon] Adds cryptographic primitives to pi calculus Security modeled as scoping Equivalence-based specification of security properties Connection with computational models of cryptography 2001: Applied Pi Calculus [Abadi, Fournet] Generic functions, including crypto primitives

} Pi Calculus Syntax Terms Processes M, N ::= x variables | n names P,Q ::= nil empty process | ūN.P send term N on channel u | u(x).P receive term from channel P and assign to x | !P replicate process P | P|Q run processes P and Q in parallel | (n)P restrict name n to process P } Let u range over names and variables

Examples Process to send a message - Process to receive x and send x+1 cM Process to receive x and send x+1 c(x). cx+1 Process to compute n factorial c(n,1) | ![ c(x,y). if x>0 then cx-1,y*x else dy] With input and output from channel d d(z). ( c)( c(z,1) | ![ … if … then … else dy] ) Other processes can send, receive on d, but cannot see actions on private channel c - - - - -

Interaction with other processes vs b c b c

Modeling Secrecy with Scoping A sends M to B over secure channel c A B M channel c - A(M) = cM B = c(x).nil P(M) = (c)(A(M)|B) This restriction ensures that channel c is “invisible” to any process except A and B (other processes don’t know name c)

Secrecy as Equivalence - Without (c), attacker could run process c(x) and tell the difference between P(M) and P(M’) A(M) = cM B = c(x).nil P(M) = (c)(A(M)|B) P(M) and P(M’) are “equivalent” for any values of M and M’ No attacker can distinguish P(M) and P(M’)

Another Formulation of Secrecy - A(M) = cM B = c(x).nil P(M) = (c)(A(M)|B) No attacker can learn name n from P(n) Let Q be an arbitrary attacker process, and suppose it runs in parallel with P(n) For any process Q in which n does not occur, P(n) | Q will never output n

Modeling Authentication with Scoping A sends M to B over secure channel c B announces received value on public channel d A B M M channel c channel d - A(M) = cM B = c(x).dx P(M) = (c)(A(M)|B) -

Specifying Authentication - A(M) = cM B = c(x).dx P(M) = (c)(A(M)|B) - For any value of M, if B outputs M on channel d, then A previously sent M on channel c

A Key Establishment Protocol Send name CAB Send name CAB CAS CSB A B M M Create new channel CAB Send data on CAB channel d A and B have pre-established pairwise keys with server S Model these keys as names of pre-existing communication channels A creates a new key and sends it to S, who forwards it to B Model this as creation of a new channel name A sends M to B encrypted with the new key, B outputs M

Key Establishment in Pi Calculus Send name CAB Send name CAB CAS CSB A B M M Create new channel CAB Send data on CAB channel d __ __ A(M) = (cAB) S = cAS(x).cSBx B = cSB(x) P(M) = (cAS)(cSB)(A(M)|B|S) cAScAB .cABM __ _ Note communication on a channel with a dynamically generated name .x(y).dy

Applied Pi Calculus In pure pi calculus, channels are the only primitive This is enough to model some forms of security Name of a communication channel can be viewed as an “encryption key” for traffic on that channel A process that doesn’t know the name can’t access the channel Channel names can be passed between processes Useful for modeling key establishment protocols To simplify protocol specification, applied pi calculus adds functions to pi calculus Crypto primitives modeled by functions and equations

Applied Pi Calculus: Terms M, N ::= x Variable | n Name | f(M1,...,Mk) Function application Standard functions pair(), encrypt(), hash(), … Simple type system for terms Integer, Key, ChannelInteger, ChannelKey

Applied Pi Calculus: Processes P,Q ::= nil empty process | ūN.P send term N on channel u | u(x).P receive from channel P and assign to x | !P replicate process P | P|Q run processes P and Q in parallel | (n)P restrict name n to process P | if M = N conditional then P else Q

Modeling Crypto with Functions Introduce special function symbols to model cryptographic primitives Equational theory models cryptographic properties Pairing Functions pair, first, second with equations: first(pair(x,y)) = x second(pair(x,y)) = y Symmetric-key encryption Functions symenc, symdec with equation: symdec(symenc(x,k),k)=x

More Equational Theories Public-key encryption Functions pk,sk generate public/private key pair pk(x),sk(x) from a random seed x Functions pdec,penc model encryption and decryption with equation: pdec(penc(y,pk(x)),sk(x)) = y Can also model “probabilistic” encryption: pdec(penc(y,pk(x),z),sk(x)) = y Hashing Unary function hash with no equations hash(M) models applying a one-way function to term M Models random salt (necessary for semantic security)

Yet More Equational Theories Public-key digital signatures As before, functions pk,sk generate public/private key pair pk(x),sk(x) from a random seed x Functions sign,verify model signing and verification with equation: verify(y,sign(y,sk(x)),pk(x)) = y XOR Model self-cancellation property with equation: xor(xor(x,y),y) = x Can also model properties of cyclic redundancy codes: crc(xor(x,y)) = xor(crc(x),crc(y))

Dynamically Generated Data Use built-in name generation capability of pi calculus to model creation of new keys and nonces A B (M,s) M channel c channel d - A(M) = c(M,s) B = c(x).if second(x)=s then dfirst(x) P(M) = (s)(A(M)|B) - Models creation of fresh capability every time A and B communicate capability s may be intercepted!

Better Protocol with Capabilities (M,hash(s,M)) M channel c channel d Hashing protects integrity of M and secrecy of s - A(M) = c(M,hash(s,M)) B = c(x).if second(x)= hash(s,first(x)) then dfirst(x) P(M) = (s)(A(M)|B) -

Proving Security “Real” protocol “Ideal” protocol Process-calculus specification of the actual protocol “Ideal” protocol Achieves the same goal as the real protocol, but is secure by design Uses unrealistic mechanisms, e.g., private channels Represents the desired behavior of real protocol To prove the real protocol secure, show that no attacker can tell the difference between the real protocol and the ideal protocol Proof will depend on the model of attacker observations

Example: Challenge-Response Challenge-response protocol A  B {i}k B  A {i+1}k This protocol is secure if it is indistinguishable from this “ideal” protocol A  B {random1}k B  A {random2}k

Example: Authentication Authentication protocol A  B {i}k B  A {i+1}k A  B “Ok” This protocol is secure if it is indistinguishable from this “ideal” protocol A  B {random1}k B  A {random2}k B  A random1, random2 on a magic secure channel A  B “Ok” if numbers on real & magic channels match

Security as Observational Equivalence Need to prove that two processes are observationally equivalent to the attacker Complexity-theoretic model Prove that two systems cannot be distinguished by any probabilistic polynomial-time adversary [Beaver ’91, Goldwasser-Levin ’90, Micali-Rogaway ’91] Abstract process-calculus model Cryptography is modeled by abstract functions Prove testing equivalence between two processes Proofs are easier, but it is nontrivial to show computational completeness [Abadi-Rogaway ’00]

Structural Equivalence P | nil  P P | Q  Q | P P | (Q | R)  (P | Q) | R !P  P | !P (m) (n)P  (n) (m)P (n)nil  nil (n)(P | Q)  P | (n)Q if n is not a free name in P P[M/x]  P[N/x] if M=N in the equational theory

Operational Semantics Reduction  is the smallest relation on closed processes that is closed by structural equivalence and application of evaluation contexts such that āM.P | a(x).Q  P | Q[M/x] models P sending M to Q on channel a if M = M then P else Q  P if M = N then P else Q  Q for any ground M, N s.t. M  N in the equational theory

Equivalence in Process Calculus Standard process-calculus notions of equivalence such as bisimulation are not adequate for cryptographic protocols Different ciphertexts leak no information to the attacker who does not know the decryption keys (k)csymenc(M,k) and (k)csymenc(N,k) send different messages, but they should be treated as equivalent when proving security In each case, a term is encrypted under a fresh key No test by the attacker can tell these apart - -

Testing Equivalence Informally, two processes are equivalent if no environment can distinguish them A test is a process R and channel name w Informally, R is the environment and w is the channel on which the outcome of the test is announced A process P passes a test (R,w) if P | R may produce an output on channel w There is an interleaving of P and R that results in R being able to perform the desired test Two processes are equivalent if they pass the same tests

Advantages and Disadvantages Proving testing equivalence is hard Need to quantify over all possible attacker processes and all tests they may perform There are some helpful proof techniques, but no fully automated tools and very few decision procedures Testing equivalence is a congruence Can compose protocols like building blocks Equivalence is the “right” notion of security Direct connection with definitions of security in complexity-theoretic cryptography Contrast this with invariant- and trace-based definitions

Bibliography Robin Milner. “Communication and Concurrency”. Prentice-Hall, 1989. Calculus of communicating systems (CCS) Robin Milner. “Communicating and Mobile Systems: the -Calculus”. Cambridge University Press, 1999. Pi calculus Martin Abadi and Andrew Gordon. “A calculus for cryptographic protocols: the spi-calculus”. Information and Computation 148(1), 1999. Spi calculus Martin Abadi and Cedric Fournet. “Mobile values, new names, and secure communication”. POPL 2001. Applied pi calculus Martin Abadi and Phillip Rogaway. “Reconciling two views of cryptography”. Journal of Cryptology 15(2), 2002. On equivalence of complexity-theoretic and process-calculus models