WS – Security Policy Prabath Siriwardena Director, Security Architecture.

Slides:



Advertisements
Similar presentations
OGSA Security Profile 2.0 (a.k.a. Express Authentication Profile) DUANE MERRILL October 18, 2007.
Advertisements

Primer Maryann Hondo, IBM Umit Yalcinalp, SAP. Current Proposal Introduction The WS-Policy specification defines a policy to be a collection of policy.
WS-Policy F2F Austin, TX July 2006 Report on WS-Policy Interop Workshop of April 2006 (Round 3) Toufic Boubez Layer 7 Technologies.
IONA Technologies Position Paper Constraints and Capabilities for Web Services
WS-Policy Brian Garback. 2 Agenda  Introduction  Domain Terminology  Policy Expressions  Policy Assertions  Policy Attachments  Conclusion  Policy.
Claus von Riegen, SAP AG WS-Policy Overview W3C Workshop on Constraints and Capabilities for Web Services.
31242/32549 Advanced Internet Programming Advanced Java Programming
Web Service Security CS409 Application Services Even Semester 2007.
XML Encryption Prabath Siriwardena Director, Security Architecture.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
SSL CS772 Fall Secure Socket layer Design Goals: SSLv2) SSL should work well with the main web protocols such as HTTP. Confidentiality is the top.
SOA and Web Services. SOA Architecture Explaination Transport protocols - communicate between a service and a requester. Messaging layer - enables the.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
DESIGNING A PUBLIC KEY INFRASTRUCTURE
Web Services and the Semantic Web: Open Discussion Session Diana Geangalau Ryan Layfield.
WS-Security TC Christopher Kaler Kelvin Lawrence.
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
WS-PolicyNegotiate A Web Service Standard for Policy Negotiation by Nicholis Bufmack.
Applied Cryptography Week 13 SAML Applied Cryptography SAML and XACML Mike McCarthy Week 13.
WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001.
Web services security I
Secure Systems Research Group - FAU Web Services Standards Presented by Keiko Hashizume.
Constraints and Capabilities Workshop Oracle Position Ashok Malhotra Greg Pavlik.
X.509 Certificate management in.Net By, Vishnu Kamisetty
Module 14: WCF Send Adapters. Overview Lesson 1: Introduction to WCF Send Adapters Lesson 2: Consuming a Web Service Lesson 3: Consuming Services from.
WS-Security: SOAP Message Security Web-enhanced Information Management (WHIM) Justin R. Wang Professor Kaiser.
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
Web Services Security Standards Overview for the Non-Specialist Hal Lockhart Office of the CTO BEA Systems.
Dr. Bhavani Thuraisingham October 2006 Trustworthy Semantic Webs Lecture #16: Web Services and Security.
Web Services Standards. Introduction A web service is a type of component that is available on the web and can be incorporated in applications or used.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Internet Security. 2 PGP is a security technology which allows us to send that is authenticated and/or encrypted. Authentication confirms the identity.
17 March 2008 © 2008 The University of Edinburgh, European Microsoft Innovation Center and University of Southampton IT Innovation Centre 1 NextGRID Security.
An XML based Security Assertion Markup Language
Slide 1 © 2004 Reactivity The Gap Between Reliability and Security Eric Gravengaard Reactivity.
1 Web Service Description Language (WSDL) 大葉大學資工系.
WS-Trust “From each,according to his ability;to each, according to his need. “ Karl marx Ahmet Emre Naza Selçuk Durna
Secure Systems Research Group - FAU Patterns for Web Services Security Standards Presented by Keiko Hashizume.
W3C Web Services Architecture Security Discussion Kick-Off Abbie Barbir, Ph.D. Nortel Networks.
Prabath Siriwardena – Software Architect, WSO2. Patterns Standards Implementations Plan for the session.
Kemal Baykal Rasim Ismayilov
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
Leveraging Web Service Security Standards Richard Jacob WSRP F2F LA, March, 2004.
1 WS-Policy. 2 What’s the Problem? To use a web service a client needs more information than is provided in WSDL file. Examples: –Does service support.
© 2004 IBM Corporation WS-ResourceFramework Service Groups Tom Maguire.
Andrew J. Hewatt, Gayatri Swamynathan and Michael T. Wen Department of Computer Science, UC-Santa Barbara A Case Study of the WS-Security Framework.
Web Services Security INFOSYS 290, Section 3 Web Services: Concepts, Design and Implementation Adam Blum
IPSec is a suite of protocols defined by the Internet Engineering Task Force (IETF) to provide security services at the network layer. standard protocol.
Service Component Architecture (SCA) Policy FrameWork V1.0 Ashok Malhotra – Oracle Anish Karmarkar – Oracle David Booz - IBM …
Presented by: Sonali Pagade Nibha Dhagat paper1.pdf.
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
Service Description: Addressing & Policy COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Training for developers of X-Road interfaces
Sabri Kızanlık Ural Emekçi
WS-Policy Brian Garback Department of Computer Science
OAuth Design Team Call 11th February 2013.
InfiNET Solutions 5/21/
Presentation transcript:

WS – Security Policy Prabath Siriwardena Director, Security Architecture

Why we need a policy ? How come users get to know the security requirements of your web service? Web service may need client to authenticate Web service may need client to sign all his requests Client may need some part of the response from the service to be encrypted Client need the service to sign the entire response first and then encrypts

WS - Policy General framework for endpoints to express requirements. NOT just for security requirements Requirements are expressed in terms of a ‘Policy’ WS-Policy is a set of specifications providing a generalized mechanism for describing policy in a machine readable way.

WS-Policy & WSDL WSDL focuses on function descriptions Non-functional descriptions and QoS aspects are covered by WS-Policy Web services clients do not have a WSDL, yet WS- Policy also applies to web services clients

WS-Policy Framework WS-Policy, defines a framework for describing policy assertions. WS-PolicyAttachment, describes how policies are attached to resource [e.g. WSDL] WS-PolicyAssertions, describes a common set of assertions that are applicable across different domains.

WS-Policy Basic operators wsp:All wsp:ExactlyOne

WS-Policy -Example

and are commutative and are associative and are idempotent and are distributive WS-Policy

WS-SecurityPolicy Based on WS-Policy Various groups of policy assertions Expressed in WSDL Defines six policy assertions that apply to WS-Security To express security requirements of a Web service according to the WS-Policy spec – What needs to be protected – What tokens to use – Algorithms, reference types, etc..

Assertion Types Protection assertions Required Elements Assertion Token assertions Security Binding assertions Supporting token assertions Protocol assertions

Protection Assertions Specify what needs to be protected – Integrity Assertions – Confidentiality Assertions

Protection Assertions - Integrity SignedParts This assertion specifies the parts of the message that need integrity protection.

Protection Assertions - Integrity SignedElements This assertion is used to specify arbitrary elements in the message that require integrity protection. xs:string

Protection Assertions - Confidentiality EncryptedParts This assertion specifies the parts of the message that need confidentiality protection..

Protection Assertions - Confidentiality EncryptedElements This assertion is used to specify arbitrary elements in the message that require confidentiality protection. xs:string

Protection Assertion Example

Required Elements Assertion This assertion is used to specify header elements that the message MUST contain. …

Token Assertions Token assertions specify the type of tokens to use to protect or bind tokens and claims to the message. – UsernameToken – X. 509 – IssuedToken

Token Assertions - UsernameToken This element represents a requirement to include a UsernameToken

Token Assertions - IssuedToken This element represents a requirement for an issued token, that is one issued by some token issuer...

Token Assertions - IssuedToken This element represents a requirement for an issued token, that is one issued by some token issuer.

Token Assertions – X.509 This element represents a requirement for a binary security token carrying an X509 token.

Token Assertions – X.509

Token Assertions Token Inclusion – Never – Always – AlwaysToRecipient – Once

Token Assertions What we didn’t cover... – KerberosToken Assertion – SecurityContextToken Assertion – SecureConversationToken Assertion – SamlToken Assertion – HttpsToken Assertion

Security Bindings A set of properties that together provide enough information to secure a given message exchange. The bindings are identified primarily by the style of protection encryption used to protect the message exchange. A binding defines the following security characteristics: The minimum set of tokens that will be used and how they are bound to messages Any necessary key transfer mechanisms Any required message elements (e.g. timestamps) The content and ordering of elements in the wsse:Security header. Elements not specified in the binding are not allowed. How correlation of messages is performed securely (if applicable to the message pattern)

Security Binding Assertion AlgorithmSuite Assertion Layout Assertion TransportBinding Assertion SymmetricBinding Assertion AsymmetricBinding Assertion

AlgorithmSuite This assertion indicates a requirement for an algorithm suite

AlgorithmSuite

Layout This assertion indicates a requirement for a particular security header layout

Layout

TransportBinding Indicates that the transport layer is used to satisfy the security requirements......

TransportBinding

SymmetricBinding Indicates that the message layer is used to satisfy the security requirements Defines "Encryption Token" and "Signature Token" properties Where multiple messages are exchanged the tokens perform the same functions for all messages

SymmetricBinding

AsymmetricBinding Indicates that the message layer is used to satisfy the security requirements Defines “Initiator Token” and “Recipient Token” properties The Initiator Token is used for the message signature from initiator to recipient, and encryption from recipient to initiator. The Recipient Token is used for encryption from initiator to recipient, and for the message signature from recipient to initiator. Where multiple messages are exchanged the tokens perform different functions

AsymmetricBinding

SupportingTokens Services may require multiple sets of claims to be presented Corresponds to additional tokens in a message Supporting tokens are included in the security header and may optionally include additional message parts to sign and/or encrypt.

SupportingTokens

EncryptedSupportingTokens Encrypted supporting tokens are supporting tokens that are included in the security header and MUST be encrypted when they appear in the security header. Element encryption SHOULD be used for encrypting these tokens. The encrypted supporting tokens can be added to any SOAP message and do not require the “message signature” being present before the encrypted supporting tokens are added. Introduced in WS-Security Policy 1.2

SignedSupportingTokens Token specified under this assertion will be signed by the message signature.

SignedSupportingTokens If transport level security is used there won’t be any signature in the message.

SignedSupportingTokens

SignedEncryptedSupportingTokens Signed, encrypted supporting tokens are Signed supporting tokens that are also encrypted when they appear in the wsse:Security header. Element Encryption SHOULD be used for encrypting the supporting tokens. Introduced in WS-Security Policy 1.2

EndorsingSupportingTokens Endorsing tokens sign the message signature, that is they sign the entire ds:Signature element produced from the message signature and may optionally include additional message parts to sign and/or encrypt.

EndorsingSupportingTokens When transport level security is used – there is no message signature and the signature generated by the supporting token will sign the Timestamp.

EndorsingSupportingTokens

EncryptedEndorsingSupportingTokens Endorsing, encrypted supporting tokens are Endorsing supporting tokens that are also encrypted when they appear in the Security header. Element Encryption SHOULD be used for encrypting the supporting tokens. Introduced in WS-Security Policy 1.2

SignedEndorsingSupportingTokens Signed endorsing tokens sign the entire ds:Signature element produced from the message signature and are themselves signed by that message signature, that is both tokens (the token used for the message signature and the signed endorsing token) sign each other.

SignedEndorsingSupportingTokens When transport level security level is used there will be no message signature and the signature generated by the supporting token will sign the Timestamp.

EncryptedSignedEndorsingSupportingTokens Signed, endorsing, encrypted supporting tokens are signed, endorsing supporting tokens that are also encrypted when they appear in the wsse:Security header. Element Encryption SHOULD be used for encrypting the supporting tokens. Introduced in WS-Security Policy 1.2

WSS Assertions Specify supported version of WSS – sp:Wss10 – sp:Wss11 Specify supported token reference mechanisms via boolean properties Specify Signature Confirmation requirements for WSS 1.1

WSS10 Assertions

WSS11 Assertions

Trust Assertions Specify supported version of WS-Trust and associated properties – sp:Trust10

Trust Assertions

Associating a Policy Define the policy within the WSDL [ in the WSDL it self or pointed to from the WSDL] Stand alone policy which points back to the web service or services associated with it – Arbitrary Resource Attachment

Associating a Policy Arbitrary Resource Attachment

Associating a Policy Define the policy within the WSDL - Policy can be attached to different locations in the WSDL, which will give different meanings. - Policy that is attached higher in the hierarchy is inherited. - If lower level element has a policy defined for it, the parent’s attached policy will be merged with the child’s policy.

The Main Structure of WSDL xschema types … a set of operations communication protocols a list of binding and ports

Policy Subjects WS-Policy Attachment defines various attachment points for policy. – Message Policy Subject – Operation Policy Subject – Endpoint Policy Subject

Message Policy Subject wsdl:message wsdl:portType/wsdl:operation/wsdl:input wsdl:portType/wsdl:operation/wsdl:output wsdl:portType/wsdl:operation/wsdl:fault

Operation Policy Subject wsdl:portType/wsdl:operation wsdl:binding/wsdl:operation

Endpoint Policy Subject wsdl:portType wsdl:binding wsdl:port

Associating a Policy Define the policy within the WSDL <wsdl:message name=“LookupResponse” wsp:PolicyRef=“Q1” />

Associating a Policy Define the policy within the WSDL

Associating a Policy Define the policy within the WSDL

Normal Form Policy as a collection of policy alternatives A policy alternative as a collection of assertions Composed of a single operator containing one or more operators.

Normal Form

Nested Assertions Nested assertions describe requirements and alternatives for the enclosing assertion elements.

Nested Policy Normalization If an assertion in a normal form contains a nested policy, it can at most contain ONE policy alternative.

Nested Policy Normalization

Compatibility Two assertions are compatible if the QName value of one assertion matches with a Qname value of the other assertion. Two policies are compatible if an alternative in one is compatible with an alternative in the other. If two policies are compatible, their intersection is the set of the intersections between all pairs of compatible alternatives, choosing one alternative from each policy. If two policies are not compatible, their intersection has no policy alternatives.

Policy Intersection Useful when two or more parties express policy and want to limit the policy alternatives to those that are mutually compatible. Intersection takes two policies and returns a policy. There are two modes for intersection: strict and lax. How the mode is selected or indicated for the policy intersection is outside the scope of this specification.

Policy Intersection If the mode is strict, two policy alternatives A and B are compatible: if each assertion in A is compatible with an assertion in B, and if each assertion in B is compatible with an assertion in A. If the mode is lax, two policy alternatives A and B are compatible: if each assertion in A that is not an ignorable policy assertion is compatible with an assertion in B, and if each assertion in B that is not an ignorable policy assertion is compatible with an assertion in A.

lean. enterprise. middleware