문화/생활

한국의 대형 사이트들 중 다수가 해킹 피해를 입어 개인정보를 유출당한 상태다. 개인정보 데이터에는 이름, 주소, 전화번호, 비밀번호, 주민등록번호 등이 고스란히 들어 있어 해킹에 대비해 비밀번호와 주민등록번호 등 중요한 데이터는 암호화해서 보관하는 것이 필수적이다. 다행히 대부분의 사이트는 이런 사실을 알고 있었고 실제로 암호화해서 보관하고 있었다. 문제는 이를 지키지 않고 비밀번호를 그대로 저장한 곳도 많다는 점이다. 한 개의 비밀번호를 여러 사이트에 동시에 쓰게 되면 매우 위험해진다. 각 사이트마다 비밀번호를 다르게 해야 하는 이유가 여기에 있다.
안타깝게도 해킹 당한 사이트가 비밀번호를 암호화해놓았더라도 위험하기는 마찬가지다. 해커들이 개인정보에 포함된 암호화된 비밀번호 데이터를 활용해 원래의 비밀번호를 알아낼 수 있기 때문이다.
비밀번호는 일방향 함수를 사용해 저장된다. 일방향 함수란 역함수를 찾기 어려운 함수를 말한다. 일방향 함수를 써서 ‘123456’을 암호화하면 ‘Q34SE!#fdkclevev’와 같이 복잡한 문자열로 변형되는 데 그 반대는 불가능하다. 즉 암호화된 문자열 ‘Q34SE!#fdkclevev’로부터 결코 ‘123456’을 만들 수 없다는 뜻이다.


하지만 해커들은 매우 기발한 방법을 발견해냈다. ‘qwerty’, ‘123456’과 같이 사용자들이 흔히 쓰는 비밀번호를 암호화한 다음 그 결과값을 암호화된 비밀번호 데이터와 비교한 것이다. 즉 ‘123456’를 암호화한 값 ‘Q34SE!#fdkclevev’를 훔쳐온 개인정보의 암호화된 비밀번호와 하나씩 대조해서 같은 값이 있으면 그 비밀번호가 ‘123456’임을 유추할 수 있다는 것이다.
간단한 암호를 쓰는 것이 위험한 이유가 여기에 있다. 실제로 ‘D33Ds Company’란 해커 집단이 미국의 야후를 해킹하여 훔쳐낸 45만명의 개인정보와 해독에 성공한 비밀번호를 공개했는데 그중에서 가장 많이 쓰인 비밀번호는 ‘123456’이었다. 그 다음 순서로 많이 쓰인 것은 ‘password’, ‘welcome’, ‘ninja’, ‘abc123’, ‘123456789’, ‘sunshine’, ‘princess’, ‘qwerty’ 순이었다.
이렇게 흔히 쓰는 비밀번호나 사전에 있는 단어를 대입하여 원래의 비밀번호를 알아내는 방법을 사전공격이라고 한다. ‘123456’을 암호화해서 얻은 ‘Q34SE!#fdkclevev’이란 문자열을 수천 명의 암호화 된 비밀번호와 비교하다 보면 같은 것을 많이 찾을 수 있을 것이다.
해커들은 이렇게 알아낸 비밀번호로 은행 계좌에서 돈을 빼가는 등 또 다른 해킹에 악용할 것이므로 쉬운 비밀번호를 쓰는 사용자가 가장 먼저 피해를 입게 될 것이다. 숫자로만 된 비밀번호, 사전에 나와 있는 단어, 영어 소문자나 대문자로만 된 것 등 단순한 비밀번호를 쓰지 않아야 하는 이유가 여기에 있다.

해커들은 사전 공격뿐만 아니라 무차별 공격에도 나서고 있다. 사용 가능한 8자리 이하의 모든 비밀번호를 미리 암호화하고 있는 것이다. 예를 들어 숫자로 된 4자리 비밀번호 전체는 ‘0000’에서 ‘9999’까지 모두 1만개다. 이 모든 숫자를 암호화하여 결과 문자열을 확보하는 것이다. 이 값을 훔쳐온 개인정보와 하나하나 비교하면 숫자로 된 모든 4자리 비밀번호는 금방 알아낼 수 있다.
해커들은 ‘숫자로만 된 12자리 이하의 비밀번호’까지 암호화한 표와 ‘숫자와 영어 대소문자를 섞은 8자리 이하의 모든 비밀번호’를 암호화한 ‘레인보 테이블’만 있으면 대부분의 비밀번호를 알아낼 수 있다.
해커들은 새로운 비밀번호 암호화 기법이 출현할 때마다 그에 맞는 레인보 테이블을 다시 만든다. 시간을 줄이기 위해 인터넷을 통해 서로 협력하기도 한다. 한쪽은 ‘A-O’로 시작하는 비밀번호를 암호화하고 다른 쪽은 ‘P-Z’로 시작하는 비밀번호를 암호화하는
식이다. 정보 공유도 하고 있다. 공동 작업으로 만든 레인보 테이블을 파일공유 사이트에 공개해놓았기 때문에 아무나 쉽게 구할 수 있다. 이 표로 대부분의 사이트 비밀번호를 알아낼 수 있다.
신뢰할 수 있는 암호화 기법을 아무나 만들어낼 수 없다. 프로그램 소스의 숫자 몇 개 고쳐서 가능한 작업도 아니다. 때문에 결국 대부분의 사이트는 표준화된 암호 기법을 쓸 수밖에 없다. 따라서 레인보 테이블이 위력을 발휘하게 되는 것이다. 해커들은 레인보 테이블을 이용해 훔쳐온 개인정보에서 또 다른 피해자를 찾을 것이다.
이런 이유로 8자 이하의 비밀번호는 대부분 안심할 수 없다. 사전 공격이 가능한 비밀번호 사용자가 제일 위험하고 ‘숫자만 사용한 비밀번호’, ‘영어 소문자나 대문자만 사용한 비밀번호’, ‘영어 대소문자를 섞어 쓴 비밀번호’, ‘영어 대소문자와 숫자를 섞어 쓴 비밀번호’ 순으로 피해를 입게 될 것이다. 비밀번호는 8자 이상으로 길게 하고 ‘!@#$%^&*()_+)’와 같은 특수 문자를 섞어 써야 하는 이유가 여기에 있다.
하드웨어의 발전으로 인해 해킹을 위한 강력한 도구가 등장하고 있다. 3차원 영상을 실시간으로 표현하기 위해 그래픽 전용 하드웨어가 고성능화되었는데 여기에는 반복계산 전용의 그래픽 CPU가 1천개 이상 들어 있다. 이를 암호 해독에 활용하면 그래픽 전용 하드웨어 한 개의 성능은 PC의 CPU에 비해 1백배 이상의 성능을 낼 수 있다. 이 하드웨어를 여러 개 장착하면 한 대의 컴퓨터로 PC에 비해 1천배 이상의 성능도 가능하다.

또한 해킹 전용 고성능 하드웨어를 확보한 전 세계의 해커들이 공동작업을 함으로써 한 명이 작업할 때보다 수십만 배 이상의 효율을 내고 있다. 이들은 지금도 계속 레인보 테이블을 확장시키고 있다. 8자까지의 모든 비밀번호를 해독하고 나면 9자 이상의 비밀번호에도 도전할 것이다. 8자 이상의 비밀번호도 안심할 수 없게 되는 것이다.
시간은 해커들 편이다. 하드웨어의 발달, 더 커지고 저렴해진 저장장치, 더 빨라진 인터넷 환경으로 암호 해독은 점점 더 속도를 얻고 있기 때문이다. 어쩌면 12자를 넘어서 20자 이상의 비밀번호까지 포함하는 레인보 테이블이 완성되는 날이 인류가 멸망하는 날이 될지도 모른다.
글·김인성 (IT칼럼니스트)
K-공감누리집의 콘텐츠 자료는 「공공누리 제4유형 : 출처표시 + 상업적 이용금지 + 변경금지」의 조건에 따라 자유롭게 이용이 가능합니다. 다만, 사진의 경우 제3자에게 저작권이 있으므로 사용할 수 없습니다. 콘텐츠 이용 시에는 출처를 반드시 표기해야 하며, 위반 시 저작권법 제37조 및 제138조에 따라 처벌될 수 있습니다.
[출처] K-공감누리집(gonggam.korea.kr)

