Preface | | xi | |
How This Book Is Organized | | xii | |
Acknowledgments | | xiii | |
| Computer and Network Security Fundamentals | | | 1 | (20) |
| Cryptography versus Computer Security | | | 2 | (1) |
| | 3 | (1) |
| | 4 | (3) |
| | 6 | (1) |
| Inadequacies of Perimeter Defense Alone | | | 6 | (1) |
| Access Control and Security Models | | | 7 | (4) |
| | 7 | (1) |
| Access to Data and Information | | | 8 | (1) |
| Static versus Dynamic Models | | | 9 | (1) |
| Considerations Concerning the Use of Security Models | | | 10 | (1) |
| | 11 | (4) |
| | 12 | (1) |
| | 13 | (1) |
| | 14 | (1) |
| | 15 | (2) |
| | 17 | (1) |
| Where Does Java Security Fit In | | | 18 | (3) |
| Basic Security for the Java Language | | | 21 | (12) |
| The Java Language and Platform | | | 22 | (1) |
| Basic Security Architecture | | | 23 | (2) |
| Bytecode Verification and Type Safety | | | 25 | (2) |
| | 27 | (1) |
| A Brief History of Security Bugs and Fixes | | | 28 | (5) |
| JDK 1.2 Security Architecture | | | 33 | (80) |
| | 33 | (1) |
| Why a New Security Architecture | | | 34 | (3) |
| Sandbox Restrictions on Applets Too Limiting | | | 34 | (1) |
| Insufficient Separation Between Policy and Enforcement | | | 35 | (1) |
| Security Checks Not Easily Extensible | | | 35 | (1) |
| Locally Installed Applets Too Easily Trusted | | | 36 | (1) |
| Internal Security Mechanisms Fragile | | | 36 | (1) |
| | 37 | (1) |
| Java. security. General Security Exception | | | 37 | (1) |
| | 38 | (3) |
| | 41 | (4) |
| Testing for Equality and Using Implication | | | 43 | (2) |
| | 45 | (21) |
| Java. Security. Permission | | | 46 | (2) |
| | 48 | (2) |
| Java. Security. Unresolved Permission | | | 50 | (2) |
| Java. io. File Permission | | | 52 | (3) |
| Jave. net. Socket Permission | | | 55 | (4) |
| Java. security. Basic Permission | | | 59 | (1) |
| Java. util. Property Permission | | | 59 | (2) |
| Java. lang. Runtime Permission | | | 61 | (1) |
| Java. awt. AWT Permission | | | 62 | (1) |
| Java. net. Net Permission | | | 63 | (1) |
| Java. lang. reflect. Reflect Permission | | | 63 | (1) |
| Java. io. Serializable Permission | | | 64 | (1) |
| Java. Security. Security Permission | | | 64 | (1) |
| Java. security. All Permission | | | 65 | (1) |
| Implications of Permission Implications | | | 66 | (1) |
| | 66 | (3) |
| Positive versus Negative Permissions | | | 68 | (1) |
| | 69 | (2) |
| | 71 | (12) |
| | 72 | (2) |
| Java. lang.Class Loader and Delegation | | | 74 | (5) |
| Java. Security. Secure Class Loader | | | 79 | (1) |
| Java. net. URL Class Loader | | | 80 | (1) |
| | 81 | (2) |
| Java. lang. SecurityManager | | | 83 | (7) |
| Example Use of the Security Manager | | | 83 | (1) |
| Unchanged APIs in JDK 1.2 | | | 84 | (1) |
| Deprecated Methods in JDK 1.2 | | | 85 | (5) |
| Java. security. AccessController | | | 90 | (16) |
| Interface Design of Access Controller | | | 91 | (1) |
| The Basic Access Control Algorithm | | | 92 | (2) |
| | 94 | (1) |
| Extending the Basic Algorithm with Privilged Operations | | | 95 | (3) |
| Three Types of Privileged Actions | | | 98 | (3) |
| The Context of Access Control | | | 101 | (1) |
| The Full Access Control Algorithm | | | 102 | (2) |
| SecurityManager versus AccessController | | | 104 | (1) |
| A Mini-History of Privileged Operations | | | 105 | (1) |
| Summary and Lessons Learned | | | 106 | (7) |
| Deploying the Security Architecture | | | 113 | (40) |
| | 113 | (2) |
| | 115 | (10) |
| Configuring System-Wide and User-Specific Policies | | | 115 | (1) |
| Configuring Application-Specific Policies | | | 116 | (1) |
| Configuring an Alternative Policy Class Implementation | | | 117 | (1) |
| Default Policy File Format | | | 118 | (4) |
| | 122 | (1) |
| Property Expansion in Policy Files | | | 123 | (2) |
| | 125 | (5) |
| | 130 | (20) |
| | 130 | (3) |
| | 133 | (6) |
| | 139 | (4) |
| | 143 | (5) |
| | 148 | (2) |
| Managing Security Policies for Nonexperts | | | 150 | (3) |
| Customizing the Security Architecture | | | 153 | (20) |
| Creating New Permission Types | | | 153 | (2) |
| | 155 | (1) |
| Customizing Security Policy | | | 156 | (2) |
| Migrating JDK 1.1-Based Security Managers | | | 158 | (15) |
| JDK 1.1 SEcurity Manager Classes | | | 158 | (2) |
| Accommodating JDK 1.1 Security Managers on JDK 1.2 | | | 160 | (3) |
| Modifying JDK 1.1 Security Managers for JDK 1.2 | | | 163 | (10) |
| | 173 | (18) |
| | 173 | (1) |
| | 174 | (2) |
| | 176 | (1) |
| Private Object State and Object Immutability | | | 176 | (2) |
| | 178 | (1) |
| | 179 | (2) |
| | 181 | (1) |
| | 182 | (1) |
| | 182 | (3) |
| | 185 | (1) |
| | 186 | (5) |
| Examples of Using GuardedObject | | | 188 | (3) |
| | 191 | (38) |
| | 192 | (1) |
| Cryptographic Services and Service Providers | | | 193 | (6) |
| Installing and Adding a Provider | | | 197 | (2) |
| | 199 | (16) |
| | 199 | (1) |
| | 200 | (1) |
| java. Security. Message Digest | | | 200 | (1) |
| | 201 | (3) |
| | 204 | (3) |
| java. security. Key and java. security. spec. Key Spec | | | 207 | (3) |
| java. security. Key Factory and java. security. cert. Certificate Factory | | | 210 | (2) |
| Key Pair and Key Pair Generator | | | 212 | (2) |
| java. security. Key Store | | | 214 | (1) |
| Randomness and Seed Generators | | | 215 | (2) |
| java. security. Secure Random | | | 216 | (1) |
| | 217 | (5) |
| Example 1: Computing a Message Digest | | | 217 | (1) |
| Example 2: Generating a Public/Private Key Pair | | | 218 | (1) |
| Example 3: Generating and Verifying Signatures | | | 219 | (2) |
| Example 4: Reading a File That Contains Certificates | | | 221 | (1) |
| | 222 | (2) |
| Message Digest Algorithms | | | 222 | (1) |
| Key and Parameter Algorithms | | | 222 | (1) |
| Digital Signature Algorithms | | | 223 | (1) |
| Random Number Generation Algorithms | | | 223 | (1) |
| | 224 | (1) |
| | 224 | (1) |
| | 224 | (5) |
| SHA-1 Message Digest Algorithm | | | 225 | (1) |
| MD2 Message Digest Algorithm | | | 225 | (1) |
| MD5 Message Digest Algorithm | | | 225 | (1) |
| Digital Signature Algorithm | | | 225 | (1) |
| RSA-Based Signature Algorithms | | | 225 | (1) |
| DSA-Key Pair Generation Algorithm | | | 226 | (1) |
| RSA Key Pair Generation Algorithm | | | 227 | (1) |
| DSA Parameter Generation Algorithm | | | 227 | (2) |
| | 229 | (16) |
| | 229 | (1) |
| | 230 | (2) |
| Java Authentication and Authorization Service | | | 232 | (10) |
| | 234 | (1) |
| | 234 | (1) |
| Pluggable and Stacked Authentication | | | 235 | (4) |
| | 239 | (10) |
| | 249 | |
| | 241 | (1) |
| | 242 | (3) |
Bibliography | | 245 | (6) |
Index | | 251 | |