레이블이 tde인 게시물을 표시합니다. 모든 게시물 표시
레이블이 tde인 게시물을 표시합니다. 모든 게시물 표시

2009년 2월 8일 일요일

TDE Data Dictionary

Tables Data Dictionary Views

The following views allow you to access information about tables.

View Description
DBA_TABLES

ALL_TABLES

USER_TABLES

DBA view describes all relational tables in the database. ALL view describes all tables accessible to the user. USER view is restricted to tables owned by the user. Some columns in these views contain statistics that are generated by the DBMS_STATS package or ANALYZE statement.
DBA_TAB_COLUMNS

ALL_TAB_COLUMNS

USER_TAB_COLUMNS

These views describe the columns of tables, views, and clusters in the database. Some columns in these views contain statistics that are generated by the DBMS_STATS package or ANALYZEstatement.
DBA_ALL_TABLES

ALL_ALL_TABLES

USER_ALL_TABLES

These views describe all relational and object tables in the database. Object tables are not specifically discussed in this book.
DBA_TAB_COMMENTS

ALL_TAB_COMMENTS

USER_TAB_COMMENTS

These views display comments for tables and views. Comments are entered using the COMMENTstatement.
DBA_COL_COMMENTS

ALL_COL_COMMENTS

USER_COL_COMMENTS

These views display comments for table and view columns. Comments are entered using theCOMMENT statement.
DBA_EXTERNAL_TABLES

ALL_EXTERNAL_TABLES

USER_EXTERNAL_TABLES

These views list the specific attributes of external tables in the database.
DBA_EXTERNAL_LOCATIONS

ALL_EXTERNAL_LOCATIONS

USER_EXTERNAL_LOCATIONS

These views list the data sources for external tables.
DBA_TAB_HISTOGRAMS

ALL_TAB_HISTOGRAMS

USER_TAB_HISTOGRAMS

These views describe histograms on tables and views.
DBA_TAB_STATISTICS

ALL_TAB_STATISTICS

USER_TAB_STATISTICS

These views contain optimizer statistics for tables.
DBA_TAB_COL_STATISTICS

ALL_TAB_COL_STATISTICS

USER_TAB_COL_STATISTICS

These views provide column statistics and histogram information extracted from the relatedTAB_COLUMNS views.
DBA_TAB_MODIFICATIONS

ALL_TAB_MODIFICATIONS

USER_TAB_MODIFICATIONS

These views describe tables that have been modified since the last time table statistics were gathered on them. They are not populated immediately, but after a time lapse (usually 3 hours).
DBA_ENCRYPTED_COLUMNS

USER_ENCRYPTED_COLUMNS

ALL_ENCRYPTED_COLUMNS

These views list table columns that are encrypted, and for each column, lists the encryption algorithm in use.
DBA_UNUSED_COL_TABS

ALL_UNUSED_COL_TABS

USER_UNUSED_COL_TABS

These views list tables with unused columns, as marked by the ALTER TABLE ... SET UNUSEDstatement.
DBA_PARTIAL_DROP_TABS

ALL_PARTIAL_DROP_TABS

USER_PARTIAL_DROP_TABS

These views list tables that have partially completed DROP COLUMN operations. These operations could be incomplete because the operation was interrupted by the user or a system failure.

Example: Displaying Column Information

Column information, such as name, datatype, length, precision, scale, and default data values can be listed using one of the views ending with the _COLUMNS suffix. For example, the following query lists all of the default column values for the emp and dept tables:

SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, LAST_ANALYZED
    FROM DBA_TAB_COLUMNS
    WHERE OWNER = 'HR'
    ORDER BY TABLE_NAME;
    

The following is the output from the query:

TABLE_NAME           COLUMN_NAME          DATA_TYPE   DATA_LENGTH LAST_ANALYZED
-------------------- -------------------- ---------- ------------ -------------
COUNTRIES            COUNTRY_ID           CHAR                  2 05-FEB-03
COUNTRIES            COUNTRY_NAME         VARCHAR2             40 05-FEB-03
COUNTRIES            REGION_ID            NUMBER               22 05-FEB-03
DEPARTMENTS          DEPARTMENT_ID        NUMBER               22 05-FEB-03
DEPARTMENTS          DEPARTMENT_NAME      VARCHAR2             30 05-FEB-03
DEPARTMENTS          MANAGER_ID           NUMBER               22 05-FEB-03
DEPARTMENTS          LOCATION_ID          NUMBER               22 05-FEB-03
EMPLOYEES            EMPLOYEE_ID          NUMBER               22 05-FEB-03
EMPLOYEES            FIRST_NAME           VARCHAR2             20 05-FEB-03
EMPLOYEES            LAST_NAME            VARCHAR2             25 05-FEB-03
EMPLOYEES            EMAIL                VARCHAR2             25 05-FEB-03
.
.
.
LOCATIONS            COUNTRY_ID           CHAR                  2 05-FEB-03
REGIONS              REGION_ID            NUMBER               22 05-FEB-03
REGIONS              REGION_NAME          VARCHAR2             25 05-FEB-03

51 rows selected.
http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/tables014.htm#sthref1979 










Transparent Data Encryption Data Dictionary Views


The following data dictionary views maintain information about the encryption algorithms used to encrypt columns:









DBA_ENCRYPTED_COLUMNS
ALL_ENCRYPTED_COLUMNS

Shows the algorithm used to encrypt columns for all tables that are accessible to a particular user.

  • USER_ENCRYPTED_COLUMNS

    Shows the algorithm used to encrypt columns for all tables in a particular user's schema.



ALL_ENCRYPTED_COLUMNS

ALL_ENCRYPTED_COLUMNS displays encryption algorithm information for the encrypted columns in the tables accessible to the current user.

Related Views

  • DBA_ENCRYPTED_COLUMNS displays encryption algorithm information for all encrypted columns in the database.
  • USER_ENCRYPTED_COLUMNS displays encryption algorithm information for the encrypted columns in the tables owned by the current user. This view does not display the OWNER column.
ColumnDatatypeNULLDescription
OWNERVARCHAR2(30)NOT NULLOwner of the table
TABLE_NAMEVARCHAR2(30)NOT NULLName of the table
COLUMN_NAMEVARCHAR2(30)NOT NULLName of the column
ENCRYPTION_ALGVARCHAR2(29) Encryption algorithm used to protect secrecy of data in this column:
  • 3 Key Triple DES 168 bits key

  • AES 128 bits key

  • AES 192 bits key

  • AES 256 bits key

SALTVARCHAR2(3) Indicates whether the column is encrypted with SALT (YES) or not (NO)


To check all encrypted table columns in the current database instance:

In SQL*Plus, select from the DBA_ENCRYPTED_COLUMNS view:

For example:

SELECT * FROM DBA_ENCRYPTED_COLUMNS;

This SELECT statement lists all tables and column in the database that contain columns encrypted using Oracle Transparent Data Encryption. For example:

OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_ALG SALT ----------- ---------- ----------- ---------------- ---- OE CUSTOMERS INCOME_LEVEL AES 128 bits key YES OE UNIT_PRICE ORADER_ITEMS AES 128 bits key YES HR EMPLOYEES SALARY AES 192 bits key YES


V$ENCRYPTION_WALLET

V$ENCRYPTION_WALLET displays information on the status of the wallet and the wallet location for transparent data encryption.

ColumnDatatypeDescription
WRL_TYPEVARCHAR2(20)Type of the wallet resource locator (for example, FILE)
WRL_PARAMETERVARCHAR2(4000)Parameter of the wallet resource locator (for example, absolute filename if WRL_TYPE = FILE)
STATUSVARCHAR2(9)Status of the wallet: OPEN / CLOSED / UNDEFINED

To check whether a wallet is open or closed

You can find out if a wallet is open or closed by running the V$ENCRYPTION_WALLET view.


To check whether a wallet is open or closed:


SELECT * FROM V$ENCRYPTION_WALLET;

The wallet status appears, similar to the following:

WRL_TYPE  WRL_PARAMETER                             STATUS
--------  ----------------------------------------  -------
file      C:\oracle\product\11.1.0\db_1\wallets     OPEN

To check the encrypted columns of an individual table


syntax.

DESC tablename;

For example:

DESC OE.ORDER_ITEMS;

A description of the table schema appears. For example:

Name                                      Null?     Type
----------------------------------------  --------  --------------------------
ORDER_ID                                  NOT NULL  NUMBER(12)
LINE_ITEM_ID                              NOT NULL  NUMBER(3)
PRODUCT_ID                                NOT NULL  NUMBER(6)
UNIT_PRICE                                          NUMBER(8,2)
QUANTITY                                            NUMBER(8) ENCRYPT



Securing Data : http://download.oracle.com/docs/cd/B28359_01/server.111/b28337.pdf
http://download.oracle.com/docs/cd/B28359_01/server.111/b28337/tdpsg_securing_data.htm 

2009년 1월 22일 목요일

ORACLE Transparent Data Encryption [TDE] Reference

먼저 TDE 를 사용하기에 앞서 다음과 같은 이슈가 필요하다.

 1.  Transparent Data Encryption 의 Enabling
 2. 암호화 키를 엑세스 하기위한 Encypted Wallet Open
 3. Master Key 설정 과 재생성
 4. 암호화 컬럼을 포함한 테이블 생성
 5. 암호화 컬럼이 존재하는 테이블에 대한 설정
 6. 암호화 컬럼에 대한 인덱스 사용
 7. 암호화 컬럼에 대한 salt 사용 또는 제거



++ 마스터키 생성 ++

ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY password  // master key create


++ 마스터키 로드 ++

ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY password 

// 마스터 키를 메모리에 로딩한다 이키는 shutdown 되기전까지는 메모리에 상주한다.

++ 마스터키 Close ++

ALTER SYSTEM SET WALLET CLOSE

// 암호화된 컬럼을 Disable 시킨다.

oracle wallert 안에있는 외부 보안 모듈 암호키는 기본적으로 sqlnet.ora 파일에 명시되어있다.
만약 어떤 위치도 지정이 되지 않았다면 오라클은 default 위치를 참조하여 사용한다.

데이터베이스 컬럼을 암호화 하기전에는 반드시 마스터키를 생성하여야 한다.
ENCRYPT cluse 를 포함한 SQL 쿼리를 날렸을때 마스터키에의해 암호화된 암호키가 생성된다.

ALTER SYSTEM SET ENCRYPTION KEY certificate_id IDENTIFIED BY password


certficate_id 는 optional 한 String 값(unique) 을 가지며 보안 모듈에 저장된다.  
V$WALLET 을 이용하여 open 된 certficate_id 를 찾을수있다 .
password는 보안모듈의 패스워드를 설정하며, 만드시 설정해줘야 한다.
password 는 case sensitive 하며, double quotation marks 를 포함한다.

++ 마스터키 재생생 ++

    너무 빈번한 마스터키 재생성은 시스템 보안 향상에 도움이 되지 않는다.
    보안모듈은 큰용량을 저장할수 있지만 무한하지는 않는다.
    빈번한 마스터키 재생성은 사용가능한 스토리지용량을 고갈시킬 우려가 있다.

    ALTER SYSTEM SET ENCRYPTION KEY "j231m781098dhb345dm" IDENTIFIED BY "p3812dG9E";


++ 암호화된 컬럼에 salt 추가 ++

    salt는 암호화된 데이터의 강력한 방법중 하나이다.
    salt는 암호화되기전에 임의의 string 을 데이터에 add 한다.

    ALTER TABLE employee MODIFY  (first_name ENCRYPT SALT);


++ salt 삭제 ++

    ALTER TABLE employee MODIFY (first_name ENCRYPT NO SALT);


++ 암호화된 컬럼을 포함한 테이블의 생성 ++

    테이블을 생성할때는  3가지의 옵션을가진다.

        1. default Algorithm 을 사용하는 암호화된 컬럼의 생성
        2. NON-default Algorithm 을 사용하는 암호화된 컬럼의 생성
        3. 암호화된 컬럼을 External 테이블에 생성

        ** default Algorithm 은 AES192 를 사용한다.

1. default Algorithm 을 사용하는 암호화된 컬럼의 생성
   
    CREATE TABLE employee (
        first_name VARCHAR2(128),
        last_name VARCHAR2(128),
        empID NUMBER,
        salary NUMBER(6) ENCRYPT
        );


2. NON-default Algorithm 을 사용하는 암호화된 컬럼의 생성   

    CREATE TABLE employee (
        first_name VARCHAR2(128),
        last_name VARCHAR2(128),
        empID NUMBER ENCRYPT NO SALT,
        salary NUMBER(6) ENCRYPT USING '3DES168'
        );


3. 암호화된 컬럼을 External 테이블에 생성
    생략

++ 존재하는 테이블에 대한 암호화 ++

    존재하는 테이블에 암호화된 컬럼 추가는 3가지의 옵션은 가진다.

        1. 존재하는 테이블에 암호화된 컬럼을 add

            ALTER TABLE employee ADD (ssn VARCHAR2(11) ENCRYPT);

        2. 존재하는 컬럼에 대한 암호화

            ALTER TABLE employee MODIFY (first_name ENCRYPT);

        3. 암호화된 컬럼에 대하여 Disabling

            ALTER TABLE employee MODIFY (first_name DECRYPT);


   
++ 암호화된 컬럼에 대한 인덱스 생성 ++

    암호화된 컬럼에 대하여 인덱스를 생성하기 위해서는 CREATE INDEX 문을 사용하여야 한다.
    암호화된 컬럼에 인덱스를 생성할경우 반드시 NO SALT 로 지정해야한다.

    CREATE INDEX employee_idx on employee (empID);


++ 암호화키 알고리즘의 변경 ++

    ALTER TABLE employee REKEY;
    ALTER TABLE employee REKEY USING '3DES168';


++ 지원되는 알고리즘의 종류 ++

    Triple DES
    AES128 
     AES192 // default
    AES256


++ 암호화 가능한 DATA TYPE ++

   
   CHAR
    DATE
    INTERVAL DAY TO SECOND
    INTERVAL YEAR TO MONTH
    NCHAR
    NUMBER
    NVARCHAR2
    RAW
    TIMESTAMP
    VARCHAR2


++ Data Dictionary Views ++

    DBA_ENCRYPTED_COLUMNS
    ALL_ENCRYPTED_COLUMNS
    USER_ENCRYPTED_COLUMNS


2009년 1월 21일 수요일

ORACLE Transparent Data Encryption Algorithms [TDE]

1.2.1.1 Supported Encryption Algorithms

Oracle Advanced Security provides the following encryption algorithms to protect the privacy of network data transmissions:


1.2.1.1.1 RC4 Encryption:

The RC4 encryption module uses the RSA Security, Inc., RC4 encryption algorithm. Using a secret, randomly-generated key unique to each session, all network traffic is fully safeguarded including all data values, SQL statements, and stored procedure calls and results. The client, server, or both, can request or require the use of the encryption module to guarantee that data is protected. Oracle's optimized implementation provides a high degree of security for a minimal performance penalty. For the RC4 algorithm, Oracle provides encryption key lengths of 40-bits, 56-bits, 128-bits, and 256-bits.

1.2.1.1.2 DES Encryption :

Oracle Advanced Security implements the U.S. Data Encryption Standard algorithm (DES) with a standard, optimized 56-bit key encryption algorithm and also provides DES40, a 40-bit version, for backward compatibility.

1.2.1.1.3 Triple-DES Encryption :

Oracle Advanced Security also supports Triple-DES encryption (3DES), which encrypts message data with three passes of the DES algorithm. 3DES provides a high degree of message security, but with a performance penalty. The magnitude of penalty depends on the speed of the processor performing the encryption. 3DES typically takes three times as long to encrypt a data block as compared with the standard DES algorithm.

3DES is available in two-key and three-key versions, with effective key lengths of 112-bits and 168-bits, respectively. Both versions operate in outer Cipher Block Chaining (CBC) mode.

1.2.1.1.4 Advanced Encryption Standard:

Approved by the National Institute of Standards and Technology (NIST) in Federal Information Processing Standards (FIPS) Publication 197, Advanced Encryption Standard (AES) is a new cryptographic algorithm standard developed to replace DES. AES is a symmetric block cipher that can process data blocks of 128 bits, using cipher keys with lengths of 128, 192, and 256 bits, which are referred to as AES-128, AES-192, and AES-256, respectively. All three versions operate in outer-CBC mode.


http://download.oracle.com/docs/cd/B19306_01/network.102/b14268/asotrans.htm#sthref205


ORACLE Transparent Data Encryption [TDE] Overview

Transparent Data Encryption

사 용자들은 암호화의 효용성에 대해 엇갈린 반응을 보이곤 합니다. 암호화는 필요한 기술이지만, 키 관리의 복잡성으로 인해 올바르게 설정되지 않은 경우 효율적이지 못한 결과를 초래할 수도 있습니다. 또 대부분의 애플리케이션 설계자들은 키 값의 암호화 및 해독 과정에서 수반되는 성능 오버헤드를 우려합니다. 이러한 이유로 암호화를 적용하지 않는 대신 패스워드, 인증 메커니즘 등의 변경 보안(perimeter protection)을 강화하는 쪽을 선택하는 경우가 많습니다.

하지만, 서버(또는 디스크)를 통째로 훔쳐, 동일한 운영체제에 서버를 마운트하고 데이터에 접근하는 경우를 가정해 볼 수 있습니다. 또는 내부사용자가 업무 수행 과정에서 DBA의 권한으로 데이터베이스에 접근하여 중요한 정보를 빼내는 경우를 생각해 볼 수 있습니다. 미 캘리포니아주에서는, 이와 같은 상황이 발생한 경우, 영향 범위에 있는 모든 고객들에게 보안 침해 사실을 통보하도록 법적으로 규정하고 있습니다 (다른 주에서도 이와 유사한 법안이 발의될 예정입니다).

(흔히 경험할 수 있는 것은 아니지만 결코 무시할 수 없는) 이러한 사고에서는, 인증 메커니즘이 아무런 효과를 갖지 못합니다. 보안이 각별히 중시되는 환경에서 TDE(transparent data encryption)이 중요한 기능으로 활용되고 있는 것도 바로 이 때문입니다. TDE는 복잡한 키 관리 업무를 데이터베이스 엔진 내부에서 수행하는 암호화 기술입니다. 또 DBA는 데이터베이스 테이블의 관리에 필요한 모든 권한을 갖지만, 반면 모든 데이터를 직접 조회할 수는 없도록 통제 가능합니다.

Oracle Database 10g Release 2의 TDE는, 특정 테이블의 하나 또는 그 이상의 컬럼을 쉽게 암호화할 수 있는 기능을 제공합니다. 관리자는 코드를 전혀 작성하지 않고도 컬럼을 암호화 대상으로 정의할 수 있습니다. 암호화는 기본적으로 입력 값을 암호화하기 위한 키(key)와 알고리즘을 필요로 합니다. TDE는 암호화를 위한 키를 자동으로 생성합니다. 이러한 방식은 키 관리를 단순화해 준다는 장점이 있지만 유출의 가능성이 더 높아진다는 단점도 뒤따릅니다. 이러한 문제를 보완하기 위해 또 다른 키(master key)가 데이터베이스 레벨에서 설정됩니다. 테이블 키는 마스터 키와 함께 암호화되며, 따라서 특정 컬럼을 해독하기 위해서는 테이블 키와 마스터 키가 함께 필요합니다. (암호화 기술 및 오라클의 암호화 패키지 구현방식에 대한 자세한 정보는 필자가 기고한 오라클 매거진 기사 ?"Encrypt Your Data Assets- 를 참고하시기 바랍니다.)

마스터 키는 “wallet”이라고 부르는 데이터베이스 외부의 별도 저장소에 저장됩니다. (wallet의 디폴트 위치는 “$ORACLE_BASE/admin/$ORACLE_SID/wallet”으로 정의됩니다.) 그 개념적인 구조가 아래 그림과 같습니다.
TDE가 설정되고 나면 (좀 더 정확히 말해 wallet과 마스터 키가 설정되고 나면), 이 설정을 이용하여 데이터를 보호할 수 있습니다. 테이블의 컬럼을 암호화하려면 아래와 같은 SQL 구문을 사용해야 합니다:
create table accounts
(
acc_no number not null,
first_name varchar2(30) not null,
last_name varchar2(30) not null,
SSN varchar2(9) ENCRYPT USING 'AES128',
acc_type varchar2(1) not null,
folio_id number ENCRYPT USING 'AES128',
sub_acc_type varchar2(30),
acc_open_dt date not null,
acc_mod_dt date,
acc_mgr_id number
)
위 구문에서는 SSN 컬럼과 FOLIO_ID 컬럼에 TDE를 적용하여 두 컬럼의 데이터를 암호화하였습니다. 하지만 사용자가 테이블을 조회하면, 데이터가 인출되는 과정에서 자동으로 해독 작업이 수행되기 때문에 데이터는 일반 텍스트의 형태로 보여지게 됩니다. 하지만 디스크가 도난 당한 경우에는, 테이블 세그먼트에 저장된 정보가 암호화된 상태로 유지되며, 이 값을 해독하기 위해서는 테이블 키가 무엇인지 알아야 합니다. 테이블 키를 얻으려면 마스터 키가 필요하지만, 이 키는 데이터베이스 외부에 존재하므로 해독이 불가능하게 됩니다.

SSN 컬럼과 FOLIO_ID 컬럼에 대한 정의에서 128-비트 AES(Advanced Encryption Standard)를 이용한 ENCRYPT 옵션이 적용되었음을 주목하시기 바랍니다.

데이터베이스의 wallet은 사전 설정되어 있습니다. 이 wallet의 암호를 설정하기 위해서는 아래와 같은 명령을 사용합니다:
alter system set encryption key authenticated BY "topSecret";
이 명령은 기존에 wallet이 존재하지 않는 경우 wallet을 자동생성하고, 암호를 “topSecret”로 설정합니다 (암호는 대소문자를 구별합니다). 이와 같이 설정한 후 테이블의 생성/수정 과정에서 컬럼 별로 암호화 여부를 결정할 수 있습니다.
External Table의 암호화
위 예에서는, 컬럼의 암호화를 위해 해시 테이블(hash table)을 사용했습니다. External table에 대해 TDE를 적용하는 것 또한 가능합니다. 예를 들어 ACCOUNTS 테이블의 데이터를 다른 위치에 덤프하고자 하는 경우, 다음과 같은 간단한 ENCRYPT 구문을 적용하면 됩니다.
create table account_ext
organization external
(
type oracle_datapump
default directory dump_dir
location ('accounts_1_ext.dmp',
'accounts_2_ext.dmp',
'accounts_3_ext.dmp',
'accounts_4_ext.dmp')
)
parallel 4
as
select
ACC_NO,
FIRST_NAME,
LAST_NAME,
SSN ENCRYPT IDENTIFIED BY "topSecret",
ACC_TYPE,
FOLIO_ID ENCRYPT IDENTIFIED BY "topSecret",
SUB_ACC_TYPE,
ACC_OPEN_DT,
ACC_MOD_DT
from accounts;
accounts_*_ext.dmp 파일의 SSN 컬럼 및 FOLIO_ID 컬럼은 암호화된 형태로 저장됩니다. 이 파일을 external table로 활용하고자 하는 경우, 파일을 읽기 위한 패스워드(topSecret)를 제시해야 합니다.

지금까지 설명한 것처럼 TDE는 매우 유용한 액세스 컨트롤 메커니즘으로 활용이 가능합니다.

http://iclickyou.com/1353

- 참고자료 -

http://www.oracle.com/technology/global/kr/products/database/oracle11g/pdf/advanced-security-11g-datasheet_kor.pdf



Overview of Transparent Data Encryption The Oracle database provides security in the form of authentication, authorization, and auditing. Authentication ensures that only legitimate users gain access to the system. Authorization ensures that those users only have access to resources they are permitted to access. Auditing ensures accountability when users access protected resources. Although these security mechanisms effectively protect data in the database, they do not prevent access to the operating system files where the data is stored. Transparent data encryption enables encryption of sensitive data in database columns as it is stored in the operating system files. In addition, it provides for secure storage and management of encryption keys in a security module external to the database. Using an external security module separates ordinary program functions from those that pertain to security, such as encryption. Consequently, it is possible to divide administration duties between DBAs and security administrators, a strategy that enhances security because no administrator is granted comprehensive access to data. External security modules generate encryption keys, perform encryption and decryption, and securely store keys outside of the database. Transparent data encryption is a key-based access control system that enforces authorization by encrypting data with a key that is kept secret. There can be only one key for each database table that contains encrypted columns regardless of the number of encrypted columns in a given table. Each table's column encryption key is, in turn, encrypted with the database server's master key. No keys are stored in the database. Instead, they are stored in an Oracle wallet, which is part of the external security module. Before you can encrypt any database columns, you must generate or set a master key. This master key is used to encrypt the column encryption key which is generated automatically when you issue a SQL command with the ENCRYPT clause on a database column.

See Also: Oracle Database Advanced Security Administrator's Guide for details about using transparent data encryption