ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Tibero] 데이터 암호화
    SQL & Database 2023. 4. 7. 10:15

    Tibero 데이터 암호화

    - 티베로는 데이터를 암호화 하여 디스크에 저장하는 기능을 가지고 있다.

    - 데이터를 저장 할 때 암호화 하고 SELECT 할 때 복호화 해서 보여준다.

     

    암호화 알고리즘

    암호화 알고리즘 Description
    DES DES 64 bits key
    3DES168 3 Key Triple DES 168 bits key
    AES128 AES 128 bits key
    AEAS192 AES 192 bits key
    AES256 AES 256 bits key
    SEED SEED 128 bits key

     

    암호화 방법

    1. 보안 지갑 생성

    $ tbwallet_gen # tbwallet_gen 파일이 있는 경로에서 명령어를 쳐야함. 보통 $TB_HOME/config 
    
    [ Tibero Security Wallet Generator ]
    Enter wallet file name: ${TBWALLET_NAME}
    Enter wallet password: ${TBWALLET_PASSWD}
    generate wallet success

    2. 보안 지갑 위치 설정

    #------------------------------------------
    # Initialization Parameter -> $TB_SID.tip 파일
    #------------------------------------------
    
    DB_NAME=tibero
    LISTENER_PORT=8629
    CONTROL_FILES="/tibero/mnt/tibero/c1.ctl"
    DB_CREATE_FILE_DEST="/tibero/mnt/tibero"
    MAX_SESSION_COUNT=1000
    TOTAL_SHM_SIZE=8G
    MEMORY_TARGET=10G
    
    #------WALLET PATH SETTING-------
    WALLET_FILE="/tibero/config/tmax"
    
    ############  only for test  ###########
    THROW_WHEN_GETTING_OSSTAT_FAIL = N

    3. 보안 지갑 사용

    $ tbsql sys/tibero
    
    ## 보안지갑 열기
    SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY ${TBWALLET_PASSWD};
    System altered.
    
    ## 보안지갑 닫기
    SQL>ALTER SYSTEM SET ENCRYPTION WALLET CLOSE;
    System altered.

    4. 컬럼 암호화

    # 테이블 생성시 컬럼 암호화
    SQL> CREATE TABLE customer (
    id CHAR(4) CONSTRAINT cust_id_pk PRIMARY KEY NOT NULL,
    name VARCHAR(20) NULL,
    type VARCHAR(18) NULL,
    addr VARCHAR(40) NULL,
    tel VARCHAR(15) ENCRYPT USING 'AES256' NULL,
    reg_date DATE NULL 
    );
    Table 'CUSTOMER' created.
    
    # 테이블에 암호화 컬럼 추가
    SQL> ALTER TABLE customer ADD (password VARCHAR(12) ENCRYPT NO SALT);
    Table 'CUSTOMER' altered.
    
    # 일반 컬럼을 암호화 컬럼으로 변경
    SQL> ALTER TABLE customer MODIFY (reg_date ENCRYPT NO SALT);
    Table 'CUSTOMER' altered.
    
    # 암호화 컬럼을 일반 컬럼으려 변경
    SQL> ALTER TABLE customer MODIFY (reg_date DECRYPT);
    Table 'CUSTOMER' altered.
    
    # 암호화 컬럼의 알고리즘 변경
    SQL> ALTER TABLE customer REKEY USING '3DES168';
    Table 'CUSTOMER' altered.
    
    #SALT 옵션 - 값은 값의 데이터를 암호화 할 때 항상 같은 암호로 암호화 하지 않도록 하는 기능, SALT 옵션 들어감 field는 index 설정 불가

     

     

    reference: tibero 6 관리자 안내서

Designed by Tistory.