2017. 5. 17. 16:35

1. 테이블의 컬럼별로 데이터를 암호화 할 수 있다.

2. 인덱스도 암호화 할 수 있으며, 인덱스에 암호화 하더라도 성능의 큰 저하는 없다

(Oracle에서는 Insert시 1.6배, Select시 1.4배의 저하가 생긴다고 함..수치 확인필요)

3. pl-sql로 암호화/복호화의 DDL을 재정의, 혹은 정의 할 필요가 없다.

4. 물리적인 데이터파일(dbf확장자 파일)의 도난에 안전하다.

5. 동일 Wallet으로 Data Dump의 import, export도 가능하다.

6. AES128, AES192, AES256, 3DE168(168비트 Triple DES알고리즘)로 암호화 가능.

7. Salt라는 기능으로 같은 값의 데이터를 다른 암호화된 데이터로 저장 가능.

8. 기존 테이블에 ALTER TABLE 테이블명 MODIFY (컬럼명 ENCRYPT)로 암호화 가능


※ TDE의 단점 

정당한 방법으로 로그인 한 유저에 대해서는 암호화 정책이 해당되지 않는다.(정상적으로 로그인한 유저는 기존 데이터베이스를 정상적으로 이용가능)


1. %ORA_HOME%\admin\[SID] 밑에 wallet이라는 폴더를 만든다

( wallet을 저장하는 디폴트폴터 이지만 자동생성 되지 않음)


2.SYSTEM 계정이 아닌경우 현재 사용중인 접속계정에 ALTER SYSTEM권한을 부여한다.

SYSTEM 계정으로 접속후

GRANT ALTER SYSTEM TO [계정아이디];


3. 사용계정으로 접속 후 WALLET비밀번호를 입력한다.(계정비밀번호와 일치 시키는 것이 유리)

ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "비밀번호"; 

※ 이때 wallet을 자동 생성 할 수 없다는 에러가 발생할 때

 → 1번의 폴더 생성확인 해 볼 것. 

    8자리 이상으로 지정 해 볼 것.

(비밀번호는 반드시 더블쿼테이션으로 감쌀 것)


4. 1번의 폴더에 물리적 wallet파일이 생성되었는지 확인


5. WALLET이 OPEN, CLOSE되는지 확인


ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "비밀번호";

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "비밀번호";


6. 현재 생성된 계정에서 컬럼에 ENCRYPT옵션 추가


//교사 정보 테이블 : 이름, 이메일

ALTER TABLE COMTNGNRLMBER MODIFY (MBER_NM ENCRYPT);

ALTER TABLE COMTNGNRLMBER MODIFY (MBER_EMAIL_ADRES ENCRYPT);

//부모 정보 테이블 : 이름, 이메일

ALTER TABLE COMTNEMPLYRINFO MODIFY (USER_NM ENCRYPT);

ALTER TABLE COMTNEMPLYRINFO MODIFY (EMAIL_ADRES ENCRYPT);

//자녀 정보 테이블 : 이름, 전화번호, 주소, 생일

ALTER TABLE CCMS_CHLDINFO MODIFY (CHLD_NM ENCRYPT);

ALTER TABLE CCMS_CHLDINFO MODIFY (CHLD_TELNO ENCRYPT);

ALTER TABLE CCMS_CHLDINFO MODIFY (CHLD_ADRES ENCRYPT);

ALTER TABLE CCMS_CHLDINFO MODIFY (CHLD_BIRTH_DE ENCRYPT);



TIP!


1. 테이블 생성시 ENCRYPTION 설정

ex) CREATE TABLE [테이블명] ([컬럼명] [변수형]([바이트]) ENCRYPT)


Primary key에 대해서는 SALT로 컬럼을 생성 할 수 없다.(ENCRYPT는 SALT가 기본) 그럴때는

CREATE TABLE [테이블명] ([컬럼명] [변수형]([바이트]) ENCRYPT NO SALT);


2. 기존 테이블 ENCRYPTION 수정

ex) ALTER TABLE [테이블명] MODIFY ([컬럼명] ENCRYPT);


3. 암호화된 컬럼의 ENCRYPTION 설정 제거

ex) ALTER TABLE [테이블명] MODIFY ([컬럼명] DECRYPT);


Posted by 모바일헌터