GWD-R.P (submitted for consideration)



Similar documents
Chris Smith, Platform Computing Marvin Theimer, Microsoft Glenn Wasson, UVA July 14, 2006 Updated: October 2, 2006

2 Transport-level and Message-level Security

Web Services Security X509 Binding

OGSA Security Roadmap

Bindings for the Service Provisioning Markup Language (SPML) Version 1.0

[MS-SPEMAWS]: SharePoint Web Service Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

This Working Paper provides an introduction to the web services security standards.

[MS-BDSRR]: Business Document Scanning: Scan Repository Capabilities and Status Retrieval Protocol

[MS-SAMLPR]: Security Assertion Markup Language (SAML) Proxy Request Signing Protocol

SAML V2.0 Asynchronous Single Logout Profile Extension Version 1.0

[MS-DVRD]: Device Registration Discovery Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Grid Delegation Protocol

Trouble Ticket Exchange Specification. This draft invites discussions and suggestions for improvements. The distribution of the document is unlimited.

Digital Signature Web Service Interface

Web Services Security SOAP Messages with Attachments (SwA) Profile 1.1

Java Security Web Services Security (Overview) Lecture 9

Web Services Secure Conversation Language (WS-SecureConversation)

Category: Informational January The Network Solutions Personal Internet Name (PIN): A URN Namespace for People and Organizations

Universal Business Process Part 2: ebcppa

02267: Software Development of Web Services

[MS-SPASA]: SharePoint Analytics Service Application Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Gloifer Toolkit 1.1 Tutorial - A Review Of

Web Services Manageability Concepts (WS-Manageability)

Open Cloud Computing Interface - Service Level Agreements

Request for Comments: Category: Experimental NSA February 2000

XACML Profile for Role Based Access Control (RBAC)

Web Services Security: SAML Token Profile 1.1

How to Determine the Proxy Extension of a Grid Trust

Network Working Group. Category: Standards Track Novell November 1997

Security for Grid Services

Abstract. 1. Introduction. Ohio State University Columbus, OH

Network Working Group. E. Guttman Sun Microsystems C. Bisdikian W. Jerome IBM July 2004

GSI3: Security for Grid Services. Abstract

[MS-DLX]: Distribution List Expansion Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

TRUST RELATIONSHIPS AND SINGLE SIGN-ON IN GRID BASED DATA WAREHOUSES

Presented By: Muhammad Afzal 08May, 2009

igovt logon service Context Mapping Service (icms) Messaging Specification Release 9.6

SyncML Device Management Bootstrap

Internet Engineering Task Force (IETF) Request for Comments: Category: Standards Track ISSN: A. Langley Google June 2015

OIOIDWS for Healthcare Token Profile for Authentication Tokens

[MS-ASMS]: Exchange ActiveSync: Short Message Service (SMS) Protocol

Representation of E-documents in AIDA Project

Open Cloud Computing Interface - Monitoring Extension

Overview of Recent Developments on Generic Security Services Application Programming Interface

SSL-over-SOAP: Towards a Token-based Key Establishment Framework for Web Services

Web Services Description Language (WSDL) Wanasanan Thongsongkrit

CICS Web Service Security. Anthony Papageorgiou IBM CICS Development March 13, 2012 Session: 10282

A Signing Proxy for Web Services Security. Dr. Ingo Melzer RIC/ED

Core Feature Comparison between. XML / SOA Gateways. and. Web Application Firewalls. Jason Macy jmacy@forumsys.com CTO, Forum Systems

SMPTE Standards Transition Issues for NIST/FIPS Requirements v1.1

[MS-MDE]: Mobile Device Enrollment Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Distributed Resource Management Application API (DRMAA) Working Group April 20th, 2007

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Network Working Group Request for Comments: J. Ferraiolo IBM April 2007

17 March 2013 NIEM Web Services API Version 1.0 URI:

2. Create (if required) 3. Register. 4.Get policy files for policy enforced by the container or middleware eg: Gridmap file

ETSI TS V1.1.1 ( )

[MS-SAMLPR]: Security Assertion Markup Language (SAML) Proxy Request Signing Protocol Specification

Request for Comments: 3491 Category: Standards Track Viagenie March 2003

An Online Credential Repository for the Grid: MyProxy

Obsoletes: 2487 February 2002 Category: Standards Track. SMTP Service Extension for Secure SMTP over Transport Layer Security. Status of this Memo

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

Inter Domain Routing Working Group Chemnitz University of Technology Intended status: Standards Track July 7, 2008 Expires: January 8, 2009

USING SAML TO LINK THE GLOBUS TOOLKIT TO THE PERMIS AUTHORISATION INFRASTRUCTURE

MedBiquitous Web Services Design Guidelines

Category: Informational Consulintel October 2004

Common definitions and specifications for OMA REST interfaces

Web Services Technologies

Network Working Group. Category: Standards Track Nortel Networks September 1999

Web Services Trust Language (WS-Trust)

Securing Web Services with WS-Security

IBM WebSphere Message Broker - Integrating Tivoli Federated Identity Manager

Network Working Group. Category: Standards Track October 2006

[MS-FSDAP]: Forms Services Design and Activation Web Service Protocol

Technik und Informatik. SOAP Security. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel. Version April 11, 2012

WEB SERVICES SECURITY

Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5

Message Containers and API Framework

Web Services Security: What s Required To Secure A Service-Oriented Architecture. An Oracle White Paper January 2008

[MS-MDM]: Mobile Device Management Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Secure Authentication and Session. State Management for Web Services

Request for Comments: March 2001

[MS-SIP]: Session Initiation Protocol Extensions. Intellectual Property Rights Notice for Open Specifications Documentation

2.1 The scope of Time Stamping Protocol (TSP)

Web Services Security: SOAP Message Security 1.0 (WS-Security 2004)

Kerberos SAML Profiles

Grid Security : Authentication and Authorization

Introduction to Web Services

How To Write A Wsdl Standard For Csta (Ecma) And Cst A) (Ecmma)

E-commerce and Security Performance Analysis

Developer Guide to Authentication and Authorisation Web Services Secure and Public

SECURITY FOR XML MESSAGES

Category: Standards Track Cisco Systems, Inc. March 1999

[MS-ACCDT]: Access Template File Format. Intellectual Property Rights Notice for Open Specifications Documentation

A Signing Proxy for Web Services Security

Wireless Computing and IT Ecosystems

Web Services Business Activity (WS-BusinessActivity) Version 1.2

Category: Experimental November 2009

Oracle Service Bus. User Guide 10g Release 3 Maintenance Pack 1 (10.3.1) June 2009

Mounting Web Distributed Authoring and Versioning (WebDAV) Servers

Transcription:

GWD-R.P (submitted for consideration) GGF OGSA Security Workgroup Samuel Meder Frank Siebenlist Von Welch Jarek Gawor Thomas Sandholm Argonne National Laboratory February, 2003 Revised 7/19/2005 A GSSAPI profile for security context establishment and message protection using WS- SecureConversation and WS-Trust Status of this Memo This document has been submitted to the Global Grid Forum OGSA Security Working Group for consideration as a Recommendation (GWD-R). The latest version of this document can be found at: http://www.globus.org/ogsa/security/ Copyright Notice Copyright Global Grid Forum (2003). All Rights Reserved. 1. Abstract This document describes how a secure association can be established between OGSA/Web Services peers using a GSSAPI-mechanism and how this association can be used for subsequent message protection. Port types and message formats are defined for context establishment, and procedures and conventions are defined for per-message protection. The GSSAPI-mechanism provides the authentication, QoP-negotiation/agreement and actual signing and encryption operations. WS-SecureConversation and WS-Trust are used to frame the GSSAPI security context establishment. XML-Signature and XML-Encryption are employed to provide for the associated transformations and processing of for the message protection. A standard WS-Security compliant header element is used to communicate the relevant security information, i.e. XML-Signature and XML-Encryption elements, with the protected message to facilitate easy validation and decryption of the message. No constraints are placed on the tokens emitted by the GSSAPI-mechanism, enabling this specification to be used with arbitrary GSSAPI-mechanisms. Also, the described scheme does not modify standard XML-Signature and XML-Encryption processing, allowing easy integration with XML-Signature and XML-encryption implementations that feature pluggable signature and encryption algorithms. meder@mcs.anl.gov 1

Table of Contents 1.Abstract......1 2.Introduction......2 3.Notations and Terminology......2 3.1Notational Conventions......2 3.2Namespace......2 4.Context Establishment......3 4.1Initial Context Token......3 4.2Subsequent Context Tokens......4 4.3Context Establishment Port Type......4 5.Per-Message Protection......5 5.1Signing......5 5.2Encryption......6 6.Considerations......7 7.Glossary......7 8.Authors Contact Information......7 9.Acknowledgements......8 10.Intellectual Property Statement......8 11.Full Copyright Notice......8 13.References......10 14.Appendix: WSDL for SecureContextEstablishmentPortType...12 15.Appendix: SOAP Protected Message Example......13 2. Introduction The GSSAPI provides a standard API for establishing a security context that can be implemented using an arbitrary underlying security mechanism. Implementations of the GSSAPI currently exist and are in widespread use for Kerberos [1] and the Grid Security Infrastructure (GSI). Web services security standards currently provide no well-defined method for establishing a security session. This document is a specification for leveraging the GSSAPI to perform security session establishment and message protection in web services, allowing existing GSSAPI implementations to be used in a Web Services framework. The WS-SecureConversation and WS-Trust documents are used to provide a framework for exchanging the security tokens generated during GSSAPI security context establishment. The XML- Signature, XML-Encryption and WS-Security standards are used to define GSSAPI based permessage protection for web services. 3. Notations and Terminology This section specifies the notations, namespaces, and terminology used in this specification. 3.1 Notational Conventions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [3]. 3.2 Namespace The XML namespace URI that MUST be used by implementations of this specification is: http://www.globus.org/ws/2003/2/secext-gss The following namespaces are used in this document: meder@mcs.anl.gov 2

Prefix ds gss wsse wsu Namespace http://www.w3.org/2000/09/xmldsig# http://globus.org/ws/2003/2/secext http://schemas.xmlsoap.org/ws/2002/12/secext http://schemas.xmlsoap.org/ws/2002/07/utility xenc xsd http://www.w3.org/2001/04/xmlenc# http://www.w3.org/2001/xmlschema 4. Context Establishment The GSSAPI context establishment is initiated by a call to gss_init_sec_context() which emits a context token for consumption by the accepting side (gss_accept_sec_context()). The accepting side may in turn respond with a token for consumption by the initiating side. Subsequent calls to gss_init_sec_context() and gss_accept_sec_context() will consume and produce tokens until either an error occurs or a security context is established. The GSSAPI specification relies on other mechanisms for transporting these security tokens between the parties involved in the establishment. This section specifies a binding independent message format for transporting security tokens and the WSDL for a security session establishment porttype. 4.1 Initial Context Token The initial context token is wrapped in the following way: <RequestSecurityToken xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext> <TokenType>gssapi-context</TokenType> <RequestType>wsse:ReqExchange</RequestType> <gss:mechanismtype> GSSAPI Mechanism OID </gss:mechanismtype> <gss:continue> True/False </gss:continue> <wsse:securitycontexttoken> <wsu:identifier> uuid:context Identifier </wsu:identifier> </wsse:securitycontexttoken> <BinaryNegotiation ValueType="gssapi-context-token" EncodingType="wsse:Base64Binary"> Base 64 Encoded GSSAPI Context Token </BinaryNegotiation> </RequestSecurityToken> Implementers MUST take care to ensure that the context identifier (uuid:context Identifier) is unique to both initiator and acceptor and that it can be utilized as a ds:keyname element. In the above the MechanismType and Continue elements are defined as: <xsd:schema targetnamespace="http://globus.org/ws/2003/2/secext" xmlns="http://globus.org/ws/2003/2/secext" > <xsd:element name="mechanismtype" type="xsd:string"/> <xsd:element name="continue" type="xsd:boolean" optional=true/> </xsd:schema> The MechanismType element MUST indicate the security mechanism used to generate the initial context token. The MechanismType value can be used by parties to match and publish their supported mechanisms. Furthermore, when the runtime supports multiple different GSSAPI mechanisms, then the MechanismType value will allow the runtime to dispatch the initial context meder@mcs.anl.gov 3

establishment token to the correct GSSAPI implementation.it is assumed that all subsequent tokens will be generated using said mechanism. The runtime should be able to dispatch subsequent tokens correctly based on the SecurityContextToken/Identifier value. If present, tcontinue element MUST indicate whether the token producer requires more information, i.e. tokens, to establish the context. A Continue element value of false can be used by the runtime to decide whether the application message could be submitted for protection by the locally established context, and send together with the context establishment message. 4.2 Subsequent Context Tokens After the initial context token further negotiation is by exchange of messages of the type: <RequestSecurityTokenResponse xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext"> <TokenType>gssapi-context</TokenType> <gss:continue> True/False </gss:continue> <RequestedSecurityToken> <wsse:securitycontexttoken> <wsu:identifier> uuid:context Identifier </wsu:identifier> </wsse:securitycontexttoken> <BinaryNegotiation ValueType="gssapi-context-token" EncodingType="wsse:Base64Binary"> Base 64 Encoded GSSAPI Context Token </BinaryNegotiation> </RequestedSecurityToken> </RequestSecurityTokenResponse> The Continue element is defined as in section 4.2. The context identifier ("uuid:context Identifier") MUST be identical to the one sent with the initial context token, i.e. the one found in the RequestSecurityToken element. 4.3 Context Establishment Port Type This section defines the porttype and associated messages for a security context establishment service. The port type defines two operations: initcontext and establishcontext. The initcontext operation consists of the initial message exchange, i.e. a RequestSecurityToken element answered by a RequestSecurityTokenResponse. All subsequent message exchanges MUST use the establishcontext operation. <message name="initcontextinputmessage"> <part name="parameters" element="wsse:requestsecuritytoken"/> <message name="initcontextoutputmessage"> <part name="parameters" element="wsse:requestsecuritytokenresponse"/> <message name="establishcontextinputmessage"> <part name="parameters" element="wsse:requestsecuritytokenresponse "/> <message name="establishcontextoutputmessage"> <part name="parameters" element="wsse:requestsecuritytokenresponse"/> <porttype name="contextestablishmentporttype"> <operation name="initcontext"> meder@mcs.anl.gov 4

<input message="tns:initcontextinputmessage"/> <output message="tns:initcontextoutputmessage"/> </operation> <operation name="establishcontext"> <input message="tns:establishcontextinputmessage"/> <output message="tns:establishcontextoutputmessage"/> </operation> </porttype> Note that none of the XML element and attribute values are cryptographically protected. The GSSAPI-tokens have their own security built-in to their tokens and protocols, so the assumption is that this will be sufficient for protecting the exchange. 5. Per-Message Protection 5.1 Signing The GSSAPI provides two methods for signing a message. The first, gss_wrap, outputs a token that includes both the signature and the data that is being protected and is thus not suitable for integration with the XML-Signature specification. The second, gss_getmic(), emits a token containing only the signature and is thus suitable for use with the XML-Signature standard. The XML-Signature runtime is used to provide a digest of the message. In stead of the complete message, only this digest value will be used for the input for the gss_getmic() call. This allows us to leverage the standard XML-Signature transformation and processing. Per-message signing is accomplished using the gss_getmic() call. The output of the gss_getmic() call MUST be framed in the following way: <wsse:security> <wsse:securitycontexttoken wsu:id="mycontext"> <wsu:identifier> uuid:contextidentifier </wsu:identifier> </wsse:securitycontexttoken> <ds:signature> <ds:signedinfo> <ds:canonicalizationmethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n- 20010315"/> <ds:signaturemethod Algorithm="http://www.globus.org/2002/04/xmldsig#gss-sign"/> <ds:reference URI="#digestSource"> <ds:digestmethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:digestvalue> 1CnwAoXjx6FRDJ7y/Z0e81yB2yA= </ds:digestvalue> </ds:reference> </ds:signedinfo> <ds:signaturevalue> signature token emitted by gss_get_mic() </ds:signaturevalue> <ds:keyinfo> <wsse:securitytokenreference> <wsse:reference URI="#MyContext"/> </wsse:securitytokenreference> meder@mcs.anl.gov 5

</ds:keyinfo> </ds:signature> </wsse:security> TTInfothe KeyName element MUST refers to a SecurityContextToken in the Security header element, which in turn MUST refers to a previously established security context through its Identifier element.. Note that the signing algorithm identifier is used to enable the XML-Signature runtime to invoke the GSSAPI mechanism for the signing operation. Also, future versions of this draft should provide a mechanism for specifying or at the very least allow for digest algorithms other than SHA1. The above example shows the use of SHA1 as the digest algorithm. Note, however, that the GSSAPI runtime will use its own digest algorithm on the XML-Signature generated digest, which is determined by the GSSAPI-mechanism s own capabilities and policy. 5.2 Encryption Encryption MUST be done using the gss_wrap() call with appropriate options for encryption. This will yield a token that encapsulates the input user data along with associated integrity check. This token MUST be framed using the WS-Security and XML-Encryption standards. Assuming a SOAP binding this would result in a SOAP header containing: <wsse:security> <wsse:securitycontexttoken wsu:id="mycontext"> <wsu:identifier>uuid:contextidentifier</wsu:identifier> </wsse:securitycontexttoken> <xenc:referencelist> <xenc:datareference URI= #elementid /> </xenc:referencelist> </wsse:security> A SOAP body with the following element would follow this header: <xenc:encrypteddata Id= elementid > <xenc:encryptionmethod Algorithm= http://www.globus.org/2002/04/xmlenc#gss-enc /> <ds:keyinfo> <wsse:securitytokenreference> <wsse:reference URI="#MyContext"/> </wsse:securitytokenreference> </ds:keyinfo> <xenc:cipherdata> <xenc:ciphervalue> encrypted token emitted by gss_wrap() </xenc:ciphervalue> </xenc:cipherdata> </xenc:encrypteddata> The KeyInfo element again MUST refers to a SecurityContextToken in the Security header element, which in turn MUST refers to a previously established security context through its Identifier element. Note that the encryption algorithm identifier in the EncryptionMethod element is used to enable the XML-Encryption runtime to invoke the GSSAPI mechanism for the encryption operation. meder@mcs.anl.gov 6

6. Considerations To ease the burden of processing large header when messages go through multiple intermediaries with their own security contexts one could consider tagging each WS-Security header element with a target designator. There MUST be one such WS-security header element for each receiver/intermediary/security-name. This document does not address any error processing concerns. In general it is our opinion that errors currently specified in the WS-* specifications should be sufficient for dealing with most basic error conditions and that richer errors may be propagated in the form of GSSAPI security tokens. The use of GSSAPI for signature and encryption removes the ability for XML based tools to inspect a document for the level of protection used, i.e. it becomes impossible to determine what algorithms were used in e.g. signing a element. A feature that is currently missing form the security session establishment port type described herein is the ability to delete existing security contexts. An operation allowing this functionality may be added at a later time. Note that this specification is based on the initial published version of WS-SecureConversation and WS-Trust, which at the time of writing of this document, have not been submitted to any standards organization. Furthermore, these initial WS-* version are clearly drafts with no concise schema definitions, and it is expected that their content will change as they progress throughthrough the scrutiny of the standardizations processcommunity. Unfortunately, we had to define a number of new xml-elements to render a GSSAPI mechanism on the WS-Trust framework (gss:mechanismtype, gss:continue), and we had to use elements in ways that are not specified in the current draft (use wsse:securitycontexttoken as a sub-element in a RequestSecurityToken element), and we had to defined a new porttype because those in the current spec didn t seem to fit the semantics well. Hopefully, we will be able tocan convince the committee in charge ofthat will standardizing thee WS-Trust specification to adopt changes that would facilitate a clean GSSAPI rendering without the definition of new elements and semantics. Our initial design and implementation used a context identifier value that was contributed by both initiator and acceptor as is suggested in SPKM [11]. The current WS-Trust spec does not provide the facility to implement this. We hope, however, to find a way to incorporate this feature in future versions of this spec and to convince standardizing committee of its importance. 7. Glossary GFD: GGF: GWD: Grid Forum Document. GFDs are persistent. Global Grid Forum. See www.gridforum.org Grid Working Document. GWDs are not persistent, but exist as drafts for discussion. 8. Authors Contact Information Samuel Meder (meder@mcs.anl.gov) Frank Siebenlist (franks@mcs.anl.gov) Jarek Gawor (gawor@mcs.anl.gov) Thomas Sandholm (sandholm@mcs.anl.gov) Argonne National Laboratory 9700 S. Cass Avenue Argonne, IL 60439-4844 meder@mcs.anl.gov 7

Von Welch (welch@mcs.anl.gov) Distributed Systems Laboratory University of Chicago and Argonne National Laboratory 9. Acknowledgements We are grateful to numerous colleagues for discussions on the topics covered in this paper, in particular (in alphabetical order, with apologies to anybody we've missed): Nataraj (Raj) Nagaratnam, and Steve Tuecke. This work was supported in part by the Mathematical, Information, and Computational Sciences Division subprogram of the Office of Advanced Scientific Computing Research, U.S. Department of Energy, under Contract ; by the IBM Corporation? 10. Intellectual Property Statement The GGF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the GGF Secretariat. The GGF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this recommendation. Please address the information to the GGF Executive Director (see contacts information at GGF website). 11. Full Copyright Notice Copyright (C) Global Grid Forum (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the GGF or other organizations, except as needed for the purpose of developing Grid Recommendations in which case the procedures for copyrights defined in the GGF Document process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the GGF or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE GLOBAL GRID FORUM DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE." meder@mcs.anl.gov 8

12. meder@mcs.anl.gov 9

13. References [1] Kohl, J. and C. Neuman, "The Kerberos Network Authentication Service (V5)," RFC 1510, September 1993. [2] Dierks, T. and C. Allen, "The TLS Protocol, Version 1.0," RFC 2246, January 1999. [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels," BCP 14, RFC 2119, March 1997. [4] Foster, I., C. Kesselman, and S. Tuecke, "The Anatomy of the Grid: Enabling Scalable Virtual Organizations," International Journal of Supercomputer Applications, 2001. [5] Linn, J., "Generic Security Service Application Program Interface, Version 2, Update 1," RFC 2743, January 2000. [6] Wray, J., "Generic Security Service API Version 2, C-bindings," RFC 2744, January 2000. [7] Wray, J., "Generic Security Service API: C-bindings", RFC 1509, September 1993. [8] Linn, J., "The Kerberos Version 5 GSS-API Mechanism", RFC 1964, June 1996. [9] Adams, C., "The Simple Public-Key GSS-API Mechanism (SPKM)", RFC 2025, October 1996. [10] D. Eastlake, J. Reagle, and D. Solo, XML-Signature Syntax and Processing. IETF Draft Standard/W3C Recommendation, August 2001. [11] D. Beech, M. Maloney, N. Mendelsohn, and H. Thompson, XML Schema Part 1: Structures. W3C Recommendation, May 2001. [12] P. Biron, A. Malhotra, XML Schema Part 2: Datatypes. W3C Recommendation, May 2001. [13] FIPS PUB 180-1. Secure Hash Standard. U.S. Department of Commerce/National Institute of Standards and Technology. [14] D. Box, D. Ehnebuske, G. Kakivaya, A. Layman, N. Mendelsohn, H. Frystyk Nielsen, S. Thatte, and D. Winer, Simple Object Access Protocol (SOAP) Version 1.1, W3C Note, May 2001. meder@mcs.anl.gov 10

meder@mcs.anl.gov 11

14. Appendix: WSDL for SecureContextEstablishmentPortType The below gives the WSDL for the context establishment port type. It should be noted that this description does not declare any fault messages and that fault messages based on the ones described in the WS-Trust and WS-SecureConversation specifications should be added. <?xml version="1.0" encoding="utf-8"?> <definitions name="securitycontextestablishmentdefinition" targetnamespace="http://ogsa.globus.org/security/authentication" xmlns:tns=http://ogsa.globus.org/security/authentication xmlns:wsse= http://schemas.xmlsoap.org/ws/2002/12/secext xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://schemas.xmlsoap.org/wsdl/"> <import location="http://schemas.xmlsoap.org/ws/2002/12/secext" namespace=" http://schemas.xmlsoap.org/ws/2002/12/secext"/> <message name="initcontextinputmessage"> <part name="parameters" element="wsse:requestsecuritytoken"/> <message name="initcontextoutputmessage"> <part name="parameters" element="wsse:requestsecuritytokenresponse"/> <message name="establishcontextinputmessage"> <part name="parameters" element="wsse:requestsecuritytokenresponse"/> <message name="establishcontextoutputmessage"> <part name="parameters" element="wsse:requestsecuritytokenresponse"/> <porttype name="securecontextestablishmentporttype"> <operation name="inittokenexchange"> <input message="tns:inittokenexchangeinputmessage"/> <output message="tns:inittokenexchangeoutputmessage"/> </operation> <operation name="continuetokenexchange"> <input message="tns:continuetokenexchangeinputmessage"/> <output message="tns:continuetokenexchangeoutputmessage"/> </operation> </porttype> </definitions> meder@mcs.anl.gov 12

15. Appendix: SOAP Protected Message Example The following example shows a SOAP header and body, where the body content is signed. The signature information is communicated through a Signature element inside of a WS-Security header element. The elements and attributes to note are: the KeyName element value, which allows us to identify the security context the SignatureMethod attribute, which indicates that the algorithm is in fact a GSSAPI mechanism, the SignatureValue, which is the base64 encoded gss-token that holds the signature. <SOAP-ENV:Envelope SOAP-ENV:actor="some-uri" SOAP-ENV:mustUnderstand="1" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/ " xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext " xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <SOAP-ENV:Header> <wsse:security> <wsse:securitycontexttoken wsu:id="mycontext"> <wsu:identifier>1234567</wsu:identifier> </wsse:securitycontexttoken> <ds:signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:signedinfo> <ds:canonicalizationmethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <ds:signaturemethod Algorithm="http://www.globus.org/2002/04/xmlenc#gss-getmic"/> <ds:reference URI="#digestSource"> <ds:digestmethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:digestvalue> 1CnwAoXjx6FRDJ7y/Z0e81yB2yA= </ds:digestvalue> </ds:reference> </ds:signedinfo> <ds:signaturevalue> 439ajDhD6VD+tU1fh++01Q== </ds:signaturevalue> <ds:keyinfo> <wsse:securitytokenreference> <wsse:reference URI="#MyContext"/> </wsse:securitytokenreference> </ds:keyinfo> </ds:keyinfo> </ds:signature> </wsse:security> </SOAP-ENV:Header> <SOAP-ENV:Body> <getvalue id="digestsource" xmlns="http://samples.ogsa.globus.org/counter/counter_port_type"/> </SOAP-ENV:Body> </SOAP-ENV:Envelope> meder@mcs.anl.gov 13