Title: DIMACS workshop, May 5
1DIMACS workshop, May 56 2005Formal Tools for
Web Services Security
- Cédric Fournet
- Microsoft Research, Cambridge
- joint work with
- Karthik Bhargavan, Andy Gordon, Greg OShea,
Riccardo Pucella, Ricardo Corin
MSRC Samoa Details, papers, tools, pointers at
http//Securing.WS
2Our starting point (2003)
- Two parallel trends over past five years
- Rapid invention and deployment of
XML-basedcrypto protocols for securing web
services - Flexible message formats for interop
- Enables home-grown protocols
- New crypto protocols are often wrong, XML or not
- Sustained and successful effort to develop
formalisms and tools to verify crypto protocols - (DolevYao, BAN,) FDR, Athena, Isabelle,
ProVerif, - At MSRC spi, sjoin, Cryptyc, applied pi
calculus, - Timely opportunity to develop tools for
validating standards-based XML crypto protocols
3Web Services Security
- SOAP level security aims to provide end-to-end,
compositional application-level security,
independently of transport protocol - Fresh standards
- Security Roadmap
- WS-Security, May 2004 (Draft Apr 2002)
- WS-Trust, WS-SecureConversation,
WS-SecurityPolicy, - A grammar for SOAP-based security protocols
- Automated processing of security headers
- Informal semantics except for XML syntax
- Security tokens wire format for claims and
evidence - Keys, certificates, x509 signatures, Kerberos
tickets,
4Securing SOAP Messages
UsernameToken assumes both parties know Alices
secret password p
ltEnvelopegt ltHeadergt ltSecuritygt
ltUsernameToken Id1gt
ltUsernamegtAlice"
ltNoncegt"mTbzQM84RkFqzalIes/xw"
ltCreatedgt"2004-09-01T133150Z"
ltSignaturegt ltSignedInfogt
ltSignatureMethod Algorithmhmac-sha1gt
ltReference URI2gt
ltDigestValuegt"U9sBHidIkVvKA4vZo0gGKxMhA1g
ltSignatureValuegt"8/ohMBZ5JwzYyuPOU/v
879R01s" ltKeyInfogt
ltSecurityTokenReferencegt
ltReference URI1 ValueTypeUsernameTokengt
ltBody Id2gt ltStockQuoteRequestgt
ltsymbolsgt ltSymbolgt"FABRIKAM"
ltSymbolgt"CONTOSO"
ltSecuritygt header defined by OASIS WS-Security
2004 includes identity tokens, signatures,
encrypted message parts
Each DigestValue is a cryptographic hash of the
URI target
Dozens of implementations, including Microsoft
Web Services Enhancements (WSE)
hmacsha1(key, SignedInfo) where
key?psha1(pnoncecreated)
5Attacks on SOAP security
- Web services vulnerable to same sorts of attacks
as conventional websites - Buffer overruns, denial of service, SQL
injection, etc - New concerns flexible, XML-based protocols
- Web services developers can design and
deploytheir own application-specific security
protocols - XML message format open to rewriting attacks
- Much like classic active attackers
(Needham-Schroeder 78) - Opponent can redirect, replay, modify,
impersonate - New message processing is driven by a
flexible,semi-structured message format - Flexibility is usually bad news for security
- We have found a range of problems in specs
code,thus motivating our research on theory and
tools
6A Signed SOAP Message Before...
Message to banks web service says Transfer
1000 to Bob, signed Alice
ltEnvelopegt ltHeadergt ltSecuritygt
ltUsernameToken Id2gt
ltUsernamegtAlicelt/gt
ltNoncegtcGxr8w2AnBUzuhLzDYDoVwlt/gt
ltCreatedgt2003-02-04T164945Zlt/gt
ltSignaturegt ltSignedInfogt
ltReference URI 1gtltDigestValuegtEgo0...
lt/gt ltSignatureValuegtvSB9JU/Wr8ykpA
laxCx2KdvjZcclt/gt ltKeyInfogt
ltSecurityTokenReferencegtltReference
URI2/gt ltBody Id1gt ltTransferFundsgt
ltbeneficiarygtBoblt/gt
ltamountgt1000lt/gt
Bank can verify the signature has been computed
using key derived from Alices secret password
7and After an XML Rewriting Attack
Charlie has intercepted and rewritten this message
ltEnvelopegt ltHeadergt ltSecuritygt
ltUsernameToken Id2gt
ltUsernamegtAlicelt/gt
ltNoncegtcGxr8w2AnBUzuhLzDYDoVwlt/gt
ltCreatedgt2003-02-04T164945Zlt/gt
ltSignaturegt ltSignedInfogt
ltReference URI 1gtltDigestValuegtEgo0...
lt/gt ltSignatureValuegtvSB9JU/Wr8ykpA
laxCx2KdvjZcclt/gt ltKeyInfogt
ltSecurityTokenReferencegtltReference
URI2/gt ltBogusHeadergt ltBody
Id1gt ltTransferFundsgt
ltbeneficiarygtBoblt/gt
ltamountgt1000lt/gt ltBodygt
ltTransferFundsgt ltbeneficiarygtCharlielt/
gt ltamountgt5000lt/gt
The indirect signature of the body, now hidden in
BogusHeader, may still appear valid
Although Alices password has not been broken,
the message now reads Transfer 5000 to Charlie,
signed Alice
8The Samoa Project Tools
- If misconfigured or mis-implemented,
WS-Securityprotocols vulnerable to XML rewriting
attacks - TulaFale shows the absence of such
attacksgiven a description of the protocol - First analysis tool for XML-based crypto
protocols - Automatic analysis of hand-written models
viaapplied pi calculus and Bruno Blanchets
ProVerif tool - Policy generator/analyzer produces
TulaFalefrom declarative XML policy files that
drive WSE 2.0 - Hence, can directly analyze WSE 2.0
configurations - First source-based formal verification of
interoperable implementations of crypto protocols - Policy advisor runs 35 queries for
securityerrors found in reviews of sample
policies
9TulaFale
10TulaFale a language for WS-Sec
TulaFale pi XML predicates assertions
We designed TulaFale, a programming language to
model WSE protocols and hand-wrote models for a
series of WSE protocols(POPL04, FMCO03)
What TulaFale does
TulaFale script
predicatelibrary
WSE 1.0 out of the box
TulaFale
C code
intermediate pi-calculus
WSE 1.0
CLR (IL)
ProVerif AnalyzerB. Blanchet
OK, orNo because
SOAP processing
11Pi Calculus Cryptography
- Milner, Parrow, Walker (1989)
- Computation is name-passingbetween parallel
processes onnamed channels. Each namehas a
mobile scope. - Spi calculus Pi cryptographicoperations
(Abadi Gordon 1999) - Mobile scopes can representlocal keys and fresh
nonces - Processes represent protocol configurations
- Contexts represent active attackers
- Applied Pi Pi equational theory (Abadi Fournet
2001) - There is a generally-useful theory (equivalences,
proofs) - Using tools such as ProVerif (Blanchet 2001), we
can mix manual and automated proofs of various
security properties
12Example A Secure RPC
- A typical system model
- A single certification authority (CA) issuing
X.509 public-key certificates for services,
signed with the CA's private key. - Two servers, each equipped with a public key
certified by the CA and exporting an arbitrary
number of web services - Multiple clients, acting on behalf of human users
- Threat model an active attacker, in control of
network, but knowing none of - The private key of the CA
- The private key of any public key certified by
the CA - The password of any user in the database
- Security goals authentication of each
messageand correlation of request and response
13An intended run of the protocol
Server(sx,cert,S)
Client(kr,U)
begin C1 (U,S,id1,t1,b1)
isMsg1(-,U,S,id1,t1,b1)
end C1 (U,S,id1,t1,b1)
begin C2 (U,S,id1,t1,b1,id2,t2,b2)
isMsg2(-,S,id1,id2,t2,b2)
end C2 (U,S,id1,t1,b1,id2,t2,b2)
Msg 1 includes signature of S,id1,t1,b1 under key
derived from username token for U
Msg 2 includes signature of id1,id2,t2,b2 under
public key of S
14piXMLpredicatesassertions
TulaFale predicates defined by Horn clauses with
message patterns
For example, this predicate is usedin two ways,
to construct and parse Message 1
TulaFale messages are terms in a many-sorted
algebra with sorts
15piXMLpredicatesassertions
TulaFale library includes predefined predicates
for XML signatures and encryption
For example, this predicate uses these predicates
to check structure of Message 1
16piXMLpredicatesassertions
- The implicit attacker, running in parallel, can
- Send and receive on the soap channel
- Generate arbitrarily many users and services
- Initiate arbitrarily many sessions
17piXMLpredicatesassertions
By sending a message on init, the attacker can
pick any payload and destination
Each begin-event marksthe intent to send a
message
Messages are exchanged on a public SOAP channel
Each end-event marksthe intent to accept a
message as valid
18Some Tulafale queries
We also run basic reachability queries (sanity
checks)
We verify two correspondence properties from
end-events to begin-event with matching contents
(including both messages for C2)
19Suppose a client does not sign the message
identifier id1...
Opponent
Server(sx,cert,S)
Client(kr,U)
begin C1 (U,S,id1,t1,b1)
isMsg1(-,U,S, id1,t1,b1)
Copy
end C1 (U,S,id1,t1,b1)
id1id2, Replay
isMsg1(-,U,S, id2,t1,b1)
end C1 (U,S,id2,t1,b1)
Pair (id1,t1) uniquely identifies the message
only if id1 and t1 are signed We found and fixed
faults like this in preliminary WSE samples
20What else might go wrong?
Opponent
Server(sx,cert,S)
Client(kr,U)
isMsg1(-,U,S, id1,t1,b1)
begin C2 (U,S,id1,t1,b1,id2,t2,b2)
Call 1
isMsg2(-,S,id1, id2,t2,b2)
SOAP Fault
isMsg1(-,U,S, id1,t1,b1)
Call 2, re-using id1
isMsg2(-,S,id1, id2,t2,b2)
end C2 (U,S,id1,t1,b1,id2,t2,b2)
If the client doesnt generate fresh id1s, then
message correlation (C2) fails the tool easily
finds this bug
21Secure Conversations
22A TulaFale Summer Case Study
- WS-Security provides basic mechanisms to secure
SOAP traffic, one message at a time - Signing and encryption keys derived from
long-lived secrets like passwords or private keys - If a SOAP interaction consists of multiple,
related messages, WS-Security alone may be
inefficient, and does not secure session
integrity - Standard idea establish short-lived session key
- Recent specs describe this idea at the SOAP-level
- WS-SecureConversation defines security contexts,
used to secure sessions between two parties - WS-Trust defines how security contexts are issued
and obtained
23A Typical System
STS
1. RST
Trust
2. RSTR
Client
SCs
SCT
SC
Secure Conv
3. Session Exchanges
Service
STS Security Token Server RST Request
Security Token RSTR RST Response
SC Security Context SCT SC Token
24Open-Ended Conversations
- We prove authentication forwhole sessions
- We rely on some combination of manual and
automated proofs
Client
Service
get SC
get SC
begin Cn
end Cn
begin Cn
end Cn
for n 0
25Discussion
- A first formal analysis of WS-Trust
andWS-SecureConversation - XML syntax and automation very effective,against
a demanding, realistic attacker model - Approx 1000 lines of script too large for
manual proofs - As is common, these specs
- focus on message formats for interoperability
- are non-committal regarding security,for
example, no clear spec of contents of SCs - By making modes, data, and goals explicit, we
found design and implementation bugs
26Policy-Based Security
27Security Policies
- Clients, services use XML files to pick security
mechanisms - Located in same IIS virtual directory
- Describe protocols to use for different services
- Simple declarative description of deployed
protocols - No need to look at messy C code
- We analyze policy files collected from client and
servers - Easy to get them wrong
- Many policies are insecure
- Combination of policies may have unexpected
effects
ltPolicy IdMsg1"gt ltAllgt
ltConfidentialitygt ltTokenInfogt
ltSecurityTokengt
ltTokenTypegtX509v3lt/gt
ltClaimsgtltSubjectNamegtSlt/gtlt/gt
ltMessagePartsgtBody()lt/gt ltIntegritygt
ltTokenInfogt ltSecurityTokengt
ltTokenTypegtUsernameTokenlt/gt
ltClaimsgtltSubjectNamegtUlt/gtlt/gt
ltMessagePartsgtBody() Header("To")
Header("MessageId)lt/gt
28Modelling Security Policies
What our tools do
In WSE 2.0, WS-SecurityPolicy files drive
security hence, we can generate TulaFale
directly from implementation files(CCS04)
spec L of a secure link
Generator C(-)
Analyzer S(-,-)
WSE 2.0 out of the box
Static warnings
C code
policy config C(L)
predicatelibrary
TulaFale script S(C(L),L)
WSE 2.0
TulaFale
CLR (IL)
ProVerif (pi calculus)
OK, orNo because
SOAP processing
29Security for Any Client Policy?
- Theorem If a service uses a link-generated
policy, then irrespective of the client policies,
the resulting configuration preserves request
authentication and response secrecy - Hence, naïve clients cannot break service
authentication - Proof
- Combination of automated proofs and manual
reasoning - Hint Even the weakest send policy
preservessecrecy of passwords and signing keys
30WSE2 Policy Advisor(demo)
31Summary
- Web services security specs encourage extreme
flexibility - Message formats, composable protocols,
configurations - Specs and implementations are only just emerging
- Attacks and proofs are subtle tool support
needed - We bridge the gap between theoretical pi threat
modeland XML as used in WS security protocols - Put effort into real samples implementations,
found bugs - Obtained theorems about wire-level protocols
- Exploited automation for authentication secrecy
properties - We develop tools for the automated analysis
ofsecurity for deployed systems based on crypto
protocols - Proving protocols secure in isolation is not
enough - Our tools find attacks, verify configs, generate
safe configs - Good place to develop formal tools, get positive
results - Standard message formats, composition, wide
applicability
Details, papers, tools, pointers at
http//Securing.WS