반응형
* 단방향 암호화
- password와 같이 특정 컬럼에 암호화(encryption)하며, 복호화(description)이 필요 없는 단방향성 암호화 기법
- 암호화만 가능하며 입력한 password에 대해 암호화 루틴을 거쳐 암호화된 값과 일쳐여부를 판별. 복호화 과정은 없음.
- password 분실 시 복호화하여 알려주는 것이 아니라 reset하여 임의 초기값으로 설정하여 통보.
* 필수 조건
- encryption의 funtion은 볼수 없어야 함. => wrap으로 처리.
- Master Key는 보안담당자만 알고 있건, 한번 설정으로 알 필요가 없어야 함.
- 해당 특정 Application(AP서버에 있는 Application) 만 암호화/복호화를 할 수 있어야 함. Data vault이용(Option)
- password 분실 시 DBMS_RANDOM을 이용하여 초기화 후, 고객에게 초기화 Password를 알려줌.
* 사용방법
- 10g 부터 지원
* function
create or replace funtion tys_encrypt (input_string VARCHAR2) RETURN RAW
IS
-- select DBMS_CRYPTO.RANDOMBYTES (num_key_bytes) from dual; --> key_bytes_raw
encrypted_raw RAW (2000); -- stores encryted binary text
key_bytes_raw RAW (32) :=
HEXTORAW('6E266456572A3E4C79D677BAC5144A645DF911CE07F18AEF57C3E8560AE1672');
encrytion_type PLS_INTEGER := DMBS_CRYPTO.ENCRYPT_AES256 + DMBS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5;
BEGIN
encrypted_raw := DBMS_CRYPTO.ENCRYPT
(src => UTL_I18N.STRING_TO_RAW 9input_string, 'AL32UTF8'),
typ => encryption_type,
key => key_bytes_raw);
return encrypted_raw;
END;
/
* wrap
$ wrap iname=TYS_Encrypt.sql
반응형
'[DB] ORACLE' 카테고리의 다른 글
[ORACLE] 오라클 파티셔닝 (ORACLE Partitioning) (0) | 2021.01.21 |
---|---|
[ORACLE] 테이블스페이스 & 데이터 파일 (TABLESPACE & DATA FILE) (0) | 2021.01.21 |
[ORACLE/TIBERO] 테이블/인덱스/제약조건 등 오브젝트 조회 쿼리 (0) | 2020.06.08 |
[ORACLE/TIBERO] engine 설치 후 초기 설정(스키마, 오브젝트 생성 등) (0) | 2020.05.25 |
[ORACLE] DB, SCHEMA, TABLE, COLUMN 등 오브젝트 목록 조회 (0) | 2020.05.25 |