Web Services Security Training
Web services security training teaches developers both web service security implementation and security best practices. As part of this, developers learn how to assess the security threats to their services and counter these threats with appropriate security technologies. The class covers the full range of technologies you can use for securing web services, starting with security basics and TLS/SSL secure transports before moving on to the whole gamut of WS-* security standards. Optional modules cover specific technologies in greater depth.
Depending on the optional modules chosen for the training, the course takes 2-4 days. In-class assignments are normally supplied with both Apache Ant (or Maven) build files and Eclipse project files, and Eclipse is used for coding demonstrations. Apache Tomcat is normally used for service deployment. SOAP security assignments are done on the powerful and versatile Apache CXF web services stack, using both JAX-WS standard techniques and CXF-specific extensions.
Optimum class size is 6-12 developers, though somewhat larger numbers can be accommodated with pair programming.
Course Objectives
- Understand the principles of modern encryption technologies
- Learn how to create and work with keys and certificates
- Understand how TLS/SSL secure transports work, and how to configure and use them
- Learn how WS-Security works, and how to configure it with WS-SecurityPolicy
- Learn how to use WS-Trust with SAML identity management, and WS-SecureConversation
- Apply all forms of security through in-class assignments using JAX-WS and Apache CXF
- Understand the range of security threats and the best practices for countering them
Attainment of course objectives is measured by performance on in-class assignments and snap quizes for each module. Certificates of completion are available for attendees who demonstrate their grasp of the material and ability to apply it to practical problems.
Course Prerequisites
- Intermediate Java programming experience
- Basic knowledge of web services (can be covered in class if appropriate)
Course Outline
Part I - Basic principles
- What constitutes a security threat?
- Symmetric and asymmetric encryption
- Signing and certificates
- Message digests
- Signing digests
- Certificates and chains of trust
- Working with keystores/truststores
Assignments:
- Symmetric encryption using a secret key
- Generating asymmetric encryption key pairs and self-signed certificates
- Asymmetric encryption using private key and certificate
Part II - Secure transports
- How TLS/SSL transport security works
- Configuring and using basic TLS
- TLS with client certificates
- TLS strengths and weaknesses
Assignments:
- Enabling TLS for web browser client
- Using TLS for web services client
- Implementing dual-certificate TLS
Part III - XML encryption and signing (optional)
- XML encryption standard
- XML signature standard
- The role of canonicalization
- References and signatures
- Using XML encryption and signature directly
Assignments:
- Encrypting XML content
- Signing and verifying XML content
Part IV - Introduction to WS-Security
- How WS-Security builds on XML encryption and signature
- Key and certificate handling in WS-Security
- Encryption algorithms
- WS-Security token profiles
- Using WS-Security directly
Assignments:
- Encrypting web service messages
- Signing web service messages
Part V - Introduction to WS-Policy and WS-SecurityPolicy
- Basic WS-Policy structure
- WS-Security policy introduction:
- UsernameToken for identity information
- AsymmetricBinding for asymmetric encryption
- Specifying components to be encrypted and/or signed
- Understanding asymmetric encryption key exchanges
- Attaching policies in WSDL:
- Embedding policies in WSDL
- Policy references and scopes
- Sharing policies across an enterprise
Assignments:
- Adding UsernameToken to service
- Adding signing and encryption to service
- Applying different policies to different operations
Part VI - WS-Trust and identity management (optional)
- Issues of authentication and authorization
- Using SAML identity management:
- SAML token structure
- Principles of WS-Trust
- WS-Trust client configuration
- Using SAML tokens with WS-Security
- Using Kerberos identity management
Assignments:
- Obtaining a SAML token directly
- Securing a web service with SAML tokens
Part VII - Dealing with performance (optional)
- Performance costs of security:
- Overhead added by TLS
- Overhead added by WS-Security asymmetric encryption
- Options for reducing overhead:
- Symmetric encryption
- WS-SecureConversation
Assignments:
- Use symmetric encryption for service
- Implement WS-SecureConversation for service
Part VIII - Security best practices
- Understanding the threats:
- Review of threat types
- Application to web services
- Security approaches to counter threats
- Planning a security architecture
- Designing security for your services:
- Granular application of WS-Security
- Separate endpoints for different security scenarios
- Security with ESB architectures
Assignments:
- Analyze and discuss a supplied scenario
