Oracle Advanced Security Administrator's Guide
Release 8.1.6

A76932-01

Library

Product

Contents

Index

Prev Next

2
Configuring Data Encryption and Integrity

This chapter covers the following topics:

Oracle Advanced Security Encryption

This section discusses and compares the various encryption algorithms used in both domestic and export editions of Oracle Advanced Security.

The following topics are included in this section:

Domestic and Export Editions

Due to export controls placed on encryption technology, Oracle Advanced Security is available in a domestic edition and an export edition.

Table 2-1 provides a summary of domestic and export algorithms.

Table 2-1 Differences Between Domestic and Export Editions

Domestic Edition contains:  Export Edition contains: 

Diffie-Hellman key negotiation algorithm

MD5 message digest algorithm

The following encryption algorithms:

  • DES40

  • DES

  • RC4_40

  • RC4_56

  • RC4_128

 

Diffie-Hellman key negotiation algorithm

MD5 message digest algorithm

The following encryption algorithms:

  • DES40

  • DES

  • RC4_40

  • RC4_56

 

In certain circumstances, a special license can be obtained to export the domestic version. Special licenses can allow banks, wholly owned subsidiaries of U.S. corporations, and e-commerce venders to obtain the domestic edition. Export and import regulations vary from country to country and change from time to time, so it is important to check on current restrictions in your area.


Note:

Previous releases of Oracle Advanced Security had three versions: domestic, upgrade, and export. The recent relaxation of U.S. government export laws allows Oracle Corporation to ship both 40-bit and 56-bit encryption algorithms in the Oracle Advanced Security 8.1.6 Export Edition and to obsolete the need for an Upgrade Edition containing 56-bit DES. 


DES Algorithm for Standards-Based Encryption

Oracle Advanced Security for international use provides the DES (Data Encryption Standard) algorithm for customers with specialized encryption needs. DES has been a U.S. government standard for many years and is sometimes mandated in the financial services industry. In most specialized banking systems today, DES is the algorithm used to protect large international monetary transactions. Oracle Advanced Security allows this high-security system to be used to protect any kind of application, without any custom programming.

In a secure cryptosystem, the plaintext (a message that has not been encrypted) cannot be derived from the ciphertext (the encrypted message) except by using the secret decryption key. In a symmetric cryptosystem, a single key serves as both the encryption and the decryption key. DES is a secret-key, symmetric cryptosystem: both the sender and the receiver must know the same secret key, which is used both to encrypt and decrypt the message. DES is the most well-known and widely-used cryptosystem in the world.

DES40 Algorithm for Backwards Compatibility

The DES40 algorithm, available in every release of Oracle Advanced Security, Oracle Advanced Networking Option, and Secure Network Services, is a variant of DES in which the secret key is preprocessed to provide 40 effective key bits. It was designed for use by customers outside the U.S. and Canada who wanted to use a DES-based encryption algorithm while there were stronger encryption export laws. Now, in Oracle Advanced Security release 8.1.6, both DES40 and DES are available internationally. DES40 is still supported to ensure backward-compatibility for international customers.

RSA RC4 Algorithm for High Speed Encryption

The RC4 algorithm, developed by RSA Data Security Inc., has quickly become the de-facto international standard for high-speed data encryption. Despite ongoing attempts by cryptographic researchers to crack the RC4 algorithm, the only feasible method of breaking its encryption known today remains brute-force, systematic guessing. RC4 is a stream cipher that operates at several times the speed of DES, making it possible to encrypt even large bulk data transfers with minimal performance consequences.

RC4_128 for Domestic Customers

RC4 is a variable key-length stream cipher. Oracle Advanced Security release 8.1.6 for domestic use offers an implementation of RC4 with a 128 bit key. This provides strong encryption with no sacrifice in performance when compared to other key lengths of the same algorithm.

RC4_40 and RC4_56 for International Customers

Oracle has obtained a special license to export the RC4 data encryption algorithm with a 40-bit or 56-bit key to virtually all destinations where other Oracle products are available. This allows international corporations to safeguard their entire operations with fast, strong cryptography.

Triple-DES Support in SSL

The Oracle Advanced Security Secure Sockets Layer (SSL) feature allows the use of triple-DES (3DES). This form of encryption involves encrypting input data three times, which can occur in a number of ways. A potential drawback of triple-DES, depending on the speed of the communications channel, is that it requires more computing power than regular DES.

More Information:

See Chapter 10 

Oracle Advanced Security Data Integrity

Encryption of network data provides data privacy, so no unauthorized party is able to view the plaintext data as it passes over the network. Oracle Advanced Security also provides protection against two other forms of attack: data modification attack and replay attack.

Types of Attacks

Data Modification Attack

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.

Replay Attack

In a replay attack, an entire set of valid data is repeatedly interjected onto the network. An example would be to repeat a valid bank $100 account transfer transaction several times.

Data Integrity Algorithms Supported

Oracle Advanced Security uses a keyed, sequenced implementation of the MD5 message digest algorithm to protect against both of these forms of active attack. MD5 creates a checksum that changes if the data is altered in any way. This protection is activated independently from the encryption features provided, so you can enable data integrity with or without enabling encryption.

The Oracle Advanced Security SSL feature allows the use of either Message Digest 5 (MD5) or Secure Hash Algorithm (SHA-1) for data integrity.

Diffie-Hellman-Based Key Management

The secrecy of encrypted data depends on the existence of a secret key shared between the communicating parties. Providing and maintaining such secret keys is known as key management. In a multi-user environment, secure key distribution may be difficult; public-key cryptography was invented to solve this problem. Oracle Advanced Security uses the public-key based Diffie-Hellman key negotiation algorithm to perform secure key distribution for both encryption and data integrity.

When encryption is used to protect the security of encrypted data, keys should be changed frequently to minimize the effects of a compromised key. For this reason, the Oracle Advanced Security key management facility changes the session key with every session.

Overview of Site-Specific Diffie-Hellman Encryption Enhancement

Oracle Advanced Security includes the Diffie-Hellman key negotiation algorithm to choose keys both for encryption and for data integrity.

A key is a secret shared by both sides of the connection and by no one else. Without the key, it is extremely difficult to decrypt an encrypted message or to tamper undetectably with a crypto-checksummed message.

Overview of Authentication Key Fold-in Encryption Enhancement

The purpose of Authentication Key Fold-in encryption enhancement is to defeat a possible "person-in-the-middle attack" on the Diffie-Hellman key negotiation. It strengthens the session key significantly by combining a shared secret that is known only to the client and the server with the original session key negotiated by Diffie-Hellman.

The client and the server begin communicating using the session key generated by Diffie-Hellman. When the client authenticates itself to the server, they establish a shared secret that is only known to both sides. Oracle Advanced Security then combines the shared secret and Diffie-Hellman session key to generate a stronger session key that would defeat the person-in-the-middle who has no way of knowing the shared secret.


Note:

The authentication key fold-in encryption enhancement feature is included in Oracle Advanced Security and requires no configuration by the system or network administrator. 


Configuring Data Encryption and Integrity

The following configuration instructions assume that the Net8 network software has already been installed and is running. The network administrator sets up the encryption and checksumming configuration parameters. The profile (sqlnet.ora) on clients and servers using data encryption and integrity must contain some or all of the parameters listed in this section.


Note:

The following instructions demonstrate how to configure Oracle Advanced Security native encryption and integrity. See Chapter 10, "Configuring Secure Socket Layer Authentication," to configure the SSL feature for encryption, integrity, and authentication. 


This section contains the following topics:

Activating Encryption and Integrity

In any network connection, it is possible that both the client and server can support more than one encryption algorithm and more than one cryptographic integrity algorithm. When each connection is made, the server selects which algorithm to use, if any, based on the algorithms specified in the sqlnet.ora files.

When the server is searching for a match between the algorithms it has made available and the algorithms the client has made available, it picks the first algorithm in its own list that also appears in the client's list. If one side of the connection does not specify a list of algorithms, all the algorithms that are installed on that side are acceptable. The connection fails with error message ORA-12650 if an algorithm that is not installed is specified on either side.

Encryption and integrity parameters are defined by modifying a sqlnet.ora file on the clients and the servers on the network.

More Information:

See Appendix A, "Data Encryption and Integrity Parameters"

Negotiating Encryption and Integrity

To negotiate whether to turn on encryption or integrity, you can specify four possible values for the Oracle Advanced Security encryption and integrity configuration parameters. The four values are listed below in the order of increasing security. The value REJECTED provides the minimum amount of security between client and server communications, and the value REQUIRED provides the maximum amount of network security.

The default value for each of the parameters is ACCEPTED.

REJECTED

ACCEPTED

REQUESTED

REQUIRED

Table 2-2 shows whether the security service is enabled based on a combination of client and server configuration parameters. If either the server or client has specified REQUIRED, a lack of a common algorithm causes the connection to fail. Otherwise, if the service is enabled, lack of a common service algorithm results in the service being disabled.

Table 2-2 Encryption and Data Integrity Negotiation


Note:

Encryption is not used when both the client and the server have ACCEPTED set to ON. 


Setting Encryption and Integrity Parameters Using Net8 Assistant

You can enter or change encryption and integrity parameter settings using Net8 Assistant.

This section describes the following tasks:

Configure Encryption on the Client and on the Server

To configure encryption on the client and on the server:

  1. Start Net8 Assistant:

    • On UNIX, run netasst from $ORACLE_HOME/bin.

    • On Windows NT, choose Start > Programs > Oracle - HOME_NAME > Network Administration > Net8 Assistant.

  2. In the navigator's pane, expand Local > Profile.

  3. From the list in the right pane, select Oracle Advanced Security.

    The Oracle Advanced Security tabbed pages appear.

  4. Click the Encryption tab.


  5. Depending on which machine you are configuring, in the Encryption list, select CLIENT or SERVER.

  6. From the Encryption Type list, select REQUESTED, REQUIRED, ACCEPTED, or REJECTED.

    More Information:

    See Appendix A for valid encryption algorithms. 

  7. In the Encryption Seed field, enter between 10 and 70 random characters.

    The encryption seed for the client should not be the same as that for the server.

  8. Select an encryption method in the Available Methods list.

    Move it to the Selected Methods list by clicking the right arrow button [>]. Repeat for each additional method you want to use.

  9. Choose File > Save Network Configuration.

    The sqlnet.ora file updates with the following entries:

    SQLNET.ENCRYPTION_SERVER = [accepted | rejected | requested | required]
    SQLNET.ENCRYPTION_TYPES_SERVER = (valid_encryption_algorithm [,valid_
    encryption_algorithm])
    SQLNET.CRYPTO_SEED = "10-70 random characters"
    
    

    The sqlnet.ora file should contain the following entries for the client:

    SQLNET.ENCRYPTION_CLIENT = [accepted | rejected | requested | required]
    SQLNET.ENCRYPTION_TYPES_CLIENT = (valid_encryption_algorithm [,valid_
    encryption_algorithm])
    SQLNET.CRYPTO_SEED = "10-70 random characters"
    

Configure Integrity on the Client and Server

To configure data integrity on the client and on the server:

  1. Start Net8 Assistant:

    • On UNIX, run netasst from $ORACLE_HOME/bin.

    • On Windows NT, choose Start > Programs > Oracle - HOME_NAME > Network Administration > Net8 Assistant.

  2. In the navigator pane, expand Local > Profile.

  3. From the list in the right pane, select Oracle Advanced Security.

    The Oracle Advanced Security tabbed pages appear.

  4. Click the Integrity tab.


  5. Depending on which machine you are configuring, select the Server or Client check box.

  6. From the Checksum Level list, select one of the following checksum level values: required, requested, accepted, rejected.

  7. Choose File > Save Network Configuration.

    The sqlnet.ora file updates with the following entries:

    SQLNET.CRYPTO_CHECKSUM_SERVER = [accepted | rejected | requested | required]
    SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (crypto_checksum_algorithm)
    

    The sqlnet.ora file should contain the following entries for the client:

    SQLNET.CRYPTO_CHECKSUM_CLIENT = [accepted | rejected | requested | required]
    SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = (crypto_checksum_algorithm)
    


    Note:

    Currently, the only supported crypto-checksum algorithm choice is RSA Data Security's MD5 algorithm. 



Prev Next
Oracle
Copyright © 1999 Oracle Corporation.

All Rights Reserved.

Library

Product

Contents

Index