da encryption - penta security · 2014-01-17 · oracle 02 kms 연동 설치 절차 1) 환경변수...
TRANSCRIPT
와플
DA Encryption
Guide
D'Amo DA Encryption 설치 지침서
Copyright 1997-2014 Penta Security Systems, Inc. All rights reserved
D'Amo DA 프로그램 및 상표, 본 설명서의 저작권은 펜타시큐리티시스템㈜에 있습니
다. 본사의 허락 없이 D'Amo DA의 무단 복제, 상표의 무단 사용, 그리고 본 설명서의
일부 또는 전체를 무단 복사, 전재 하실 수 없습니다.
본사
서울특별시 영등포구 여의도 25-11 한진 해운빌딩 20층
TEL: 02.780.7728 FAX: 02.786.5281
www.pentasecurity.com
펜타시큐리티시스템㈜
일본지사
도쿄도 미나토구 아카사카 3-2-8 아센도 아카사카 빌딩3 층
TEL: 81-3-5573-8191 FAX: 81-3-5573-8193
www.pentasecurity.co.jp
D'Amo DA 140117
| 만든 사람들 |
작성 및 편집: D'Amo 팀
표지 및 편집 디자인: VS 팀
검수: 품질관리팀
이 매뉴얼에 관하여
설치 지침서의 목적
본 문서는 D'Amo DA 설치를 위한 지침서이다
설치 지침서의 범위
본 문서는 D’Amo DA를 설치하는 방법과 함수 레퍼런스에 대해 설명한다.
선수지식
Windows 또는 Unix 프로그램에 능숙하고, Database에 대한 사전지식이 필요하
다.
활용방법
본 문서는 제품의 설치를 위한 매뉴얼로 정확한 설치를 위해서 꼭 수행해야 할
단계를 명시하였다. 따라서, 각 절차에서 다음 단계로 넘어가는 것에 대한 특별
한 언급이 없을 때에는 문서에 있는 모두 절차에 명시된 대로 단계를 빠짐없이
수행한다. (설치 중 발생하는 문의사항은 펜타시큐리티시스템㈜에 연락하여 지
원받을 수 있다.)
구성 장별 간단한 요약
I장 개요 : D’Amo DA 구성요소 설명 및 D’Amo DA에서 사용되는 공개키 쌍의
개념을 설명한다. D’Amo가 사용하는 공개키 쌍의 개념은 이후, 설치 과정에서
도 매우 중요하므로 꼭 숙지한다.
II장 ORACLE : D'Amo DA 중 ORACLE 버전을 설치하는 방법에 대해 설명한다.
III장 SYBASE : D'Amo DA 중 SYBASE 버전을 설치하는 방법에 대해 설명한다.
IV장 DB2 : D'Amo DA 중 DB2 버전을 설치하는 방법에 대해 설명한다.
VI장 TIBERO : D'Amo DA 중 TIBERO 버전을 설치하는 방법에 대해 설명한다.
VII장 SYBASE IQ : D'Amo DA 중 SYBASE IQ 버전을 설치하는 방법에 대해 설명
한다.
VIII장 CUBRID : D'Amo DA 중 CUBRID 버전을 설치하는 방법에 대해 설명한다.
IX장 부록 : D'Amo DA 에서 사용되는 SCP 파일을 생성하는 방법과 설치 및 운
영 중에 발생하는 에러 코드를 대응하는 방법에 대해 설명한다.
표기법
다음과 같은 표기법을 사용하여 본 문서를 작성한다.
표기법 설명 예
예) 예제표기
<> 사용자환경에 따라 입력하
는 값이 다를 때
<설치 디렉토리>\ABC.EXE파일을
입력해주세요
[] 사용자가 선택적으로 입력
하는 옵션 정보
도스 창에서 DIR[\W]를 입력하세요.
메뉴/기능버튼 이름
굵게 사용자 입력 메시지
틀 예제 코드 및 소스 코드
및 환경 설정 정보 파일
인용
목 차
이 매뉴얼에 관하여 ........................................................ 4
목 차 ................................................................................ 6
I. 개요 ............................................................................ 10
1. 구성 요소 .............................................................................................. 10
II. ORACLE ..................................................................... 12
1. 설치 절차 .............................................................................................. 12
1.1 UNIX 환경 설치 .......................................................................... 12
1.2 WINDOWS 환경 설치 ............................................................... 25
2. 함수 설명 .............................................................................................. 40
2.1 함수 설명 .................................................................................... 40
2.2 함수 호출 예제 ........................................................................... 42
III. SYBASE .................................................................... 46
1. 설치 절차 .............................................................................................. 46
1.1 UNIX 환경 설치 .......................................................................... 46
2. 함수 설명 .............................................................................................. 57
2.1 함수 설명 .................................................................................... 57
2.2 함수 호출 예제 ........................................................................... 59
IV. DB2 ........................................................................... 62
1. 설치 절차 .............................................................................................. 62
1.1 UNIX 환경 설치 .......................................................................... 62
1.2 WINDOWS 환경 설치 ............................................................... 72
2. 함수 설명 .............................................................................................. 82
2.1 함수 설명 .................................................................................... 82
2.2 함수 호출 예제 ........................................................................... 84
V. TIBERO ...................................................................... 88
1. 설치 절차 .............................................................................................. 88
1.1 UNIX 환경 설치 .......................................................................... 88
2. 함수 설명 .............................................................................................. 99
2.1 함수 설명 ..................................................................................... 99
2.2 함수 호출 예제 ........................................................................ 101
VI. TIBERO .................................................................. 106
1. 설치 절차 ........................................................................................... 106
1.1 UNIX 환경 설치 ....................................................................... 106
2. 함수 설명 ........................................................................................... 117
2.1 함수 설명 .................................................................................. 117
2.2 함수 호출 예제 ........................................................................ 119
VII. SYBASE IQ ........................................................... 122
1. 설치 절차 ........................................................................................... 122
1.1 UNIX 환경 설치 ....................................................................... 122
2. 함수 설명 ........................................................................................... 133
2.1 함수 설명 .................................................................................. 133
2.2 함수 호출 예제 ........................................................................ 135
VIII. CUBRID ............................................................... 138
1. 설치 절차 ........................................................................................... 138
1.1 UNIX 환경 설치 ....................................................................... 138
1.2 WINDOWS 환경 설치 ............................................................ 148
2. 함수 설명 ........................................................................................... 159
2.1 함수 설명 .................................................................................. 159
2.2 함수 호출 예제 ........................................................................ 161
IX. 부록 ....................................................................... 166
1. SCP 파일 생성 방법 ......................................................................... 166
2. 에러 대응 가이드 ............................................................................. 167
2.1 Error Code .................................................................................168
2.2 Error Code 대응 가이드 ..........................................................169
I 개요
1. 구성 요소
10_ I. 개요
I. 개요
1. 구성 요소
II ORACLE
1. 설치 절차
2. 함수 설명
12_ II. ORACLE
II. ORACLE
DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전 준
비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.
1. 설치 절차
UNIX, WINDOWS 환경에 따라 아래의 절차에 의해 설치한다.
1.1 UNIX 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- libdamoscpdb.{so|a|sl} 파일
- libscpdb_agent.{so|a|sl} 파일
- libcis_cc-3.1.{so|a|sl} 파일
- libcis_ce-3.1.{so|a|sl} 파일
sql 파일
- 000.da_user.pkg 파일
- 000.da_user.sql 파일
- 001.inner_function.ora 파일
- 002.user_interface.ora 파일 (c 버전) 또는
002.user_interface_java.ora 파일(java 버전)
- 003.grant_execute_functions.sql 파일
- 005.securej_privilege.sql 파일 (java 버전)
- 009.da_test.sql 파일
- install_make.sh 파일
D'Amo DA 설치 지침서
_13
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
License 파일
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는
_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
java class 파일
- ScpAgentException.class
- ScpCryptData.class
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 1] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 서버 재시작 또는 DB 서버의 listener 재시작
DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
DB 엔진 설치 계정의 . profile 파일 수정
14_ II. ORACLE
02 KMS 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 ORACLE 계정 /home/dbms_api 에 설치된다고 가정한
다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
폴더 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
D'Amo DA 설치 지침서
_15
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo, ScpAgentException.class,
ScpCryptData.class 파일을 $SCP_INST_HOME 위치에 복사한다.
Java 버전일 경우 $ORACLE_HOME/lib 디렉토리에 library 파
일의 symbolic link 파일을 생성한다.
$> cd $ORACLE_HOME/lib
$> ln –s $SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.{so|a|sl}
$> ln –s $SCP_INST_HOME/libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
16_ II. ORACLE
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
② 001.inner_function.ora.sql 파일과 java 버전의 경우
002.user_interface_java.ora.sql 파일, C 버전의 경우
002.user_interface.ora.sql 파일의 생성 여부와 내용을 확인한다.
5) SCP 계정 생성
DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게
CONNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.
SQL> CREATE USER SCP IDENTIFIED BY [password];
User created.
SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;
Grant succeeded.
SQL>
6) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
Java 버전일 경우 002.user_interface_java.ora.sql 파일을 실행하고 C
버전일 경우 002.user_interface.ora.sql 파일을 실행한다.
SQL> CREATE LIBRARY SECURE_SCP_LIB AS '/
fullpath_of_SCP_INST_HOME/libdamoscpdb.{so|a|sl}';
/
SQL> START 000.da_user.pkg
Package created.
SQL> START 000.da_user.sql
D'Amo DA 설치 지침서
_17
Package body created.
SQL> START 001.inner_function.ora.sql
Function created.
׃
Function created.
Java 버전일 경우
SQL> START 002.user_interface_java.ora.sql
Function created.
׃
Function created.
C 버전일 경우
SQL> START 002.user_interface.ora.sql
Function created.
׃
Function created.
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다. java 버전일 경우
추가적으로 DBA 권한 계정에서 005.securej_privilege.sql 파일을
실행한다.
SQL> START 003.grant_execute_functions.sql
Grant succeeded.
׃
Grant succeeded.
Java 버전일 경우만 실행
SQL> connect / as sysdba
Connected.
18_ II. ORACLE
SQL> START 005.securej_privilege.sql
PL/SQL procedure successfully completed.
③ java 버젼일 경우에는 class 파일을 DBMS에서 인식하기 위해서
loadjava를 실행한다.
$>loadjava -user SCP/password ScpAgentException.class
$>loadjava -user SCP/password ScpCryptData.class
7) Listener 재시작
C 버전일 때 listener 와 tnsname.ora 파일을 설정 한 후 listener를 재
시작한다. JAVA 버전은 이 작업을 생략한다.
8) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
9) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명,
OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo DA 설치 지침서
_19
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
10) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
SQL> SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',
'abc') FROM DUAL;
ENC_STR('OWNER','TABLE','COLUMN','abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc')) FROM
DUAL;
DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
abc
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 ORACLE 계정 /home/dbms_api 에 설치된다고 가정한
다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
20_ II. ORACLE
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
디렉토리 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo, ScpAgentException.class,
ScpCryptData.class, .SCP 파일을 $SCP_INST_HOME 위치에 복
사한다.
Java 버전일 경우 $ORACLE_HOME/lib 디렉토리에 library 파
일의 symbolic link 파일을 생성한다.
$> cd $ORACLE_HOME/lib
$> ln –s $ SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $ SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
D'Amo DA 설치 지침서
_21
libcis_ce-3.1.{so|a|sl}
$> ln –s $ SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.{so|a|sl}
$> ln –s $ SCP_INST_HOME/ libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
② 001.inner_function.ora.sql 파일과 java 버전의 경우
22_ II. ORACLE
002.user_interface_java.ora.sql 파일, C 버전의 경우
002.user_interface.ora.sql 파일의 생성 여부와 내용을 확인한다.
5) SCP 계정 생성
DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게
CONNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.
SQL> CREATE USER SCP IDENTIFIED BY [password];
User created.
SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;
Grant succeeded.
SQL>
6) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
Java 버전일 경우 002.user_interface_java.ora.sql 파일을 실행하고 C
버전일 경우 002.user_interface.ora.sql 파일을 실행한다.
SQL> CREATE LIBRARY SECURE_SCP_LIB AS '/
fullpath_of_SCP_INST_HOME/libdamoscpdb.{so|a|sl}';
/
SQL> START 000.da_user.pkg
Package created.
SQL> START 000.da_user.sql
Package body created.
SQL> START 001.inner_function.ora.sql
Function created.
׃
Function created.
Java 버전일 경우
D'Amo DA 설치 지침서
_23
SQL> START 002.user_interface_java.ora.sql
Function created.
׃
Function created.
C 버전일 경우
SQL> START 002.user_interface.ora.sql
Function created.
׃
Function created.
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다. java 버전일 경우
추가적으로 DBA 권한 계정에서 005.securej_privilege.sql 파일을
실행한다.
SQL> START 003.grant_execute_functions.sql
Grant succeeded.
׃
Grant succeeded.
Java 버전일 경우만 실행
SQL> connect / as sysdba
Connected.
SQL> START 005.securej_privilege.sql
PL/SQL procedure successfully completed.
③ java 버젼일 경우에는 class 파일을 DBMS에서 인식하기 위해서
loadjava를 실행한다.
$>loadjava -user SCP/password ScpAgentException.class
$>loadjava -user SCP/password ScpCryptData.class
24_ II. ORACLE
7) Listener 재시작
C 버전일 때 listener 와 tnsname.ora 파일을 설정 한 후 listener를 재
시작한다. JAVA 버전은 이 작업을 생략한다.
8) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
9) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명
이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
D'Amo DA 설치 지침서
_25
용 여부를 확인 한다.
10) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명 이다.
SQL> SELECT ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc') FROM DUAL;
ENC_STR( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR(( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc')) FROM DUAL;
DEC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
abc
1.2 WINDOWS 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
26_ II. ORACLE
- damoscpdb.dll 파일
- scpdb_agent. dll 파일
- cis_cc-3.1. dll 파일
- cis_ce-3.1. dll 파일
sql 파일
- 000.da_user.pkg 파일
- 000.da_user.sql 파일
- 001.inner_function.ora 파일
- 002.user_interface.ora 파일 (c 버전) 또는
002.user_interface_java.ora 파일(java버전)
- 003.grant_execute_functions.sql 파일
- 005.securej_privilege.sql 파일 (java 버전)
- 009.da_test.sql 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
License 파일
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
java class 파일
- ScpAgentException.class
- ScpCryptData.class
사전 조사
D'Amo DA 설치 지침서
_27
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 2] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 서버 재시작 또는 DB 서버의 listener 재시작
DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
환경변수 추가
02 KMS 연동 설치 절차
1) 환경변수 설정
"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타
나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME
변수와 값을 추가한다.
DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.
28_ II. ORACLE
[그림 1] 환경변수 설정 다이얼로그
2) 폴더 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.
폴더 생성
환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)
과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더
를 생성한다.
생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.
Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에
"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename
해야한다.
D'Amo DA 설치 지침서
_29
② 생성한 폴더에 파일을 복사한다.
$SCP_INST_HOME 폴더에 파일 복사
acl_cli, cis_cc-3.1.dll, cis_ce-3.1.dll, damoscpdb.dll, scpdb_agent.dll,
scpdb_agent.ini, license.cer, privilege.damo, ScpAgentException.class,
ScpCryptData.class 파일을 $SCP_INST_HOME 위치에 복사한다.
Java 버전일 경우 ORACLE설치홈/lib 폴더에 libdamoscpdb.dll
을 복사 한 후 ORACLE설치홈/bin 폴더에 cis_cc-3.1.dll 파일,
cis_ce-3.1.dll 파일, scpdb_agent.dll 파일을 복사한다.
$SCP_INST_HOME/key 폴더에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME /key 폴더에 복사한다.
$SCP_INST_HOME/sql 폴더에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME\sql 디렉토
리에 복사한다.
30_ II. ORACLE
3) sql 파일 생성
① 텍스트 편집기를 이용하여 .ora 파일의 D_INI, D_DBNAME,
D_AGTID 값을 수정한다. Java 버전일 경우 001.inner_function.ora
파일, 002.user_interface_java.ora 파일을 수정하고 C 버전일 경우
001.inner_function.ora 파일, 002.user_interface_java.ora 파일을
수정한다.
D_INI 는 설정 초기화 파일(scpdb_agent.ini)의 경로이고,
D_DBNAME 과 D_AGTID 는 agent key쌍 발급시 이용한 DB
NAME 과 AGENT ID 이다.
② 001.inner_function.ora 파일을 001.inner_function.ora.sql 로 rename
한다.
③ Java 버전일 경우 002.user_interface_java.ora 파일명을
002.user_interface_java.ora.sql 로 rename 하고 C 버전일 경우
002.user_interface.ora 파일명을 002.user_interface.ora.sql 로 rename
한다.
4) SCP 계정 생성
DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게
CONNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.
SQL> CREATE USER SCP IDENTIFIED BY [password];
User created.
SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;
Grant succeeded.
SQL>
5) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
D'Amo DA 설치 지침서
_31
Java 버전일 경우 002.user_interface_java.ora.sql 파일을 실행하고 C
버전일 경우 002.user_interface.ora.sql 파일을 실행한다.
SQL> CREATE LIBRARY SECURE_SCP_LIB AS '/
fullpath_of_SCP_INST_HOME/damoscpdb.dll';
/
SQL> START 000.da_user.pkg
Package created.
SQL> START 000.da_user.sql
Package body created.
SQL> START 001.inner_function.ora.sql
Function created.
׃
Function created.
Java 버전일 경우
SQL> START 002.user_interface_java.ora.sql
Function created.
׃
Function created.
C 버전일 경우
SQL> START 002.user_interface.ora.sql
Function created.
׃
Function created.
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다. java 버전일 경우
추가적으로 DBA 권한 계정에서 005.securej_privilege.sql 파일을
실행한다.
32_ II. ORACLE
SQL> START 003.grant_execute_functions.sql
Grant succeeded.
׃
Grant succeeded.
Java 버전일 경우만 실행
SQL> connect / as sysdba
Connected.
SQL> START 005.securej_privilege.sql
PL/SQL procedure successfully completed.
③ java 버젼일 경우에는 class 파일을 DBMS에서 인식하기 위해서
loadjava를 실행한다.
loadjava -user SCP/password ScpAgentException.class
loadjava -user SCP/password ScpCryptData.class
6) Listener 재시작
C 버전일 때 listener 와 tnsname.ora 파일을 설정 한 후 listener를 재
시작한다. JAVA 버전은 이 작업을 생략한다.
7) 설정 파일 수정
$SCP_INST_HOME 폴더에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
8) CLI에서 권한 설정
DOS 커맨드로 $SCP_INST_HOME 에서 acl_cli 파일을 실행하여 user
단위로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명, OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
C:\> cd E:\dbms_api
D'Amo DA 설치 지침서
_33
E:\dbms_api> acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
9) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
SQL> SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',
'abc') FROM DUAL;
ENC_STR('OWNER','TABLE','COLUMN','abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc')) FROM
DUAL;
DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
abc
34_ II. ORACLE
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타
나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME
변수와 값을 추가한다.
DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.
[그림 2] 환경변수 설정 다이얼로그
2) 폴더 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.
폴더 생성
환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)
과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더
D'Amo DA 설치 지침서
_35
를 생성한다.
생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.
Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에
"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename
해야한다.
② 생성한 폴더에 파일을 복사한다.
$SCP_INST_HOME 폴더에 파일 복사
acl_cli, cis_cc-3.1.dll, cis_ce-3.1.dll, damoscpdb.dll, scpdb_agent.dll,
scpdb_agent.ini, license.cer, privilege.damo, ScpAgentException.class,
ScpCryptData.class, .SCP 파일을 $SCP_INST_HOME 위치에 복
사한다.
Java 버전일 경우 ORACLE설치홈/lib 폴더에 libdamoscpdb.dll
을 복사 한 후 ORACLE설치홈/bin 폴더에 cis_cc-3.1.dll 파일,
cis_ce-3.1.dll 파일, scpdb_agent.dll 파일을 복사한다.
$SCP_INST_HOME/key 폴더에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
36_ II. ORACLE
$SCP_INST_HOME /key 폴더에 복사한다.
$SCP_INST_HOME/sql 폴더에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME\sql 디렉토
리에 복사한다.
3) sql 파일 생성
① 텍스트 편집기를 이용하여 .ora 파일의 D_INI, D_DBNAME,
D_AGTID 값을 수정한다. Java 버전일 경우 001.inner_function.ora
파일, 002.user_interface_java.ora 파일을 수정하고 C 버전일 경우
001.inner_function.ora 파일, 002.user_interface_java.ora 파일을
수정한다.
D_INI 는 설정 초기화 파일(scpdb_agent.ini)의 경로이고,
D_DBNAME 과 D_AGTID 는 agent key쌍 발급시 이용한 DB
NAME 과 AGENT ID 이다.
② 001.inner_function.ora 파일을 001.inner_function.ora.sql 로 rename
한다.
③ Java 버전일 경우 002.user_interface_java.ora 파일명을
002.user_interface_java.ora.sql 로 rename 하고 C 버전일 경우
002.user_interface.ora 파일명을 002.user_interface.ora.sql 로 rename
한다.
4) SCP 계정 생성
DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게
CONNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.
SQL> CREATE USER SCP IDENTIFIED BY [password];
User created.
SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;
Grant succeeded.
5) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
D'Amo DA 설치 지침서
_37
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
Java 버전일 경우 002.user_interface_java.ora.sql 파일을 실행하고 C
버전일 경우 002.user_interface.ora.sql 파일을 실행한다.
SQL> CREATE LIBRARY SECURE_SCP_LIB AS '/
fullpath_of_SCP_INST_HOME/damoscpdb.dll';
/
SQL> START 000.da_user.pkg
Package created.
SQL> START 000.da_user.sql
Package body created.
SQL> START 001.inner_function.ora.sql
Function created.
׃
Function created.
Java 버전일 경우
SQL> START 002.user_interface_java.ora.sql
Function created.
׃
Function created.
C 버전일 경우
SQL> START 002.user_interface.ora.sql
Function created.
׃
Function created.
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다. java 버전일 경우
38_ II. ORACLE
추가적으로 DBA 권한 계정에서 005.securej_privilege.sql 파일을
실행한다.
SQL> START 003.grant_execute_functions.sql
Grant succeeded.
׃
Grant succeeded.
Java 버전일 경우만 실행
SQL> connect / as sysdba
Connected.
SQL> START 005.securej_privilege.sql
PL/SQL procedure successfully completed.
③ java 버젼일 경우에는 class 파일을 DBMS에서 인식하기 위해서
loadjava를 실행한다.
loadjava -user SCP/password ScpAgentException.class
loadjava -user SCP/password ScpCryptData.class
6) Listener 재시작
C 버전일 때 listener 와 tnsname.ora 파일을 설정 한 후 listener를 재
시작한다. JAVA 버전은 이 작업을 생략한다.
7) 설정 파일 수정
$SCP_INST_HOME 폴더에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
8) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명
이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
C:\> cd E:\dbms_api
D'Amo DA 설치 지침서
_39
E:\dbms_api> acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
9) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명이다.
SQL> SELECT ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc') FROM DUAL;
ENC_STR( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR(( 'DAMO', 'SCP',
40_ II. ORACLE
'CBC_FIXED_Key_AES_128.SCP', 'abc')) FROM DUAL;
DEC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
abc
2. 함수 설명
DA에서 제공되는 함수와 사용하는 방법에 대해서 설명한다.
2.1 함수 설명
DA에서 제공하는 함수는 아래와 같다.
함수 명 입력 출력
ENC_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
ENC_B64 I_OWNER IN 문자열,
Base64 Encording
암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
DEC_STR I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(Hex String 암호문)
DEC_B64 I_OWNER IN 문자열,
평문 I_TABLE IN 문자열,
I_COLUMN IN 문자열,
D'Amo DA 설치 지침서
_41
I_DATA IN 문자열
(base64 String
암호문)
INDEX_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
HASH_STR
I_ALOG IN 숫자,
SHA1
=70
Hex String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HASH_B64
I_ALOG IN 숫자,
SHA1
=70
Base64 String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HEXTOB64
I_DATA IN 문자열
(Hex String 암호문)
base64 Encording
암호문
B64TOHEX
I_DATA
IN 문자열
(base64 Encording 암호
문)
Hex String 암호
문
CONFIG_REINIT SUCCESS
42_ II. ORACLE
2.2 함수 호출 예제
암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은
COL, 암호할 데이터는 ‘abc’ 로 가정한다.
① ENC_STR
SQL> SELECT ENC_STR('SCP', 'TAB', 'COL', 'abc') FROM
DUAL;
② ENC_B64
SQL> SELECT ENC_B64('SCP', 'TAB', 'COL', 'abc') FROM
DUAL;
③ DEC_STR
SQL> SELECT DEC_STR('SCP', 'TAB', 'COL',
ENC_STR('SCP', 'TAB', 'COL', 'abc')) FROM DUAL;
④ DEC_B64
SQL> SELECT DEC_B64('SCP', 'TAB', 'COL',
ENC_B64('SCP', 'TAB', 'COL', 'abc')) FROM DUAL;
⑤ INDEX_STR
Plug-IN 연동 하지 않을 경우
SQL> SELECT INDEX_STR('SCP', 'TAB', 'COL', 'abc', '')
FROM DUAL;
Plug-IN 연동 할 경우
SQL> SELECT INDEX_STR( 'SCP', 'TAB', 'COL', 'abc',
'IX') FROM DUAL;
⑥ HASH_STR
SQL> SELECT HASH_STR( 72, 'abc' ) FROM DUAL;
⑦ HASH_B64
D'Amo DA 설치 지침서
_43
SQL> SELECT HASH_B64( 72, 'abc' ) FROM DUAL;
⑧ HEXTOB64
SQL> SELECT
HEXTOB64('A305378D8F974F1C1537ED7CB0CB959245D1AC31')
FROM DUAL;
⑨ B64TOHEX
SQL> SELECT B64TOHEX('owU3jY+XTxwVN+18sMuVkkXRrDE=')
FROM DUAL;
⑩ CONFIG_REINIT
SELECT CONFIG_REINIT() FROM DUAL;
III SYBASE
1. 설치 절차
2. 함수 설명
46_ III. SYBASE
III. SYBASE
DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전 준
비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.
1. 설치 절차
UNIX, WINDOWS 환경에 따라 아래의 절차에 의해 설치한다.
1.1 UNIX 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- libdamoscpdb.{so|a|sl} 파일
- libscpdb_agent.{so|a|sl} 파일
- libcis_cc-3.1.{so|a|sl} 파일
- libcis_ce-3.1.{so|a|sl} 파일
sql 파일
- 001.inner_function.sybase 파일
- 002.user_interface.sybase 파일
- 003.grant_execute_functions.sql 파일
- 009.da_test.sql 파일
- install_make.sh 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
License 파일
D'Amo DA 설치 지침서
_47
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는
_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 3] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 서버 재시작
DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
DB 엔진 설치 계정의 . profile 파일 수정
02 KMS 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 SYBASE 계정 /home/dbms_api 에 설치된다고 가정한
다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
48_ III. SYBASE
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
폴더 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo 파일을 $SCP_INST_HOME 위치에 복
사한다.
또한 $SYBASE/$SYBASE_ASE/lib 디렉토리에 library 파일의
symbolic link 파일을 생성한다.
$> cd $SYBASE/$SYBASE_ASE/lib
$> ln -s $SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
D'Amo DA 설치 지침서
_49
$> ln -s $SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
$> ln -s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.{so|a|sl}
$> ln -s $SCP_INST_HOME/libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
50_ III. SYBASE
② 001.inner_function.sybase.sql 파일, 002.user_interface.sybase.sql 파일
의 생성 여부와 내용을 확인한다.
5) SCP 계정 생성
DB 사용자 SCP 데이터베이스 및 계정을 생성하는 것을 권고하며
SCP 사용자에게 SA 권한을 부여한다.
1> create database scp on default = 20
2> go
CREATE DATABASE: allocating 9984 logical pages (19.5
megabytes) on disk 'master'
(10240 logical pages requested).
Database 'scp' is now online.
1> sp_addlogin scp, [password], scp
2> go
Password correctly set.
Account unlocked.
New login created.
(return status = 0)
1> grant role sa_role to scp
2> go
1>
6) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
$>isql -Uscp -P[password] -S[ASE_NAME] -Dscp <
001.inner_function.sybase.sql
$>isql -Uscp -P[password] -S[ASE_NAME] -Dscp <
002.user_interface.sybase.sql
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다.
D'Amo DA 설치 지침서
_51
$>isql -Uscp -P[password] -S[ASE_NAME] -Dscp <
003.grant_execute_functions.sql
7) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
8) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명,
OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
52_ III. SYBASE
9) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
1> SELECT scp.dbo.ENC_STR( 'OWNER', 'TABLE',
'COLUMN', 'abc')
2> go
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
1> SELECT scp.dbo.DEC_STR( 'OWNER', 'TABLE',
'COLUMN', scp.dbo.ENC_STR( 'OWNER', 'TABLE',
'COLUMN', 'abc'))
2> go
-----------------------------------------------------
abc
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 SYBASE 계정 /home/dbms_api 에 설치된다고 가정한
다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
D'Amo DA 설치 지침서
_53
디렉토리 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
① 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo, .SCP 파일을 $SCP_INST_HOME 위치
에 복사한다.
$SYBASE/$SYBASE_ASE/lib 디렉토리에 library 파일의
symbolic link 파일을 생성한다.
$> cd $SYBASE/$SYBASE_ASE/lib
$> ln -s $SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln -s $SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
$> ln -s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.{so|a|sl}
$> ln -s $SCP_INST_HOME/libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
54_ III. SYBASE
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
② 001.inner_function.sybase.sql 파일, 002.user_interface.sybase.sql
파일의 생성 여부와 내용을 확인한다.
5) SCP 계정 생성
DB 사용자 SCP 데이터베이스 및 계정을 생성하는 것을 권고하며
SCP 사용자에게 SA 권한을 부여한다.
$> isql -Usa -P[password] -S[ASE_NAME]
1> create database scp on default = 20
2> go
CREATE DATABASE: allocating 9984 logical pages (19.5
megabytes) on disk 'master'
D'Amo DA 설치 지침서
_55
(10240 logical pages requested).
Database 'scp' is now online.
1> sp_addlogin scp, [password], scp
2> go
Password correctly set.
Account unlocked.
New login created.
(return status = 0)
1> grant role sa_role to scp
2> go
1>
6) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
$>isql -Uscp -P[password] -S[ASE_NAME] -Dscp <
001.inner_function.sybase.sql
$>isql -Uscp -P[password] -S[ASE_NAME] -Dscp <
002.user_interface.sybase.sql
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다.
$>isql -Uscp -P[password] -S[ASE_NAME] -Dscp <
003.grant_execute_functions.sql
7) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
8) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명
56_ III. SYBASE
이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
9) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명 이다.
1> SELECT scp.dbo.ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc')
2> go
D'Amo DA 설치 지침서
_57
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
1> SELECT scp.dbo.DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', scp.dbo.ENC_STR( 'DAMO',
'SCP', 'CBC_FIXED_Key_AES_128.SCP', 'abc'))
2> go
-----------------------------------------------------
abc
2. 함수 설명
DA에서 제공되는 함수와 사용하는 방법에 대해서 설명한다.
2.1 함수 설명
DA에서 제공하는 함수는 아래와 같다.
함수 명 입력 출력
ENC_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
ENC_B64 I_OWNER IN 문자열,
Base64 Encording
암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
DEC_STR I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(Hex String 암호문)
DEC_B64 I_OWNER IN 문자열, 평문
I_TABLE IN 문자열,
58_ III. SYBASE
I_COLUMN IN 문자열,
I_DATA IN 문자열
(base64 String
암호문)
INDEX_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
HASH_STR
I_ALOG IN 숫자,
SHA1
=70
Hex String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HASH_B64
I_ALOG IN 숫자,
SHA1
=70
Base64 String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HEXTOB64
I_DATA IN 문자열
(Hex String 암호문)
base64 Encording
암호문
B64TOHEX
I_DATA
IN 문자열
(base64 Encording 암호
문)
Hex String 암호
문
CONFIG_REINIT 0
D'Amo DA 설치 지침서
_59
2.2 함수 호출 예제
암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은
COL, 암호할 데이터는 ‘abc’ 로 가정한다.
① ENC_STR
1> SELECT dbo.ENC_STR('OWNER', 'TABLE', 'COLUMN',
'abc')
2> go
② ENC_B64
1> SELECT dbo.ENC_B64('OWNER', 'TABLE', 'COLUMN',
'abc')
2> go
③ DEC_STR
1> SELECT dbo.DEC_STR('OWNER', 'TABLE', 'COLUMN',
'abc')
2> go
④ DEC_B64
1> SELECT dbo.DEC_B64('OWNER', 'TABLE', 'COLUMN',
'abc')
2> go
⑤ INDEX_STR
Plug-IN 연동 하지 않을 경우
1> SELECT dbo.INDEX_STR('OWNER', 'TABLE', 'COLUMN',
'abc', '')
2> go
Plug-IN 연동 할 경우
1> SELECT dbo.INDEX_STR('OWNER', 'TABLE', 'COLUMN',
'abc', 'IX')
60_ III. SYBASE
2> go
⑥ HASH_STR
1> SELECT dbo.HASH_STR( 72, 'abc' )
2> go
⑦ HASH_B64
1> SELECT dbo.HASH_B64( 72, 'abc' )
2> go
⑧ HEXTOB64
1> SELECT
dbo.HEXTOB64('A305378D8F974F1C1537ED7CB0CB959245D1AC3
1')
2> go
⑨ B64TOHEX
1> SELECT
dbo.B64TOHEX('owU3jY+XTxwVN+18sMuVkkXRrDE=')
2> go
⑩ CONFIG_REINIT
1> SELECT dbo.CONFIG_REINIT()
2> go
IV DB2
3. 설치 절차
4. 함수 설명
62_ IV. DB2
IV. DB2
DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전 준
비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.
1. 설치 절차
UNIX, WINDOWS 환경에 따라 아래의 절차에 의해 설치한다.
1.1 UNIX 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- libdamoscpdb.{so|a|sl} 파일
- libscpdb_agent.{so|a|sl} 파일
- libcis_cc-3.1.{so|a|sl} 파일
- libcis_ce-3.1.{so|a|sl} 파일
sql 파일
- 001.inner_function.db2 파일
- 002.user_interface.db2 파일
- 003.grant_execute_functions.sql 파일
- 009.da_test.sql 파일
- install_make.sh 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
License 파일
D'Amo DA 설치 지침서
_63
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는
_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정하는데 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 4] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
DB 엔진 설치 계정의 . profile 파일 수정
02 KMS 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 DB2 계정 /home/dbms_api 에 설치된다고 가정한다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
64_ IV. DB2
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
폴더 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log”로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo 파일을 $SCP_INST_HOME 위치에 복
사한다.
{DB설치폴더}/sqllib/lib64, {DB설치폴더}/sqllib/function 디렉토
리에 library 파일의 symbolic link 파일을 생성한다.
$> cd {DB설치폴더}/sqllib/lib64
$> ln –s $SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
D'Amo DA 설치 지침서
_65
libcis_ce-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$> cd {DB설치폴더}/sqllib/function
$> ln –s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.so
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
66_ IV. DB2
② 001.inner_function.db2.sql 파일과 002.user_interface.db2.sql 파일의 생
성 여부와 내용을 확인한다.
5) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 함수를 설치한다.
$> db2 connect to sample
$> db2 -td@ -vf 001.inner_function.db2.sql
$> db2 -td@ -vf 002.user_interface.db2.sql
② 특정 DB 사용자에게 함수 실행 권한을 부여한다.
$> db2 connect to sample
$> db2 -td@ -vf 003.grant_execute_functions.sql
6) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini)중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
7) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위
로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명, OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo DA 설치 지침서
_67
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
8) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
DB2 => SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',
'abc') FROM sysibm.sysdummy1
ENC_STR('OWNER','TABLE','COLUMN','abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
DB2 => SELECT DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc')) FROM
sysibm.sysdummy1
DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
abc
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 DB2 계정 /home/dbms_api 에 설치된다고 가정한다.
68_ IV. DB2
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
디렉토리 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo, .SCP파일을 $SCP_INST_HOME 위치
에 복사한다.
{DB설치폴더}/sqllib/lib64, {DB설치폴더}/sqllib/function 디렉토
리에 library 파일의 symbolic link 파일을 생성한다.
$> cd {DB설치폴더}/sqllib/lib64
D'Amo DA 설치 지침서
_69
$> ln –s $SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$> cd {DB설치폴더}/sqllib/function
$> ln –s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.so
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
70_ IV. DB2
D_AGTID is replaced by AGT1
$>
② 001.inner_function.db2.sql, 002.user_interface.db2.sql 파일의 생성
여부와 내용을 확인한다.
5) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 함수를 설치한다.
$> db2 connect to sample
$> db2 -td@ -vf 001.inner_function.db2.sql
$> db2 -td@ -vf 002.user_interface.db2.sql
② 특정 DB 사용자에게 함수 실행 권한을 부여한다.
$> db2 connect to sample
$> db2 -td@ -vf 003.grant_execute_functions.sql
6) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
7) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위
로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo DA 설치 지침서
_71
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
8) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명 이다.
DB2 => SELECT ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc') FROM
sysibm.sysdummy1
ENC_STR( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
DB2 => SELECT DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR(( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc')) FROM
sysibm.sysdummy1
DEC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
72_ IV. DB2
abc
1.2 WINDOWS 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- damoscpdb.dll 파일
- scpdb_agent. dll 파일
- cis_cc-3.1. dll 파일
- cis_ce-3.1. dll 파일
sql 파일
- 001.inner_function.db2 파일
- 002.user_interface.db2 파일
- 003.grant_execute_functions.sql 파일
- 009.da_test.sql 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
License 파일
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
acl_cli 파일
D'Amo DA 설치 지침서
_73
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 5] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
환경변수 추가
02 KMS 연동 설치 절차
1) 환경변수 설정
"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타
나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME
변수와 값을 추가한다.
DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.
74_ IV. DB2
[그림 3] 환경변수 설정 다이얼로그
2) 폴더 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.
폴더 생성
환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)
과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더
를 생성한다.
생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.
Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에
"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename
해야한다.
D'Amo DA 설치 지침서
_75
② 생성한 폴더에 파일을 복사한다.
$SCP_INST_HOME 폴더에 파일 복사
acl_cli, cis_cc-3.1.dll, cis_ce-3.1.dll, damoscpdb.dll, scpdb_agent.dll,
scpdb_agent.ini, license.cer, privilege.damo 파일을
$SCP_INST_HOME 위치에 복사한다.
{DB설치폴더}/sqllib/function에 damoscpdb.dll 파일을 복사하고,
cis_cc-3.1.dll, cis_ce-3.1.dll, scpdb_agent.dll 파일을 {시스템폴더}
에 복사한다. {시스템폴더}는 일반적으로 c:\windows\system32
폴더를 말한다.
$SCP_INST_HOME/key 폴더에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME /key 폴더에 복사한다.
$SCP_INST_HOME/sql 폴더에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME\sql 디렉토
리에 복사한다.
76_ IV. DB2
3) sql 파일 생성
① 텍스트 편집기를 이용하여 001.inner_function.ora 파일의
libdamoscpdb.so 를 damoscpdb.dll로 수정한다.
002.user_interface_java.ora 파일의 D_INI, D_DBNAME, D_AGTID
값을 수정한다.
D_INI 는 설정 초기화 파일(scpdb_agent.ini)의 경로로
e:\dbms_api\scpdb_agent.ini처럼 변경하며, D_DBNAME 과 D_AGTID
는 agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
② 001.inner_function.db2 파일을 001.inner_function.db2.sql 파일로
rename 한다.
③ 002.user_interface.db2 파일을 002.user_interface.db2.sql 파일로
rename 한다.
4) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 함수를 설치한다.
:\> db2 connect to sample
:\> db2 -td@ -vf 001.inner_function.db2.sql
:\> db2 -td@ -vf 002.user_interface.db2.sql
② 특정 DB 사용자에게 함수 실행 권한을 부여한다.
:\> db2 connect to sample
:\> db2 -td@ -vf 003.grant_execute_functions.sql
5) 설정 파일 수정
$SCP_INST_HOME 폴더에 있는 DA Encryption 설정 파일
(scpdb_agent.ini)중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
D'Amo DA 설치 지침서
_77
6) CLI에서 권한 설정
DOS 커맨드로 $SCP_INST_HOME 에서 acl_cli 파일을 실행하여
USER 단위로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부
여받는 USER명, OWNER 는 암호 테이블 소유자명, TABLE 은 암호
테이블명, COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
C:\> cd E:\dbms_api
E:\dbms_api> acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
7) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
DB2 => SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',
'abc') FROM sysibm.sysdummy1
ENC_STR('OWNER','TABLE','COLUMN','abc')
78_ IV. DB2
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
DB2 => SELECT DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc')) FROM
sysibm.sysdummy1
DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
abc
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타
나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME
변수와 값을 추가한다.
DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.
[그림 4] 환경변수 설정 다이얼로그
D'Amo DA 설치 지침서
_79
2) 폴더 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.
폴더 생성
환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)
과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더
를 생성한다.
생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.
Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에
"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename
해야한다.
② 생성한 폴더에 파일을 복사한다.
$SCP_INST_HOME 폴더에 파일 복사
acl_cli, cis_cc-3.1.dll, cis_ce-3.1.dll, damoscpdb.dll, scpdb_agent.dll,
scpdb_agent.ini, license.cer, privilege.damo 파일을
80_ IV. DB2
$SCP_INST_HOME 위치에 복사한다.
{DB설치폴더}/sqllib/function에 damoscpdb.dll 파일을 복사하고,
cis_cc-3.1.dll, cis_ce-3.1.dll, scpdb_agent.dll 파일을 {시스템폴더}
에 복사한다. {시스템폴더}는 일반적으로 c:\windows\system32
폴더를 말한다.
$SCP_INST_HOME/key 폴더에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME /key 폴더에 복사한다.
$SCP_INST_HOME/sql 폴더에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME\sql 디렉토
리에 복사한다.
3) sql 파일 생성
① 텍스트 편집기를 이용하여 001.inner_function.ora 파일의
libdamoscpdb.so 를 damoscpdb.dll로 수정한다.
002.user_interface_java.ora 파일의 D_INI, D_DBNAME, D_AGTID
값을 수정한다.
D_INI 는 설정 초기화 파일(scpdb_agent.ini)의 경로로
e:\dbms_api\scpdb_agent.ini처럼 변경하며, D_DBNAME 과 D_AGTID
는 agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
② 001.inner_function.db2 파일을 001.inner_function.db2.sql 파일로
rename 한다.
③ 002.user_interface.db2 파일을 002.user_interface.db2.sql 파일로
rename 한다.
4) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 함수를 설치한다.
:\> db2 connect to sample
:\> db2 -td@ -vf 001.inner_function.db2.sql
D'Amo DA 설치 지침서
_81
:\> db2 -td@ -vf 002.user_interface.db2.sql
② 특정 DB 사용자에게 함수 실행 권한을 부여한다.
:\> db2 connect to sample
:\> db2 -td@ -vf 003.grant_execute_functions.sql
5) 설정 파일 수정
$SCP_INST_HOME 폴더에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
6) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위
로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
C:\> cd E:\dbms_api
E:\dbms_api> acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
82_ IV. DB2
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
7) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명 이다.
DB2 => SELECT ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc') FROM
sysibm.sysdummy1
ENC_STR( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
DB2 => SELECT DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR(( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc')) FROM
sysibm.sysdummy1
DEC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
abc
2. 함수 설명
DA에서 제공되는 함수와 사용하는 방법에 대해서 설명한다.
2.1 함수 설명
DA에서 제공하는 함수는 아래와 같다.
D'Amo DA 설치 지침서
_83
함수 명 입력 출력
ENC_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
ENC_B64 I_OWNER IN 문자열,
Base64 Encording
암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
DEC_STR I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(Hex String 암호문)
DEC_B64 I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(base64 String
암호문)
INDEX_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
HASH_STR
I_ALOG IN 숫자,
SHA1
=70 Hex String
해쉬 암호문
SHA256
=71
SHA384
=72
84_ IV. DB2
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HASH_B64
I_ALOG IN 숫자,
SHA1
=70
Base64 String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HEXTOB64
I_DATA IN 문자열
(Hex String 암호문)
base64 Encording
암호문
B64TOHEX
I_DATA
IN 문자열
(base64 Encording 암호
문)
Hex String 암호
문
CONFIG_REINIT SUCCESS
2.2 함수 호출 예제
암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은
COL, 암호할 데이터는 ‘abc’ 로 가정한다.
① ENC_STR
DB2 => SELECT ENC_STR('SCP', 'TAB', 'COL', 'abc')
FROM sysibm.sysdummy1;
② ENC_B64
DB2 => SELECT ENC_B64('SCP', 'TAB', 'COL', 'abc')
FROM sysibm.sysdummy1;
③ DEC_STR
D'Amo DA 설치 지침서
_85
DB2 => SELECT DEC_STR('SCP', 'TAB', 'COL',
ENC_STR('SCP', 'TAB', 'COL', 'abc')) FROM
sysibm.sysdummy1;
④ DEC_B64
DB2 => SELECT DEC_B64('SCP', 'TAB', 'COL',
ENC_B64('SCP', 'TAB', 'COL', 'abc')) FROM
sysibm.sysdummy1;
⑤ INDEX_STR
Plug-IN 연동 하지 않을 경우
DB2 => SELECT INDEX_STR('SCP', 'TAB', 'COL', 'abc',
'') FROM sysibm.sysdummy1;
Plug-IN 연동 할 경우
DB2 => SELECT INDEX_STR( 'SCP', 'TAB', 'COL', 'abc',
'IX') FROM sysibm.sysdummy1;
⑥ HASH_STR
DB2 => SELECT HASH_STR( 72, 'abc' ) FROM
sysibm.sysdummy1;
⑦ HASH_B64
DB2 => SELECT HASH_B64( 72, 'abc' ) FROM
sysibm.sysdummy1;
⑧ HEXTOB64
DB2 => SELECT
HEXTOB64('A305378D8F974F1C1537ED7CB0CB959245D1AC31')
FROM sysibm.sysdummy1;
⑨ B64TOHEX
DB2 => SELECT
B64TOHEX('owU3jY+XTxwVN+18sMuVkkXRrDE=') FROM
sysibm.sysdummy1;
86_ IV. DB2
⑩ CONFIG_REINIT
DB2 => SELECT CONFIG_REINIT() FROM sysibm.sysdummy1;
V TIBERO
3. 설치 절차
4. 함수 설명
88_ V. TIBERO
V. TIBERO
DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전 준
비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.
1. 설치 절차
UNIX, WINDOWS 환경에 따라 아래의 절차에 의해 설치한다.
1.1 UNIX 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- libdamoscpdb.{so|a|sl} 파일
- libscpdb_agent.{so|a|sl} 파일
- libcis_cc-3.1.{so|a|sl} 파일
- libcis_ce-3.1.{so|a|sl} 파일
sql 파일
- 001.inner_function.tbs 파일
- 002.user_interface.tbs 파일
- 003.grant_execute_functions.sql 파일
- 009.da_test.sql 파일
- install_make.sh 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
License 파일
D'Amo DA 설치 지침서
_89
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는
_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 6] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
DB 엔진 설치 계정의 . profile 파일 수정
02 KMS 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 TIBERO 계정 /home/dbms_api 에 설치된다고 가정한
다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
90_ V. TIBERO
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
폴더 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo 파일을 $SCP_INST_HOME 위치에 복
사한다.
$TB_HOME/lib 디렉토리에 library 파일의 symbolic link 파일을
생성한다.
$> cd $TB_HOME/lib
$> ln –s $SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
D'Amo DA 설치 지침서
_91
$> ln –s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.{so|a|sl}
$> ln –s $SCP_INST_HOME/libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
② 001.inner_function.tbs.sql 파일과 002.user_interface.tbs.sql 파일의 생
성 여부와 내용을 확인한다.
92_ V. TIBERO
5) SCP 계정 생성
DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게
CONNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.
SQL> CREATE USER SCP IDENTIFIED BY [password];
User created.
SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;
Grant succeeded.
SQL>
6) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
002.user_interface.tbs.sql 파일을 실행한다.
SQL> CREATE LIBRARY SECURE_SCP_LIB AS '/
fullpath_of_SCP_INST_HOME/libdamoscpdb.{so|a|sl}';
/
SQL> START 001.inner_function.tbs.sql
Function created.
׃
Function created.
SQL> START 002.user_interface.tbs.sql
Function created.
׃
Function created.
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다.
D'Amo DA 설치 지침서
_93
SQL> START 003.grant_execute_functions.sql
Granted.
׃
Granted.
7) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
8) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위
로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명, OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
94_ V. TIBERO
9) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
SQL> SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',
'abc') FROM DUAL;
ENC_STR('OWNER','TABLE','COLUMN','abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc')) FROM
DUAL;
DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
abc
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 TIBERO 계정 /home/dbms_api 에 설치된다고 가정한
다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
D'Amo DA 설치 지침서
_95
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
디렉토리 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo, .SCP 파일을 $SCP_INST_HOME 위치
에 복사한다.
$TB_HOME/lib 디렉토리에 library 파일의 symbolic link 파일을
생성한다.
$> cd $ORACLE_HOME/lib
$> ln –s $ SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $ SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
$> ln –s $ SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.{so|a|sl}
$> ln –s $ SCP_INST_HOME/ libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
96_ V. TIBERO
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
② 001.inner_function.tbs.sql 파일과 002.user_interface.tbs.sql 파일의
생성 여부와 내용을 확인한다.
5) SCP 계정 생성
DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게
CONNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.
SQL> CREATE USER SCP IDENTIFIED BY [password];
D'Amo DA 설치 지침서
_97
User created.
SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;
Grant succeeded.
SQL>
6) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
002.user_interface.tbs.sql 파일을 실행한다.
SQL> CREATE LIBRARY SECURE_SCP_LIB AS '/
fullpath_of_SCP_INST_HOME/libdamoscpdb.{so|a|sl}';
/
SQL> START 001.inner_function.tbs.sql
Function created.
׃
Function created.
SQL> START 002.user_interface.tbs.sql
Function created.
׃
Function created.
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다.
SQL> START 003.grant_execute_functions.sql
Granted.
׃
Granted.
98_ V. TIBERO
7) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
8) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위
로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
9) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
D'Amo DA 설치 지침서
_99
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명 이다.
SQL> SELECT ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc') FROM DUAL;
ENC_STR( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR(( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc')) FROM DUAL;
DEC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
abc
2. 함수 설명
DA에서 제공되는 함수와 사용하는 방법에 대해서 설명한다.
2.1 함수 설명
DA에서 제공하는 함수는 아래와 같다.
함수 명 입력 출력
ENC_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
ENC_B64 I_OWNER IN 문자열,
Base64 Encording
암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
100_ V. TIBERO
DEC_STR I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(Hex String 암호문)
DEC_B64 I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(base64 String
암호문)
INDEX_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
HASH_STR
I_ALOG IN 숫자,
SHA1
=70
Hex String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HASH_B64
I_ALOG IN 숫자,
SHA1
=70
Base64 String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
D'Amo DA 설치 지침서
_101
I_DATA IN 문자열
HEXTOB64
I_DATA IN 문자열
(Hex String 암호문)
base64 Encording
암호문
B64TOHEX
I_DATA
IN 문자열
(base64 Encording 암호
문)
Hex String 암호
문
CONFIG_REINIT SUCCESS
2.2 함수 호출 예제
암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은
COL, 암호할 데이터는 ‘abc’ 로 가정한다.
① ENC_STR
SQL> SELECT ENC_STR('SCP', 'TAB', 'COL', 'abc') FROM
DUAL;
② ENC_B64
SQL> SELECT ENC_B64('SCP', 'TAB', 'COL', 'abc') FROM
DUAL;
③ DEC_STR
SQL> SELECT DEC_STR('SCP', 'TAB', 'COL',
ENC_STR('SCP', 'TAB', 'COL', 'abc')) FROM DUAL;
④ DEC_B64
SQL> SELECT DEC_B64('SCP', 'TAB', 'COL',
ENC_B64('SCP', 'TAB', 'COL', 'abc')) FROM DUAL;
⑤ INDEX_STR
Plug-IN 연동 하지 않을 경우
SQL> SELECT INDEX_STR('SCP', 'TAB', 'COL', 'abc', '')
FROM DUAL;
102_ V. TIBERO
Plug-IN 연동 할 경우
SQL> SELECT INDEX_STR( 'SCP', 'TAB', 'COL', 'abc',
'IX') FROM DUAL;
⑥ HASH_STR
SQL> SELECT HASH_STR( 72, 'abc' ) FROM DUAL;
⑦ HASH_B64
SQL> SELECT HASH_B64( 72, 'abc' ) FROM DUAL;
⑧ HEXTOB64
SQL> SELECT
HEXTOB64('A305378D8F974F1C1537ED7CB0CB959245D1AC31')
FROM DUAL;
⑨ B64TOHEX
SQL> SELECT B64TOHEX('owU3jY+XTxwVN+18sMuVkkXRrDE=')
FROM DUAL;
⑩ CONFIG_REINIT
SQL> SELECT CONFIG_REINIT() FROM DUAL;
V TIBERO
1. 설치 절차
2. 함수 설명
106_ VI. TIBERO
VI. TIBERO
DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전 준
비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.
1. 설치 절차
UNIX, WINDOWS 환경에 따라 아래의 절차에 의해 설치한다.
1.1 UNIX 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- libdamoscpdb.{so|a|sl} 파일
- libscpdb_agent.{so|a|sl} 파일
- libcis_cc-3.1.{so|a|sl} 파일
- libcis_ce-3.1.{so|a|sl} 파일
sql 파일
- 001.inner_function.tbs 파일
- 002.user_interface.tbs 파일
- 003.grant_execute_functions.sql 파일
- 009.da_test.sql 파일
- install_make.sh 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
License 파일
D'Amo DA 설치 지침서
_107
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는
_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 7] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
DB 엔진 설치 계정의 . profile 파일 수정
02 KMS 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 TIBERO 계정 /home/dbms_api 에 설치된다고 가정한
다.
⑪ SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
108_ VI. TIBERO
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
⑫ DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
폴더 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
⑬ 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo 파일을 $SCP_INST_HOME 위치에 복
사한다.
$TB_HOME/lib 디렉토리에 library 파일의 symbolic link 파일을
생성한다.
$> cd $TB_HOME/lib
$> ln –s $SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
D'Amo DA 설치 지침서
_109
$> ln –s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.{so|a|sl}
$> ln –s $SCP_INST_HOME/libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
⑭ $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
⑮ 001.inner_function.tbs.sql 파일과 002.user_interface.tbs.sql 파일의 생
성 여부와 내용을 확인한다.
110_ VI. TIBERO
5) SCP 계정 생성
DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게
CONNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.
SQL> CREATE USER SCP IDENTIFIED BY [password];
User created.
SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;
Grant succeeded.
SQL>
6) 함수 설치
16 $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
002.user_interface.tbs.sql 파일을 실행한다.
SQL> CREATE LIBRARY SECURE_SCP_LIB AS '/
fullpath_of_SCP_INST_HOME/libdamoscpdb.{so|a|sl}';
/
SQL> START 001.inner_function.tbs.sql
Function created.
׃
Function created.
SQL> START 002.user_interface.tbs.sql
Function created.
׃
Function created.
17 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다.
D'Amo DA 설치 지침서
_111
SQL> START 003.grant_execute_functions.sql
Granted.
׃
Granted.
7) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
8) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위
로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명, OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
112_ VI. TIBERO
9) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
SQL> SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',
'abc') FROM DUAL;
ENC_STR('OWNER','TABLE','COLUMN','abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc')) FROM
DUAL;
DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
abc
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 TIBERO 계정 /home/dbms_api 에 설치된다고 가정한
다.
18 SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
D'Amo DA 설치 지침서
_113
2) 디렉토리 생성 및 파일 복사
19 DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
디렉토리 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
20 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo, .SCP 파일을 $SCP_INST_HOME 위치
에 복사한다.
$TB_HOME/lib 디렉토리에 library 파일의 symbolic link 파일을
생성한다.
$> cd $ORACLE_HOME/lib
$> ln –s $ SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $ SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
$> ln –s $ SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.{so|a|sl}
$> ln –s $ SCP_INST_HOME/ libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
114_ VI. TIBERO
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
21 $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
22 001.inner_function.tbs.sql 파일과 002.user_interface.tbs.sql 파일의
생성 여부와 내용을 확인한다.
5) SCP 계정 생성
DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게
CONNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.
SQL> CREATE USER SCP IDENTIFIED BY [password];
D'Amo DA 설치 지침서
_115
User created.
SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;
Grant succeeded.
SQL>
6) 함수 설치
23 $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
002.user_interface.tbs.sql 파일을 실행한다.
SQL> CREATE LIBRARY SECURE_SCP_LIB AS '/
fullpath_of_SCP_INST_HOME/libdamoscpdb.{so|a|sl}';
/
SQL> START 001.inner_function.tbs.sql
Function created.
׃
Function created.
SQL> START 002.user_interface.tbs.sql
Function created.
׃
Function created.
24 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다.
SQL> START 003.grant_execute_functions.sql
Granted.
׃
Granted.
116_ VI. TIBERO
7) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
8) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위
로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
9) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
D'Amo DA 설치 지침서
_117
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명 이다.
SQL> SELECT ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc') FROM DUAL;
ENC_STR( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR(( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc')) FROM DUAL;
DEC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
abc
2. 함수 설명
DA에서 제공되는 함수와 사용하는 방법에 대해서 설명한다.
2.1 함수 설명
DA에서 제공하는 함수는 아래와 같다.
함수 명 입력 출력
ENC_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
ENC_B64 I_OWNER IN 문자열,
Base64 Encording
암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
118_ VI. TIBERO
DEC_STR I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(Hex String 암호문)
DEC_B64 I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(base64 String
암호문)
INDEX_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
HASH_STR
I_ALOG IN 숫자,
SHA1
=70
Hex String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HASH_B64
I_ALOG IN 숫자,
SHA1
=70
Base64 String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
D'Amo DA 설치 지침서
_119
I_DATA IN 문자열
HEXTOB64
I_DATA IN 문자열
(Hex String 암호문)
base64 Encording
암호문
B64TOHEX
I_DATA
IN 문자열
(base64 Encording 암호
문)
Hex String 암호
문
CONFIG_REINIT SUCCESS
2.2 함수 호출 예제
암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은
COL, 암호할 데이터는 ‘abc’ 로 가정한다.
25 ENC_STR
SQL> SELECT ENC_STR('SCP', 'TAB', 'COL', 'abc') FROM
DUAL;
26 ENC_B64
SQL> SELECT ENC_B64('SCP', 'TAB', 'COL', 'abc') FROM
DUAL;
27 DEC_STR
SQL> SELECT DEC_STR('SCP', 'TAB', 'COL',
ENC_STR('SCP', 'TAB', 'COL', 'abc')) FROM DUAL;
28 DEC_B64
SQL> SELECT DEC_B64('SCP', 'TAB', 'COL',
ENC_B64('SCP', 'TAB', 'COL', 'abc')) FROM DUAL;
29 INDEX_STR
Plug-IN 연동 하지 않을 경우
SQL> SELECT INDEX_STR('SCP', 'TAB', 'COL', 'abc', '')
FROM DUAL;
120_ VI. TIBERO
Plug-IN 연동 할 경우
SQL> SELECT INDEX_STR( 'SCP', 'TAB', 'COL', 'abc',
'IX') FROM DUAL;
30 HASH_STR
SQL> SELECT HASH_STR( 72, 'abc' ) FROM DUAL;
31 HASH_B64
SQL> SELECT HASH_B64( 72, 'abc' ) FROM DUAL;
32 HEXTOB64
SQL> SELECT
HEXTOB64('A305378D8F974F1C1537ED7CB0CB959245D1AC31')
FROM DUAL;
33 B64TOHEX
SQL> SELECT B64TOHEX('owU3jY+XTxwVN+18sMuVkkXRrDE=')
FROM DUAL;
34 CONFIG_REINIT
SQL> SELECT CONFIG_REINIT() FROM DUAL;
VI SYBASE IQ
1. 설치 절차
2. 함수 설명
122_ VII. SYBASE IQ
VII. SYBASE IQ
DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전 준
비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.
1. 설치 절차
UNIX, WINDOWS 환경에 따라 아래의 절차에 의해 설치한다.
1.1 UNIX 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- libdamoscpdb.{so|a|sl} 파일
- libscpdb_agent.{so|a|sl} 파일
- libcis_cc-3.1.{so|a|sl} 파일
- libcis_ce-3.1.{so|a|sl} 파일
sql 파일
- 001.inner_function.sybiq 파일
- 002.user_interface. sybiq 파일
- 003.grant_execute_functions.sql 파일
- 009.da_test.sql 파일
- install_make.sh 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
D'Amo DA 설치 지침서
_123
License 파일
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는
_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 8] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 서버 재시작 또는 DB 서버의 listener 재시작
DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
DB 엔진 설치 계정의 . profile 파일 수정
02 KMS 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 SYBASE IQ 계정 /home/dbms_api 에 설치된다고 가정
한다.
124_ VII. SYBASE IQ
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
폴더 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo 파일을 $SCP_INST_HOME 위치에 복
사한다.
또한 SYBASE IQ 홈의 lib64 위치에 library 파일의 symbolic
link 파일을 생성한다.
D'Amo DA 설치 지침서
_125
libdamoscpdb.{so|a|sl} 파일의 symbolic link 파일을 생성할 때
는 항상 so 파일로 생성한다.
$> cd $IQDIR15/lib64
$> ln –s $SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
$> ln –s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.so
$> ln –s $SCP_INST_HOME/libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
126_ VII. SYBASE IQ
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
② 001.inner_function.sybiq.sql 파일과 002.user_interface. sybiq.sql 파일
의 생성 여부와 내용을 확인한다.
5) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 함수를 설치한다.
(DBA)> READ 001.inner_function.sybiq.sql
Execution time: 0.193 seconds
(DBA)> READ 002.user_interface.sybiq.sql
Execution time: 0.226 seconds
(DBA)>
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다.
(DBA)> READ 003.grant_execute_functions.sql
Execution time: 0.04 seconds
(DBA)>
6) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
D'Amo DA 설치 지침서
_127
7) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명,
OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
8) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
(DBA)> SELECT ENC_STR('OWNER', 'TABLE', 'COLUMN',
'abc')
ENC_STR('OWNER', 'TABLE', 'COLUMN','abc')
128_ VII. SYBASE IQ
-----------------------------------------------------
E6878572B3287A049906A8CA57F0207C
(1 rows)
Execution time: 0.01 seconds
(DBA)> SELECT DEC_STR('OWNER', 'TABLE', 'COLUMN',
ENC_STR('OWNER', 'TABLE', 'COLUMN', 'abc'))
DEC_STR('OWNER', 'TABLE', 'COLUMN', ENC_STR('OWNER',
'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
abc
(1 rows)
Execution time: 0.029 seconds
(DBA)>
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 SYBASE IQ 계정 /home/dbms_api 에 설치된다고 가정
한다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
D'Amo DA 설치 지침서
_129
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
디렉토리 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.{so|a|sl}, libcis_ce-3.1.{so|a|sl},
libdamoscpdb.{so|a|sl}, libscpdb_agent.{so|a|sl}, scpdb_agent.ini,
license.cer, privilege.damo, .SCP 파일을 $SCP_INST_HOME 위치
에 복사한다.
또한 SYBASE IQ 홈의 lib64 위치에 library 파일의 symbolic
link 파일을 생성한다.
libdamoscpdb.{so|a|sl} 파일의 symbolic link 파일을 생성할 때
는 항상 so 파일로 생성한다.
$> cd $IQDIR15/lib
$> ln –s $ SCP_INST_HOME/libcis_cc-3.1.{so|a|sl}
libcis_cc-3.1.{so|a|sl}
$> ln –s $ SCP_INST_HOME/libcis_ce-3.1.{so|a|sl}
libcis_ce-3.1.{so|a|sl}
$> ln –s $ SCP_INST_HOME/libdamoscpdb.{so|a|sl}
libdamoscpdb.so
130_ VII. SYBASE IQ
$> ln –s $ SCP_INST_HOME/ libscpdb_agent.{so|a|sl}
libscpdb_agent.{so|a|sl}
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli sql/install_make.sh
4) sql 파일 생성
① $SCP_INST_HOME/sql 디렉토리에서 install_make.sh을 이용하여
설치할 sql 파일을 생성한다. D_INI 는 설정 초기화
파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과 D_AGTID 는
agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이다.
$> cd $SCP_INST_HOME/sql
$> ./install_make.sh D_INI D_DBNAME D_AGTID
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
$> ./install_make.sh /home/dbms_api DB1 AGT1
D_INI_PATH is replaced by /home/dbms_api
D_DBNAME is replaced by DB1
D_AGTID is replaced by AGT1
$>
② 001.inner_function.ora.sql 파일과 java 버전의 경우
002.user_interface_java.ora.sql 파일, C 버전의 경우
002.user_interface.ora.sql 파일의 생성 여부와 내용을 확인한다.
D'Amo DA 설치 지침서
_131
5) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 함수를 설치한다.
(DBA)> READ 001.inner_function.sybiq.sql
Execution time: 0.193 seconds
(DBA)> READ 002.user_interface.sybiq.sql
Execution time: 0.226 seconds
(DBA)>
② 특정 DB 사용자에게 함수 실행 권한을 부여한다. 모든
사용자에게 함수 실행 권한을 부여할 때는
003.grant_execute_functions.sql 파일을 실행한다.
(DBA)> READ 003.grant_execute_functions.sql
Execution time: 0.04 seconds
(DBA)>
6) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
7) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명
이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
132_ VII. SYBASE IQ
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
8) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명 이다.
(DBA)> SELECT ENC_STR('DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc')
ENC_STR('DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP','abc')
-----------------------------------------------------
E6878572B3287A049906A8CA57F0207C
(1 rows)
Execution time: 0.01 seconds
D'Amo DA 설치 지침서
_133
(DBA)> SELECT DEC_STR('DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR('DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc'))
DEC_STR('DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR('DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
abc
(1 rows)
Execution time: 0.029 seconds
(DBA)>
2. 함수 설명
DA에서 제공되는 함수와 사용하는 방법에 대해서 설명한다.
2.1 함수 설명
DA에서 제공하는 함수는 아래와 같다.
함수 명 입력 출력
ENC_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
ENC_B64 I_OWNER IN 문자열,
Base64 Encording
암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
DEC_STR I_OWNER IN 문자열, 평문
I_TABLE IN 문자열,
134_ VII. SYBASE IQ
I_COLUMN IN 문자열,
I_DATA IN 문자열
(Hex String 암호문)
DEC_B64 I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(base64 String
암호문)
INDEX_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
HASH_STR
I_ALOG IN 숫자,
SHA1
=70
Hex String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HASH_B64
I_ALOG IN 숫자,
SHA1
=70
Base64 String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
D'Amo DA 설치 지침서
_135
HEXTOB64
I_DATA IN 문자열
(Hex String 암호문)
base64 Encording
암호문
B64TOHEX
I_DATA
IN 문자열
(base64 Encording 암호
문)
Hex String 암호
문
CONFIG_REINIT SUCCESS
2.2 함수 호출 예제
암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은
COL, 암호할 데이터는 ‘abc’ 로 가정한다.
① ENC_STR
(DBA)> SELECT ENC_STR('SCP', 'TAB', 'COL', 'abc');
② ENC_B64
(DBA)> SELECT ENC_B64('SCP', 'TAB', 'COL', 'abc');
③ DEC_STR
(DBA)> SELECT DEC_STR('SCP', 'TAB', 'COL',
ENC_STR('SCP', 'TAB', 'COL', 'abc'));
④ DEC_B64
(DBA)> SELECT DEC_B64('SCP', 'TAB', 'COL',
ENC_B64('SCP', 'TAB', 'COL', 'abc'));
⑤ INDEX_STR
Plug-IN 연동 하지 않을 경우
(DBA)> SELECT INDEX_STR('SCP', 'TAB', 'COL', 'abc',
'');
Plug-IN 연동 할 경우
136_ VII. SYBASE IQ
(DBA)> SELECT INDEX_STR( 'SCP', 'TAB', 'COL', 'abc',
'IX');
⑥ HASH_STR
(DBA)> SELECT HASH_STR( 72, 'abc' );
⑦ HASH_B64
(DBA)> SELECT HASH_B64( 72, 'abc' );
⑧ HEXTOB64
(DBA)> SELECT
HEXTOB64('A305378D8F974F1C1537ED7CB0CB959245D1AC31');
⑨ B64TOHEX
(DBA)> SELECT
B64TOHEX('owU3jY+XTxwVN+18sMuVkkXRrDE=');
VIII CUBRID
1. 설치 절차
2. 함수 설명
138_ VIII. CUBRID
VIII. CUBRID
DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전 준
비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.
1. 설치 절차
UNIX, WINDOWS 환경에 따라 아래의 절차에 의해 설치한다.
CUBRID 에서 외부 라이브러리를 연동하기 위해서는 다음과
CUBRID 설정파일($CUBRID/conf/cubrid.conf)에 java_stored_procedure
부분을 yes 로 변경하고 재시작한다.
1.1 UNIX 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- libdamoscpdb.so 파일
- libscpdb_agent.so 파일
- libcis_cc-3.1.so 파일
- libcis_ce-3.1.so 파일
sql 파일
- 001.inner_function.sql 파일
- 002.user_interface.sql 파일
- 009.da_test.sql 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
D'Amo DA 설치 지침서
_139
License 파일
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는
_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
java class 파일
- ScpAgentException.class
- ScpCryptData.class
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 9] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 서버 재시작
DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
DB 엔진 설치 계정의 . profile 파일 수정
JAVA_HOME의 읽기, 쓰기 권한
140_ VIII. CUBRID
02 KMS 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 CUBRID 계정 /home/dbms_api 에 설치된다고 가정한
다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
폴더 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.so, libcis_ce-3.1.so, libdamoscpdb.so,
D'Amo DA 설치 지침서
_141
libscpdb_agent.so, scpdb_agent.ini, license.cer, privilege.damo,
ScpAgentException.class, ScpCryptData.class 파일을
$SCP_INST_HOME 위치에 복사한다.
$> cd $CUBRID/lib
$> ln –s $SCP_INST_HOME/libcis_cc-3.1.so libcis_cc-
3.1.so
$> ln –s $SCP_INST_HOME/libcis_ce-3.1.so libcis_ce-
3.1.so
$> ln –s $SCP_INST_HOME/libdamoscpdb.so
libdamoscpdb.so
$> ln –s $SCP_INST_HOME/libscpdb_agent.so
libscpdb_agent.so
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli
4) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 함수를 설치한다. SCP 계정을 생성한 경우 SCP 계정에
설치한다.
$>csql -i001.inner_function.sql -udba demodb > 1.txt
$>csql -i002.user_interface.sql -udba demodb > 2.txt
② class 파일을 DBMS에서 인식하기 위해서 loadjava를 실행한다.
$>loadjava -y demodb ScpAgentException.class
142_ VIII. CUBRID
$>loadjava -y demodb ScpCryptData.class
5) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
6) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명,
OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
7) 함수 초기화 설정
함수를 사용하기 위한 정보를 초기화해주어야 한다. CUBRID에 접속
D'Amo DA 설치 지침서
_143
하여 다음을 실행한다.
INI는 설정 초기화 파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과
D_AGTID 는 agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이
다.
$>csql -udba demodb
csql>select DAMO_DA_INIT('INI', 'D_DBNAME',
'AGENT_ID';
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
csql>select
DAMO_DA_INIT('/home/dbms_api/scpdb_agent.ini', 'DB1',
'AGT1');
DAMO_DA_INIT('/home/dbms_api/scpdb_agent.ini', 'DB1',
'AGT1')
======================
'SUCCESS'
$>
8) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
csql> SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',
'abc');
ENC_STR('OWNER','TABLE','COLUMN','abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
csql> SELECT DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'));
DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
144_ VIII. CUBRID
abc
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
이 UNIX OS 의 CUBRID 계정 /home/dbms_api 에 설치된다고 가정한
다.
① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를
설정한다.
.profile을 사용하는 경우
export SCP_INST_HOME=/home/dbms_api
.cshrc를 사용하는 경우
setenv SCP_INST_HOME=/home/dbms_api
2) 디렉토리 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 디렉토리를 생성한다.
디렉토리 생성
환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을
“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.
생성한 log 디렉토리에 touch 명령어로 파일명이 “.lock” 인
빈 파일을 생성한다.
$> cd $SCP_INST_HOME
$SCP_INST_HOME> mkdir key
$SCP_INST_HOME> mkdir log
$SCP_INST_HOME> mkdir sql
$SCP_INST_HOME> cd log
$SCP_INST_HOME/log> touch .lock
② 생성한 디렉토리에 파일을 복사한다.
D'Amo DA 설치 지침서
_145
$SCP_INST_HOME 디렉토리에 파일 복사
acl_cli, libcis_cc-3.1.so, libcis_ce-3.1.so, libdamoscpdb.so,
libscpdb_agent.so, scpdb_agent.ini, license.cer, privilege.damo,
ScpAgentException.class, ScpCryptData.class, .SCP 파일을
$SCP_INST_HOME 위치에 복사한다.
$> cd $CUBRID/lib
$> ln –s $ SCP_INST_HOME/libcis_cc-3.1.so libcis_cc-
3.1.so
$> ln –s $ SCP_INST_HOME/libcis_ce-3.1.so libcis_ce-
3.1.so
$> ln –s $ SCP_INST_HOME/libdamoscpdb.so
libdamoscpdb.so
$> ln –s $ SCP_INST_HOME/ libscpdb_agent.so
libscpdb_agent.so
$SCP_INST_HOME/key 디렉토리에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME/key 디렉토리에 복사한다.
$SCP_INST_HOME/sql 디렉토리에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME/sql 디렉토
리에 복사한다.
3) 라이브러리 파일 및 실행파일에 권한 부여
라이브러리 파일 및 실행파일에 실행권한을 부여한다.
$> cd $SCP_INST_HOME
$> chmod 755 lib* acl_cli
4) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 함수를 설치한다. SCP 계정을 생성한 경우 SCP 계정에
설치한다.
$>csql -i001.inner_function.sql -udba demodb > 1.txt
$>csql -i002.user_interface.sql -udba demodb > 2.txt
② class 파일을 DBMS에서 인식하기 위해서 loadjava를 실행한다.
146_ VIII. CUBRID
$>loadjava -y demodb ScpAgentException.class
$>loadjava -y demodb ScpCryptData.class
5) 설정 파일 수정
$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
6) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명
이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
$> cd $SCP_INST_HOME
$> ./acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
D'Amo DA 설치 지침서
_147
7) 함수 초기화 설정
함수를 사용하기 위한 정보를 초기화해주어야 한다. CUBRID에 접속
하여 다음을 실행한다.
INI는 설정 초기화 파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과
D_AGTID 는 agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이
다.
$>csql -udba demodb
csql>select DAMO_DA_INIT('INI', 'D_DBNAME',
'AGENT_ID';
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
csql>select
DAMO_DA_INIT('/home/dbms_api/scpdb_agent.ini', 'DB1',
'AGT1');
DAMO_DA_INIT('/home/dbms_api/scpdb_agent.ini', 'DB1',
'AGT1')
======================
'SUCCESS'
$>
8) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명 이다.
SQL> SELECT ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc');
ENC_STR( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR(( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc'));
148_ VIII. CUBRID
DEC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
abc
1.2 WINDOWS 환경 설치
설치 전에 관련된 파일들을 준비하고, KMS 연동 및 SCP 파일 연동
에 따라 아래의 절차에 의해 설치한다.
01 설치 전 준비사항
DA Encryption 을 설치하기 전에 다음 준비가 필요하다.
Library 파일
- damoscpdb.dll 파일
- scpdb_agent. dll 파일
- cis_cc-3.1. dll 파일
- cis_ce-3.1. dll 파일
sql 파일
- 001.inner_function.sql 파일
- 002.user_interface.sql
- 009.da_test.sql 파일
설정 파일
DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설
정 파일(scpdb_agent.ini)의 값을 설정한다.
License 파일
DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.
License 파일(license.cer)은 제공업체가 별도로 제공한다.
D'Amo DA 설치 지침서
_149
Agent key 파일
Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,
damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용
한 DB NAME, AGENT ID를 숙지한다.
acl_cli 파일
DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.
privilege.damo 정책 파일
acl_cli에서 설정된 권한을 저장하는데 사용한다.
java class 파일
- ScpAgentException.class
- ScpCryptData.class
사전 조사
DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하
거나 준비한다. 사전에 조사할 사항들은 다음과 같다.
[표 10] DA Encryption 설치 조사 사항
구분 사전 인지 사항
사항 DB 서버 재시작 또는 DB 서버의 listener 재시작
DB 엔진 설치 계정에 폴더 생성
DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)
DB 서버의 DBA 권한 계정
환경변수 추가
JAVA_HOME의 읽기, 쓰기 권한
02 KMS 연동 설치 절차
1) 환경변수 설정
"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타
나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME
변수와 값을 추가한다.
DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.
150_ VIII. CUBRID
[그림 5] 환경변수 설정 다이얼로그
2) 폴더 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.
폴더 생성
환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)
과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더
를 생성한다.
생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.
Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에
"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename
해야한다.
D'Amo DA 설치 지침서
_151
② 생성한 폴더에 파일을 복사한다.
$SCP_INST_HOME 폴더에 파일 복사
acl_cli, cis_cc-3.1.dll, cis_ce-3.1.dll, damoscpdb.dll, scpdb_agent.dll,
scpdb_agent.ini, license.cer, privilege.damo, ScpAgentException.class,
ScpCryptData.class 파일을 $SCP_INST_HOME 위치에 복사한다.
Java 버전일 경우 ORACLE설치홈/lib 폴더에 libdamoscpdb.dll
을 복사 한 후 ORACLE설치홈/bin 폴더에 cis_cc-3.1.dll 파일,
cis_ce-3.1.dll 파일, scpdb_agent.dll 파일을 복사한다.
$SCP_INST_HOME/key 폴더에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME /key 폴더에 복사한다.
$SCP_INST_HOME/sql 폴더에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME\sql 디렉토
리에 복사한다.
152_ VIII. CUBRID
3) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
E:\dbms_api\sql>csql -i001.inner_function.sql -udba
demodb > 1.txt
E:\dbms_api\sql>csql -i002.user_interface.sql -udba
demodb > 2.txt
② class 파일을 DBMS에서 인식하기 위해서 loadjava를 실행한다.
E:\dbms_api>loadjava -y demodb
ScpAgentException.class
E:\dbms_api>loadjava -y demodb ScpCryptData.class
4) 설정 파일 수정
$SCP_INST_HOME 폴더에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath,
[AGENT_ID], CertFilePath, KeyFilePath, PinFilePath 값을 수정한다.
5) CLI에서 권한 설정
DOS 커맨드로 $SCP_INST_HOME 에서 acl_cli 파일을 실행하여 user
단위로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는
USER명, OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명,
COLUMN은 암호 컬럼명이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
C:\> cd E:\dbms_api
E:\dbms_api> acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
D'Amo DA 설치 지침서
_153
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN
D'Amo > SAVE ALL
D'Amo > SHOW ALL
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
6) 함수 초기화 설정
함수를 사용하기 위한 정보를 초기화해주어야 한다. CUBRID에 접속
하여 다음을 실행한다.
INI는 설정 초기화 파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과
D_AGTID 는 agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이
다.
e:\dbms_api>csql -udba demodb
csql>select DAMO_DA_INIT('INI', 'D_DBNAME',
'AGENT_ID';
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
csql>select
DAMO_DA_INIT('e:\dbms_api\scpdb_agent.ini', 'DB1',
'AGT1');
DAMO_DA_INIT('e:\dbms_api\scpdb_agent.ini', 'DB1',
'AGT1')
======================
'SUCCESS'
$>
7) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
154_ VIII. CUBRID
OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명,
COLUMN 은 암호 컬럼명이다.
SQL> SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',
'abc');
ENC_STR('OWNER','TABLE','COLUMN','abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'));
DEC_STR( 'OWNER', 'TABLE', 'COLUMN',
ENC_STR( 'OWNER', 'TABLE', 'COLUMN', 'abc'))
-----------------------------------------------------
abc
03 SCP 파일 연동 설치 절차
1) 환경변수 설정
"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타
나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME
변수와 값을 추가한다.
DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.
D'Amo DA 설치 지침서
_155
[그림 6] 환경변수 설정 다이얼로그
2) 폴더 생성 및 파일 복사
① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.
폴더 생성
환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)
과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더
를 생성한다.
생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.
Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에
"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename
해야한다.
156_ VIII. CUBRID
② 생성한 폴더에 파일을 복사한다.
$SCP_INST_HOME 폴더에 파일 복사
acl_cli, cis_cc-3.1.dll, cis_ce-3.1.dll, damoscpdb.dll, scpdb_agent.dll,
scpdb_agent.ini, license.cer, privilege.damo, ScpAgentException.class,
ScpCryptData.class, .SCP 파일을 $SCP_INST_HOME 위치에 복
사한다.
Java 버전일 경우 ORACLE설치홈/lib 폴더에 libdamoscpdb.dll
을 복사 한 후 ORACLE설치홈/bin 폴더에 cis_cc-3.1.dll 파일,
cis_ce-3.1.dll 파일, scpdb_agent.dll 파일을 복사한다.
$SCP_INST_HOME/key 폴더에 파일 복사
Agent key쌍(damo_agt.cer, damo_agt.key, damo_agt.pin) 파일을
$SCP_INST_HOME /key 폴더에 복사한다.
$SCP_INST_HOME/sql 폴더에 파일 복사
설치 전 준비사항의 sql 파일을 $SCP_INST_HOME\sql 디렉토
리에 복사한다.
D'Amo DA 설치 지침서
_157
3) 함수 설치
① $SCP_INST_HOME/sql 위치에서 DB 접속 후 설치를 원하는
DB계정에 LIBRARY 와 함수를 설치한다. SCP 계정을 생성한 경우
SCP 계정에 설치한다.
E:\dbms_api\sql>csql -i001.inner_function.sql -udba
demodb > 1.txt
E:\dbms_api\sql>csql -i002.user_interface.sql -udba
demodb > 2.txt
② class 파일을 DBMS에서 인식하기 위해서 loadjava를 실행한다.
E:\dbms_api>loadjava -y demodb
ScpAgentException.class
E:\dbms_api>loadjava -y demodb ScpCryptData.class
4) 설정 파일 수정
$SCP_INST_HOME 폴더에 있는 DA Encryption 설정 파일
(scpdb_agent.ini) 중 LicenseFilePath 값을 수정한다.
5) CLI에서 권한 설정
$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로
암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER명
이다.
CLI 명령어를 자세히 보려면 help 명령어를 실행한다.
C:\> cd E:\dbms_api
E:\dbms_api> acl_cli –start
Enter the PIN of CLI-key. : damo_agt.key 의 passwd
권한 추가할 경우
D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1
D'Amo > SAVE ALL
D'Amo > SHOW ALL
158_ VIII. CUBRID
권한 삭제할 경우
D'Amo > DEL PRIV ENC USER"DAMO"SCP".SCP파일
D'Amo > SAVE ALL
D'Amo > SHOW ALL
권한 추가시 OWNER 명, TABLE 명, COLUMN 명에 반드시
DAMO, SCP, .SCP 파일명 으로 추가하여야 한다.
CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE
ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적
용 여부를 확인 한다.
6) 함수 초기화 설정
함수를 사용하기 위한 정보를 초기화해주어야 한다. CUBRID에 접속
하여 다음을 실행한다.
INI는 설정 초기화 파일(scpdb_agent.ini)의 경로이고, D_DBNAME 과
D_AGTID 는 agent key쌍 발급시 이용한 DB NAME 과 AGENT ID 이
다.
e:\dbms_api>csql -udba demodb
csql>select DAMO_DA_INIT('INI', 'D_DBNAME',
'AGENT_ID';
예) DB NAME을 DB1, AGENT ID를 AGT1 로 가정한다.
csql>select
DAMO_DA_INIT('e:\dbms_api\scpdb_agent.ini', 'DB1',
'AGT1');
DAMO_DA_INIT('e:\dbms_api\scpdb_agent.ini', 'DB1',
'AGT1')
======================
'SUCCESS'
$>
D'Amo DA 설치 지침서
_159
7) 설치 확인
암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수
를 호출하여 설치를 성공했는지 확인한다.
함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP,
I_COLUMN 은 .SCP 파일명이다.
SQL> SELECT ENC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc');
ENC_STR( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc')
-----------------------------------------------------
5E41ACD673653158D7AE8C30CDA9627D3556E173
SQL> SELECT DEC_STR( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', ENC_STR(( 'DAMO', 'SCP',
'CBC_FIXED_Key_AES_128.SCP', 'abc'));
DEC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
ENC_STR(( 'DAMO', 'SCP', 'CBC_FIXED_Key_AES_128.SCP',
'abc'))
-----------------------------------------------------
abc
2. 함수 설명
DA에서 제공되는 함수와 사용하는 방법에 대해서 설명한다.
2.1 함수 설명
DA에서 제공하는 함수는 아래와 같다.
함수 명 입력 출력
ENC_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
160_ VIII. CUBRID
ENC_B64 I_OWNER IN 문자열,
Base64
Encording
암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문)
DEC_STR I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(Hex String 암호문)
DEC_B64 I_OWNER IN 문자열,
평문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열
(base64 String
암호문)
INDEX_STR I_OWNER IN 문자열,
Hex String 암호
문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (평문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
DEC_INDEX_STR I_OWNER IN 문자열,
암호문을 복호
화하여 Hex
String 암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
I_DATA IN 문자열 (암호문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
DEC_INDEX_B64 I_OWNER IN 문자열, 암호문을 복호
화하여 Hex
String 암호문
I_TABLE IN 문자열,
I_COLUMN IN 문자열,
D'Amo DA 설치 지침서
_161
I_DATA IN 문자열 (암호문),
I_TYPE
IN 문자열
'' or
'IX '(Plug-IN
연동 시 사용)
HASH_STR
I_ALOG IN 숫자,
SHA1
=70
Hex String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HASH_B64
I_ALOG IN 숫자,
SHA1
=70
Base64 String
해쉬 암호문
SHA256
=71
SHA384
=72
SHA512
=73
HAS160
=74
I_DATA IN 문자열
HEXTOB64
I_DATA IN 문자열
(Hex String 암호문)
base64 Encording
암호문
B64TOHEX
I_DATA
IN 문자열
(base64 Encording 암호
문)
Hex String 암호
문
CONFIG_REINIT SUCCESS
2.2 함수 호출 예제
암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은
COL, 암호할 데이터는 ‘abc’ 로 가정한다.
① ENC_STR
162_ VIII. CUBRID
SQL> SELECT ENC_STR('SCP', 'TAB', 'COL', 'abc');
② ENC_B64
SQL> SELECT ENC_B64('SCP', 'TAB', 'COL', 'abc');
③ DEC_STR
SQL> SELECT DEC_STR('SCP', 'TAB', 'COL',
ENC_STR('SCP', 'TAB', 'COL', 'abc'));
④ DEC_B64
SQL> SELECT DEC_B64('SCP', 'TAB', 'COL',
ENC_B64('SCP', 'TAB', 'COL', 'abc'));
⑤ INDEX_STR
Plug-IN 연동 하지 않을 경우
SQL> SELECT INDEX_STR('SCP', 'TAB', 'COL', 'abc',
'');
Plug-IN 연동 할 경우
SQL> SELECT INDEX_STR( 'SCP', 'TAB', 'COL', 'abc',
'IX');
⑥ DEC_INDEX_STR
Plug-IN 연동 하지 않을 경우
SQL> SELECT DEC_INDEX_STR('SCP', 'TAB', 'COL',
ENC_STR('SCP', 'TAB', 'COL', 'abc'), '');
Plug-IN 연동 할 경우
SQL> SELECT DEC_INDEX_STR( 'SCP', 'TAB', 'COL',
ENC_STR('SCP', 'TAB', 'COL', 'abc'), 'IX');
⑦ DEC_INDEX_B64
Plug-IN 연동 하지 않을 경우
D'Amo DA 설치 지침서
_163
SQL> SELECT DEC_INDEX_B64( 'SCP', 'TAB', 'COL',
ENC_B64('SCP', 'TAB', 'COL', 'abc'), '');
Plug-IN 연동 할 경우
SQL> SELECT DEC_INDEX_B64( 'SCP', 'TAB', 'COL',
ENC_B64('SCP', 'TAB', 'COL', 'abc'), 'IX');
⑧ HASH_STR
SQL> SELECT HASH_STR( 72, 'abc' );
⑨ HASH_B64
SQL> SELECT HASH_B64( 72, 'abc' );
⑩ HEXTOB64
SQL> SELECT
HEXTOB64('A305378D8F974F1C1537ED7CB0CB959245D1AC31');
⑪ B64TOHEX
SQL> SELECT B64TOHEX('owU3jY+XTxwVN+18sMuVkkXRrDE=');
⑫ CONIG_REINIT
SELECT CONFIG_REINIT();
VII 부록
1. SCP 파일 생성 방법
2. 에러 대응 가이드
166_ VIII. CUBRID
IX. 부록
SCP 파일을 생성하는 방법과 에러 발생시 대응할 수 있는 방법에 대
하여 설명한다.
1. SCP 파일 생성 방법
KMS 연동 없이 사용하기 위한 SCP 파일을 만들기 위해서는 설치
파일과 같이 배포되는 scpkeygen 유틸리티를 사용하여 만들 수 있다.
SCP 파일을 만드는 방법은 다음과 같다.
① 설치시 같이 배포되는 scpkeygen 유틸리티를 SCP 파일을 만들고자
하는 폴더에 복사한다.
② SCP 파일 생성을 위한 scpkeygen 유틸리티의 입력값은 다음과
같다.
scpkeygen AlgorithmID IVType OPMode [부분암호화시작위치
[,부분암호화길이]]
③ 첫번째 매개 변수인 AlgorithmID는 반드시 필요하며 다음과 같이
사용한다.
9 : SEED 128bit
12 : AES 128bit
13 : AES 256bit
14 : ARIA 128bit
15 : ARIA 256bit
④ 두번째 매개변수인 IVType은 반드시 필요하며 다음과 같이 사용한
다.
0 : FIXED IV
1 : RECORD_IV
D'Amo DA 설치 지침서
_167
⑤ 세번째 매개변수인 OPMode는 받드시 필요하며 다음과 같이
사용한다.
0 : CBC
1 : CFB
20 : FPO_NUM2NUM
21 : FPO_CHAR2CHAR
22 : FPO_UCHAR2UCHAR
23 : FPO_NUM2CHAR
24 : FPO_NUM2RRN
⑥ 네번째 매개변수인 부분암호화설정은 옵션이며 입력되지 않을 경
우 전체암호화이며, 입력할 경우 부분암호화를 할 수 있다.
부분암호화 시작위치는 부분암호화를 시작하고자 하는 위치
를 의미하며 예를 들어 부분암호화 시작 위치가 첫번째 글
자일 경우 1로 설정한다.
부분암호화 길이는 부분암호화를 몇 글자만큼 할 것인지를
의미하며 예를 들어 4자를 암호화할 경우 4로 설정한다.
⑦ SCPKeygen 사용 예제는 다음과 같다.
SEED 128bit, FIXED_IV, CBC로 전체 암호화할 경우 예시
C:\> SCPKeygen 9 0 0
AES 256bit, FIXED_IV, CBC 로 5번째 자리부터 암호화할 경
우 예시
C:\> SCPKeygen 13 0 0 5
ARIS 128bit, FIXED_IV, CBC 로 8번째 자리부터 6자리만 암
호화할 경우 예시
C:\> SCPKeygen 13 0 0 8,6
2. 에러 대응 가이드
고객 환경에 맞는 DA Encryption 설치시 발생할 수 있는 에러에 대해
168_ VIII. CUBRID
정리되었으며, 각 에러 발생시 어떤 대응을 해야 하는지 설명한다.
2.1 Error Code
에러코드의 내용은 다음과 같다.
값 Error Code 설명
0 SCPDB_SUCCESS 성공
-1 SCPDB_FAIL 실패
101 SCPDB_ERR_NOT_INITIALIZED 초기화 되지 않았다
104 SCPDB_ERR_CONFIG_READ 설정파일에 필요 필드값이 없음
105 SCPDB_ERR_CONFIG
_INVALID_SERVER_IP 설정파일에 잘못된 설정
106 SCPDB_ERR_CONFIG
_INVALID_SERVER_PORT 설정파일에 잘못된 설정
107 SCPDB_ERR_CONFIG
_INVALID_LICENSE_FILE_PATH 설정파일에 잘못된 설정
108 SCPDB_ERR_CONFIG
_INVALID_LOG_DIR 설정파일에 잘못된 설정
109 SCPDB_ERR_CONFIG
_INVALID_LOG_LEVEL 설정파일에 잘못된 설정
110 SCPDB_ERR_CONFIG
_INVALID_KEYCACHE_MAX 설정파일에 잘못된 설정
111 SCPDB_ERR_CONFIG
_INVALID_AGENTID_CERT_FILE_PATH 설정파일에 잘못된 설정
112 SCPDB_ERR_CONFIG
_INVALID_AGENTID_KEY_FILE_PATH 설정파일에 잘못된 설정
113 SCPDB_ERR_CONFIG
_INVALID_AGENTID_PIN_FILE_PATH 설정파일에 잘못된 설정
118 SCPDB_ERR_ALREADY_INITIALIZED 이미 초기화 되어있다
121 SCPDB_ERR_LICENSE_FILE_NOT_FOUND 라이선스 파일을 찾을 수 없음
122 SCPDB_ERR_LICENSE_INVALID_DATE 라이선스 기간 오류
123 SCPDB_ERR_LICENSE_INVALID_NAME 라이선스 제품명 오류
D'Amo DA 설치 지침서
_169
124 SCPDB_ERR_LICENSE_INVALID_HOST 라이선스 호스트(IP) 오류
125 SCPDB_ERR_LICENSE_INVALID_CPU_COUNT 라이선스 코어개수 오류
126 SCPDB_ERR_LICENSE_BUNDLE 번들 라이선스 기능 제약
130 SCPDB_ERR_CIS_INIT CIS_CC가 초기화 에러
201 SCPDB_ERR_INSUFFICIENT_ALLOC_LEN 할당된 메모리 길이 부족
202 SCPDB_ERR_INVALID_INPUT 잘못된 입력
203 SCPDB_ERR_INVALID_INPUT_LEN 잘못된 입력길이
204 SCPDB_ERR_NULLPOINT_INPUT 잘못된 입력(널포인트)
205 SCPDB_ERR_FILE_NOT_FOUND 파일을 찾을 수 없음
211 SCPDB_ERR_CONFIG_FILE_NOT_FOUND 파일을 찾을 수 없음
212 SCPDB_ERR_AGENT_CERT_FILE_NOT_FOUND 파일을 찾을 수 없음
213 SCPDB_ERR_AGENT_KEY_FILE_NOT_FOUND 파일을 찾을 수 없음
214 SCPDB_ERR_AGENT_PIN_FILE_NOT_FOUND 파일을 찾을 수 없음
305 SCPDB_ERR_ENCRYPT 암호화 실패
306 SCPDB_ERR_DECRYPT 복호화 실패
334 SCPDB_ERR_ENCRYPT_FPE FPE 암호화 실패
335 SCPDB_ERR_DECRYPT_FPE FPE 복호화 실패
609 SCPDB_ERR_KEYCACHE_INDEX CONTEXT 입력 실패
702 SCPDB_ERR_SOCK_CONNECT SOCKET 연결 실패
704 SCPDB_ERR_SOCK_RECEIVE SOCKET 받기 실패
707 SCPDB_ERR_SOCK_CONNECT_TIMEOUT SOCKET 연결 타임아웃
2.2 Error Code 대응 가이드
단순히 성공이나 실패 등의 에러메시지를 제외한 알수 없는 에러메
시지가 나올때는 펜타시큐리티시스템(주)에 연락하여 지원을 받는다.
01 성공인 경우
다음 값의 경우에는 정상적으로 동작하는 상태이다
Error code Number 0
Error Code SCPDB_SUCCESS
170_ VIII. CUBRID
DESCRIPTION 성공
Error code Number 118
Error Code SCPDB_ERR_ALREADY_INITIALIZED
DESCRIPTION init 함수 호출시 이미 초기화 되어 있을 때 발생
하며 정상적인 사용이 가능한 상태임을 나타낸다.
02 라이선스 에러
다음 값의 경우에는 라이선스로 인하여 발생한 에러이다
Error code Number 121
Error Code SCPDB_ERR_LICENSE_FILE_NOT_FOUND
DESCRIPTION 라이선스 파일을 찾을 수 없음
Handle scpdb_agent.ini 파일의 LicenseFilePath= 의 값을
확인하여 제대로 된 라이선스 파일의 경로를 입력
합니다.
Error code Number 122
Error Code SCPDB_ERR_LICENSE_INVALID_DATE
DESCRIPTION 라이선스 기간 오류
Handle 라이선스의 파일의 기간을 확인합니다. 기간이 종
료되었거나 현재의 시간이 시작시간보다 이전의
경우에도 발생할수 있습니다
Error code Number 123
Error Code SCPDB_ERR_LICENSE_INVALID_NAME
DESCRIPTION 라이선스 제품명 오류
Handle 라이선스에 명시되어 있는 제품명을 확인합니다.
OU 값이 SCP For DB Encryption Ver 2.0 로 시작하
D'Amo DA 설치 지침서
_171
는지 확인합니다.
Error code Number 124
Error Code SCPDB_ERR_LICENSE_INVALID_HOST
DESCRIPTION 라이선스 호스트(IP) 오류
Handle 라이선스에 발급된 IP와 SCP Agent가 설치된 서버
의 IP가 동일한 지 확인합니다.
Error code Number 125
Error Code SCPDB_ERR_LICENSE_INVALID_CPU_COUNT
DESCRIPTION 라이선스 코어개수 오류
Handle 라이선스에 발급된 CPU 수와 SCP Agent가 설치된
서버의 CPU 갯수가보다 많은지 확인합니다.
Error code Number 126
Error Code SCPDB_ERR_LICENSE_BUNDLE
DESCRIPTION 번들 라이선스 기능 제약
Handle 현재 발급된 번들 라이선스에 의해 기능이 제약되
어 발생합니다.
03 설정파일 에러( scpdb_agent.ini )
다음 값의 경우에는 scpdb_agent.ini 파일의 문제로 발생한 에러이다
Error code Number 104
Error Code SCPDB_ERR_CONFIG_READ
DESCRIPTION 설정파일에 필요 필드값이 없음
Handle scpdb_agent.ini 파일의 특정 필드값을 가져오지 못
할경우 발생합니다. scpdb_agent.ini 파일에 누락된
172_ VIII. CUBRID
부분이 없는지 확인합니다.
Error code Number 105
Error Code SCPDB_ERR_CONFIG_INVALID_SERVER_IP
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [SERVER] 의 ServerIP= 에
잘못된 입력이 있을경우 발생합니다. ServerIP= 에
정확한 IP를 입력합니다.
Error code Number 106
Error Code SCPDB_ERR_CONFIG_INVALID_SERVER_PORT
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [SERVER] 의 ServerPort=
에 잘못된 입력이 있을경우 발생합니다. ServerPort
입력은 0부터 65535 까지 가능합니다.
Error code Number 107
Error Code SCPDB_ERR_CONFIG_INVALID_LICENSE_FILE_
PATH
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [AGENT] 의
LicenseFilePath= 에 잘못된 입력이 있을경우 발생
합니다. LicenseFilePath 입력은 255 글자까지 가능
합니다.
Error code Number 108
Error Code SCPDB_ERR_CONFIG_INVALID_LOG_DIR
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [AGENT] 의 LogDir= 에 잘
D'Amo DA 설치 지침서
_173
못된 입력이 있을경우 발생합니다. LogDir 입력은
255 글자까지 가능합니다.
Error code Number 109
Error Code SCPDB_ERR_CONFIG_INVALID_LOG_LEVEL
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [AGENT] 의 LogLevel= 에
잘못된 입력이 있을경우 발생합니다. LogDir 입력
은 0부터 8까지 가능합니다.
Error code Number 110
Error Code SCPDB_ERR_CONFIG_INVALID_KEYCACHE_MA
X
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [AGENT] 의 CacheMax= 에
잘못된 입력이 있을경우 발생합니다. CacheMax 입
력은 1부터 999까지 가능합니다. 기본값은 50입니
다.
Error code Number 111
Error Code SCPDB_ERR_CONFIG_INVALID_AGENTID_CERT_
FILE_PATH
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [AGENT_ID] 의 AGENT_ID
에 해당하는 CertFilePath= 의 값이 없을 때 발생
합니다. 실제 코드상의 CreateContext 에 입력된
AGENT_ID 와 scpdb_agent.ini 파일의 AGENT_ID
값이 같은지 확인합니다.
Error code Number 112
174_ VIII. CUBRID
Error Code SCPDB_ERR_CONFIG_INVALID_AGENTID_KEY_
FILE_PATH
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [AGENT_ID] 의 AGENT_ID
에 해당하는 KeyFilePath= 의 값이 없을 때 발생합
니다. 실제 코드상의 CreateContext 에 입력된
AGENT_ID 와 scpdb_agent.ini 파일의 AGENT_ID
값이 같은지 확인합니다.
Error code Number 113
Error Code SCPDB_ERR_CONFIG_INVALID_AGENTID_PIN_F
ILE_PATH
DESCRIPTION 설정파일에 잘못된 설정
Handle scpdb_agent.ini 파일의 [AGENT_ID] 의 AGENT_ID
에 해당하는 PinFilePath= 의 값이 없을 때 발생합
니다. 실제 코드상의 CreateContext 에 입력된
AGENT_ID 와 scpdb_agent.ini 파일의 AGENT_ID
값이 같은지 확인합니다.
04 통신 에러( KeyManager )
다음 값의 경우에는 KeyManager 와 통신시 발생한 에러이다
Error code Number 702
Error Code SCPDB_ERR_SOCK_CONNECT
DESCRIPTION SOCKET 연결 실패
Handle scpdb_agent.ini 파일의 ServerIP= 와 ServerPort= 로
KeyManager 에 접속시 접속할수 없는경우 발생한
다. KeyManager의 IP와 Port를 확인하고 현재
KeyManager가 잘 동작하고 있는지 확인합니다.
D'Amo DA 설치 지침서
_175
Error code Number 704
Error Code SCPDB_ERR_SOCK_RECEIVE
DESCRIPTION SOCKET 받기 실패
Handle scpdb_agent.ini 파일의 ServerIP= 와 ServerPort= 로
KeyManager 에 접속시 KeyManager 에서 접속종료
시 발생한다. KeyManager 의 로그를 확인합니다.
Error code Number 707
Error Code SCPDB_ERR_SOCK_CONNECT_TIMEOUT
DESCRIPTION SOCKET 연결 타임아웃
Handle scpdb_agent.ini 파일의 ServerIP= 와 ServerPort= 로
KeyManager 에 접속시 접속대기시간이
scpdb_agent.ini 파일의 ConnectTimeout= 시간보다
많으면 발생한다. KeyManager의 IP와 Port를 확인
하고 현재 KeyManager가 잘 동작하고 있는지 확
인합니다.
05 API 사용 에러
다음 값의 경우에는 API 사용시 잘못된 사용으로 인하여 발생한 에러이다
Error code Number 101
Error Code SCPDB_ERR_NOT_INITIALIZED
DESCRIPTION 초기화 되지 않았다
Handle API 호출시 초기화 함수를 호출하지 않고 사용한
경우 발생합니다. init 함수가 정상적으로 호출되었
는지 확인합니다..
Error code Number 130
Error Code SCPDB_ERR_CIS_INIT
176_ VIII. CUBRID
DESCRIPTION CIS_CC가 초기화 에러
Handle 라이브러리 충돌등에 의하여 CIS_CC 가 초기화
되지 않았을 때 발생합니다.
Error code Number 201
Error Code SCPDB_ERR_INSUFFICIENT_ALLOC_LEN
DESCRIPTION 할당된 메모리 길이 부족
Handle API 호출시 필요한 버퍼 길이보다 작은 버퍼 길이
가 입력되어 메모리 할당이 불가능한 경우 발생합
니다.
Error code Number 202
Error Code SCPDB_ERR_INVALID_INPUT
DESCRIPTION 잘못된 입력
Handle API 호출시 허용하지않는 입력값을 사용시 발생한
다. 이 경우 API 함수 호출이 정상적으로 이루어
져 있는지 sample code 와 비교하여 확인합니다.
Error code Number 203
Error Code SCPDB_ERR_INVALID_INPUT_LEN
DESCRIPTION 잘못된 입력길이
Handle API 호출시 허용하지않는 입력값을 사용시 발생한
다. 이 경우 API 함수 호출이 정상적으로 이루어
져 있는지 sample code 와 비교하여 확인합니다.
Error code Number 204
Error Code SCPDB_ERR_NULLPOINT_INPUT
DESCRIPTION 잘못된 입력(널포인트)
D'Amo DA 설치 지침서
_177
Handle API 호출시 널포인트 입력값을 사용시 발생한다.
이 경우 API 함수 호출이 정상적으로 이루어져 있
는지 sample code 와 비교하여 확인합니다.
Error code Number 305
Error Code SCPDB_ERR_ENCRYPT
DESCRIPTION 암호화 실패
Handle 암호화 함수를 호출하기 전에 Key를 가져오는
ScpAgt_CreateContext와
ScpAgt_CreateContextImportFile 의 결과를 다시 한
번 확인합니다.
Error code Number 306
Error Code SCPDB_ERR_DECRYPT
DESCRIPTION 복호화 실패
Handle 복호화 함수에 잘못 암호화된 값을 입력했거나, 평
문을 입력한 경우 발생합니다. 복호화 함수의 입력
값을 다시 확인합니다.
Error code Number 334
Error Code SCPDB_ERR_ENCRYPT_FPE
DESCRIPTION FPE 암호화 실패
Handle 복호화 함수에 잘못 암호화된 값을 입력했거나, 평
문을 입력한 경우 발생합니다. 복호화 함수의 입력
값을 다시 확인합니다.
Error code Number 335
Error Code SCPDB_ERR_DECRYPT_FPE
178_ VIII. CUBRID
DESCRIPTION FPE 복호화 실패
Handle 복호화 함수에 잘못 암호화된 값을 입력했거나, 평
문을 입력한 경우 발생합니다. 복호화 함수의 입력
값을 다시 확인합니다.
Error code Number 609
Error Code SCPDB_ERR_KEYCACHE_INDEX
DESCRIPTION CONTEXT 입력 실패
Handle 암복호화 함수 호출시 입력되는 context 에 잘못된
값을 입력시 발생합니다. ScpAgt_CreateContext와
ScpAgt_CreateContextImportFile 의 결과를 다시 한
번 확인합니다.
06 API 사용 에러( FILE )
다음 값의 경우에는 API 사용시 잘못된 사용으로 인하여 발생한 에러이다
Error code Number 205
Error Code SCPDB_ERR_FILE_NOT_FOUND
DESCRIPTION 파일을 찾을 수 없음
Handle API 에서 사용하는 파일을 찾을 수 없을 때 발생
합니다.
Error code Number 211
Error Code SCPDB_ERR_CONFIG_FILE_NOT_FOUND
DESCRIPTION 파일을 찾을 수 없음
Handle init 함수 호출시 scpdb_agent.ini 파일을 찾을 수
없을 때 발생합니다. scpdb_agent.ini 파일의 경로를
다시 한번 확인합니다.
D'Amo DA 설치 지침서
_179
Error code Number 212
Error Code SCPDB_ERR_AGENT_CERT_FILE_NOT_FOUND
DESCRIPTION 파일을 찾을 수 없음
Handle scpdb_agent.ini 파일의 [AGENT_ID] 의 AGENT_ID
에 해당하는 CertFilePath= 의 값의 파일이 실제
존존재하 않을 때 발생합니다. CertFilePath 의 경
로를 다시 한번 확인합니다.
Error code Number 213
Error Code SCPDB_ERR_AGENT_KEY_FILE_NOT_FOUND
DESCRIPTION 파일을 찾을 수 없음
Handle scpdb_agent.ini 파일의 [AGENT_ID] 의 AGENT_ID
에 해당하는 KeyFilePath= 의 값의 파일이 실제 존
존재하 않을 때 발생합니다. KeyFilePath 의 경로를
다시 한번 확인합니다.
Error code Number 214
Error Code SCPDB_ERR_AGENT_PIN_FILE_NOT_FOUND
DESCRIPTION 파일을 찾을 수 없음
Handle scpdb_agent.ini 파일의 [AGENT_ID] 의 AGENT_ID
에 해당하는 PinFilePath= 의 값의 파일이 실제 존
존재하 않을 때 발생합니다. PinFilePath 의 경로를
다시 한번 확인합니다.