178
와플 DA Encryption Guide

DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

와플

DA Encryption

Guide

Page 2: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 팀

검수: 품질관리팀

Page 3: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

이 매뉴얼에 관하여

설치 지침서의 목적

본 문서는 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 버전을 설치하는 방법에 대해 설명한다.

Page 4: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

VII장 SYBASE IQ : D'Amo DA 중 SYBASE IQ 버전을 설치하는 방법에 대해 설명

한다.

VIII장 CUBRID : D'Amo DA 중 CUBRID 버전을 설치하는 방법에 대해 설명한다.

IX장 부록 : D'Amo DA 에서 사용되는 SCP 파일을 생성하는 방법과 설치 및 운

영 중에 발생하는 에러 코드를 대응하는 방법에 대해 설명한다.

표기법

다음과 같은 표기법을 사용하여 본 문서를 작성한다.

표기법 설명 예

예) 예제표기

<> 사용자환경에 따라 입력하

는 값이 다를 때

<설치 디렉토리>\ABC.EXE파일을

입력해주세요

[] 사용자가 선택적으로 입력

하는 옵션 정보

도스 창에서 DIR[\W]를 입력하세요.

메뉴/기능버튼 이름

굵게 사용자 입력 메시지

틀 예제 코드 및 소스 코드

및 환경 설정 정보 파일

인용

Page 5: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

목 차

이 매뉴얼에 관하여 ........................................................ 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

Page 6: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 7: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

2.1 Error Code .................................................................................168

2.2 Error Code 대응 가이드 ..........................................................169

Page 8: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

I 개요

1. 구성 요소

Page 9: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

10_ I. 개요

I. 개요

1. 구성 요소

Page 10: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

II ORACLE

1. 설치 절차

2. 함수 설명

Page 11: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일

Page 12: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일 수정

Page 13: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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},

Page 14: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 15: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 16: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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.

Page 17: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

권한 삭제할 경우

Page 18: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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을 설치할 경로를

설정한다.

Page 19: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. 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}

Page 20: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 버전의 경우

Page 21: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 버전일 경우

Page 22: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 23: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 명령어를 이용하여 적

Page 24: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일

Page 25: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

사전 조사

Page 26: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 에 설치된다고 가정한다.

Page 27: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

28_ II. ORACLE

[그림 1] 환경변수 설정 다이얼로그

2) 폴더 생성 및 파일 복사

① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.

폴더 생성

환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)

과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더

를 생성한다.

생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.

Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에

"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename

해야한다.

Page 28: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 디렉토

리에 복사한다.

Page 29: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 계정에 설치한다.

Page 30: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일을

실행한다.

Page 31: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 32: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 33: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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" 로 하여 빈 폴더

Page 34: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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) 파일을

Page 35: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 접속 후 설치를 원하는

Page 36: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 버전일 경우

Page 37: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 38: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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',

Page 39: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 문자열,

Page 40: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 41: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 42: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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;

Page 43: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
Page 44: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

III SYBASE

1. 설치 절차

2. 함수 설명

Page 45: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일

Page 46: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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을 설치할 경로를

Page 47: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. 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}

Page 48: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

$>

Page 49: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일을 실행한다.

Page 50: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 명령어를 이용하여 적

용 여부를 확인 한다.

Page 51: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 설치를 위하여 다음 항목의 디렉토리를 생성한다.

Page 52: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. 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 디렉토

Page 53: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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'

Page 54: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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명

Page 55: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 56: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 문자열,

Page 57: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 58: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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')

Page 59: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 60: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

IV DB2

3. 설치 절차

4. 함수 설명

Page 61: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일

Page 62: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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을 설치할 경로를

설정한다.

Page 63: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. 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}

Page 64: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

$>

Page 65: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 66: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 에 설치된다고 가정한다.

Page 67: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 68: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 69: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 70: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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'))

-----------------------------------------------------

Page 71: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일

Page 72: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 에 설치된다고 가정한다.

Page 73: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

74_ IV. DB2

[그림 3] 환경변수 설정 다이얼로그

2) 폴더 생성 및 파일 복사

① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.

폴더 생성

환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)

과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더

를 생성한다.

생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.

Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에

"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename

해야한다.

Page 74: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 디렉토

리에 복사한다.

Page 75: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 값을 수정한다.

Page 76: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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')

Page 77: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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] 환경변수 설정 다이얼로그

Page 78: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일을

Page 79: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 80: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일명 으로 추가하여야 한다.

Page 81: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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에서 제공하는 함수는 아래와 같다.

Page 82: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 83: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 84: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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;

Page 85: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

86_ IV. DB2

⑩ CONFIG_REINIT

DB2 => SELECT CONFIG_REINIT() FROM sysibm.sysdummy1;

Page 86: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

V TIBERO

3. 설치 절차

4. 함수 설명

Page 87: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일

Page 88: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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을 설치할 경로를

설정한다.

Page 89: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. 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}

Page 90: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일의 생

성 여부와 내용을 확인한다.

Page 91: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일을 실행한다.

Page 92: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 명령어를 이용하여 적

용 여부를 확인 한다.

Page 93: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 94: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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) 파일을

Page 95: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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];

Page 96: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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.

Page 97: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 사용자 계정에서 암·복호 함수

Page 98: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 문자열 (평문)

Page 99: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 100: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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;

Page 101: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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;

Page 102: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
Page 103: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
Page 104: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

V TIBERO

1. 설치 절차

2. 함수 설명

Page 105: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일

Page 106: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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을 설치할 경로를

설정한다.

Page 107: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. 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}

Page 108: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일의 생

성 여부와 내용을 확인한다.

Page 109: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일을 실행한다.

Page 110: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 명령어를 이용하여 적

용 여부를 확인 한다.

Page 111: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 112: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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) 파일을

Page 113: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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];

Page 114: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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.

Page 115: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 사용자 계정에서 암·복호 함수

Page 116: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 문자열 (평문)

Page 117: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 118: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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;

Page 119: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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;

Page 120: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

VI SYBASE IQ

1. 설치 절차

2. 함수 설명

Page 121: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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)의 값을 설정한다.

Page 122: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 에 설치된다고 가정

한다.

Page 123: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일을 생성한다.

Page 124: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 125: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 값을 수정한다.

Page 126: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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')

Page 127: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 128: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 129: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일의 생성 여부와 내용을 확인한다.

Page 130: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 131: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 132: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 문자열,

Page 133: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 문자열

Page 134: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 연동 할 경우

Page 135: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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=');

Page 136: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

VIII CUBRID

1. 설치 절차

2. 함수 설명

Page 137: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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)의 값을 설정한다.

Page 138: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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의 읽기, 쓰기 권한

Page 139: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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,

Page 140: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 141: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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에 접속

Page 142: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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'))

-----------------------------------------------------

Page 143: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

② 생성한 디렉토리에 파일을 복사한다.

Page 144: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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를 실행한다.

Page 145: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 명령어를 이용하여 적

용 여부를 확인 한다.

Page 146: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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'));

Page 147: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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)은 제공업체가 별도로 제공한다.

Page 148: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 에 설치된다고 가정한다.

Page 149: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

150_ VIII. CUBRID

[그림 5] 환경변수 설정 다이얼로그

2) 폴더 생성 및 파일 복사

① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.

폴더 생성

환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)

과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더

를 생성한다.

생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.

Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에

"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename

해야한다.

Page 150: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 디렉토

리에 복사한다.

Page 151: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 152: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 사용자 계정에서 암·복호 함수

를 호출하여 설치를 성공했는지 확인한다.

Page 153: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 에 설치된다고 가정한다.

Page 154: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

D'Amo DA 설치 지침서

_155

[그림 6] 환경변수 설정 다이얼로그

2) 폴더 생성 및 파일 복사

① DA Encryption 설치를 위하여 다음 항목의 폴더를 생성한다.

폴더 생성

환경변수 SCP_INST_HOME 설정 값(이하 $SCP_INST_HOME)

과 동일한 위치에 폴더명을 "sql", "key", "log" 로 하여 빈 폴더

를 생성한다.

생성한 log 폴더에 파일명이 ".lock" 인 빈 파일을 생성한다.

Windows 에서는 파일명 앞에 점(.)을 허용하지 않기 때문에

"lock"이라는 파일을 생성 한 후 DOS 커맨드 창에서 rename

해야한다.

Page 155: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 디렉토

리에 복사한다.

Page 156: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 157: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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'

$>

Page 158: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 문자열 (평문)

Page 159: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 문자열,

Page 160: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 161: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 연동 하지 않을 경우

Page 162: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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();

Page 163: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption
Page 164: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

VII 부록

1. SCP 파일 생성 방법

2. 에러 대응 가이드

Page 165: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 166: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 설치시 발생할 수 있는 에러에 대해

Page 167: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. 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 라이선스 제품명 오류

Page 168: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 169: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 로 시작하

Page 170: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일에 누락된

Page 171: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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= 에 잘

Page 172: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 173: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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가 잘 동작하고 있는지 확인합니다.

Page 174: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 175: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 잘못된 입력(널포인트)

Page 176: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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

Page 177: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 파일의 경로를

다시 한번 확인합니다.

Page 178: DA Encryption - Penta Security · 2014-01-17 · ORACLE 02 KMS 연동 설치 절차 1) 환경변수 설정 DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryption

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 의 경로를

다시 한번 확인합니다.