|
To access the contents, click the chapter and section titles.
Platinum Edition Using HTML 4, XML, and Java 1.2
The next logical step in the evolution of interactivity on the Web was client-side executable content. This actually existed before Java in the form of helper apps and plug-ins. Through the use of helper appsand helper apps that execute right in the browser, called plug-insit is possible to view and interact with Web content by using code that executes on your own machine. You simply need to download and install the helper software first (assuming it is available for your platform) and get the content later. The content is not executable but contains information about itself that tells the browser what program to use to interact with it. This is accomplished by use of a MIME (Multipurpose Internet Mail Extensions) type. This model allows a security risk on the client that is worse than the Java model because no limits are imposed on the application running on the client. The person using the helper application must trust that it wont do any harm. The content (images, sounds, and movies) is not executable, and an end user must explicitly install the viewer software. Hence, no more risk exists than in installing any other kind of application. What about the Java model? It is one big step forward for interactivity, which would typically cause security concerns. If the client can download executable code without knowing exactly what it does, whats to prevent a malicious Java programmer from writing an applet that wipes out the users hard drive, infects files with viruses, steals private information, or crashes the machine? The remainder of this section describes these risks in more detail and talks about how these security risks have been closed in Java. The Security ProblemHow is network-distributed dynamic executable content any different from software installed and running on a local machine? A piece of software needs to be able to access all of the system resources within the limits of what the operating system allows. It typically needs to save files, read information, and access the systems memory. Although defects exist in software as well as malicious attacks, the person installing the software generally makes a decision to trust the person who wrote the software. This approach is the traditional software model. An application arriving over a network must also be able to make use of system resources in order to function. The only difference is that executable content arriving in a Web page does not need to be installed first. The user might not even know where it is coming from. If the applet needs access to key system resources, it will contact the browser and ask for special access. Typically, the browser responds by displaying a special dialog box, asking the user if he or she is willing to trust this applet. If the code was written by a malicious programmer who wanted to damage the end users machine or violate that users security, and if the end user was willing to grant that live content all the same freedoms a regular local application would have, the user would have no warning and no protection. How do we allow for a useful applet and maintain a level of trust? It doesnt make sense to completely restrict outside programs from doing anything on the local machine. Such an approach severely limits the functionality of the network application. A better strategy is to develop limitations that hinder the malicious behavior but allow for the freedom to do the things that need to be done. Six steps define this strategy:
Java was designed with each of these steps in mind, and it addresses most, if not all, of these points. Before exploring Javas security architecture, well discuss the types of potential attack scenarios. Potential Attack ScenariosAn adversary may try to perpetrate two basic categories of attack. The first of these is the security breach; the second is the nuisance attack. Some examples of nuisance attacks are as follows:
These types of attacks might not necessarily open you up to a security breach because they do not leak private information about your company or yourself to any unauthorized third party. They can, however, make your computing experience unpleasant and even damage your computers operating system. The goal of these attacks is to wreak havoc of one type or another. The other, more serious, types of attacks are security breaches, where somebody attempts to gain private or sensitive information about you or your business. More strategies are used to accomplish this than can be covered in a single chapter of a book. Youll find full coverage of the subject in Internet Security Professional Reference, Second Edition (New Riders, 1997) and Maximum Security, Second Edition (Sams, 1998). A few of the major strategies that people might try include
|
Products | Contact Us | About Us | Privacy | Ad Info | Home
Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc. All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement. |