CISSP For Dummies

Applications escaped the well-controlled computer room environment in the early 1980s with the advent of personal computers and networks. Perhaps it was the computer operators’ white lab coats, the pocket protectors, or the horn-rimmed glasses, but applications couldn’t take it any more. They needed a break and wanted a life. Can you blame them?

As application technology developed, we’ve seen smart terminals with field editing capabilities (cough . . . most of you readers weren’t yet born when these were prevalent), and later on, two-tier and three-tier client-server applications in which some of the application logic ran on a server and some of it ran on a PC. Client-server technology looked really good on paper (and on those fancy new white boards), but it never measured up to its potential.

Then in 1992, Eric Bina, Marc Andresson, and Al Gore (the self-proclaimed father of the Internet) developed the first popular Web browser called Mosaic, which sported such features as hyperlinks and Web pages that contained pictures and text. Thousands of people downloaded Mosaic, which was available for PC, Mac, and UNIX-based operating systems, and soon the modern World Wide Web (WWW) was born. Distributed applications (applications made up of distinct components on networked computers) were on the rise and the Web was cool and really fast until the general public found out about it and ruined it. Seriously, though, a lot of neat and relevant technologies were born out of the Web, many of which we discuss in this chapter.

The Web was the death knell for client-server applications.

 Instant Answer   A distributed application is an application that consists of components on separate, networked systems.

Security in distributed systems

Securing distributed systems is anything but easy, and it boils down to three distinct issues:

Agents

An agent is a software component in a distributed system that performs a particular service. An example of an agent might be a system that takes a credit card number (with expiration date, customer name, purchase amount, and so on) and builds a merchant transaction to send to the bank. The agent processes the transaction and gives a yea or nay response back to the main application, which then gets to give the customer ordering books on the Web the good news or bad news.

 Instant Answer   An agent is a component in a distributed system that performs a particular function.

Applets

An applet is a component in a distributed environment that’s downloaded and executed by a Web browser. Web browsers, which are designed to display text and graphics and also accept data input on forms, aren’t very good at processing information locally on the client system, so applets were invented to solve this problem and enrich the user’s surfing experience.

The neat thing about applets is that they run seamlessly right in a Web browser, and you can’t even tell that an applet is running or whether you’re just dealing with straight HTML. Ignorance is bliss.

 Tip   The two most popular environments for applets are Java and ActiveX. Java code runs in something called a sandbox, which is to say that the Java code can only communicate with the host that it was downloaded from. Java is also permitted to display things on the screen and accept keyboard or mouse input. However, Java applets aren’t permitted to access a PC’s hard drive, memory, or any other devices. Web browsers today get a lot of practice saying to Java applets, “Go play in your sandbox and leave my hard drive alone!,” and rarely do Java applets escape from their sandboxes. Personally we think they’re surrounded by the digital equivalent of razor wire.

ActiveX, which is really just a cool name for OLE over the Internet, is Microsoft’s “not invented here” response to Java. ActiveX uses a completely different security philosophy than Java, and it goes something like this: People running Web browsers get to decide whether they trust all ActiveX applets that come from a particular server. Digital certificates are used to certify whether the ActiveX applet is genuine. With ActiveX, a rogue developer can write some pretty nasty ActiveX code to melt your hard drive and play old Alice Cooper songs through your PC’s speakers.

This kind of thing is possible because ActiveX has no concept of a sandbox. If you trust the server that the ActiveX applet comes from, then you’re basically saying that you give all control of your PC over to the ActiveX applet, and it can do whatever it wants. This is all fine and good in an ideal world (for a 3-mile radius around Redmond, Washington) where everyone is trustworthy. In the real world, though, programmers with an attitude - or even honest and ethical programmers who make a mistake - can permit bad things to happen to your system. Always turn down your speaker volume before running ActiveX applets unless you’re in a closed room or you really like Alice Cooper.

Many proxy servers can be configured to filter out ActiveX applets. Most administrators will put in extra hours to do this. Web browsers can also be configured to not run Java or ActiveX applets, but the last time that we checked, users could still just change this back so that they can see their stock ticker or the cool picture at www.time.gov. Enterprises that are serious about protecting themselves - even at the expense of disabling some cool Web sites - really need to block applets at the firewall or proxy server.

 Instant Answer   Applets are also known as mobile code because they’re downloaded from a server and run on a client.

Категории