Web Services Security Lin Yan Department of ECE University of Manitoba Manitoba, Canada Web Services Security Introduction Technologies for Web Services Security Credit Card Web Service Architecture Building a Credit Card Web Service using SOAP, WSDL and UDDI Credit Card Web Service Implementation Comparison and Conclusions 2 Introduction The Internet Conceived in the 1960s ARPANET went online in the 1970s TCP/IP was created in 1980s Changed the way business operate Web Services Definition Purpose Architecture 3 Introduction Service Provider Publish Bind Service Broker Service Requester Find Web Services Architecture 4 Introduction Associated Web Services Standards Extensible Markup Language - XML A Syntax to define markup language To structure the document in a standard way and make it machine-readable Operating system independent Simple Object Access Protocol - SOAP XML based protocol for the exchange of information in a decentralized, distributed environment Consists of three parts: envelope, encoding rules and convention for representing RPCs and responses 5 Introduction Associated Web Services Standards Web Services Description Language - WSDL Creates a standard way for specifying the details of a Web service Clients can use Web service even they have no prior knowledge of the service Universal Description, Discovery, Integration - UDDI Directory service where businesses and organizations can register, deregister and look up Web services Platform-independent framework for describing services, discovering businesses, and integrating business services 6 Introduction Motivations and Objectives Provide security issues while users access Web services over the Internet Confidentiality Integrity Non-repudiation Accountability 7 Technologies for Web Services Security Public Key Infrastructure Security through cryptography Certificates Encryption key pair Signing key pair Contain the basic information detailing a person’s identity and his/her public key Certification Authority A trusted entity that issues the certificates 8 Technologies for Web Services Security Public Key Infrastructure Public Key Infrastructure Enabling trust through a Certification Authority Certificate retrieval from a certificate repository Certificate revocation Key backup and recovery Automatic update of key pairs and certificates Non-repudiation 9 Technologies for Web Services Security XML Signature A specification for encrypting data and tags within an XML document A digital signature expressed in XML Allows for signing part of an XML document Example 10 Technologies for Web Services Security <Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/"> <Transforms> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> </DigestMethod> </Reference> </SignedInfo> <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue> <KeyInfo> <KeyValue> <DSAKeyValue> ……. </DSAKeyValue> </KeyValue> </KeyInfo> </Signature> 11 Technologies for Web Services Security XML Encryption A specification for encrypting and decrypting digital content Encrypted content can be represented in XML The portions of a document can be selectively encrypted Example 12 Technologies for Web Services Security Encrypting the CreditCard Element <?xml version='1.0'?> <PaymentInfo xmlns='http://UM.edu/details'> <Name>Alice</Name> <EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element' xmlns='http://www.w3.org/2001/04/xmlenc#'> <CipherData> <CipherValue>A23B45C56…</CipherValue> </CipherData> </EncryptedData> </PaymentInfo> 13 Technologies for Web Services Security XML Key Management Specification - XKMS Outlines protocols for the distribution and registration of public keys Supports XML Encryption and XML Signature Contains two parts: XML Key Information Service Specification X-KISS XML Key Registration Service Specification X-KRSS 14 Technologies for Web Services Security XML Key Information Service Specification Locates public key Clients send a locate request to the XKMS service. The locate service resolves the <ds:KeyInfo> element to get the public key and its binding information XKMS sends it back to client Validates public key The validate service validates the returned key according to the policy of the validate service 15 Technologies for Web Services Security XML Key Registration Service Specification Register Reissue Enables the client to register a public key pair with an XKMS service. Allows the previously registered key binding to be issued again Revoke Recover 16 Technologies for Web Services Security WS-Security A mechanism for signing and encrypting parts of a SOAP message A standard set of SOAP extensions to be used to build secure Web services Provides three major mechanism Message integrity Message confidentiality Ability to pass around security tokens as part of a message IBM/Microsoft Web Services Security Road Map 17 Credit Card Web Service Architecture The Client/Server Model Describes the relationship between two computer programs One program, the client, makes a service request to another program, the server The server fulfills the request 3-tier Architecture User interface Business logic Databases and programming related to managing it 18 Credit Card Web Service Architecture 3-tier Architecture in a Credit Card Web Service The presentation layer Contains the presentation objects responsible for presenting information to end-users In our application, Input.jsp, Method.jsp and Result.jsp are presentation objects to allow the user to input a credit card number and perform the get limit action and display the result The business layer Contains the business objects, each of which is responsible for a specific business process In our application, CreditCardService.java was defined as a business object which is responsible for validating a credit card 19 Credit Card Web Service Architecture 3-tier Architecture in Credit Card Web Service The data layer Contains the data objects (DO) and the methods used to handle the different data components In our application, a card DO contains the information of a credit card. It can contain attributes such as card number, card type, expiration date, etc. A database manager controls an application’s pool of database connections 20 Credit Card Web Service Architecture Use Case Analysis Explore the UML modeling technique to describe the credit card system development In our credit card checking scenario, there are four actors: The client Browser Controller Database server 21 Credit Card Web Service Architecture Entrust PKI Entrust PKI Architecture Authority Authority Master Control Registration Authority Authority Database Directory 22 Credit Card Web Service Architecture Entrust PKI Entrust PKI User Roles Master user Security officer Administrator Directory Administrator Auditor End user 23 Credit Card Web Service Architecture Public-Key Cryptographic Standard #7 PKCS #7 is the Cryptographic Message Syntax standard which describes a general syntax for data that may have cryptography applied to it Supports many different content types PKCS #7 was used in the Credit Card Web Services application to encrypt and digitally sign the sensitive information 24 Building Credit Card Web Service using SOAP, WSDL and UDDI Credit Card Web Service Overview Provides credit card validation and limit check business functions Also a Web Services consumer. It consumes other Web Services such as update card service, cancel card service Credit card validation service example 25 Building Credit Card Web Service using SOAP, WSDL and UDDI SOAP Message Structure SOAP request for the getLimit service The request takes a string parameter, an encrypted credit card number <soap:Body> <m:getLimitRequest xmlns: m=”http://tempuri.org/um.edu.CreditCardService”> <cardNo xsi:type=’xsd:string’ >ATKEKDL…</cardNo> </m:getLimitRequest> </soap:Body> 26 Building Credit Card Web Service using SOAP, WSDL and UDDI SOAP Message Structure SOAP response for the getLimit service The response returns a float, the limit amount of the card <soap:Body> <m:getLimitResponse xmlns: m=”http://tempuri.org/um.edu.CreditCardService”> <Limit>3000.00</Limit> </m:getLimitResponse> </soap:Body> 27 Building Credit Card Web Service using SOAP, WSDL and UDDI SOAP Message Encoding Provides a standard data encoding scheme Makes use of types defined in XML schema and creates the mapping for language-specific type definition to ensure interoperability “xsd:string” indicates a mapping from Java type String t XML Schema type string 28 Building Credit Card Web Service using SOAP, WSDL and UDDI WSDL A WSDL document provides the necessary details for a service requestor to contact and consume a service Consists of a set of definitions Definition Types Message PortType Binding Port Service 29 Building Credit Card Web Service using SOAP, WSDL and UDDI UDDI UDDI Business Registry An implementation of the UDDI specification Public UDDI Business Registry Operator site Node operators Private UDDI Business Registry 30 Building Credit Card Web Service using SOAP, WSDL and UDDI UDDI Using UDDI to Register and Find a Service Register Credit Card Web Service through IBM UDDI Business Registry Obtain a user account Register the business information and get a unique business ID Register the Credit Card Web Service to get a unique service ID and specify the access point Find a registered business 31 Credit Card Web Service Implementation Implementation Language Java 1.5 Portability Extensibility Cost effectiveness Performance Implementation Tools Entrust Authority Security Toolkit for Java IBM Websphere Studio 32 Credit Card Web Service Implementation Entrust Authority Security Toolkit for Java Overview Gives the ability to add trusted security to our application Gives our application access to the underlying security structure of a PKI Architecture Low-level API resides on top of JCE (Java Cryptography Extension High-level API provides classes that implement frequently used cryptographic tasks 33 Credit Card Web Service Implementation Entrust Authority Security Toolkit for Java Credentials Used to describe a set of data that contains a user’s critical cryptographic information In an Entrust PKI, an Entrust Profile is used to contain a user’s public and private credentials Identifying a User The process of logging in involves reading and verifying a user’s credentials In our case, we use an Entrust Profile yanlin.epf to perform the log in task 34 Credit Card Web Service Implementation IBM Websphere Studio State-of-art Java IDE Provides development tools to enable the creation, development and deployment of Web service Logic flow of Credit Card Web Service in WSAD Create a Credit Card Web Service Generate Deployment Descriptor to deploy this Web Service on the server Generated CreditCardServiceProxy to accept the client requests Used SOAP to encode invocation parameters and results over HTTP 35 Credit Card Web Service Implementation PKCS #7 Implementation with Entrust Toolkit Encode Instantiate, and log in, a user Create PKCS7EncodeStream object Specify the digest and encryption algorithms Specify the input data and write the encrypted and signed data to the output stream Decode Instantiate, and log in, a user Create PKCS7DecodeStream object Read the decrypted and signed data 36 Credit Card Web Service Implementation Database Design and Implementation IBM DB2 Universal Database was chosen as the DBMS system Established a database with a name CCARD which stores the information of credit cards and card holders Two tables were defined, linked by the card number attribute JDBC is used to access the database through the business layer 37 Comparison with other Web Services Security Solutions Benefits/Limitations of existing technologies Security Assertions Markup Language – SAML Extensible Access Control Markup Language – XACML Put web services security technologies together Benefits/Limitations of the proposed solutions 38 Comparison with other Web Services Security Solutions SAML Includes four main components Assertions, which are declarations of fact about a subject Request/response protocol to exchange assertions Bindings to transport SAML assertion messages Profiles defines constraints and/or extensions of the core protocols and assertions Enables cross-domain trust Single sign-on Distributed transaction An authorization service 39 Comparison with other Web Services Security Solutions XACML Describes both an access control policy language and a request/response language Consistent with and builds on SAML Reduces the cost of developing an application-specific access control language Helps applications interoperate more easily Extensible Too complicated, needs too much configuration while setting up hierarchical resources Response message is more verbose 40 Comparison with other Web Services Security Solutions Putting It Together How Web services security standards work together The standards are new emerging technologies, not yet mature Adding the security information into the SOAP header increases the overhead, may affect the efficiency XML encryption and XML signatures are complex Identity collisions may occur when encrypted contents generated in one context are dropped in another context 41 Comparison with other Web Services Security Solutions Benefits of the proposed solutions Mature technology PKI as our basic underlying security infrastructure PKI is the fundamental component of Web services security architecture PKI can let the companies to build their own security system Act as their own Certificate Authority (CA) Confidentiality Authentication Non-repudiation Integrity Automatic key management 42 Comparison with other Web Services Security Solutions Limitations of the proposed solutions Discovery and validation of the certification paths is complex Cost Build and manage circles of trust 43 Conclusions Designed and developed a Credit Card Web Service using SOAP, WSDL and UDDI Presented a viable approach for securing the Credit Card Web service through the use of PKI and PKCS #7 standard Increased the security of transferring XML messages over the Internet Drew a comparison between this approach and the new emerging Web services security standards 44 Thanks …... 45
© Copyright 2026 Paperzz