Active X
ActiveX ???
마이크로소프트에서 ActiveX (OCX) 를 이용한 COM (Component Object Model) 을 이용한 객체를 소개한것은 Internet Explorer 5.0 이후인것으로 기억한다.
처음 의도는 서버와 클라이언트(사용자) 간의 웹을 좀더 확장성 있게 만들기 위해서 나온 개념이었다.
서버는 HTTP 통신에 사용되는 HTML 문서를 넘어서 Object 라는 개념을 적용하여 일반적으로 THML 페이지 만으로는 구현 할수 없는 다양한 구성을 꽤하기 위해서 탄생 하였다.
사용자 측의 다운로더를 구성 할 수도 있고 , 암호화를 통한 웹페이지 보안 등 ... 사용처는 백가지였으나 이에 따르는 문제점이 너무 많았다는게 일반적인 여론일 것이다.
무엇이 문제인가?
문제는 바로 ActiveX 가 사용자 컴퓨터에서 수행되는 프로그램 이라는 점이다.
이런점으로 인해 ActiveX 가 수행되는 페이지는 Internet Explorer 에서만 보여지며, x86 CPU 를 사용하는 PC 에만 국한되며 , 사용자의 개인 정보의 유출을 막을 방법이 없어진다는 점이 되겠다.
보통 ActiveX 를 사용하는 웹페이지를 방문하면 ActiveX 의 설치를 강요 받게 된다.
사용자는 이런 설치를 하지 않으면 해당 페이지 이후로 서비스를 이용할수 없게 되는 것이다. (보통 은행권)
즉, 내 컴퓨터에 원하던 원하지 않던, 해당 서비스를 이용하려고 하면 반드시 ActiveX 를 설치 해야 하는 것이다.
대부분의 Spyware , ADware 등이 이런 점을 이용해서 사용자의 PC 에 불법적인 프로그램 설치를 강요하게 된다. 가장 큰 예로 위 두가지 프로그램들.
사용자가 해당 ActiveX 의 설치를 수락하기만 하면 이것은 공격자에게 "어서오시오" 라고 문을 열어 주는 것과 다를바가 없다는 것이 된다.
보통 불건전한 위와 같은 프로그램들은 ActiveX 를 가장한 설치파일을 배포하게 되는데, ActiveX 가 설치되자 마자 해당 ActiveX 는 특정 서버로 spyware 나 ADware 를 설치하게 되고 사용자는 동의없이 이들 프로그램에 시달리게 되는 것이다.
그저 설치만 됨으로서 문제가 될까?
아주 많이 된다.
일단 불법적인 프로그램이 설치가 되고 나면 , 이미 당신은 집안에 도둑을 환영하며 맞이한 것이다.
일반적으로 쓰이는 윈도우 자체의 방화벽은 자신이 사용하는 레지스트리 정보에 의존한다.
윈도우 프로그래밍 좀 해 본 사람이라면 이정도 레지스트리 손보는 건 우습지도 않다.
자기 자신을 증빙된 존재로 방화벽에 등록하고, 특정 서버로 해당 컴퓨터의 정보를 빼 가는 것은 HTTP 프로토콜 좀 만져본 사람이라면 우습게 만들수 있는 것이다.
이것이 ActiveX 의 문제점인 것이다.
ActiveX 로 부터 내 컴퓨터를 보호하는 것은 다음 몇가지 뿐이다.
1) 매번 ActiveX 설치 전에 해당 ActiveX 의 위험성을 먼저 찾아 본다... (즉, 사용자는 개노가다를 해야 한다는 것이다)
2) 만약 설치된 ActiveX 가 악성이라면 사용자는 이 ActiveX 를 수동으로 삭제 해야 한다(하지만 독한 것들은 삭제가 되지도 않는다는 점을 고려 해야 한다)
3) 매번 BHO (Browser Helper Object) 를 검사해야 한다. (1,2 번이랑 다를게 없는 노가다다)
만약 1번에서 수락을 하게 된다면?
당연 2,3 번은 기본으로 따라가는 옵션인 것이다.
왜 마이크로소프트는 ActiveX 를 버리는 것일까?
ActiveX 가 설치되는 COM 개념이 인터넷을 떠돈지 언 10년이란 세월이 흘렀다.
그와 함께 인터넷은 온갖 쓰레기 ActiveX 가 남무하게 되었고, 이런 것들로 하여금 마이크로소프트에 문의하는 사용자들은 더욱더 많아 졌을 것이다.
그렇다고 마이크로소프트가 자신들이 만든 ActiveX 의 문제점을 모르고 있었을리는 없었을듯, 하지만 문제점은 이런 상황에서 해결책을 찾을 수가 없었을 것이라는 점이다.
아무리 살펴 보아도 사용자 수락이 있은 뒤엔 막을수 있는 방법이 없기 때문이다.
게다가 이런 ActiveX 문제점들은 앞으로 나오는 다양한 CPU 들을 만족시키지 못한다.
지금은 x86 기반이라고 해서 그나마 호환성이 다들 맞아 떨어지고 있지만 사실 대세는 64bit architecture 를 가진 CPU 들이라는 점이다.
언제까지고 x86 기반의 명령어를 사용하는 CPU 를 계속 사람들이 쓰라는 법도 없고, FireFox 의 Web 표준안에 위배되는 점들도 많고, 그렇다고 각 환경에 따라 ActiveX 를 제공하는 것 자체가 사실적으로 무리인점을 비추어 볼때, 마이크로소프트는 자신들이 만든 ActiveX 를 더이상 유지할수 없다는 결론을 내렸을 것이다.
대안책은?
대안책은 이미 많이 있다.
ActiveX 와 비슷하게 보이겠지만 파이어폭스 는 플러그인 이라는 것을 사용한다.
이 플러그인은 파이어폭스 내에서만 구동이 가능한 구조로 되어 있으며 , ActiveX 처럼 사용자 컴퓨터를 직접 액세스 할 수 없는 구조를 가지고 있다.
그럼 금융권은 어떻게 될까 ?
이미 훌륭한 암호화 정책이 브라우저로 부터 공급되고 있다는 사실을 먼저 알아야 한다.
SSL 이라는 암호화는 매우 복잡한 구조로 되어 있는데, 이 SSL 을 이용한 인터넷뱅킹이 이미 외국에서 사용되고 있으며 , SSL 구조상 제한된 시간내에 암호화 를 풀수 있는 컴퓨터는 슈퍼컴퓨터급이라도 어렵다는 점이다.
SSL 암호화 알고리즘은 간단하면서도 , 공격자가 서버 및 클라이언트 간의 암호화를 깨기가 사실상으로 불가능 한 구조라는 점을 감안 한다면 , 이런 SSL 을 이용한 표준 웹 방식에서도 어려움 없이 구현이 가능하다는 것이다.
이것 외에도 ActiveX 를 대체할 것들은 무궁무진 하다.
기본적으로 브라우저 자체의 암호화가 잘 되어 있는 것을 기반으로 한다면.
이미 인터넷을 쓰레기 더미로 만들어 놓은 ActiveX 를 대체할 것들은 너무나 많다.
파이어폭스3 에서도 이미 ActiveX 를 대체하여 플러그인 이라는 개념을 사용하고 있으며, 이 플러그인으로 Adobe 사의 Flash / Shockwave 는 물론, Apple 의 Quicktime, MS 의 Window media 를 재생할수 있다.
이런 플러그인 들은 브라우저가 제한하는 영역 내에서만 구동이 가능하며 , 이런 제한된 영역에서도 충분히 문제없이 구동이 되고 있다는 것이다.
파이어폭스3 만 봐도 최초 플러그인 설치시 상당히 다양한 정보를 제공하며 , 사용자로 하여근 이 플러그인을 설치 할 것인지 여러번 질문하게 된다.
윈도우의 ActiveX 처럼 딸랑 제조사 정보만 떡 하니 나와서 설치할래 말래? 라고만 묻는 개념이 아니라는 것이다.
물론 파이어폭스3 의 플러그인도 완벽한 개념은 아니다.
하지만 적어도 ActiveX 처럼 사용자의 컴퓨터 자체가 생존의 위협을 받을수 있는 일은 절대 없다는 것이 큰 차이라는 점이 부각된다고 생각된다.
앞으로....
마이크로소프트가 또 무슨 바보같은 것을 만들어 낼지는 모르는 일이다.
하지만 적어도 10년간 우려먹으면서 문제점만 줄기차게 만들어 낸 ActiveX 는 더이상 쓰지 않았으면 하는 바램이다.
이젠 어느 브라우저로 보나 똑같은 화면, 똑같은 동작이 보장되는 진정한 네트웍의 사용자화가 이루어 져야 할 것으로 생각 된다.
즉, 소비자의 권리를 챙겨야 한다는 것이다.