뱅킹 ActiveX 귀찮으신가요?

@codemaru · May 15, 2007 · 6 min read

근래의 인터넷 뱅킹 사이트는 과도하게 많은 보안 소프트웨어 ActiveX를 설치합니다. 사용자의 선택권은 없습니다. 설치하지 않으면 인터넷 뱅킹을 사용하지 못하는 것이죠. 일부는 해당 보안 소프트웨어가 Vista에서 지원되지 않기 때문에 Vista에서 뱅킹 자체가 되지 않는 경우도 있습니다. 설치하면 뭐 끝. 그렇지도 않습니다. 보안 소프트웨어의 특성상 시스템과 밀접하게 관련되기 마련이고 툭하면 문제가 발생합니다. CPU가 조금이라도 느린 컴퓨터라면 뱅킹 사이트 접속시 컴퓨터가 멈춘것 같이 보이죠. ㅠㅠ

저도 과거 해당 보안소프트웨어의 개발에 참여했고, 이런 말 하기가 참 뭣하지만. ㅠㅠ 그래도 그런 보안 툴들이 불편한건 사실입니다. CPU 파워를 조금 갉아먹는다손 쳐도 완벽하게 동작한다면 문제가 되지 않겠지만 그런 경우는 잘 없죠. 저 또한 최근에 모 사의 키보드 보안 프로그램 때문에 비번이 틀려서 은행을 방문한 적이 있었습니다. 정말 악몽같았죠. 거래 은행이 부산은행이라 서울에는 지점이 몇 개 없거든요. 물론 각 보안사별로 자신의 보안 소프트웨어를 동작하지 않도록 하는 프로그램을 별도 배포하고 있지만 찾기도 힘들 뿐더러 일부는 링크가 없는 것들도 있습니다. 아마 이러한 문제점에는 다들 공감하실 겁니다.

그러면 이렇게 불편한 보안 소프트웨어 방법이 없을까요? 물론 없다면 이 글 자체가 존재할 이유가 없겠죠. ActiveX의 설치 검사 방법을 알면 답이 보입니다. 아래 코드는 뉴스그룹에 미병님께서 아주 오래전에 포스팅한 내용에서 발췌한 것입니다. 아마도 이스트 소프트의 알툴즈 ActiveX 설치 검사 부분인 것 같습니다. 대부분의 ActiveX가 아래와 동일한 방법으로 설치 검사를 하고 있죠.

[js]

[/js]

보안 소프트웨어도 마찬가지입니다. 위에서 Installed가 false인 경우에 강제로 설치 유도 페이지로 이동 시키는 것이죠. 요기까지 오면 대부분의 개발자들은 아하! 하고 눈치채셨을 겁니다. 저 단순한 자바스크립트 코드는 치명적인 문제를 가지고 있죠. 설치된 ActiveX의 클래스 아이디만 가지고 그것이 자신이라고 판단하는 문제입니다. 그렇다면 동일한 클래스 아이디를 가진 다른 ActiveX가 설치되어 있다면 어떨까요? 당연히 true로 통과되겠죠.

물론 이 글을 보고 보안 업체에서 다른 방식의 인증을 도입할지도 모릅니다. 하지만 그런 방식을 도입하더라도 그들이 설치 유무를 체크할 방법은 자바스크립트 외에는 딱히 없습니다. 자바스크립트 코드는 고맙게도 공개가 되죠. ActiveX를 개발해본 경험이 있는 개발자라면 이 방법이 얼마나 쉬운지 아실 겁니다. 단지 만들고 컴파일하면 끝이죠.

이 글에는 단지 아이디어만 포함하고 있습니다. 문제의 소지가 있어 별도의 ActiveX를 첨부하진 않았습니다. 앞으로는 사용자들이 먼저 원하는 그러한 보안 소프트웨어가 많이 나오길 바랍니다. 그런데 사실 그게 쉽지가 않죠. ㅠㅠ

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중