DOC PREVIEW
UT CS 395T - Security in Process Calculi

This preview shows page 1-2-19-20 out of 20 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 20 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Security in Process CalculiOverviewPi CalculusA Little Bit of HistoryPi Calculus SyntaxModeling Secrecy with ScopingSecrecy as EquivalenceAnother Formulation of SecrecyModeling Authentication with ScopingSpecifying AuthenticationA Key Establishment ProtocolKey Establishment in Pi CalculusApplied Pi CalculusApplied Pi Calculus: TermsApplied Pi Calculus: ProcessesModeling Crypto with FunctionsMore Equational TheoriesYet More Equational TheoriesDynamically Generated DataBetter Protocol with CapabilitiesCS 395TSecurity in Process CalculiOverview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 equivalencePi Calculus[Milner et al.]Fundamental language for concurrent systems• High-level mathematical model of parallel processes• The “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 languageA Little Bit of History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[Milner]Pi Calculus SyntaxTerms• M, N ::= xvariables| nnamesProcesses• P,Q ::= nil empty process| ū〈N〉.Psend term N on channel u| u(x).Preceive term from channel P and assign to x| !Preplicate process P| P|Qrun processes P and Q in parallel| (νn)Prestrict name n to process P}Let u range overnames and variablesModeling Secrecy with ScopingA sends M to B over secure channel cA BMchannel cA(M) = c〈M〉B = c(x).nilP(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 EquivalenceA(M) = c〈M〉.nilB = c(x).nilP(M) = (νc)(A(M)|B)Without (νc), attacker could run process c(x) and tell the differencebetween P(M) and P(M’)-P(M) and P(M’) are “equivalent” for any values of M and M’• No attacker can distinguish P(M) and P(M’)Different notions of “equivalence”• Testing equivalence or observational congruence• Indistinguishability by any probabilistic polynomial-time Turing machineAnother Formulation of SecrecyA(M) = c〈M〉.nilB = c(x).nilP(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)• Specification of secrecy:For any process Q in which n does not occur free, P(n) | Q will never output nModeling Authentication with ScopingA sends M to B over secure channel cB announces received value on public channel dA BA(M) = c〈M〉B = c(x).d〈x〉P(M) = (νc)(A(M)|B)MMchannel cchannel d--Specifying AuthenticationA(M) = c〈M〉B = c(x).d〈x〉P(M) = (νc)(A(M)|B)--Specification of authentication:For any value of M, if B outputs M on channel d, then A previously sent M on channel cA Key Establishment ProtocolA BSCASCSBCreate newchannel CABSend name CABSend name CABMchannel dSend data on CABM1. A and B have pre-established pairwise keys with server S Model these keys as names of pre-existing communication channels3. A sends M to B encrypted with the new key, B outputs M2. A creates a new key and sends it to S, who forwards it to B Model this as creation of a new channel nameKey Establishment in Pi CalculusA(M) =S =B =P(M) = (νcAS)(νcSB)(A(M)|B|S).cSB〈x〉cSB(x)__Note communication on a channelwith a dynamically generated nameA BSCASCSBSend name CABSend name CABMchannel dSend data on CABM.d〈y〉_Create newchannel CAB(νcAB)cAS〈cAB〉__cAS(x).cAB〈M〉__.x(y)Applied Pi CalculusIn 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 equationsApplied Pi Calculus: TermsM, N ::= xVariable| nName| f(M1,...,Mk)Function applicationStandard functions• pair(), encrypt(), hash(), …Simple type system for terms• Integer, Key, Channel〈Integer〉, Channel〈Key〉Applied Pi Calculus: ProcessesP,Q ::= nil empty process| ū〈N〉.Psend term N on channel u| u(x).Preceive from channel P and assign to x| !Preplicate process P| P|Qrun processes P and Q in parallel| (νn)Prestrict name n to process P| if M = Nconditionalthen P else QModeling 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)) = xsecond(pair(x,y)) = ySymmetric-key encryption• Functions symenc, symdec with equation:symdec(symenc(x,k),k)=xMore 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 MModels 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


View Full Document

UT CS 395T - Security in Process Calculi

Documents in this Course
TERRA

TERRA

23 pages

OpenCL

OpenCL

15 pages

Byzantine

Byzantine

32 pages

Load more
Download Security in Process Calculi
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Security in Process Calculi and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Security in Process Calculi 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?