SlideShare a Scribd company logo
1 of 41
Download to read offline
Web Services Security
An Independent Study Report - II
SUBMITTED TO THE FACULTY OF COMPUTER SCIENCES
ON GRADUATE STUDIES OF
SHAHEED ZULFIKAR ALI BHUTTO INSTITUTE OF SCIENCE & TECHNOLOGY
IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF
MASTER OF SCIENCE (COMPUTER SCIENCE)
Muhammad Jawaid Shamshad
MS/PhD (CS) 052210
May 2007
Supervised by
Naeem Janjua
Web Services Security
______________________________________________________________________________________
2
To my Parents,
who contributed most in my studies.
Web Services Security
______________________________________________________________________________________
3
Acknowledgements
In this era of technology with ever-increasing scope and compressed schedules,
acknowledging the contributions of everyone involved along the way is more and more
important. All too often, we move on to new projects without remembering to thank the
people who have helped us on the current one. A contribution that might on the surface
seem small can in fact make or break a project or present a fresh way of solving a
problem. It's important not only to thank people personally but also to find every
opportunity to recognize their contributions publicly.
The author's study of "Web Services Security" need lots of effort and the author wishes to
thank his colleagues and specially his advisor Sir Naeem Janjua who gave his precious
advice in conducting this study.
Muhammad Jawaid Shamshad
MS/PhD (CS) 052210
Web Services Security
______________________________________________________________________________________
4
TABLE OF CONTENTS
CHAPTER 1...................................................................................................................... 7
INTRODUCTION ............................................................................................................ 7
1.1 LITERATURE REVIEW............................................................................................................................ 7
1.2 RESEARCH METHOD ............................................................................................................................. 7
1.3 PROBLEM.............................................................................................................................................. 7
1.4 NEED .................................................................................................................................................... 8
1.5 SECURITY BEST PRACTICE.................................................................................................................... 8
1.6 WHAT IS COVERED IN THIS STUDY?...................................................................................................... 8
CHAPTER 2.................................................................................................................... 10
WHAT ARE WEB SERVICES?................................................................................... 10
2.1 WEB SERVICE ......................................................................................................................................10
2.2 SOAP ..................................................................................................................................................11
2.3 WSDL.................................................................................................................................................14
2.4 DISCOVERING WEB SERVICE ...............................................................................................................18
2.4.1 UDDI ...............................................................................................................................................19
2.4.2 EBXML REGISTRIES .........................................................................................................................21
CHAPTER 3.................................................................................................................... 23
SECURITY PROBLEM................................................................................................. 23
3.1 WHAT IS NEEDED?...............................................................................................................................24
3.2 GOALS OF SECURITY............................................................................................................................24
3.3 NEED FOR SECURITY............................................................................................................................25
3.3 RISK MANAGEMENT ............................................................................................................................26
3.3 SECURITY: A SERIOUS CONCERN.........................................................................................................27
3.3 SECURING WEB SERVICES ...................................................................................................................28
3.3 REQUIREMENTS FOR WEB SERVICES SECURITY...................................................................................28
CHAPTER 4.................................................................................................................... 31
ENTERPRISE APPLICATION SECURITY INTEGRATION ................................ 31
4.1 EASI REQUIREMENTS..........................................................................................................................31
4.2 EASI SOLUTION ..................................................................................................................................33
4.3 EASI FRAMEWORK..............................................................................................................................34
4.4 EASI BENEFITS ...................................................................................................................................38
CONCLUSION ............................................................................................................... 39
REFERENCES................................................................................................................ 40
Web Services Security
______________________________________________________________________________________
5
TABLE OF FIGURES
FIGURE 2.1: STRUCTURE OF A SOAP MESSAGE………………………………….………………...13
FIGURE 2.2: THE SOAP MESSAGE STRUCTURE……………………………………………..……...13
FIGURE 2.3: THE SOAP REQUEST……………………………………………………………...……...14
FIGURE 2.4: THE SOAP RESPONSE………………………………………………………….………...14
FIGURE 2.5: WSDL ABSTRACT DESCRIPTION.……………………………………………………...16
FIGURE 2.6: WSDL’S CONCRETE BINDING INFORMATION…………………………………..…..18
FIGURE 2.7 AN EBXML ARCHITECTURE IN USE………………………………………………...….22
FIGURE 4.1: KEY E-BUSINESS CHALLENGE: END-TO-END EASI………………………………...34
FIGURE 4.2: EASI FRAMEWORK…………………...…………………………………………….…….35
Web Services Security
______________________________________________________________________________________
6
Abstract
Web Services have great potential, but according to a survey nearly half of the obstacles
to the deployment of web services are security that was more than twice the percentage of
other challenges, such as bandwidth and access issues and interoperability problems.
Organizations justifiably fear hackers and loss of confidential customer information such
as they’ve experienced with their e-commerce web sites, web services present even
greater security challenges that organizations haven’t previously encountered. This study
presents the best practices and security model for maintaining security in web services.
Web Services Security
______________________________________________________________________________________
7
Chapter 1
Introduction
1.1 Literature Review
Literature has been collected from research papers published, like at ACM and IEEE and
chapter excerpts from some books (Books are listed in reference section), and internet.
1.2 Research Method
This study presents the logical model for maintaining state of resources in web services.
Study has been conducted by first defining the problem domain, its need, its scope, and
then its generalized logical model in practice is discussed. The study plan can be depicted
as:
 Background Review
 Problem Domain
 Requirements Specification
 Generalized logical model in Practice
1.3 Problem
Web services are a promising solution to the distributed world with its interoperability as
a major benefit, and allowing access to different data which was not accessible before
that easily. Along with the benefits of Web Services comes a serious risk: sensitive and
private data can be exposed to people who are not supposed to see it. Web Services will
never accomplish their tremendous potential and goal unless associated risks should be
properly managed.
Web Services Security
______________________________________________________________________________________
8
1.4 Need
Since web services are normally used for business purposes to communicate between two
businesses. This communication between two businesses is so critical that it involves the
money factor, and any hacker or intruder can ruin the business of both parties. So there
should be a mechanism of securing web services. Security is even difficult to avoid in a
number of situations. One situation is Single Sing-On (SSO), when state is managed in
web services where session is established between a consumer and a provider.
1.5 Security Best Practice
There have been several best practices proposed by the security experts to secure the
system. The details of these security practices will be discussed in following chapters,
with Enterprise Application Security Integration (EASI) and WS-Security.
1.6 What is Covered in this Study?
This study starts with the introduction of the wide world of Web Services security. It
gives a quick overview of Web Services and described how they are focused on helping
applications communicate with each other, enabling interactions between applications
residing in different companies using different processing environments, what is the
structure of the message passed between consumer and provider, how they are published,
and how people can find information about the web services.
Then we will move towards the main core of this study where we will first explain some
important points about why security is important in web services environment and what
can an organization can do about securing their web services: without a good security
solution in place, many new e-business opportunities would not be feasible. It also
discusses the concept of risk management, which balances the level of security that is
required according to the business factors of cost, performance, and functionality. Since
information security is a serious concern for many businesses, in terms of both external
and internal (insider) attacks.
Web Services Security
______________________________________________________________________________________
9
Next, it is described that the need for controlling access to Web Services data without
delaying the exchange of data. Then Web Services security requirements are described in
terms of authentication, authorization, cryptography, accountability, and security
administration. Then the mix approach of security mechanisms is specified that can be
used to support Web Services security.
After that in final chapter Enterprise Application Security Integration (EASI) is
introduced, which is used to combine the many different security technologies needed to
secure Web Services. It defines front, middle, and back-office tiers of security and
describes how they all work together to provide end-to-end security. It defines an EASI
solution in terms of a security framework, technologies, and integration techniques that
combine those technologies together. EASI framework consists of a number of layers,
including the applications, APIs, core security services, framework security services, and
underlying security products. The EASI framework enables architects to design security
systems that are flexible and able to meet future needs as business requirements and
technologies evolve.
Web Services Security
______________________________________________________________________________________
10
Chapter 2
What are Web Services?
2.1 Web Service
There are several definitions available for describing web services and it is difficult to
give a concrete definition, but according to the authors of “The Semantic Web” [1] the
concrete definition of web service would be:
“Web services are software applications that can be discovered, described, and accessed
based on XML and standard Web protocols over intranets, extranets, and the Internet.”
Starting with the concept, the first sentence, “Web services are software applications”
expresses the main point that Web services are software applications like other usual
software applications which performs some specific tasks depending on their
implementation. In addition these software applications are available on web.
Next, according to the definition web services “can be discovered, described, and
accessed based on XML and standard Web protocols”. This part clearly states that it is
built on XML [2] which is a worldwide accepted standard and supported by majority of
the vendors. Due to this web services are interoperable and the main focus of web service
is interoperability. Other web protocols include Hypertext Transport Protocol (HTTP [3])
which is the underlying communication protocol. So web services use XML as the syntax
of their message and use HTTP to transfer that message. This is the access method. The
message is basically a Simple Object Access Protocol (SOAP [4]) envelop which is in
XML format.
Web services can dynamically be discovered by Universal Description, Discovery, and
Integration (UDDI [5]) registries. These registries keep the record of web services and
their description i.e. syntax of web services.
Web Services Security
______________________________________________________________________________________
11
UDDI then provides the description in Web Service Definition Language (WSDL [5])
form which is also in xml format and describes the syntax of web services.
The last part of the definition state that Web services are available “over intranets,
extranets, and the Internet”. This means that web services can be public as well as private
web services for organizations internal use. Or web services can be between two
partnering organizations in a B2B solution. So it is important to understand that web
services are not only public accessible by world, but can also be private accessible within
organization’s intranet.
There is another important concept which should be cleared. Web services are not
dependent on user interfaces. Web services are only APIs which an application can call to
get information like flight schedule web service or it can be an airline reservation web
service. Since message passing is in XML format so its representation is dependent on
application how it displays it.
2.2 SOAP
Simple Object Access Protocol (SOAP) was created by Microsoft, Developmentor, IBM,
Lotus, and UserLand.
SOAP is an XML-based protocol for messaging and remote procedure calls (RPCs). That
is the format of SOAP is XML. The reason for adoption of XML as format of SOAP is
that XML is universally accepted and adopted for data encoding for platforms
independence. SOAP uses existing transport protocols like HTTP, SMPT, and MQSeries
to transfer messages or remote procedure calls.
Web services transfers XML messages in SOAP format which is like envelop and called
SOAP envelop, which contains a SOAP header and a SOAP body. SOAP header contains
the Meta information and the body contains the actual message or remote procedure call
Web Services Security
______________________________________________________________________________________
12
(RPC) in XML syntax. This SOAP envelop is sent over HTTP between web service
consumers and web service providers or simply web service. There are also other
protocols as defined above but in usual cases HTTP is used. W3C defines SOAP as “a
lightweight protocol for exchange of information in a decentralized, distributed
environment.” [4]. SOAP provides a standard language for tying client and server
applications together on different platforms in which client application sends a SOAP
request and web service returns a SOAP response.
SOAP is associated with web services and it does not have any relation to object oriented
programming. That means a developer can create a SOAP based web service in C, Pascal
or any similar language which does not support object oriented programming. The only
thing significant is that application written in such languages can understand XML i.e.
can parse and evaluate XML documents, and can communicate over transport protocols
like which SOAP supports like HTTP.
SOAP has been adopted as the standard for Web services, and majority of the vendors
have developed SOAP APIs for their products like Microsoft for their .Net platform and
Sun for Java, thus making integration of software systems much easier.
Now let’s look at the SOAP message syntax and how it works. A SOAP message consists
of an envelope containing an optional header and a required body. Figure 2.1 shows a
SOAP envelope’s structure.
<SOAP:Envelope xmlns:SOAP=“http://schemas.xmlsoap.org/soap/envelope/”>
<SOAP:Header>
<!— content of header goes here —>
</SOAP:Header>
<SOAP:Body>
<!— content of body goes here —>
</SOAP:Body>
</SOAP:Envelope>
Web Services Security
______________________________________________________________________________________
13
Figure 2.1: Structure of a SOAP message. The envelope features child elements that
contain the message header and body elements. [5]
The header contains information concerning how the message is to be processed. This
includes routing and delivery settings, authentication or authorization assertions, and
transaction contexts. The body contains the actual message to be delivered and processed.
Anything that can be expressed in XML syntax can go in the body of a message. This is
graphically depicted in Figure 2.2 [6].
Figure 2.2: The SOAP message structure [6]
Let’s look at an example of a simple SOAP message. This example has been taken from
the SOAP 1.1 specification. The Figure 2.3 [5] shows a simple SOAP message for getting
the last trade price of the “DIS” ticker symbol. The SOAP envelope wraps everything in
the message. The encodingStyle attribute of the SOAP envelope shows how the message
is encoded, so that the Web service can read it. Next is the SOAP body of the message
that wraps the application-specific information i.e. the call to GetLastTradePrice in the
SOAP body. A Web service receives this information, processes the request in the SOAP
body, and can return a SOAP response.
<SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”
SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
<SOAP-ENV:Body>
Web Services Security
______________________________________________________________________________________
14
<m:GetLastTradePrice xmlns:m=”Some-URI”>
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Figure 2.3: The SOAP request [5]
The SOAP response for our example stock price request is shown in the Figure 2.4 [5]
that follows. Just like the request, the message is syntactically the same: It consists of an
envelope that wraps the message, it describes its encoding style, and it wraps the content
of the message in the SOAP body. The message inside the body is different. Under
SOAP-ENV: Body tag, we see that the message is wrapped in the
GetLastTradePriceResponse tag, with the result price shown in Price tag.
<SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”
SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”/>
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m=”Some-URI”>
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Figure 2.4: The SOAP response [5]
2.3 WSDL
Whereas SOAP is the communication language of Web services, but speaking a universal
language is not very useful unless you can maintain the basic conversations that let you
achieve your goals. Now how can we tell what messages must be exchanged to
successfully interact with a service. That role is filled by WSDL. Web Service Definition
Language (WSDL) is the way we describe the communication details and the application-
specific messages that can be sent in SOAP. WSDL, like SOAP, is also in XML format
and developed by IBM and Microsoft. The W3C defines WSDL as “an XML format for
describing network services as a set of endpoints operating on messages containing either
Web Services Security
______________________________________________________________________________________
15
document-oriented or procedure-oriented information”. To know how to send messages
to a particular Web service, an application can look at the WSDL and dynamically
construct SOAP messages. WSDL describes the operational information—where the
service is located, what the service does, and how to invoke the service. The format of
WSDL is very difficult to understand, but it isn’t really intended to be human-readable.
Developers do not have to understand WSDL and SOAP to create Web services. When
developer creates a Web service, most toolkits generate WSDL for you. Then the client
application generates the code for handling the Web service, generally called stub by
looking at the WSDL. Finally, the client application and the Web service can
communicate with each other.
Two pieces of information are described in a WSDL service description. One is an
abstract interface that is the application-level service description, and second is the
specific protocol-dependent detail that client application needs to follow to access the
service. These two types of information are necessary because similar application-level
service functionality is often deployed at different end points with slightly different
access protocol details. Separating the description of these two aspects helps WDSL
represent common functionality between seemingly different end points.
Abstract description is defined in WSDL as messages that need to be exchanged between
client and web service communication. Abstract interface contains components like the
vocabulary, the message, and the interaction. Vocabulary describes the type system to
provide data type definitions to exchange the information. WSDL uses external type
systems for this purpose. XSD is the most widely used but any type system is supported
by WSDL. Generally XSD is used to define standard data types like string, int, float etc,
which are supported by most of the languages like C/C++, Java, C# etc. External type
system is used to define custom data types like if developer wants to define his class or
structure and want to use that in communication. Figure 2.5 [5] shows an example in
which two data types are defined in XSD (string and int), and two data types are defined
in external schema (FlightInfoType and Ticket).
Web Services Security
______________________________________________________________________________________
16
<message name=“GetFlightInfoInput”>
<part name=“airlineName” type=“xsd:string”/>
<part name=“flightNumber” type=“xsd:int”/>
</message>
<message name=“GetFlightInfoOutput”>
<part name=“flightInfo” type=“fixsd:FlightInfoType”/>
</message>
<message name=“CheckInInput”>
<part name=“body” element=“eticketxsd:Ticket”/>
</message>
<portType name=“AirportServicePortType”>
<operation name=“GetFlightInfo”>
<input message=“tns:GetFlightInfoInput”/>
<output message=“tns:GetFlightInfoOutput”/>
</operation>
<operation name=“CheckIn”>
<input message=“tns:CheckInInput”/>
</operation>
</portType>
Figure 2.5: WSDL abstract description. This fragment shows the string and int data
types, which are defined in XSD, and two other data types defined in external schema:
FlightInfoType and Ticket, which we assume were imported earlier in the WSDL file.
[5]
External XSD definitions are imported in WSDL using an “import” element which
specifies the location of the schema. The message elements are defined in WSDL as
aggregations of parts, and each part is described by XSD types or elements from any
other external schema. Messages provide an abstract, typed data definition sent to and
from the services. The example in Figure 2.5 shows the three messages that might appear
during a Web services interaction. The message, GetFlightInfoInput, has two parts:
airlineName, which is an XSD string, and flightNumber, which is an XSD integer. The other
two messages, GetFlightInfoOutput and CheckInInput have only one part each. Interaction is
defined by the operation and portType elements. Each operation represents a message
exchange pattern that the Web service supports. An operation is simply a combination of
Web Services Security
______________________________________________________________________________________
17
messages labeled as input, output, or fault to indicate what part a particular message plays
in the interaction. A portType is a collection of operations that are collectively supported
by an end point. In our example, AirportServicePortType describes two operations: a single
request-response operation, GetFlightInfo, which expects the GetFlightInfoInput message as
input and returns a GetFlightInfoOutput message as the response; and a one-way operation,
CheckIn, which just takes the CheckInInput message as input.
Among the application-level functionality of the service we also need three more pieces
of information:
 what communication protocol to use (such as SOAP over HTTP)
 how to accomplish individual service interactions over this protocol, and
 Where to terminate communication (the network address).
“What” and “how” parts of this information are provided by the binding element of the
WSDL, including the communication protocol and data format specification. In short, the
binding element tells how a given interaction occurs over the specified protocol. Figure
2.6 shows a fragment from our example.
<binding name=“AirportServiceSoapBinding” type=“tns:AirportServicePortType”>
<soap:binding transport=“http://schemas.xmlsoap.org/soap/http”/>
<operation name=“GetFlightInfo”>
<soap:operation style=“rpc” soapAction=“http://acme-travel/flightinfo”/>
<input>
<soap:body use=“encoded” namespace=” http://acme-
travel.com/flightinfo” encodingStyle=
“http://schemas.xmlsoap.org/soap/encoding/”/>
</input>
<output>
<soap:body use=“encoded” namespace=“http://acme-
travel.com/flightinfo” encodingStyle=
“http://schemas.xmlsoap.org/soap/encoding/”/>
</output>
Web Services Security
______________________________________________________________________________________
18
</operation>
<operation name=“CheckIn”>
<soap:operation style=“document” soapAction=“http://acme-
travel.com/checkin”/>
<input>
<soap:body use=“literal”/>
</input>
</operation>
</binding>
<service name=“travelservice”>
<port name=“travelservicePort” binding=“tns:AirportServiceSoapBinding”>
<soap:address location=“http://acmetravel.com/travelservice”/>
</port>
</service>
Figure 2.6: WSDL’s concrete binding information. GetFlightInfo is a SOAP RPC
interaction and CheckIn is a pure messaging interaction that uses XSD to describe the
transmitted XML. [5]
The binding describes how to use SOAP to access the service-this combination of
abstract interface and protocol and data marshalling details (the binding). A port element
describes a single end point as a combination of a binding and a network address.
Consequently, a service element groups a set of related ports. In our travel service
example, a single port describes an end point that processes SOAP requests for the
travelservice service. WSDL provides a formalized description of client–service
interaction for users and developers. During development, developers use WSDL as the
input to a proxy generator which can be a dynamic invocation proxy that generates client
code according to the service requirements either at development time or at runtime.
Proxy or stub generators relieve the developer to remember or understand all the details
of service access.
2.4 Discovering Web Service
As we have discussed that web services are now being widely used in ecommerce based
applications and to do business on web. Now most of the organizations are moving
Web Services Security
______________________________________________________________________________________
19
towards web service. We have also discussed the technical details of web service that
how web service works and which protocols are used in communication. But knowing
this is not enough since if you don’t know who is providing which web service and what
that web service do? If you know this then you can easily get or build your own
application to communicate with that web service to expand your business. For this
purpose some kind of registry is needed who maintains a list of web services and their
feature so anyone can search his desired web service in that registry and communicate
with it. There are two major technologies for this purpose. One is UDDI (Universal
Description, Discovery, and Integration) and second is ebXML registries. UDDI was
introduced in 2000 by Ariba, Microsoft, and IBM to facilitate the discovery of business
processes. OASIS introduced ebXML in 1999, but their main focus was into consistent
use of XML and standard protocols in EDI (Electronic Data Interchange) community.
But a part of this effort, ebXML registries, is used for the discovery of ebXML business
details. Both of these technologies are worth discussing and competing technologies, so
let’s discuss one by one.
2.4.1 UDDI
Universal Description, Discovery, and Integration (UDDI) is an evolving technology and
is not yet a standard, but it is being implemented and embraced by major vendors like
Microsoft and IBM [1]. To understand simply UDDI is like a phone book for Web
services. Where organizations register their information about their web services and
applications can search for that information in the registry. So UDDI allows applications
to dynamically discover web services. When organization registers their information with
UDDI they have to provide following information [5]:
 white pages of company contact information,
 yellow pages that categorize businesses by standard categorization, and
 Green pages that document the technical information about web services, like
WSDL.
Web Services Security
______________________________________________________________________________________
20
White pages may include information about a company or organization like organization
name, their contact information like their phone numbers and email addresses,
description of their business, and links to external sources and documents where their
business is described in more detail.
The yellow pages describe the categories or classification that what type of information
their web services provide, plus their products, industry codes, and geographic index.
The green pages describes their ebusiness rules that how to do business with the web
services they have exposed, what are their business rules, and how to invoke the web
service i.e. WSDL.
It is worth noting that these registries can be public or private within organizations where
only inter organization communication is needed. For internal integration, the use of
UDDI private registries is of much value today. Within a large organization, where
several large enterprise applications may need to interoperate, can use UDDI registries
which can be helpful for discovering how to do so. The use of such a private registry
could potentially minimize the use of interoperation documentation and reduce
integration and development time for legacy enterprise applications. Once applications
have been built on web services, and once the interfaces have been described in WSDL
and published in a private UDDI registry, other programs and projects within your
organization can dynamically connect and begin to interoperate [1]. Private registries are
therefore secure since these are inter-organization and no alien is allowed to interfere and
it will be operated according to the organization’s policy. You can also use public
registries to expose your business but it is a long debate that putting your organizations
asset into a public registry is risky [1], but after all there are also alternatives and
resolution to this problem, like you can put a list of authorized users who can
communicate with your web service. If anyone wants to talk to your web service then he
has to register himself in your system as an authorized user. Here comes the need for
state management in web services. Since if an authorized entity wants to talk with your
web service then how can you maintain its state that how many times he has talked with
Web Services Security
______________________________________________________________________________________
21
your web service, or if he has tried to do some kind of fraud or performed any kind of
illegal action. If you have been managing its state then you can block him and put it in
your block list. Since to do this you need statistics about him and without managing its
state you can not generate a report which describes his statistics so you can find who is
doing a fear business with you or someone tries to cheat you or wants to play an unfair
game. Securing web service is another topic which is beyond the scope of this study but
we will see that what is the importance of managing state and how can we manage state
in web service environment.
2.4.2 ebXML Registries
The ebXML standard was created by OASIS. The main aim behind ebXML was to
enable business applications exchange data in uniform format and to enable intelligent
business processes using XML. ebXML was developed as a mechanism for XML-based
business language since XML by itself does not provide semantics to solve
interoperability problems. In short, ebXML provides a common way for businesses to
quickly and dynamically perform business transactions based on common business
practices [1]. Figure 2.7 shows an example of ebXML architecture in use. In the diagram,
company business process information and implementation details are found in the
ebXML registry and businesses can do business transactions after they agree on trading
arrangements. Information that can be described and discovered in ebXML architecture
includes the following [1]:
 Business processes and components described in XML
 Capabilities of a trading partner
 Trading partner agreements between companies
Web Services Security
______________________________________________________________________________________
22
Figure 2.7 An ebXML architecture in use. [1]
Understanding Web Services
The spirit of the ebXML architecture is the ebXML registry, which is the system that is
used to store and discover this information. The ebXML registry contains domain-
specific semantics for B2B. These domain-specific semantics are the product of
agreement on many business technologies and protocols. Simply ebXML could be
described as the start of a domain specific semantic Web. The focus of ebXML was not
initially on Web services, but it now uses SOAP as its message format. Therefore, many
believe that ebXML will have a large role in the future of Web services. Unlike UDDI,
ebXML is a standard. The ebXML standard does have support from many businesses, but
the most influential companies in Web services, IBM and Microsoft, would like to see
UDDI succeed as a registry for business information. However, it is possible that the two
technologies can complement each other, and ebXML could succeed in the B2B market,
while private UDDI registries succeed in the EAI market in the short term.
Web Services Security
______________________________________________________________________________________
23
Chapter 3
Security Problem
When all the past distributed models were being implemented, one technology, security,
always seemed to be tackled last. The idea was to get the model working first, and then
worry about security. Inevitably, this resulted in poorly performing and difficult-to-use
security.
Web Services are a promising solution to an age-old need: fast and flexible information
sharing among people and businesses that promises tremendous benefits in terms of
productivity, efficiency, and accuracy. Web Services enable access to data that has
previously been locked within corporate networks and accessible only by using
specialized software. Along with the benefit, web services also present daunting
challenges relating to privacy and security. In exposing critical business functions to the
Internet, Web Services can expose valuable corporate data, applications, and systems to a
variety of external threats and sensitive and private data can be exposed to people who
are not supposed to see it. To secure this data, it is not sufficient to limit Web Services
security to company’s firewall. In world of electronic commerce, customers, remote
employees, suppliers, and at times even competitors, are all invited into the inner study of
computing system. Consequently, distributed security using the Web Services paradigm
requires end-to-end security—a service request is made, which goes through the firewall,
into application servers and applications at the heart of your corporate network, to the
persistent store of your sensitive data in the back-office [7].
Given the potential risks, security must be a central focus of any Web Services
implementation. Just as IT organizations are turning to proven Enterprise Application
Integration (EAI) [8] architectures to address systems integration issues, they can take
advantage of new Enterprise Application Security Integration (EASI) [8] architectures
that enable end-to-end integration of scalable, best-of-breed security technologies for
their Web Services.
Web Services Security
______________________________________________________________________________________
24
What makes security for Web Services so challenging is the distributed, heterogeneous
nature of these services. Web Services technology is based on the interoperation of many
different software applications running on a variety of geographically dispersed systems
in a complex, multidomain environment via the Internet. The Extensible Markup
Language (XML); SOAP; Universal Description, Discovery, and Integration (UDDI);
Web Services Description Language (WSDL); and other protocols and mechanisms are
employed to enable platform-independent interaction across domains via the Internet.
3.1 What is Needed?
Corporations are discovering the power of Web Services-enabled e-business applications
to increase customer loyalty, support sales efforts, and manage internal information. The
common thread in these diverse efforts is the need to present end users with a unified
view of information stored in multiple systems, particularly as organizations move from
static Web sites to the transactional capabilities of electronic commerce. To satisfy this
need, legacy systems are being integrated with powerful new Web Services-based
applications that provide broad connectivity across a multitude of back-end systems.
These unified applications bring direct bottom-line benefits.
3.2 Goals of Security
Information security focuses on protecting valuable and sensitive enterprise data. To
secure information assets, organizations must provide availability to users, while barring
unauthorized access. In general, secure systems must provide the following protections
[8]:
Confidentiality. Safeguard user privacy and prevent the theft of enterprise information
both stored and in transit.
Integrity. Ensure that electronic transactions and data resources are not tampered with at
any point, either accidentally or maliciously.
Web Services Security
______________________________________________________________________________________
25
Accountability. Detect attacks in progress or trace any damage from successful attacks
(security auditing and intrusion detection). Prevent system users from later denying
completed transactions (non-repudiation).
Availability. Ensure uninterrupted service to authorized users. Service interruptions can
be either accidental or maliciously caused by denial-of-service attacks.
Security should be an integral part of Web Service design and implementation to provide
above four key protections.
3.3 Need for Security
Many system architects and developers are used to thinking about security as a low-level
topic, dealing only with networks, firewalls, operating systems, and cryptography.
However, Web Services change the risk levels associated with deploying software
because of the increased ability to access data, and as a result, security is becoming an
important design issue for any e-business software component. The scope of Web
Services security is so broad. There are many examples that drive security needs [8]:
E-commerce sites on the Internet. These rely on credit card authorization services from
an outside company. A relationship between an e-commerce company and a credit card
service depends on authenticated communication.
Cross-selling and customer relationship management. This relies on customer
information being shared across many lines of business within an enterprise. Cross-
selling allows an enterprise to offer a customer new products or service based on existing
sales. Customer relationship management allows the enterprise to provide consistent
customer support across many different services.
Supply chain management. This requires continuing communication among all of the
suppliers in a manufacturing chain to ensure that the supply of various parts is adequate
to meet demand. The transactions describing the supply chain that are exchanged among
Web Services Security
______________________________________________________________________________________
26
the enterprises contain highly proprietary data that must be protected from outside
snooping.
In these examples, one enterprise can expose another organization to increased security
risk. For example, a partner can without intention expose your business to a security
attack by providing its customers access to your business resources. As a result, security
risk is so high for an organization.
3.3 Risk Management
A large middle ground exists of risk management between the options of avoiding e-
business applications based on Web Services altogether, launching unprotected systems,
or burdening every application with prohibitively costly and user-unfriendly security
measures. The risk-management aims to control risk, if not eliminated [9]. Risk
management is a precise balancing process of determining how much and what kind of
security to incorporate in light of business needs and acceptable levels of risk. It unlocks
the profit potential of expanded network connectivity by enabling valid use while
blocking unauthorized access. The goal is to provide adequate protection to meet
business needs without undue risk, making the right trade-offs between security and cost,
performance, and functionality.
Different Web Services users have different concerns like, ISP’s primarily concern is
availability, hospital administrator requires data integrity, banker is cautious about
accountability, and the military officer worries about confidentiality [8].
The challenge is to implement security in a way that meets business needs cost
effectively in the short term and as enterprise needs expand. Meeting the challenge
requires a collaborative effort between corporate strategists and information technology
managers. Understanding the business drivers for information security helps clarify
where to focus security measures. Understanding the underlying application
architecture—how components work together—clarifies the most practical approach for
Web Services Security
______________________________________________________________________________________
27
building system security. Industrial experience in managing e-business information
security is generally low. Security technology is changing rapidly, and corporate
management is not well equipped to cope with risk management changes caused by
technology changes. New versions of interconnected Web Services systems and software
product versions continue to appear, and with each release, a whole new set of security
vulnerabilities surfaces. Managing security risk in distributed Web Services applications
is daunting, but following some basic rules for building security into component-based
applications lays the groundwork for a solid risk management approach.
3.3 Security: A Serious Concern
Information security is a serious concern for most businesses. Even though the reporting
of computer-based crime is irregular because companies fear negative publicity and
continued attacks, the trend is quite clear: Information security attacks continue to be a
real threat to businesses.
Threats to businesses result from both internal and external attacks. A large percent of
businesses detected insider attacks by trusted corporate users. To meet corporate needs, a
complete end-to-end security solution must address insider attacks. Web Services
solutions blur the line between the inside world containing trusted users and the outside
world containing potentially hostile attackers. A primary purpose of Web Services
architectures is to open up the corporate network to the external world, thus allowing
valuable corporate resources to be accessible to outsiders [8]. Outsiders such as business
partners, suppliers, or remote employees, may have data access rights to corporate
information very similar to those of many insiders. As a result, protection mechanisms
must be in place not only at the external system boundaries, but also throughout the
enterprise architecture. Because of the continuing threat, many businesses are increasing
their spending on security; large corporations are increasing their spending the most. It
has been seen organizations address security using a fragmented, inefficient approach, in
which various corporate divisions each build their own ad hoc security solutions. Security
system implemented gradually can be worse than no security at all because they believe
Web Services Security
______________________________________________________________________________________
28
mistakenly that the system is secure, and there is redundant spending across the
organization, and solutions are not scalable and interoperable, and have high
maintenance, training and administration costs [8].
Applying security products without thinking about how they all fit together clearly does
not work. Businesses should build and leverage a common security infrastructure that is
shared across the enterprise. A unified approach to Web Services security is the only way
to address complex multitier Web Services applications.
3.3 Securing Web Services
The pervasive reach and platform-agnostic nature of Web Services demands a security
framework that enables enterprises to secure and control access to applications and data,
without impeding the exchange of data that is essential for successful Web Services.
3.3 Requirements for Web Services Security
There are some core security services that are fundamental to end-to-end application
security across multitier applications, which are as follows [9]:
Authentication. Verifies that principals (human users, registered system entities, and
components) are who they claim to be. The result of authentication is a set of credentials,
which describes the attributes (for example, identity, role, group, and clearance) that may
be associated with the authenticated principal.
Authorization. Grants permission for principals to access resources, providing the basis
for access control, which enforces restrictions of access to prevent unauthorized use.
Access controls ensure that only authorized principals may modify resources and that
resource contents are disclosed only to authorized principals.
Cryptography. Provides cryptographic algorithms and protocols for protecting data and
messages from disclosure or modification. Encryption provides confidentiality by
Web Services Security
______________________________________________________________________________________
29
encoding data into an unintelligible form with a reversible algorithm, which allows the
holder of the decryption key(s) to decode the encrypted data. A digital signature provides
integrity by applying cryptography to ensure that data is authentic and has not been
modified during storage or transmission.
Accountability. Ensures that principals are accountable for their actions. Security
auditing provides a record of security-relevant events and permits the monitoring of a
principal’s actions in a system. Non-repudiation provides certain proof of data origin or
receipt.
Security administration. Defines the security policy maintenance life cycle embodied in
user profiles, authentication, authorization, and accountability mechanisms as well as
other data relevant to the security framework.
All security services must be reliable and provided with enough assurance. That is, there
must be confidence that security services have been implemented correctly, reliably, and
without relying on the secrecy of proprietary mechanisms.
Moreover, all of the critical security services must be provided on an end-to-end basis.
Each Web Services transaction must be traceable from its origin through to its
fulfillment, maintaining consistent security across processing tiers and domains. This
cannot be achieved easily when one considers the range of systems, applications, and
business processes involved in a typical Web Services transaction—and when these
distributed systems may be managed in very different ways.
Access to enterprise Web Services search and discovery mechanisms, such as UDDI, also
needs to be managed. While much of the Web Service information listed in a Web
Services directory is appropriate for all the applications or developers in the enterprise, it
is also important to provide a robust security mechanism for user authentication and
authorization [9]. This facility is used to limit the set of users who may either access or
update Web Services directory entries, and can be centrally managed.
Web Services Security
______________________________________________________________________________________
30
Web Services security must be flexible enough to identify all participants in a transaction
based on a variety of authentication mechanisms. Web Services security must also be
able to establish a user security context at each processing tier. (A user security context is
the combination of a user’s identity and security-relevant attributes.) Sophisticated
authorization policies using the security context will be needed. The Web Services
security facility must perform auditing so that an accurate record of the steps that
occurred to fulfill a request and the identities of the responsible parties is maintained.
Finally, in order to achieve end-to-end security, the Web Services security must pass the
security context between domains or tiers, thereby establishing a consistent security
context for the entire transaction. Without this consistent security context, there is no way
to attribute actions to the right individual later. Passing the user security context also
eliminates the need for a user to authenticate again each time his/her request crosses from
one tier to another [9]. Thus, an additional benefit of the seamless integration of security
with Web Services is to provide single sign-on (SSO), even across organizations using
different security technologies.
Web Services require the ability to use different authentication mechanisms, establish a
security context, implement sophisticated authorization policies, and attribute actions to
the proper individuals. Consistent security must be maintained across processing layer
and domains in the Web Services world [9]. Flexible ways to create, pass, and establish
security contexts are needed for end-to-end security in a Web Services environment.
Web Services Security
______________________________________________________________________________________
31
Chapter 4
Enterprise Application Security Integration
To solve the difficult issue of securely connecting Web servers to back-office data stores,
there is a concept of end-to-end Enterprise Application Security Integration (EASI).
EASI is a special case of EAI [8].
EAI is a technique for unifying many different applications by using a common
middleware infrastructure. EAI provides an application bus that allows every application
to communicate with others via a common generic interface. Without EAI, an application
would need a separate interface for every other application, thus causing too many
connections between applications. EAI allows application development to scale to a large
number of interchangeable components.
Integration of end-to-end security requires EAI techniques. Many different security
technologies are used in the front, middle, and back-office layers. Typically, these
security technologies do not interoperate easily. As a result, a separate ad hoc interface to
connect one security technology to another causes again too many connections between
security technologies [9].
EASI provides a common security framework to integrate many different security
solutions. We use Web Services security to bridge the security gap between front and
back-office security. EASI enables new security technologies in each tier to be added
without affecting the business applications.
4.1 EASI Requirements
A key issue in enterprise security architectures is the ability to support end-to-end
security across many application components. End-to-end security is the ability to ensure
that data access is properly protected over the entire path of requests and replies as they
travel through the system. The scope of end-to-end security begins with the person
Web Services Security
______________________________________________________________________________________
32
accessing a Web browser or other client program, continues through the business
components of the middle tier, and ends at the data store on the back-office legacy
system. The path may travel through both public and private networks with varying
degrees of protection. In the enterprise architecture shown in Figure 4.1, a user accesses
an application in the presentation layer (for example, a Web browser client sends requests
to a Web server), which communicates to mid-tier business components (such as Web
Service enabled application servers) [10]. Frequently, the client request is transmitted
through a complex multitier business components running on a variety of platforms. The
request finally makes it to one or more back-office systems, which access persistent data
stores on behalf of the user, process the request, and return the appropriate results.
To provide end-to-end security, each link in the chain of requests and replies must be
properly protected: from the initiating client, through mid-tier business components, to
the back-office systems, and then back again to the client. There are three security tiers
that make up any end-to-end enterprise security solution [10]:
Perimeter security technologies. Used between the client and the Web server. Perimeter
security enforces protection for customer, partner, and employee access to corporate
resources. Perimeter security primarily protects against external attackers, such as
hackers.
Mid-tier security technologies. Used between the mid-tier business components. Mid-
tier security focuses primarily on protecting against insider attacks, but also provides
another layer of protection against external attackers.
Back-office security technologies. Address the protection of databases and operating-
system-specific back-end systems, such as mainframe, Unix, and Windows server
platforms.
Web Services Security
______________________________________________________________________________________
33
4.2 EASI Solution
EASI solutions integrate security technologies across the front, middle, and back-office
security tiers [10]. An EASI solution first and foremost consists of a security framework,
which describes a collection of security service interfaces that may be implemented by an
evolving set of security products.
In addition to the framework, an EASI solution also contains the software and hardware
technologies for securing e-business components.
Finally, an EASI solution contains integration techniques, such as bridges, wrappers, and
interceptors, that developers can use to plug security technologies into a middleware
environment [10]. To hook together different security technologies, EASI must solve a
key problem: defining a secure association between clients and targets that establishes a
common security context. The security context, which contains a user’s identity and other
security attributes, must be transferred across the system to a target application. A user’s
identity and security attributes form the basis for authorization decisions and audit events,
and must be protected as they are transmitted between front, middle, and back-office
tiers, as shown in Figure 4.1. Because each technology in these tiers represents and
protects a user’s security information differently, integration of the security context can
be a rather difficult problem.
To get a mix approach of different security technologies to interact with one another, the
organization for the Advancement of Structured Information Standards (OASIS) is
defining standards called WS-Security [11] and SAML [12] to address this issue. WS-
Security defines a standard way to attach security information to SOAP messages, while
SAML defines a format for exchanging authentication, authorization, and attribute
assertions. The combination of these two specifications provides a description of the
security context that can be passed across the tiers of architecture. WS-Security and
SAML together are a standards-based approach for expressing the security context that is
not tied to any particular vendor’s application environment or security product. Designed
Web Services Security
______________________________________________________________________________________
34
specifically for distributed security environments, WS-Security and SAML are important
building blocks for any Web Services security framework.
Figure 4.1. Key e-business challenge: end-to-end EASI [10].
4.3 EASI Framework
The EASI framework specifies the interactions among the security services and the Web
Services components that use those security services. By using common interfaces, it’s
possible to add new security technology solutions without making big changes to the
existing framework. In this way, the EASI framework supports plug-ins for new security
technologies. Key aspects of the framework are shown in Figure 4.2.
Applications
The security framework provides enterprise security services for presentation
components, business logic components, and back-office data stores. The framework
supports security mechanisms that enforce security on behalf of security-aware and
security-unaware applications [10].
Security-aware application. An application that uses security Application Programming
Interfaces (APIs) to access and validate the security policies that apply to it. Security-
aware applications may directly access security functions that enable the applications to
Web Services Security
______________________________________________________________________________________
35
perform additional security checks and fully exploit the capabilities of the security
infrastructure.
Figure 4.2. EASI framework [10].
Security-unaware application. An application that does not explicitly call security
services, but is still secured by the supporting environment. Security is typically enforced
for security-unaware applications by using interceptors, which transparently call the
underlying security APIs on behalf of the application. This approach reduces the burden
on application developers to implement security logic within applications and lessens the
chance of security flaws being introduced.
Other applications, called security self-reliant applications, do not use any of the security
services provided by the framework. A security self-reliant application may not use the
security services for two reasons: because it has no security-relevant functionality and
thus does not need to be secured or because it uses separate independent security
functions that are not part of the defined EASI security framework.
Web Services Security
______________________________________________________________________________________
36
APIs
The framework security APIs are called explicitly by security-aware applications and
implicitly by security-unaware applications via interceptors. Security APIs provide
interfaces for access to the framework security services. The framework supports
standard, custom, and vendor security APIs [10].
Standard security APIs. We encourage support for APIs based on open standards or
industry standards. These standards should be used whenever possible because they are
likely to provide the most stability and the most portability across many different
vendors’ products.
Custom security APIs. Custom APIs may be implemented when an enterprise’s needs
cannot be met by existing standard APIs. Custom APIs are required especially when an
enterprise uses a security service that is tailored to its business, for example, a custom-
rule-based entitlements engine developed internally by an investment bank.
Vendor security APIs. As a last resort, vendor-specific proprietary APIs may be used
where open standards have not yet been defined. We recommend avoiding the use of
proprietary security APIs in applications if at all possible. Proprietary APIs make it very
difficult for the developer or administrator to switch security products. Although vendors
may think this is a great idea, we believe that security technology is changing much too
rapidly for an enterprise to be confined to any one product. As an alternative, we
recommend wrapping a vendor’s proprietary API with a standard or custom API.
Core Security Services
The next layer of the security framework provides core security services enabling end-to-
end application security across multitier applications. Each of the security services
defines a wrapper that sits between the security APIs and the security products. The
security services wrappers serve to isolate applications from the underlying security
products. This allows one to switch security products, if the need arises, by simply
Web Services Security
______________________________________________________________________________________
37
creating a new wrapper, without affecting application code. The key security services are
authentication, authorization, cryptography, accountability, and security administration.
Framework Security Facilities
The framework provides general security facilities that support the core security services.
The framework security facilities include the profile manager, security association, and
proxy services [10].
Profile manager. Provides a general facility for persistent storage of user and application
profile and security policy data that can be accessed by other framework services.
Security association. Handles the principal’s security credentials and controls how they
propagate. During a communication between any two client and target application
components, the security association establishes the trust in each party’s credentials and
creates the security context that will be used when protecting requests and responses in
transit between the client and the target. The security association controls the use of
delegation, which allows an intermediate server to use the credentials of an initiating
principal so that the server may act on behalf of the principal.
Security proxy services. Provide interoperability between different security technology
domains by acting as a server in the client’s technology domain and a client in the
target’s domain.
Security Products
Implementation of the framework generally requires several security technology products
that collectively constitute the enterprise security services. Examples of such required
security products include firewalls, Web authentication/authorization products, Web
Service and component authentication/authorization products, cryptographic products,
and directory services.
Web Services Security
______________________________________________________________________________________
38
4.4 EASI Benefits
The benefits of using a framework to address enterprise application security integration
are clear. The approach focuses on standards, which are the best way to maintain Web
Service application portability and interoperability in the long run. Products and
technologies will come and go, but generally accepted security standards for fundamental
security services will be much more stable. A standards-based set of security APIs allows
you to evolve security products over time without needing to rewrite your applications.
Designing user applications for evolving security products is important because user
business requirements and new security technologies will continue to be a moving target.
One might choose a great product that satisfies the needs for the present, but one can
probably want to change the product in the future.
Having a security framework also means that everything does not need to be
implemented at once. The framework allows user to start small by selecting the security
services user needs and building more sophisticated security functionality when and if it’s
required. The framework provides a roadmap for security architecture, helping to guide
on how to choose products and technologies that match the needs over time [10].
Finally, the framework puts the security focus where it should be—on building a
common infrastructure that can be shared across the enterprise. Custom-built security that
is hand-coded within applications is expensive to implement and maintain and is likely to
have more security vulnerabilities [10]. A single security infrastructure with APIs that
can be used by all of the applications avoids multiple, duplicate definitions of users,
security attributes, and other policies. User can focus his limited time and money on
building a few critical interoperable security technologies rather than coping with a mass
of unrelated security products that will never work together.
Web Services Security
______________________________________________________________________________________
39
Conclusion
This study tried to assess different approaches toward building secure web services
architecture, and tried to highlight some security concerns. In general, it is recommended
that web services be designed according to the principles of enterprise application
security architecture. However, it is sometimes desirable to build services capable of
referencing each other, which may lead to a finer-grained, secure services design. When
building a new service, it is worth considering carefully the pros and cons of all design
styles, and gathers the requirements of target environment and goal of the system, which
can result in a better integration solution for a targeted domain.
Web Services Security
______________________________________________________________________________________
40
REFERENCES
[1] Micheal C. Daconta, Leo J. Orbst, Kevin T. Smith. Chapter 4: Understanding Web
Services. The Semantic Web: A Guide to the Future of XML, Web Services, and
Knowledge Management. Wiley Publication, Inc. 2003
[2] Extensible Markup Language (XML) – “http://www.w3.org/TR/xml/” Retrieved on
January 18, 2007
[3] Fielding, Gettys, Mogul, et al. Hypertext Transfer Protocol – HTTP/1.1 RFC 2616,
Internet Society, 1999. "http://www.w3.org/Protocols/rfc2616/rfc2616.html" Retrieved
on February 5, 2006
[4] Simple Object Access Protocol (SOAP) – “http://www.w3.org/TR/SOAP” Retrieved
on February 12, 2006
[5] Francisco Curbera, Matthew Duftler, Rania Khalaf, William Nagy, Nirmal Mukhi,
and Sanjiva Weerawarana. Unraveling the Web Services Web An Introduction to SOAP,
WSDL, and UDDI, pages 86-93, IEEE Internet Computing
[6] Doug Tidwell, James Snell, Pavel Kulchenko. Chapter 2: Introducing SOAP.
Programming Web Services with SOAP. O'Reilly December 2001
[7] Bret Hartman, Donald J. Flin, Konstantin Beznosov, Shirley Kawamoto. Introduction.
Mastering Web Services Security. Wiley Publishing Inc. 2003
[8] Bret Hartman, Donald J. Flin, Konstantin Beznosov, Shirley Kawamoto. Security as
Enabler for Web Services Application: Chapter 1: Overview of Web Service Security.
Mastering Web Services Security. Wiley Publishing Inc. 2003
Web Services Security
______________________________________________________________________________________
41
[9] Bret Hartman, Donald J. Flin, Konstantin Beznosov, Shirley Kawamoto. Securing
Web Services: Chapter 1: Overview of Web Service Security. Mastering Web Services
Security. Wiley Publishing Inc. 2003
[10] Bret Hartman, Donald J. Flin, Konstantin Beznosov, Shirley Kawamoto. Unifying
Web Services Security: Chapter 1: Overview of Web Service Security. Mastering Web
Services Security. Wiley Publishing Inc. 2003
[11] Web Service Security (WS_Security) – “http://www.oasis-
open.org/committees/tc_home.php?wg_abbrev=wss” Retrieved on March 8, 2007
[12] Security Assertion Markup Language (SAML) – “http://www.oasis-
open.org/committees/tc_home.php?wg_abbrev=security” Retrieved on March 8, 2007

More Related Content

Similar to Web Services Security - Full Report

Dr Dev Kambhampati | DHS- Cybersecurity improving security of industrial con...
Dr Dev Kambhampati | DHS- Cybersecurity  improving security of industrial con...Dr Dev Kambhampati | DHS- Cybersecurity  improving security of industrial con...
Dr Dev Kambhampati | DHS- Cybersecurity improving security of industrial con...Dr Dev Kambhampati
 
Rapport veille salon-mobile IT & bigdata
Rapport veille salon-mobile IT & bigdataRapport veille salon-mobile IT & bigdata
Rapport veille salon-mobile IT & bigdataViedoc
 
Safeguarding Data Privacy by Placing Multi-level Access Restrictions
Safeguarding Data Privacy by Placing Multi-level Access RestrictionsSafeguarding Data Privacy by Placing Multi-level Access Restrictions
Safeguarding Data Privacy by Placing Multi-level Access Restrictionsrahulmonikasharma
 
A Comprehensive Review of Cyber Security, Threats and Cyber Attacks
A Comprehensive Review of Cyber Security, Threats and Cyber AttacksA Comprehensive Review of Cyber Security, Threats and Cyber Attacks
A Comprehensive Review of Cyber Security, Threats and Cyber AttacksIRJET Journal
 
Ubiwhere Research and Innovation Profile
Ubiwhere Research and Innovation ProfileUbiwhere Research and Innovation Profile
Ubiwhere Research and Innovation ProfileUbiwhere
 
Employing Telematics to Transform Workers' Compensation
Employing Telematics to Transform Workers' CompensationEmploying Telematics to Transform Workers' Compensation
Employing Telematics to Transform Workers' CompensationCognizant
 
Enhancing intelligence with the Internet of Things
Enhancing intelligence with the Internet of ThingsEnhancing intelligence with the Internet of Things
Enhancing intelligence with the Internet of ThingsThe Marketing Distillery
 
Would a wanna cry make the industry wanna cry Mysore and Lear
Would a wanna cry make the industry wanna cry   Mysore and LearWould a wanna cry make the industry wanna cry   Mysore and Lear
Would a wanna cry make the industry wanna cry Mysore and LearNSW Environment and Planning
 
IRJET- Data Privacy and Security Industry – Opportunities and Challenges
IRJET- Data Privacy and Security Industry – Opportunities and ChallengesIRJET- Data Privacy and Security Industry – Opportunities and Challenges
IRJET- Data Privacy and Security Industry – Opportunities and ChallengesIRJET Journal
 
Hype cycle for e commerce, 2010
Hype cycle for e commerce, 2010Hype cycle for e commerce, 2010
Hype cycle for e commerce, 2010Gaurav Verma
 
Cyber Investigation Portal
Cyber Investigation PortalCyber Investigation Portal
Cyber Investigation PortalIRJET Journal
 
IRJET - Eloquent Salvation and Productive Outsourcing of Big Data
IRJET -  	  Eloquent Salvation and Productive Outsourcing of Big DataIRJET -  	  Eloquent Salvation and Productive Outsourcing of Big Data
IRJET - Eloquent Salvation and Productive Outsourcing of Big DataIRJET Journal
 
Siwes report by mukhtar salisu
Siwes report by mukhtar salisuSiwes report by mukhtar salisu
Siwes report by mukhtar salisuMukhtarsalisu2
 
IRJET- Enhancement in Netbanking Security
IRJET-  	  Enhancement in Netbanking SecurityIRJET-  	  Enhancement in Netbanking Security
IRJET- Enhancement in Netbanking SecurityIRJET Journal
 
5G Antennas Market :- A Global Market Report
5G Antennas Market :- A Global Market Report5G Antennas Market :- A Global Market Report
5G Antennas Market :- A Global Market ReportBIS Research Inc.
 
A Review of deep learning techniques in detection of anomaly incredit card tr...
A Review of deep learning techniques in detection of anomaly incredit card tr...A Review of deep learning techniques in detection of anomaly incredit card tr...
A Review of deep learning techniques in detection of anomaly incredit card tr...IRJET Journal
 
Internet of Things - Enablement by Techcello
Internet of Things - Enablement by TechcelloInternet of Things - Enablement by Techcello
Internet of Things - Enablement by TechcelloIlyas F ☁☁☁
 

Similar to Web Services Security - Full Report (20)

Stateful Web Services - Full Report
Stateful Web Services - Full ReportStateful Web Services - Full Report
Stateful Web Services - Full Report
 
Dr Dev Kambhampati | DHS- Cybersecurity improving security of industrial con...
Dr Dev Kambhampati | DHS- Cybersecurity  improving security of industrial con...Dr Dev Kambhampati | DHS- Cybersecurity  improving security of industrial con...
Dr Dev Kambhampati | DHS- Cybersecurity improving security of industrial con...
 
SRIS Classification_Copyright_ERL_2014
SRIS Classification_Copyright_ERL_2014SRIS Classification_Copyright_ERL_2014
SRIS Classification_Copyright_ERL_2014
 
Rapport veille salon-mobile IT & bigdata
Rapport veille salon-mobile IT & bigdataRapport veille salon-mobile IT & bigdata
Rapport veille salon-mobile IT & bigdata
 
Safeguarding Data Privacy by Placing Multi-level Access Restrictions
Safeguarding Data Privacy by Placing Multi-level Access RestrictionsSafeguarding Data Privacy by Placing Multi-level Access Restrictions
Safeguarding Data Privacy by Placing Multi-level Access Restrictions
 
A Comprehensive Review of Cyber Security, Threats and Cyber Attacks
A Comprehensive Review of Cyber Security, Threats and Cyber AttacksA Comprehensive Review of Cyber Security, Threats and Cyber Attacks
A Comprehensive Review of Cyber Security, Threats and Cyber Attacks
 
Cisco 2017 Midyear Cybersecurity Report
Cisco 2017 Midyear Cybersecurity ReportCisco 2017 Midyear Cybersecurity Report
Cisco 2017 Midyear Cybersecurity Report
 
Ubiwhere Research and Innovation Profile
Ubiwhere Research and Innovation ProfileUbiwhere Research and Innovation Profile
Ubiwhere Research and Innovation Profile
 
Employing Telematics to Transform Workers' Compensation
Employing Telematics to Transform Workers' CompensationEmploying Telematics to Transform Workers' Compensation
Employing Telematics to Transform Workers' Compensation
 
Enhancing intelligence with the Internet of Things
Enhancing intelligence with the Internet of ThingsEnhancing intelligence with the Internet of Things
Enhancing intelligence with the Internet of Things
 
Would a wanna cry make the industry wanna cry Mysore and Lear
Would a wanna cry make the industry wanna cry   Mysore and LearWould a wanna cry make the industry wanna cry   Mysore and Lear
Would a wanna cry make the industry wanna cry Mysore and Lear
 
IRJET- Data Privacy and Security Industry – Opportunities and Challenges
IRJET- Data Privacy and Security Industry – Opportunities and ChallengesIRJET- Data Privacy and Security Industry – Opportunities and Challenges
IRJET- Data Privacy and Security Industry – Opportunities and Challenges
 
Hype cycle for e commerce, 2010
Hype cycle for e commerce, 2010Hype cycle for e commerce, 2010
Hype cycle for e commerce, 2010
 
Cyber Investigation Portal
Cyber Investigation PortalCyber Investigation Portal
Cyber Investigation Portal
 
IRJET - Eloquent Salvation and Productive Outsourcing of Big Data
IRJET -  	  Eloquent Salvation and Productive Outsourcing of Big DataIRJET -  	  Eloquent Salvation and Productive Outsourcing of Big Data
IRJET - Eloquent Salvation and Productive Outsourcing of Big Data
 
Siwes report by mukhtar salisu
Siwes report by mukhtar salisuSiwes report by mukhtar salisu
Siwes report by mukhtar salisu
 
IRJET- Enhancement in Netbanking Security
IRJET-  	  Enhancement in Netbanking SecurityIRJET-  	  Enhancement in Netbanking Security
IRJET- Enhancement in Netbanking Security
 
5G Antennas Market :- A Global Market Report
5G Antennas Market :- A Global Market Report5G Antennas Market :- A Global Market Report
5G Antennas Market :- A Global Market Report
 
A Review of deep learning techniques in detection of anomaly incredit card tr...
A Review of deep learning techniques in detection of anomaly incredit card tr...A Review of deep learning techniques in detection of anomaly incredit card tr...
A Review of deep learning techniques in detection of anomaly incredit card tr...
 
Internet of Things - Enablement by Techcello
Internet of Things - Enablement by TechcelloInternet of Things - Enablement by Techcello
Internet of Things - Enablement by Techcello
 

Web Services Security - Full Report

  • 1. Web Services Security An Independent Study Report - II SUBMITTED TO THE FACULTY OF COMPUTER SCIENCES ON GRADUATE STUDIES OF SHAHEED ZULFIKAR ALI BHUTTO INSTITUTE OF SCIENCE & TECHNOLOGY IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE (COMPUTER SCIENCE) Muhammad Jawaid Shamshad MS/PhD (CS) 052210 May 2007 Supervised by Naeem Janjua
  • 3. Web Services Security ______________________________________________________________________________________ 3 Acknowledgements In this era of technology with ever-increasing scope and compressed schedules, acknowledging the contributions of everyone involved along the way is more and more important. All too often, we move on to new projects without remembering to thank the people who have helped us on the current one. A contribution that might on the surface seem small can in fact make or break a project or present a fresh way of solving a problem. It's important not only to thank people personally but also to find every opportunity to recognize their contributions publicly. The author's study of "Web Services Security" need lots of effort and the author wishes to thank his colleagues and specially his advisor Sir Naeem Janjua who gave his precious advice in conducting this study. Muhammad Jawaid Shamshad MS/PhD (CS) 052210
  • 4. Web Services Security ______________________________________________________________________________________ 4 TABLE OF CONTENTS CHAPTER 1...................................................................................................................... 7 INTRODUCTION ............................................................................................................ 7 1.1 LITERATURE REVIEW............................................................................................................................ 7 1.2 RESEARCH METHOD ............................................................................................................................. 7 1.3 PROBLEM.............................................................................................................................................. 7 1.4 NEED .................................................................................................................................................... 8 1.5 SECURITY BEST PRACTICE.................................................................................................................... 8 1.6 WHAT IS COVERED IN THIS STUDY?...................................................................................................... 8 CHAPTER 2.................................................................................................................... 10 WHAT ARE WEB SERVICES?................................................................................... 10 2.1 WEB SERVICE ......................................................................................................................................10 2.2 SOAP ..................................................................................................................................................11 2.3 WSDL.................................................................................................................................................14 2.4 DISCOVERING WEB SERVICE ...............................................................................................................18 2.4.1 UDDI ...............................................................................................................................................19 2.4.2 EBXML REGISTRIES .........................................................................................................................21 CHAPTER 3.................................................................................................................... 23 SECURITY PROBLEM................................................................................................. 23 3.1 WHAT IS NEEDED?...............................................................................................................................24 3.2 GOALS OF SECURITY............................................................................................................................24 3.3 NEED FOR SECURITY............................................................................................................................25 3.3 RISK MANAGEMENT ............................................................................................................................26 3.3 SECURITY: A SERIOUS CONCERN.........................................................................................................27 3.3 SECURING WEB SERVICES ...................................................................................................................28 3.3 REQUIREMENTS FOR WEB SERVICES SECURITY...................................................................................28 CHAPTER 4.................................................................................................................... 31 ENTERPRISE APPLICATION SECURITY INTEGRATION ................................ 31 4.1 EASI REQUIREMENTS..........................................................................................................................31 4.2 EASI SOLUTION ..................................................................................................................................33 4.3 EASI FRAMEWORK..............................................................................................................................34 4.4 EASI BENEFITS ...................................................................................................................................38 CONCLUSION ............................................................................................................... 39 REFERENCES................................................................................................................ 40
  • 5. Web Services Security ______________________________________________________________________________________ 5 TABLE OF FIGURES FIGURE 2.1: STRUCTURE OF A SOAP MESSAGE………………………………….………………...13 FIGURE 2.2: THE SOAP MESSAGE STRUCTURE……………………………………………..……...13 FIGURE 2.3: THE SOAP REQUEST……………………………………………………………...……...14 FIGURE 2.4: THE SOAP RESPONSE………………………………………………………….………...14 FIGURE 2.5: WSDL ABSTRACT DESCRIPTION.……………………………………………………...16 FIGURE 2.6: WSDL’S CONCRETE BINDING INFORMATION…………………………………..…..18 FIGURE 2.7 AN EBXML ARCHITECTURE IN USE………………………………………………...….22 FIGURE 4.1: KEY E-BUSINESS CHALLENGE: END-TO-END EASI………………………………...34 FIGURE 4.2: EASI FRAMEWORK…………………...…………………………………………….…….35
  • 6. Web Services Security ______________________________________________________________________________________ 6 Abstract Web Services have great potential, but according to a survey nearly half of the obstacles to the deployment of web services are security that was more than twice the percentage of other challenges, such as bandwidth and access issues and interoperability problems. Organizations justifiably fear hackers and loss of confidential customer information such as they’ve experienced with their e-commerce web sites, web services present even greater security challenges that organizations haven’t previously encountered. This study presents the best practices and security model for maintaining security in web services.
  • 7. Web Services Security ______________________________________________________________________________________ 7 Chapter 1 Introduction 1.1 Literature Review Literature has been collected from research papers published, like at ACM and IEEE and chapter excerpts from some books (Books are listed in reference section), and internet. 1.2 Research Method This study presents the logical model for maintaining state of resources in web services. Study has been conducted by first defining the problem domain, its need, its scope, and then its generalized logical model in practice is discussed. The study plan can be depicted as:  Background Review  Problem Domain  Requirements Specification  Generalized logical model in Practice 1.3 Problem Web services are a promising solution to the distributed world with its interoperability as a major benefit, and allowing access to different data which was not accessible before that easily. Along with the benefits of Web Services comes a serious risk: sensitive and private data can be exposed to people who are not supposed to see it. Web Services will never accomplish their tremendous potential and goal unless associated risks should be properly managed.
  • 8. Web Services Security ______________________________________________________________________________________ 8 1.4 Need Since web services are normally used for business purposes to communicate between two businesses. This communication between two businesses is so critical that it involves the money factor, and any hacker or intruder can ruin the business of both parties. So there should be a mechanism of securing web services. Security is even difficult to avoid in a number of situations. One situation is Single Sing-On (SSO), when state is managed in web services where session is established between a consumer and a provider. 1.5 Security Best Practice There have been several best practices proposed by the security experts to secure the system. The details of these security practices will be discussed in following chapters, with Enterprise Application Security Integration (EASI) and WS-Security. 1.6 What is Covered in this Study? This study starts with the introduction of the wide world of Web Services security. It gives a quick overview of Web Services and described how they are focused on helping applications communicate with each other, enabling interactions between applications residing in different companies using different processing environments, what is the structure of the message passed between consumer and provider, how they are published, and how people can find information about the web services. Then we will move towards the main core of this study where we will first explain some important points about why security is important in web services environment and what can an organization can do about securing their web services: without a good security solution in place, many new e-business opportunities would not be feasible. It also discusses the concept of risk management, which balances the level of security that is required according to the business factors of cost, performance, and functionality. Since information security is a serious concern for many businesses, in terms of both external and internal (insider) attacks.
  • 9. Web Services Security ______________________________________________________________________________________ 9 Next, it is described that the need for controlling access to Web Services data without delaying the exchange of data. Then Web Services security requirements are described in terms of authentication, authorization, cryptography, accountability, and security administration. Then the mix approach of security mechanisms is specified that can be used to support Web Services security. After that in final chapter Enterprise Application Security Integration (EASI) is introduced, which is used to combine the many different security technologies needed to secure Web Services. It defines front, middle, and back-office tiers of security and describes how they all work together to provide end-to-end security. It defines an EASI solution in terms of a security framework, technologies, and integration techniques that combine those technologies together. EASI framework consists of a number of layers, including the applications, APIs, core security services, framework security services, and underlying security products. The EASI framework enables architects to design security systems that are flexible and able to meet future needs as business requirements and technologies evolve.
  • 10. Web Services Security ______________________________________________________________________________________ 10 Chapter 2 What are Web Services? 2.1 Web Service There are several definitions available for describing web services and it is difficult to give a concrete definition, but according to the authors of “The Semantic Web” [1] the concrete definition of web service would be: “Web services are software applications that can be discovered, described, and accessed based on XML and standard Web protocols over intranets, extranets, and the Internet.” Starting with the concept, the first sentence, “Web services are software applications” expresses the main point that Web services are software applications like other usual software applications which performs some specific tasks depending on their implementation. In addition these software applications are available on web. Next, according to the definition web services “can be discovered, described, and accessed based on XML and standard Web protocols”. This part clearly states that it is built on XML [2] which is a worldwide accepted standard and supported by majority of the vendors. Due to this web services are interoperable and the main focus of web service is interoperability. Other web protocols include Hypertext Transport Protocol (HTTP [3]) which is the underlying communication protocol. So web services use XML as the syntax of their message and use HTTP to transfer that message. This is the access method. The message is basically a Simple Object Access Protocol (SOAP [4]) envelop which is in XML format. Web services can dynamically be discovered by Universal Description, Discovery, and Integration (UDDI [5]) registries. These registries keep the record of web services and their description i.e. syntax of web services.
  • 11. Web Services Security ______________________________________________________________________________________ 11 UDDI then provides the description in Web Service Definition Language (WSDL [5]) form which is also in xml format and describes the syntax of web services. The last part of the definition state that Web services are available “over intranets, extranets, and the Internet”. This means that web services can be public as well as private web services for organizations internal use. Or web services can be between two partnering organizations in a B2B solution. So it is important to understand that web services are not only public accessible by world, but can also be private accessible within organization’s intranet. There is another important concept which should be cleared. Web services are not dependent on user interfaces. Web services are only APIs which an application can call to get information like flight schedule web service or it can be an airline reservation web service. Since message passing is in XML format so its representation is dependent on application how it displays it. 2.2 SOAP Simple Object Access Protocol (SOAP) was created by Microsoft, Developmentor, IBM, Lotus, and UserLand. SOAP is an XML-based protocol for messaging and remote procedure calls (RPCs). That is the format of SOAP is XML. The reason for adoption of XML as format of SOAP is that XML is universally accepted and adopted for data encoding for platforms independence. SOAP uses existing transport protocols like HTTP, SMPT, and MQSeries to transfer messages or remote procedure calls. Web services transfers XML messages in SOAP format which is like envelop and called SOAP envelop, which contains a SOAP header and a SOAP body. SOAP header contains the Meta information and the body contains the actual message or remote procedure call
  • 12. Web Services Security ______________________________________________________________________________________ 12 (RPC) in XML syntax. This SOAP envelop is sent over HTTP between web service consumers and web service providers or simply web service. There are also other protocols as defined above but in usual cases HTTP is used. W3C defines SOAP as “a lightweight protocol for exchange of information in a decentralized, distributed environment.” [4]. SOAP provides a standard language for tying client and server applications together on different platforms in which client application sends a SOAP request and web service returns a SOAP response. SOAP is associated with web services and it does not have any relation to object oriented programming. That means a developer can create a SOAP based web service in C, Pascal or any similar language which does not support object oriented programming. The only thing significant is that application written in such languages can understand XML i.e. can parse and evaluate XML documents, and can communicate over transport protocols like which SOAP supports like HTTP. SOAP has been adopted as the standard for Web services, and majority of the vendors have developed SOAP APIs for their products like Microsoft for their .Net platform and Sun for Java, thus making integration of software systems much easier. Now let’s look at the SOAP message syntax and how it works. A SOAP message consists of an envelope containing an optional header and a required body. Figure 2.1 shows a SOAP envelope’s structure. <SOAP:Envelope xmlns:SOAP=“http://schemas.xmlsoap.org/soap/envelope/”> <SOAP:Header> <!— content of header goes here —> </SOAP:Header> <SOAP:Body> <!— content of body goes here —> </SOAP:Body> </SOAP:Envelope>
  • 13. Web Services Security ______________________________________________________________________________________ 13 Figure 2.1: Structure of a SOAP message. The envelope features child elements that contain the message header and body elements. [5] The header contains information concerning how the message is to be processed. This includes routing and delivery settings, authentication or authorization assertions, and transaction contexts. The body contains the actual message to be delivered and processed. Anything that can be expressed in XML syntax can go in the body of a message. This is graphically depicted in Figure 2.2 [6]. Figure 2.2: The SOAP message structure [6] Let’s look at an example of a simple SOAP message. This example has been taken from the SOAP 1.1 specification. The Figure 2.3 [5] shows a simple SOAP message for getting the last trade price of the “DIS” ticker symbol. The SOAP envelope wraps everything in the message. The encodingStyle attribute of the SOAP envelope shows how the message is encoded, so that the Web service can read it. Next is the SOAP body of the message that wraps the application-specific information i.e. the call to GetLastTradePrice in the SOAP body. A Web service receives this information, processes the request in the SOAP body, and can return a SOAP response. <SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”> <SOAP-ENV:Body>
  • 14. Web Services Security ______________________________________________________________________________________ 14 <m:GetLastTradePrice xmlns:m=”Some-URI”> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figure 2.3: The SOAP request [5] The SOAP response for our example stock price request is shown in the Figure 2.4 [5] that follows. Just like the request, the message is syntactically the same: It consists of an envelope that wraps the message, it describes its encoding style, and it wraps the content of the message in the SOAP body. The message inside the body is different. Under SOAP-ENV: Body tag, we see that the message is wrapped in the GetLastTradePriceResponse tag, with the result price shown in Price tag. <SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m=”Some-URI”> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figure 2.4: The SOAP response [5] 2.3 WSDL Whereas SOAP is the communication language of Web services, but speaking a universal language is not very useful unless you can maintain the basic conversations that let you achieve your goals. Now how can we tell what messages must be exchanged to successfully interact with a service. That role is filled by WSDL. Web Service Definition Language (WSDL) is the way we describe the communication details and the application- specific messages that can be sent in SOAP. WSDL, like SOAP, is also in XML format and developed by IBM and Microsoft. The W3C defines WSDL as “an XML format for describing network services as a set of endpoints operating on messages containing either
  • 15. Web Services Security ______________________________________________________________________________________ 15 document-oriented or procedure-oriented information”. To know how to send messages to a particular Web service, an application can look at the WSDL and dynamically construct SOAP messages. WSDL describes the operational information—where the service is located, what the service does, and how to invoke the service. The format of WSDL is very difficult to understand, but it isn’t really intended to be human-readable. Developers do not have to understand WSDL and SOAP to create Web services. When developer creates a Web service, most toolkits generate WSDL for you. Then the client application generates the code for handling the Web service, generally called stub by looking at the WSDL. Finally, the client application and the Web service can communicate with each other. Two pieces of information are described in a WSDL service description. One is an abstract interface that is the application-level service description, and second is the specific protocol-dependent detail that client application needs to follow to access the service. These two types of information are necessary because similar application-level service functionality is often deployed at different end points with slightly different access protocol details. Separating the description of these two aspects helps WDSL represent common functionality between seemingly different end points. Abstract description is defined in WSDL as messages that need to be exchanged between client and web service communication. Abstract interface contains components like the vocabulary, the message, and the interaction. Vocabulary describes the type system to provide data type definitions to exchange the information. WSDL uses external type systems for this purpose. XSD is the most widely used but any type system is supported by WSDL. Generally XSD is used to define standard data types like string, int, float etc, which are supported by most of the languages like C/C++, Java, C# etc. External type system is used to define custom data types like if developer wants to define his class or structure and want to use that in communication. Figure 2.5 [5] shows an example in which two data types are defined in XSD (string and int), and two data types are defined in external schema (FlightInfoType and Ticket).
  • 16. Web Services Security ______________________________________________________________________________________ 16 <message name=“GetFlightInfoInput”> <part name=“airlineName” type=“xsd:string”/> <part name=“flightNumber” type=“xsd:int”/> </message> <message name=“GetFlightInfoOutput”> <part name=“flightInfo” type=“fixsd:FlightInfoType”/> </message> <message name=“CheckInInput”> <part name=“body” element=“eticketxsd:Ticket”/> </message> <portType name=“AirportServicePortType”> <operation name=“GetFlightInfo”> <input message=“tns:GetFlightInfoInput”/> <output message=“tns:GetFlightInfoOutput”/> </operation> <operation name=“CheckIn”> <input message=“tns:CheckInInput”/> </operation> </portType> Figure 2.5: WSDL abstract description. This fragment shows the string and int data types, which are defined in XSD, and two other data types defined in external schema: FlightInfoType and Ticket, which we assume were imported earlier in the WSDL file. [5] External XSD definitions are imported in WSDL using an “import” element which specifies the location of the schema. The message elements are defined in WSDL as aggregations of parts, and each part is described by XSD types or elements from any other external schema. Messages provide an abstract, typed data definition sent to and from the services. The example in Figure 2.5 shows the three messages that might appear during a Web services interaction. The message, GetFlightInfoInput, has two parts: airlineName, which is an XSD string, and flightNumber, which is an XSD integer. The other two messages, GetFlightInfoOutput and CheckInInput have only one part each. Interaction is defined by the operation and portType elements. Each operation represents a message exchange pattern that the Web service supports. An operation is simply a combination of
  • 17. Web Services Security ______________________________________________________________________________________ 17 messages labeled as input, output, or fault to indicate what part a particular message plays in the interaction. A portType is a collection of operations that are collectively supported by an end point. In our example, AirportServicePortType describes two operations: a single request-response operation, GetFlightInfo, which expects the GetFlightInfoInput message as input and returns a GetFlightInfoOutput message as the response; and a one-way operation, CheckIn, which just takes the CheckInInput message as input. Among the application-level functionality of the service we also need three more pieces of information:  what communication protocol to use (such as SOAP over HTTP)  how to accomplish individual service interactions over this protocol, and  Where to terminate communication (the network address). “What” and “how” parts of this information are provided by the binding element of the WSDL, including the communication protocol and data format specification. In short, the binding element tells how a given interaction occurs over the specified protocol. Figure 2.6 shows a fragment from our example. <binding name=“AirportServiceSoapBinding” type=“tns:AirportServicePortType”> <soap:binding transport=“http://schemas.xmlsoap.org/soap/http”/> <operation name=“GetFlightInfo”> <soap:operation style=“rpc” soapAction=“http://acme-travel/flightinfo”/> <input> <soap:body use=“encoded” namespace=” http://acme- travel.com/flightinfo” encodingStyle= “http://schemas.xmlsoap.org/soap/encoding/”/> </input> <output> <soap:body use=“encoded” namespace=“http://acme- travel.com/flightinfo” encodingStyle= “http://schemas.xmlsoap.org/soap/encoding/”/> </output>
  • 18. Web Services Security ______________________________________________________________________________________ 18 </operation> <operation name=“CheckIn”> <soap:operation style=“document” soapAction=“http://acme- travel.com/checkin”/> <input> <soap:body use=“literal”/> </input> </operation> </binding> <service name=“travelservice”> <port name=“travelservicePort” binding=“tns:AirportServiceSoapBinding”> <soap:address location=“http://acmetravel.com/travelservice”/> </port> </service> Figure 2.6: WSDL’s concrete binding information. GetFlightInfo is a SOAP RPC interaction and CheckIn is a pure messaging interaction that uses XSD to describe the transmitted XML. [5] The binding describes how to use SOAP to access the service-this combination of abstract interface and protocol and data marshalling details (the binding). A port element describes a single end point as a combination of a binding and a network address. Consequently, a service element groups a set of related ports. In our travel service example, a single port describes an end point that processes SOAP requests for the travelservice service. WSDL provides a formalized description of client–service interaction for users and developers. During development, developers use WSDL as the input to a proxy generator which can be a dynamic invocation proxy that generates client code according to the service requirements either at development time or at runtime. Proxy or stub generators relieve the developer to remember or understand all the details of service access. 2.4 Discovering Web Service As we have discussed that web services are now being widely used in ecommerce based applications and to do business on web. Now most of the organizations are moving
  • 19. Web Services Security ______________________________________________________________________________________ 19 towards web service. We have also discussed the technical details of web service that how web service works and which protocols are used in communication. But knowing this is not enough since if you don’t know who is providing which web service and what that web service do? If you know this then you can easily get or build your own application to communicate with that web service to expand your business. For this purpose some kind of registry is needed who maintains a list of web services and their feature so anyone can search his desired web service in that registry and communicate with it. There are two major technologies for this purpose. One is UDDI (Universal Description, Discovery, and Integration) and second is ebXML registries. UDDI was introduced in 2000 by Ariba, Microsoft, and IBM to facilitate the discovery of business processes. OASIS introduced ebXML in 1999, but their main focus was into consistent use of XML and standard protocols in EDI (Electronic Data Interchange) community. But a part of this effort, ebXML registries, is used for the discovery of ebXML business details. Both of these technologies are worth discussing and competing technologies, so let’s discuss one by one. 2.4.1 UDDI Universal Description, Discovery, and Integration (UDDI) is an evolving technology and is not yet a standard, but it is being implemented and embraced by major vendors like Microsoft and IBM [1]. To understand simply UDDI is like a phone book for Web services. Where organizations register their information about their web services and applications can search for that information in the registry. So UDDI allows applications to dynamically discover web services. When organization registers their information with UDDI they have to provide following information [5]:  white pages of company contact information,  yellow pages that categorize businesses by standard categorization, and  Green pages that document the technical information about web services, like WSDL.
  • 20. Web Services Security ______________________________________________________________________________________ 20 White pages may include information about a company or organization like organization name, their contact information like their phone numbers and email addresses, description of their business, and links to external sources and documents where their business is described in more detail. The yellow pages describe the categories or classification that what type of information their web services provide, plus their products, industry codes, and geographic index. The green pages describes their ebusiness rules that how to do business with the web services they have exposed, what are their business rules, and how to invoke the web service i.e. WSDL. It is worth noting that these registries can be public or private within organizations where only inter organization communication is needed. For internal integration, the use of UDDI private registries is of much value today. Within a large organization, where several large enterprise applications may need to interoperate, can use UDDI registries which can be helpful for discovering how to do so. The use of such a private registry could potentially minimize the use of interoperation documentation and reduce integration and development time for legacy enterprise applications. Once applications have been built on web services, and once the interfaces have been described in WSDL and published in a private UDDI registry, other programs and projects within your organization can dynamically connect and begin to interoperate [1]. Private registries are therefore secure since these are inter-organization and no alien is allowed to interfere and it will be operated according to the organization’s policy. You can also use public registries to expose your business but it is a long debate that putting your organizations asset into a public registry is risky [1], but after all there are also alternatives and resolution to this problem, like you can put a list of authorized users who can communicate with your web service. If anyone wants to talk to your web service then he has to register himself in your system as an authorized user. Here comes the need for state management in web services. Since if an authorized entity wants to talk with your web service then how can you maintain its state that how many times he has talked with
  • 21. Web Services Security ______________________________________________________________________________________ 21 your web service, or if he has tried to do some kind of fraud or performed any kind of illegal action. If you have been managing its state then you can block him and put it in your block list. Since to do this you need statistics about him and without managing its state you can not generate a report which describes his statistics so you can find who is doing a fear business with you or someone tries to cheat you or wants to play an unfair game. Securing web service is another topic which is beyond the scope of this study but we will see that what is the importance of managing state and how can we manage state in web service environment. 2.4.2 ebXML Registries The ebXML standard was created by OASIS. The main aim behind ebXML was to enable business applications exchange data in uniform format and to enable intelligent business processes using XML. ebXML was developed as a mechanism for XML-based business language since XML by itself does not provide semantics to solve interoperability problems. In short, ebXML provides a common way for businesses to quickly and dynamically perform business transactions based on common business practices [1]. Figure 2.7 shows an example of ebXML architecture in use. In the diagram, company business process information and implementation details are found in the ebXML registry and businesses can do business transactions after they agree on trading arrangements. Information that can be described and discovered in ebXML architecture includes the following [1]:  Business processes and components described in XML  Capabilities of a trading partner  Trading partner agreements between companies
  • 22. Web Services Security ______________________________________________________________________________________ 22 Figure 2.7 An ebXML architecture in use. [1] Understanding Web Services The spirit of the ebXML architecture is the ebXML registry, which is the system that is used to store and discover this information. The ebXML registry contains domain- specific semantics for B2B. These domain-specific semantics are the product of agreement on many business technologies and protocols. Simply ebXML could be described as the start of a domain specific semantic Web. The focus of ebXML was not initially on Web services, but it now uses SOAP as its message format. Therefore, many believe that ebXML will have a large role in the future of Web services. Unlike UDDI, ebXML is a standard. The ebXML standard does have support from many businesses, but the most influential companies in Web services, IBM and Microsoft, would like to see UDDI succeed as a registry for business information. However, it is possible that the two technologies can complement each other, and ebXML could succeed in the B2B market, while private UDDI registries succeed in the EAI market in the short term.
  • 23. Web Services Security ______________________________________________________________________________________ 23 Chapter 3 Security Problem When all the past distributed models were being implemented, one technology, security, always seemed to be tackled last. The idea was to get the model working first, and then worry about security. Inevitably, this resulted in poorly performing and difficult-to-use security. Web Services are a promising solution to an age-old need: fast and flexible information sharing among people and businesses that promises tremendous benefits in terms of productivity, efficiency, and accuracy. Web Services enable access to data that has previously been locked within corporate networks and accessible only by using specialized software. Along with the benefit, web services also present daunting challenges relating to privacy and security. In exposing critical business functions to the Internet, Web Services can expose valuable corporate data, applications, and systems to a variety of external threats and sensitive and private data can be exposed to people who are not supposed to see it. To secure this data, it is not sufficient to limit Web Services security to company’s firewall. In world of electronic commerce, customers, remote employees, suppliers, and at times even competitors, are all invited into the inner study of computing system. Consequently, distributed security using the Web Services paradigm requires end-to-end security—a service request is made, which goes through the firewall, into application servers and applications at the heart of your corporate network, to the persistent store of your sensitive data in the back-office [7]. Given the potential risks, security must be a central focus of any Web Services implementation. Just as IT organizations are turning to proven Enterprise Application Integration (EAI) [8] architectures to address systems integration issues, they can take advantage of new Enterprise Application Security Integration (EASI) [8] architectures that enable end-to-end integration of scalable, best-of-breed security technologies for their Web Services.
  • 24. Web Services Security ______________________________________________________________________________________ 24 What makes security for Web Services so challenging is the distributed, heterogeneous nature of these services. Web Services technology is based on the interoperation of many different software applications running on a variety of geographically dispersed systems in a complex, multidomain environment via the Internet. The Extensible Markup Language (XML); SOAP; Universal Description, Discovery, and Integration (UDDI); Web Services Description Language (WSDL); and other protocols and mechanisms are employed to enable platform-independent interaction across domains via the Internet. 3.1 What is Needed? Corporations are discovering the power of Web Services-enabled e-business applications to increase customer loyalty, support sales efforts, and manage internal information. The common thread in these diverse efforts is the need to present end users with a unified view of information stored in multiple systems, particularly as organizations move from static Web sites to the transactional capabilities of electronic commerce. To satisfy this need, legacy systems are being integrated with powerful new Web Services-based applications that provide broad connectivity across a multitude of back-end systems. These unified applications bring direct bottom-line benefits. 3.2 Goals of Security Information security focuses on protecting valuable and sensitive enterprise data. To secure information assets, organizations must provide availability to users, while barring unauthorized access. In general, secure systems must provide the following protections [8]: Confidentiality. Safeguard user privacy and prevent the theft of enterprise information both stored and in transit. Integrity. Ensure that electronic transactions and data resources are not tampered with at any point, either accidentally or maliciously.
  • 25. Web Services Security ______________________________________________________________________________________ 25 Accountability. Detect attacks in progress or trace any damage from successful attacks (security auditing and intrusion detection). Prevent system users from later denying completed transactions (non-repudiation). Availability. Ensure uninterrupted service to authorized users. Service interruptions can be either accidental or maliciously caused by denial-of-service attacks. Security should be an integral part of Web Service design and implementation to provide above four key protections. 3.3 Need for Security Many system architects and developers are used to thinking about security as a low-level topic, dealing only with networks, firewalls, operating systems, and cryptography. However, Web Services change the risk levels associated with deploying software because of the increased ability to access data, and as a result, security is becoming an important design issue for any e-business software component. The scope of Web Services security is so broad. There are many examples that drive security needs [8]: E-commerce sites on the Internet. These rely on credit card authorization services from an outside company. A relationship between an e-commerce company and a credit card service depends on authenticated communication. Cross-selling and customer relationship management. This relies on customer information being shared across many lines of business within an enterprise. Cross- selling allows an enterprise to offer a customer new products or service based on existing sales. Customer relationship management allows the enterprise to provide consistent customer support across many different services. Supply chain management. This requires continuing communication among all of the suppliers in a manufacturing chain to ensure that the supply of various parts is adequate to meet demand. The transactions describing the supply chain that are exchanged among
  • 26. Web Services Security ______________________________________________________________________________________ 26 the enterprises contain highly proprietary data that must be protected from outside snooping. In these examples, one enterprise can expose another organization to increased security risk. For example, a partner can without intention expose your business to a security attack by providing its customers access to your business resources. As a result, security risk is so high for an organization. 3.3 Risk Management A large middle ground exists of risk management between the options of avoiding e- business applications based on Web Services altogether, launching unprotected systems, or burdening every application with prohibitively costly and user-unfriendly security measures. The risk-management aims to control risk, if not eliminated [9]. Risk management is a precise balancing process of determining how much and what kind of security to incorporate in light of business needs and acceptable levels of risk. It unlocks the profit potential of expanded network connectivity by enabling valid use while blocking unauthorized access. The goal is to provide adequate protection to meet business needs without undue risk, making the right trade-offs between security and cost, performance, and functionality. Different Web Services users have different concerns like, ISP’s primarily concern is availability, hospital administrator requires data integrity, banker is cautious about accountability, and the military officer worries about confidentiality [8]. The challenge is to implement security in a way that meets business needs cost effectively in the short term and as enterprise needs expand. Meeting the challenge requires a collaborative effort between corporate strategists and information technology managers. Understanding the business drivers for information security helps clarify where to focus security measures. Understanding the underlying application architecture—how components work together—clarifies the most practical approach for
  • 27. Web Services Security ______________________________________________________________________________________ 27 building system security. Industrial experience in managing e-business information security is generally low. Security technology is changing rapidly, and corporate management is not well equipped to cope with risk management changes caused by technology changes. New versions of interconnected Web Services systems and software product versions continue to appear, and with each release, a whole new set of security vulnerabilities surfaces. Managing security risk in distributed Web Services applications is daunting, but following some basic rules for building security into component-based applications lays the groundwork for a solid risk management approach. 3.3 Security: A Serious Concern Information security is a serious concern for most businesses. Even though the reporting of computer-based crime is irregular because companies fear negative publicity and continued attacks, the trend is quite clear: Information security attacks continue to be a real threat to businesses. Threats to businesses result from both internal and external attacks. A large percent of businesses detected insider attacks by trusted corporate users. To meet corporate needs, a complete end-to-end security solution must address insider attacks. Web Services solutions blur the line between the inside world containing trusted users and the outside world containing potentially hostile attackers. A primary purpose of Web Services architectures is to open up the corporate network to the external world, thus allowing valuable corporate resources to be accessible to outsiders [8]. Outsiders such as business partners, suppliers, or remote employees, may have data access rights to corporate information very similar to those of many insiders. As a result, protection mechanisms must be in place not only at the external system boundaries, but also throughout the enterprise architecture. Because of the continuing threat, many businesses are increasing their spending on security; large corporations are increasing their spending the most. It has been seen organizations address security using a fragmented, inefficient approach, in which various corporate divisions each build their own ad hoc security solutions. Security system implemented gradually can be worse than no security at all because they believe
  • 28. Web Services Security ______________________________________________________________________________________ 28 mistakenly that the system is secure, and there is redundant spending across the organization, and solutions are not scalable and interoperable, and have high maintenance, training and administration costs [8]. Applying security products without thinking about how they all fit together clearly does not work. Businesses should build and leverage a common security infrastructure that is shared across the enterprise. A unified approach to Web Services security is the only way to address complex multitier Web Services applications. 3.3 Securing Web Services The pervasive reach and platform-agnostic nature of Web Services demands a security framework that enables enterprises to secure and control access to applications and data, without impeding the exchange of data that is essential for successful Web Services. 3.3 Requirements for Web Services Security There are some core security services that are fundamental to end-to-end application security across multitier applications, which are as follows [9]: Authentication. Verifies that principals (human users, registered system entities, and components) are who they claim to be. The result of authentication is a set of credentials, which describes the attributes (for example, identity, role, group, and clearance) that may be associated with the authenticated principal. Authorization. Grants permission for principals to access resources, providing the basis for access control, which enforces restrictions of access to prevent unauthorized use. Access controls ensure that only authorized principals may modify resources and that resource contents are disclosed only to authorized principals. Cryptography. Provides cryptographic algorithms and protocols for protecting data and messages from disclosure or modification. Encryption provides confidentiality by
  • 29. Web Services Security ______________________________________________________________________________________ 29 encoding data into an unintelligible form with a reversible algorithm, which allows the holder of the decryption key(s) to decode the encrypted data. A digital signature provides integrity by applying cryptography to ensure that data is authentic and has not been modified during storage or transmission. Accountability. Ensures that principals are accountable for their actions. Security auditing provides a record of security-relevant events and permits the monitoring of a principal’s actions in a system. Non-repudiation provides certain proof of data origin or receipt. Security administration. Defines the security policy maintenance life cycle embodied in user profiles, authentication, authorization, and accountability mechanisms as well as other data relevant to the security framework. All security services must be reliable and provided with enough assurance. That is, there must be confidence that security services have been implemented correctly, reliably, and without relying on the secrecy of proprietary mechanisms. Moreover, all of the critical security services must be provided on an end-to-end basis. Each Web Services transaction must be traceable from its origin through to its fulfillment, maintaining consistent security across processing tiers and domains. This cannot be achieved easily when one considers the range of systems, applications, and business processes involved in a typical Web Services transaction—and when these distributed systems may be managed in very different ways. Access to enterprise Web Services search and discovery mechanisms, such as UDDI, also needs to be managed. While much of the Web Service information listed in a Web Services directory is appropriate for all the applications or developers in the enterprise, it is also important to provide a robust security mechanism for user authentication and authorization [9]. This facility is used to limit the set of users who may either access or update Web Services directory entries, and can be centrally managed.
  • 30. Web Services Security ______________________________________________________________________________________ 30 Web Services security must be flexible enough to identify all participants in a transaction based on a variety of authentication mechanisms. Web Services security must also be able to establish a user security context at each processing tier. (A user security context is the combination of a user’s identity and security-relevant attributes.) Sophisticated authorization policies using the security context will be needed. The Web Services security facility must perform auditing so that an accurate record of the steps that occurred to fulfill a request and the identities of the responsible parties is maintained. Finally, in order to achieve end-to-end security, the Web Services security must pass the security context between domains or tiers, thereby establishing a consistent security context for the entire transaction. Without this consistent security context, there is no way to attribute actions to the right individual later. Passing the user security context also eliminates the need for a user to authenticate again each time his/her request crosses from one tier to another [9]. Thus, an additional benefit of the seamless integration of security with Web Services is to provide single sign-on (SSO), even across organizations using different security technologies. Web Services require the ability to use different authentication mechanisms, establish a security context, implement sophisticated authorization policies, and attribute actions to the proper individuals. Consistent security must be maintained across processing layer and domains in the Web Services world [9]. Flexible ways to create, pass, and establish security contexts are needed for end-to-end security in a Web Services environment.
  • 31. Web Services Security ______________________________________________________________________________________ 31 Chapter 4 Enterprise Application Security Integration To solve the difficult issue of securely connecting Web servers to back-office data stores, there is a concept of end-to-end Enterprise Application Security Integration (EASI). EASI is a special case of EAI [8]. EAI is a technique for unifying many different applications by using a common middleware infrastructure. EAI provides an application bus that allows every application to communicate with others via a common generic interface. Without EAI, an application would need a separate interface for every other application, thus causing too many connections between applications. EAI allows application development to scale to a large number of interchangeable components. Integration of end-to-end security requires EAI techniques. Many different security technologies are used in the front, middle, and back-office layers. Typically, these security technologies do not interoperate easily. As a result, a separate ad hoc interface to connect one security technology to another causes again too many connections between security technologies [9]. EASI provides a common security framework to integrate many different security solutions. We use Web Services security to bridge the security gap between front and back-office security. EASI enables new security technologies in each tier to be added without affecting the business applications. 4.1 EASI Requirements A key issue in enterprise security architectures is the ability to support end-to-end security across many application components. End-to-end security is the ability to ensure that data access is properly protected over the entire path of requests and replies as they travel through the system. The scope of end-to-end security begins with the person
  • 32. Web Services Security ______________________________________________________________________________________ 32 accessing a Web browser or other client program, continues through the business components of the middle tier, and ends at the data store on the back-office legacy system. The path may travel through both public and private networks with varying degrees of protection. In the enterprise architecture shown in Figure 4.1, a user accesses an application in the presentation layer (for example, a Web browser client sends requests to a Web server), which communicates to mid-tier business components (such as Web Service enabled application servers) [10]. Frequently, the client request is transmitted through a complex multitier business components running on a variety of platforms. The request finally makes it to one or more back-office systems, which access persistent data stores on behalf of the user, process the request, and return the appropriate results. To provide end-to-end security, each link in the chain of requests and replies must be properly protected: from the initiating client, through mid-tier business components, to the back-office systems, and then back again to the client. There are three security tiers that make up any end-to-end enterprise security solution [10]: Perimeter security technologies. Used between the client and the Web server. Perimeter security enforces protection for customer, partner, and employee access to corporate resources. Perimeter security primarily protects against external attackers, such as hackers. Mid-tier security technologies. Used between the mid-tier business components. Mid- tier security focuses primarily on protecting against insider attacks, but also provides another layer of protection against external attackers. Back-office security technologies. Address the protection of databases and operating- system-specific back-end systems, such as mainframe, Unix, and Windows server platforms.
  • 33. Web Services Security ______________________________________________________________________________________ 33 4.2 EASI Solution EASI solutions integrate security technologies across the front, middle, and back-office security tiers [10]. An EASI solution first and foremost consists of a security framework, which describes a collection of security service interfaces that may be implemented by an evolving set of security products. In addition to the framework, an EASI solution also contains the software and hardware technologies for securing e-business components. Finally, an EASI solution contains integration techniques, such as bridges, wrappers, and interceptors, that developers can use to plug security technologies into a middleware environment [10]. To hook together different security technologies, EASI must solve a key problem: defining a secure association between clients and targets that establishes a common security context. The security context, which contains a user’s identity and other security attributes, must be transferred across the system to a target application. A user’s identity and security attributes form the basis for authorization decisions and audit events, and must be protected as they are transmitted between front, middle, and back-office tiers, as shown in Figure 4.1. Because each technology in these tiers represents and protects a user’s security information differently, integration of the security context can be a rather difficult problem. To get a mix approach of different security technologies to interact with one another, the organization for the Advancement of Structured Information Standards (OASIS) is defining standards called WS-Security [11] and SAML [12] to address this issue. WS- Security defines a standard way to attach security information to SOAP messages, while SAML defines a format for exchanging authentication, authorization, and attribute assertions. The combination of these two specifications provides a description of the security context that can be passed across the tiers of architecture. WS-Security and SAML together are a standards-based approach for expressing the security context that is not tied to any particular vendor’s application environment or security product. Designed
  • 34. Web Services Security ______________________________________________________________________________________ 34 specifically for distributed security environments, WS-Security and SAML are important building blocks for any Web Services security framework. Figure 4.1. Key e-business challenge: end-to-end EASI [10]. 4.3 EASI Framework The EASI framework specifies the interactions among the security services and the Web Services components that use those security services. By using common interfaces, it’s possible to add new security technology solutions without making big changes to the existing framework. In this way, the EASI framework supports plug-ins for new security technologies. Key aspects of the framework are shown in Figure 4.2. Applications The security framework provides enterprise security services for presentation components, business logic components, and back-office data stores. The framework supports security mechanisms that enforce security on behalf of security-aware and security-unaware applications [10]. Security-aware application. An application that uses security Application Programming Interfaces (APIs) to access and validate the security policies that apply to it. Security- aware applications may directly access security functions that enable the applications to
  • 35. Web Services Security ______________________________________________________________________________________ 35 perform additional security checks and fully exploit the capabilities of the security infrastructure. Figure 4.2. EASI framework [10]. Security-unaware application. An application that does not explicitly call security services, but is still secured by the supporting environment. Security is typically enforced for security-unaware applications by using interceptors, which transparently call the underlying security APIs on behalf of the application. This approach reduces the burden on application developers to implement security logic within applications and lessens the chance of security flaws being introduced. Other applications, called security self-reliant applications, do not use any of the security services provided by the framework. A security self-reliant application may not use the security services for two reasons: because it has no security-relevant functionality and thus does not need to be secured or because it uses separate independent security functions that are not part of the defined EASI security framework.
  • 36. Web Services Security ______________________________________________________________________________________ 36 APIs The framework security APIs are called explicitly by security-aware applications and implicitly by security-unaware applications via interceptors. Security APIs provide interfaces for access to the framework security services. The framework supports standard, custom, and vendor security APIs [10]. Standard security APIs. We encourage support for APIs based on open standards or industry standards. These standards should be used whenever possible because they are likely to provide the most stability and the most portability across many different vendors’ products. Custom security APIs. Custom APIs may be implemented when an enterprise’s needs cannot be met by existing standard APIs. Custom APIs are required especially when an enterprise uses a security service that is tailored to its business, for example, a custom- rule-based entitlements engine developed internally by an investment bank. Vendor security APIs. As a last resort, vendor-specific proprietary APIs may be used where open standards have not yet been defined. We recommend avoiding the use of proprietary security APIs in applications if at all possible. Proprietary APIs make it very difficult for the developer or administrator to switch security products. Although vendors may think this is a great idea, we believe that security technology is changing much too rapidly for an enterprise to be confined to any one product. As an alternative, we recommend wrapping a vendor’s proprietary API with a standard or custom API. Core Security Services The next layer of the security framework provides core security services enabling end-to- end application security across multitier applications. Each of the security services defines a wrapper that sits between the security APIs and the security products. The security services wrappers serve to isolate applications from the underlying security products. This allows one to switch security products, if the need arises, by simply
  • 37. Web Services Security ______________________________________________________________________________________ 37 creating a new wrapper, without affecting application code. The key security services are authentication, authorization, cryptography, accountability, and security administration. Framework Security Facilities The framework provides general security facilities that support the core security services. The framework security facilities include the profile manager, security association, and proxy services [10]. Profile manager. Provides a general facility for persistent storage of user and application profile and security policy data that can be accessed by other framework services. Security association. Handles the principal’s security credentials and controls how they propagate. During a communication between any two client and target application components, the security association establishes the trust in each party’s credentials and creates the security context that will be used when protecting requests and responses in transit between the client and the target. The security association controls the use of delegation, which allows an intermediate server to use the credentials of an initiating principal so that the server may act on behalf of the principal. Security proxy services. Provide interoperability between different security technology domains by acting as a server in the client’s technology domain and a client in the target’s domain. Security Products Implementation of the framework generally requires several security technology products that collectively constitute the enterprise security services. Examples of such required security products include firewalls, Web authentication/authorization products, Web Service and component authentication/authorization products, cryptographic products, and directory services.
  • 38. Web Services Security ______________________________________________________________________________________ 38 4.4 EASI Benefits The benefits of using a framework to address enterprise application security integration are clear. The approach focuses on standards, which are the best way to maintain Web Service application portability and interoperability in the long run. Products and technologies will come and go, but generally accepted security standards for fundamental security services will be much more stable. A standards-based set of security APIs allows you to evolve security products over time without needing to rewrite your applications. Designing user applications for evolving security products is important because user business requirements and new security technologies will continue to be a moving target. One might choose a great product that satisfies the needs for the present, but one can probably want to change the product in the future. Having a security framework also means that everything does not need to be implemented at once. The framework allows user to start small by selecting the security services user needs and building more sophisticated security functionality when and if it’s required. The framework provides a roadmap for security architecture, helping to guide on how to choose products and technologies that match the needs over time [10]. Finally, the framework puts the security focus where it should be—on building a common infrastructure that can be shared across the enterprise. Custom-built security that is hand-coded within applications is expensive to implement and maintain and is likely to have more security vulnerabilities [10]. A single security infrastructure with APIs that can be used by all of the applications avoids multiple, duplicate definitions of users, security attributes, and other policies. User can focus his limited time and money on building a few critical interoperable security technologies rather than coping with a mass of unrelated security products that will never work together.
  • 39. Web Services Security ______________________________________________________________________________________ 39 Conclusion This study tried to assess different approaches toward building secure web services architecture, and tried to highlight some security concerns. In general, it is recommended that web services be designed according to the principles of enterprise application security architecture. However, it is sometimes desirable to build services capable of referencing each other, which may lead to a finer-grained, secure services design. When building a new service, it is worth considering carefully the pros and cons of all design styles, and gathers the requirements of target environment and goal of the system, which can result in a better integration solution for a targeted domain.
  • 40. Web Services Security ______________________________________________________________________________________ 40 REFERENCES [1] Micheal C. Daconta, Leo J. Orbst, Kevin T. Smith. Chapter 4: Understanding Web Services. The Semantic Web: A Guide to the Future of XML, Web Services, and Knowledge Management. Wiley Publication, Inc. 2003 [2] Extensible Markup Language (XML) – “http://www.w3.org/TR/xml/” Retrieved on January 18, 2007 [3] Fielding, Gettys, Mogul, et al. Hypertext Transfer Protocol – HTTP/1.1 RFC 2616, Internet Society, 1999. "http://www.w3.org/Protocols/rfc2616/rfc2616.html" Retrieved on February 5, 2006 [4] Simple Object Access Protocol (SOAP) – “http://www.w3.org/TR/SOAP” Retrieved on February 12, 2006 [5] Francisco Curbera, Matthew Duftler, Rania Khalaf, William Nagy, Nirmal Mukhi, and Sanjiva Weerawarana. Unraveling the Web Services Web An Introduction to SOAP, WSDL, and UDDI, pages 86-93, IEEE Internet Computing [6] Doug Tidwell, James Snell, Pavel Kulchenko. Chapter 2: Introducing SOAP. Programming Web Services with SOAP. O'Reilly December 2001 [7] Bret Hartman, Donald J. Flin, Konstantin Beznosov, Shirley Kawamoto. Introduction. Mastering Web Services Security. Wiley Publishing Inc. 2003 [8] Bret Hartman, Donald J. Flin, Konstantin Beznosov, Shirley Kawamoto. Security as Enabler for Web Services Application: Chapter 1: Overview of Web Service Security. Mastering Web Services Security. Wiley Publishing Inc. 2003
  • 41. Web Services Security ______________________________________________________________________________________ 41 [9] Bret Hartman, Donald J. Flin, Konstantin Beznosov, Shirley Kawamoto. Securing Web Services: Chapter 1: Overview of Web Service Security. Mastering Web Services Security. Wiley Publishing Inc. 2003 [10] Bret Hartman, Donald J. Flin, Konstantin Beznosov, Shirley Kawamoto. Unifying Web Services Security: Chapter 1: Overview of Web Service Security. Mastering Web Services Security. Wiley Publishing Inc. 2003 [11] Web Service Security (WS_Security) – “http://www.oasis- open.org/committees/tc_home.php?wg_abbrev=wss” Retrieved on March 8, 2007 [12] Security Assertion Markup Language (SAML) – “http://www.oasis- open.org/committees/tc_home.php?wg_abbrev=security” Retrieved on March 8, 2007