Book description
One of Java's most striking claims is that it provides a secure programming environment. Yet despite endless discussion, few people understand precisely what Java's claims mean and how it backs up those claims. If you're a developer, network administrator or anyone else who must understand or work with Java's security mechanisms, Java Security is the in-depth exploration you need.Java Security, 2nd Edition, focuses on the basic platform features of Java that provide security--the class loader, the bytecode verifier, and the security manager--and recent additions to Java that enhance this security model: digital signatures, security providers, and the access controller. The book covers the security model of Java 2, Version 1.3, which is significantly different from that of Java 1.1. It has extensive coverage of the two new important security APIs: JAAS (Java Authentication and Authorization Service) and JSSE (Java Secure Sockets Extension). Java Security, 2nd Edition, will give you a clear understanding of the architecture of Java's security model and how to use that model in both programming and administration.The book is intended primarily for programmers who want to write secure Java applications. However, it is also an excellent resource for system and network administrators who are interested in Java security, particularly those who are interested in assessing the risk of using Java and need to understand how the security model works in order to assess whether or not Java meets their security needs.
Publisher resources
Table of contents
- Java Security
- A Note Regarding Supplemental Files
- Preface
- 1. Java Application Security
- 2. The Default Sandbox
- 3. Java Language Security
- 4. The Security Manager
- 5. The Access Controller
-
6. Java Class Loaders
- The Class Loader and Namespaces
- Class Loading Architecture
-
Implementing a Class Loader
- Class Loader Classes
- Key Methods of the Class Loader
- Responsibilities of the Class Loader
-
Using the URL Class Loader
- Step 1: Optionally call the checkPackageAccess( ) method
- Step 2: Use the previously-defined class, if available
- Step 3: Defer class loading to the parent
- Step 4: Optionally call the checkPackageDefinition( ) method
- Step 5: Read in the class bytes
- Step 6: Create the appropriate protection domain
- Steps 7-8: Define the class, verify it, and resolve it
- Using the SecureClassLoader Class
- Other Class Loaders
- Miscellaneous Class Loading Topics
- Comparison with Previous Releases
- Summary
- 7. Introduction to Cryptography
- 8. Security Providers
- 9. Keys and Certificates
- 10. Key Management
- 11. Message Digests
- 12. Digital Signatures
- 13. Cipher-Based Encryption
- 14. SSL and HTTPS
- 15. Authentication and Authorization
- A. The java.security File
- B. Security Resources
- C. Identity-Based Key Management
- D. The Secure Java Container
- E. Implementing a JCE Security Provider
-
F. Quick Reference
-
Package java.security
- Class java.security.AccessControlContext
- Class java.security.AccessController
- Class java.security.AlgorithmParameterGenerator
- Class java.security.AlgorithmParameter-GeneratorSpi
- Class java.security.AlgorithmParameters
- Class java.security.AlgorithmParametersSpi
- Class java.security.AllPermission
- Class java.security.BasicPermission
- Interface java.security.Certificate
- Class java.security.CodeSource
- Class java.security.DigestInputStream
- Class java.security.DigestOutputStream
- Interface java.security.DomainCombiner
- Interface java.security.Guard
- Class java.security.GuardedObject
- Class java.security.Identity
- Class java.security.IdentityScope
- Interface java.security.Key
- Class java.security.KeyFactory
- Class java.security.KeyFactorySpi
- Class java.security.KeyPair
- Class KeyPairGenerator
- Class KeyPairGeneratorSpi
- Class java.security.KeyStore
- Class java.security.KeyStoreSpi
- Class java.security.MessageDigest
- Class java.security.MessageDigestSpi
- Class java.security.Permission
- Class java.security.PermissionCollection
- Class java.security.Permissions
- Class java.security.Policy
- Interface java.security.Principal
- Interface java.security.PrivateKey
- Class java.security.ProtectionDomain
- Class java.security.Provider
- Interface java.security.PublicKey
- Class java.security.SecureClassLoader
- Class java.security.SecureRandom
- Class java.security.SecureRandomSpi
- Class java.security.Security
- Class java.security.SecurityPermission
- Class java.security.Signature
- Class java.security.SignatureSpi
- Class java.security.SignedObject
- Class java.security.Signer
- Class java.security.UnresolvedPermission
-
Package java.security.cert
- Class java.security.cert.Certificate
- Class java.security.cert.CertificateFactory
- Class java.security.cert.CertificateFactorySpi
- Class java.security.cert.CRL
- Class java.security.cert.X509Certificate
- Class java.security.cert.X509CRL
- Class java.security.cert.X509CRLEntry
- Interface java.security.cert.X509Extension
-
Package java.security.interfaces
- Interface java.security.interfaces.DSAKey
- Interface java.security.interfaces.DSAKeyPair-Generator
- Interface java.security.interfaces.DSAParams
- Interface java.security.interfaces.DSAPrivateKey
- Interface java.security.interfaces.DSAPublicKey
- Interface java.security.interfaces.RSAKey
- Interface java.security.interfaces.RSAPrivateCrtKey
- Interface java.security.interfaces.RSAPrivateKey
- Interface java.security.interfaces.RSAPublicKey
-
Package java.security.spec
- Interface java.security.spec.Algorithm-ParameterSpec
- Class java.security.spec.DSAParameterSpec
- Class java.security.spec.DSAPrivateKeySpec
- Class java.security.spec.DSAPublicKeySpec
- Class java.security.spec.EncodedKeySpec
- Interface java.security.spec.KeySpec
- Class java.security.spec.PKCS8EncodedKeySpec
- Class java.security.spec.RSAKeyGenParameterSpec
- Class java.security.spec.RSAPrivateCrtKeySpec
- Class java.security.spec.RSAPrivateKeySpec
- Class java.security.spec.RSAPublicKeySpec
- Class java.security.spec.X509EncodedKeySpec
-
Package javax.crypto
- Class javax.crypto.Cipher
- Class javax.crypto.CipherInputStream
- Class javax.crypto.CipherOutputStream
- Class javax.crypto.CipherSpi
- Class javax.crypto.ExemptionMechanism
- Class javax.crypto.ExemptionMechanismSpi
- Class javax.crypto.KeyAgreement
- Class javax.crypto.KeyAgreementSpi
- Class javax.crypto.KeyGenerator
- Class javax.crypto.KeyGeneratorSpi
- Class javax.crypto.Mac
- Class javax.crypto.MacSpi
- Class javax.crypto.NullCipher
- Class javax.crypto.SealedObject
- Interface javax.crypto.SecretKey
- Class javax.crypto.SecretKeyFactory
- Class javax.crypto.SecretKeyFactorySpi
- Package javax.crypto.interfaces
-
Package javax.crypto.spec
- Class javax.crypto.spec.DESKeySpec
- Class javax.crypto.spec.DESedeKeySpec
- Class javax.crypto.spec.DHGenParameterSpec
- Class javax.crypto.spec.DHParameterSpec
- Class javax.crypto.spec.DHPrivateKeySpec
- Class javax.crypto.spec.DHPublicKeySpec
- Class javax.crypto.spec.IvParameterSpec
- Class javax.crypto.spec.PBEKeySpec
- Class javax.crypto.spec.PBEParameterSpec
- Class javax.crypto.spec.RC2ParameterSpec
- Class javax.crypto.spec.RC5ParameterSpec
- Class javax.crypto.spec.SecretKeySpec
- Package javax.net
-
Package javax.net.ssl
- Class javax.net.ssl.HandshakeCompletedEvent
- Interface javax.net.ssl.HandshakeCompleted-Listener
- Class javax.net.ssl.SSLServerSocket
- Class javax.net.ssl.SSLServerSocketFactory
- Interface javax.net.ssl.SSLSession
- Class javax.net.ssl.SSLSessionBindingEvent
- Interface javax.net.ssl.SSLSessionBindingListener
- Interface javax.net.ssl.SSLSessionContext
- Class javax.net.ssl.SSLSocket
- Class javax.net.ssl.SSLSocketFactory
- Package javax.security.auth
-
Package javax.security.auth.callback
- Interface javax.security.auth.callback.Callback
- Interface javax.security.auth.callback.Callback-Handler
- Class javax.security.auth.callback.ChoiceCallback
- Class javax.security.auth.callback.Confirmation-Callback
- Class javax.security.auth.callback.LanguageCallback
- Class javax.security.auth.callback.NameCallback
- Class javax.security.auth.callback.Password-Callback
- Class javax.security.auth.callback.TextInputCallback
- Class javax.security.auth.callback.TextOutput-Callback
- Package javax.security.auth.login
- Package javax.security.auth.spi
- Package javax.security.cert
-
Package com.sun.net.ssl
- Interface com.sun.net.ssl.HostnameVerifier
- Class com.sun.net.ssl.HttpsURLConnection
- Interface com.sun.net.ssl.KeyManager
- Class com.sun.net.ssl.KeyManagerFactory
- Class com.sun.net.ssl.KeyManagerFactorySpi
- Class com.sun.net.ssl.SSLContext
- Class com.sun.net.ssl.SSLContextSpi
- Class com.sun.net.ssl.SSLPermission
- Interface com.sun.net.ssl.TrustManager
- Class com.sun.net.ssl.TrustManagerFactory
- Class com.sun.net.ssl.TrustManagerFactorySpi
- Interface com.sun.net.ssl.X509KeyManager
- Interface com.sun.net.ssl.X509TrustManager
-
Package com.sun.security.auth
- Class com.sun.security.auth.NTDomainPrincipal
- Class com.sun.security.auth.NTNumericCredential
- Class com.sun.security.auth.NTSid
- Class com.sun.security.auth.NTSid
- Class com.sun.security.auth.NTSidDomainPrincipal
- Class com.sun.security.auth.NTSidGroupPrincipal
- Class com.sun.security.auth.NTSidPrimaryGroup-Principal
- Class com.sun.security.auth.NTSidUserPrincipal
- Class com.sun.security.auth.NTUserPrincipal
- Class com.sun.security.auth.PolicyFile
- Interface com.sun.security.auth.PrincipalComparator
- Class com.sun.security.auth.SolarisNumericGroup-Principal
- Class com.sun.security.auth.SolarisNumericUser-Principal
- Class com.sun.security.auth.SolarisPrincipal
- Class com.sun.security.auth.X500Principal
- Package com.sun.security.auth.login
- Package com.sun.security.auth.module
-
Miscellaneous Packages
- Class java.awt.AWTPermission
- Class java.io.FilePermission
- Class java.io.SerializablePermission
- Class java.lang.ClassLoader
- Class java.lang.RuntimePermission
- Class java.lang.SecurityManager
- Class java.lang.reflect.ReflectPermission
- Class java.net.NetPermission
- Class java.net.SocketPermission
- Class java.net.URLClassLoader
- Class java.rmi.RMISecurityManager
- Class java.rmi.server.RMIClassLoader
- Class java.util.PropertyPermission
-
Package java.security
- Index
- About the Author
- Colophon
- Copyright
Product information
- Title: Java Security, 2nd Edition
- Author(s):
- Release date: May 2001
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9780596001575
You might also like
book
Java Security Handbook
This book is a comprehensive guide to Java security issues. It assumes you are an experienced …
book
Java Cryptography
Cryptography, the science of secret writing, is the biggest, baddest security tool in the application programmer's …
video
Java Concurrency, 2/e
9+ Hours of Video Instruction Java Concurrency LiveLessons, Second Edition teaches you how to develop high-quality …
book
Java Web Services: Up and Running
This example-driven book offers a thorough introduction to Java's APIs for XML Web Services (JAX-WS) and …