What Is Security?
The first thing we must do is to discuss just what Java’s security goals are. The term “security” is vague unless it is discussed in some context; different expectations of the term “security” might lead us to expect that Java programs would be:
- Safe from malevolent programs
Programs should not be allowed to harm a user’s computing environment, such as Trojan horses and harmful programs that replicate, like computer viruses.
- Non-intrusive
Programs should be prevented from discovering private information on the host computer or the host computer’s network.
- Authenticated
The identity of parties involved in the program -- both the author and the user of the program -- should be verified.
- Encrypted
Data that the program sends and receives -- over the network or through a persistent store such as a filesystem or database -- should be encrypted.
- Audited
Potentially sensitive operations should always be logged.
- Well-defined
A well-defined security specification should be followed.
- Verified
Rules of operation should be set and verified.
- Well-behaved
Programs should be prevented from consuming too many system resources: too much CPU time, too much memory, and so on.
- C2 or B1 certified
Programs should have certification from the U.S. government that certain security procedures are followed.
In fact, while all of these features could be part of a secure system, only the first two were within the province of Java’s 1.0 default security model. Other items in the list have been introduced ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access