32
. TDE(Transparent Data Encryption) 유니원아이앤씨 DB사업부 20150116문서정보 프로젝트명 TDE ( Transparent Data Encryption ) 서브 시스템명 버전 1.0 문서명 TDE ( Transparent Data Encryption ) 작성일 2015-01-16 작성자 DB사업부 이대혁 사원 최종수정일 2015-01-16 문서번호 UNIONE-201407291925-LDH 재개정 이력 일자 내용 수정인 버전 문서배포 이력 발신자 수신자 배포목적 일자 비고 유니원아이앤씨㈜ 데이터 암호화 접근제어 가이드 2014-07-17

TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

.

TDE(Transparent Data Encryption)

유니원아이앤씨 DB사업부 이 대 혁

2015년 01월 16일

문서정보

프로젝트명 TDE ( Transparent Data Encryption )

서브 시스템명 버전 1.0

문서명 TDE ( Transparent Data Encryption ) 작성일 2015-01-16

작성자 DB사업부 이대혁 사원 최종수정일 2015-01-16

문서번호 UNIONE-201407291925-LDH

재개정 이력

일자 내용 수정인 버전

문서배포 이력

발신자 수신자 배포목적 일자 비고

유니원아이앤씨㈜ 데이터 암호화 및 접근제어 가이드 2014-07-17

Page 2: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

2/32

Table of Contents

1 개요 ...................................................................................................................................................... 3

2 테스트 환경 구성 ................................................................................................................................. 3

3 Metalink 참조 문서 ............................................................................................................................. 3

4 이해 및 암호화 알고리즘 .................................................................................................................... 4

4.1 Encryption Key ........................................................................................................................... 4

4.2 TDE 에 사용되는 암호화 알고리즘 ........................................................................................... 4

4.3 TDE 적용 시 주의사항 .............................................................................................................. 4

4.3.1 CPU ................................................................................................................................. 4

4.3.2 Large Table Encryption ..................................................................................................... 4

4.3.3 PASSWORD 관리 ........................................................................................................... 5

4.3.4 Storage Overhead ............................................................................................................ 5

4.4 제약 사항 ................................................................................................................................... 6

5 TDE 설치 여부 확인 ........................................................................................................................... 7

6 Wallet File ........................................................................................................................................... 7

6.1 Wallet File 의 위치 지정 ............................................................................................................ 7

6.2 Wallet 위치조회 및 상태 조회 ................................................................................................... 8

6.3 Master Key 생성 ........................................................................................................................ 8

6.3.1 Master key OPEN 및 CLOSE .......................................................................................... 9

6.4 Column 또는 Tablespace 전체에 대한 암호화 사용 ................................................................10

7 테이블스페이스 암호화 마스터 키 포함 여부 확인 ............................................................................14

8 컬럼을 암호화 마스터키 존재 여부 확인하기 ....................................................................................16

9 TDE 마스터 키 및 전자 지갑 관리 ....................................................................................................16

10 Tool 을 이용한 Wallet 설정 ..............................................................................................................17

10.1 Orapki Tool ................................................................................................................................17

10.1.1 Wallet 생성 .....................................................................................................................18

10.1.2 Wallet Password 변경 .....................................................................................................18

10.1.3 Auto-Login 설정 ..............................................................................................................20

10.2 OWM ( Oracle Wallet Management ) ..........................................................................................22

11 Exp/Imp 와 Expdp/Impdp .................................................................................................................27

Page 3: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

3/32

1 개요 데이터를 암호화 하여 디스크에 저장하는 기법으로 디스크의 도난 및 백업 데이터의 유출 시

데이터를 보호할 수 있습니다.

ORACLE 10gR2 의 New Feature 이며 Enterprise Edition 에서 사용 가능합니다.

ORACLE 10g 에서는 Column 단위의 암호화를 지원합니다.

ORACLE 11g 에서는 Tablespace 단위의 암호화를 지원합니다.

그렇게 때문에 Table, Cluster, Index, Lobs, Table Partition, Index Partition 도 암호화 가능하며

Application 의 변경이 필요하지 않은 것이 가장 큰 장점이라 할 수 있습니다.

2 테스트 환경 구성 O/S : Red Hat Enterprise Linux Server release 5.10 64bit

Memory : 2048 MB

CPU : Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz

Database : Oracle 11.2.0.3 EE

3 Metalink 참조 문서 영문 문서

한글 문서

Page 4: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

4/32

4 이해 및 암호화 알고리즘 4.1 Encryption Key

Master Encryption Key

Master Key 는 Column 또는 Tablespace 에 사용되는 보조키를 암호화 하는데 사용

되는 암호화 키 입니다.

Table Key ( 10g – Column 단위 )

Database 안의 Data Dictionary 에 저장되며 암호화된 테이블에 대하여 Master Key 와

함께 데이터를 암복호화 하는데 사용됩니다.

Tablespace Key ( 11g – Tablespace 단위 )

11g 부터는 Encryption Key 가 각 Tablespace Header 안에 저장이 되어 데이터 암복호

화에 사용이 됩니다.

4.2 TDE 에 사용되는 암호화 알고리즘

암호화에 대한 국제표준을 준수하는 Algorithms 을 사용하고 있습니다.

Algorithm Key Size Parameter Name

Triple DES ( Data Encryption Standard ) 168 bits 3DES168

AES ( Advanced Encryption Standard ) 128 bits ( 11gR2 default – tablespace ) AES128

AES 128 bits ( 10gR2 default – Column ) AES192

AES 256 bits AES256

4.3 TDE 적용 시 주의사항

4.3.1 CPU 11g : 평균적 5~8 % 사이의 Overhead 발생( 전반적인 퍼포먼스는 실제로 11g > 10g)

10g : Column 암복호화 과정에서 5% 의 overhead 가발생. Column 수나 access 획수에 비례하

기도 합니다.

4.3.2 Large Table Encryption Size가 큰 Table 에 관해서 Column 암호화의 경우 redo log size 증가 시켜주어야 합니다.

인덱스가 걸려잇는 상태에서의 Column 암호화는 상당한 시간이 소요됩니다.

Page 5: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

5/32

Index 제거 후 No Salt 옵션과 함게 암호화, Index 를 새로 생성해 주어야 합니다.

새로 만들어진 index 는 암호화 된 값에 의해서 생성이 됩니다.

4.3.3 PASSWORD 관리 Wallet 또는 Wallet Password 를 분실하게 되면 암호화된 데이터는 Access 가 불가하므로 물리

적인 Wallet File 의 백업과 Wallet Password 관리가 반드시 필요합니다.

4.3.4 Storage Overhead TDE 컬럼 암호화로 발생한 Storage Overhead 는 암호화된 각 값에 대해 1 ~ 52 bytes 사이입

니다.

Colomn 암호화(10g) 는 일반 데이터보다 공간을 조금더 사용합니다.

AES 경우 최대 16bytes, 3DES일 경우 8bytes 정합성 체크를 위한 20bytes가 추가적으로 필

요합니다.(nomac 파라미터 이용시 제외) Salt 옵션으로 암호화 했을 경우 16bytes 가 더 필요하

므로 결론적으로 최대 발생할 수 있는 스토리지 오버헤드는 각 암호화된 value 당 52bytes 가

됩니다.

11g : Tablespace 암호화는 Storage Overhead 가 없습니다.

Overhead 발생 요소

1. 다음 16 bytes 또는 8 bytes 에 대해 채워 넣기로 발생한 Storage Overhead 는 데이터를 암호

화하는데 사용된 알고리즘에 따라 다릅니다. AES 는 Key 크기 (192, 256 등) 에 상관없이

128 bit (128 / 8 = 16 Bytes) 의 블록 크기를 사용하므로 최대 16 Bytes 채워넣기를 사용합니

다.

즉, 원래 값 크기가 16 Bytes 의 배수인 경우에도 16 Bytes Block 을 하나 더 추가하게 됩니

다.

이렇게 되면 “최악의 경우” 입니다. 동일한 논의는3DES 에 적용되지만 이 경우 Block 의 크

기는 8 Bytes 입니다. 이 채워넣기 8 Bytes 또는 16 Bytes Overhead 는 Mandatory (반드시 수

행) 입니다.

2. 무결성 검사에 대한 20 Bytes Overhead. 이는 OPTIONAL 입니다

( 이 옵션 대신 ‘NOMAC’ 옵션 사용 )

3. Column 을 암호화 하는데 ‘SALT’ 가 사용되는 경우 16 Bytes Overhead. 이는 OPTIONAL 입

니다. ( 이 옵션 대신 ‘NO SALT’ 옵션 사용 )

Page 6: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

6/32

4.4 제약 사항

동일한 서버에 여러 데이터베이스가 설치되어 있는경우 각각의 Encryption Key 를 생성 후 사용

서로 공유하여 사용할 경우암호화 된 데이터 손실 유발 우려가 있기 때문에 Oracle 에서는 지원하지 않

습니다.

Column Encrytion 제약 ( 10g ~ 11g )

① B-tree 가 아닌 Index 유형 ( Function , Domain, Join INDEX 등 ) 생성 불가

② Index 를 통한 Range Scan 불가 ( 동등 비교 연산자를 통한 스캔만 가능 )

③ External Table(BFILE) : oracle_datapump drver 로만 가능

④ TTS(Transportable Tablespace) 지원불가

⑤ PK 를 참조하는 FK 키 Column 지원 불가 ( ORA-28335 )

⑥ 암호화 Column 을 Partition Key, Cluster Key 로 사용할 수 없습니다.

⑦ LOB(BLOB/CLOB) 지원 불가

⑧ SYS 스키마 Object Column ( ORA-28336 ) 지원 불가

⑨ Export / Import Util ( Expdp / impdp 사용권장 ) STREAMS 사용 불가

⑩ Advanced Queuing 사용 불가

⑪ Advanced Replication 사용 불가

⑫ Logical standby Database 사용 불가

⑬ Logminer 에 의한 해석은 가능, 암호화 Column 은 “Unsupported Type” 라고 표시됩니다.

⑭ 비 스칼라 Type ( Object Type, 유저 정의 Type, Varray, REF 등 ) 지원 불가

⑮ 암호화시 Salt 옵션을 부여 시 Index 생성 불가능

Tablespace Encrytion 제약 및 변경 사항 ( 11gR1 이상 )

① 모든 table, cluster, index, LOB, table 및 index partition 등을 지원 가능

② SYSTEM, SYSAUX, UNDO, TEMP tablespace 는 암호화 불가능합니다.

③ Exp 불가능 , Imp 는 부분적 가능 ( Expdp/Impdp 권장 )

암호화가 되어있지 않은 10gR2 또는 이전 버전 Export 후 암호화 되어있는 11g 로 import는

가능합니다. ( 마지막 단락인 11항목 참조하시길 바랍니다. )

④ Bitmap Index 사용 가능

⑤ Index 를 통한 Range Scan 가능

⑥ LOB datatype 가능합니다.

⑦ TTS 가능 ( Source 쪽에서 Wallet Key 를 Copy 해 가져가야 하기 때문에 Target Database에서

는 TDE 를 사용하지 않고있어야만 가능합니다. Cross-endianism 은 불가능

Page 7: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

7/32

5 TDE 설치 여부 확인 SQL> select PARAMETER , VALUE from v$option where parameter='Transparent Data Encryption';

PARAMETER VALUE

---------------------------------------------------------------- ----------------------------------------------------------------

Transparent Data Encryption TRUE

6 Wallet File Encryption (암호화) 와 Decryption(복호화) 를 수행하는 Master Key 를 저장하고 있습니다.

Database 와 별도의 공간에 저장하여 허가된 사용자만 접근 가능하도록 합니다.

6.1 Wallet File 의 위치 지정

Defautlt 는 $ORACLE_BASE/ADMIN/<SID>/WALLET 에 생성 됩니다.

경로가 존재하지 않거나 Platform 에 따라 파일 위치를 지정하지 않았을 경우

ORA-28368 발생, Bug 4956266 존재

$ORACLE_HOME/network/admin/sqlnet.ora 파일에 명시가 가능합니다.

ENCRYPTION_WALLET_LOCATION =

(SOURCE = (METHOD = FILE)

(METHOD_DATA =

(DIRECTORY = /u01/oracle/wallet)

)

)

Page 8: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

8/32

6.2 Wallet 위치조회 및 상태 조회

SQL> set linesize 200

SQL> set pages 500

SQL> select wrl_parameter , status from v$encryption_wallet ;

WRL_PARAMETER STATUS

-------------------------------------------------- ------------------

/u01/oracle/ wallet CLOSED

v$encrytion_wallet 뷰를 통하여 sqlnet.ora 에 지정된 경로와 동일 하게 설정 되어있는지를 확인

할 수 있으며 WalletFile의 Default 위치는 $ORACLE_BASE/admin/<global_db_name>/wallet 으

로 지정이 되있으며 명시적으로 위치 지정을 해주지 않을 경우 ORA-28368 : cannot auto-create

wallet 이 발생 합니다.

6.3 Master Key 생성

아래의 패스워드 생성은 최초 생성 시에만 사용해야 하는 점을 유의하셔야 합니다.

아래와 같은 문장으로 패스워드를 변경 할 경우에는 기존의 암호화 되었던 테이블을 사용할 수

없게 됩니다.

큰따옴표가 사용되지 않는 경우 비밀번호의 문자는 모두 대문자가 됩니다.

이 명령은 새 전자 지갑을 열어 사용할 수 있는 상태로 생성합니다.

TDE에 대한 새 전자 지갑을 생성할 수 있는 유일한 적합한 방법이며 Oracle Wallet Manager

또는 명령행 툴 orapki를 사용하여 처음으로 TDE 전자 지갑을 생성할 수 없습니다.

새 마스터 키가 생성되며 전자 지갑에 기록됩니다. 새로 생성된 이 마스터 키는 활성 마스터

키가 됩니다.

Page 9: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

9/32

”oracle” 부분은 “wallet_password”, 즉 암호 설정 부분입니다.

STATUS 부분 OPEN 확인

6.3.1 Master key OPEN 및 CLOSE Database 를 재시작 할 때마다 Master Key 를 아래의 명령어로 Load 해야하며,

Password 가 틀릴 경우 ORA-28353 : Failed to open wallet 에러가 발생합니다.

또한 Wallet 을 OPEN 하지 않고 암호화된 Table 이나 Tablespace 를 조회 할 때는 ORA-

28365 : Wallet is not open 에러가 발생합니다.

혹 Master Key 를 Close 시에는 Auto-login 이 설정 되어있을 경우 패스워드 부분은 생략을 하

여도 됩니다.

10g 에서 11g 로 업그레이드 하였다면 Master Key는 재생성 해야 합니다.

(11gR111gR2도 마찬가지이며 Wallet 경로의 ewallet.p12 파일도 그대로 가져가야 합니다)

Instance Crash 로 인한 recover 가 필요한 경우 redo 와 undo 의 암호화 된 Data 에 대한 접

근성이 필요하므로 Database 가 OPEN 되기 전에 Wallet 이 OPEN 되어야 합니다.

CLOSE 로 에러가 떨어진 부분은 auto-login 이 설정이 안되어서 발생한 에러입니다.

Page 10: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

10/32

만약 설정이 되어있는경우 패스워드 부분을 생략하셔도 가능하며 에러가 떨어지지 않습니다.

다시 OPEN 해 줍니다.

6.4 Column 또는 Tablespace 전체에 대한 암호화 사용

암호화 옵션을 지정하여 테이블을 생성합니다.

기존 테이블의 컬럼을 암호화 합니다. (위에서 생성한 테이블 사용)

1. SALT 옵션

암호화 시에 사용하는 Salt Option은 데이터 보안을 강화하는 방법 중 하나로 임의의 String

으로 암호화 하는 것이며 암호화 할 때 마다 다른 String 패턴으로 암호화가 진행 됩니다.

Salt 옵션을 사용하게 되면 추가적으로 각 데이터 값마다 16bytes 가 필요하며, 인덱스를 사

용할 예정이라면 Salt Option 을 사용해서는 안됩니다.

2. NOMAC Parameter

TDE는 기본적으로 SHA-1 알고리즘을 사용하여 무결성 체크를 합니다.

NOMAC 파라미터를 사용하게 되면 암호화 및 복호화 시에 하는 무결성 체크부분이 빠지면서

Page 11: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

11/32

TDE의 관한 성능 오버헤드를 줄일 수 있습니다.

이 파라미터를 사용하게 되면 각 암호화 된 값보다 디스크 공간이 20 Bytes가 더 필요하게 되

고 이미 SHA-1 알고리즘을 사용하여 Table Column 암호화가 있다면 동일한 Table 의 다른

Column을 NOMAC Parameter 로 암호화를 할 수 없습니다.

<무결성 알고리즘 변경>

SQL> ALTER TABLE test REKEY USING ‘3DES168’ ‘SHA-1’ ;

SQL> ALTER TABLE test REKEY USING ‘3DES168’ ‘NOMAC’ ;

External Table 생성시 암호화

External Table은 오직 Datapump 로 사용할 때 가능하고, External Table을 새로운 위치로 Move 하게 되

면 임의로 생성 된 Encryption Key 를 사용 못하게 됩니다. 그렇기 때문에 컬럼 암호화 시 따로 암호를

지정하여 External Table 이 Move 를 하더라도 엑세스를 가능하게 해주어야 합니다.

SQL> create directory en_dir as ‘/oracle’;

SQL> grant read, write on directory en_dir to scott;

SQL> conn scott/tiger

SQL> create table test_ext

(empno number(10),

Empname varchar2(30),

Page 12: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

12/32

Salary number(10) ENCRYPT USING '3DES168' identified by "oracle123")

ORGANIZATION EXTERNAL

(

TYPE ORACLE_DATAPUMP

DEFAULT DIRECTORY en_dir

LOCATION('TEST_ext.dat')

);

기존 Table의 암호화 Column 을 추가/변경 시

AES192 알고리즘과 Salt, MAC Option 은 default 값으로 Index 를 사용할 예정이라면 NO SALT 옵션을

부여해야 합니다.

1. Column 추가시

SQL> ALTER TABLE test ADD (sales VARCHAR2(11) ENCRYPT no salt 'NOMAC' );

2. Column 변경시

SQL> ALTER TABLE test MODIFY (sales ENCRYPT no salt 'NOMAC' );

SQL> ALTER TABLE test MODIFY (sales ENCRYPT SALT) ;

Page 13: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

13/32

3. 암호화 Column을 제거시

SQL> ALTER TABLE test MODIFY (sales DECRYPT) ;

4. 암호화 Column에 대한 Encryption Key 와 알고리즘 변경시

- Encryption Key 변경시

SQL> ALTER TABLE test REKEY ;

- 암호화 알고리즘 변경시

SQL> ALTER TABLE test REKEY USING ‘3DES168’ ;

암호화된 테이블 스페이스를 생성합니다.

중요 : 암호화되지 않은 기존 테이블 스페이스 암호화는 할 수 없습니다.

전체 Tablespace 에서 데이터를 암호화 해야하는 경우 암호화된 새 테이블스페이스를

생성한 후 기존 테이블 스페이스에서 새 테이블 스페이스로 데이터를 이동해야 합니다.

Page 14: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

14/32

7 테이블스페이스 암호화 마스터 키 포함 여부 확인 v$encrypted_tablespace 의 MASTERKEYID 는 base64 형식으로 저장됩니다.

전자 지갑 내에서 사용되는 형식으로 ID 를 가져오려면 다음 질의를 실행해야 합니다.

select utl_raw.cast_to_varchar2( utl_encode.base64_encode('01'||substr(masterkeyid,1,4))) ||

utl_raw.cast_to_varchar2( utl_encode.base64_encode(substr(masterkeyid,5,length(masterkeyid))))

FROM v$encrypted_tablespaces;

TEST 버전은 11gR2 버전이므로 01 을 사용했지만 11gR1 일 경우 05 로 바꿔주어야합니다.

위의 질의로 가져온 문자열을 전자 지갑의 ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY 값과

비교해야 합니다.

마지막의 노란색으로 표기된 구절은 현재의 마스터 키 입니다.

Page 15: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

15/32

Tablespace Key 는 다음 질의를 사용하여 가져올 수도 있습니다.

SQL> select t.name, RAWTOHEX(x.mkid) from v$tablespace t, x$kcbtek x where t.ts#=x.ts# ;

해당 값은 16진수 형식의 Key ID 입니다.

16진수 문자열은 전자 지갑의 콘텐츠와 비교할 수 있도록 BASE64 문자열로 변환할 수도 있습

니다.

SQL> select utl_raw.cast_to_varchar2( utl_encode.base64_encode

('01'||substr('4072FDF269FC4F90BF29E02FEDEDD9C2',1,4))) ||

utl_raw.cast_to_varchar2( utl_encode.base64_encode

(substr('4072FDF269FC4F90BF29E02FEDEDD9C2',5,length

('4072FDF269FC4F90BF29E02FEDEDD9C2'))))

masterkeyid_base64 FROM dual;

BASE64 형식의 키 ID 입니다.

Page 16: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

16/32

8 컬럼을 암호화 마스터키 존재 여부 확인하기 SQL> select MKEYID from enc$ where obj# in (select object_id from dba_objects where

object_type='TABLE' and object_name='TEST' and owner='SCOTT');

이 후 마스터 키 ID가 전자지갑에 존재하는지 여부를 파악합니다.

9 TDE 마스터 키 및 전자 지갑 관리 전자 지갑은 중요한 구성 요소이며 안전한 위치 (데이터베이스 백업이 저장되는 위치와 다른

위치) 에 백업해야 합니다.

마스터 키가 포함되어 있는 전자 지갑이 없어졌거나 비밀번호를 잊어버린 경우 암호화된 데이

터에 더 이상 액세스할 수 없습니다.

전자 지갑이 다음 시나리오에서 백업되었는지 확인하십시오

① 전자 지갑을 생성한 직후.

② 마스터 키를 다시 생성했을 때

③ 데이터베이스를 백업할 때. 전자 지갑 백업이 데이터베이스 백업과 동일한 위치에 저장되지

않았는지

④ 전자 지갑 비밀번호를 변경하기 전

확인하십시오

Page 17: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

17/32

필요한 경우 전자 지갑 비밀번호를 Oracle Wallet Manager 내에서 변경하거나 orapki를 사용하는

다음 명령을 사용(11.1.0.7부터 시작)하여 변경할 수 있습니다 ( 아래 사진 참조 )

$ orapki wallet change_pwd –wallet <wallet_location>

Oracle은 전자 지갑 파일을 $ORACLE_BASE 디렉토리 외부에 저장하여 기타 Oracle 파일과

동일한 위치에 백업하지 않도록 할 것을 권장합니다

또한 이 디렉토리 및 전자 지갑 파일에 대한 액세스를 제한하여 우발적인 제거를 방지하는 것

이 좋습니다. 전자 지갑 파일에 대한 액세스를 제한하는 데 권장되는 방법이 아래에 나와 있습

니다.

$ cd /etc

$ mkdir –pv oracle/wallets/<$ORACLE_SID>

$ chown –R oracle:oinstall oracle

$ chmod –R 700 oracle

전자 지갑을 생성한 후 전자 지갑 파일에 대한 권한 설정을 줄입니다.

Wallet 경로의 ewallet.p12 의 권한을 600 으로 축소

Chmod 600 ewallet.p12

10 Tool 을 이용한 Wallet 설정 10.1 Orapki Tool

Page 18: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

18/32

10.1.1 Wallet 생성 Orapki 를 생성 시 Password 를 미리 기입할 수 있지만, 패스워드는 미리 기입하지 않는 것을

권장 합니다.

$ orapki wallet create -wallet <wallet경로> -pwd <wallet password>

미리 기입하지 말고 패스워드 부분은 밑에서 기재해 주도록 합니다.

10.1.2 Wallet Password 변경 패스워드 변경 후에는 기존 Password 로 wallet 을 Close 한 후 새로운 Password 로 Wallet

을 OPEN 해야 합니다. (11g 에서만 가능합니다.)

$ orapki wallet change_pwd –wallet <wallet경로> -oldpwd “<이전암호>” –newpwd “<바꿀암호>”

기존암호 oracle 에서 새로운 암호 oracle123 으로 변경

SQL> select wrl_parameter, status from v$encryption_wallet ;

OPEN 상태 확인

SQL> alter system set wallet close identified by “oracle” ;

Page 19: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

19/32

기존 Wallet 암호 CLOSE 및 확인

SQL> alter system set encryption wallet open identified by “oracle” ; 기존 암호 오픈

SQL> alter system set encryption wallet open identified by “oracle123” ; 바뀐 암호 오픈

SQL> select * from v$encryption_wallet ; 오픈 상태 확인

바뀐 Wallet 암호로 OPEN 확인 모습, 기존 암호 OPEN 불가

Page 20: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

20/32

10.1.3 Auto-Login 설정

Metalink 문서 ID

데이터베이스 재시작 마다 Master Key 를 수동으로 OPEN 하는 번거로움을 해소하기 위하여

open 설정이 가능합니다.

10g 의 경우 auto-login 설정 후 instance restart 를 하여도 상태는 CLOSE 로 나옵니다.

암호화 테이블에 대해 DDL, DML 을 한 후 상태 체크를 하면 OPEN 다시 변경됩니다.

11g 의 경우 restart 를 하여도 OPEN 유지, wallet 을 Close 하여도 View 에서는 OPEN 상태

Wallet 상태가 Close로 변경이 되더라도 암호화 Table 을 조회시 자동 OPEN 조회 가능합니다.

오라클에서 권장은 하지 않는 방법으로 편리할 수 있으나 후에 wallet 이 open, close 가 잘 되

지 않는 현상이 간혹 발생할 수 있습니다.

orapki 에서 –auto_login 옵션을 사용하여 AUTO_LOGIN 설정

암호화 테이블 생성 후 Insert 데이터 1건 입력

Page 21: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

21/32

Shutdown 후 startup 해줍니다. ( Startup force 도 상관없습니다. )

Close 상태 확인됩니다.

Page 22: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

22/32

Select 조회시 다시 wallet 이 OPEN 으로 변경되신 것을 확인 하실 수 있습니다.

만약 Auto-login 이 설정되어 있지 않은 경우 아래와 같은 에러를 만날 수 있습니다.

auto-login 이 아닐경우 DB restart 후 wallet CLOSE 상태

만약 Auto-login 기능을 제거 시 OWM 을 이용하여 auto-login 기능을 해제해야 합니다.

10.2 OWM ( Oracle Wallet Management ) Wallet 파일을 보다 쉽게 관리하기 위한 GUI Tool 입니다.

Master Key 생성, Auto-login, 패스워드 변경 등 TDE 와 관련된 모든 것들을 이 Tool 하나로 관

리할 수 있기 때문에 보다 편리하게 이용하실 수 있습니다.

1. OWM 실행

$ owm

Page 23: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

23/32

2. Wallet Open

Page 24: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

24/32

상단 wallet 메뉴 클릭 후 OPEN 선택

3. Wallet 경로 설정

Page 25: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

25/32

Wallet 경로 설정

4. Wallet 패스워드 입력

Page 26: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

26/32

Wallet 패스워드 입력 후 좌측 상단에 메뉴가 생긴 것을 확인

5. Auto-login 설정

Page 27: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

27/32

Auto-login 체크 후 SAVE 클릭

11 Exp/Imp 와 Expdp/Impdp Exp 불가능, Imp 부분적 가능하며 expdp/impdp 를 권고하며 그에 대한 테스트를 보여드리도록

하겠습니다.

Scott 유져의 Default Tablespace 를 encryptedtbs 로 지정

Page 28: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

28/32

Object 를 이용해서 데이터 건수 늘리기

Page 29: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

29/32

EXP 테스트

Page 30: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

30/32

Column 뿐만 아니라 Tablespace 역시 Encrypt 는 EXP 가 안되는 것을 확인하실 수 있습니다.

Expdp / Impdp 를 사용하는 경우

$ expdp system/oracle directory=test_dir dumpfile=expdp.dmp logfile=expdp.log schemas=SCOTT

Page 31: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

31/32

ORA-39173 오류가 아닌 단지 메시지 입니다.

암호화 데이터가 덤프파일 안에 저장되었다는 뜻입니다.

덤프파일 확인

$ strings expdp.dmp | more

덤프파일이 암호화 된 것을 확인 하실 수 있습니다.

Page 32: TDE(Transparent Data Encryption)UNIONE]_TDE... · 데이터 암호화 및 2014접근제어 가이드-07 17: ... 4.3 TDE 적용 시 ... AES 경우 최대 16bytes, 3DES일 경우 8bytes

유니원아이앤씨

TDE (Transparent Data Ecryption) 작성자 : 이 대 혁 Version : 1.0 최종수정일 : 2015-02-24

32/32

Dump file 암호화

Encryption_password=”Password” 옵션을 이용하면 암호화 된 table을 암호화 형식의 dump 파일로 받을

수 있습니다.

SQL> expdp scott/tiger schemas=scott directory=test_dir dumpfile=expdp2.dmp logfile=expdp2.log

encryption_password="oracle123"

성공적으로 Expdp 받은 것을 확인 하실 수 있습니다.

$ string expdp2.dmp | more