본문 바로가기

Development/Java, JSP

GPKI 라이브러리를 이용한 암복호화 구현하기.

 
관공서에서 시스템 연계를 위해서는 개인정보 관련 문제때문에 데이터를 GPKI 를 이용해서 암복호화를 해야한다.
주무관을 통해서 요청하면 해당 api 와 도큐먼트를 받을 수 있는데 내용이 좀 부실하다.
구글링을 해도 gpki 성격상 자료가 많지 않거니와 연계 담당자도 처음부터 끝까지 자세히 알려주지 않는다.
어느정도 진행되면 조금 더 알려주고 또 어느정도 개발이 진행되면 조금 더 알려주고.. 하는 식이다.

 

xx행정쪽으로는 미리 우리의 ~.cer, ~.key 파일정보를 보내주었다.
 
xxx시청에서 xx행정시스템과 연계 테스트를 하면서 gpki 를 이용한 암복호화를 테스트했는데 진행 방법을 정리한다.
 
 
목적 :xxx시청 xxx 시스템이 xx행정시스템과 연계하기 위해서 데이터를 gpki 로 암복호화.
 
 
1. JNI 를 이용하기 위한 환경 설정.
- 서버에서 c 로 구현한 라이브러리를 호출하기 위해서 jni 를 이용한다.
- 리눅스 서버에 암복호용 라이브러리 ~.so 파일을 위치시키고 경로를 LD_LIRARY_PATH 로 설정한다.
- 리눅스에서는 각 경로를 ‘:’ 로 구분한다. 윈도우의 ‘;’ 와는 다르니 주의한다.
- .bash_profile 파일을 편집한다.
 
2. jar 파일 환경 설정.
- 암복호화 라이브러리와 같이 사용될 jar 파일을 위치시키고 classpath 를 설정한다.
- .bash_profile 파일을 편집한다.
 
3. openssl 확인.
- 만약 샘플 구동시에 libssl.so.4 동적 오브젝트 파일을 열수 없다는 관련 오류가 발생하면 libssl 관련 버전이 맞지 않는 것이니 맞는 버전을 찾아서 설치한다.
 
4. 라이센스 파일 확인.
- 처음 암복호화를 요청하면 임시 라이센스 파일을 준다.
- 테스트 완료하면 운영에 사용할 라이센스를 다시 요청해야 하며 실제 운영에서는 이 라이센스 파일을 사용해야 한다.
- 서버에 임시 라이센스 파일을 위치시키고 소스상에서 경로를 설정해준다.
 
5. 샘플코드 구동.
- 위의 설정이 제대로 되었는지 확인할 수 있다.
 
 
여기까지가 암복호화를 위한 환경설정 테스트 작업이다.
 
이후 소스상에서 로직처리를 테스트해야 한다.
전체적인 암복호화 로직을 살펴보자면, 
 
cer 정보를 이용해서 암호화 하고, 
key 정보를 이용해서 복호화 한다.
 
로직에서는, 
 
1. 우리쪽 cer 정보 체크 및 초기화.
2. ldap 서버를 통해서 상대방(xx행정) cer 정보를 가져온다.
3. 메시지를 송신한다.
- ldap 에서 가져온 xx행정 cer 정보를 이횽해서 메시지를 암호화 한다.
- <message></message> 태그를 포함해서 암호화 한다.
- 메시지를 수신한 xx행정에서는 자신들의 key 정보를 이용해서 복호화 한다.
- 우리가 xx행정의 cer 정보를 이용해서 암호화 했기때문에 xx행정의 key 정보를 이용해서 복호화가 가능하다.
4. 메시지 수신.
- xx행정에서 우리가 보내준 cer 정보로 데이터를 암호화해서 보내준다.
- 받은 데이터는 우리의 key 정보를 이용해서 복호화 한다.
 
 
이런 순서로 처리된다는 것을 기억하고 있으면 테스트 및 로직을 구현하기 수월하다.
svrID 설정 등의 자세한 내용은 Test048 프로젝트 소스 참고요망.
 
 
 
 
 
 
 
 

 

'Development > Java, JSP' 카테고리의 다른 글

컴파일러 오류 발생.  (0) 2010.12.24
콜백 메서드란?  (0) 2010.07.07
Resource bundle을 만들기 위한 two-letter ISO language code  (0) 2009.01.23
다국어지원용 한글변환  (0) 2009.01.22
재실행 막기.  (0) 2008.10.08