전자서명 자바 애플렛 개발!

youknowit의 이미지

오픈웹 김기창 입니다.

저를 도와주시는 어느 분께서 공인인증서를 이용하여 전자서명할 수 있는 자바 애플렛 개발을 거의 완료하였습니다. 이 프로그램은 GPL 조건으로 제공됩니다.

시안은 https://ms-class-action.net/class/ 에 있습니다. IE, 파이어폭스, 오페라, 사파리, 캉커러, 에피파니 등의 웹브라우저(윈도, 맥, 리눅스)에서 안정적으로 작동하고 있습니다. 동일한 시안은 http://lawlec.korea.ac.kr/sign/kim/ 에도 있습니다(그러나 이 경우에는 교신 정보가 암호화 되지 않습니다).

테스트를 위하여는 자바 소프트웨어(j2re) 1.5 이상이 설치되어 있어야 합니다. 윈도우즈를 이용하시는 경우에는 http://javadl.sun.com/webapps/download/AutoDL?BundleId=11026 을 클릭하면 자바 소프트웨어가 자동설치 됩니다. 리눅스나 맥 이용자께서는 http://java.com/ko/ 를 참조하시기 바랍니다.

직접 한번 둘러보시기 바랍니다. 금결원이 근거없는 주장을 더이상 되풀이 할 수는 없을 것입니다. (원래 부터 없었지만)

4월16일(월) 10시에 예정된 조정기일에서 판사님 앞에서 시연할 예정입니다.

직접 테스트해 보시고, 특기할 사항이 있으면 이곳이나, 오픈웹 사이트에 댓글을 남겨주시기 바랍니다.

jachin의 이미지

이젠 리눅스에서도 공인인증서를 쓸 수 있겠군요.

테스트 해보러 갑니다... 총총총
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

jachin의 이미지

조금 나중에 해야겠네요. ^^; 인증서 내보내기라...
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

희진군의 이미지

잘되면 좋겠습니다.

판사님이 기술적인 부분을 얼마나 이해할지는 모르지만...

결과가 좋았으면 하는 바램입니다. ㅎ

superwtk의 이미지

버튼의 텍스트가 정사각형으로 표시됩니다.

Windows XP Professional SP2 (English)
JRE 1.6.0 (build 1.6.0-b105)
Firefox 2.0.0.3

--------------------------------------------------------------------------------
http://blog.superwtk.com

danskesb의 이미지

Kubuntu 7.04, JRE 1.6.0-b105, Firefox 2.0.0.3/Konqueror 3.5.6에서 잘 작동합니다.
제 인증서가 만료되어서 테스트 인증서로 작업해 보았습니다.
---- 절취선 ----
http://blog.peremen.name

codebank의 이미지

좋은 일을 하시고 계시는군요.

저도 테스트를 해보려고(마침 .p12파일을 몇일전에 만들어둬서... :-)) 기본정보 입력하고
확인을 누르니 자바관련 경고창(?)이 나오는데 해당사이트를 신뢰할 수 있는지에 관련한
정보로 생각하고 확인을 누르니 바로 결과 페이지 ( http://lawlec.korea.ac.kr/sign/kim/do_sign_kim.php )로
넘어가고 인증서를 입력하는 부분이 없는 것 같더군요.
제가 무얼 잘못했는지...
이후로는 바로 서명결과(3단으로 나눠진 화면)를 보여주는 페이지로 바로 넘어가는데...
혹시 이런 경우 어떻게 해야하는지 아시는분 계십니까?
혹시 자바때문일런지요? 제가 자바관련부분은 거의 몰라서 예전에 잠시 설치했다가 지웠던
것으로 기억나는데... 다른 분들에 비해서 버젼이 확실이 낮군요... -.-;

OS : Windows-XP Professional SP2(Korea)
JAVA : JRE 1.4.2_04-b05 (build 1.4.2_04-b05)
Firefox : 2.0.0.3
------------------------------
좋은 하루 되세요.

------------------------------
좋은 하루 되세요.

youknowit의 이미지

이용자의 개인 파일(인증서 꾸러미 파일)에 엑세스 해야하기 때문에 "서명된" 애플렛을 사용합니다. "경고창"이라 말씀하신 부분이 바로, 애플렛에게 로칼 파일 엑세스 권한을 줄 것인지를 이용자에게 확인하는 단계입니다.

그것을 허락하면, 당장 애플렛이 실행됩니다. 위에 세개의 버튼이 나오는데, 그 중 맨 왼쪽 버튼을 클릭하면, 꾸러미 파일을 선택할 수 있습니다. 그다음 맨 오른 쪽 버튼을 클릭하면 서명을 하실 수 있습니다.

중간에 있는 버튼은 이용자가 선택한 인증서 상세정보를 보여주는 버튼입니다.

duddns의 이미지

Windows 2003 Server
FF2.0
JRE 1.5.0 (빌드 1.5.0_10-b03)

테스트용 인증서와 제가 사용하고 있는 인증서 둘 다 테스트 했습니다. 잘 동작합니다. :)

codebank의 이미지

제가 몇번 자바관련 패키지를 설치했다 지웠다하면서 무언가 꼬여버린 것 같습니다. :-)
확인을해보니 결과창 윗부분에 자바 애플릿이 나와야할 부분이 [X] 비슷한 그림으로
표시되어서 마우스 오른쪽 버튼으로 콘솔열기를 하고 확인해보니 필요한 몇몇 plug-in들이
없어서 그런가 봅니다.
역시 저는 자바와 궁합이 안맞나봅니다. -.-;
집에가서 LINUX로 다시 한번 테스트 해봐야겠네요.
------------------------------
좋은 하루 되세요.

------------------------------
좋은 하루 되세요.

youknowit의 이미지

선생님은 1.4를 이용하시는 듯...

윈도이용자의 경우 http://javadl.sun.com/webapps/download/AutoDL?BundleId=11026 를 클릭하시면 최근 버전 자바(jre)가 자동 설치됩니다.

codebank의 이미지

해당 JRE를 다시 설치하니 잘 동작합니다.
(이런 내용을 해당 페이지에 적어 놓아주셨으면 더 좋을 것 같습니다.
저처럼 자바에 무지한 사람들을 위해서... :-))

Windows XP Pro SP2
JRE 1.5.0_11 (build 1.5.0_11-b03)
Firefox 2.0.0.3
------------------------------
좋은 하루 되세요.

------------------------------
좋은 하루 되세요.

neosphere의 이미지

Gentoo Linux
Java(TM) SE Runtime Environment (build 1.6.0-b105)
FireFox 2.0.0.3 입니다.
잘 작동합니다.^^
----
Gentoo. Bioinformatics, Protein Interaction.

Gentoo. Bioinformatics, Protein Interaction.

김연진의 이미지

애플릿 전자서명 가능하겠죠. 공인인증기관들 서버에서 동작하는 서버툴킷들, 자바환경이면 자바툴킷씁니다. ( 클라이언트는 Active-X 지만 서버는 자바 )

클라이언트 환경에서도, 실제로 전자 입찰시 암호화할때 애플릿쓰는 솔루션 있었습니다. (아직도 쓰는데도 있을듯) 회사는 안밝힘. 공인인증서 쓸수 있나는 잘 모르겠지만 암호화는 됩니다.

근데 문제가 몇가지 있었죠. 뭐가 문제였냐.

1) 자바 버젼 문제. 올리신 소스도 1.5 이상이던데, 모든 컴터가 1.5이리라는 보장은 없겠죠? 해당 애플릿은 1.3 이었는데, 1.4에서 안됩니다. 애플릿 소스 문제일수도 있겠네요.

프로그래머한텐 큰 문제가 안되나, 실제로 쓰일땐 이게 무쟈게 큰 문제가 됩니다. 맨날 전화 받고나서 1.3 깔아라, 어디가면 있다.... 깔다보면 잘깔리기나 하나요, 또 문제가 생기죠. 이게 힘들어서 결국엔 다른 솔루션으로 바꾸고 합니다.

2) 암호화할때 무쟈게 시간 오래걸림.
- 애플릿의 암호화 로직에 문제가 있었을지 모르나, 암호화할 내용이 몇메가쯤 되면 컴터가 심히 버벅댑니다.
- 자바로된 상용툴킷중 하나( 6대공인인증기관중 하나임 ) 도, 256M 램 기준으로 10M 정도되는 파일 전자서명하면 out of memory 납니다. 이것도 고치라고 해도-_-;

예제에서 서명하는 내용은 1k 도 안되지만, 실제로 쓰려면 몇십메가 정도까진 문제없이 작동되어야 하고요, 시간도 10메가 1분 정도까진 봐줄수 있겠네요. 그 정도 성능이 나는지는 확인을 못하겠네요.

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

금결원에서 뭐라고 했나는 잘 모르겠으나,

애플릿이 불가능하다는게 아니고, 비슷한 얘긴지 모르나 할수 있다는 것과 쓸수있다는건 다르단 겁니다.

서명 할수있다는 것, 그 정도 개발하는데는 시간얼마 안걸려요. 하지만 그걸 실제환경에서 쓸수 있도록 하는건 차원이 다릅니다. 예를들어 올리신 예제도 우선 공인인증서 선택하는 다이얼로그 있어야겠고요(쉽지 않음. 하드, USB, 플로피 등에서 인증서 검색해야함 ), 파일도 서명/암호화 할수있어야 되고, ( 이 기능생기면 속도가 얼마나 나는지 테스트 할수 있겠네요 ) 자바SDK 안깔린 컴터에서 어케 되는지, 1.3 이나 1.4 깔린 컴터에서 어케 되는지 확인( 예를들어 1.4 깔려있다는 이유로 버튼에 한글이 깨지면 안됨. ) 이게 소소해 보일지 몰라도 소소한데서 문제가 발생합니다. SM 들이 그것땜에 맨날 고생하고 있거든요.

예진아씨의 이미지

액티브 액스 프로그램은 처음부터 쓸 수 있었씁니까?

돈이나 노력을 들여서 만든 것 아닙니까?

그리고 JDK 문제를 말씀하시는데 윈도우즈 안 깔린 컴퓨터에서 액티브 액스는 어쩌죠?

게다가 JDK 버전 문제라 지원 끊긴 윈도우 9x 에서는 또 어쩔까요?

액티브 액스로 하는 것도 사실은 쓰지 못할 곳 투성이입니다.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

예진아씨의 이미지

10M 짜리를 그냥 서명하나요? 왜그렇게 메모리를 많이 먹죠? 설마 10M 를 직접 서명하나요?
원래 hash 한 다음에 서명하는 것 아니었나요? hash 가 그렇게 오래 걸리고 메모리를 많이 먹나요?
어차피 실제로 쓸 때는 서명이라는 것은 해시로 길이를 고정으로 줄인 다음에 하잖아요.
데모용이라 hash 하는 것을 빼놓은 건가? 그리고 상용 툴킷을 사용할 때도 hash 를 하셨나요?

자바의 문제인지 기본적으로 할 것을 일부러 안 하거나 실수로 안 한 것인지 확실히 해야 할 것 같군요.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

danskesb의 이미지

몇 가지만 반박해 보겠습니다.

Quote:
1) 자바 버젼 문제. 올리신 소스도 1.5 이상이던데, 모든 컴터가 1.5이리라는 보장은 없겠죠? 해당 애플릿은 1.3 이었는데, 1.4에서 안됩니다. 애플릿 소스 문제일수도 있겠네요.

저기 요즘에 일부러 자바 옛날 버전 깔아서 쓰는 사람이 있나요? 그리고 제가 알기로는 썬에서도 버전 올리면서 API 변경에 대해서는 문서를 만든다고 알고 있습니다.

Quote:
2) 암호화할때 무쟈게 시간 오래걸림.
- 애플릿의 암호화 로직에 문제가 있었을지 모르나, 암호화할 내용이 몇메가쯤 되면 컴터가 심히 버벅댑니다.
- 자바로된 상용툴킷중 하나( 6대공인인증기관중 하나임 ) 도, 256M 램 기준으로 10M 정도되는 파일 전자서명하면 out of memory 납니다. 이것도 고치라고 해도-_-;

직접 몇십MB 정도의 데이터를 넣어 보셨습니까? 그리고 실제로 쓰기 위해서 몇 십 메가가 사용되는지 증거를 들어 주실 수 있겠습니까? 제가 한 때 인터넷 뱅킹을 써 본 경험에 의하면 그 정도 암호화된 데이터를 주고 받지는 않는 것 같더군요.

금결원에서 뭐라고 했나는 잘 모르겠으나,

애플릿이 불가능하다는게 아니고, 비슷한 얘긴지 모르나 할수 있다는 것과 쓸수있다는건 다르단 겁니다.

Quote:

서명 할수있다는 것, 그 정도 개발하는데는 시간얼마 안걸려요. 하지만 그걸 실제환경에서 쓸수 있도록 하는건 차원이 다릅니다. 예를들어 올리신 예제도 우선 공인인증서 선택하는 다이얼로그 있어야겠고요(쉽지 않음. 하드, USB, 플로피 등에서 인증서 검색해야함 ), 파일도 서명/암호화 할수있어야 되고, ( 이 기능생기면 속도가 얼마나 나는지 테스트 할수 있겠네요 ) 자바SDK 안깔린 컴터에서 어케 되는지, 1.3 이나 1.4 깔린 컴터에서 어케 되는지 확인( 예를들어 1.4 깔려있다는 이유로 버튼에 한글이 깨지면 안됨. ) 이게 소소해 보일지 몰라도 소소한데서 문제가 발생합니다. SM 들이 그것땜에 맨날 고생하고 있거든요.

파일 선택하는 다이얼로그는 있습니다. 도리어 이런 경우 공인인증서 파일을 자기가 선호하는 위치에 담을 수 있다는 것에서 현재의 방식보다 더 좋다고 생각합니다. 그런데 개인 파일은 왜 암호화할 수 있어야 하나요? 그런 것은 PGP 같은 다른 프로그램에 맡기면 됩니다. 그리고 옛날 버전의 자바 요즘 쓰는 사람이 있나요? 자바 다운로드도 요즘은 최소한 1.5인데 일부러 옛날 버전을 쓰는 사람이 있습니까?

휴우. 일단 이 정도만 반박해 보겠습니다. 자바 버전과 JRE 이야기가 많이 나오던데, 적어도 JRE는 한 번만 깔아 두면 되며, ActiveX처럼 한 번 자바 애플릿 돌리려고 시스템 갈아 엎지 않아도 됩니다.
---- 절취선 ----
http://blog.peremen.name

김정균의 이미지

저기 요즘에 일부러 자바 옛날 버전 깔아서 쓰는 사람이 있나요? 그리고 제가 알기로는 썬에서도 버전 올리면서 API 변경에 대해서는 문서를 만든다고 알고 있습니다.

일부러 이전 버전 설치하는 경우 있습니다. 상위 버전에서 정상 작동 하지 못하는 java application 들이 있거든요. 저의 경우에는 IBM 의 RSA 의 remote console 이 java 5/6 에서 너무 느리게 작동해서 IBM recommand 인 1.4.2 를 사용합니다. :-) 자바는 상/하위 호환성이 너무 안좋은 것이 탈입니다. 꼭 subversion 같은 느낌이.. 아니 그 반대인가 쩝.. (물론 개인적 체감입니다.)

superwtk의 이미지

휴.. 다 좋은데 (정말로 다 좋은건 아니고-_-a) 제발 키보드 후킹 방지 프로그램이니 방화벽 프로그램이니 강제로 설치좀 안했으면 좋겠습니다. 가끔씩 인터넷 뱅킹좀 하려고 하면 최소 5분 이상은 이런것때문에 시간 보내고 스트레스 받게 되네요.

국내 은행중 이런 잡것들 강제로 설치 안해도 되는 인터넷 뱅킹을 제공하는 은행 있나요? 거래 은행을 바꿔야겠습니다.

덧붙임.
조만간 맥북을 사려고 생각중인데... 한국의 은행들과는 인연을 끊어야 하나요-..-a

--------------------------------------------------------------------------------
http://blog.superwtk.com

youknowit의 이미지

정확한 사실에 근거한 지적을 해 주셨으면 좋겠습니다. 전자서명은 i) 서명대상 파일의 해쉬값을 구하고 ii) 그 해쉬값을 암호화 하는 것입니다. 700Mb인 ubuntu6.10 설치씨디 iso 파일을 서명하는 경우에도, 암호화(memory intensive 한 작업)는 a1dc38c7314c7309404ba0ed77ea6041a0f3acf0 에 대해서만 합니다.

그리고, 아직도 "자바 애플렛은 ActiveX와는 달리 매번 jar 파일을 내려받아야 한다"는 근거없는 견해를 반복하여 퍼뜨리는 분들도 있는데, 이것도 분명히 틀린 것입니다. 서명된 자바 애플렛의 경우, 최초에 한번만 내려받을 뿐, 나머지는 로컬에 cache 된 파일과의 동일성 여부만 체크하고, 동일한 경우에는 내려받지 않습니다(서버 로그파일을 살펴보시면, http status code가 304 로 나오는 것을 확인하실 수 있습니다)

제가 제공하는 데모 사이트에서 자바 애플렛을 실행해 보신 적이 있는 분은 C:/Documents and Settings/[자신의 계정이름]/Application Data/Sun/Java/Deployment/cache/javapi/v1.0/jar/ 폴더를 한번 보시기 바랍니다. 최초에 내려받는 파일 싸이즈도 30k가 되지 않습니다.

misari의 이미지

꿈을 버리지 말자!

꿈을 버리지 말자!

misari의 이미지

우분투 8.04 64bit 버전입니다.
파이어폭스 3.0입니다.
icedtea-gcjwebplugin 1.0입니다.
icedtea-java7-plugin 입니다.
openjdk-6-jre 입니다.

위와 같은 환경인데, "애플릿을 초기화하지 못했습니다."라고 나오며 실행이 안되네요.
다른 사이트의 자바 애플릿들은 잘 됩니다.

여러 가지로 애 많이 쓰시는데 도움이 못돼 죄송하네요.

꿈을 버리지 말자!

꿈을 버리지 말자!

김일영의 이미지

딱 1년전 글이군요...

wkpark의 이미지

모질라 firefox3에도 인증서 관리 기능이 있던데 (아마도 firefox2에도 있던것??), 이것과 연동시키는 방법도 있는지요? 잘 몰라서 질문드립니다

온갖 참된 삶은 만남이다 --Martin Buber

misari의 이미지

꿈을 버리지 말자!

꿈을 버리지 말자!

misari의 이미지

꿈을 버리지 말자!

꿈을 버리지 말자!