epubjs
Version:
Render ePub documents in the browser, across many devices
34 lines (33 loc) • 3.14 kB
HTML
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Application and User-Level Security</title><link rel="stylesheet" href="core.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"/></head><body><div class="sect1" title="Application and User-Level Security"><div class="titlepage"><div><div><h1 class="title"><a id="learnjava3-CHP-1-SECT-6"/>Application and User-Level Security</h1></div></div></div><p><a id="idx10037" class="indexterm"/>There’s a fine line between having enough power to do
something useful and having all the power to do anything you want. Java
provides the foundation for a secure environment in which untrusted code
can be quarantined, managed, and safely executed. However, unless you are
content with keeping that code in a little black box and running it just
for its own benefit, you will have to grant it access to at least some
system resources so that it can be useful. Every kind of access carries
with it certain risks and benefits. For example, in the web browser
environment, the advantages of granting an untrusted (unknown) applet
access to your windowing system are that it can display information and
let you interact in a useful way. The associated risks are that the applet
may instead display something worthless, annoying, or offensive.</p><p>At one extreme, the simple act of running an application gives it a
resource—computation time—that it may put to good use or burn frivolously.
It’s difficult to prevent an untrusted application from wasting your time
or even attempting a “denial of service” attack. At the other extreme, a
powerful, trusted application may justifiably deserve access to all sorts
of system resources (e.g., the filesystem, process creation, network
interfaces); a malicious application could wreak havoc with these
resources. The message here is that important and sometimes complex
security issues have to be addressed.</p><p>In some situations, it may be acceptable to simply ask the user to
“okay” requests. The Java language provides the tools to implement any
security policies you want. However, what these policies will be
ultimately depends on having confidence in the identity and integrity of
the code in question. This is where digital signatures come into
play.</p><p><a id="I_indexterm1_id635004" class="indexterm"/>Digital signatures, together with certificates, are
techniques for verifying that data truly comes from the source it claims
to have come from and hasn’t been modified en route. If the Bank of Boofa
signs its checkbook application, you can verify that the app actually came
from the bank rather than an imposter and hasn’t been modified. Therefore,
you can tell your browser to trust applets that have the Bank of Boofa’s
signature.<a id="I_indexterm1_id635018" class="indexterm"/></p></div></body></html>