상세 컨텐츠

본문 제목

온라인 게임의 설치 및 실행을 ActiveX를 이용하지 않는 방법은 없을까요?

프로그래밍 관련

by AlrepondTech 2020. 9. 21. 04:38

본문

반응형

 

 

=================================

=================================

=================================

 

 

 

출처: http://m.mkexdev.net/135

 

웹런처의 브라우저 호환성, 넥슨 사례

POSTED IN 모바일/모바일 플랫폼 // POSTED AT 2010/11/26 14:29

게임사이트에서 웹 런처는 거의 필수에 가깝다.
이것은 인식의 문제가 아니라, 게임과 웹의 시너지를 통해 게임 이용 전반의 생태계 조성에 필요하기 때문이다.

표준과 멀티 브라우저 시대가 열렸지만, 국내는 여전히 IE 가 절대강자로 군림하고 있다.
이 말은 적어도 아직까지는 국내 대상 게임서비스에서 웹 런처를 위한 ActiveX 사용을 할만(?) 하다는 것이다
(그래서 필요악이다)

문제는 해외 서비스에 있다. 해외는 갈수록 IE 점유율이 떨이지고 있다.
해외 게임사이트에 웹 런처를 고려 한다면 브라우저 호환성은 보다 심각한 문제가 된다.

이와 관련하여 넥슨의 사례를 보고자 한다.
넥슨 사이트 역시 웹 런처를 제공한다. 하지만 ActiveX 설치는 존재하지 않고 심지어 4대 브라우저를 모두 지원한다. (IE, 파이어폭스, 사파리, 오페라)

신기하던 차에 살짝 살펴보니, 웹 런처를 브라우저별 플로그인 기술로 구현된 듯 하다
그리고 플래시를 통해 설치된 플러그인 파일을 실행시키는 구조이다

즉 IE는 여전히 내부적으로는 ActiveX를 이용하고 있는 것이다. 
그러나 명시적으로 ActiveX 설치는 없는 방법으로.....

설치 및 구동방식을 대략 살펴 보면,
1) 먼저 Setup.exe 파일을 수동으로 다운로드해서 설치해야 한다. 여기서 뭔가 감이 잡힐 것이다. 
   브라우저에서 ActiveX 를 바로 설치하는 것이 아니라 수동 설치 과정이 필요한 것이다.
   이 수동설치를 통해 내부적으로 ActiveX가 설치되는 것이다

 




2) 이후 플래시로 만든 웹 런처 버턴을 클릭하면 수동으로 설치된 ActiveX가 실행되는 것이다
 알아본 바로는 플래시의 fscommand 기능을 통해 브라우저 플러그인 실행파일을 구동시킬 수 있다고 한다.    

 




재미있는 구조다. IE에 설치된 ActiveX는 브라우저의 추가기능관리에서 확인할 수 있다
그리고 이 파일의 위치는 아래와 같다
'C:\Documents and Settings\All Users\Application Data\Nexon\NGM'
아마도 플래시에서 접근하기 위한 영역이 필요하지 않았나 싶다

 




다른 브라우저를 보면 브라우저 확장기능인 플로그인으로 등록된 것을 확인할 수 있다
아래 그림은 파이어폭스에 설치된 플러그인 화면이다

 



그리고 아래는 구글 크롬에 설치된 모습니다

 




브라우저별 플러그인 기술을 각각 개발해야 하는 것인지 ActiveX 를 수동으로 설치하는 과정으로 모든 브라우저에서 가능한지 실제 구현 및 운영상 치명적인 단점은 없는 지 등 등 구체적인 내용은 아직 파악되지 않았으나 두 가지 중요한 힌트를 얻을 수 있는 좋은 기회였다

1) 웹 런처의 브라우저 호환성을 확보할 수 있다 
   호환성을 위한 최적의 방법론은 아닐 수 있으나 하나의 주요한 대안이 될 수 있다

2) 구현 측면에서 플래시를 이용하면 ActiveX 로 제작된 실행파일을 구동시킬 수 있다

이 방법이 좋고 나쁨이나 맞고 틀림, 혹은 꽁수이냐 등을 떠나서, 
해외 서비스를 위한 웹런처 구현에 한쪽 눈을 트이게 한 좋은 소식이다

이 서비스에 대한 더 자세한 구현 방법론을 아는 분이 있다면 과감하게 댓글로 알려 주기 바란다~

 

 

=================================

=================================

=================================

 

 

 

출처: http://www.gpgstudy.com/forum/viewtopic.php?p=106552

아직까지는 ActiveX가 큰 문제는 없지만 몇년 전부터 보안이 중요해지면서 ActiveX에 대한 제한이 생겨나고 있습니다. 아직까지는 다행히(?) MS가 IE8에서도 ActiveX를 지원해주고 있지만 언젠가는 지원하지 않으리라 생각합니다. 
그리고 한국의 온라인 게임에서는 그 영향이 미비하지만 ActiveX를 사용하면 IE 이외의 웹 브라우저나 비 윈도우 계열에서는 실행되지 않는 문제도 있죠. 


며칠전에 MS의 실버라이트를 보았습니다. 예전에 버전1을 볼 때는 그 기능이 너무 조악하여 아직은 쓸게 아니라고 생각했는데 이번의 버전 2 베타2를 보니 기능이 꽤 많이 추가 되어 뭔가 제대로 된 것을 만들 수 있겠더군요. 
그래서 ActiveX의 대체를 기대했는데 좀 더 알아보니 요즘 나온 기술답게 보안 부분이 상당히 강화 되어 있더군요. 다른 프로그램을 로컬에 설치 및 실행 하게 하는 것은 불가능 하더군요( 보안측면에서는 당연하다라고도 생각됩니다 ). 


현재 온라인 게임을 서비스할 때는 거의 반드시라고 할만큼 ActiveX를 만들어 이것으로 설치 및 실행을 하는데 만약 이것을 사용하지 못하게 된다면 대체 기술은 무엇이 있을까요? 만약 대체 기술이 없다면 현재의 게임 포털의 게임의 설치 및 실행 방법은 어떻게 바뀌면 유저들이 불편하지 않을까요? 


이런걸 생각하고 계신분이 있을지 모르겠지만 혹 있다면 의견을 들어보고 싶습니다.^^
_________________
MS MVP( VC++ ) 
Twitter : jacking75 
블로그 1: http://jacking.tistory.com 
블로그 2: http://blog.naver.com/jacking75 
스프링노트 : http://jacking.springnote.com

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

activeX가 하는 기능을 installer로 설치하게 하는것은 어떨까요

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

마비노기 같이 아이콘 스타트 방식을 쓰면 안되나요? 

굳이 사이트 들어가서 로그인 하게 해야 하는지.. 잘 모르겠네요. 

마비노기 같은경우 아이콘 클릭해서 실행하게하고 

런처에 미니 브라우저가 떠있으니 굳이 사이트 갈필요도 없고 좋던데..

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

아직까지는 ActiveX가 큰 문제는 없지만 몇년 전부터 보안이 중요해지면서 ActiveX에 대한 제한이 생겨나고 있습니다. 아직까지는 다행히(?) MS가 IE8에서도 ActiveX를 지원해주고 있지만 언젠가는 지원하지 않으리라 생각합니다. 



안타깝게도(?) 그런일은 발생하지 않을껍니다. 

ActiveX 라는것은 웹브라우저에서 Native 코드를 실행시키기 위한 인터페이스 입니다. 즉, 웹브라우저의 기본 기능만으로는 불가능한것을 하게 해주는것이 ActiveX 입니다. 
ActiveX 중 제일 대표적이지만 사람들이 잘 인지하지 못하는 것이 플래시라고 할 수 있습니다. 
플래시 없는 웹페이지를 상상할 수 있으신지요? 상상할 수 없다면 ActiveX 는 사라지지 않을껍니다. 

다만, MS에서 여러가지로 보안을 강화시키면서 ActiveX 를 기본적으로 샌드박스에만 돌아가게 하던가 하는 제약은 점점 추가될 껍니다.

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



안타깝게도(?) 그런일은 발생하지 않을껍니다. 

ActiveX 라는것은 웹브라우저에서 Native 코드를 실행시키기 위한 인터페이스 입니다. 즉, 웹브라우저의 기본 기능만으로는 불가능한것을 하게 해주는것이 ActiveX 입니다. 
ActiveX 중 제일 대표적이지만 사람들이 잘 인지하지 못하는 것이 플래시라고 할 수 있습니다. 
플래시 없는 웹페이지를 상상할 수 있으신지요? 상상할 수 없다면 ActiveX 는 사라지지 않을껍니다. 

다만, MS에서 여러가지로 보안을 강화시키면서 ActiveX 를 기본적으로 샌드박스에만 돌아가게 하던가 하는 제약은 점점 추가될 껍니다.



불여우에서도 플래쉬가 돌아가던데, 그건 ActiveX가 아니지 않나요?

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

표준이 아닌 것은 언젠가는 도태될 수 밖에 없습니다. 

정말 잘나가는 기술이라면 표준으로 들어가겠죠.. PDF처럼

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

네, 불여우에는 불여우대로 네이티브 코드를 돌리기위한 인터페이스가 존재하고 그걸 이용해서 플래시를 돌립니다. 
아직 테스트은 해보지 못했습니다만, 이걸 이용해서 불여우를 사용하는 사용자를 위해서 불여우용 게임런처를 만드는게 가능할거라고 믿고 있습니다. 
(혹시 해보신분이나 이런 사이트가 있으면 좀 알려주세요..)

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

불여우에서 플래시가 돌아가는것은 플러그인방식으로돌아가는데 

그게 ADOBE와 Mozilla간의 모종의 협의가 있어서입니다. 

Public한 인터페이스만으로는 플래시plugin은 불가능한걸로 알고있습니다. 

즉 모질라와 모종의 협의가 있지않는한은 런처를 불여우plugin으로 만들기는 힘들어보입니다. 



ps. 종종 외국 성인사이트에서 불여우플러그인을설치메시지를 보여주는경우가있던데 

이게 자바관련인건지 실제 해당사이트만의 독자적 플러긴인지는 설치보지않아(당연하지만..;; ) 

잘모르겄네여;; 아시는분은 답변줌;

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

ActiveX가 COM+ 컴포넌트를 웹에서 받아 실행하는 것과 마찬가지로 Mozilla(와 Chatzilla 같은 몇몇 오픈소스 소프트웨어)는 XPCOM 이라는 컴포넌트를 사용합니다. XPCOM을 사용하면 ActiveX와 비슷한 기능을 수행할 수 있습니다. 

http://www.mozilla.org/projects/xpcom/ 
http://www.ibm.com/...ibrary/co-xpcom.html

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

COM+ 가 아니라 COM 입니다. 코더 입장에서 보면 COM+ 는 COM 과 거의 관련이 없습니다.

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

윗분의 설명처럼 XPCOM으로 알고있습니다. 

도대체 이런 정보는 어디서 얻으신 것인지... 개인적인 생각이신가요?

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

MS 에서 ActiveX 를 지원안하려는 움직임은 여러번 보인걸로 기억하는데... 그게 곧 플래쉬를 지원안한다는 말이라고 생각하시는건지요... 전 도무지 플래쉬가 ActiveX 라는 것에 동의를 할 수가 없습니다. 

내부적으로는 비슷할지 모르지만, 결국 대외적으로 쓰이느냐 안쓰이느냐의 문제죠. 다시 말해서, ActiveX 를 없앤다는 건 플래쉬를 같이 없앨꺼라고 기대하는 사람은 아무도 없고, 플래쉬를 제외한 ActiveX 를 막아두는 것을 말하겠죠. 결코 불가능한 일은 아닐 뿐더러, 곧 일어날 일이라고 생각합니다.

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

ActiveX의 미래에 대해서는 이렇다할 예측은 모르겠지만 (개인적으로는 무지 싫어합니다.) 게임과 연동하지 않는 쪽으로 가는 것도 괜찮다고 생각합니다. 특히 해외서비스를 생각한다면 국내와 해외가 달라지지 않는 것이 훨씬 바람직할테니까요. 

ActiveX를 쓰지 않아서 불편해질 수 있는 하나의 경우라면, 잘못된 patcher가 배포되어서 클라이언트의 설치본을 수정하기 위해서 full re-install 공지를 띄우는 수 밖에 없게되는 경우를 생각할 수 있지만, 이것도 운용의 묘로 풀 수 있는 부분일 겁니다. 

국내에서 1)포탈에 붙어서 서비스되는 2)국산 게임이라면 ActiveX가 따라붙는게 관례처럼 되어 있습니다만, 이 두 조건만 제외하면 충분히 다른 방법으로 서비스하는 게임들이 많지 않을까요 ? 일단 WoW나 길드워의 같이 경량의 게임 다운로더&인스톨러를 받아서 실행한다거나, 라그나로크, 메이플스토리 (해외) 처럼 클라이언트를 그냥 통채로 다운받는 방식 등이 있을 것 같습니다. 

개인적으로는 던파 - 한게임 채널링 및 던파 홈페이지에서 실행가능 - 가 가장 불편했습니다. 한때 NHN이 최대주주였을 때 한게임 채널링 한답시고 로그인을 너무 불편하게 만들어 버렸다고 생각합니다. 포탈에서 가지고 있던 기존의 유저 DB와 ActiveX로 붙이느라고 그랬겠죠. :( 

현재도 충분히 ActiveX를 배제하고 웹에 게임을 붙일 수 있는데, 게임쪽만 유독 ActiveX를 고집하는 것 같아서 아쉽습니다. 집에 server 2003을 설치하고, ActiveX 하나도 설치하지 않을 요량으로 Windows virtual PC로 win2000을 하나 더 깔아서 쓰는데 되는 게임이 하나도 없군요 -_- (모두 정품이랍니다. SQL 서버 2005 및 VS 2005,2008까지 !! ISIC 를 알려주신 masque 님 감사합니다. :))

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

저도 윗분 말씀처럼, 경량의 다운로더가 현재 어지러운 상황에서의 최선의 해결책이라고 생각합니다. 

어차피 게임은 99% win32 dependence고, AX도 웹상에서 실행되는것 뿐, 기능은 같지 않겠습니까  

굳이 웹상에서 실행이 가능해야 한다면 AX만 쓰면 될테고요, 

PC방같은경우, 아이콘으로 보통 만들어두니까 사실 별 차이를 못느끼겠습니다. 

제가 PC방에서 게임을 즐길때 카트라x더를 즐기려면 웹페이지로 들어가서 먼저 로그인을 하는데, 그게 더 불편하다고 느껴지더군요. 
저라면, 수백KB짜리 런처 다운로드라면 오히려 AX보다 반길테지만 그건 저만의 생각일테고.. 

아마 웹에서 바로 게임을 실행하는걸 좋아하는 분들이 생각보다 많으신듯 합니다. 

제생각에는 AX가 편리하긴 합니다만.. 아무래도 악용이 되다보니 어쩔수없이 불편해져 버렸다고 생각합니다

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

저희도 역시 글로벌 시대를 맞이하야 Active-X를 사용하지 않고 싶어 하고 있습니다. 
허나.. 그건 개발자의 희망 사항일 뿐.... 기획, 마케팅 쪽에서는 Active-X를 사용하고 싶어 하더군요. 
이유인 즉슨 홈페이지 방문 횟수를 강제적으로라도 늘리고 싶다 입니다. 
홈페이지 방문을 증가시키면 마케팅 적으로 이것 저것 할 게 많아지겠죠. 
뭐... 의도는 이해해서 어쩔 수 없이 수긍은 하는데 개발자 입장에서는 참 짜증나는 부분이죠. 

이렇게 개발하다 보면 어쩔 수 없이 저쪽 분들 의견을 따를 수 밖에 없는게 많이 있습니다. 
뭐 어쩌겠어요. 조금이라도 돈 더 벌어야죠. ^^

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

근 결제한 게임이 Firefox에서 런칭 되길레 좀 알아본 봐로는... 

처음에는 다운 받아 설치 해야 됩니다. 
설치파일이 작아서 좀 이상하다 싶었는데 웹(?)서비스, 업데이터만 깔린거였습니다. 
홈페이지의 시작 버튼 주소가 http://localhost:port/... 로 링크 되어 있는데 서비스가 그 쿼리를 받아서 업데이터/게임을 실행시키더군요. 

서비스가 부팅후 계속 떠 있어야 한다는 것이 조금 불만이긴 하지만 모든 브라우져에서 실행시킬수 있는 방법인것 같아요.

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

위의 jacking 님께서 말씀해 주셨듯이 포탈이라는 유져풀이 있는데 하나의 게임이 해당 포털에 새로 열리면 다른게임을 하던 유져라도 일단은 들어오게됩니다. 포털에 있는 게임은 광고를 덜해도 되는 긍정적인 효과중 하나죠. 이게 웹을 거치지않고 다이렉트로 접속하게 될 경우엔 풀이 거의 구성될수가 없겠지요. (유져들은 자신이 하던 게임 외에는 아무것도 볼수가 없으니까요..) 

게다가 운영상으로도 웹 + 런처의 방식을 사용할경우, 여러 게임들을 일관된 방식으로 즐길수있도록 만들 수 있기도 하구요. 게다가 귀찮은 일들은 퍼블리셔가 다해줍니다. (일정시간이되면 버튼을 막고 점검에 들어가고 기타등등등등..) 

퍼블리셔들이 엑티브엑스 방식을 사용하는 것은 위와같은 많은 장점이 있기 때문이구요. 퍼블리셔도 아니고 게임하나 달랑서비스하면서 웹인증 + 게임런처실행 하는건 사실 저도 이해를 잘 못하겠스빈다. o<-<

 

 

=================================

=================================

=================================

 

 

 

반응형

 

 

728x90

 

 

 

 

 

출처: https://m.blog.naver.com/PostView.nhn?blogId=seyo73&logNo=220797448787&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

 

ActiveX 없이 로컬 프로그램 실행하기.

ActiveX가 나온지 벌써 20년이 다 되어 갑니다.그동안 개인적으로 ActiveX를 이용해서 참 많은 것들을 했었는데,이제는 ActiveX와 이별할 시간이 된것 같습니다. 처음 나왔을때만 해도 웹에서 html과javascript만 가지고서는 할수 없는 것들을 할 수 있게 해줘서 참 좋았는데, 이제는 이녀석때문에 많은 것이 불편해 진것 …

wdytn.wordpress.com

자료출처 : https://wdytn.wordpress.com/2015/01/18/activex-%EC%97%86%EC%9D%B4-%EB%A1%9C%EC%BB%AC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0/

 

ActiveX 가 나온지 벌써 20년이 다 되어 갑니다. 그동안 개인적으로 ActiveX를 이용해서 참 많은 것들을 했었는데, 이제는 ActiveX와 이별할 시간이 된것 같습니다. 처음 나왔을 때만 해도 웹에서 html과 javascript만 가지고서는 할  수 없는 것들을 할 수 있게 해줘서 참 좋았는데, 이제는 이녀석때문에 많은 것이 불편해 진것 같습니다. 많은 것들을 구하고 돕기 위해서 온 존재가 무시무시한 병균을 달고 온것처럼 되버렸네요. 수많은 해커들에 의해 악용이 되고, 또 그렇게 되었을때 그 힘이 너무 막강해서, 이제는 없어져야 하는 존재가 되어 버렸네요. 암튼 ActiveX, RIP!

ActiveX를 사용하는 용도는 여러가지가 있지만, 기업들에서 이것을 사용하는 용도 중 하나가, 로컬에 있는 특정 실행화일(주로 업무시스템)을 실행할 수 있도록 사용하는 경우가 많습니다. 이런 업무 시스템에서는 ActiveX를 덜어내게 되면 이 프로그램을 실행할 다른 방법을 사용해야 하는데 아래에 그 방법을 잠시 설명하겠습니다.

우선 이 ActiveX없이 로컬에 있는 리소스나 프로그램을 실행할 수 있게 하기 위해서는 이 역할을 대신 수행해주는 프로그램이 실행되어 있어야 합니다. 또한 이 프로그램은 특정포트를 리스닝을 하고 있어야 합니다. 그후, 웹화면에서 버튼같은 것을 클릭하여 실행 이벤트가 발생하면 자바스크립트에서 이 포트에 http request를 발생시킵니다. 그러면 이 로컬에 있는 프로그램은 소켓을 통해 http request를 받아들어 이에 따라 어떤 동작을 수행할 지를 결정하면 됩니다.

프로그램은 결국 간단한 http demon 프로그램입니다. 시중에 많은 소스가 나와 있으니 이들중 괜찮은 것을 사용하면 됩니다. 프로그램을 작성하여 이를 설치화일로 만든 뒤, 사용자가 다운로드 받아서 설치할 수 있게 웹화면에 구성해 두면 될것입니다.

 

방법2.

Custom URL Schemes

 

방법3.

자바로 외부 프로그램 실행 시키는 방법중에 ProcessBuilder 에 대해서 간단하게 소개 하려고 한다.

자바에서는 외부 프로그램 실행 시 출력 내용을 바로 확인 할 수 없고 버퍼에 저장 후 출력하는 형식으로 

확인 하여야 한다.

 

JDK 1.4 버전 이하에서는 exec() 메소드를 이용하여 외부 프로그램을 실행 시킬 수 있고

JDK 1.5 버전 이상에서는 ProcessBuilder 객체를 이용하여 외부 프로그램을 실행 시킬 수 있다.

 

Process 객체 생성 후 실행 할 커맨드를 다음과 같이 쪼개어 인자값으로 넣어 주어야 한다.

Process process = new ProcessBuilder("cmd", "dir", "/w").start();

 

위와같이 표현 한다면 cmd 커맨드 창을 실행 후 dir /w 명령어를 실행 한다는 의미 이다.

 

혹은 다음과 같이 배열을 이용하여 표현 할 수도 있다.

String[] cmd = new String[] {"cmd", "dir", "/w"};

Process process = new ProcessBuilder(cmd).start();

 

이렇게 실행 한 결과를 버퍼에 저장 후 표준 출력을 화면에 표시 하여야 하는데 다음과 같이 표현 할 수 있다.

BufferedReader stdOut = new BufferedReader( new InputStreamReader(process.getInputStream()) );

// 표준출력 상태를 출력
while( (str = stdOut.readLine()) != null ) {
    System.out.println(str);
}

 

InputStreamReader 객체를 통하여 위 process 객체에서 출력된 스트림을 입력 받아 버퍼에 저장 후 

while 문을 통하여 버퍼에 저장 된 내용을 표시하여 주는 것이다.

 

하나의 예로 웹 브라우저를 띄운 후 원하는 페이지로 이동 하는것을 예를 든다면 다음과 같이 할 수 있다.

String addr = "http://www.naver.com";
Process process = null;
String[] cmd = new String[] {"rundll32", "url.dll", "FileProtocolHandler", addr};
String str = null;

try {

    // 프로세스 빌더를 통하여 외부 프로그램 실행
    process = new ProcessBuilder(cmd).start();

    // 외부 프로그램의 표준출력 상태 버퍼에 저장
    BufferedReader stdOut = new BufferedReader( new InputStreamReader(process.getInputStream()) );
    
    // 표준출력 상태를 출력
    while( (str = stdOut.readLine()) != null ) {
        System.out.println(str);
    }
    
} catch (IOException e) {
    e.printStackTrace();

}

 

이렇게 하면 rundll32를 통하여 웹 브라우저 실행 후 네이버로 이동된다.

 

 

방법4.

웹 페이지에서 시스템에 설치된 어플리케이션을 구동하는 방법은 3가지 정도가 있습니다.

3가지 방법 모두 전제조건은 특정 어플리케이션이 시스템에 설치되어 있어야 한다는 것이며 보통 사전에 setup 파일 형태로 배포합니다. 아래의 방법들은 브라우저를 구분하지 않습니다. 모든 브라우저에서 사용할 수 있습니다.

(IE, FF, CR, SP, OP)

 

 

1. 새 프로토콜 등록.

웹페이지나 워드 문서 등에서 http://222.222.222.2/ 라는 주소를 클릭하면 어떻게 되죠?

바로 IE 가 실행됩니다. 혹은 FF 가 실행되기도 하죠.

 

왜 이런 것들이 실행될까요? 바로 해당 프로토콜 "http" 가 시스템 레지스트리에 등록이 되어있고, 레지스트리에는 해당 프로토콜을 사용할 때 어떠한 프로그램을 실행시킬까라는 정보로 연결되어 있습니다.

 

바로 http:// 이후의 정보들을 새로운 프로그램을 구동시키면서 실행 인자로 넘기기 됩니다.

 

 

 

자 우리가 할 것은 자명해졌습니다.

새로운 프로토콜명을 레지스트리에 등록하고 연결할 프로그램으로 내가 만든 프로그램을 등록하면 됩니다.

물론 이 과정은 setup 를 통해서 하면 좋겠지요.

이후에는 웹상에서 링크를 "4000kingwangjjang://3.33.33.2/" 로 하면 됩니다.

사용자가 클릭하게 하려면 링크를 저렇게 걸면 되고, 사용자 액션없이 자동으로 실행시키려면 자바스크립트로 원하는 주소를 호출하면 됩니다.

파일 첨부합니다. 프로토콜 등록에 대한 샘플 프로그램입니다.

 

2. 새 파일 확장자 등록.

 

1번과 마찬가지로 새로운 파일 확장자를 만들어서 연결 프로그램을 등록하면 됩니다.

 

단, 파일 확장자를 등록하게 되면 문제가 사용자에게 실행에 대한 물음창이 한번 더 뜬다는 겁니다. 좀 불편하죠.

 

그래서 이 방법은 사용을 잘 안합니다만 다른 아이디어에 적용할 수 있을 것 같아 적어둡니다.

 

 

3. local pc 웹 페이지 호출.

구글이나 네이버 등에서 사용하는 방법입니다.

로컬 PC 에는 하나의 프로그램이 실행되고 있습니다.(서비스나 시작 프로그램에 넣어서 자동 실행하게 한다.)

이 프로그램은 특정 포트의 http server 로 listen 을 하고 있습니다.

예를 들어 33333 포트라고 하죠.

웹 페이지에서 "http://127.0.0.1:33333/ID=4000king&Nick=KingWangJJang&Type=GOD"

이렇게 링크를 달면 끝납니다. 물론 사용자 액션없이 실행시키려면 자바스크립트 등으로 Windows.Open 을 하면 됩니다.

이 방법의 장점은 별다른 경고창 등이 안나온 다는 겁니다. 1번의 경우 실행할거냐고 묻는 창이 뜨지만 3번은 그런 창조차 없습니다.

 

이 서비스의 샘플을 첨부합니다.(다른 프로젝트에 일부 사용되었던 거라 핵심 코드만 잘 찾아서 보세요. 나머지는 의미없습니다.)

 

방법5.

출처 : http://www.koreahtml5.kr/jsp/supportCenter/securityCertification.jsp

KOREA HTML5

차세대 웹표준으로 각광받고 있는 HTML5 신기술을 국내외 자료를 정리

www.koreahtml5.kr

 

계좌이체 등 전자적 자금 거래의 무결성 확인과 부인방지를 위해 사용하는 공인인증처리인 전자서명 절차를 액티브X 전용 채널을 사용하지 않고 웹 채널 내에서 처리하기 위해서는 URL Protocol Handler라는 방법을 사용한다. 

※ URL Protocol Handler는 웹브라우저에서 http://, https://, ftp://와 같이 '://' 앞에 표시되는 문자열에 따라서 뒤따르는 URL과 파라미터들을 입력받는 응용프로그램을 호출해서 데이터를 넘겨주는 기능이다. 
예를 들어 'ftp://*****.***'과 같은 FTP 주소를 입력하면 FTP 프로그램이 자동으로 실행되는 것과 같은 원리다. 따라서 이 기술은 'smartsign://'를 등록시켜 ‘smartsign://stringTosign=a6qwer…’과 같은 호출이 들어오면 공인인증 애플리케이션을 실행시키는 방식이다.



웹브라우저가 URL Protocol Handler 방식으로 호출 되는 전자서명 전용 응용프로그램에 서명이 필요한 데이터를 넘겨서 생성된 서명 값을 반환받은 후, 웹의 폼 데이터로서 인증서와 함께 웹 서버로 넘기면 웹서버에서 서명을 검증한다. 한국전자통신연구원 인증기술연구팀에서 개발한 'SmartSign' Url Protocol Handler는 사용자 컴퓨터의 파일시스템에 저장되어 있는 공인인증서 및 개인키를 이용하여 웹서버 및 웹브라우저 사이의 전자서명 과정을 수행한다.

 

<그림1>SmartSign을 이용한 공인인증 전자서명 절차도

<그림1>은 'SmartSign' 사용 예와 사용 절차를 도식화 하였다. 'SmartSign'을 사용하기 위해서 웹서버에는 웹브라우저에서 전송된 전자서명 정보를 처리하여 서명을 검증하는 모듈인 result.jsp가 설치된다. 클라이언트에는 파일시스템에 저장되어 있는 공인인증서와 개인키를 이용하여 전자서명을 수행할 java 응용프로그램인 SmartSignApp.jar가 설치되고, Url Protocol Handler로서 'SmartSign'이 등록되어 있어야 한다. Url Protocol Handler로 웹브라우저에 등록된 응용프로그램은 미리 띄워 놓거나 서버 모드로 사전에 실행시키지 않아도 웹브라우저나 응용프로그램의 호출에 대해서 정상적으로 동작한다. smartsign://?cmd=sign&string_to-sign=aaaa 와 같이 웹브라우저에서 호출하면 smartsign handler로 레지스트리나 웹브라우저에 기 등록된 응용프로그램이 호출되어 파라미터들을 처리한다. 사용자는 클라이언트의 웹브라우저에서 전자서명을 하려는 계좌이체 정보, 신용카드 결제 정보 등의 정보를 입력 및 확인한 후 'SmartSign'을 호출한다.

 

<그림2>SmartSign 전자서명 정보확인 및 서명 검증 결과

<그림2>은 웹브라우저에서 'SmartSign'을 이용하여 전자서명을 요청한 후, 웹서버가 전자서명 검증에 성공한 결과를 웹브라우저에 반환한 화면이다. 'SmartSign' 호출 과정을 거쳐 공인인증서를 위한 전자서명 데이터와 공인인증서 데이터가 웹브라우저로 result.jsp 호출을 위한 파라미터 값과 함께 반환된다. 이 정보를 웹 서버로 전송하여 서명 검증과 인증서 검증을 수행하여 단일한 웹 채널 내에서의 전자서명이 완결된다. 웹서버의 result.jsp에서 서명 검증이 완료되면 계좌이체, 신용카드 결제 등 추가 절차를 웹서버에서 진행한다.

smartsign://sign/?string_to_sign=Formatted%20String%2Cseer%2C%ED%94%8C%EB%9D%BC%ED%86%A4%2Cprice%2C40000%2Cbank%2Ckb%2Caccount%2C123-456-7890%2Cowner%2C%EA%B9%80%EB%8B%A8%ED%85%8C&ca_option=ask&ca_name_string=null&security_option=off&return_url=http%3A%2F%2Flocalhost%3A8080%2 Fresult.jsp

<표1>웹브라우저에서 smartsign URL Protocol Handlder 호출

전자서명을 요청할 때 웹브라우저는 <표1>에서와 같이 URL Protocol Handler로서 'SmartSign'을 smartsign:// 구문을 시작으로 변수 및 값을 전달하여 호출한다.

파라미터설명string_to_signca_optionca_name_stringsecurity_optionreturn_url

서명할 문서, url encoding
ask (고정)
null (고정)
on|off
서명값을 전송할 url

<표2>smartsign 호출 시 전달되는 파라미터 설명

<표2>는 'SmartSign' 호출할 때 사용하는 변수에 대한 설명이며,

파라미터설명string_to_signsignaturesigner

서명한 문서, url encoding
Base64 encoded PKCS#7 SignedData
서명자 인증서 DN(Distinguished Name)

<표3>전자서명 검증 모듈인 result.jsp에 전달되는 파라미터 설명

<표3>은 'SmartSign'에서 전자서명을 수행한 후에 웹서버의 result.jsp를 호출할 때 전달하는 변수에 대한 설명이다. 'SmartSign' Url Protocol Handler를 이용한 공인인증 전자서명 과정에서 사용자 컴퓨터에는 웹브라우저가 접근할 수 없는 파일시스템에 저장되어 있는 공인인증서와 개인키를 접근하기 위한 응용프로그램인 Url Protocol Handler 설치가 선 수행되어야 한다. Url Protocol Handler는 웹사이트에서 다운로드 및 설치 프로그램으로 제공되며 1회만 설치하면 이후 모든 전자서명 작업에서 공용으로 이용되며 추가 설치를 요구하지 않는다. 주의할 점은 'SmartSign'은 공인인증서와 개인키를 이용하여 전자서명 절차만을 수행하는 모듈이며, 공인인증서와 개인키를 설치하지는 않는다. 따라서 전자서명 작업 진행 전에 공인인증기관에서 제공하는 공인인증서 발행 모듈 또는 공인인증서 복사 기능을 이용하여 사전에 사용자 컴퓨터에 유효한 공인인증서를 설치해 두어야 한다.

공인인증 로그인

전자금융감독규정 제7조에 의거 모든 온라인 금융거래에는 공인인증서를 사용하여야 한다. 공인인증서는 사용자 본인확인을 위한 로그인 절차와 계좌이체 등 전자 자금이체 내역의 무결성 검증을 위한 전자서명 절차의 2가지 용도로 사용되고 있다. 
본인확인과 전자서명 절차를 처리하기 위하여 공인인증 처리 모듈은 사용자 PC 또는 USB에 저장된 개인용 공인인증서 처리를 위하여 웹서버 및 웹 브라우저와 별도로 액티브X를 설치한다. 설치된 공인인증 처리 모듈은 파일시스템에 저장된 개인용 공인인증서를 읽어서 인증 처리한 뒤, 기존 웹서버가 아닌 별도의 액티브X 전용서버에서 공인인증서의 유효성을 검증한 후 웹 서버로 검증 결과를 전송하고 있다. 
본인 확인을 위해서는 웹표준 암호규약인 SSL(Secure Socket Layer)의 클라이언트 사용자의 인증서를 이용한 사용자 로그인 기능을 활용할 수 있다.

공인인증서를 이용하여 SSL 웹서버에 로그인하기 위해서는 3가지 절차가 선행되어야 한다. 
첫째, SSL 웹서버를 개인키와 공인인증서를 이용하여 클라이언트를 인증하도록 설정한다. 이때, 공인인증서를 발급한 인증서버와 루트 인증서버의 공인인증서를 SSL 웹서버에 등록한다. 
둘째, SSL 웹서버 로그인에 사용할 수 있도록 [개인] 폴더에 등록하기위하여 공인인증서와 개인키를 p12 포맷의 .pfx 파일로 변환한다. 
셋째, 개인키와 공인인증서가 통합되어 있는 .pfx 파일을 웹브라우저에 등록한다. 만일 개인키 없이 공인인증서만 웹브라우저에 등록하면, 웹브라우저의 [다른사람] 폴더에 자동으로 등록되며, 로그인에 사용할 수 없게 되므로 주의해야 한다.

로그인에 사용할 공인인증서는 다음과 같은 기관에서 받아 각 사이트의 안내에 따라 설치하면 된다.

기관사이트 url대표전화

한국정보인증 http://www.signate.com Tel.1577-8787
한국전자인증 http://www.crosscert.com Tel.1566-0566
금융결제원 yessign http://www.yessign.co.kr Tel.1577-5500
코스콤(한국증권전산) http://www.signkorea.com Tel.1577-7337
한국무역정보통신 http://www.tradesign.net Tel.1566-2119

한국정보인증

http://www.signate.com

Tel.1577-8787

한국전자인증

http://www.crosscert.com

Tel.1566-0566

금융결제원 yessign

http://www.yessign.co.kr

Tel.1577-5500

코스콤(한국증권전산)

http://www.signkorea.com

Tel.1577-7337

한국무역정보통신

http://www.tradesign.net

Tel.1566-2119

웹브라우저에서 공인인증서를 이용하기 위해서 IIS 웹 서버의 SSL 설정 중 클라이언트 인증 기능을 활성화한다.

 

<그림3>SSL 설정과 클라이언트 인증서 사용 설정

<그림3>는 IIS 웹서버의 SSL 사이트 등록 정보 중 SSL 채널 사용 및 클라이언트 인증서를 사용하는 설정과 클라이언트 인증서를 이용하도록 설정된 SSL이 적용된 서버에 접속 시 웹브라우저에 등록된 공인인증서를 선택하는 웹브라우저 화면이다. 기존 액티브X 방식의 공인인증 로그인 절차를 SSL 방식의 공인인증 로그인으로 전환하려면 기존 등록된 사용자 정보 DB와 인증서 등록 절차를 공유하고, 사용자를 위한 개인화된 페이지 생성 절차는 별도로 추가해서 사용하면 된다. 
사용자 PC에 설치된 웹브라우저는 레지스트리, 스마트카드 칩이 내장된 USB 토큰 또는 USIM에 저장된 인증서의 인증처리 정보를 받아서 웹서버로 전송하고, 웹서버는 기 등록된 사용자 및 인증서와 인증서버 정보를 이용하여 직접 유효성을 검증한다. 
다음으로 개인키와 공인인증서를 p12 양식의 .pfx 포맷 파일로 변환하는 절차를 수행한다. 웹브라우저가 인식할 수 있는 인증서 저장소는 웹브라우저가 자체적으로 사용한 인증서 저장소, 운영체제의 레지스트리에 저장된 인증서 저장소, 그리고 PKCS#11 방식으로 접근할 수 있는 스마트카드, HSM, USIM 등이 있다. 국내에서 액티브X 프로그램이 사용하는 하드디스크 또는 USB 디스크는 웹브라우저가 인식할 수 있는 인증서 저장소가 아니다.

 

<그림4>공인인증서 및 개인키 저장경로와 정보

따라서, 사용자의 공인인증서와 개인키가 <그림4> 과 같이 파일시스템에 저장되어 있으면, 웹브라우저가 인증서의 표준 저장소로 인식할 수 없으므로, 개인사용자의 인증서와 개인키는 p12 양식의 .pfx 파일로 변환하여 설치해야 한다. 포맷 변환은 다양한 방식으로 수행할 수 있으나, 여기서는 오브젝트 변환툴을 사용하여 포맷을 변환한다.

  • 프로그램을 사용한 오브젝트 변환 방법국내에서 사용하는 공인인증서를 .pfx 포맷으로 변환하는 공개된 프로그램을 http://demo.initech.com/?mid=INISAFE_Crypto&document_srl= 1985 에서 다운로드 받아 설치한다. C:\Program Files\NPKI 또는 USB의 해당 폴더에서 개인키와 공인인증서, 인증서버의 공인인증서 및 최상위 인증서버의 공인인증서를 찾아서 하나의 폴더에 복사한 뒤에 해당 폴더에서 변환 프로그램을 실행한다.<그림5>포맷 변환 프로그램
    <그림6>처럼 개인키의 비밀번호를 입력한다. 이때 입력하는 비밀번호는 암호문으로 저장되어 있는 개인키를 복호화하는 복호화키로 사용된다. .pfx 파일로 변환될 때는 새로운 개인키 비밀번호를 입력해야 하므로, 기존의 비밀번호를 사용할 것인지 또는 완전히 새로운 비밀번호를 사용할 것인지에 대해서 계획을 세워야 한다.<그림7>개인키 로드 화면
    <그림8>처럼 ASN1타입파일로 저장하기를 선택 후 PKCS#12로 저장한다.<그림9>생성한 인증서 비밀번호 입력 창
    변환된 인증서를 확장자를 <그림10>처럼 *.pfx로 변경하여 저장한다. 확장자 pfx는 p12포맷의 확장자로서 pc에 설치하기 위해서 pfx로 변환한다.
  • <그림10>pfx 파일 저장 위치 화면
  • <그림9>처럼 새로 생성할 pfx 파일 내의 개인키를 암호화할 비밀번호를 입력한다.
  •  
  • <그림8>인증서 로드 화면
  • 인증서읽기를 선택 후 <그림7>처럼 오브젝트 로드하여 인증서 파일 *.der을 불러 온다.
  •  
  • <그림6>개인키의 비밀번호 입력 창
  • <그림5>처럼 PKCS#8을 선택 후 오브젝트 로드하여 개인키 파일 *.key를 불러 온다.
  •  
  • OpenSSL을 이용한 오브젝트 변환 방법OpenSSL 공식 웹사이트인 http://www. openssl.org/related/binaries.html에서 소스코드 또는 실행 파일을 다운로드 받을 수 있다.<표4>OpenSSL을 이용한 p12 포맷 .pfx 파일 생성
    <그림11>은 웹브라우저에 등록된 상위인증기관 인증서와 인증서 정보를 보여주는 파이어폭스 화면이다. 인증기관과 최상위 인증기관의 인증서는 .der 포맷을 변환없이 즉시 등록할 수 있다. <그림11>에서는 최상위 인증기관으로서 KISA의 KISA RootCA 1, CertRSA01 인증서와 인증서 발행기관으로서 SignKorea CA 의 인증서가 [인증기관] 탭에 등록되어 있는 것을 확인할 수 있다.<그림12>파이어폭스에 등록된 공인인증서 정보
    • 공인인증서의 웹브라우저 등록 절차웹브라우저가 SSL 통신에서 해당 공인인증서와 개인키를 사용하려면 공인인증서와 개인키를 웹브라우저의 저장소에 등록해 주어야 한다. 또, 해당 공인인증서를 발행한 공인된 인증기관(yessign, signkorea, tradesign 등)과 인증기관의 최상위 인증기관(KISA 등)의 유효한 공인인증서를 웹브라우저에 설치해야 한다. 
      공인된 인증기관 및 최상위 인증기관의 공인인증서 등록은 해당 인증서를 설치하는 작업으로 간단하게 완료할 수 있다.<그림13>최상위 인증기관(KISA)의 공인인증서 위치 및 설치
      <그림14>은 최상위 인증기관인 KISA 공인인증서의 정보화면이며,<그림15>인증기관 인증서 정보
      <그림16>은 파이어폭스에 등록된 KISA와 SignKorea의 공인인증서 정보를 보여주는 화면이다. 
      .pfx 포맷으로 변환된 공인인증서를 설치하기 위해서는 인증서 파일이 저장된 위치로 이동한다.<그림17>인증서 가져오기 마법사
      <그림18>처럼 가져올 파일의 위치를 지정한다. 기본적으로 실행한 파일의 위치가 지정 된다.<그림19>인증서 패스워드 입력 화면
      <그림20>처럼 인증서 저장소를 설정한다.<그림21>인증서 저장소 선택 화면
      <그림22>처럼 내용 확인 후 마법사를 완료한다.
      <그림23>는 파이어폭스에 등록된 개인인증서 정보를 조회한 화면이다. 파이어폭스에서 개인인증서 정보는 도구 → 설정 메뉴의 고급 탭 화면에서 인증서 보기 버튼을 클릭하면 조회할 수 있다. 개인키가 없이 공인인증서만 등록될 경우에는 [다른사람](other) 탭에서만 확인할 수 있고, SSL을 설정한 웹서버 로그인 시에 사용할 수 없으므로 반드시 공인인증서와 개인키 쌍으로 .pfx 파일을 생성해서 등록해야 한다. 접속한 SSL 웹 보안서버의 공인인증서는 [웹서버] 탭에서 확인할 수 있다. 
      웹브라우저에 .pfx파일 등록작업이 완료되면 공인인증서를 이용한 SSL 웹서버 로그인 절차를 진행한다. 
      HTTPS 프로토콜을 이용하여 SSL 웹서버에 접속하면 웹브라우저는 공인인증서가 저장된 저장소에서 인증서 정보를 표시하여 사용자의 인증서 선택을 요구한다. 사용자는 선택한 인증서의 비밀번호를 입력한다. 
      SSL 웹서버는 전송된 인증정보를 인증서 발행 서버(CA)에서 제공한 CA의 인증서와 웹브라우저가 SSL 채널을 통해 전송한 인증서 및 서명 정보를 이용하여 유효성을 검증하며, 이후 개인키로 암호화된 정보를 공인인증서 내에 포함되어 있는 공개키를 이용하여 복호화함으로써 신분확인에 의한 로그인 절차를 완료한다. 
      로그인 절차가 완료되면 SSL 웹서버는 검증 결과를 웹 서버 변수(Server Variable)로서 서버 프로그램에 전달한다. SSL이 적용된 서버와 웹브라우저에서 공인인증서를 이용한 로그인 절차는 기존의 액티브X를 사용한 공인인증서 사용 절차와 동일하게 사용자 등록과 로그인 실행의 2단계로 진행된다. 각 단계별로 SSL이 적용된 서버에서 자동적으로 진행되는 인증서 검증은 인증서 발행기관의 해당 인증서 확인 작업일 뿐이므로, 각 개별 웹사이트의 사용자와 해당 인증서의 데이터베이스 등록 및 검증을 통한 웹사이트 내 개인화 작업이 로그인 시마다 진행된다. 
      사용자 등록은 기존 또는 신규 웹 사이트 사용자가 사용할 공인인증서 정보를 웹서버의 데이터베이스에 등록하는 작업이 진행되는 것으로써, 서버프로그램은 서버 변수로 전달받은 해당 사용자의 공인인증서 정보를 사용자 정보와 연결하여 데이터베이스에 저장한다. 
      로그인 실행은 현재 인증서 정보를 제출하고, SSL 웹서버가 클라이언트에서 제공된 공인인증서 내에서 공개키를 추출하여 개인키로 암호화된 정보를 복호화하는 절차를 진행함으로써 완료된다.
    • <그림23>파이어폭스 브라우저에 등록된 개인인증서 정보
    • 공인인증서와 개인키가 웹브라우저에 등록되면 웹브라우저의 인증서 정보 조회 화면의 '개인인증서' 탭에서 확인할 수 있다.
    • <그림22>인증서 마법사 완료 화면
    • <그림21>처럼 인증서 저장소를 선택한다. .pfx 파일 내에는 개인키와 공개키가 모두 들어 있으므로 '개인&' 저장소를 선택한다.
    •  
    • <그림20>인증서 저장소 설정 화면
    • <그림19>처럼 불러온 인증서에 대한 패스워드를 입력한다.
    •  
    • <그림18>인증서 파일 불러오는 화면
    • 인증서 파일을 선택해 클릭하면 <그림17>처럼 인증서 가져오기 마법사가 실행된다. 다음을 선택한다.
    •  
    • <그림16>파이어폭스에 등록된 상위 및 최상위 인증기관 인증서 정보
    • <그림15>은 인증기관인 SignKorea CA의 공인인증서 정보화면이다.
    •  
    • <그림14>KISA 공인인증서 정보
    • <그림13>는 최상위 인증기관인 KISA의 공인인증서의 설치 위치와 해당 인증서를 웹브라우저에 설치하는 화면이다. C:₩Program Files₩NPKI에 인증서가 기본적으로 들어 있으며 설치 위치는 환경에 따라 달라질 수 있다.
    •  
    • 공인인증서를 이용하여 로그인한 사용자의 개인화된 웹페이지 처리일반적으로 로그인이 완료되면 로그인한 사용자의 개인화된 웹페이지를 웹서버에서 반환한다. 공인인증서를 이용하여 로그인한 경우에는 SSL이 적용된 웹서버가 현재 로그인한 사용자의 공인인증서 정보를 서버변수 형태로 제공한다. 이 서버변수를 이용하여 웹프로그램은 기존에 해당 웹 사이트에 등록한 사용자인지를 데이터베이스를 조회해서 확인하는 과정이 진행된다. 이 과정을 통해서 웹서버는 각 사용자별로 개인화된 웹 페이지 정보를 해당 세션의 웹브라우저로 전송하게 된다.서버 변수설 명
      CERT_SUBJECT 클라이언트 인증서 제목(SUBJECT 필드)
      CERT_ISSUER 클라이언트 인증서의 발급자 필드 
      (O=AABank,OU=IAS,CN=username,C=SignKorea)
      CERT_FLAGS 클라이언트 인증서가 있는 경우 bit0은 1로 설정
      CERT_SERIALNUMBER 클라이언트 인증서의 일련 번호
      CERT_COOKIE 클라이언트 인증서의 고유 ID 문자열
      <표5>IIS 웹서버의 클라이언트 인증서 관련 서버 변수 및 설명<%@LANGUAGE="VBSCRIPT"%> 
      <!-- Show all form variables --> 
      <TABLE BORDER=2> 
      <TR> 
         <TD><B>Form Variable</B></TD> 
         <TD><B>Value</B></TD> 
      </TR> 
      <% 
      Dim Item 
      For Each Item In Request.Form 
      %> 
      <TR> 
         <TD><FONT SIZE="-1"><%= Item %></FONT></TD> 
         <TD><FONT SIZE="-1"><%= Request.Form(Item) %> </FONT></TD> 
      </TR> 
      <% Next %> 
      </TABLE> 
      </P><P> 
      <!-- Show all server variables --> 
      <TABLE BORDER=2> 
      <TR> 
         <TD><B>Server Variable</B></TD> 
         <TD><B>Value</B></TD> 
      </TR> 
      <% For Each Item In Request.ServerVariables %> 
      <TR> 
         <TD><FONT SIZE="-1"><%= Item %></FONT></TD> 
         <TD><FONT SIZE="-1"><%= Request.ServerVariables(Item) %> </FONT></TD> 
      </TR> 
      <% Next %> 
      </TABLE> 
      </P> 
      </FONT><표6>은 클라이언트 인증서의 인증서 정보를 서버 변수 호출을 통해 확인할 수 있는 Visual Basic 예제 코드이다. 서버 변수를 호출하는 Request. ServerVariables 함수에 서버 변수를 입력하여 클라이언트 인증서 정보를 획득한다.
    • <표6>웹 서버의 서버변수 호출
    • <표5>는 IIS 웹서버의 클라이언트 인증서 정보를 전달하는 서버 변수와 설명이다.
    • IIS 웹서버의 클라이언트 인증서 관련 서버 변수 및 설명
  • <그림12>는 파이어폭스에 등록된 개인 인증서와 정보 화면이다. .pfx 파일을 이용해서 개인키와 공인인증서가 모두 웹브라우저에 등록되었기 때문에 [개인인증서]탭에서 사용자의 인증서를 찾을 수 있다.
  •  
  • <그림11>파이어폭스에 등록된 인증기관 인증서 정보
  • <표4>은 윈도우 운영체제에서 OpenSSL 프로그램을 이용하여 p12 포맷의 .pfx 파일을 생성하는 명령 실행 화면이다. openssl을 이용할 경우에 개인키 파일인 client.key 파일이 PEM 포맷으로 사전에 변환되어 있어야 한다는 점에 주의한다. 
    .pfx 파일을 생성할 때에 해당 공인인증서를 발행한 인증기관의 인증서를 지정하는 것에 주의해야 하며, 개인키 암호화에 사용할 자신만 알 수 있는 안전한 패스워드를 반드시 입력해야 한다. 만일 안전한 패스워드를 입력하지 않으면, 해당 웹브라우저를 사용하는 모든 사람들이 공인인증서와 개인키를 무단으로 복사하거나 웹사이트에 본인 신분으로 로그인할 수 있게 된다. 
    마지막으로 .pfx 파일을 웹브라우저에 등록한다. 국내에서 사용하고 있는 공인인증서와 개인키는 웹브라우저가 인증서의 표준 저장소로 인식할 수 없는 파일시스템에 저장되어 있으므로, 웹브라우저에 개인 사용자의 인증서와 개인키, 해당 인증서를 발행한 인증기관의 인증서 등을 등록하는 작업을 사전에 수행해야 한다. 인증기관의 인증서 설치는 최상위 인증기관의 인증서까지 빠짐없이 설치되어야 한다. 웹브라우저에 .pfx 파일을 등록하려고 하면 개인키를 복호화하기 위하여 비밀번호를 묻는다. 이때는 액티브X 사용 시에 입력했던 비밀번호가 아닌, .pfx 파일 생성 시에 새로 만들었던 비밀번호를 입력해야 한다는 점에 주의해야 한다.
  • c:\opessl\openssl     pkcs12     -export     -in     client.der     -inkey     client.key     -certfile     ca.crt     -out     name-private.p12

프로그램을 사용한 오브젝트 변환 방법

국내에서 사용하는 공인인증서를 .pfx 포맷으로 변환하는 공개된 프로그램을 http://demo.initech.com/?mid=INISAFE_Crypto&document_srl= 1985 에서 다운로드 받아 설치한다. C:\Program Files\NPKI 또는 USB의 해당 폴더에서 개인키와 공인인증서, 인증서버의 공인인증서 및 최상위 인증서버의 공인인증서를 찾아서 하나의 폴더에 복사한 뒤에 해당 폴더에서 변환 프로그램을 실행한다.

공인인증서의 웹브라우저 등록 절차

웹브라우저가 SSL 통신에서 해당 공인인증서와 개인키를 사용하려면 공인인증서와 개인키를 웹브라우저의 저장소에 등록해 주어야 한다. 또, 해당 공인인증서를 발행한 공인된 인증기관(yessign, signkorea, tradesign 등)과 인증기관의 최상위 인증기관(KISA 등)의 유효한 공인인증서를 웹브라우저에 설치해야 한다. 
공인된 인증기관 및 최상위 인증기관의 공인인증서 등록은 해당 인증서를 설치하는 작업으로 간단하게 완료할 수 있다.

 

=================================

=================================

=================================

 

 

반응형


관련글 더보기

댓글 영역