91 Security Overview
91 Security Overview
Security Overview
Release 2 (9.2)
March 2002
Part No. A96582-01
Oracle9i Security Overview, Release 2 (9.2)
Contributing Authors: Rita Moran, Kristy Browder, Mary Ann Davidson, John Heimann, Paul
Needham, David Saslav, Uppili Srinivasan
Contributors: Mike Cowan, Sudha Iyer, Richard Smith, Deborah Steiner, Daniel Wong
The Programs (which include both the software and documentation) contain proprietary information of
Oracle Corporation; they are provided under a license agreement containing restrictions on use and
disclosure and are also protected by copyright, patent and other intellectual and industrial property
laws. Reverse engineering, disassembly or decompilation of the Programs, except to the extent required
to obtain interoperability with other independently created software or as specified by law, is prohibited.
The information contained in this document is subject to change without notice. If you find any problems
in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this
document is error-free. Except as may be expressly permitted in your license agreement for these
Programs, no part of these Programs may be reproduced or transmitted in any form or by any means,
electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation.
If the Programs are delivered to the U.S. Government or anyone licensing or using the programs on
behalf of the U.S. Government, the following notice is applicable:
Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial
computer software" and use, duplication, and disclosure of the Programs, including documentation,
shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement.
Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer
software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR
52.227-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500
Oracle Parkway, Redwood City, CA 94065.
The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently
dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup,
redundancy, and other measures to ensure the safe use of such applications if the Programs are used for
such purposes, and Oracle Corporation disclaims liability for any damages caused by such use of the
Programs.
Oracle is a registered trademark, and Oracle7, Oracle8i, Oracle9i, Oracle Store, PL/SQL, Secure Network
Services, and SQL*Plus are trademarks or registered trademarks of Oracle Corporation. Other names
may be trademarks of their respective owners.
Contents
Preface........................................................................................................................................................... xv
Audience ............................................................................................................................................... xvi
Organization......................................................................................................................................... xvi
Related Documentation .................................................................................................................... xviii
Conventions.......................................................................................................................................... xix
Documentation Accessibility ............................................................................................................. xxi
iii
Increased Data Access .................................................................................................................. 1-9
Much More Valuable Data .......................................................................................................... 1-9
Larger User Communities ......................................................................................................... 1-10
Scalability.............................................................................................................................. 1-10
Manageability....................................................................................................................... 1-11
Interoperability .................................................................................................................... 1-11
Hosted Systems and Exchanges ............................................................................................... 1-11
A World of Data Security Risks ..................................................................................................... 1-12
Data Tampering .......................................................................................................................... 1-12
Eavesdropping and Data Theft................................................................................................. 1-12
Falsifying User Identities........................................................................................................... 1-13
Password-Related Threats ......................................................................................................... 1-13
Unauthorized Access to Tables and Columns........................................................................ 1-14
Unauthorized Access to Data Rows......................................................................................... 1-14
Lack of Accountability ............................................................................................................... 1-14
Complex User Management Requirements............................................................................ 1-15
Multitier Systems................................................................................................................. 1-15
Scaling the Security Administration of Multiple Systems............................................. 1-15
A Matrix of Security Risks and Solutions.................................................................................... 1-16
The System Security Team .............................................................................................................. 1-18
iv
Using Network Facilities to Manage Privileges....................................................................... 2-7
Using Views to Manage Privileges ............................................................................................ 2-7
Row Level Security............................................................................................................................. 2-8
Complex and Dynamic Views .................................................................................................... 2-9
Application Query Rewrite: Virtual Private Database............................................................ 2-9
Label-Based Access Control ........................................................................................................ 2-9
Encrypting Data on the Server ....................................................................................................... 2-10
Selective Encryption of Stored Data ........................................................................................ 2-10
Industry Standard Encryption Algorithms............................................................................. 2-11
Database Integrity Mechanisms .................................................................................................... 2-11
System Availability Factors ............................................................................................................ 2-12
Secure Configuration Practices....................................................................................................... 2-13
v
Kerberos and CyberSafe .............................................................................................................. 4-4
RADIUS.......................................................................................................................................... 4-4
Token Cards................................................................................................................................... 4-5
Smart Cards ................................................................................................................................... 4-6
Distributed Computing Environment (DCE) ........................................................................... 4-7
Biometrics....................................................................................................................................... 4-7
PKI and Certificate-Based Authentication ................................................................................ 4-7
Proxy Authentication and Authorization....................................................................................... 4-8
Single Signon..................................................................................................................................... 4-10
Server-Based Single Signon....................................................................................................... 4-10
Middle Tier Single Signon ......................................................................................................... 4-11
vi
7 Auditing to Monitor System Security
Introduction ......................................................................................................................................... 7-2
Fundamental Auditing Requirements............................................................................................ 7-2
Robust, Comprehensive Auditing ...................................................................................... 7-2
Efficient Auditing .................................................................................................................. 7-3
Customizable Auditing ........................................................................................................ 7-3
Fine Grained, Extensible Auditing ................................................................................................. 7-3
Auditing in Multitier Application Environments........................................................................ 7-4
vii
Authentication and Access Controls in Oracle9i ..................................................................... 9-4
Privileges........................................................................................................................................ 9-4
Roles................................................................................................................................................ 9-5
Auditing ......................................................................................................................................... 9-5
Views, Stored Program Units, Triggers..................................................................................... 9-5
Data Encryption ............................................................................................................................ 9-6
High Availability .......................................................................................................................... 9-6
User Profiles ........................................................................................................................... 9-6
Online Backup and Recovery .............................................................................................. 9-7
Advanced Replication........................................................................................................... 9-7
Data Partitioning.................................................................................................................... 9-7
Very High Availability with Real Application Clusters .................................................. 9-8
Proxy Authentication in Oracle9i ............................................................................................... 9-9
Introduction............................................................................................................................ 9-9
Support for Additional Protocols...................................................................................... 9-10
Expanded Credential Proxy ............................................................................................... 9-10
Application User Proxy Authentication........................................................................... 9-11
Oracle9i Enterprise Edition............................................................................................................. 9-12
Internet Scale Security Features................................................................................................ 9-12
Deep Data Protection .......................................................................................................... 9-12
Internet-Scale Security ........................................................................................................ 9-13
Secure Hosting and Data Exchange .................................................................................. 9-13
Application Security................................................................................................................... 9-13
Virtual Private Database in Oracle9i........................................................................................ 9-14
Virtual Private Database in Oracle8i and Oracle9i ......................................................... 9-14
How Virtual Private Database Works .............................................................................. 9-15
Application Context in Oracle9i ........................................................................................ 9-16
How Application Context Facilitates VPD ...................................................................... 9-17
Application Context Accessed Locally...................................................................... 9-17
Application Context Initialized Externally............................................................... 9-17
Application Context Initialized Globally.................................................................. 9-18
Application Context Accessed Globally ................................................................... 9-18
How Partitioned Fine-Grained Access Control Facilitates VPD .................................. 9-19
User Models and Virtual Private Database ..................................................................... 9-20
Oracle Policy Manager........................................................................................................ 9-20
viii
Secure Application Role ............................................................................................................ 9-21
Fine-Grained Auditing............................................................................................................... 9-21
Oracle Auditing for Three-Tier Applications ......................................................................... 9-23
Java Security Implementation in the Database ...................................................................... 9-23
Class Execution .................................................................................................................... 9-23
SecurityManager Class ....................................................................................................... 9-23
Oracle Advanced Security............................................................................................................... 9-24
Introduction to Oracle Advanced Security ............................................................................. 9-25
Network Security Services of Oracle Advanced Security .................................................... 9-27
Oracle Net Services Native Encryption............................................................................ 9-27
Data Integrity Features of Oracle Advanced Security ................................................... 9-29
Secure Sockets Layer (SSL) Encryption Capabilities...................................................... 9-29
Oracle Advanced Security Support for SSL ............................................................. 9-29
Checksumming in Oracle Advanced Security SSL ................................................. 9-29
Oracle9i Application Server Support for SSL........................................................... 9-30
Java Encryption Features of Oracle Advanced Security................................................ 9-30
JDBC-OCI Driver.......................................................................................................... 9-30
Thin JDBC...................................................................................................................... 9-31
Secure Connections for Virtually Any Client........................................................... 9-32
Oracle Java SSL............................................................................................................. 9-32
Strong Authentication Methods Supported by Oracle Advanced Security ............... 9-33
Oracle Public Key Infrastructure-Based Authentication ........................................ 9-34
Kerberos and CyberSafe with Oracle Advanced Security ..................................... 9-36
RADIUS with Oracle Advanced Security................................................................. 9-36
Token Cards with Oracle Advanced Security.......................................................... 9-37
Smart Cards with Oracle Advanced Security .......................................................... 9-37
Biometric Authentication with Oracle Advanced Security.................................... 9-37
Distributed Computing Environment (DCE) with Oracle Advanced Security .. 9-38
Single Sign-On Implementations in Oracle Advanced Security .................................. 9-38
Single Sign-On Configuration with Third-Party Products .................................... 9-38
PKI-Based Single Sign-On Configuration................................................................. 9-38
Enterprise User Security Features of Oracle Advanced Security ........................................ 9-39
Password-Authenticated Enterprise Users...................................................................... 9-40
Tools for Enterprise User Security .................................................................................... 9-40
Shared Schemas in Oracle Advanced Security ............................................................... 9-41
ix
Current User Database Links............................................................................................. 9-41
Directory Integration........................................................................................................... 9-41
PKI Implementation in Oracle Advanced Security ............................................................... 9-42
Components of Oracle Public Key Infrastructure-Based Authentication ................... 9-42
Secure Sockets Layer.................................................................................................... 9-42
Oracle Call Interface..................................................................................................... 9-42
Trusted Certificates ...................................................................................................... 9-42
X.509 Version 3 Certificates ........................................................................................ 9-43
Oracle Wallets ............................................................................................................... 9-43
Oracle Wallet Manager ................................................................................................ 9-43
Oracle Enterprise Login Assistant ............................................................................. 9-43
Oracle Internet Directory ............................................................................................ 9-43
Oracle Enterprise Security Manager.......................................................................... 9-44
PKI Integration and Interoperability ................................................................................ 9-44
PKCS #12 Support ........................................................................................................ 9-45
Wallets Stored in Oracle Internet Directory ............................................................. 9-45
Multiple Certificate Support ....................................................................................... 9-45
Strong Wallet Encryption............................................................................................ 9-45
Oracle PKI Implementation Summary ............................................................................. 9-46
Oracle Label Security ....................................................................................................................... 9-47
Oracle Internet Directory................................................................................................................. 9-48
Introduction to Oracle Internet Directory ............................................................................... 9-49
LDAP Compliance ...................................................................................................................... 9-51
How Oracle Internet Directory is Implemented .................................................................... 9-52
How Oracle Internet Directory Organizes Enterprise User Management ......................... 9-53
Enterprise User Administration with Oracle Internet Directory.................................. 9-53
Shared Schemas with Oracle Internet Directory............................................................. 9-53
Oracle Net Services........................................................................................................................... 9-54
Components of Oracle Net Services......................................................................................... 9-54
Oracle Net on the Client ..................................................................................................... 9-54
Oracle Net on the Database Server ................................................................................... 9-54
Oracle Protocol Support ..................................................................................................... 9-55
Oracle Connection Manager .............................................................................................. 9-55
Protocol Conversion..................................................................................................... 9-55
Access Control .............................................................................................................. 9-55
x
Session Multiplexing.................................................................................................... 9-56
Firewall Support with Oracle Net Services............................................................................. 9-56
Firewalls Using Oracle Connection Manager in an Intranet Environment ................ 9-56
Firewalls Using Oracle Net Firewall Proxy in an Internet Environment.................... 9-57
Valid Node Checking in Oracle Net Services......................................................................... 9-58
Database-Enforced VPD Network Access .............................................................................. 9-58
Oracle9i Application Server ........................................................................................................... 9-59
Oracle HTTP Server.................................................................................................................... 9-60
Oracle Portal................................................................................................................................ 9-61
Single Sign-On in Oracle9i Application Server ...................................................................... 9-61
Web SSO Technology.......................................................................................................... 9-61
Login Server ......................................................................................................................... 9-62
LDAP Integration ................................................................................................................ 9-62
PKI Support.......................................................................................................................... 9-62
Multitier Integration ........................................................................................................... 9-63
Oracle Single Sign-On Summary ...................................................................................... 9-63
Index
xi
xii
Send Us Your Comments
Oracle9i Security Overview, Release 2 (9.2)
Part No. A96582-01
Oracle Corporation welcomes your comments and suggestions on the quality and usefulness of this
document. Your input is an important part of the information used for revision.
■ Did you find any errors?
■ Is the information clearly presented?
■ Do you need more information? If so, where?
■ Are the examples correct? Do you need more examples?
■ What features did you like most?
If you find any errors or have any other suggestions for improvement, please indicate the document
title and part number, and the chapter, section, and page number (if available). You can send com-
ments to us in the following ways:
■ Electronic mail: [email protected]
■ FAX: (650) 506-7227 Attn: Server Technologies Documentation Manager
■ Postal service:
Oracle Corporation
Server Technologies Documentation
500 Oracle Parkway, Mailstop 4op11
Redwood Shores, CA 94065
USA
If you would like a reply, please give your name, address, telephone number, and (optionally) elec-
tronic mail address.
If you have problems with the software, please contact your local Oracle Support Services.
xiii
xiv
Preface
xv
Audience
Oracle9i Security Overview is intended for database administrators (DBAs),
application programmers, security administrators, system operators, and other
Oracle users who perform the following tasks:
■ Analyze application security requirements
■ Create security policies
■ Implement security technologies
■ Administer enterprise user security
To use this document, you need general familiarity with database and networking
concepts.
Organization
This document introduces the basic concepts of system security in an Internet
environment. It outlines the data security risks which are prevalent today, and the
industry-standard technologies available to address them. It then presents the
carefully integrated suite of Oracle products you can use to implement these
security technologies.
xvi
Chapter 3, "Protecting Data in a Network Environment"
This chapter explains how data can be protected while being transmitted over a
network. It covers network access control, encryption, Secure Sockets Layer, and
firewalls, as well as security in a three-tier environment.
xvii
Related Documentation
For more information, see these Oracle resources:
■ Oracle9i Database Concepts
■ Oracle9i Application Developer’s Guide - Fundamentals
■ Oracle9i Database Administrator’s Guide
■ Oracle Advanced Security Administrator’s Guide
■ Oracle Internet Directory Administrator’s Guide
■ Oracle Label Security Administrator’s Guide
■ Oracle9i Net Services Administrator’s Guide
■ Single Sign-On Administrator’s Guide
■ Oracle9i Java Developer’s Guide
■ Oracle9i JDBC Developer’s Guide and Reference
■ Oracle Enterprise Manager Concepts Guide
Many books in the documentation set use the sample schemas of the seed database,
which is installed by default when you install Oracle. Refer to Oracle9i Sample
Schemas for information on how these schemas were created and how you can use
them yourself.
In North America, printed documentation is available for sale in the Oracle Store at
http://oraclestore.oracle.com/
Customers in Europe, the Middle East, and Africa (EMEA) can purchase
documentation from
http://www.oraclebookshop.com/
If you already have a username and password for OTN, then you can go directly to
the documentation section of the OTN Web site at
xviii
http://otn.oracle.com/docs/index.htm
Conventions
This section describes the conventions used in the text and code examples of this
documentation set. It describes:
■ Conventions in Text
■ Conventions in Code Examples
Conventions in Text
We use various conventions in text to help you more quickly identify special terms.
The following table describes those conventions and provides examples of their use.
xix
Convention Meaning (Cont.) Example
lowercase Lowercase monospace typeface indicates Enter sqlplus to open SQL*Plus.
monospace executables, filenames, directory names,
The password is specified in the orapwd file.
(fixed-width and sample user-supplied elements. Such
font) elements include computer and database Back up the datafiles and control files in the
names, net service names, and connect /disk1/oracle/dbs directory.
identifiers, as well as user-supplied
The department_id, department_name,
database objects and structures, column
and location_id columns are in the
names, packages and classes, usernames
hr.departments table.
and roles, program units, and parameter
values. Set the QUERY_REWRITE_ENABLED
initialization parameter to true.
Note: Some programmatic elements use a
mixture of UPPERCASE and lowercase. Connect as oe user.
Enter these elements as shown.
The JRepUtil class implements these
methods.
lowercase Lowercase monospace italic font You can specify the parallel_clause.
monospace represents placeholders or variables.
Run Uold_release.SQL where old_
(fixed-width
release refers to the release you installed
font) italic
prior to upgrading.
The following table describes typographic conventions used in code examples and
provides examples of their use.
xx
Convention Meaning Example
... Horizontal ellipsis points indicate either:
■ That we have omitted parts of the CREATE TABLE ... AS subquery;
code that are not directly related to
the example
SELECT col1, col2, ... , coln FROM
■ That you can repeat a portion of the
employees;
code
. Vertical ellipsis points indicate that we
. have omitted several lines of code not
. directly related to the example.
Other notation You must enter symbols other than acctbal NUMBER(11,2);
brackets, braces, vertical bars, and ellipsis
acct CONSTANT NUMBER(4) := 3;
points as shown.
Italics Italicized text indicates placeholders or CONNECT SYSTEM/system_password
variables for which you must supply
DB_NAME = database_name
particular values.
UPPERCASE Uppercase typeface indicates elements SELECT last_name, employee_id FROM
supplied by the system. We show these employees;
terms in uppercase in order to distinguish
SELECT * FROM USER_TABLES;
them from terms you define. Unless terms
appear in brackets, enter them in the DROP TABLE hr.employees;
order and with the spelling shown.
However, because these terms are not
case sensitive, you can enter them in
lowercase.
lowercase Lowercase typeface indicates SELECT last_name, employee_id FROM
programmatic elements that you supply. employees;
For example, lowercase indicates names
sqlplus hr/hr
of tables, columns, or files.
CREATE USER mjones IDENTIFIED BY ty3MU9;
Note: Some programmatic elements use a
mixture of UPPERCASE and lowercase.
Enter these elements as shown.
Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation
accessible, with good usability, to the disabled community. To that end, our
documentation includes features that make information available to users of
assistive technology. This documentation is available in HTML format, and contains
markup to facilitate access by the disabled community. Standards will continue to
evolve over time, and Oracle Corporation is actively engaged with other
xxi
market-leading technology vendors to address technical obstacles so that our
documentation can be accessible to all of our customers. For additional information,
visit the Oracle Accessibility Program Web site at
http://www.oracle.com/accessibility/
xxii
Part I
Security Challenges
Part I explains the wide range of security risks to the integrity and privacy of data.
n Chapter 1, "Data Security Challenges"
1
Data Security Challenges
This chapter presents an overview of data security requirements, and examines the
full spectrum of data security risks that must be countered. It then provides a
matrix relating security risks to the kinds of technology now available to protect
your data. This chapter contains the following sections:
■ Top Security Myths
■ Understanding the Many Dimensions of System Security
■ Fundamental Data Security Requirements
■ Security Requirements in the Internet Environment
■ A World of Data Security Risks
■ A Matrix of Security Risks and Solutions
■ The System Security Team
Database
Servers
Internet Intranet
Application Clients
Clients Web Server
You must protect databases and the servers on which they reside; you must
administer and protect the rights of internal database users; and you must
guarantee the confidentiality of ecommerce customers as they access your database.
With the Internet continually growing, the threat to data traveling over the network
increases exponentially.
To protect all the elements of complex computing systems, you must address
security issues in many dimensions, as outlined in Table 1–1:
Think carefully about the specific security risks to your data, and make sure the
solutions you adopt actually fit the problems. In some instances, a technical solution
may be inappropriate. For example, employees must occasionally leave their desks.
A technical solution cannot solve this physical problem: the work environment
must be secure.
Confidentiality
A secure system ensures the confidentiality of data. This means that it allows
individuals to see only the data which they are supposed to see. Confidentiality has
several different aspects, discussed in these sections:
■ Privacy of Communications
■ Secure Storage of Sensitive Data
■ Authenticated Users
■ Granular Access Control
Privacy of Communications
How can you ensure the privacy of data communications? Privacy is a very broad
concept. For the individual, it involves the ability to control the spread of
confidential information such as health, employment, and credit records. In the
business world, privacy may involve trade secrets, proprietary information about
products and processes, competitive analyses, as well as marketing and sales plans.
For governments, privacy involves such issues as the ability to collect and analyze
demographic information, while protecting the confidentiality of millions of
individual citizens. It also involves the ability to keep secrets that affect the
country’s interests.
Authenticated Users
How can you designate the persons and organizations who have the right to see
data? Authentication is a way of implementing decisions about whom to trust.
Authentication methods seek to guarantee the identity of system users: that a
person is who he says he is, and not an impostor.
Integrity
A secure system ensures that the data it contains is valid. Data integrity means that
data is protected from deletion and corruption, both while it resides within the
database, and while it is being transmitted over the network. Integrity has several
aspects:
■ System and object privileges control access to application tables and system
commands, so that only authorized users can change data.
■ Referential integrity is the ability to maintain valid relationships between
values in the database, according to rules that have been defined.
■ A database must be protected against viruses designed to corrupt the data.
■ The network traffic must be protected from deletion, corruption, and
eavesdropping.
Availability
A secure system makes data available to authorized users, without delay.
Denial-of-service attacks are attempts to block authorized users’ ability to access
and use the system when needed. System availability has a number of aspects:
valuable data, not only to legitimate users, but also to hackers, disgruntled
employees, criminals, and corporate spies.
suppliers, or customers was often entered into the system through inefficient
mechanisms that were prone to error and delay. For example, many companies
accepted the bulk of their orders by phone, letter, or fax, and this information was
typed in by clerks or sales people. Even when electronic data interchange
mechanisms existed, they were typically proprietary and difficult to integrate with
companies’ internal data infrastructure. Now, businesses that allow other
businesses and consumers to submit and receive business information directly
through the Internet can expect to get more timely, accurate, and valuable
information, at less expense than if traditional data channels were used.
Formerly, when information was entered into a business system, it was often
compartmentalized. Information maintained by each internal department, such as
sales, manufacturing, distribution, and finance, was kept separate, and was often
processed by physically separate and incompatible databases and
applications—so-called "islands of information". This prevented businesses from
taking full advantage of the information they already had, since it was difficult for
different departments to exchange information when it was needed, or for
executives to determine the latest and most accurate status of the business.
Companies have found that linking islands of information and consolidating them
where possible, allows users to obtain better information, and to get more benefit
from that information. This makes the information more valuable.
Improving the value of data available to legitimate users generally improves its
value to intruders as well. This increases the potential rewards to be gained from
unauthorized access to that data, and the potential damage that can be done to the
business if the data were corrupted. In other words, the more effective an e-business
system is, the greater the need to protect it against unauthorized access.
Scalability
Security mechanisms for Internet-enabled systems must support much larger
communities of users than systems which are not Internet-enabled. Whereas the
largest traditional enterprise systems typically supported thousands of users, many
Internet-enabled systems have millions of users.
Manageability
Traditional mechanisms for identifying users and managing their access, such as
granting each user an account and password on each system she accesses, may not
be practical in an Internet environment. It rapidly becomes too difficult and
expensive for system administrators to manage separate accounts for each user on
every system.
Interoperability
Unlike traditional enterprise systems, where a company owns and controls all
components of the system, Internet-enabled e-business systems must exchange data
with systems owned and controlled by others: by customers, suppliers, partners,
and so on. Security mechanisms deployed in e-business systems must therefore be
standards-based, flexible, and interoperable, to ensure that they work with others’
systems. They must support thin clients, and work in multitier architectures.
Data Tampering
Privacy of communications is essential to ensure that data cannot be modified or
viewed in transit. Distributed environments bring with them the possibility that a
malicious third party can perpetrate a computer crime by tampering with data as it
moves between sites.
In a data modification attack, an unauthorized party on the network intercepts data
in transit and changes parts of that data before retransmitting it. An example of this
is changing the dollar amount of a banking transaction from $100 to $10,000.
In a replay attack, an entire set of valid data is repeatedly interjected onto the
network. An example would be to repeat, one thousand times, a valid $100 bank
account transfer transaction.
Password-Related Threats
In large systems, users must remember multiple passwords for the different
applications and services that they use. For example, a developer can have access to
a development application on a workstation, a PC for sending e-mail, and several
computers or intranet sites for testing, reporting bugs, and managing
configurations.
Users typically respond to the problem of managing multiple passwords in several
ways:
■ They may select easy-to-guess passwords—such as a name, fictional character,
or a word found in a dictionary. All of these passwords are vulnerable to
dictionary attacks.
■ They may also choose to standardize passwords so that they are the same on all
machines or Web sites. This results in a potentially large exposure in the event
Lack of Accountability
If the system administrator is unable to track users’ activities, then users cannot be
held responsible for their actions. There must be some reliable way to monitor who
is performing what operations on the data.
Multitier Systems
This problem becomes particularly complex in multitier systems. Here, and in most
packaged applications, the typical security model is that of One Big Application
User. The user connects to the application, and the application (or application
server) logs on and provides complete access for everyone, with no auditing and
unlimited privileges. This model places your data at risk—especially in the Internet,
where your Web server or application server depends upon a firewall. Firewalls are
commonly vulnerable to break-ins.
Operating system Encrypt sensitive Stored data encryption Oracle9i Standard Edition and
break-in data Oracle9i Enterprise Edition: Data
encryption
Data is vulnerable at many points in any computer system, and many security
techniques and types of functionality can be employed to protect it. This chapter
provides a systematic introduction to security features that can protect the memory,
files, and processes residing on the server. It contains the following sections:
■ Introduction to Database Security Concepts
■ System and Object Privileges
■ Managing System and Object Privileges
■ Row Level Security
■ Encrypting Data on the Server
■ Database Integrity Mechanisms
■ System Availability Factors
■ Secure Configuration Practices
System Privileges
System privileges allow users to perform a particular systemwide action or a
particular action on a particular type of schema object. For example, the privileges
to create a tablespace or to delete the rows of any table in the database are system
privileges. Many system privileges are available only to administrators and
application developers because the privileges are very powerful.
Database Roles
Privileges enable users to access and modify data in the database. Database roles
are named groups of privileges relating to a specific job function that are granted to
users or other roles. Because roles allow for easier and better management of
privileges, privileges are normally granted to roles and not to specific users. You
can selectively enable or disable the roles granted to a user. This allows specific
control of a user’s privileges in any given situation. For example, you can protect
role use with a password. Applications can be created specifically to enable a role
when supplied the correct password; that way, users cannot enable the role if they
do not know the password.
The following properties of roles allow for easier privilege management:
■ Reduced granting of privileges: Rather than explicitly granting the same set of
privileges to many users, a database administrator can grant the privileges for a
group of related users to a role. The database administrator can then grant the
role to each member of the group.
■ Dynamic privilege management: When the privileges of a group must change,
only the privileges of the role need to be modified. Security domains of all users
who are granted the group role automatically reflect the changes made to the
role.
■ Selective availability of privileges: The roles granted to a user can be selectively
enabled (available for use) or disabled (not available for use). This allows
specific control of a user's privileges in any given situation.
Users
Privileges to Privileges to
execute the execute the Application Privileges
ACCTS_PAY ACCTS_REC
application application
Global Roles
Global roles are one component of enterprise user security. A global role only
applies to one database, but it can be granted to an enterprise role defined in the
enterprise directory. Although a global role is managed in a directory, its privileges
are contained within a single database—the database in which it is defined.
You define the global role locally in the database by granting privileges and roles to
it, but you cannot actually grant the global role to any user or to any other role in
the database. When an enterprise user attempts to connect to the database, the
directory is queried to obtain any global roles associated with the user.
Enterprise Roles
An enterprise role is a directory structure which can contain global roles on
multiple databases, and which can be granted to enterprise users. By storing and
a user invokes the procedure, the procedure executes with the privileges of the
procedure's owner. Users who have only the privilege to execute the procedure (but
not the privileges to query, update, or delete from the underlying tables) can invoke
the procedure, but they cannot manipulate table data in any other way.
Figure 2–2 shows an example of a view called staff derived from the base table
emp. Notice that the view shows only five of the columns in the base table.
Base EMP
Table EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7329 SMITH CLERK 7902 17–DEC–88 300.00 800.00 20
7499 ALLEN SALESMAN 7698 20–FEB–88 300.00 1600.00 30
7521 WARD SALESMAN 7698 22–FEB–88 5.00 1250.00 30
7566 JONES MANAGER 7839 02–APR–88 2975.00 20
View STAFF
EMPNO ENAME JOB MGR DEPTNO
7329 SMITH CLERK 7902 20
7499 ALLEN SALESMAN 7698 30
7521 WARD SALESMAN 7698 30
7566 JONES MANAGER 7839 20
While e-businesses do not typically have label data classification systems, they
almost always have data labeling requirements. For example, an e-business may
differentiate between Company Confidential information and Public information.
Further, there may be some Company Confidential information that can be shared
with partners, under a Confidential Disclosure Agreement or other legal document,
while other information is only accessible by certain groups within the company
(such as Finance or Sales divisions). The ability to natively manage labeled data is a
tremendous advantage for e-businesses in providing the right information to the
right people at the right level of secure data access.
Note that the RC4 encryption algorithm is a stream cipher, and therefore not
suitable for encryption in the database. It is useful for network encryption.
This chapter explains how data can be protected while being transmitted over a
network. It contains these sections:
■ Introduction to Data Protection in a Network Environment
■ Protecting Data During Transmission
■ Ensuring Security in Three-Tier Systems
Encryption Algorithms
Table 3–1 lists encryption algorithms that have become industry standard for the
encryption and decryption of data.
Firewalls
To eliminate potential weak points in the network infrastructure, you may opt to
pass data from protocol to protocol without the complexity of decryption and
re-encryption. To do so securely, you must have some way to securely transfer data
across network protocol boundaries.
The Internet enables you to connect your corporate intranet to a broad public
network. Although this capability provides enormous business advantages, it also
entails risk to your data and your computer system. One way of protecting the
privacy and integrity of your system is to place a firewall between the public
network and your intranet.
A firewall is a single point of control on a network, used to prevent unauthorized
clients from reaching the server. It acts as a filter, screening out unauthorized
network users from using the intranet. It does this by enforcing access controls
based on the contents of the packets of data being transmitted, and can thus protect
against attacks on individual protocols or applications. Firewalls are rule-based.
They have a list of rules that define which clients can connect, and which cannot.
They can compare the client's host name or IP name with the rules, and either grant
the client access, or not.
Strong Authentication
Having a central facility authenticate all members of the network (clients to servers,
servers to servers, users to both clients and servers) is one effective way to address
the threat of nodes on a network falsifying their identities. Strong authentication
can also be established by using two-factor authentication: the combination of
something a user knows (such as a PIN), and something the user has (such as a
token card).
Strong authentication has important advantages:
■ More choices of authentication mechanism are available, such as smart cards,
Kerberos, or the operating system.
■ Many network authentication services, such as Kerberos and DCE, support
single signon. This means that users have fewer passwords to remember.
■ If you already use some external mechanism for authentication, then there may
be less administrative overhead to use that mechanism with the database as
well.
This section describes the following strong authentication methods that can be used
in a distributed environment:
■ Kerberos and CyberSafe
■ RADIUS
■ Token Cards
■ Smart Cards
■ Distributed Computing Environment (DCE)
■ Biometrics
■ PKI and Certificate-Based Authentication
RADIUS
The RADIUS protocol (Remote Authentication Dial-In User Service) is an industry
standard protocol adopted by authentication vendors as a common communication
method. RADIUS provides user authentication, authorization and accounting
between a client and an authentication server. It has been implemented by almost
all organizations enabling users to access the network remotely. Enterprises have
standardized on RADIUS because of its widespread acceptance in the industry, its
flexibility, and its ability to centralize all user information in order to ease and
reduce the cost of user administration. From the user’s perspective, the entire
authentication process takes place seamlessly and transparently.
Token Cards
Token cards provide a two-factor method of authenticating users to the database. To
gain access, a user must possess the physical card, and must know the password.
Token cards (SecurID or other RADIUS-compliant cards) can improve ease of use
through several different mechanisms. Some token cards dynamically display
one-time passwords that are synchronized with an authentication service. The
server can verify the password provided by the token card at any given time by
contacting the authentication service. Other token cards have a keypad and operate
on a challenge-response basis. In this case, the server offers a challenge (a number)
that the user enters into a token card. The token card provides a response (another
number cryptographically derived from the challenge) that the user enters and
sends to the server.
Token cards provide the benefits described in Table 4–1:
Smart Cards
A RADIUS-compliant smart card is a credit card-like hardware device. It has
memory and a processor and is read by a smart card reader located at the client
workstation. Smart cards provide the benefits described in Table 4–2:
Biometrics
Biometric solutions are another means of achieving strong authorization. In this
approach, a physical characteristic such as a fingerprint or voice is used to identify
and authenticate an individual.
Oracle 8i
Server
Wallet
SSL to login Proxies user identity
Application
Server
Wallet
Get roles
from LDAP
and log in
user
Oracle
Internet
Directory Wallet
Single Signon
Intranet users are commonly required to use a separate password to authenticate
themselves to each server they need to access in the course of their work. Multiple
passwords, however, present several problems. Users have difficulty keeping track
of different passwords, tend to choose poor ones, and tend to record them in
obvious places. Administrators must keep track of a separate password database on
each server and must address potential security problems arising from the fact that
passwords are routinely and frequently sent over the network.
Single signon (SSO) does away with these problems. It enables a user to log in to
different servers using a single password to obtain authenticated access to all
servers she is authorized to access. It eliminates the need for multiple passwords. In
addition, it simplifies management of user accounts and passwords for system
administrators.
You can implement SSO in different ways, as described in the following sections:
■ Server-Based Single Signon
■ Middle Tier Single Signon
Many security advantages can be had by centralizing in a directory the storage and
management of user information such as identity, credentials, and other attributes.
This chapter describes how to protect a directory, and how access can be controlled
using a directory.
■ Introduction
■ Centralizing Shared Information with LDAP
■ Securing the Directory
■ Directory-Based Application Security
Introduction
Administrators today must manage complex user information, keeping it current
and secure. These tasks become all the more challenging with increased use of
technology and a high user turnover in enterprises. For example, in a typical
enterprise, each user can have multiple accounts on different databases. This means
too many passwords for users to remember, and too many accounts for
administrators to manage. Consequently, users write down their passwords, make
them easy to remember (and easy for someone else to guess), or choose the same
password for all accounts.
Administrators must manage multiple accounts for every user. As a result, they
devote significant resources to user administration. Common information used by
multiple applications—such as username, user’s office location and phone number,
and system privileges—is often fragmented across the enterprise, leading to data
that is redundant, inconsistent, and expensive to manage.
There are security problems as well. For example, any time a user leaves a company
or changes jobs, his privileges should change the same day in order to guard
against misuse of his old or unused accounts and privileges. However, in a large
enterprise, with user accounts and passwords distributed over multiple databases,
an administrator may not be able make all the changes as expeditiously as good
security requires.
Enterprise user security management must address these user, administration, and
security challenges. The best way is to centralize storage and management of
user-related information in an LDAP-compliant directory service such as Oracle
Internet Directory. Then, when an employee changes jobs, the administrator needs
to modify information in only one location—the directory. This centralization
lowers the cost of administration and makes the enterprise more secure.
To gain all these advantages of security directory integration, you must first ensure
that the directory itself is secure. This involves:
■ Secure connections to the directory on the part of the user and the administrator
■ Access controls on the directory itself
Once your directory has been secured, other applications in an enterprise or hosted
environment can take advantage of all these features. They can use the directory for
administrative delegation, and control access to application metadata.
Authorization of Users
In this case, the directory stores access control policies that external applications
then read and enforce. When a user tries to perform an operation by using an
application, the application verifies that the user has the correct authorization to
perform the operation.
Authorization of Administrators
In this case, the directory serves as the trusted point of administration for all
application-specific access control polices. To govern who can administer the access
control policies of specific applications, you set access control policies at the
directory level for these applications. Then, when a user attempts to change an
application-specific access control policy, the directory verifies that the user has the
correct authorization to make that change.
Figure 5–1 shows the relationship between directory access control and the
application-specific access control mechanisms in a hosted environment.
Directory Store
Enforced by Directory
Directory Access Service
Control Policies Instance
Govern
Administrative
Control Over
Application
Policies Stored
in the Directory
Application 1 Application 2
Application 1 Application 2
(by consulting the Enforced by Enforced by (by consulting the
authorization authorization
service) service)
Accessed Accessed
Through Through
Figure 5–2 illustrates the various domains and the roles associated with them in the
directory.
• Directory
Administrator
• Subscription Users
Administrator • Service Provider
• Subscription User
Helpdesk Administrator
Apps
Subscriptions
• App1 Administrator
• App1 Helpdesk App1 Users
App2 • Subscriber
Subscriber Subtree User
Administrator
• User Security
Administrator
Service Provider Administrative Domain
Entire Directory
This chapter describes the elements which make up a strong enterprise user
management facility.
■ Introduction
■ Enterprise Privilege Administration
■ Shared Schemas
■ Password-Authenticated Enterprise Users
■ Enterprise Roles
■ Multitier Authentication and Authorization
■ Single Sign-On
Introduction
Most organizations, whether eBusinesses or not, face daunting obstacles in user
management. Users within an organization often have far too many user accounts, a
problem exacerbated by the growth in web-based self-service applications. Every
other week, users have a new user account and password to remember.
Organizations that want data access and accountability by user do not want the
administrative nightmare of managing users in each database a user accesses.
This problem is compounded for web-facing, eBusiness applications. An
organization opening its mission-critical systems to partners and customers does
not want to create an account for each partner in each database the partner accesses,
yet privilege and accountability for each partner is highly desired. Powerful,
enterprise user management tools are necessary to meet these needs.
Shared Schemas
A shared schema (also known as a schema-independent user) is a database user
whose identity is maintained in a central LDAP repository. When a
schema-independent user connects to the database, the database queries the
directory to determine if the user is registered there, and if so, to what database
schema the user should be mapped, and what roles the user should obtain.
Suppose, for example, that there are 500 users of an application, who require access
to data on several database servers in the enterprise. Instead of maintaining 500
different user accounts on each database, Oracle9i allows the system administrator
to create a single shared schema (such as HRAPPUSER for the HR application),
with appropriate privileges, on each database, and then create 500 enterprise users
in an Oracle Internet Directory. When they connect to any specific database, these
users are mapped to the appropriate schema on the database (such as
HRAPPUSER), and inherit the privileges associated with the schema, as well as any
additional privileges that are associated with the roles granted to them in the
directory. Although these users share a common schema, individual
schema-independent users’ identities are associated with their sessions by the
database, and are used for access control or auditing purposes. Once created, these
user accounts in LDAP can be used within multiple applications, as well.
The shared schema user feature has a number of benefits. It reduces the
administrative burden associated with managing users in an enterprise, and allows
effective management of much larger communities of users than was previously
possible. Moreover, it can provide a mechanism for integrating user account and
privilege management across tiers in a multitier system, as long as the middle tier
also supports management of user identities and privileges in the directory. In such
a system, new users and their privileges can be registered once in a directory, and
this gives them appropriate access to the middle tier as well as any databases in the
enterprise that they need to access. In the future, it should be possible to build
three-tier systems (such as web storefronts) in which new users can register
themselves with a web server, and the web server then creates an entry for these
users in the directory, giving them access to information in appropriate databases
which pertain to them.
Enterprise Roles
If you have centralized management of user-related information in an
LDAP-compliant directory service, you can store and manage enterprise roles to
determine enterprise users’ access privileges on databases. An enterprise role is a
directory structure which contains global roles on multiple databases, and which
can be granted to enterprise users.
Single Sign-On
A typical user on a corporate intranet has access to a multitude of client
applications. Such a user must remember a username and password for each
application being accessed. From the user's perspective, keeping in mind a myriad
of username and password combinations, and having to re-enter them (for
authentication) each time a different application is accessed, is not efficient. This
may lead to the user maintaining just one username and password for all the
applications to which access has been granted. This is generally not recommended
as sound security practice, because a hacker can choose a number of attack points
within such a framework.
From the application's perspective, such a framework requires the maintenance of
each user's username and password store. This leads to password store redundancy
and non-communication between applications due to the lack of transferable
information regarding the user's roles and privileges (which may be granted on an
enterprise-wide basis).
With single sign-on technology, a user can enter a unique username and password
once. These are subsequently used to automatically authenticate the user to a
number of different client applications without the user having to re-enter a
username, password, or both. The user's roles and privileges are propagated from
one application to another such that he or she is appropriately privileged in the
application being accessed.
Introduction
Any security policy must maintain a record of system activity to ensure that users
are held accountable for their actions. Auditing helps deter unauthorized user
behavior which may not otherwise be prevented. It is particularly useful to ensure
that authorized system users do not abuse their privileges.
Fine-grained auditing can serve as an "early warning system" of users misusing
data access privileges, as well as an intrusion detection system for the database
itself.
Efficient Auditing
Auditing should be implemented efficiently: statements are parsed once for both
execution and auditing, not separately. Also, auditing is implemented within the
server itself, not in a separate, add-on server which may be remotely situated from
the statements which are being executed (thereby incurring network overhead). The
granularity and scope of these audit options allow businesses to record and monitor
specific database activity without incurring the performance overhead that more
general auditing entails. And, by setting just the options of interest, you should be
able to avoid catch-all, and throw-away audit methods which intercept and log all
statements, and then filter them to retrieve the ones of interest.
Customizable Auditing
To record customized information that is not automatically included in audit
records, it is possible to use triggers to further customize auditing conditions and
audit record contents. Database triggers are user-defined sets of PL/SQL or Java
statements, stored in compiled form. While users explicitly execute stored
procedures, database triggers are automatically executed (or "fired") within the data
server based on pre-specified events. A trigger is defined to execute either before or
after an INSERT, UPDATE or DELETE, so that when that operation is performed on
that table, the trigger automatically fires. For example, you could define a trigger on
the EMP table to generate an audit record whenever an employee's salary is
increased by more than 10 percent and include selected information, such as before
and after values of SALARY.
Introduction
This section presents basic concepts of a Public Key Infrastructure (PKI):
■ Security Features of PKI
■ Components of PKI
■ Advantages of the PKI Approach
Components of PKI
The main components of a public key infrastructure are:
Other important factors which enable the deployment of PKI include: secure
storage of certificates and keys; management tools to request certificates, access
wallets and administer users; and a directory service acting as a centralized
repository for certificates.
Use of the cryptographic key pair to set up a secure, encrypted channel ensures the
privacy of a message and validates the authenticity of the sender of the message. It
also provides an important benefit: the ability to widely distribute the public key on
a server, or in a central directory, without jeopardizing the integrity of the private
key component of the key pair. This eliminates the need to transmit the public key
to every correspondent in the system.
Each entity that participates in a public key system must have a public/private key
pair. The public key for an entity is published by a certificate authority (CA) in a
user certificate. Then, other entities that want to send it secure information can
encrypt the information with the recipient entity’s public key. Another use for a
public key is for an entity that receives a communication to validate the sender’s
organizational affiliation.
Certificate Authorities
A certificate authority (CA) is a trusted third party which certifies that other
entities--users, databases, administrators, clients, servers--are who they say they
are. When it certifies a user, the certificate authority verifies the user's identity and
grants a certificate, signing it with the certificate authority's private key. The
certificate authority has its own certificate and public key, which it publishes, as
well as a private key, which is securely maintained. Servers and clients use the CA’s
root certificate to verify signatures which the certificate authority has made. A
certificate authority might be an external company that offers certificate services, or
an internal organization such as a corporate MIS department
Certificates
A certificate is like an electronic passport which proves the identity of a user or
device that seeks to access the network. The certificate ensures that the entity's
information is correct and that the public key actually belongs to that entity. A
certificate is created when an entity's public key is signed by a trusted identity (a
certificate authority). It contains information such as the following:
■ the certificate user’s name
■ an expiration date
■ a unique serial number assigned to the certificate by the CA
■ the user’s public key
■ information about the rights and uses associated with the certificate
■ the name of the certificate authority that issued the certificate
■ the CA’s signature
■ an algorithm identifier that identifies which algorithm was used to sign the
certificate
A trusted certificate, sometimes known as a root key certificate, typically belongs to
a third party entity that is trusted to issue certificates. It is obtained in a secure
manner and, operationally, does not need to be validated for its authenticity each
time it is accessed because it is self-signed. A client or a server can validate that an
entity is who it claims to be by verifying that the entity’s certificate was issued by a
known and trusted certificate authority.
Typically, certificate authorities whom you trust issue the user certificates. Oracle
provides several default trusted certificates, so users do not have to install their
own. These trusted certificates also enable servers to perform SSL authentication to
clients who have wallets containing only trusted certificates.
Clients and servers use these credentials to access secure services, such as SSL,
using public key cryptography. A wallet also represents a storage facility that is
location- and type-transparent once it is opened.
Entrust/PKI Authentication
Entrust Technologies, Inc. is a market-leading provider of Public Key Infrastructure
solutions, through their Entrust/PKI software. Entrust/PKI includes many
products, such as Entrust Profile, which secures users’ PKI credentials, and Entrust
Authority, Entrust’s certificate authority product. Oracle Corporation has modified
its SSL implementation to integrate with Entrust/PKI.
Note that Entrust/PKI is not fully compliant with all relevant PKI standards.
Part III presents the suite of Oracle security products which can meet your data
security requirements.
n Chapter 9, "Oracle9i Security Products and Features"
9
Oracle9i Security Products and Features
This chapter introduces the Oracle products and special features which can protect
your data using the latest security technology.
■ Oracle9i Standard Edition
■ Oracle9i Enterprise Edition
■ Oracle Advanced Security
■ Oracle Label Security
■ Oracle Internet Directory
■ Oracle Net Services
■ Oracle9i Application Server
Integrity
Oracle9i contains many mechanisms to ensure the integrity of the database, and to
provide concurrency, serializability of transactions, and to prevent data corruption.
The access control mechanisms that enforce mandatory access control are also used
to prevent unauthorized modification and deletion of data by users.
Data Integrity
Oracle9i provides data integrity through the use of declarative entity and referential
integrity constraints as defined in the ISO/ANSI SQL standards. Integrity rules are
specified declaratively as part of the table definition, and are checked by the
database server whenever transactions update, insert, or delete rows in the table.
Defining and enforcing these rules in the server ensures that all applications
consistently and reliably apply the same rules, which can be maintained centrally.
Enforcement in the server also provides performance benefits over programmatic
enforcement in the application.
More complex business rules can be enforced through the use of stored procedures
and triggers. However, these mechanisms are not normally used to enforce entity,
referential, or transaction integrity.
Database integrity mechanisms also guarantee that all steps in a transaction are
committed as a complete unit, so that either all parts are committed or all parts are
rolled back (transaction integrity).
Referential Integrity
Referential integrity constraints are used to enforce dependencies and relationships
between rows in tables. An example of this occurs when an employee’s department
number in the EMP table (foreign key) must be a valid department as specified in
the DEPT table (primary key). Primary key/foreign key relationships are defined as
part of table creation.
Privileges
Oracle9i regulates all user access to data through privileges. It supports the concept
of least privilege, which states that users should be granted the least number of
privileges necessary to perform their jobs. Oracle9i enforces this concept by not
automatically granting users any direct privileges when they are created. It
supports both column-level and row-level privileges. Column-level privileges can
be granted directly, and row-level privileges can be granted programmatically or
through Oracle Label Security. The highly granular system and object privileges of
Oracle9i enable you to grant users only the specific privileges they need, rather than
having to grant them more encompassing privileges.
Roles
Oracle9i has extensive support of roles, to enable administrators to optimally
manage users’ privileges. Oracle9i Standard Edition supports
■ Database roles
■ Global roles
Note that Oracle Enterprise Edition supports additional roles:
■ Enterprise roles
■ Secure application roles
Auditing
Oracle9i permits selective auditing of user actions to provide accountability. Audit
records can also be a useful tool in identification of suspicious user activity.
Auditing can be performed at different levels: by user, by statement, by privilege
(such as SELECT), and by schema object (such as SELECT FROM EMP).
Data Encryption
Among other security technologies, Oracle protects data in eBusiness systems
through strong, standards-based encryption. Oracle has supported encryption of
network data through Oracle Advanced Security (formerly known as "Secure
Network Services", and then "Advanced Networking Option") since Oracle7.
Oracle9i also supports protection of selected data by means of encryption within the
database.
To address the need for selective data encryption, Oracle9i provides a PL/SQL
package to encrypt and decrypt stored data. The package, DBMS_OBFUSCATION_
TOOLKIT, supports bulk data encryption using the Data Encryption Standard
(DES) algorithm, and includes procedures to encrypt and decrypt using DES. In
addition to single DES, Oracle’s DBMS_OBFUSCATION_TOOLKIT supports triple
DES (3DES) encryption, in both two and three key modes, for those who demand
the strongest commercial available level of encryption. The toolkit also supports the
MD5 secure cryptographic hash to ensure data integrity, and a random number
generator for generating secure encryption keys.
High Availability
Multiple Oracle9i mechanisms - including resource limits and user profiles, online
backup and recovery, and advanced replication - help provide uninterrupted
database processing and minimize denial of service in order to support today's
on-line transaction processing and decision support environments.
User Profiles
Resource limitation and user profile mechanisms prevent "run-away" queries, or
more deliberate and malicious manipulation of system resources by a particular
user. A user profile is a set of administrator-defined resource limits assigned to a
username; through the use of user profiles, Oracle9i enables the database
administrator to define and limit the amount of certain system resource available to
a user. System resources that can be limited include:
■ Total Connect and Idle Time
■ Total Amount Of Logical Input Or Output
■ Number of Concurrent, Multiple Sessions for Each Username
■ Amount of Memory Used
Advanced Replication
The advanced replication facilities of Oracle9i can be used to increase the
availability of systems by off-loading large scale queries from transaction
processing databases. For example, large tables of customer purchasing data may be
replicated to customer service databases, so that data-intensive queries do not
contend with transactions against the same tables. Advanced replication facilities
can also be useful in protecting the availability of a mission-critical database. For
example, symmetric replication can replicate an entire database to a failover site
should the primary site be unavailable do to a system or network outage. Advanced
replication for both read and write access ensures data consistency; refresh groups
preserve referential integrity and transaction consistency and the table snapshots of
related master tables. For example, customers, orders, order lines are all related, so
could be refreshed as a group.
Data Partitioning
Data partitioning in Oracle9i is a powerful tool for dramatic improvements in the
manageability, performance, and scale of applications deployed using the Oracle9i
data server. Oracle9i permits range partitioning of tables and multiple partitioning
strategies for indexes, providing very large database support, and improves
administrative operations. In the real world, media failure, access balancing for
performance, and table de-fragmentation are just a few of the areas where
partitioning can reduce the impact of a outage or increase availability under high
loads.
Oracle9i with the Partitioning option supports all DML operations in parallel today.
In addition, scans of indexes, export and import of table data, and estimating and
calculating statistics can also be performed in parallel on individual partitions.
Partitions can be loaded individually and in parallel, with or without index
pre-creation. Loading, backup, recovery, computing statistics, and import and
export are all supported for each partition. These can be performed individually
without interfering with operations underway on other partitions. With every
operation available on a partition basis, it is possible to have truly dramatic
performance improvements.
Introduction
The OCI proxy authentication feature was initially released in Oracle8i, and enabled
a database client to set up, within a single database connection, a number of
"lightweight" user sessions, each of which is associated with a different database
user.
In Oracle9i proxy authentication, authentication of the client is supported in the
following ways:
■ Through a database password that is given when the user accesses Oracle9i
proxy authentication
■ Through a distinguished name or X.509 certificate
In Oracle9i this feature is designed so that a specific middle tier can be restricted to
acting on behalf of a specified set of users. Once the middle tier has authenticated
itself to the database, it can establish a lightweight session on behalf of those users
without submitting user-specific authentication information such as passwords.
Moreover, Oracle9i can be configured so that a specific middle tier can assume a
specific set of database roles when acting at the database on behalf of a specific user.
In other words, the database uses both middle tier identity and client user identity
when determining what privileges to grant a middle tier acting for a user through a
lightweight session.
Internet-Scale Security
Internet-scale security enables user and privilege management to scale to hundreds
of thousands of users accessing data. Oracle9i Enterprise Edition is the foundation
for the Oracle Advanced Security features of user management, PKI integration,
and directory-based privilege management.
Security mechanisms must scale to Internet size—support many thousands or
millions of users—and still be practical to administer. Oracle9i provides a number
of security features tailored to building Internet-scale applications, including proxy
authentication, support for Internet standards such as Secure Sockets Layer (SSL)
and relevant public key infrastructure (PKI) standards, Java security, and enterprise
user security.
Application Security
Each database application can have its own security policies. It can have its own
privileges, and one or more database roles that provide different levels of security
when executing the application. The database roles can be granted to user roles, or
directly to specific usernames.
Applications that potentially permit unrestricted SQL statement execution (through
tools such as SQL*Plus) also can have security policies that prevent malicious access
to confidential or important schema objects. In this way you can ensure that users
do not misuse their roles and privileges when they are not actually using the
application.
including Oracle SalesOnline.com and Oracle Portal, use VPD to enforce data
separation for hosting.
In Oracle8i the Virtual Private Database feature provided fine-grained access control
and application context. It secured data in the database by providing security at the
row level, across all applications, by attaching a security policy directly to a table or
view.
Oracle9i expands the Virtual Private Database by adding several new
enhancements:
■ Oracle Policy Manager, a tool to facilitate security policy administration
■ Partitioned fine-grained access control, to ease VPD deployment in
multi-application and hosted environments
■ Global application context, to support application user models
■ VPD support for synonyms
Figure 9–1 Virtual Private Database: Customers see Only Their Own Orders
Database
user
user
SELECT * FROM ORDERS
SELECT * FROM ORDERS
The Virtual Private Database ensures that, no matter how a user gets to the data
(through an application, a report writing tool, or SQL*Plus) the same strong access
control policy is enforced. In this way, VPD can help banks ensure that customers
see their own accounts (and nobody else’s), that telecommunications firms can keep
customer records safely segregated, and that human resources applications can
support their complex rules of data access to employee records.
These fine-grained access control capabilities also apply when a synonym is used
for the database name. Policy functions applied to a synonym can create the same
constraints formerly imposed by creating views, without the costs in resources and
processing that otherwise grow proportionately with the number of users.
Internet Directory. These organizations also wish to centralize the information about
users that is used for access control. Application context attributes can be stored in
the directory and assigned to one or more enterprise users. They can be retrieved
automatically upon login for an enterprise user, and used to initialize an application
context.
business partners has three types of users: Gold, Silver, and Bronze, representing
different levels of information available. Instead of each user having his own
session—with individual application contexts—set up, the application could set up
global application contexts for Gold, Silver or Bronze and use the client identifier to
point the session at the correct context, in order to retrieve the appropriate type of
data. The application need only initialize the three global contexts once, and use the
client identifier to access the correct application context to limit data access.
Fine-Grained Auditing
Oracle9i expands upon the existing robust, granular auditing capabilities of the
database by introducing extensible, fine-grained auditing. Fine-grained auditing
enables organizations to hone their auditing capabilities to capture and identify
particular, specific data access of concern. In addition to providing more granular,
targeted audit information, such as detecting misuse of legitimate access,
fine-grained auditing can also serve as an intrusion detection system for the
Oracle9i database itself.
Fine-grained auditing enables organizations to define audit policies, which specify
the data access conditions that trigger the audit event, and use a flexible event
handler to notify administrators that the triggering event has occurred. For
example, an organization may permit HR clerks to access employee salary
information, but audits access when salaries greater than $500K are accessed. The
audit policy "where SALARY > 500000" is applied to the EMPLOYEES table through
an audit policy interface (a PL/SQL package named DBMS_FGA).
Class Execution
In the Oracle9i JVM implementation, the right to execute code in classes is
controlled by execute privileges on the classes themselves. This is the same database
privilege as execute privilege on a PL/SQL package, and is managed in the same
way.
SecurityManager Class
The Oracle9i JVM starts with the class java.lang.SecurityManager installed. The
Oracle9i database is based on the Java Developer’s Kit 1.2 release from Sun
Microsystems, and implements the security features of that release. In this
implementation, permissions are controlled by the contents of a database table. The
table is normally managed by PL/SQL procedures (and Java methods). The table
can be used to grant permissions to either users or roles, and the "code source" of a
class is identified with the user in whose schema the class has been loaded. Specific
Oracle permissions control the right to update the table and perform other security
sensitive operations.
Client Application
OCI
Two-Task
Common
Oracle Protocols
Network Specific
Protocols
To Network
Oracle Advanced Security supports authentication through adapters that are very
much like the existing Oracle protocol adapters.
Note: The U.S. government has relaxed its export guidelines for
encryption products. Accordingly, Oracle can now ship Oracle
Advanced Security with its strongest encryption features—to
virtually all of its customers around the world.
Oracle Advanced Security comes out of the box with industry-standard algorithms
and a FIPS-compliant implementation of cryptography, which help to simplify the
often difficult task of implementing encryption. The following industry-standard
encryption algorithms are supported:
Oracle Advanced Security hides the complexity of key management and encryption
from the administrator and the users. Users need only perform a few simple steps
to configure Oracle Advanced Security encryption. You can either use the Oracle
Net Manager graphical user interface tool to select encryption algorithms, or else
manually set six sqlnet.ora parameters. Once configured, the encryption is
transparent to users.
Very little overhead is associated with Oracle Advanced Security encryption.
Performance varies (depending on the operating system, the encryption algorithm
JDBC-OCI Driver Since the JDBC-OCI driver uses the full Oracle Net Services
communications stack on both client and server, it can take advantage of existing
Oracle Advanced Security encryption and authentication mechanisms. In Oracle9i,
proxy authentication has been extended to Java Database Connectivity (JDBC-OCI),
which enables a middle tier server to access the Oracle9i database on behalf of a
client user by establishing a lightweight session for the user.
Thin JDBC
Because the thin JDBC driver is designed to be used with downloadable applets
used over the Internet, Oracle9i includes a 100% Java implementation of Oracle
Advanced Security encryption and integrity algorithms for use with thin clients.
Several benefits enable eBusinesses deploying Oracle and other components to
securely transmit a variety of information over a variety of channels:
■ Data encryption for privacy of communications
■ Data integrity checking to safeguard against data modification, replay, and
eavesdropping
■ Secure connections from thin JDBC clients to the Oracle9i database
■ Ability for developers to build applets that transmit data over a secure
communication channel
■ Secure connections from Oracle9i databases to older versions of Oracle
Advanced Security-enabled databases
■ Secure connections from middle tier servers with Java Server Pages (JSP) to the
Oracle RDBMS
The Oracle JDBC Thin driver implements the Oracle password protocol for
authentication. It does not support Oracle Advanced Security SSL implementation,
nor does it support third party authentication features such as RADIUS or Kerberos.
The Oracle JDBC-OCI driver supports all Oracle Advanced Security features.
Oracle Advanced Security continues to encrypt and provide integrity checking of
Oracle Net Services traffic between Oracle Net Services clients and Oracle servers
using algorithms written in C. The Oracle Advanced Security Java implementation
for Thin JDBC provides Java versions of the following encryption algorithms:
■ RC4_256
■ RC4_128
■ RC4_56
■ RC4_40
■ DES56
■ DES40
Directory Integration
The Oracle Advanced Security licence includes use of Oracle Internet Directory for
storage of enterprise users, their passwords, their Oracle wallets, and their
enterprise roles. In conjunction with other components of Oracle Advanced
Security, Oracle Internet Directory enables you to accomplish centralized user
management and authorization. Oracle Enterprise Security Manager is provided to
create user entries in the directory, and manage authorizations for those users.
Oracle Advanced Security also supports the Microsoft Active Directory.
Trusted Certificates
A trusted certificate is a third-party identity that is trusted. The trust is used when
an identity is being validated as the entity it claims to be. Typically, the certificate
authorities you trust issue user certificates. If there are several levels of trusted
certificates, a trusted certificate at a lower level in the certificate chain does not need
to have all its higher level certificates re-verified. Oracle Advanced Security
automatically installs trusted certificates from VeriSign, RSA, Entrust, and GTE
CyberTrust.
Oracle Wallets
An Oracle wallet is a container in which certificates and trusted certificates are
stored and managed, such that there is no need for real time checking with the
certificate authority. These data structures securely store a user private key, a user
certificate, and a set of trusted certificates (the list of root certificates which the user
trusts).
attribute-level access control, enabling the directory to restrict read, write, or update
privileges on specific attributes to specific named users (for example, an enterprise
security administrator). It also supports protection and authentication of directory
queries and responses through SSL encryption.
GRADE 600
RATE ROW LABEL
Manager 600 UNCLASSIFIED
Senior 400 UNCLASSIFIED
User session label Director 750 HIGHLY_SENSITIVE
is UNCLASSIFIED Principal 600 SENSITIVE
Senior 450 SENSITIVE
This product enables an administrator to add label based access control to the
access mediation process when standard access controls are insufficient. Oracle
Label Security is built on the Virtual Private Database toolkit and requires no
programming whatsoever. It mediates access to rows in database tables based on a
label contained in the row, a label associated with each database session, and Oracle
Label Security privileges assigned to the session. Oracle Label Security delivers a
data dictionary and administrative tools you can use to construct valid labels, set
user label authorizations and privileges, and apply the resulting Oracle Label
Security policy to tables and schemes.
The Oracle Virtual Private Database toolkit and Oracle Label Security provide very
useful mechanisms for hosting and exchanges. Virtual Private Database provides
fine grained access control within the database. It can be configured to keep data
from different organizations separate within a single database instance, so that
organizations can share database tables but only see data which pertains to them.
This makes it ideal for hosting, since a system administrator for a hosting company
can set up and configure a single version of each application for which they provide
hosted services, but use Virtual Private Database on the underlying application
tables to provide separate virtual applications instances for each hosted customer.
This can substantially reduce the costs associated with hosting. Because hardware,
database, and applications instances can be shared, the costs associated with
hardware, as well as installation and configuration of software, are lower than if
physically separate instances were required for each hosted customer.
LDAP Compliance
The Lightweight Directory Access Protocol (LDAP) has been incorporated into the
Oracle Internet Directory. Oracle Internet Directory is probably the most scalable
LDAP directory. It leverages the intrinsic scalability of the Oracle9i database,
simplifying the management of hundreds of thousands of users. LDAP Naming,
along with support for the Oracle Internet Directory centralized directory service
offers clients a new, unified naming mechanism in addition to the above technology.
Oracle Internet Directory implements Version 3 of the Lightweight Directory Access
Protocol (LDAP). This is the emerging Internet standard for directory services. It is
based on the earlier ISO X.500 Directory Access Protocol (DAP) standard, but
simplifies that standard considerably, enabling LDAP to be more efficient,
straightforward, and easier to implement. LDAP is especially suited for deployment
with Internet-centric, "thin-client" applications.
Each LDAP directory server instance looks like the configuration in Figure 9–6.
Oracle Net
Oracle Directory
Server
OID
Listener/ Oracle Net
Dispatcher Listener/
LDAP
Requests Dispatcher
Oracle Net Oracle9i
LDAP Oracle Directory
Clients Server
..
.
Oracle Net
Oracle Directory
Server
Oracle Advanced Security can integrate with LDAP version 3-compliant directories.
Your Oracle Advanced Security license entitles you to deploy Oracle Internet
Directory for user management as well as authorization storage and retrieval.
LDAP Clients
Directory
Administration Oracle
Directory
LDAP over SSL Server
Oracle Net
Connections
Oracle9i
Database
Protocol Conversion
As a protocol converter, Oracle Connection Manager enables a client and an Oracle
database server that have different networking protocols to communicate with each
other. Oracle Advanced Security is fully supported by Oracle Connection Manager,
making secure data transfer a reality across network protocol boundaries. Clients
and a database server configured with different network protocols can securely
share data with one another. To eliminate potential weak points in the network
infrastructure and to maximize performance, Connection Manager passes
encrypted data from protocol to protocol without the cost and exposure of
decryption and re-encryption.
Access Control
As an access control filter, Oracle Connection Manager controls access to Oracle
databases. It can be configured to grant or deny clients access to a particular
database service or a computer. By specifying filtering rules on source, destination,
and database service name, you can permit or restrict specific clients access to a
server.
Session Multiplexing
In its session multiplexing role, Oracle Connection Manager funnels multiple
sessions through a single transport protocol connection to a particular destination.
This reduces the demand on resources needed to maintain multiple sessions
between two processes by enabling the Oracle database server to use fewer
connection end points for incoming requests. You can thus increase the total
number of network sessions that a server can handle. To increase the number of
concurrent users, multiple instances of Oracle Connection Manager can be installed.
When Oracle Connection Manager is run on the same computer as an application
Web server, the application Web server can route multiple client sessions through
Oracle Connection Manager to ensure that those sessions have continuous access to
an Oracle database server. This functionality is especially useful for Web
applications where session availability and response time are major concerns.
Figure 9–8 Intranet Network Access Control with Oracle Connection Manager
Client
Intranet Web
Browser
Departmental
Firewall
Client
Intranet Web
Browser
Acess is denied
to this Client
Web
Intranet Browser
Demilitarized Corporate
Zone (DMZ) Network
Application
Gateway
Internet Intranet
Databases
Clients
Further, the policy function can be defined to permit access to data only if the IP
address is within the range of acceptable values (such as inside the corporate
intranet, or within the range of addresses reserved for the HR department).
In the case of proxy authentication, in which the IP address of the client connection
is the IP address of the application server that initiated the lightweight session, you
can effectively force users to access the database only through the application
server. Specifically, the VPD policy function can use the USERENV naming context
SYS_CONTEXT('userenv', 'ip_address')
to enforce that no records are returned unless the IP address matches that of the
application server.
Note that this does not prohibit users from connecting directly to the database, as
long as they are properly authenticated. Rather, it merely restricts the records
returned to them. Using valid_node checking is actually a better general way to
control user access, since it directly restricts connection to the database to particular
IP addresses.
The secure application role can also use the USERENV naming context (that is, SYS_
CONTEXT('userenv', 'ip_address')) to permit the enabling of roles only
when connecting from a particular IP address.
Policies can be used on views, achieving a far lower cost in dictionary processing.
Policies can also be used on synonyms, enabling applications that rely on
synonymsto achieve better security by using VPD.
Oracle Portal
Oracle Portal is a key component of Oracle Corporation’s product offering in the
"Enterprise Portal" category. This is an emerging class of products which provide a
gateway to business-related information on corporate intranets, in the same way
that Internet portals are the gateway to content on the Internet.
Enterprise portals, as a both a consolidation and extension of existing market
spaces, is a logical market for Oracle Corporation, which has a strong technology
base, a wide range of applications which manage critical business data
(ERP/CRM/BI), and a framework which leverages the technology to bring the
applications together with other datastores on the Intranet (Oracle Portal). The
functionality built into Oracle Portal provides a common framework across
multiple Oracle products and applications. A customer who has purchased "portal
enabled" Oracle products can easily extend them to other uses in an incremental
fashion, as dictated by business needs and priorities.
Two types of applications are supported by Web SSO. Partner applications are those
which work within the SSO framework and rely on the SSO service for
authentication of users. External applications continue to use their own usernames
and passwords. The Oracle Web SSO approach is based on cookies, which are
created both by partner applications and a centralized server called the Login
Server.
Login Server
The core of Oracle Corporation’s SSO technology is the Login Server. This product
provides web-based single sign-on and integration with legacy applications. With
single sign-on, the Login Server authenticates users, and passes their identity
securely to partner applications. The Login Server prompts users for a username
and password when they access the system for the first time in a given time period
(usually a day), and verifies the password presented by the user. Login Server SSO
uses cookies, which are formatted pieces of information stored on a browser client
by a web server. Cookies permit web servers to store and retrieve information about
the client user, effectively maintaining client state information in the otherwise
stateless web environment. Cookies are supported by all current browsers, although
they can be disabled by the user (in which case Login Server will not provide SSO).
LDAP Integration
Oracle Login Server permits SSO usernames and passwords to be verified using
Oracle Internet Directory. When a user submits an SSO username and password to
the Login Server as part of the initial authentication, the Login Server performs an
LDAP-bind against the Oracle Internet Directory using this username and
password. If the LDAP-bind succeeds, the SSO username and password is
considered to be verified.
PKI Support
PKI authentication is beginning to replace passwords in many applications. In
web-based applications, PKI authentication is typically performed through an
exchange of X.509 certificates, as part of a Secure Sockets Layer (SSL) session
establishment. PKI by itself can be used to provide SSO, since a user with a
certificate can authenticate to multiple applications without entering a password. In
the future, users will be able to authenticate to the Login Server by means of PKI.
This will provide SSO both to web-based applications supported by Login Server,
and other PKI-enabled applications.
Multitier Integration
The Login Server provides SSO for web client access to web servers. Web servers
are increasingly being deployed as the middle tier in a three tier architecture, where
they provide access to a back-end tier database. It is desirable that users who access
web applications that require access to the database not have to supply a database
username and password for access to data stored there. Although the Login Server
does not support non-web based applications, the Oracle database includes features
specifically designed to support secure access to databases through three-tier
architectures.
Index-1
Baltimore Technologies, 9-34 E
biometric authorization, 4-7, 9-37
encryption
algorithms, 2-11, 3-5
C for network transmission, 3-4, 9-27
certificate authorities, 9-34 stored data, 2-10, 9-6
introduction, 8-5 enterprise roles, 2-5, 9-53
certificates enterprise user security
contents, 8-6 features, 9-39
introduction, 8-5 global roles, 2-5
support for multiple, 9-45 graphical user interfaces, 9-40
trusted, 8-6, 9-42 introduction, 6-1, 6-2
X.509 Version 3, 8-7 privilege administration, 6-3
checksums, 9-29, 9-49 enterprise users
algorithms, 3-6 password authenticated, 6-5, 9-40
SSL, 9-29 Entrust certificates, 9-42
confidentiality, 1-5 Entrust Profile, 9-35
connection Entrust/PKI authentication, 8-8, 9-35
management, 9-55
multitier, 3-3 F
connection pooling, 4-9, 9-18
credentials failover, 9-8
secure storage, 8-8 Federal Information Processing Standard 140-1
CyberSafe ActiveTrust, 4-4 (FIPS), 9-24
CyberSafe authentication, 4-4, 9-36 fine-grained access control
facilitating VPD, 9-19
per-user, 9-20
D fine-grained auditing, 7-3, 9-21
data firewalls, 3-7, 9-56, 9-57
deep data protection, 9-12
encryption of stored, 2-10 G
Data Encryption Standard (DES), 2-11, 3-5, 9-6,
9-28 GTE CyberTrust certificates, 9-42, 9-43
database links
current user, 9-41 H
DBMS_OBFUSCATION_TOOLKIT, 9-6
hashing, password, 5-6
directory security
administrative roles, 5-12
application security, 5-8, 9-41 I
domains and roles, 5-10 integrity
discretionary access control (DAC) checking, 3-6
least privilege, 9-4 database mechanisms, 2-11, 9-3
Distributed Computing Environment (DCE) described, 1-6
authentication, 4-7, 9-38 directory, 9-49
entity integrity enforcement, 9-3
Index-2
Oracle Advanced Security features, 9-29 Oracle Internet Directory, 9-43
referential, 2-11, 9-3 security features, 5-4
Internet server instance architecture, 9-51
access control, 9-57 single sign-on, 9-39
data access increased, 1-9 lightweight sessions, 4-9
hosted system security, 1-11, 9-13 Login Server, 4-11
increased data availability, 1-9
large user communities, 1-10
scalability of security, 1-10, 9-13
M
security challenges, 1-8 MD4 hashing scheme, 5-6, 9-50
security features, 9-12 MD5 Checksum, 3-6, 5-6, 9-6, 9-29, 9-49
security requirements, 1-8 Microsoft Active Directory, 9-41
multitier systems
auditing, 7-4, 9-23
J authentication, 6-5
Java proxy authentication, 4-8, 9-10
class execution, 9-23 security, 3-8
security implementation, 9-23 single sign-on, 4-11
Java Database Connectivity (JDBC)
application user proxy authentication, 9-11
encryption, 9-31
N
JDBC-OCI driver, 3-9, 9-10, 9-30 network security
network security, 3-8 database enforced, 3-4
supported drivers, 9-30 encryption, 3-4
Thin driver, 3-9, 9-31 firewalls, 3-7
Java Secure Socket Extension (JSSE), 9-32 Java Database Connectivity (JDBC), 3-8
Java virtual machine (JVM), 9-23 managing privileges, 2-7
java.lang.SecurityManager, 9-23 multitier connection management, 3-3
Oracle Advanced Security features, 9-27
PKI, 8-9
K Secure Sockets Layer, 3-6
Kerberos authentication, 4-4, 9-36 valid node checking, 3-3
Kerberos Single Sign-On, 4-4 VPD database enforced access, 9-58
L O
label based access control Oracle Advanced Security, 9-24, 9-26
introduction, 2-9 authentication, 9-33
Oracle Label Security, 9-47 PKI implementation, 9-42
LDAP Oracle Call Interface (OCI)
application security, 5-8 JDBC driver, 9-10
compliance, 9-51 JDBC-OCI driver, 3-9
delegation of administration, 5-8 PKI, 9-42
directory access controls, 5-7 Oracle Connection Manager, 3-3
introduction, 5-3 firewall support, 9-57
Index-3
firewalls, 9-56 system, 2-2
security features, 9-55 views to manage, 2-7
Oracle Enterprise Login Assistant, 9-35, 9-43 profiles
Oracle Enterprise Security Manager, 9-41, 9-44, user, 9-6
9-45 protocol conversion, 9-55
Oracle Internet Directory, 9-43 proxy authentication, 3-8, 4-8, 9-9
architecture, 9-52 application user, 9-11, 9-18
components, 9-50 directory, 9-10
enterprise user administration, 9-53 expanded credential, 9-10
security benefits, 9-49 Kerberos and CyberSafe, 9-36
security features, 9-48 proxy authorization, 4-8
Oracle Java SSL, 9-32 Public Key Certificate Standard #12 (PKCS#12), 8-8
Oracle Label Security, 9-20, 9-47 Public Key Certificate Standards (PKCS), 9-34
Oracle Net Firewall Proxy, 9-57 public key infrastructure (PKI)
Oracle Net Services, 9-27 advantages, 8-3
protocol support, 9-55 authentication, 4-7, 9-34
security features, 9-54 authentication methods, 8-7
Oracle Password Protocol, 9-32 certificate-based authentication, 8-5
Oracle Policy Manager, 9-20 components, 8-3, 9-42
Oracle Wallet Manager, 8-8, 9-32, 9-35, 9-43, 9-45 cryptography, 8-4
Oracle wallets, 9-43 interoperability, 9-44
Oracle9i Application Server introduction, 8-1
SSL encryption, 9-30 network security, 8-9
Oracle Advanced Security, 9-42
Oracle implementation, 9-46
P security features, 8-2
partitioning, 9-19 single sign-on, 8-9
virtual private database (VPD), 9-19 supported vendors, 9-34
passwords
authentication, 4-2
authentication of enterprise users, 6-5, 9-40 R
protection in directory, 5-6, 9-50 RADIUS protocol
security risks, 1-13 authentication, 4-4, 9-36
PKCS #12 containers, 9-45 smart cards, 9-37
PKCS#10 certificates, 9-43 supported vendors, 9-36
policy function, 9-59 RADIUS-compliant smart cards, 4-6
privacy of communications, 1-5 RADIUS-compliant token cards, 4-5
privileges RC4 encryption algorithm, 2-11, 3-5, 9-28
enterprise administration, 6-3 Real Application Clusters
least, 9-4 availability, 9-8
managing, 2-3 referential integrity, 9-3
network facilities, 2-7 replication, advanced, 9-7
roles to manage, 2-4 resource limitation, 9-6
schema object, 2-2, 2-3 roles
stored procedures to manage, 2-6 database, 2-4
Index-4
directory administration, 5-12 hosted systems, 1-11
enterprise, 2-5, 6-5 integrity, 1-6
global, 2-5 Internet, 1-8, 1-10, 9-12, 9-13
managing privileges, 2-4 Java Beans, 9-25
secure application, 2-6 Java implementation, 9-23
secure application role, 9-21 label based access control, 2-9
types of, 9-5 LDAP features, 5-4
row level security multitier systems, 1-15, 3-8
introduction, 2-8 myths, 1-2
RSA certificates, 9-42, 9-43 network, 9-27
RSA Data Security RC4, 3-5, 9-28 Oracle Advanced Security, 9-24
RSA SecurID tokens, 9-37 Oracle Internet Directory, 9-48
Oracle Label Security, 9-47
Oracle Net Services, 9-54
S Oracle9i Enterprise Edition, 9-12
scalability Oracle9i Standard Edition, 9-2
security, 1-15, 9-18 password protection, 1-13, 5-6
schema objects personnel dimension, 1-4
privileges on, 2-3 physical dimension, 1-4
secure application roles, 2-6, 9-21, 9-59 PKI, 8-1
Secure Hash Algorithm (SHA), 3-6, 5-6, 9-29, 9-49 privileges, 2-2
Secure Sockets Layer (SSL), 9-42 procedural dimension, 1-4
authentication, 8-7, 9-35 requirements, 1-15
checksums, 9-29 row level, 2-8
encryption, 9-29 scalability, 1-15, 9-18
network security, 3-6 scope of issues, 1-3
Oracle Internet Directory, 9-49 secure application role, 9-21
single sign-on, 9-43 security directory integrity, 5-2
SecurID token cards, 9-37 shared schemas, 6-4
security single sign-on, 4-10, 6-6
administration team, 1-18 strong authentication, 4-3
application, 9-13 technical dimension, 1-4
application context, 9-16 threats and countermeasures, 1-12, 1-16
application user proxy authentication, 9-18 virtual private database (VPD), 2-9
auditing, 7-2 SecurityManager class, 9-23
availability, 1-7, 2-12 sessions
credentials, storage, 8-8 lightweight, 4-9
database, 2-2 multiplexing, 9-56
database integrity mechanisms, 2-11 shared schemas
deep data protection, 9-12 Oracle Internet Directory, 9-53
directory authentication, 5-5 security features, 6-4, 9-41
directory-based, 5-8, 9-41 single sign-on
enterprise user, 6-2 Entrust-based, 9-35, 9-39
firewalls, 3-7 implementations, 4-10, 9-38
good practices, 2-13 introduction, 6-6
Index-5
multitier, 4-11 Oracle Label Security, 9-20, 9-47
Oracle Enterprise Login Assistant, 9-43 Oracle Policy Manager, 9-20
PKI, 8-9, 9-38, 9-39 overview, 9-14
server-based, 4-10 user models, 9-20
Single Sockets Layer (SSL)
current user database links, 9-41
smart cards, 4-6, 9-37
W
storage wallets, 9-43
secure credentials, 8-8 encryption, 9-45
secure data, 1-5
stored data encryption, 1-5 X
stored program units
managing privileges, 2-6, 9-5 X.509 Version 3 certificates, 8-7, 9-9, 9-10, 9-34,
9-35, 9-43, 9-45
T
tables
privileges on, 2-3
TCP.EXCLUDED_NODES parameter, 9-58
TCP.INVITED_NODES parameter, 9-58
TCP.VALIDNODE_CHECKING parameter, 9-58
token cards, 9-37
benefits, 4-5
Triple DES (3DES), 2-11, 3-5, 9-6, 9-28, 9-45
U
UNIX hashing scheme, 5-6
user models, 9-20
users
authentication of, 9-4
V
valid node checking, 3-3, 9-58
VeriSign, 9-34, 9-42, 9-43
views
complex and dynamic, 2-9
managing privileges, 2-7, 9-5
virtual private database (VPD), 9-19
application context, 9-17
database enforced network access, 9-58
how it works, 9-15
introduction, 2-9
network security, 3-4
Index-6