뱅킹/보안

2009.04.08 글쓴이 youknowit

한국인터넷 뱅킹 보안에 관한 학술논문

영국 옥스포드 대학교와 캠브리지 대학교의 컴퓨터 랩 소속 연구자들께서 공동으로 한국 인터넷 뱅킹 보안에 관한 학술논문을 발표하셨습니다. 영어로 된 논문 전문은 여기에서 내려받으실 수 있습니다. 한국어 번역은 여기에서 내려받으실 수 있습니다.

논문의 핵심 내용은 다음과 같습니다:

  • 현재와 같은 ActiveX 플러그인 방식으로는 안전한 거래 플랫폼이 마련될 수 없다.
  • 현재 방식은 보안에 별 도움을 주지 못하는 한편 이용자 편의성도 저하시킨다
  • 사회공학적으로나 기술적으로 더 나은 다른 대안들이 여럿 존재한다

이 논문은 특히 오픈웹 소송을 언급하며, 패소의 한 원인은 현행 인터넷 뱅킹의 보안 성능에 대한 전문 기술적 분석이 뒷받침되지 않았기 때문이기도 하다는 진단을 제시하고 있습니다. 즉, 현행 방법이 보안에도 별 도움이 되지 않으며, 실현 가능한 여러 다른 대안이 있다는 점에 대한 확신을 재판부에 심어주는데 성공하지 못한 듯하다는 지적입니다(p. 3). 매우 공감가는 내용입니다.

논문 내용을 조금 더 소개하면,

첫째, 국내 인터넷 뱅킹거래에 사용되는 보안접속 플러그인은 기본적으로 웹브라우저가 사용하는 SSL/TLS 보안접속과 별로 다르지 않다. 키교환 단계는 공개키 기반의 비대칭 암호화로 이루어지고, 키교환이 이루어지고 나면 SEED 대칭 암호화 알고리즘을 사용하여 교신 내용이 암/복호화 된다. 웹브라우저가 이미 제공하는 것과 유사한 방식의 암호화를 별도의 플러그인으로 하는 것은 미국 정부의 암호 기술 수출 제한으로 인하여 웹브라우저가 90년대 후반까지는 낮은 수준의 암호화만을 제공했었기 때문으로 보인다.(p. 4).

둘째, 현행 방식은 피싱 공격에 취약하다. 웹브라우저가 제공하는 SSL/TLS 보안접속을 했더라면, 웹브라우저가 알려주는 보안 경고가 일정 수준의 피싱 방어 수단이 될 수 있으나, http 접속으로 수행되는 한국 인터넷 뱅킹 기법은 이런 방어책을 전혀 이용할 수 없다.(p. 6)

셋째, 공인인증서가 높은 수준의 보안을 제공해 줄 수 있다는 믿음이 한국에는 널리 퍼져 있으나, 실제로는 별 실효성이 없다. 하드디스크나 이동식 저장 장치에 저장된 공인인증서 개인키는 쉽게 유출되므로 비밀번호 이상의 보안을 제공하지 못한다. 보안카드가 나중에 도입된 이유도 공인인증서가 별다른 보안을 제공하지 못한다는 점을 인식/인정하였기 때문에 추가적 안전장치가 필요하다고 판단해서 였다. 현행 방식 하에서는 공인인증서는 군더더기(redundant)에 불과하다. 반면에 개인키가 현재와는 달리 안전하게 보관, 운용될 경우에는 다른 여러 수단이 필요 없이 인증서만으로도 안전한 뱅킹환경이 형성될 수 있다. (p. 7)

넷째, 안티바이러스 플러그인은 최신 악성코드를 감지해 내지 못하거나, 완벽한 감지가 원천적으로 불가능하다, 개인 방화벽 플러그인은 은행거래 중에만 작동하므로 공격자는 그 외의 시간에 정보를 내보내거나 침입할 수 있게 되어 있다. 키보드보안은 interrupt hooking method 로 키값을 가로채는 공격을 막지는 못하는 등, 초보적 수준의 악성코드에 대해서는 효과가 있을지 몰라도, 이들 보안프로그램은 sophisticated attack (e.g. privilege-escalation attack)들을 방지하기 힘들다. 이용자에 대한 효과적 안내와 계몽 등 사회공학적 접근이 전체적으로 보아 오히려 훨씬 나은 효과를 거둘 수 있다.(p. 7)

다섯째, 국내 인터넷 뱅킹에 사용되는 플러그인은 그 정확한 스펙이 공개되지 않으므로 그것의 안전성을 투명하게 검증할 수 없다. 스펙을 공개하지 않으면 초기에는 공격을 늦출 수 있을지 몰라도 결국에는 공격자가 취약점을 발견하게 되고, 그 다음부터는 지속적 공격이 음성적으로 가능해 진다. 보안프로토콜은 적어도 초기에는 완벽하게 투명한 검증 기간을 거치는 것이 안전하며, 웹브라우저가 사용하는 SSL/TLS 기법은 투명한 검증을 거친 것이다. SSL 접속이 man-in-the-middle 공격 등에 취약하므로 사용하지 말아야 한다는 주장은 합리적이지 않다. 대부분의 취약점이라는 것은 이미 패치가 나와있고, SSL/TLS session-aware user authentication 을 사용하면 man-in-the-middle 공격은 불가능하다.(p. 8 )

논문의 저자들이 제안하는 권고 사항은 다음과 같습니다.(p.10)

첫째, 이용자의 소프트웨어 선택권을 존중하고, 보안 위험에 대한 분명한 설명을 제공함으로써 이용자가 프로그램 설치 여부를 판단할 수 있게 해야 한다.

둘째, 별도플러그인으로 수행하는 보안접속은 웹브라우저의 SSL/TLS 접속으로 전환하는 것이 더 안전하거나 적어도 대등하게 안전할 뿐 아니라, 피싱 공격에 대한 일정 수준의 방어책까지 사용할 수 있게되는 이점이 있다.

셋째, 공인인증서는 표준적 위치(웹브라우저/보안토큰)에 저장해야 한다. 그렇게 해야 웹브라우저의 SSL/TLS 보안접속과 공인인증서를 연계하여 보다 우월한 보안 환경을 달성할 수 있다. 표준적 저장위치(파이어폭스 계열은 PKCS#11 방식의 인증서 저장을 지원하고, MS IE는 CAPI 를 지원한다)에 공인인증서를 저장하면, 이들을 호출하는 API가 투명하게 공개되어 있으므로 다양한 플러그인(예를 들어 거래내역 서명 플러그인)이 손쉽게 개발될 수도 있고, 이용자와 서비스 제공자의 선택권도 확보된다. [오픈웹도 공인인증 기술규격이 이렇게 개정되어야 한다는 공개 제안을 하고 있습니다. 많이 참여해 주세요. 인증서 발급 Demo 사이트도 있습니다.]

넷째, 현재의 뱅킹 세션에서만 동작하는 방화벽은 bypass할 수 있는 방법이 존재하므로 그 대신 OS에 이미 탑재된 방화벽을 상시로 작동시키는 방법을 알기쉽게 안내하고, 운영체제 업데이트에 관한 안내와 안티바이러스 프로그램 설치에 관한 이용자 안내에 은행들이 좀 더 많은 노력을 기울여야 한다.

저자들은 장래에 보다 안전한 뱅킹 환경이 요구될 경우 이것을 어떤 방식으로 구현할 것인지에 대하여 몇가지 아이디어를 제시하고도 있습니다.(pp. 11-12)

지난 10년간 독특한 방법으로 이루어져 왔던 한국 인터넷 뱅킹이 이제는 국제 무대의 전문가들 앞에 논의의 대상으로 제시되었으니, 앞으로 보다 냉정한 평가와 개선 방안이 제시될 것으로 기대합니다. 저자들은 후속 논문으로 한국 인터넷 뱅킹에 대한 위험 분석과 공격 패턴에 대한 연구를 수행할 예정이라고 합니다.

****
저자들이 추가로 밝혀오신 내용을 소개합니다.

  • 저자들은 이 페이퍼를 통하여 건설적인 토론이 시작되기를 희망한다.
  • 저자들의 논지는, 현재의 한국 보안 기술이 전혀 쓸모가 없다는 것이 아니라 근본적인 한계를 가진다는 점을 지적하고자 하는 것이다. 안전하지 않은 플랫폼 위에서 Application layer를 보호하려는 방법이기 때문에 기술적인 한계를 가진다. 예를 들어 공개키를 안전하게 사용하기 위해서는 공개키가 저장되는 저장소와 API 등의 integrity가 보장되어야 하는데, 한국의 방식은 이를 보장할 수 없다.
  • 이용자들의 이용 편의와 서비스 접근 확보를 위해서 표준을 준수하고, 표준화가 힘든 기능들에 대해서는 옵션으로 제공하는 것이 최선의 방법이라고 생각한다.

과격한 어휘나 표현의 사용으로 건설적인 논의가 방해받는 일이 없기를…

  • f85t75

    보안카드는 인증서를 보완하기 위한 수단으로 사용하기 시작한것은 아니고, 90년대 중반 PC뱅킹 사용 시절부터 보완 차원으로 도입되었습니다.

  • http://openweb.or.kr youknowit

    보안카드 사용을 의무화한 것은 2005년 9월경부터 입니다. 여기 참조.

  • http://www.ndsl.kaist.edu/~kyoungsoo/ kyoungsoo

    저는 모든 secure connection이 필요한 구간에 SSL을 써야 한다고 생각하는 사람입니다. site가 제공하는 ActiveX는 open web을 방해하기도 하지만 사실 어떤 내용이 깔리는 지 정확히 알 수가 없는 점이 더 큰 문제가 아닐까 합니다. 유명 은행이 제공한다고 해서 보안상 홀이 없는 프로그램일까요? 만약 악의를 가진 프로그래머가 나쁜 짓을 슬쩍 집어 넣을수도 있지 않을까요?

    페이퍼를 읽어보진 않았지만 대충 제 생각이랑 일치하는 것 같습니다. 다만 SSL을 한다고 해서 피싱이 없어지진 않을 것 같습니다. 피싱을 하는 측에서도 SSL certificate을 제대로 만들어 놓고 할수도 있지요. Naive한 사용자들이 작은 경고를 무시하고 계정 비밀번호같은 걸 쳐 넣을 가능성도 있겠지요.
    외국에선 계정 등록시에 사용자만의 고유 그림같은 걸 등록해서 접속시마다 확인하는 절차를 거치는 경우가 많습니다. 즉 사용자가 접속한 사이트가 실제 그 은행이라는 걸 증명해주는 것이지요. 우리 나라 은행 사이트는 이런 걸 제대로 해주지 않습니다. 해커가 은행사이트를 똑같이 만들어서 피싱을 하면 당할수 있는 거지요.

  • totheworld

    이 논문은 다분히 의도적으로 시작된 논문으로 보여집니다. 제가 오해하였다면 정중히 사과드립니다.
    하지만, 본 논문의 내용에도 나와 있듯이 공인인증서를 안전하게 사용한다면 보안카드 등이 없이 공인인증서 만으로 안전한 인터넷뱅킹이 가능하다고 하고 있습니다.

    그렇다면 저자들은 한국이 안전한 인터넷뱅킹을 하기 위한 방안을 제시해야 논문이나 TR로서의 방향이 맞을 것입니다. (저자들도 알고 있을 것이라 생각됩니다) 보안수단을 자유로이 선택할 수 있도록 하는 것이 최선이라는 것이 결론이 되어서는 안 될 것입니다. (내용으로 보건대 저자들은 나름대로 보안 전문가로 보여집니다)

    그런데 왜 저자들은 공인인증서를 안전하게 사용하여 인터넷뱅킹이 안전해 지는 방안은 이야기하지 않고, 단지 현재 방안의 문제점만 언급하나요? 현재 방안의 장점은 전혀 없을까요?

    현재 OS나 브라우저에서 제공하는 보안 장치들을 국내에서는 몰라서 적용하지 않을까요?

    저자들이 영국에서 공부하시고, 연구하신다면 현황이나 상황은 더 잘 아실텐데요.

    과격한 언어의 사용으로 건설적인 논의를 제한하지 말도록 말씀하셨지만…

    객관적으로 분석한 리포트는 아니라는 생각이 듭니다.

  • hk331

    > 그렇다면 저자들은 한국이 안전한 인터넷뱅킹을 하기 위한 방안을 제시해야 논문이나 TR로서의 방향이 맞을 것입니다.

    본 논문에서 trustworthy platform이 중요한 경우, 어떻게 구현될 수 있는지, 장단점이 무엇인지, 또 CAP reader와 같은 transaction authentication device들이 어떻게 배포되고 쓰일수 있는지 제안 하였습니다. 자세한 내용은 Section 5.3을 참조하시기를 바랍니다.

  • hk331

    본 논문에 대한 번역글이 있습니다. 최종본에 대한 번역은 아니지만 참조하시기 바랍니다.
    http://blog.naver.com/realtiamat/130082087969