Foreword |
|
xxv | |
|
Foreword |
|
xxix | |
|
Preface |
|
xxxi | |
Acknowledgments |
|
xli | |
About the Authors |
|
xlv | |
|
|
1 | (92) |
|
Chapter 1 Security by Default |
|
|
2 | (46) |
|
Business Challenges Around Security |
|
|
5 | (2) |
|
What Are the Weakest Links? |
|
|
7 | (1) |
|
|
7 | (1) |
|
The Host Operating System (OS) |
|
|
8 | (1) |
|
The Application or Service |
|
|
8 | (1) |
|
The Impact of Application Security |
|
|
8 | (9) |
|
Critical Application Security Flaws and Exploits |
|
|
10 | (7) |
|
|
17 | (2) |
|
Which Applications Are We Protecting? |
|
|
17 | (1) |
|
Who Are We Protecting the Applications From? |
|
|
18 | (1) |
|
Where Should We Protect Them? |
|
|
18 | (1) |
|
Why Are We Protecting Them? |
|
|
18 | (1) |
|
Strategies for Building Robust Security |
|
|
19 | (2) |
|
Unified Process for Security Design |
|
|
19 | (1) |
|
|
19 | (1) |
|
|
20 | (1) |
|
|
20 | (1) |
|
|
20 | (1) |
|
|
20 | (1) |
|
|
20 | (1) |
|
Recovery and Continuity Strategies |
|
|
21 | (1) |
|
Proactive and Reactive Security |
|
|
21 | (1) |
|
The Importance of Security Compliance |
|
|
21 | (6) |
|
|
22 | (1) |
|
|
23 | (1) |
|
|
24 | (1) |
|
The Children's Online Privacy Protection Act |
|
|
25 | (1) |
|
EU Directive on Data Protection |
|
|
25 | (1) |
|
California's Notice of Security Breach (1798.29) |
|
|
26 | (1) |
|
Security Compliance in Other Countries |
|
|
26 | (1) |
|
The Importance of Identity Management |
|
|
27 | (2) |
|
Identity Provisioning Services |
|
|
27 | (1) |
|
Identity Data Synchronization Services |
|
|
27 | (1) |
|
Access Management Services |
|
|
28 | (1) |
|
|
28 | (1) |
|
|
28 | (1) |
|
Auditing and Reporting Services |
|
|
28 | (1) |
|
Secure Personal Identification |
|
|
29 | (7) |
|
Personal Identification and Authentication |
|
|
29 | (1) |
|
|
30 | (2) |
|
|
32 | (3) |
|
|
35 | (1) |
|
The Importance of Java Technology |
|
|
36 | (1) |
|
Security in the Java Platform |
|
|
37 | (1) |
|
Making Security a "Business Enabler" |
|
|
37 | (5) |
|
Case 1 Justifying Identity and Access Management |
|
|
38 | (1) |
|
Case 2 Justifying Proactive Security Approaches |
|
|
39 | (3) |
|
Case 3 Justifying Security Compliance |
|
|
42 | (1) |
|
|
42 | (1) |
|
|
43 | (5) |
|
Chapter 2 Basics of Security |
|
|
48 | (45) |
|
Security Requirements and Goals |
|
|
50 | (3) |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
53 | (1) |
|
The Role of Cryptography in Security |
|
|
53 | (16) |
|
|
54 | (15) |
|
The Role of Secure Sockets Layer (SSL) |
|
|
69 | (4) |
|
The Importance and Role of LDAP in Security |
|
|
73 | (4) |
|
|
76 | (1) |
|
Common Challenges in Cryptography |
|
|
77 | (4) |
|
|
77 | (1) |
|
|
77 | (1) |
|
Certificate Revocation Issues |
|
|
78 | (1) |
|
|
79 | (2) |
|
|
81 | (2) |
|
|
83 | (6) |
|
|
84 | (2) |
|
|
86 | (3) |
|
|
89 | (1) |
|
|
89 | (4) |
|
PART II Java Security Architecture and Technologies |
|
|
93 | (188) |
|
Chapter 3 The Java 2 Platform Security |
|
|
94 | (54) |
|
Java Security Architecture |
|
|
96 | (13) |
|
The Java Virtual Machine (JVM) |
|
|
96 | (1) |
|
|
97 | (2) |
|
Java Built-in Security Model |
|
|
99 | (10) |
|
|
109 | (7) |
|
|
112 | (4) |
|
|
116 | (2) |
|
Java Security Management Tools |
|
|
118 | (8) |
|
|
118 | (1) |
|
|
118 | (7) |
|
|
125 | (1) |
|
|
125 | (1) |
|
J2ME Security Architecture |
|
|
126 | (10) |
|
|
127 | (3) |
|
|
130 | (2) |
|
|
132 | (4) |
|
Java Card Security Architecture |
|
|
136 | (7) |
|
Understanding Smart Cards |
|
|
136 | (2) |
|
Java Card Technology in Smart Cards |
|
|
138 | (1) |
|
Java Card Platform Security Model |
|
|
139 | (1) |
|
|
140 | (3) |
|
|
143 | (2) |
|
Reverse Engineering: Disassembling and Decompiling |
|
|
143 | (1) |
|
|
144 | (1) |
|
|
145 | (1) |
|
|
146 | (2) |
|
Chapter 4 Java Extensible Security Architecture and APIs |
|
|
148 | (76) |
|
Java Extensible Security Architecture |
|
|
150 | (1) |
|
Java Cryptography Architecture (JCA) |
|
|
151 | (8) |
|
JCA Cryptographic Services |
|
|
152 | (3) |
|
Understanding JCA API Programming Model |
|
|
155 | (4) |
|
Java Cryptographic Extensions (JCE) |
|
|
159 | (20) |
|
JCE Cryptographic Service Provider |
|
|
160 | (3) |
|
Understanding the JCE API Programming Model |
|
|
163 | (12) |
|
JCE Hardware Acceleration and Smart Card Support |
|
|
175 | (1) |
|
Using Smart Cards as Java Key Stores |
|
|
176 | (2) |
|
Strong versus Unlimited Strength Cryptography |
|
|
178 | (1) |
|
Java Certification Path API (CertPath) |
|
|
179 | (3) |
|
Java CertPath-Classes and Interfaces |
|
|
179 | (1) |
|
Java CertPath API Programming Model |
|
|
180 | (2) |
|
Java Secure Socket Extension (JSSE) |
|
|
182 | (15) |
|
|
183 | (1) |
|
JSSE Classes and Interfaces |
|
|
184 | (2) |
|
Understanding the JSSE API Programming Model |
|
|
186 | (11) |
|
Java Authentication and Authorization Service (JAAS) |
|
|
197 | (18) |
|
JAAS Classes and Interfaces |
|
|
198 | (2) |
|
Understanding the JAAS API Programming Model |
|
|
200 | (15) |
|
Java Generic Secure Services API (JGSS) |
|
|
215 | (1) |
|
Comparing JGSS with JSSE and JAAS |
|
|
215 | (1) |
|
Simple Authentication and Security Layer (SASL) |
|
|
216 | (4) |
|
|
216 | (4) |
|
|
220 | (1) |
|
|
221 | (3) |
|
Chapter 5 J2EE Security Architecture |
|
|
224 | (57) |
|
J2EE Architecture and Its Logical Tiers |
|
|
226 | (2) |
|
J2EE Security Definitions |
|
|
228 | (1) |
|
J2EE Security Infrastructure |
|
|
229 | (1) |
|
J2EE Container-Based Security |
|
|
230 | (8) |
|
|
231 | (1) |
|
|
232 | (1) |
|
|
232 | (2) |
|
|
234 | (1) |
|
|
235 | (1) |
|
Java Authorization Contract for Client Containers (JACC) |
|
|
236 | (1) |
|
|
237 | (1) |
|
J2EE Component/Tier-Level Security |
|
|
238 | (17) |
|
Users, Groups, Roles, and Realms |
|
|
238 | (1) |
|
Web- or Presentation-Tier Security |
|
|
239 | (16) |
|
|
255 | (4) |
|
|
255 | (3) |
|
|
258 | (1) |
|
EJB Tier or Business Component Security |
|
|
259 | (7) |
|
EJB Declarative Authorization |
|
|
259 | (2) |
|
EJB Programmatic Authorization |
|
|
261 | (1) |
|
Anonymous or Unprotected EJB Resources |
|
|
262 | (1) |
|
Principal Delegation in EJBs |
|
|
263 | (3) |
|
EIS Integration Tier-Overview |
|
|
266 | (7) |
|
Securing J2EE Connector and EIS |
|
|
267 | (4) |
|
|
271 | (1) |
|
|
272 | (1) |
|
J2EE Architecture-Network Topology |
|
|
273 | (4) |
|
Designing for Security with Horizontal Scalability |
|
|
274 | (2) |
|
Designing for Security with Vertical Scalability |
|
|
276 | (1) |
|
J2EE Web Services Security-Overview |
|
|
277 | (2) |
|
|
279 | (1) |
|
|
280 | (1) |
|
PART III Web Services Security and Identity Management |
|
|
281 | (156) |
|
Chapter 6 Web Services Security-Standards and Technologies |
|
|
282 | (74) |
|
Web Services Architecture and Its Building Blocks |
|
|
284 | (6) |
|
Web Services Operational Model |
|
|
285 | (1) |
|
Core Web Services Standards |
|
|
286 | (3) |
|
Web Services Communication Styles |
|
|
289 | (1) |
|
Web Services Security-Core Issues |
|
|
290 | (3) |
|
Web Services-Threats, Vulnerabilities, and Risks |
|
|
290 | (3) |
|
Web Services Security Requirements |
|
|
293 | (4) |
|
|
294 | (1) |
|
Authorization and Entitlement |
|
|
294 | (1) |
|
Auditability and Traceability |
|
|
294 | (1) |
|
|
295 | (1) |
|
|
295 | (1) |
|
|
295 | (1) |
|
Availability and Service Continuity |
|
|
295 | (1) |
|
Single Sign-on and Delegation |
|
|
296 | (1) |
|
Identity and Policy Management |
|
|
296 | (1) |
|
Security Interoperability |
|
|
296 | (1) |
|
Web Services Security Standards |
|
|
297 | (1) |
|
|
297 | (14) |
|
Motivation of XML Signature |
|
|
298 | (1) |
|
The Anatomy of XML Signature |
|
|
298 | (5) |
|
|
303 | (2) |
|
|
305 | (5) |
|
Creating an XML Signature |
|
|
310 | (1) |
|
Verifying and Validating an XML Signature |
|
|
311 | (1) |
|
|
311 | (14) |
|
Motivation of XML Encryption |
|
|
312 | (1) |
|
The Anatomy of XML Encryption |
|
|
312 | (4) |
|
XML Encryption Algorithms |
|
|
316 | (4) |
|
XML Encryption: Example Scenarios |
|
|
320 | (5) |
|
XML Key Management System (XKMS) |
|
|
325 | (11) |
|
|
325 | (1) |
|
XKMS Specification Overview |
|
|
326 | (1) |
|
XML Key Information Services (X-KISS) |
|
|
326 | (4) |
|
XML Key Registration Service (X-KRSS) |
|
|
330 | (4) |
|
|
334 | (2) |
|
OASIS Web Services Security (WS-Security) |
|
|
336 | (12) |
|
Motivation of WS-Security |
|
|
337 | (1) |
|
|
337 | (1) |
|
Using Digital Signatures in WS-Security |
|
|
338 | (1) |
|
Using Encryption in WS-Security |
|
|
338 | (1) |
|
Using Security Tokens in WS-Security |
|
|
339 | (1) |
|
WS-Security: The Anatomy of SOAP Message Security |
|
|
339 | (9) |
|
WS-I Basic Security Profile |
|
|
348 | (1) |
|
Java-Based Web Services Security Providers |
|
|
349 | (3) |
|
|
349 | (2) |
|
Sun Java System Access Manager |
|
|
351 | (1) |
|
VeriSign TSIK and XKMS Services |
|
|
351 | (1) |
|
|
351 | (1) |
|
XML-Aware Security Appliances |
|
|
352 | (1) |
|
|
352 | (1) |
|
|
353 | (1) |
|
|
354 | (2) |
|
Chapter 7 Identity Management Standards and Technologies |
|
|
356 | (81) |
|
Identity Management-Core Issues |
|
|
358 | (2) |
|
Understanding Network Identity and Federated Identity |
|
|
360 | (2) |
|
The Importance of Identity Management |
|
|
362 | (1) |
|
|
362 | (6) |
|
|
362 | (1) |
|
|
363 | (1) |
|
|
364 | (1) |
|
|
364 | (1) |
|
|
364 | (3) |
|
|
367 | (1) |
|
|
368 | (15) |
|
|
369 | (1) |
|
|
370 | (1) |
|
|
371 | (2) |
|
|
373 | (1) |
|
Policy Administration Point |
|
|
373 | (1) |
|
|
373 | (3) |
|
SAML Authentication Assertion |
|
|
376 | (2) |
|
|
378 | (2) |
|
SAML Authorization Decision Assertion |
|
|
380 | (2) |
|
|
382 | (1) |
|
|
383 | (3) |
|
Security Threats and Countermeasures |
|
|
384 | (2) |
|
The Role of SAML in J2EE-Based Applications and Web Services |
|
|
386 | (1) |
|
Introduction to Liberty Alliance and Their Objectives |
|
|
387 | (4) |
|
|
389 | (1) |
|
|
390 | (1) |
|
Liberty Alliance Architecture |
|
|
391 | (3) |
|
|
392 | (1) |
|
|
393 | (1) |
|
|
393 | (1) |
|
|
393 | (1) |
|
|
394 | (1) |
|
|
394 | (9) |
|
|
396 | (2) |
|
|
398 | (2) |
|
|
400 | (1) |
|
|
400 | (1) |
|
Example-SAML and Liberty Using Sun Java System Access Manager |
|
|
401 | (2) |
|
The Nirvana of Access Control and Policy Management |
|
|
403 | (8) |
|
IETF Policy Management Working Group |
|
|
404 | (1) |
|
Distributed Management Task Force (DMTF) |
|
|
404 | (1) |
|
|
405 | (1) |
|
Enterprise Privacy Authorization Language (EPAL) |
|
|
405 | (3) |
|
Web Services Policy-WS-Policy and WSPL |
|
|
408 | (3) |
|
|
411 | (7) |
|
|
416 | (2) |
|
XACML Data Flow and Architecture |
|
|
418 | (3) |
|
|
420 | (1) |
|
|
421 | (11) |
|
|
421 | (1) |
|
Centralizing Security Policy for Web Services Security |
|
|
421 | (1) |
|
|
422 | (1) |
|
|
422 | (1) |
|
Example-XACML Using Sun's XACML Kit |
|
|
422 | (1) |
|
|
423 | (1) |
|
|
423 | (2) |
|
|
425 | (5) |
|
Use of XACML 2.0 with SAML 2.0 |
|
|
430 | (2) |
|
|
432 | (1) |
|
|
433 | (4) |
|
PART IV Security Design Methodology, Patterns, and Reality Checks |
|
|
437 | (96) |
|
Chapter 8 The Alchemy of Security Design-Methodology, Patterns, and Reality Checks |
|
|
438 | (95) |
|
|
440 | (4) |
|
|
441 | (3) |
|
|
444 | (12) |
|
|
449 | (3) |
|
|
452 | (3) |
|
|
455 | (1) |
|
|
456 | (10) |
|
Understanding Existing Security Patterns |
|
|
456 | (10) |
|
Security Patterns for J2EE, Web Services, Identity Management, and Service Provisioning |
|
|
466 | (1) |
|
Security Pattern Template |
|
|
466 | (35) |
|
Security Patterns Catalog |
|
|
467 | (11) |
|
Security Patterns and their Relationships |
|
|
478 | (10) |
|
Patterns-Driven Security Design |
|
|
488 | (2) |
|
Security Design Processes |
|
|
490 | (6) |
|
|
496 | (1) |
|
|
497 | (2) |
|
Application Security Assessment Model |
|
|
499 | (2) |
|
|
501 | (22) |
|
|
523 | (2) |
|
|
524 | (1) |
|
|
524 | (1) |
|
Adopting a Security Framework |
|
|
525 | (4) |
|
Application Security Provider |
|
|
527 | (2) |
|
Refactoring Security Design |
|
|
529 | (1) |
|
Service Continuity and Recovery |
|
|
530 | (1) |
|
|
530 | (1) |
|
|
531 | (2) |
|
|
531 | (1) |
|
|
531 | (1) |
|
|
531 | (1) |
|
|
532 | (1) |
|
PART V Design Strategies and Best Practices |
|
|
533 | (366) |
|
Chapter 9 Securing the Web Tier-Design Strategies and Best Practices |
|
|
534 | (88) |
|
Web-Tier Security Patterns |
|
|
535 | (80) |
|
|
535 | (13) |
|
|
548 | (12) |
|
|
560 | (9) |
|
|
569 | (8) |
|
|
577 | (13) |
|
|
590 | (8) |
|
|
598 | (8) |
|
|
606 | (9) |
|
Best Practices and Pitfalls |
|
|
615 | (5) |
|
|
615 | (2) |
|
|
617 | (1) |
|
|
618 | (2) |
|
|
620 | (2) |
|
Chapter 10 Securing the Business Tier-Design Strategies and Best Practices |
|
|
622 | (76) |
|
Security Considerations in the Business Tier |
|
|
623 | (1) |
|
Business Tier Security Patterns |
|
|
624 | (69) |
|
|
624 | (11) |
|
Container Managed Security |
|
|
635 | (10) |
|
Dynamic Service Management |
|
|
645 | (14) |
|
Obfuscated Transfer Object |
|
|
659 | (9) |
|
|
668 | (9) |
|
|
677 | (9) |
|
|
686 | (7) |
|
Best Practices and Pitfalls |
|
|
693 | (4) |
|
|
693 | (1) |
|
|
694 | (1) |
|
|
695 | (1) |
|
|
696 | (1) |
|
|
697 | (1) |
|
Chapter 11 Securing Web Services-Design Strategies and Best Practices |
|
|
698 | (56) |
|
Web Services Security Protocols Stack |
|
|
700 | (2) |
|
|
701 | (1) |
|
|
701 | (1) |
|
|
702 | (1) |
|
Web Services Security Infrastructure |
|
|
702 | (3) |
|
Network Perimeter Security |
|
|
702 | (2) |
|
|
704 | (1) |
|
Web Services Infrastructure |
|
|
704 | (1) |
|
|
704 | (1) |
|
|
704 | (1) |
|
Web Services Security Patterns |
|
|
705 | (39) |
|
Message Interceptor Gateway |
|
|
705 | (10) |
|
|
715 | (17) |
|
|
732 | (12) |
|
Best Practices and Pitfalls |
|
|
744 | (8) |
|
|
745 | (6) |
|
|
751 | (1) |
|
|
752 | (2) |
|
Chapter 12 Securing the Identity-Design Strategies and Best Practices |
|
|
754 | (62) |
|
Identity Management Security Patterns |
|
|
756 | (57) |
|
Assertion Builder Pattern |
|
|
756 | (20) |
|
Single Sign-on (SSO) Delegator Pattern |
|
|
776 | (26) |
|
Credential Tokenizer Pattern |
|
|
802 | (11) |
|
Best Practices and Pitfalls |
|
|
813 | (1) |
|
|
813 | (1) |
|
|
814 | (1) |
|
|
814 | (2) |
|
Chapter 13 Secure Service Provisioning-Design Strategies and Best Practices |
|
|
816 | (83) |
|
|
818 | (5) |
|
Scope of Service Provisioning |
|
|
818 | (1) |
|
Relationship with Identity Management |
|
|
819 | (1) |
|
A Typical Scenario of User Account Provisioning |
|
|
820 | (2) |
|
Current Approaches to User Account Provisioning |
|
|
822 | (1) |
|
User Account Provisioning Architecture |
|
|
823 | (10) |
|
Centralized Model versus Decentralized Model |
|
|
823 | (3) |
|
|
826 | (3) |
|
|
829 | (1) |
|
Integrating with an Identity Provider Infrastructure |
|
|
830 | (2) |
|
Other Integration Capability |
|
|
832 | (1) |
|
Differentiators for Service Provisioning Products |
|
|
832 | (1) |
|
|
833 | (7) |
|
Service Provisioning Operations |
|
|
834 | (1) |
|
|
835 | (2) |
|
Adopting a SPML Implementation |
|
|
837 | (3) |
|
Service Provisioning Security Pattern |
|
|
840 | (51) |
|
Password Synchronizer Pattern |
|
|
840 | (50) |
|
|
890 | (1) |
|
Best Practices and Pitfalls |
|
|
891 | (3) |
|
|
891 | (1) |
|
|
891 | (2) |
|
Server Sizing Consideration |
|
|
893 | (1) |
|
|
894 | (1) |
|
|
894 | (1) |
|
|
895 | (4) |
|
|
895 | (1) |
|
Some Security Service Provisioning Vendors |
|
|
896 | (1) |
|
Some Password Management or Password Synchronization Vendor Products |
|
|
897 | (2) |
|
PART VI Putting It All Together |
|
|
899 | (60) |
|
Chapter 14 Building End-to-End Security Architecture-A Case Study |
|
|
900 | (59) |
|
|
902 | (3) |
|
Understanding the Security Challenges |
|
|
902 | (2) |
|
|
904 | (1) |
|
|
905 | (8) |
|
Choosing the Right Methodology |
|
|
905 | (1) |
|
Identifying the Requirements |
|
|
906 | (1) |
|
Identifying the Security Requirements |
|
|
907 | (2) |
|
|
909 | (1) |
|
|
909 | (4) |
|
|
913 | (1) |
|
|
913 | (4) |
|
Conceptual Security Model |
|
|
915 | (2) |
|
|
917 | (13) |
|
Risk Analysis and Mitigation |
|
|
920 | (3) |
|
|
923 | (1) |
|
Applying Security Patterns |
|
|
924 | (3) |
|
Security Architecture-Detailed Components |
|
|
927 | (3) |
|
|
930 | (21) |
|
|
930 | (1) |
|
|
931 | (3) |
|
|
934 | (1) |
|
|
935 | (2) |
|
|
937 | (1) |
|
|
938 | (1) |
|
|
939 | (12) |
|
|
951 | (1) |
|
Unit and Integration Testing |
|
|
951 | (1) |
|
|
952 | (1) |
|
|
952 | (1) |
|
|
952 | (1) |
|
|
953 | (2) |
|
|
954 | (1) |
|
|
954 | (1) |
|
|
955 | (1) |
|
|
955 | (1) |
|
|
955 | (1) |
|
|
956 | (1) |
|
|
956 | (1) |
|
|
957 | (2) |
|
PART VII Personal Identification Using Smart Cards and Biometrics |
|
|
959 | (40) |
|
Chapter 15 Secure Personal Identification Strategies Using Smart Cards and Biometrics |
|
|
960 | (39) |
|
Physical and Logical Access Control |
|
|
962 | (2) |
|
The Role of Smart Cards in Access Control |
|
|
963 | (1) |
|
The Role of Biometrics in Access Control |
|
|
964 | (1) |
|
|
964 | (6) |
|
|
964 | (1) |
|
|
965 | (1) |
|
|
966 | (1) |
|
|
966 | (1) |
|
|
967 | (1) |
|
|
967 | (1) |
|
Pluggable Authentication Module (PAM) |
|
|
968 | (1) |
|
Graphical Identification and Authentication (GINA) |
|
|
969 | (1) |
|
Java Authentication and Authorization Service (JAAS) |
|
|
970 | (1) |
|
Smart Card-Based Identification and Authentication |
|
|
970 | (9) |
|
Architecture and Implementation Model |
|
|
971 | (4) |
|
|
975 | (4) |
|
Using Smart Cards for Physical Access Control |
|
|
979 | (1) |
|
Biometric Identification and Authentication |
|
|
979 | (14) |
|
Understanding the Biometric Verification Process |
|
|
980 | (1) |
|
Accuracy of a Biometric Verification Process |
|
|
981 | (2) |
|
Architecture and Implementation |
|
|
983 | (4) |
|
|
987 | (4) |
|
|
991 | (2) |
|
Multi-factor Authentication Using Smart Cards and Biometrics |
|
|
993 | (2) |
|
Match-on-the-Card Biometrics Strategy |
|
|
994 | (1) |
|
Match-off-the-Card Biometrics Strategy |
|
|
994 | (1) |
|
Best Practices and Pitfalls |
|
|
995 | (3) |
|
|
995 | (1) |
|
|
996 | (1) |
|
|
997 | (1) |
|
|
998 | (1) |
Index |
|
999 | |