개요
Tibero에서는 테이블 스페이스, 컬럼 등 암호화할 데이터(테이블의 컬럼 또는 테이블 스페이스)를 지정할 경우, 해당 데이터를 저장할 때 내부적으로 암호화하여 저장되며 검색시 복호화하여 조회 됩니다.
이 문서에서는 암호화 설정 방법과 암호화 알고리즘에 대해 설명합니다.
방법
테이블 스페이스 암호화
•
테이블 스페이스 단위로 암호화 합니다. (디폴트: AES128 알고리즘)
•
티베로 지원 알고리즘 중, 3DES168, AES128, AES192, AES256 만 사용 가능합니다.
예시) 암호화된 테이블 스페이스 생성 - 3DES168 알고리즘 지정
SQL> CREATE TABLESPACE encrypted_space
DATAFILE '/usr/tibero/data/encrypted001.dtf' SIZE 50M
AUTOEXTEND ON NEXT 1M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K
ENCRYPTION USING '3DES168'
DEFAULT STORAGE (ENCRYPT);
Tablespace 'ENCRYPTED_SPACE' created.
SQL
복사
컬럼 암호화
•
테이블 , 컬럼 단위로 암호화 합니다. (디폴트: AES192 알고리즘 : 옵션 SALT)
•
컬럼 암호화 시, 암호화 알고리즘과 함께 SALT 옵션 사용 여부도 명시할 수 있습니다.
참고
SALT 옵션은 같은 값의 데이터를 암호화할 때 항상 같은 암호로 암호화되지 않도록 하는 기능입니다. 이 옵션을 사용할 경우 보안의 수준을 높일 수 있으나, SALT 옵션을 사용하여 암호화한 컬럼에는 인덱스를 생성할 수 없습니다
예시) 암호화 컬럼을 갖는 테이블 생성 - 디폴트 암호화 옵션(AES192 알고리즘, SALT)
SQL> CREATE TABLE customer (
cust_id CHAR(4) CONSTRAINT cust_id_pk PRIMARY KEY NOT NULL,
cust_name VARCHAR(20) NULL,
cust_type VARCHAR(18) NULL,
cust_addr VARCHAR(40) NULL,
cust_tel VARCHAR(15) ENCRYPT NULL,
reg_date DATE NULL
);
Table 'CUSTOMER' created.
SQL
복사
예시) 암호화 컬럼을 갖는 테이블 생성 - AES256 알고리즘, NO SALT 옵션 설정
SQL> CREATE TABLE customer (
cust_id CHAR(4) CONSTRAINT cust_id_pk PRIMARY KEY NOT NULL,
cust_name VARCHAR(20) NULL,
cust_type VARCHAR(18) NULL,
cust_addr VARCHAR(40) ENCRYPT USING 'AES256' NULL,
cust_tel VARCHAR(15) ENCRYPT NO SALT NULL,
reg_date DATE NULL
);
Table 'CUSTOMER' created.
SQL
복사
티베로 지원 알고리즘
키워드 | 알고리즘명 | 설명 |
DES | Data Encryption Standard | 64비트 키(실제 유효 키는 56비트)를 사용하는 고전적인 대칭키 암호화 알고리즘입니다. 현재는 보안이 약하다고 평가되어 거의 사용되지 않습니다. |
3DES168 | Triple DES (3DES) | DES를 3번 적용하는 방식으로, 세 개의 56비트 키를 사용해 총 168비트 키 길이를 가집니다. DES보다 보안성이 높지만, 처리 속도는 느립니다. |
AES128 / AES192 / AES256 | Advanced Encryption Standard | 현재 가장 널리 사용되는 대칭키 암호화 표준입니다. 128, 192, 256비트 키 길이에 따라 보안 수준이 다릅니다. 고속이고 강력한 보안성을 자랑합니다. |
SEED | SEED | 한국인터넷진흥원(KISA)에서 개발한 블록 암호 알고리즘입니다. 128비트 키를 사용하며, 주로 국내 금융 및 공공기관에서 사용됩니다. |
ARIA128 / ARIA192 / ARIA256 | ARIA | 한국에서 개발된 또 다른 블록 암호입니다. AES와 구조가 유사하고, 128/192/256비트 키를 지원합니다. 국가 표준 암호로 지정되어 있습니다. |
GOST | GOST (ГОСТ) | 러시아에서 개발된 블록 암호로, 256비트 키를 사용합니다. 과거 소련의 국가 표준 암호였으며, 현재는 현대 GOST(R 34.12-2015 등)로 발전하고 있습니다. |
Wallet 설정 방법
암호화 기능 사용하기위해 wallet 설정이 필요하며, wallet 생성 및 설정 방법은 아래와 같습니다.
1.
wallet 생성
$ cd $TB_HOME/config
$ tbwallet_gen
-- 아래 name, passwd는 예시이며 원하는대로 사용 가능
name: WALLET
passwd: tibero
SQL
복사
2.
$TB_SID.tip에서 경로와 이름 설정 및 db 재기동
$ vi $TB_HOME/config/$TB_SID.tip
WALLET_FILE="[wallet 경로]" -- ex) /tibero_engine/tibero7/config/WALLET
$ tbdown; tbboot
SQL
복사
3.
ALTER SYSTEM SET ENCRYPTION [wallet명] OPEN IDENTIFIED BY '[password]'; 수행
$ tbsql [user명/[passwd]
SQL > ALTER SYSTEM SET ENCRYPTION [wallet name] OPEN IDENTIFIED BY '[passwd]'; -- 1번에서 설정한 wallet 정보
ex) ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY 'tibero';
-- 만약, 6 FS06 이하 버전 중, 138447a 패치 미포함 시
(tbboot -p | grep 138447, tbboot -cs | grep 138447로 확인 시 둘 중 하나에도 존재하지 않을 시)
SQL > ALTER SYSTEM SET ENCRYPTION [wallet name] OPEN IDENTIFIED BY "[passwd]";
SQL
복사