144
와플 DA Encryption Guide

DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

와플

DA Encryption

Guide

Page 2: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

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...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

이 매뉴얼에 관하여

설치 지침서의 목적

본 문서는 D'Amo DA 설치를 위한 지침서이다

설치 지침서의 범위

본 문서는 D’Amo DA를 설치하는 방법과 함수 레퍼런스에 대해 설명한다.

선수지식

Windows 또는 Unix 프로그램에 능숙하고, Database에 대한 사전지식이 필요하

다.

활용방법

본 문서는 제품의 설치를 위한 매뉴얼로 정확한 설치를 위해서 꼭 수행해야 할

단계를 명시하였다. 따라서, 각 절차에서 다음 단계로 넘어가는 것에 대한 특별

한 언급이 없을 때에는 문서에 있는 모두 절차에 명시된 대로 단계를 빠짐없이

수행한다. (설치 중 발생하는 문의사항은 펜타시큐리티시스템㈜에 연락하여 지

원받을 수 있다.)

구성 장별 간단한 요약

오류! 참조 원본을 찾을 수 없습니다.장 오류! 참조 원본을 찾을 수 없습니다. :

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

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

Page 4: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

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

한다.

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

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

표기법

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

표기법 설명 예

예) 예제표기

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

는 값이 다를 때

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

입력해주세요

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

하는 옵션 정보

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

메뉴/기능버튼 이름

굵게 사용자 입력 메시지

틀 예제 코드 및 소스 코드

및 환경 설정 정보 파일

인용

Page 5: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

목 차

이 매뉴얼에 관하여 ........................................................ 4

목 차 ................................................................................ 6

I. 개요 .......... 오류! 책갈피가 정의되어 있지 않습니다.

1. 구성 요소 ........................... 오류! 책갈피가 정의되어 있지 않습니다.

II. ORACLE ..................................................................... 14

1. 설치 절차 .............................................................................................. 14

1.1 UNIX 환경 설치 .......................................................................... 14

1.2 WINDOWS 환경 설치 ............................................................... 27

2. 함수 설명 .............................................................................................. 41

2.1 함수 설명 .................................................................................... 41

2.2 함수 호출 예제 ........................................................................... 42

III. SYBASE .................................................................... 46

1. 설치 절차 .............................................................................................. 46

1.1 UNIX 환경 설치 .......................................................................... 46

2. 함수 설명 .............................................................................................. 57

2.1 함수 설명 .................................................................................... 57

2.2 함수 호출 예제 ........................................................................... 58

IV. DB2 ........................................................................... 62

1. 설치 절차 .............................................................................................. 62

1.1 UNIX 환경 설치 .......................................................................... 62

1.2 WINDOWS 환경 설치 ............................................................... 73

2. 함수 설명 .............................................................................................. 84

2.1 함수 설명 .................................................................................... 84

2.2 함수 호출 예제 ........................................................................... 87

Page 6: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

V. TIBERO ...................................................................... 92

1. 설치 절차 .............................................................................................. 92

1.1 UNIX 환경 설치 .......................................................................... 92

2. 함수 설명 ........................................................................................... 105

2.1 함수 설명 .................................................................................. 105

2.2 함수 호출 예제 ........................................................................ 107

VI. SYBASE IQ ............................................................ 110

1. 설치 절차 ........................................................................................... 110

1.1 UNIX 환경 설치 ....................................................................... 110

2. 함수 설명 ........................................................................................... 121

2.1 함수 설명 .................................................................................. 121

2.2 함수 호출 예제 ........................................................................ 123

VII. 부록 ...................................................................... 128

1. SCP 파일 생성 방법 ......................................................................... 128

2. 에러 대응 가이드 ............................................................................. 129

2.1 Error Code ................................................................................ 130

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

Page 7: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키
Page 8: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

I 개요

1. 구성 요소

Page 9: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

10_ I. DA란

I. DA란

본 장은 DA 제품에 대한 소개하는 장으로 제품의 주요 기능 및 특

징과 제품 구성, 운영환경에 대해서 기술합니다.

1. 개요

DA는 DB 서버 암호화 제품으로서 DB 내에서 함수 형태로 존재하며,

DB에 등록된 외부 라이브러리 DA Agent가 암/복호화 기능을 제공

합니다.

2. 주요 기능

DA는 다음과 같은 기능을 제공합니다.

데이터 암호화

데이터 복호화

데이터 해쉬

3. 특징

DA는 다음과 같은 특징을 가집니다.

DB 내에서 빠른 암/복호화 성능

네트워크 구간의 안정성 보장

안전한 키 관리

다양한 알고리즘 및 환경 지원

4. 지원 DBMS 및 OS

DA에서 지원하는 DBMS 및 OS는 다음과 같습니다.

ORACLE

AIX 5.X 64bit

Page 10: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_11

HP-UX 11.23 IA 64 bit

HP-UX 11.X PA-RISC 32, 64 bit

LINUX 32, 64 bit

SUNOS 5.9 SPARC 32, 64 bit

WINDOWS 32, 64 bit

SQL Server

WINDOWS 32, 64 bit

DB2

AIX 5.X 64bit

LINUX 64 bit

WINDOWS 32, 64 bit

Tibero

AIX 5.X 64bit

HP-UX 11.23 IA 64 bit

LINUX 32, 64 bit

MySQL

LINUX 32, 64 bit

Cache DB

SUNOS 5.9 SPARC 64 bit

WINDOWS 32, 64 bit

Informix

HP-UX 11.23 IA 64 bit

HP-UX 11.X PA-RISC 32, 64 bit

LINUX 32, 64 bit

SUNOS 5.9 SPARC 32, 64 bit

Sybase ASE

HP-UX 11.23 IA 64 bit

Sybase IQ

AIX 5.X 64bit

LINUX 64 bit

5. 함수별 기능 지원 여부

DA의 구성 및 각 기능을 설명합니다. 설치 업무를 수행하는 기술지

Page 11: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

12_ I. DA란

원팀과 DB 서버의 보안 운용하는 업무를 수행하는 관리자는 DA 각

각의 기능을 파악하여 업무를 수행하시기 바랍니다.

양방향 암호화는 평문을 암호화하여 복호화가 가능한 암호화 방식입

니다. 양방향 암호화 중 일반 암호화는 평문 전체를 암호화하는 방식

이며, 부분 암호화는 평문 중 일부를 암호화하는 방식이고, FPE는 평

문과 동일한 형식으로 암호화하는 방식입니다.

표 1 BA-SCP의 함수별 양방향 암호화 지원 여부

함수 이름

양방향 암호화

일반 부분 FPE

(ENC)DEC_STR O O O

(ENC)DEC_B64 O O(Str과

동일)

O(Str과

동일)

(ENC)DEC_NUM O

단방향 암호화는 평문을 암호화만 가능하며, 복호화가 불가능한 암호

화 방식입니다. 단방향 암호화 중 HASH는 일반적인 단방향 암호화

방식이며, HMAC은 암호화 키를 사용한 HASH 암호화 방식입니다.

표 2 BA-SCP의 함수별 단방향 암호화 지원 여부

함수 이름

단방향 암호화

HASH HMAC

HASH_STR O

HASH_B64 O

ENC_STR O

ENC_B64 O

Page 12: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

II ORACLE

1. 설치 절차

2. 함수 설명

Page 13: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

14_ II. ORACLE

II. ORACLE

DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전

준비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.

1. 설치 절차

1.1 UNIX 환경 설치

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

설정 파일

DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설

정 파일(scpdb_agent.ini)의 값을 설정한다.

License 파일

Page 14: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_15

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 설치 하기 전에 다음과 같은 사항들을 확인하

거나 준비한다. 사전에 조사할 사항들은 다음과 같다.

[표 3] DA Encryption 설치 조사 사항

구분 사전 인지 사항

사항 DB 서버 재시작 또는 DB 서버의 listener 재시작

DB 엔진 설치 계정에 폴더 생성

DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)

DB 서버의 DBA 권한 계정

DB 엔진 설치 계정의 . profile 파일 수정

02 KMS 연동 설치 절차

1) 환경변수 설정

DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryptio

n 이 UNIX OS 의 ORACLE 계정 /home/dbms_api 에 설치된다고 가

Page 15: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

16_ II. ORACLE

정한다.

① 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, ScpAgentException.class,

ScpCryptData.class 파일을 $SCP_INST_HOME 위치에 복사한다.

Java 버전일 경우 $ORACLE_HOME/lib 디렉토리에 library 파

일의 symbolic link 파일을 생성한다.

Page 16: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_17

$> 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

예) 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 17: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

18_ II. ORACLE

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 사용자에게 CO

NNECT, 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.

׃

Page 18: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_19

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.

SQL> START 005.securej_privilege.sql

PL/SQL procedure successfully completed.

③ java 버젼일 경우에는 class 파일을 DBMS에서 인식하기 위해서

Page 19: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

20_ II. ORACLE

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 은 암호 테이블명, C

OLUMN은 암호 컬럼명이다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

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

Page 20: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_21

CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE

ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적

용 여부를 확인 한다.

10) 설치 확인

암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수

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

OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명, COLU

MN 은 암호 컬럼명이다.

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 Encryptio

n 이 UNIX OS 의 ORACLE 계정 /home/dbms_api 에 설치된다고 가

정한다.

① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를

설정한다.

.profile을 사용하는 경우

export SCP_INST_HOME=/home/dbms_api

Page 21: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

22_ II. ORACLE

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

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}

Page 22: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_23

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 23: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

24_ II. ORACLE

5) SCP 계정 생성

DB 사용자 SCP 계정을 생성하는 것을 권고하며 SCP 사용자에게 CO

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

SQL> START 002.user_interface_java.ora.sql

Function created.

׃

Page 24: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_25

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

7) Listener 재시작

C 버전일 때 listener 와 tnsname.ora 파일을 설정 한 후 listener를 재

Page 25: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

26_ II. ORACLE

시작한다. 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 의 password

권한 추가할 경우

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 26: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_27

10) 설치 확인

암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수

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

함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP, I_CO

LUMN 은 .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 환경 설치

01 설치 전 준비사항

DA Encryption 을 설치하기 전에 다음 준비가 필요하다.

Library 파일

- damoscpdb.dll 파일

- scpdb_agent. dll 파일

- cis_cc-3.1. dll 파일

- cis_ce-3.1. dll 파일

Page 27: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

28_ II. ORACLE

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

사전 조사

DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하

거나 준비한다. 사전에 조사할 사항들은 다음과 같다.

[표 4] DA Encryption 설치 조사 사항

Page 28: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_29

구분 사전 인지 사항

사항 DB 서버 재시작 또는 DB 서버의 listener 재시작

DB 엔진 설치 계정에 폴더 생성

DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)

DB 서버의 DBA 권한 계정

환경변수 추가

02 KMS 연동 설치 절차

1) 환경변수 설정

"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타

나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME

변수와 값을 추가한다.

DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.

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

Page 29: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

30_ II. ORACLE

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, ScpAgentException.class,

ScpCryptData.class 파일을 $SCP_INST_HOME 위치에 복사한다.

Page 30: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_31

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

리에 복사한다.

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 사용자에게 CO

NNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.

SQL> CREATE USER SCP IDENTIFIED BY [password];

Page 31: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

32_ II. ORACLE

User created.

SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;

Grant succeeded.

SQL>

5) 함수 설치

① $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/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.

Page 32: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_33

׃

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

6) Listener 재시작

C 버전일 때 listener 와 tnsname.ora 파일을 설정 한 후 listener를 재

시작한다. JAVA 버전은 이 작업을 생략한다.

7) 설정 파일 수정

$SCP_INST_HOME 폴더에 있는 DA Encryption 설정 파일(scpdb_agent.

ini) 중 ServerIP, ServerPort, AgentIP, LicenseFilePath, [AGENT_ID], Cert

FilePath, KeyFilePath, PinFilePath 값을 수정한다.

Page 33: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

34_ II. ORACLE

8) 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 의 password

권한 추가할 경우

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 은 암호 테이블명, COLU

MN 은 암호 컬럼명이다.

SQL> SELECT ENC_STR( 'OWNER', 'TABLE', 'COLUMN',

'abc') FROM DUAL;

ENC_STR('OWNER','TABLE','COLUMN','abc')

Page 34: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_35

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

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) 환경변수 설정

"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타

나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME

변수와 값을 추가한다.

DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.

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

Page 35: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

36_ II. ORACLE

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, ScpAgentException.class,

ScpCryptData.class, .SCP 파일을 $SCP_INST_HOME 위치에 복

Page 36: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_37

사한다.

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

리에 복사한다.

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 사용자에게 CO

NNECT, RESOUCE, CREATE LIBRARY 권한을 부여한다.

SQL> CREATE USER SCP IDENTIFIED BY [password];

Page 37: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

38_ II. ORACLE

User created.

SQL> GRANT CONNECT, RESOURCE, CREATE LIBRARY TO SCP;

Grant succeeded.

5) 함수 설치

① $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/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.

Page 38: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_39

׃

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

6) Listener 재시작

C 버전일 때 listener 와 tnsname.ora 파일을 설정 한 후 listener를 재

시작한다. JAVA 버전은 이 작업을 생략한다.

7) 설정 파일 수정

$SCP_INST_HOME 폴더에 있는 DA Encryption 설정 파일(scpdb_agent.

ini) 중 LicenseFilePath 값을 수정한다.

Page 39: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

40_ II. ORACLE

8) 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 의 password

권한 추가할 경우

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_CO

LUMN 은 .SCP 파일명 이다.

Page 40: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_41

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. 함수 설명

2.1 함수 설명

함수 명 입력 출력

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 암호문)

Page 41: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

42_ II. ORACLE

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

HEXTOB64

I_DATA IN 문자열

(Hex String 암호문)

base64 Encording

암호문

B64TOHEX

I_DATA IN 문자열

(base64 Encording 암호문) Hex String 암호문

2.2 함수 호출 예제

암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은

COL, 암호할 데이터는 ‘abc’ 로 가정한다.

① ENC_STR

Page 42: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_43

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

SQL> SELECT HASH_B64( 72, 'abc' ) FROM DUAL;

⑧ HEXTOB64

SQL> SELECT

HEXTOB64('A305378D8F974F1C1537ED7CB0CB959245D1AC31')

FROM DUAL;

Page 43: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

44_ II. ORACLE

⑨ B64TOHEX

SQL> SELECT B64TOHEX('owU3jY+XTxwVN+18sMuVkkXRrDE=')

FROM DUAL;

Page 44: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

III SYBASE

1. 설치 절차

2. 함수 설명

Page 45: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

46_ III. SYBASE

III. SYBASE

DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전

준비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.

1. 설치 절차

1.1 UNIX 환경 설치

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

DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.

License 파일(license.cer)은 제공업체가 별도로 제공한다.

Agent key 파일

Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,

Page 46: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_47

damo_agt.key, damo_agt.pin)을 발급 받는다. 키쌍 발급시 사용

한 DB NAME, AGENT ID를 숙지한다.

SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는

_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.

acl_cli 파일

DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.

privilege.damo 정책 파일

acl_cli에서 설정된 권한을 저장하는데 사용한다.

사전 조사

DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하

거나 준비한다. 사전에 조사할 사항들은 다음과 같다.

[표 5] DA Encryption 설치 조사 사항

구분 사전 인지 사항

사항 DB 서버 재시작

DB 엔진 설치 계정에 폴더 생성

DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)

DB 서버의 DBA 권한 계정

DB 엔진 설치 계정의 . profile 파일 수정

02 KMS 연동 설치 절차

1) 환경변수 설정

DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryptio

n 이 UNIX OS 의 SYBASE 계정 /home/dbms_api 에 설치된다고 가정

한다.

① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를

설정한다.

.profile을 사용하는 경우

export SCP_INST_HOME=/home/dbms_api

Page 47: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

48_ III. SYBASE

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

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

Page 48: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_49

$> 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.sybase.sql 파일, 002.user_interface.sybase.sql 파일

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

Page 49: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

50_ III. SYBASE

5) SCP 계정 생성

DB 사용자 SCP 데이터베이스 및 계정을 생성하는 것을 권고하며 SC

P 사용자에게 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 파일을 실행한다.

$>isql -Uscp -P[password] -S[ASE_NAME] -Dscp <

003.grant_execute_functions.sql

Page 50: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_51

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 은 암호 테이블명, C

OLUMN은 암호 컬럼명이다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

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

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

Page 51: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

52_ III. SYBASE

OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명, COLU

MN 은 암호 컬럼명이다.

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 Encryptio

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

디렉토리 생성

환경변수 $SCP_INST_HOME과 동일한 위치에 디렉토리명을

“sql”, “key”, “log” 로 하여 빈 디렉토리를 생성한다.

Page 52: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_53

생성한 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...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

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 데이터베이스 및 계정을 생성하는 것을 권고하며 SC

P 사용자에게 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'

(10240 logical pages requested).

Page 54: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_55

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...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

56_ III. SYBASE

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

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_CO

LUMN 은 .SCP 파일명 이다.

1> SELECT scp.dbo.ENC_STR( 'DAMO', 'SCP',

'CBC_FIXED_Key_AES_128.SCP', 'abc')

2> go

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

5E41ACD673653158D7AE8C30CDA9627D3556E173

Page 56: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_57

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. 함수 설명

2.1 함수 설명

함수 명 입력 출력

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 암호

Page 57: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

58_ III. SYBASE

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

2.2 함수 호출 예제

암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은

COL, 암호할 데이터는 ‘abc’ 로 가정한다.

Page 58: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_59

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

2> go

⑥ HASH_STR

1> SELECT dbo.HASH_STR( 72, 'abc' )

Page 59: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

60_ III. SYBASE

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...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

IV DB2

3. 설치 절차

4. 함수 설명

Page 61: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

62_ IV. DB2

IV. DB2

DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전

준비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.

1. 설치 절차

1.1 UNIX 환경 설치

01 설치 전 준비사항

DA Encryption 을 설치하기 전에 다음 준비가 필요하다.

Library 파일

- libdamoscpdb.{so|a|sl} 파일

- libscpdb_agent.{so|a|sl} 파일

- libcis_cc-3.2.{so|a|sl} 파일

- libcis_ce-3.2.{so|a|sl} 파일

- liblogw.{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 파일

DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.

License 파일(license.cer)은 제공업체가 별도로 제공한다.

Agent key 파일

Page 62: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_63

Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,

damo_agt.key, damo_site.cer)을 발급 받는다. 키쌍 발급시 사용

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

접근제어 기능을 사용하기 위해서는 SG-KMS 사용자 매뉴얼을 참고

하여 다음의 항목의 값을 입력합니다.

접근 경로 : DA를 적용한 DB 프로세스의 실행 경로를 입력

합니다.

접근 기간 : DA가 실행될 수 있는 기간을 입력합니다.

접근 요일 : DA가 실행될 수 있는 요일을 입력합니다.

접근 시간 : DA가 실행될 수 있는 시간을 입력합니다.

접근 계정 : DA를 실행하고 있는 DB 접속 계정을 입력합니

다.

Page 63: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

64_ IV. DB2

접근 제어 기능을 KMS 연동할 때에만 사용 가능합니다.

접근 계정은 암복호화 함수에서 'DAMO', 'SID', '서비스 ID'를

사용할 경우에만 사용가능합니다.

02 KMS 연동 설치 절차

1) 환경변수 설정

DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryptio

n 이 UNIX OS 의 DB2 계정 /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 64: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_65

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

$SCP_INST_HOME 디렉토리에 파일 복사

acl_cli 파일, 라이브러리 파일, 설정 파일, 라이센스 파일,

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.2.{so|a|sl}

libcis_cc-3.2.{so|a|sl}

$> ln –s $SCP_INST_HOME/libcis_ce-3.2.{so|a|sl}

libcis_ce-3.2.{so|a|sl}

$> ln –s $SCP_INST_HOME/liblogw.{so|a|sl}

liblogw.{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_site.cer) 파일을

$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을 이용하여

Page 65: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

66_ IV. DB2

설치할 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.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, AgentID, LicenseFilePath, SiteCertFilePa

th, CertFilePath, KeyFilePath, Secret 값을 수정합니다.

Page 66: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_67

로그 기능을 사용할 경우에는 LogDir, LogLevel의 값을 수정합니다.

LogDir : DA의 로그 파일을 남기기 위한 경로를 적습니다.

LogLevel : DA의 로그 파일에 남기는 레벨을 적습니다.

0 : 로그 파일을 남기지 않습니다.

2 : 경고 로그를 파일에 기록합니다.

4 : 에러 로그를 파일에 기록합니다.

6 : 정보 로그를 파일에 기록합니다.

8 : 디버그 로그를 파일에 기록합니다.

7) CLI에서 권한 설정

$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위

로 암·복호 권한을 설정한다. USER는 암·복호 권한을 부여받는 USER

명을 입력합니다.

SG-KMS에서 사용되는 서비스 ID를 사용하기 위해서는 DAMO"SID"

서비스 ID 를 입력합니다. 서비스 ID에 SG-KMS에 등록된 서비스 ID

를 입력합니다.

이전 버전과의 호환성을 위해 OWNER"TABLE"COLUMN을 사용할

수 있습니다. OWNER는 암호 테이블 소유자명, TABLE은 암호 테이

블명, COLUMN은 암호 컬럼명을 사용할 수 있습니다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

D'Amo > SET PRIV ENC USER"DAMO"SID"SERVICE_ID"1"1

D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1

D'Amo > SAVE ALL

D'Amo > SHOW ALL

Page 67: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

68_ IV. DB2

권한 삭제할 경우

D'Amo > DEL PRIV ENC USER"DAMO"SID"SERVICE_ID

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 은 암호 테이블명, COLU

MN 은 암호 컬럼명이다.

DB2 => SELECT ENC_STR( 'DAMO', 'SID', 'SERVICE_ID',

'abc') FROM sysibm.sysdummy1

ENC_STR('DAMO', 'SID', 'SERVICE_ID','abc')

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

5E41ACD673653158D7AE8C30CDA9627D3556E173

DB2 => SELECT DEC_STR( 'DAMO', 'SID', 'SERVICE_ID',

ENC_STR( 'DAMO', 'SID', 'SERVICE_ID', 'abc')) FROM

sysibm.sysdummy1

DEC_STR( 'DAMO', 'SID', 'SERVICE_ID',

ENC_STR( 'DAMO', 'SID', 'SERVICE_ID', 'abc'))

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

abc

03 SCP 파일 연동 설치 절차

1) 환경변수 설정

DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryptio

n 이 UNIX OS 의 DB2 계정 /home/dbms_api 에 설치된다고 가정한다.

① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를

Page 68: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_69

설정한다.

.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 파일, 라이브러리 파일, 설정 파일, 라이센스 파일,

privilege.damo 정책 파일, .SCP파일을 $SCP_INST_HOME 위치

에 복사한다.

{DB설치폴더}/sqllib/lib64, {DB설치폴더}/sqllib/function 디렉토

리에 library 파일의 symbolic link 파일을 생성한다.

$> cd {DB설치폴더}/sqllib/lib64

$> ln –s $SCP_INST_HOME/libcis_cc-3.2.{so|a|sl}

libcis_cc-3.2.{so|a|sl}

Page 69: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

70_ IV. DB2

$> ln –s $SCP_INST_HOME/libcis_ce-3.2.{so|a|sl}

libcis_ce-3.2.{so|a|sl}

$> ln –s $SCP_INST_HOME/liblogw.{so|a|sl}

liblogw.{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_site.cer) 파일을

$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 70: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_71

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, SiteCertFilePath, CertFilePath, KeyFilePath,

Secret 값을 수정한다.

로그 기능을 사용할 경우에는 LogDir, LogLevel의 값을 수정합니다.

LogDir : DA의 로그 파일을 남기기 위한 경로를 적습니다.

LogLevel : DA의 로그 파일에 남기는 레벨을 적습니다.

0 : 로그 파일을 남기지 않습니다.

2 : 경고 로그를 파일에 기록합니다.

4 : 에러 로그를 파일에 기록합니다.

6 : 정보 로그를 파일에 기록합니다.

8 : 디버그 로그를 파일에 기록합니다.

Page 71: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

72_ IV. DB2

7) CLI에서 권한 설정

$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위

로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USE

R명이다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

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_CO

LUMN 은 .SCP 파일명 이다.

Page 72: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_73

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

1.2 WINDOWS 환경 설치

01 설치 전 준비사항

DA Encryption 을 설치하기 전에 다음 준비가 필요하다.

Library 파일

- damoscpdb.dll 파일

- scpdb_agent. dll 파일

- cis_cc-3.2. dll 파일

- cis_ce-3.2. dll 파일

- logw.dll 파일

sql 파일

- 001.inner_function.db2 파일

- 002.user_interface.db2 파일

- 003.grant_execute_functions.sql 파일

- 009.da_test.sql 파일

설정 파일

DA Encryption 구동하는데 사용한다. DA Encryption 설치 시 설

Page 73: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

74_ IV. DB2

정 파일(scpdb_agent.ini)의 값을 설정한다.

License 파일

DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.

License 파일(license.cer)은 제공업체가 별도로 제공한다.

Agent key 파일

Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,

damo_agt.key, damo_site.cer)을 발급 받는다. 키쌍 발급시 사용

한 DB NAME, AGENT ID를 숙지한다.

acl_cli 파일

DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.

privilege.damo 정책 파일

acl_cli에서 설정된 권한을 저장하는데 사용한다.

사전 조사

DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하

거나 준비한다. 사전에 조사할 사항들은 다음과 같다.

[표 7] DA Encryption 설치 조사 사항

구분 사전 인지 사항

사항 DB 엔진 설치 계정에 폴더 생성

DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)

DB 서버의 DBA 권한 계정

환경변수 추가

02 KMS 연동 설치 절차

1) 환경변수 설정

"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타

나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME

변수와 값을 추가한다.

DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.

Page 74: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_75

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

2) 폴더 생성 및 파일 복사

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

폴더 생성

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

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

를 생성한다.

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

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

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

해야한다.

Page 75: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

76_ IV. DB2

② 생성한 폴더에 파일을 복사한다.

$SCP_INST_HOME 폴더에 파일 복사

acl_cli 파일, 라이브러리 파일, 설정 파일, 라이센스 파일,

privilege.damo 정책 파일을 $SCP_INST_HOME 위치에 복사한

다.

{DB설치폴더}/sqllib/function에 damoscpdb.dll 파일을 복사하고,

cis_cc-3.2.dll, cis_ce-3.2.dll, scpdb_agent.dll, logw.dll 파일을 {시스

템폴더}에 복사한다. {시스템폴더}는 일반적으로

c:\windows\system32 폴더를 말한다.

$SCP_INST_HOME/key 폴더에 파일 복사

Agent key쌍(damo_agt.cer, damo_agt.key, damo_site.cer) 파일을

$SCP_INST_HOME /key 폴더에 복사한다.

$SCP_INST_HOME/sql 폴더에 파일 복사

설치 전 준비사항의 sql 파일을 $SCP_INST_HOME\sql 디렉토

리에 복사한다.

Page 76: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_77

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, AgentID, LicenseFilePath, SiteCertFilePath, C

ertFilePath, KeyFilePath, Secret 값을 수정한다.

로그 기능을 사용할 경우에는 LogDir, LogLevel의 값을 수정합니다.

Page 77: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

78_ IV. DB2

LogDir : DA의 로그 파일을 남기기 위한 경로를 적습니다.

LogLevel : DA의 로그 파일에 남기는 레벨을 적습니다.

0 : 로그 파일을 남기지 않습니다.

2 : 경고 로그를 파일에 기록합니다.

4 : 에러 로그를 파일에 기록합니다.

6 : 정보 로그를 파일에 기록합니다.

8 : 디버그 로그를 파일에 기록합니다.

6) CLI에서 권한 설정

DOS 커맨드로 $SCP_INST_HOME 에서 acl_cli 파일을 실행하여 USE

R 단위로 암·복호 권한을 설정한다. USER는 암·복호 권한을 부여받

는 USER명을 입력합니다.

SG-KMS에서 사용되는 서비스 ID를 사용하기 위해서는 DAMO"SID"

서비스 ID 를 입력합니다. 서비스 ID에 SG-KMS에 등록된 서비스 ID

를 입력합니다.

이전 버전과의 호환성을 위해 OWNER"TABLE"COLUMN을 사용할

수 있습니다. 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 의 password

권한 추가할 경우

D'Amo > SET PRIV ENC USER"DAMO"SID"SERVICE_ID"1"1

D'Amo > SET PRIV ENC USER"OWNER"TABLE"COLUMN"1"1

D'Amo > SAVE ALL

D'Amo > SHOW ALL

권한 삭제할 경우

Page 78: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_79

D'Amo > DEL PRIV ENC USER"DAMO"SID"SERVICE_ID

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 은 암호 테이블명, COLU

MN 은 암호 컬럼명이다.

DB2 => SELECT ENC_STR( 'DAMO', 'SID', 'SERVICE_ID',

'abc') FROM sysibm.sysdummy1

ENC_STR('DAMO', 'SID', 'SERVICE_ID','abc')

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

5E41ACD673653158D7AE8C30CDA9627D3556E173

DB2 => SELECT DEC_STR( 'DAMO', 'SID', 'SERVICE_ID',

ENC_STR( 'DAMO', 'SID', 'SERVICE_ID', 'abc')) FROM

sysibm.sysdummy1

DEC_STR( 'DAMO', 'SID', 'SERVICE_ID',

ENC_STR( 'DAMO', 'SID', 'SERVICE_ID', 'abc'))

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

abc

03 SCP 파일 연동 설치 절차

1) 환경변수 설정

"탐색기->내컴퓨터->등록정보->고급 탭->환경변수" 를 선택하여 나타

나는 환경변수 설정 다이얼로그에서 시스템변수 SCP_INST_HOME

변수와 값을 추가한다.

DA Encryption 이 E:\dbms_api 에 설치된다고 가정한다.

Page 79: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

80_ IV. DB2

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

2) 폴더 생성 및 파일 복사

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

폴더 생성

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

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

를 생성한다.

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

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

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

해야한다.

Page 80: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_81

② 생성한 폴더에 파일을 복사한다.

$SCP_INST_HOME 폴더에 파일 복사

acl_cli 파일, 라이브러리 파일, 설정 파일, 라이센스 파일,

privilege.damo 정책 파일, .SCP파일을 $SCP_INST_HOME 위치

에 복사한다.

{DB설치폴더}/sqllib/function에 damoscpdb.dll 파일을 복사하고,

cis_cc-3.1.dll, cis_ce-3.1.dll, scpdb_agent.dll, logw.dll 파일을 {시스

템폴더}에 복사한다. {시스템폴더}는 일반적으로

c:\windows\system32 폴더를 말한다.

$SCP_INST_HOME/key 폴더에 파일 복사

Agent key쌍(damo_agt.cer, damo_agt.key, damo_site.cer) 파일을

$SCP_INST_HOME /key 폴더에 복사한다.

$SCP_INST_HOME/sql 폴더에 파일 복사

설치 전 준비사항의 sql 파일을 $SCP_INST_HOME\sql 디렉토

리에 복사한다.

Page 81: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

82_ 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) 중 LicenseFilePath, SiteCertFilePath, CertFilePath, KeyFilePath, Secre

t 값을 수정한다.

로그 기능을 사용할 경우에는 LogDir, LogLevel의 값을 수정합니다.

Page 82: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_83

LogDir : DA의 로그 파일을 남기기 위한 경로를 적습니다.

LogLevel : DA의 로그 파일에 남기는 레벨을 적습니다.

0 : 로그 파일을 남기지 않습니다.

2 : 경고 로그를 파일에 기록합니다.

4 : 에러 로그를 파일에 기록합니다.

6 : 정보 로그를 파일에 기록합니다.

8 : 디버그 로그를 파일에 기록합니다.

6) CLI에서 권한 설정

$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위

로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USE

R명이다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

C:\> cd E:\dbms_api

E:\dbms_api> acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

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 83: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

84_ IV. DB2

CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE

ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적

용 여부를 확인 한다.

7) 설치 확인

암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수

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

함수 입력 매개변수인 I_OWNER 는 DAMO, I_TABLE 은 SCP, I_CO

LUMN 은 .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. 함수 설명

2.1 함수 설명

함수 명 입력 출력

ENC_STR I_OWNER IN 문자열, Hex String 암

호문 I_TABLE IN 문자열,

Page 84: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_85

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

OPE 데이터

I_TABLE IN 문자열,

I_COLUMN IN 문자열,

I_DATA IN 문자열 (평문),

I_TYPE

IN 문자열

'' or

'IX '(Plug-IN

연동 시 사용)

INDEX_STR_LIKE I_OWNER IN 문자열,

OPE 데이터

+'%'

I_TABLE IN 문자열,

I_COLUMN IN 문자열,

I_DATA IN 문자열 (평문),

I_TYPE

IN 문자열

'' or

'IX '(Plug-IN

연동 시 사용)

DEC_INDEX_STR I_OWNER IN 문자열, Hex String 암

Page 85: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

86_ IV. DB2

I_TABLE IN 문자열, 호문 입력받

아 OPE 데이

I_COLUMN IN 문자열,

I_DATA IN 문자열 (암호

문),

I_TYPE

IN 문자열

'' or

'IX '(Plug-IN

연동 시 사용)

DEC_INDEX_STR_LIKE I_OWNER IN 문자열,

Hex String 암

호문 입력받

아 OPE 데이

터+'%'

I_TABLE IN 문자열,

I_COLUMN IN 문자열,

I_DATA IN 문자열 (암호

문),

I_TYPE

IN 문자열

'' or

'IX '(Plug-IN

연동 시 사용)

DEC_INDEX_B64 I_OWNER IN 문자열,

Base64

Encording 암

호문 입력받

아 OPE 데이

I_TABLE IN 문자열,

I_COLUMN IN 문자열,

I_DATA IN 문자열 (암호

문),

I_TYPE

IN 문자열

'' or

'IX '(Plug-IN

연동 시 사용)

DEC_INDEX_B64 I_OWNER IN 문자열,

Base64

Encording 암

호문 입력받

아 OPE 데이

터+'%'

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

Page 86: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_87

숫자, 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 암

호문

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;

Page 87: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

88_ IV. DB2

③ DEC_STR

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

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;

⑥ DEC_INDEX_STR, DEC_INDEX_STR_LIKE, DEC_INDEX_B64,

DEC_INDEX_B64_LIKE

Plug-IN 연동 하지 않을 경우

DB2 => SELECT DEC_INDEX_STR('SCP', 'TAB', 'COL',

ENC_STR('SCP', 'TAB', 'COL', 'abc'), '') FROM

sysibm.sysdummy1;

DB2 => SELECT DEC_INDEX_B64('SCP', 'TAB', 'COL',

ENC_B64('SCP', 'TAB', 'COL', 'abc'), '') FROM

sysibm.sysdummy1;

Plug-IN 연동 할 경우

DB2 => SELECT DEC_INDEX_STR('SCP', 'TAB', 'COL',

ENC_STR('SCP', 'TAB', 'COL', 'abc'), 'IX') FROM

sysibm.sysdummy1;

DB2 => SELECT DEC_INDEX_B64('SCP', 'TAB', 'COL',

ENC_B64('SCP', 'TAB', 'COL', 'abc'), 'IX') FROM

sysibm.sysdummy1;

Page 88: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_89

⑦ 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 89: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키
Page 90: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

V TIBERO

1. 설치 절차

2. 함수 설명

Page 91: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

92_ V. TIBERO

V. TIBERO

DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전

준비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.

1. 설치 절차

1.1 UNIX 환경 설치

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

- liblogw.{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 파일

DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.

License 파일(license.cer)은 제공업체가 별도로 제공한다.

Agent key 파일

Page 92: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_93

Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,

damo_agt.key, damo_site.cer)을 발급 받는다. 키쌍 발급시 사용

한 DB NAME, AGENT ID를 숙지한다.

SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는

_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.

acl_cli 파일

DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.

privilege.damo 정책 파일

acl_cli에서 설정된 권한을 저장하는데 사용한다.

사전 조사

DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하

거나 준비한다. 사전에 조사할 사항들은 다음과 같다.

[표 8] DA Encryption 설치 조사 사항

구분 사전 인지 사항

사항 DB 엔진 설치 계정에 폴더 생성

DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)

DB 서버의 DBA 권한 계정

DB 엔진 설치 계정의 . profile 파일 수정

접근제어 기능을 사용하기 위해서는 SG-KMS 사용자 매뉴얼을 참고

하여 다음의 항목의 값을 입력합니다.

접근 경로 : DA를 적용한 DB 프로세스의 실행 경로를 입력

합니다.

접근 기간 : DA가 실행될 수 있는 기간을 입력합니다.

접근 요일 : DA가 실행될 수 있는 요일을 입력합니다.

접근 시간 : DA가 실행될 수 있는 시간을 입력합니다.

접근 계정 : DA를 실행하고 있는 DB 접속 계정을 입력합니

다.

Page 93: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

94_ V. TIBERO

접근 제어 기능을 KMS 연동할 때에만 사용 가능합니다.

접근 계정은 암복호화 함수에서 'DAMO', 'SID', '서비스 ID'를

사용할 경우에만 사용가능합니다.

02 KMS 연동 설치 절차

1) 환경변수 설정

DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryptio

n 이 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

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

Page 94: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_95

$SCP_INST_HOME/log> touch .lock

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

$SCP_INST_HOME 디렉토리에 파일 복사

acl_cli 파일, 라이브러리 파일, 설정 파일, 라이센스 파일,

privilege.damo 정책 파일을 $SCP_INST_HOME 위치에 복사한

다.

$TB_HOME/lib 디렉토리에 library 파일의 symbolic link 파일을

생성한다.

$> cd $TB_HOME/lib

$> ln –s $SCP_INST_HOME/libcis_cc-3.2.{so|a|sl}

libcis_cc-3.2.{so|a|sl}

$> ln –s $SCP_INST_HOME/libcis_ce-3.2.{so|a|sl}

libcis_ce-3.2.{so|a|sl}

$> ln –s $SCP_INST_HOME/liblogw.{so|a|sl}

liblogw.{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_site.cer) 파일을

$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을 이용하여

Page 95: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

96_ V. TIBERO

설치할 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 사용자에게 CO

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

Page 96: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_97

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.

7) 설정 파일 수정

$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일(scpdb_

agent.ini) 중 ServerIP, ServerPort, AgentID, LicenseFilePath, SiteCertFileP

ath, CertFilePath, KeyFilePath, Secret 값을 수정한다.

로그 기능을 사용할 경우에는 LogDir, LogLevel의 값을 수정합니다.

LogDir : DA의 로그 파일을 남기기 위한 경로를 적습니다.

LogLevel : DA의 로그 파일에 남기는 레벨을 적습니다.

0 : 로그 파일을 남기지 않습니다.

2 : 경고 로그를 파일에 기록합니다.

4 : 에러 로그를 파일에 기록합니다.

Page 97: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

98_ V. TIBERO

6 : 정보 로그를 파일에 기록합니다.

8 : 디버그 로그를 파일에 기록합니다.

8) CLI에서 권한 설정

$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위

로 암·복호 권한을 설정한다. USER는 암·복호 권한을 부여받는 USER

명을 입력합니다.

SG-KMS에서 사용되는 서비스 ID를 사용하기 위해서는 DAMO"SID"

서비스 ID 를 입력합니다. 서비스 ID에 SG-KMS에 등록된 서비스 ID

를 입력합니다.

이전 버전과의 호환성을 위해 OWNER"TABLE"COLUMN을 사용할

수 있습니다. OWNER는 암호 테이블 소유자명, TABLE은 암호 테이

블명, COLUMN은 암호 컬럼명을 사용할 수 있습니다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

D'Amo > SET PRIV ENC USER"DAMO"SID"SERVICE_ID"1"1

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"DAMO"SID"SERVICE_ID

D'Amo > DEL PRIV ENC USER"OWNER"TABLE"COLUMN

D'Amo > SAVE ALL

D'Amo > SHOW ALL

CLI 에서 권한을 추가하거나 삭제 한 경우 반드시 SAVE

Page 98: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_99

ALL 명령어를 실행하며 SHOW ALL 명령어를 이용하여 적

용 여부를 확인 한다.

9) 설치 확인

암·복호 함수 실행 권한을 부여한 DB 사용자 계정에서 암·복호 함수

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

OWNER 는 암호 테이블의 소유자, TABLE 은 암호 테이블명, COLU

MN 은 암호 컬럼명이다.

SQL> SELECT ENC_STR( 'DAMO', 'SID', 'SERVICE_ID',

'abc') FROM DUAL;

ENC_STR('DAMO', 'SID', 'SERVICE_ID','abc')

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

5E41ACD673653158D7AE8C30CDA9627D3556E173

SQL> SELECT DEC_STR( 'DAMO', 'SID', 'SERVICE_ID',

ENC_STR( 'DAMO', 'SID', 'SERVICE_ID', 'abc')) FROM

DUAL;

DEC_STR( 'DAMO', 'SID', 'SERVICE_ID',

ENC_STR( 'DAMO', 'SID', 'SERVICE_ID', 'abc'))

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

abc

03 SCP 파일 연동 설치 절차

1) 환경변수 설정

DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryptio

n 이 UNIX OS 의 TIBERO 계정 /home/dbms_api 에 설치된다고 가정

한다.

① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를

설정한다.

.profile을 사용하는 경우

export SCP_INST_HOME=/home/dbms_api

.cshrc를 사용하는 경우

Page 99: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

100_ V. TIBERO

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 파일, 라이브러리 파일, 설정 파일, 라이센스 파일,

privilege.damo 정책 파일, .SCP파일을 $SCP_INST_HOME 위치

에 복사한다.

$TB_HOME/lib 디렉토리에 library 파일의 symbolic link 파일을

생성한다.

$> cd $ORACLE_HOME/lib

$> ln –s $ SCP_INST_HOME/libcis_cc-3.2.{so|a|sl}

libcis_cc-3.2.{so|a|sl}

$> ln –s $ SCP_INST_HOME/libcis_ce-3.2.{so|a|sl}

libcis_ce-3.2.{so|a|sl}

$> ln –s $ SCP_INST_HOME/liblogw.{so|a|sl}

liblogw.{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}

Page 100: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_101

$SCP_INST_HOME/key 디렉토리에 파일 복사

Agent key쌍(damo_agt.cer, damo_agt.key, damo_site.cer) 파일을

$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 사용자에게 CO

Page 101: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

102_ V. TIBERO

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

SQL> START 003.grant_execute_functions.sql

Granted.

Page 102: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_103

׃

Granted.

7) 설정 파일 수정

$SCP_INST_HOME 디렉토리에 있는 DA Encryption 설정 파일(scpdb_

agent.ini) 중 LicenseFilePath, SiteCertFilePath, CertFilePath, KeyFilePath,

Secret 값을 수정한다.

로그 기능을 사용할 경우에는 LogDir, LogLevel의 값을 수정합니다.

LogDir : DA의 로그 파일을 남기기 위한 경로를 적습니다.

LogLevel : DA의 로그 파일에 남기는 레벨을 적습니다.

0 : 로그 파일을 남기지 않습니다.

2 : 경고 로그를 파일에 기록합니다.

4 : 에러 로그를 파일에 기록합니다.

6 : 정보 로그를 파일에 기록합니다.

8 : 디버그 로그를 파일에 기록합니다.

8) CLI에서 권한 설정

$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 USER 단위

로 암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USE

R명이다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

D'Amo > SET PRIV ENC USER"DAMO"SCP".SCP파일"1"1

D'Amo > SAVE ALL

D'Amo > SHOW ALL

Page 103: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

104_ V. TIBERO

권한 삭제할 경우

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_CO

LUMN 은 .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

Page 104: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_105

2. 함수 설명

2.1 함수 설명

함수 명 입력 출력

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

OPE 데이터

I_TABLE IN 문자열,

I_COLUMN IN 문자열,

I_DATA IN 문자열 (평문),

I_TYPE

IN 문자열

'' or

'IX '(Plug-IN

연동 시 사용)

DEC_INDEX_STR I_OWNER IN 문자열, Hex String 암호

Page 105: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

106_ V. TIBERO

I_TABLE IN 문자열, 문 입력받아

OPE 데이터 I_COLUMN IN 문자열,

I_DATA IN 문자열 (암호문),

I_TYPE

IN 문자열

'' or

'IX '(Plug-IN

연동 시 사용)

DEC_INDEX_B64 I_OWNER IN 문자열,

Base64

Encording 암호

문 입력받아

OPE 데이터

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

암호문

Page 106: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_107

B64TOHEX

I_DATA

IN 문자열

(base64 Encording 암호

문)

Hex String 암호

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;

Page 107: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

108_ V. TIBERO

⑥ DEC_INDEX_STR, DEC_INDEX_B64

Plug-IN 연동 하지 않을 경우

SQL> SELECT DEC_INDEX_STR('SCP', 'TAB', 'COL',

ENC_STR('SCP', 'TAB', 'COL', 'abc'), '') FROM DUAL;

SQL> SELECT DEC_INDEX_B64('SCP', 'TAB', 'COL',

ENC_B64('SCP', 'TAB', 'COL', 'abc'), '') FROM DUAL;

Plug-IN 연동 할 경우

SQL> SELECT DEC_INDEX_STR('SCP', 'TAB', 'COL',

ENC_STR('SCP', 'TAB', 'COL', 'abc'), 'IX') FROM DUAL;

SQL> SELECT DEC_INDEX_B64('SCP', 'TAB', 'COL',

ENC_B64('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;

Page 108: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

VI SYBASE IQ

1. 설치 절차

2. 함수 설명

Page 109: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

110_ VI. SYBASE IQ

VI. SYBASE IQ

DA Encryption 설치 전에 준비해야 할 것들에 대해 설명한다. 사전

준비가 완료 되면 설치 절차에 따라 DA Encryption 을 설치한다.

1. 설치 절차

1.1 UNIX 환경 설치

01 설치 전 준비사항

DA Encryption 을 설치하기 전에 다음 준비가 필요하다.

Library 파일

- libdamoscpdb.{so|a|sl}.v# 파일

- libscpdb_agent.{so|a|sl} 파일

- libcis_cc-3.1.{so|a|sl} 파일

- libcis_ce-3.1.{so|a|sl} 파일

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

License 파일

DA Encryption 구동 시 제품의 유효성을 검증하는데 사용한다.

License 파일(license.cer)은 제공업체가 별도로 제공한다.

Page 110: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_111

Agent key 파일

Keymanager 매뉴얼을 참고하여 Agent 키쌍(damo_agt.cer,

damo_agt.key, damo_site.cer)을 발급 받는다. 키쌍 발급시 사용

한 DB NAME, AGENT ID를 숙지한다.

SCP 파일 연동할 경우에는 설치 파일과 같이 제공하는

_TestAgentKeyPair 폴더의 Agent 키쌍을 사용한다.

acl_cli 파일

DB 의 USER 별로 암·복호 권한을 설정 하는데에 사용한다.

privilege.damo 정책 파일

acl_cli에서 설정된 권한을 저장하는데 사용한다.

사전 조사

DA Encryption 설치 하기 전에 다음과 같은 사항들을 확인하

거나 준비한다. 사전에 조사할 사항들은 다음과 같다.

[표 9] DA Encryption 설치 조사 사항

구분 사전 인지 사항

사항 DB 엔진 설치 계정에 폴더 생성

DB 사용자로 SCP 계정 생성 (필수가 아닌 권고사항)

DB 서버의 DBA 권한 계정

DB 엔진 설치 계정의 . profile 파일 수정

02 KMS 연동 설치 절차

1) 환경변수 설정

DA Encryption 을 설치할 OS USER의 환경을 설정한다. DA Encryptio

n 이 UNIX OS 의 SYBASE IQ 계정 /home/dbms_api 에 설치된다고

가정한다.

① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를

설정한다.

.profile을 사용하는 경우

Page 111: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

112_ VI. SYBASE IQ

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 파일, 라이브러리 파일, 설정 파일, 라이센스 파일,

privilege.damo 정책 파일을 $SCP_INST_HOME 위치에 복사한

다.

또한 SYBASE IQ 홈의 lib64 위치에 library 파일의 symbolic

link 파일을 생성한다.

libdamoscpdb.{so|a|sl} 파일의 symbolic link 파일을 생성할 때

는 항상 so 파일로 생성한다.

고객의 환경에 따라 libdamoscpdb.{so.a.s1}.v0,

libdamoscpdb.{so.a.s1}.v3, libdamoscpdb.{so.a.s1}.v4 파일을 사

Page 112: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_113

용한다. 참고로 15.4 에서 libdamoscpdb.{so.a.s1}.v4 가 제일

빠르며, 15.4 보다 낮을 경우 libdamoscpdb.{so.a.s1}.v3 나

libdamoscpdb.{so.a.s1}.v0 파일을 사용한다.

$> 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/liblogw.{so|a|sl}

liblogw.{so|a|sl}

$> ln –s $SCP_INST_HOME/libdamoscpdb.{so|a|sl}.v#

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

$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 113: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

114_ VI. SYBASE IQ

예) 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.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, AgentID, LicenseFilePath, SiteCertFileP

Page 114: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_115

ath, CertFilePath, KeyFilePath, Secret 값을 수정한다.

7) CLI에서 권한 설정

$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로

암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER

명, OWNER 는 암호 테이블 소유자명, TABLE 은 암호 테이블명, C

OLUMN은 암호 컬럼명이다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

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 은 암호 테이블명, COLU

MN 은 암호 컬럼명이다.

(DBA)> SELECT ENC_STR('OWNER', 'TABLE', 'COLUMN',

Page 115: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

116_ VI. SYBASE IQ

'abc')

ENC_STR('OWNER', 'TABLE', 'COLUMN','abc')

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

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 Encryptio

n 이 UNIX OS 의 SYBASE IQ 계정 /home/dbms_api 에 설치된다고

가정한다.

① SCP_INST_HOME 환경변수에 DA Encryption을 설치할 경로를

설정한다.

.profile을 사용하는 경우

export SCP_INST_HOME=/home/dbms_api

.cshrc를 사용하는 경우

Page 116: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_117

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 파일, 라이브러리 파일, 설정 파일, 라이센스 파일,

privilege.damo 정책 파일, .SCP파일을 $SCP_INST_HOME 위치

에 복사한다.

또한 SYBASE IQ 홈의 lib64 위치에 library 파일의 symbolic

link 파일을 생성한다.

libdamoscpdb.{so|a|sl} 파일의 symbolic link 파일을 생성할 때

는 항상 so 파일로 생성한다.

고객의 환경에 따라 libdamoscpdb.{so.a.s1}.v0,

libdamoscpdb.{so.a.s1}.v3, libdamoscpdb.{so.a.s1}.v4 파일을 사

용한다. 참고로 15.4 에서 libdamoscpdb.{so.a.s1}.v4 가 제일

빠르며, 15.4 보다 낮을 경우 libdamoscpdb.{so.a.s1}.v3 나

libdamoscpdb.{so.a.s1}.v0 파일을 사용한다.

Page 117: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

118_ VI. SYBASE IQ

$> 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/liblogw.{so|a|sl}

liblogw.{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_site.cer) 파일을

$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

Page 118: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_119

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) 중 LicenseFilePath, SiteCertFilePath, CertFilePath, KeyFilePath,

Secret 값을 수정한다.

7) CLI에서 권한 설정

$SCP_INST_HOME 디렉토리에서 acl_cli 파일을 실행하여 user 단위로

Page 119: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

120_ VI. SYBASE IQ

암·복호 권한을 설정한다. USER 는 암·복호 권한을 부여받는 USER

명이다.

CLI 명령어를 자세히 보려면 help 명령어를 실행한다.

$> cd $SCP_INST_HOME

$> ./acl_cli –start

Enter the PIN of CLI-key. : damo_agt.key 의 password

권한 추가할 경우

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_CO

LUMN 은 .SCP 파일명 이다.

(DBA)> SELECT ENC_STR('DAMO', 'SCP',

'CBC_FIXED_Key_AES_128.SCP', 'abc')

ENC_STR('DAMO', 'SCP',

Page 120: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_121

'CBC_FIXED_Key_AES_128.SCP','abc')

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

E6878572B3287A049906A8CA57F0207C

(1 rows)

Execution time: 0.01 seconds

(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. 함수 설명

2.1 함수 설명

함수 명 입력 출력

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

Page 121: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

122_ VI. SYBASE IQ

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 암호

문 입력받아

OPE 데이터

I_TABLE IN 문자열,

I_COLUMN IN 문자열,

I_DATA IN 문자열 (암호문),

I_TYPE

IN 문자열

'' or

'IX '(Plug-IN

연동 시 사용)

DEC_INDEX_B64 I_OWNER IN 문자열, Base64

Encording 암호

문 입력받아

OPE 데이터

I_TABLE IN 문자열,

I_COLUMN IN 문자열,

I_DATA IN 문자열 (암호문),

Page 122: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_123

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 암호

2.2 함수 호출 예제

암호 테이블의 소유자는 SCP, 암호 테이블명은 TAB, 암호 컬럼명은

COL, 암호할 데이터는 ‘abc’ 로 가정한다.

① ENC_STR

(DBA)> SELECT ENC_STR('SCP', 'TAB', 'COL', 'abc');

Page 123: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

124_ VI. SYBASE IQ

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

(DBA)> SELECT INDEX_STR( 'SCP', 'TAB', 'COL', 'abc',

'IX');

⑥ DEC_INDEX_STR, DEC_INDEX_B64

Plug-IN 연동 하지 않을 경우

(DBA)> SELECT DEC_INDEX_STR('SCP', 'TAB', 'COL',

ENC_STR('SCP', 'TAB', 'COL', 'abc'), '');

(DBA)> SELECT DEC_INDEX_B64('SCP', 'TAB', 'COL',

ENC_B64('SCP', 'TAB', 'COL', 'abc'), '');

Plug-IN 연동 할 경우

(DBA)> SELECT DEC_INDEX_STR('SCP', 'TAB', 'COL',

ENC_STR('SCP', 'TAB', 'COL', 'abc'), 'IX');

(DBA)> SELECT DEC_INDEX_B64('SCP', 'TAB', 'COL',

ENC_B64('SCP', 'TAB', 'COL', 'abc'), 'IX');

⑦ HASH_STR

Page 124: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_125

(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 125: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키
Page 126: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

VII 부록

1. SCP 파일 생성 방법

2. 에러 대응 가이드

Page 127: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

128_ VI. SYBASE IQ

VII. 부록

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

⑤ 세번째 매개변수인 OPMode는 받드시 필요하며 다음과 같이

사용한다.

Page 128: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_129

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 129: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

130_ VI. SYBASE IQ

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 라이선스 제품명 오류

124 SCPDB_ERR_LICENSE_INVALID_HOST 라이선스 호스트(IP) 오류

Page 130: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_131

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 파일을 찾을 수 없음

206 SCPDB_ERR_FILE_OPEN 파일을 찾을 수 없음

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 파일을 찾을 수 없음

300 SCPDB_ERR_INVALID_ALGORITHM 잘못된 HASH 알고리즘 입력

305 SCPDB_ERR_ENCRYPT 암호화 실패

306 SCPDB_ERR_DECRYPT 복호화 실패

308 SCPDB_ERR_B64_DECODE 복호화 실패

333 SCPDB_ERR_WRONG_KEY 잘못된 Agent 키쌍 입력

334 SCPDB_ERR_ENCRYPT_FPE FPE 암호화 실패

335 SCPDB_ERR_DECRYPT_FPE FPE 복호화 실패

339 SCPDB_ERR_PARTIAL_ENCRYPTION_CONTEXT 부분 암호화 에러

340 SCPDB_ERR_ACCESS_PROCESS_NAME 접근제어 에러 - 설치 경로

341 SCPDB_ERR_ACCESS_ACCOUNT 접근제어 에러 - 계정

342 SCPDB_ERR_ACCESS_DATE 접근제어 에러 - 기간

343 SCPDB_ERR_ACCESS_TIME 접근제어 에러 - 시간

344 SCPDB_ERR_ACCESS_DAY_OF_WEEK 접근제어 에러 - 요일

346 SCPDB_ERR_DECRYPT_SESSION_KEY .SCP파일 복호화 실패

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 연결 타임아웃

1201 SCPDB_ERR_NOTMATCH_ROLE 잘못된 요청 - AgentID 에 포함

Page 131: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

132_ VI. SYBASE IQ

되지 않음

1207 SCPDB_ERR_NOT_FOUND_SERVICE_COLUMN 잘못된 요청 - 컬럼 없음

1208 SCPDB_ERR_NOT_FOUND_SERVICE_ALIAS 잘못된 요청 - 서비스ID 없음

2.2 Error Code 대응 가이드

단순히 성공이나 실패 등의 에러메시지를 제외한 알수 없는 에러메

시지가 나올때는 펜타시큐리티시스템(주)에 연락 주시면 친절하게 에

러에 대한 대응절차를 알려 드리겠습니다.

01 성공인 경우

다음 값의 경우에는 정상적으로 동작하는 상태이다

Error code Number 0

Error Code SCPDB_SUCCESS

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= 의 값을

확인하여 제대로 된 라이선스 파일의 경로를 입력

합니다.

Page 132: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_133

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

는지 확인합니다.

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

Page 133: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

134_ VI. SYBASE IQ

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

부분이 없는지 확인합니다.

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

Page 134: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_135

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

못된 입력이 있을경우 발생합니다. 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입니

Page 135: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

136_ VI. SYBASE IQ

다.

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

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

에 해당하는 SPIN= 의 값이 없을 때 발생합니다.

04 통신 에러( KeyManager )

다음 값의 경우에는 KeyManager 와 통신시 발생한 에러이다

Page 136: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_137

Error code Number 702

Error Code SCPDB_ERR_SOCK_CONNECT

DESCRIPTION SOCKET 연결 실패

Handle scpdb_agent.ini 파일의 ServerIP= 와 ServerPort= 로

KeyManager 에 접속시 접속할수 없는경우 발생한

다. KeyManager의 IP와 Port를 확인하고 현재

KeyManager가 잘 동작하고 있는지 확인합니다.

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가 잘 동작하고 있는지 확

인합니다.

Error code Number 1201

Error Code SCPDB_ERR_NOTMATCH_ROLE

DESCRIPTION 잘못된 요청 - AgentID에 포함된 서비스ID가 아님

Page 137: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

138_ VI. SYBASE IQ

Handle BA-SCP에서 요청한 서비스ID가 KMS 관리도구에

등록되어 있지만 AgentID에 포함되지 않을 경우

발생합니다. KMS 관리도구의 서비스ID를 확인합니

다.

Error code Number 1207

Error Code SCPDB_ERR_NOT_FOUND_SERVICE_COLUMN

DESCRIPTION 잘못된 요청 - 컬럼 없음

Handle BA-SCP에서 요청한 컬럼정보가 KMS 관리도구에

등록되어 있지 않을 경우 발생합니다. KMS 관리도

구의 컬럼정보 및 BA-SCP에서 요청한 컬럼정보를

확인합니다.

Error code Number 1208

Error Code SCPDB_ERR_NOT_FOUND_SERVICE_ALIAS

DESCRIPTION 잘못된 요청 - 서비스ID 없음

Handle BA-SCP에서 요청한 서비스ID가 KMS 관리도구에

등록되어 있지 않을 경우 발생합니다. KMS 관리도

구의 서비스ID 및 BA-SCP에서 요청한 서비스ID를

확인합니다.

05 API 사용 에러

다음 값의 경우에는 API 사용시 잘못된 사용으로 인하여 발생한 에러이다

Error code Number 101

Error Code SCPDB_ERR_NOT_INITIALIZED

DESCRIPTION 초기화 되지 않았다

Handle API 호출시 초기화 함수를 호출하지 않고 사용한

경우 발생합니다. init 함수가 정상적으로 호출되었

Page 138: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_139

는지 확인합니다..

Error code Number 130

Error Code SCPDB_ERR_CIS_INIT

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 와 비교하여 확인합니다.

Page 139: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

140_ VI. SYBASE IQ

Error code Number 204

Error Code SCPDB_ERR_NULLPOINT_INPUT

DESCRIPTION 잘못된 입력(널포인트)

Handle API 호출시 널포인트 입력값을 사용시 발생한다.

이 경우 API 함수 호출이 정상적으로 이루어져 있

는지 sample code 와 비교하여 확인합니다.

Error code Number 300

Error Code SCPDB_ERR_INVALID_ALGORITHM

DESCRPTION 잘못된 HASH 알고리즘 입력

Handle 단방향 알고리즘 함수 호출시 입력되는 알고리즘

의 값이 허용하지 않는 알고리즘 번호여서 발생합

니다. 단방향 알고리즘 번호를 제대로 확인하고 입

력합니다.

70 : SHA1

71 : SHA256

72 : SHA384

73 : SHA512

74 : HAS160

Error code Number 305

Error Code SCPDB_ERR_ENCRYPT

DESCRIPTION 암호화 실패

Handle 암호화 함수를 호출하기 전에 Key를 가져오는

ScpAgt_CreateContext와

ScpAgt_CreateContextImportFile 의 결과를 다시 한

번 확인합니다.

Error code Number 306

Page 140: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_141

Error Code SCPDB_ERR_DECRYPT

DESCRIPTION 복호화 실패

Handle 복호화 함수에 잘못 암호화된 값을 입력했거나, 평

문을 입력한 경우 발생합니다. 복호화 함수의 입력

값을 다시 확인합니다.

Error code Number 308

Error Code SCPDB_ERR_B64_DECODE

DESCRIPTION 복호화 실패

Handle ScpAgt_Decrypt_B64 함수에서 입력받은 암호화값

이 Base64 인코딩된 값이 아닐 경우 발생합니다.

입력한 암호화값의 Base64 인코딩여부를 확인합니

다.

Error code Number 333

Error Code SCPDB_ERR_WRONG_KEY

DESCRIPTION 잘못된 Agent 키쌍 입력

Handle Agent 쪽에 잘못된 Agent 키쌍으로 인해 Key 정보

를 제대로 얻어오지 못했을 경우에 발생합니다.

Agent 키쌍 파일이 KMS에서 제대로 발급받았는지

확인합니다.

Error code Number 334

Error Code SCPDB_ERR_ENCRYPT_FPE

DESCRIPTION FPE 암호화 실패

Handle 복호화 함수에 잘못 암호화된 값을 입력했거나, 평

문을 입력한 경우 발생합니다. 복호화 함수의 입력

Page 141: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

142_ VI. SYBASE IQ

값을 다시 확인합니다.

Error code Number 335

Error Code SCPDB_ERR_DECRYPT_FPE

DESCRIPTION FPE 복호화 실패

Handle 복호화 함수에 잘못 암호화된 값을 입력했거나, 평

문을 입력한 경우 발생합니다. 복호화 함수의 입력

값을 다시 확인합니다.

Error code Number 339

Error Code SCPDB_ERR_PARTIAL_ENCRYPTION_CONTEXT

DESCRIPTION 부분 암호화 에러

Handle 부분 암호화를 지원하지 않는 API에서 부분 암호

화 정책을 사용할 경우 발생합니다. 정책 또는

API를 확인합니다.

Error code Number 340

Error Code SCPDB_ERR_ACCESS_PROCESS_NAME

DESCRIPTION 접근제어 에러 - 설치 경로

Handle 접근제어 항목 중 설치 경로가 일치하지 않아서

발생한 문제입니다.KMS관리도구에 입력된 설치

경로 및 BA-SCP의 설치 경로를 확인합니다.

Error code Number 341

Error Code SCPDB_ERR_ACCESS_ACCOUNT

DESCRIPTION 접근제어 에러 - 계정

Handle 접근제어 항목 중 계정 이름이 일치하지 않아서

발생한 문제입니다.KMS관리도구에 입력된 계정

Page 142: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_143

이름 및 BA-SCP를 실행한 계정 이름을 확인합니

다.

Error code Number 342

Error Code SCPDB_ERR_ACCESS_DATE

DESCRIPTION 접근제어 에러 - 기간

Handle 접근제어 항목 중 기간이 일치하지 않아서 발생한

문제입니다.KMS관리도구에 입력된 기간 및 BA-

SCP의 실행된 기간을 확인합니다.

Error code Number 343

Error Code SCPDB_ERR_ACCESS_TIME

DESCRIPTION 접근제어 에러 - 시간

Handle 접근제어 항목 중 시간이 일치하지 않아서 발생한

문제입니다.KMS관리도구에 입력된 시간 및 BA-

SCP의 실행된 시간을 확인합니다.

Error code Number 344

Error Code SCPDB_ERR_ACCESS_DAY_OF_WEEK

DESCRIPTION 접근제어 에러 - 요일

Handle 접근제어 항목 중 요일이 일치하지 않아서 발생한

문제입니다.KMS관리도구에 입력된 요일 및 BA-

SCP의 실행된 요일을 확인합니다.

Error code Number 346

Error Code SCPDB_ERR_DECRYPT_SESSION_KEY

DESCRIPTION .SCP파일 복호화 실패

Handle 입력된 .SCP 파일의 복호화를 실패할때 발생합니

Page 143: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

144_ VI. SYBASE IQ

다. 현재 사용하는 Agent 키쌍으로 생성된 .SCP 파

일인지 확인합니다.

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 206

Error Code SCPDB_ERR_FILE_OPEN

DESCRIPTION 파일을 찾을 수 없음

Handle API 에서 사용하는 파일을 찾을 수 없을 때 발생

합니다.

Error code Number 211

Error Code SCPDB_ERR_CONFIG_FILE_NOT_FOUND

DESCRIPTION 파일을 찾을 수 없음

Page 144: DA Encryption...데이터 해쉬 3. 특징 da는 다음과 같은 특징을 가집니다. db 내에서 빠른 암/ =호화 성능 네트워크 구간의 안정성 장 안전한 키

D'Amo DA 설치 지침서

_145

Handle init 함수 호출시 scpdb_agent.ini 파일을 찾을 수

없을 때 발생합니다. scpdb_agent.ini 파일의 경로를

다시 한번 확인합니다.

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

다시 한번 확인합니다.