HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

Overcoming the Web Services Insecurity Complex
New standards and solutions address the security concerns of companies deploying Web services

Once merely so much hype, Web services are finally taking root in corporate IT. However, as organizations grow their Web services from pilots to internal integration projects to extra-enterprise deployments, they face a tangle of new security challenges.

Before they can realize the full benefits of their flexible, interoperable applications, businesses must implement trustworthy means of ensuring the integrity, confidentiality, and security of their loosely coupled systems. The good news? New solutions and standards are emerging to address these security challenges.

The benefits of Web services become more evident with each new implementation. Businesses are starting to see very positive results from this loosely coupled, platform-agnostic, service-oriented approach to integrating applications within organizations, across enterprises, and over the Internet. Yet, as Web services move from early adoption to mainstream acceptance, concerns for security rise proportionately – particularly when those applications extend beyond the safety of a secured enterprise network.

Web services security is, of course, a valid concern. The popular thinking is, if you build your information assets so anyone can access them, what's to keep everyone from getting at your critical data – or, for that matter, attacking your enterprise? And while there is already a proliferation of tools that help developers build and deploy Web services interfaces to enterprise systems, Web services security has been lagging conspicuously behind.

Most Web services projects still take place inside the firewall, where there are fewer security issues. Simple Web services deployments within an enterprise network require little more than traditional, network-based security mechanisms – such as Secure Socket Layer (SSL). However, while Web services must leverage the corporate infrastructure to be cost-effective, it is increasingly apparent that existing security solutions will not suffice as Web services environments evolve into production systems that interface with multiple consumers and providers.

Fundamental Security Requirements
Let's start by looking at what hasn't changed. Securing Web services comes down to the same fundamental security measures required by other application architectures.

  • Confidentiality: Guaranteeing that messages are protected against eavesdroppers
  • Integrity: Ensuring that messages have not been tampered with
  • Authentication: Restricting access to clients that can provide proof of identity
  • Authorization: Enabling specific clients to make appropriate requests to operations
  • Non-repudiation: Ensuring that clients cannot refute that they sent requests and that services cannot refute that they sent responses

    Fact is, much of the security infrastructure needed by Web services already exists. However, while it's important that enterprises leverage their current capabilities to address new security requirements, serviceoriented architectures pose a new set of challenges that are not fully addressed by traditional security measures.

    Inherently Open and Vulnerable
    Web services simplify the loosely coupled integration of distributed, federated systems – systems that have been implemented with open APIs. What's more, Web services send machine- and human-readable messages that fly across the Internet. Print out an XML message and your niece could read its content. The point is, Web services–based systems are much more vulnerable to eavesdropping.

    Security Distributed within the Perimeter
    HTTP requests with any type of payload can easily tunnel through corporate firewalls to interact with sensitive data within the enterprise. That's why it's not enough to monitor network packets. It is also insufficient to assume that once a Web service request gets past the perimeter of the enterprise it has a legitimate right to access any corporate system within the firewall. Think of your enterprise as an office building. Some people aren't allowed in the front door. Others are permitted to enter the main lobby but cannot access specific floors. Some can access a floor of the building but not the offices on that floor. You get the picture. It's much the same with Web services. Due to their inherent openness, they require security at the perimeter of your enterprise as well as anywhere it is needed within your network to ensure that only authorized requests are met. They demand renewed focus on the way application-level security concerns are addressed, combining traditional forms of security with new approaches to authentication and authorization, securing exposed interactions, and ensuring transport integrity.

    End-to-End, Not Point-to-Point
    Existing solutions provide point-to-point security. For example, SSL/TLS offers such features as authentication, data integrity, and confidentiality for secure point-to-point sessions.

    Problem is, Web services aren't designed for point-to-point sessions. With service-oriented architectures, the SOAP message model operates on logical endpoints that abstract the physical network and application infrastructure and, therefore, frequently incorporates multiple hops with intermediaries. As SOAP messages are sent from an initial requester to a service, intermediaries might intercept them to perform such functions as routing, requesting additional data, modifying the message, encrypting or decrypting portions of the message, or adding security tokens.

    The challenge, then, with such distributed environments, is ensuring that intermediaries do not invalidate message integrity, violate the trust model, or destroy accountability. Most serviceoriented architectures require end-to-end security across multiple intermediaries – both inside and outside corporate boundaries. So, while SSL might suffice for point-to-point security, it does not offer adequate protection for the privacy and confidentiality of sensitive data that is passed between multiple Web services.

    Integrated, Abstracted, and Based on Standards
    Securing Web services calls for unifying concepts. It requires solutions to both technical issues, such as secure messaging; and business process concerns, like policy, risk, and trust. And it demands a coordinated effort from platform vendors, application developers, network and infrastructure providers, and customers themselves.

    Appropriate standards organizations are hashing out the emerging security model and security-focused specifications such as WSSecurity, XML Signatures, and XML Encryption (see Table 1), which will be broadly available from multiple vendors. Together, the model, specifications, and standards process will enable businesses to quickly and costeffectively increase the security of their existing applications and confidently develop interoperable and secure Web services.

    Web services are designed to simplify the integration of disparate applications, transports, and platforms, each of which might have their own security implementations. However, such islands of security are limited to their respective arenas. Furthermore, as new Web services are deployed to meet new business requirements, the burden of building the security for each new SOAP interface from scratch would quickly become prohibitive. Instead, organizations should consider adopting an overarching security abstraction layer that enables them to set security policies, create security services, and provide multiple levels of authentication, authorization, and encryption. By abstracting security, an organization need not concern itself with what type of security technologies its partners are using. It would need to know only that its partners have adequate levels of security, such as encrypting sensitive transaction data. Furthermore, security abstraction creates platform independence, enabling a business with a heterogeneous computing environment to define access control policies centrally for implementation on each platform, rather than managing policy for each platform independently.

    Take an Evolutionary Approach
    Most organizations already have a security infrastructure in place. Rather than starting anew, it's prudent to leverage that infrastructure as much as possible and add new security capabilities to address the specific needs that Web services bring. This evolutionary approach fosters the creation of secure, interoperable Web services based on a set of security abstractions that enable the integration of formerly dissimilar technologies. For example, you might add message-level integrity or persistent confidentiality (by encrypting message elements using XML Encryption) to an existing Web service whose messages are carried through SSL/TLS. Thus, messages have integrity (and confidentiality) that persists beyond the transport layer. This enables specialization within an overall security framework to suit specific customer requirements while at the same time permitting incrementally deployed, evolutionary technologies.

    An integrated security infrastructure must therefore offer distinct security services for Web services to consume. Every customer and every Web service has its own unique security requirements based on their business needs and operating environment. Within workgroup settings, for instance, simplicity and ease of operation are top concerns, while for publicly accessible Web services the ability to withstand concerted denial-of-service attacks is a higher priority.

    Different services require different levels of security, from passwords to digital certificates. For example, an organization might build password- based authentication services for its internally accessed inventory service but might use digital certificates–based authentication for the order-entry Web service its partners use.

    These requirements may be combined in many ways and expressed at different levels of specificity. A successful approach to Web services security requires a set of flexible, interoperable security capabilities that, through policy and configuration, enables a variety of secure solutions. In this way, organizations can achieve security strategies that are appropriate for them.

    Content is Key
    XML messages come with rich payloads of information and provide a standard, structured format for accessing content. For that reason, Web services bring an unprecedented ability to harvest real-time data and apply that information to such things as security.

    Additionally, Web services systems can leverage contextual information – who's accessing the data, what are their access rights, and what type of client device is the person using, to name a few examples. By using profile data in conjunction with business content, a business system can grant user-specific, content-specific, read and/or write access to a Web service. By interacting with the existing authentication system, it can dynamically tailor responses based on each user's most current security profile and the content of the request.

    Here's an example. A company that employs an order-processing Web service might design its system so that its business partners can enter orders up to $100,000, but that orders exceeding $100,000 must be entered by internal staff. Accomplishing this requires making use of in-flight message content (order value) and context (client identity).

    Multi-Vendor Cooperation
    To be clear, Web services security is a tough knot. Designed for distributed, federated, heterogeneous systems, the new application architecture raises security issues that no single vendor can solve. Businesses should expect to work with application, operating system, management, and security companies to implement an effective and comprehensive security solution. If that sounds like a real headache, you'll be glad to know that thanks to an unprecedented level of cooperation among software companies, such multi-vendor solutions will interoperate seamlessly. Web services has been a tremendous catalyst to collaboration. It has brought the industry together to address age-old security issues as well as several new concerns, in the quest for an interoperable, standards-based framework on which companies can run business-critical applications. As a result, new security standards (see Table 1) and solutions will soon help corporate IT teams clear the last remaining hurdle to easily deploying trustworthy, production-ready Web services.

    About the Author
    Gene Thurston serves on the Web services security council for OASIS. He has more than 22 years of software industry experience, the last 10 of which have been dedicated to computer security. Gene is the security architect for AmberPoint, a leading Web services management solutions company. Core to the AmberPoint product suite is a strong policy-based authorization system that enables organizations to use identity, XML content, system state information and many other factors to produce permit/deny authorization systems. gthurston@amberpoint.com

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.

      E-mail: info@sys-con.com

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.