4 시작하기
hanmj edited this page 2 months ago

xit-gpki란?

xit-gpki는 공공 전문통신 시 암복호화를 실행하는 GPKI 모듈의 사용을 돕는 지원 모듈이다.

설치

xit-gpki를 사용하려면

  • 프로젝트의 pom.xml에 의존성을 추가
  • intf-conf/gpki.conf 파일을 설정한다.

의존성 추가

xit-gpki를 응용시스템에서 사용하려면 프로젝트의 pom.xml에 의존성을 다음과 같이 추가한다.

<dependency>
    <groupId>cokr.xit.interfaces</groupId>
    <artifactId>xit-gpki</artifactId>
    <version>23.04.01-SNAPSHOT</version>
</dependency>

gpki.conf 설정

클래스패스 상에 intf-conf 디렉토리와 gpki.conf 파일을 생성하고 다음 내용을 설정한다.

{
    "enabled": true,                            /* 활성화(사용) 여부 */
    "license": "C:\\GPKI\\Lic",                 /* 이용기관 GPKI API 라이센스 디렉토리 */
    "charset": "UTF-8",                         /* 문자셋 */

    "server": {
        "local": "SVR3910262001",               /* 이용기관 서버 CN */
        "targets": "SVR1311000030"              /* 대상기관 서버인증서 아이디, 여러 개일 경우 컴마(,)로 구분 */
    },

    "ldapUrl": "ldap://10.1.7.118:389/cn=",     /* 대상기관 인증서 다운로드를 위한 행정망 LDAP URL */
    /*"ldapUrl": "ldap://152.99.57.127:389/cn=",   대상기관 인증서 다운로드를 위한 인터넷망 LDAP URL */
    "certDir": "C:\\GPKI\\Certificate\\class1", /* 서버 인증서, 키 저장 디렉토리 */
    "targetCert": "{serverID}.cer",             /* 대상기관 인증서 이름 패턴 */

    "env": {                                    /* 이용기관 서버 인증서 */
        "certFile": "SVR3910262001_env.cer",
        "privateKeyFile": "SVR3910262001_env.key",
        "privateKeyPassword": "wkddodls3322!"
    },
    "sig": {                                    /* 이용기관 서버 전자서명 */
        "certFile": "SVR3910262001_sig.cer",
        "privateKeyFile": "SVR3910262001_sig.key",
        "privateKeyPassword": "wkddodls3322!"
    }
}

암복호화

암복호화는 cokr.xit.interfaces.gpki.GPKI로 위 설정내용을 바탕으로 실행한다.

암호화

암호화는 GPKI.encrypt(String, String)로 실행한다.

String targetServer = "...", // gpki.conf 파일의 'server.targets'에 설정한 서버인증서 아이디 중 하나
       text = "나랏말씀이 중국과 달라";
GPKI gpki = new GPKI();
String encrypted = gpki.encrypt(targetServer, text);

복호화

복호화는 `GPKI.decrypt(String)'으로 실행한다.

String decrypted = gpki.decrypt(encrypted);