Appendix B. tbPSM 소스코드 암호화

tbPSM 언어로 작성된 소스코드를 암호화하는 방법을 기술합니다.

개요

Tibero는 tbPSM 언어 개발자가 작성한 소스코드를 일반 사용자 혹은 경쟁자들에게 노출되지 않도록 암호화하는 기능을 제공합니다.

사용자는 tbwrap 프로그램을 이용하여 소스 코드를 암호화할 수 있습니다. tbwrap 프로그램은 tbPSM 언어로 작성된 소스 파일을 암호화하여 파일로 저장하고, 암호화된 DDL문으로 프러시저, 패키지, 함수 등을 데이터베이스에 생성할 수 있습니다.

tbwrap 프로그램으로 tbPSM 코드 암호화하기

tbwrap 프로그램은 SQL 파일을 입력으로 받아서 프러시저, 함수, 패키지 선언부, 패키지 구현부와 같은 tbwrap 객체만 암호화합니다. 익명 블록이나 트리거, tbwrap가 아닌 객체들은 암호화하지 않습니다. 운영체제 프롬프트 창에서 아래와 같이 입력하여 프로그램을 실행합니다.

tbwrap iname=input_file [ oname=output_file ]

예제는 아래와 같습니다.

-- 현재 경로에 확장자만 달라진 test.tbw라는 이름의 파일로 출력된다. 
tbwrap iname=test.sql

-- 현재 경로에 result.tbw라는 이름의 파일로 출력된다. 
tbwrap iname=test.sql oname=result.tbw

-- 디렉터리도 지정할 수 있음
tbwrap iname=/far/test.sql oname=/boo/boo2/test.tbw

암호화된 파일을 열어보면 아래와 같이 작성되어 있습니다.

위와 같이 작성된 DDL로 tbPSM 객체를 컴파일하여 생성할 수 있습니다. 생성 후 *_SOURCE 계열 뷰로 조회하면 암호화된 채로 저장되었음을 확인할 수 있습니다.

예제

프러시저를 암호화하고 데이터베이스에 생성하는 과정을 예제를 통해 설명합니다.

cre.sql 파일에는 아래와 같은 DDL문이 있습니다.

개발자는 위 파일을 아래와 같이 암호화하여 생성된 cre.tbw 파일을 사용자에게 배포합니다.

cre.tbw을 열어보면 암호화되어 있음을 확인할 수 있습니다.

사용자는 파일을 받아서 tbsql 등의 프로그램으로 실행하여 프러시저를 생성합니다.

이제 사용자는 생성된 프러시저를 사용할 수 있습니다.

주의사항

다음은 tbPSM 소스코드 암호화의 주의사항에 대한 설명입니다.

  • 패키지를 배포할 경우 사용자에게 사용 방법은 노출시키되 구현 내용은 노출되지 말아야 합니다. 따라서 선언부는 암호화하지 말고, 구현부만 암호화하여 배포하도록 합니다.

  • 암호화된 구문은 복호화가 불가능하므로 원본 소스 코드를 분실하지 않도록 합니다.

  • 트리거는 암호화되지 않으므로 내부 구문에서 암호화된 서브 프로그램을 호출하도록 합니다.

  • tbwrap 프로그램은 문법 체크는 하지 않으므로 암호화된 파일로 컴파일해야 문법 오류를 확인할 수 있습니다.

Last updated