인터넷 뱅킹과 크로스 브라우징

나는 오늘도 인터넷 뱅킹을 위해 모 은행의 홈페이지로 접속했고, 플러그인을 설치해야한다는 페이지를 5분동안 보고 있어야 했다. ‘왜 안넘어가는거야!’ 라고 짜증을 내며 브라우저를 보니 firefox다. 비굴하게 32bit 버젼의 인터넷 익스플로러를 사용해서 접속하니 나도 모르게 실행되는 백신과 키보드 보안 프로그램 그리고 XecureWeb…

이 은행에 있던 돈을 다른 은행에 있는 계좌로 이체를 시킨 뒤 잔고가 얼마인지 확인하기 위해 또 다른 은행사 홈페이지로 접속을 했고, 또 다른 프로그램들이 실행되기 시작했다.

도대체 XecureWeb, INISafeWeb등이 뭐하는 프로그램이길래 설치를 강요받아야 하고, 또 무슨 근거로 신뢰를 강요받아야 하는걸까?

XecureWeb / INISafeWeb 도대체 얘네 뭐하는 애들이야?

크게 인터넷 뱅킹에서 필요한 기능은 두 가지 이다. 인터넷 뱅킹을 하는 동안 오가는 데이터를 중간에서 가로챈다고 하더라도 그 내용을 알아 볼 수 없게 하기 위해 보안 채널을 구성하는 것이 그 첫번째이고, 거래(계좌 이체 등)를 한 사람이 본인이라는 사실을 증명하는 것이 그 두번째이다.

위에 열거한 프로그램들이 위에서 얘기한 두 가지 기능을 제공하기 위한 플러그인이라 할 수 있지만 불행하게도 Microsoft Windows용 플러그인만 제공되고 있다.[1] 덕분에 Mac OS X 이나 Linux 등에서는 인터넷 뱅킹을 이용하는 게 쉽지 않고, 일부 플러그인의 경우 윈도우용 firefox를 위한 플러그인도 제공하고 있지만 플러그인의 버젼을 체크하는 javascript 문제로 firefox에서는 동작하지 않는 경우가 태반이라 (BC카드 홈페이지가 대표적 사례) 인터넷 뱅킹은 윈도우용 인터넷 익스플로러 전용 서비스라고 해도 과언이 아닌 것 같다.

그럼 대안은 없는건가?

우선 보안 채널을 형성하는 것과 관련해서는 http over ssl(이하 https)이라는 훌륭한 대안이 있다. 위에서 얘기한 플러그인들의 경우 브라우저나 웹서버에서 기본으로 제공하는 방법이 아닌 자신들 고유의 방법으로 보안 채널을 형성해야 하기 때문에 개발이 복잡해질 수 밖에 없다.

하지만 https 는 대부분의 웹서버와 브라우저에 구현되어 있기 때문에 프로토콜을 https로 명시해주면 끝이므로 개발 비용 및 추가 비용이 발생하지 않는다. 이미 널리 사용되고 있는 방법이므로 Microsoft Windows, Mac OS X, Linux, Firefox, Internet explorer, Opera, lynx, links, w3m 등 어떤 OS, 어떤 브라우저에서도 이용에 제한을 받지 않는다. 심지어는 w3m 같은 텍스트 브라우저마저도 https를 지원한다.

  https XecureWeb / INISafeWeb
개발 간단 복잡
호환성 높음 낮음
추가비용 없음 라이센스비 + 개발비
유지보수 간단 복잡
크롤링(검색엔진) 가능 어려움

거래를 한 사람이 나라는 사실을 증명하는 방법으로는 전자 서명이 있고, 이는 페이지의 해쉬 값을 내 공인인증서로 암호화 한 내용[2]을 덧붙이는 식으로 구현된다.

이를 위해 필요한 기능은 공인인증서(자신의 사설인증서)로 페이지의 해쉬 값을 암호화 하는 기능이며, 기본적으로 브라우저에서 제공되는 기능은 아니기 때문에 플러그인이 필요할 수 밖에 없다. 최근 크로스 브라우징에 대한 흥보의 효과인지 얼마 전 이니시스에서는 플래쉬 기반의 공인인증 시스템을 발표했지만 아쉽게도 아직까지 이 서비스는 전자 결제 대행에서만 이용이 가능 한 것으로 보인다. (오해가 있을 수 있을 것 같은데, INISafeWeb은 이니시스가 아닌 이니테크의 제품이다.)

하지만 그렇다 하더라도 같은 기능을 위해 각 사이트마다 다른 플러그인을 설치하도록 하는 것은 좋은 방법이라 할 수 없을 것 같다. 더 좋은 해결책이라면 공인인증을 위한 MIMETYPE을 표준화하고 이 MIMETYPE에 대한 처리를 담당하는 플러그인의 API, 즉 공인인증 API를 표준화 하여 이 API를 제대로 구현하고만 있다면 어떤 구현물을 사용하던 서로 호환이 가능하도록 만드는 것이라고 생각한다.

공인인증에 대한 표준화가 이루어진다면 하나의 공인인증 플러그인만으로도 모든 은행의 인터넷 뱅킹 서비스를 자유롭게 이용할 수 있게 될테고, 공인인증 플러그인이 제공되지 않는 브라우저라면 사용자가 스스로 플러그인을 제작해서 사용[3]하는 것도 가능해질 것이다.

마치며

웹은 특정 OS, 특정 브라우저에 제한되어서는 안된다고 생각한다. 암호화 채널을 https 로 바꾸는 것 만으로도 내 통장 거래 내역을 어떤 OS, 어떤 브라우져에서든지 간단히 확인할 수 있게 될 것이다. 비록 반쪽짜리이지만 이 정도만으로도 불편의 반 이상은 해결될 것이라 생각한다. 적용을 위해 약간의 노력이 필요하겠지만 이후 유지 보수의 편리함 등을 생각하면 이 노력은 충분한 의미가 있을 거라고 생각한다. (플러그인에 대한 라이센스 따위는 더 이상 필요 없어진다. 물론 XecureWeb 이라거나 INISafeWeb 등 현 기득권 업체들이 이 시장을 놓치려 하지 않을 것이므로 이 문제는 정치적으로 해결해야할 것이다.)

게다가 공인인증 API 를 표준화 하게 되면 나머지 반쪽의 문제도 해결될 것이다. 많은 것을 바라는 것은 아니다. 단지 자신이 좋아하는 운영체제, 자신이 좋아하는 브라우저를 사용하면서도 차별을 받지 않을 수 있길 바랄 뿐…

[1] XecureWeb의 경우 MS Windows / Mac OS X / Linux 용 플러그인을 모두 제공한다.

[2] 이를 이해하기 위해선 우선 공개키 / 비밀키 알고리즘에 대해 알아야 한다. 간단하게만 얘기하면 어떤 값을 공개키로 암호화 한 것은 비밀키로 복호화 할 수 있고, 어떤 값을 비밀키로 암호화 한 것은 공개키로 복호화가 가능하다.

비밀키는 나만 가질 수 있으므로 공개된 키로 암호화되어 전송된 내용은 나만이 해석할 수 있게 된다. 그렇기 때문에 보안 채널을 구성할 땐 공개키를 이용해서 암호화 하는 방식을 사용한다. (상대방에게 데이터를 전송할 땐 상대방의 공개키를 이용해서 암호화 한 뒤 보내고, 누군가 내게 데이터를 보낼 땐 내 공개키를 이용해서 암호화 한 뒤 보내주게 된다.)

반대로 내 비밀키로 암호화된 내용은 누구나 공개키로 풀어볼 수 있으므로 데이타를 보낼 때 데이터의 뒤에 그 데이타를 내 비밀키로 암호화된 내용을 덧붙인다면 이게 내가 보낸 데이타라는 것을 증명할 수 있게 된다. 실제로는 데이타 자체를 암호화 해서 보내기 보다는 데이타의 해쉬 값을 비밀키로 암호화 한 뒤 원래의 데이타 뒤에 이 값을 붙여서 보내게 된다. 이를 이용하는 애플리케이션으로는 enigmail 등이 있다.

[3] RSS에 비유를 해보자. RSS는 표준화가 되어있기 때문에 RSS feed를 관리하기 위해 특정 애플리케이션을 사용해야할 필요는 없다. 만약 자신이 사용하는 OS에 RSS Reader가 존재하지 않는다면 표준을 참고해서 직접 Reader를 작성할 수도 있다.

Published by

4 thoughts on “인터넷 뱅킹과 크로스 브라우징”

  1. 뭔가 잘못알고 계시네요. 현 PKI업체 종사자인데

    이니텍이나 소포등이 현 PKI시장에 리드업체는 맞지만 그들의 이익추구에 시장이 따라가는게 아닙니다.

    정확하게 말하자면 5대인증기관 및 KISA 의 입김이 더 쎕니다.

    사용자로 하여금 한번이라도 더 OCSP 인증을 받아야 이득을 취하는 구조에서

    당연히 기존에 구축했던 인증서 시장을 버리지 않으려는게 그들입니다.

    사실 PKI업체들은 SSL 을 커스텀하여 팔아도 이익봅니다.

    뒤늦게 부랴부랴 크로스브라우저 대책으로 NPAPI 도 써보지만 한정적이죠

    1. xecureweb 등이 하는 역할이 2가지로 생각되는데요 (네 전 이쪽 분야 사람이 아니라 틀릴 수도 있습니다.) 그 중 하나가 보안 채널을 형성하는 쪽이고, 다른 하나가 공인인증으로 파악되는데…

      보안 채널을 SSL로 할 경우 어떤 브라우져를 사용하건 보안 채널을 형성하는데 문제가 되지 않습니다.

      이를 바꾸어 말하면 인터넷 뱅킹이건 카드 사용 조회건 (보안 채널 형성 및 로그인에 공인인증서 사용되지 않는다는 전제 하에) 보안 채널 형성에 SSL만 사용하는 경우 별다른 플러그인이 없어도 cross browsing에 문제가 없어야 한다는 이야기입니다.

      계좌 이체 등등등이 아니라 내 계좌 정보 조회에 대해서는 이 정도만 지원이 되어도 문제가 될 바가 없으나 (SSL 기반으로 별다른 플러그인 요구없이) 오픈 뱅킹을 지원하던 우리은행 조차도 현재는 보안 채널 형성을 xecureweb등을 이용해서 하고 있고 플러그인 없이는 아무것도 할 수 없는 상황이죠.

      기득권자가 누구인지는 중요한게 아닙니다. 달아주신 댓글을 해석해보아도 (이니텍이나 소포 등이 기득권자는 아니라하더라도) 5대 인증기관 및 KISA의 이득을 위해 현재의 기형적인 구조를 버리지 못하고 있다고 판단할 수 있는 상황입니다.

      그렇기에 이는 정치적으로 풀어야할 사안이라고 써놓은 내용이구요.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">