Web Services Security
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
Web Services Security
E N D
Presentation Transcript
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
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
Service Provider Publish Bind Service Broker Service Requester Find Introduction Web Services Architecture
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
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
Introduction • Motivations and Objectives • Provide security issues while users access Web services over the Internet • Confidentiality • Integrity • Non-repudiation • Accountability
Technologies for Web Services Security • Public Key Infrastructure • Security through cryptography • Encryption key pair • Signing key pair • Certificates • Contain the basic information detailing a person’s identity and his/her public key • Certification Authority • A trusted entity that issues the certificates
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
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
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>
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
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>
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
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
Technologies for Web Services Security • XML Key Registration Service Specification • Register • Enables the client to register a public key pair with an XKMS service. • Reissue • Allows the previously registered key binding to be issued again • Revoke • Recover
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
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
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
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
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
Credit Card Web Service Architecture • Entrust PKI • Entrust PKI Architecture • Authority • Authority Master Control • Registration Authority • Authority Database • Directory
Credit Card Web Service Architecture • Entrust PKI • Entrust PKI User Roles • Master user • Security officer • Administrator • Directory Administrator • Auditor • End user
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
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
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>
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>
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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