“최 기자! 방송 준비 다 됐나?”
“네, 편집장님. 거의 다 됐습니다. 곧 마무리하고 전송해…, 어라? 컴퓨터가 왜 이러지? 웬 해골그림이야? Unfortunately, we have deleted your data…. 뭐? 내 파일을 다 지워버렸다고? 큰일났습니다. 제 컴퓨터가 해킹을 당했습니다!”“뭐? 해킹?”
2013 대한민국 해킹 사건
지난 3월 20일 오후 2시 15분, KBS와 MBC, YTN 같은 언론사와 농협, 신한은행, 제주은행의 전산망이 모두 마비됐다. 약 3만 2000대에 달하는 회사 내 모든 컴퓨터 화면이 갑자기 검게 변하더니, 의미를 알 수 없는 명령어가 나타났다. 컴퓨터는 다시 켜지지 않고 그대로 멈춰 버렸다. 우리나라 대표 언론사와 금융기관이 속수무책으로 해킹을 당한 것이다.
3주 뒤, 정부 조사팀은 북한 해커들이 이번 해킹 사건을 저질렀다고 발표했다. 조사 내용에 따르면 북한 해커들은 작년 6월 28일부터 국내 은행 전산망에 접근하기 시작했다. 윈도우나 리눅스 등의 운영체계에서 제공하는 인터넷 주소 검색 프로그램을 사용해 전산망에 연결된 ‘서버’의 주소를 알아낸 것이다. 서버는 해커들이 통신망을 통해 침투할 때 가장 처음 도착하는 지점으로, 회사에서 사용하는 모든 컴퓨터가 연결돼 있는 장치다. 각 컴퓨터는 서버를 통해서 인터넷과 연결되고, 해커 역시 서버를 통과해야만 회사 내 모든 컴퓨터에 접근할 수 있다.
알아낸 서버 주소를 이용해 서버에 접속하는 데 성공한 북한 해커들은 ‘트로이 목마’라는 형태의 악성 프로그램을 설치했다. 트로이 목마 프로그램은 그리스가 트로이를 무너트릴 때 사용한 목마처럼, 겉으로는 바이러스 백신 같은 유용한 프로그램으로 보인다. 하지만 사실은 해커의 명령에 따라 컴퓨터를 파괴하는 기능을 한다.
서버를 통해 회사 내 모든 컴퓨터에 트로이 목마 프로그램을 설치하는 데 성공한 해커들은 3월 20일에 명령을 내려 악성 프로그램을 가동시켰다. 그리고 악성 프로그램은 모든 컴퓨터의 자료 저장장치인 하드디스크를 파괴했다.
세계는 지금 사이버 전쟁 중!
2000년대 들어 전세계에 초고속 통신망이 설치되면서 이를 이용해 다른 사람에게 피해를 입히는 사이버 공격이 늘어나고 있다. 전세계적으로는 1년 동안 1억 3700만 건이나 되는 해킹 시도가 발생한다. 이처럼 보이지 않는 전쟁터라고 할 수 있는 사이버 세계에서는 어떤 방식으로 공격과 방어가 이루어질까?
해커들의 치밀한 공격 방법
해커들은 크게 두 가지 방법으로 사이버 공격을 시도한다. 바로 불특정 다수를 공격하는 방법과, 정해진 목표를 공격하는 방법이다. 불특정 다수를 공격하는 방법은 악성 프로그램을 첨부한 스팸메일을 수많은 사람에게 보내거나, 인터넷 사이트에 사진과 영화, 게임 등 유용한 파일인 것처럼 가장한 악성 프로그램 올려놓는 것이다.
반면에 정해진 목표를 공격하는 해킹 방법은 사이버 세계에서 상대방의 일거수일투족을 감시하는 스토킹이라고 할 수 있다. 이번 공격처럼 서버 주소는 물론이고, 공격 대상의 이메일 주소와 전화번호 등 개인정보까지 알아내기 때문이다.
이렇게 정보를 모은 뒤, 해커는 해킹 대상의 서버에 접근한다. 서버에는 통신할 때 저마다 다른 기능을 담당하는 6만 개 이상의 통신 포트가 있고, 각 포트에는 번호가 할당돼 있다. 해커는 각 포트에 신호를 보낸 뒤 돌아오는 반응을 보고 각각의 포트가 어떤 역할을 하는지 알아낸다. 이 정보를 이용하면 서버를 운영하는 운영체제가 무엇인지 알 수 있다. 해커는 이렇게 알아낸 운영체제의 약점을 이용해 서버에 몰래 접속한 뒤, 사용자 몰래 서버를 감시하고 조종하는 각종 프로그램을 설치한다.
해킹 방법
해킹 방법 1 인터넷에 악성 프로그램을 첨부한 파일 전송.
해킹 방법 2 방화벽을 무너트린 뒤 상대방 컴퓨터에 침투.
해킹 방법 3 해킹한 컴퓨터를 이용해 다른 컴퓨터를 공격.
해킹 막는 보안 전략
하지만 모든 해킹 시도가 성공하는 것은 아니다. 우리가 사용하는 컴퓨터는 다양한 방법으로 해킹 시도를 차단한다. 가장 기본적인 방법은 백신 프로그램을 이용하는 것이다. 백신 프로그램은 매일 발견되는 악성 프로그램 분석 자료를 자동으로 내려받아 컴퓨터를 검색해 확인하도록 설계돼 있다. 마치 과학수사에서 유전물질인 DNA를 비교해 범인을 찾아내는 것처럼, 악성 프로그램 정보와 컴퓨터에 설치된 프로그램을 일일이 비교하는 것이다.
또 다른 방법은 모든 컴퓨터를 연결하는 관문 역할을 하는 서버에서 해킹 시도를 차단하는 방법이다. 큰 기업은 보통 서버를 관리하는 권한을 가진 사람이 정해져 있는데, 아이디와 비밀번호 같은 인증을 거쳐야 한다. 하지만 아이디와 비밀번호도 어렵지 않게 해킹할 수 있다. 따라서 서버를 설계할 때부터 휴대용 저장장치(USB)에 담긴 공인인증서를 통해야만 접속할 수 있게 만들기도 한다.
그 밖에도 ‘방화벽’이라는 장치를 이용해 해킹 시도를 막을 수 있다. 통신망을 통해 이동하는 모든 정보는 ‘패킷’이라는 단위로 나뉘어 움직이는데, 패킷에는 정보와 함께 보내는 컴퓨터와 받는 컴퓨터의 IP 주소가 담겨 있다. 방화벽은 마치 교통경찰처럼 장치를 통과하는 모든 IP 주소를 미리 입력된 위험 주소와 일일이 비교하면서 검문한다.
하지만 해커들은 계속해서 백신 프로그램에 걸리지 않는 새로운 악성 프로그램을 만들고, 새로운 주소를 이용해서 해킹을 시도한다. 따라서 보안 장치 역시 계속 더해지는 해킹 정보를 수시로 반영하면서 컴퓨터를 보호한다.
방어 방법
방어 방법 1 전송된 정보의 IP 주소와 위험 IP 주소 비교.
방어 방법 2 인증을 거친 뒤 통과.
방어 방법 3 백신 프로그램으로 악성 프로그램 제거.
해커를 괴롭히는 최후의 보루, 암호수학
해킹을 막는 보안 기술은 최신 해킹 정보를 분석해서 부족한 점을 보완하는 방식으로 발전한다. 따라서 해커가 알려지지 않은 새로운 방법을 사용하면 해킹을 막을 방법은 없다. 하지만 해커가 중요한 정보를 가져간다고 해도, 그것을 읽을 수 없으면 해커의 노력도 헛수고가 된다. 이렇게 해커로부터 정보를 보호해 주는 최후의 보루 역할을 하는 것이 바로 수학을 이용한 암호체계다.
현재 가장 널리 쓰이고 있는 암호체계는 MIT대 수학자 로널드 라이베스트, 아디 샤미르, 레오나르드 아들만이 1977년에 개발한 ‘RSA’ 암호다. RSA 암호는 ‘비대칭 암호 방식’의 일종으로, 메시지를 암호로 만드는 방법과 푸는 방법이 다르다.
먼저 메시지를 보내는 사람은 ‘공개키’라고 부르는 수백 자리의 자연수를 이용해서 메시지를 암호화 한다. 이 메시지를 받는 사람은 공개키를 만드는 두 개의 소인수를 알아야 메시지를 다시 복원할 수 있다. 만약 비밀키인 두 소인수를 모르면, 이 문제는 슈퍼컴퓨터를 이용해도 몇만 년이 걸릴 만큼 풀기 어렵다. 슈퍼컴퓨터로 130자리 숫자를 소인수분해 해서 비밀키를 찾아내는 데 약 한 달이 걸리고, 400자리 숫자는 약 10억년이나 걸리기 때문이다.
하지만 최근 슈퍼컴퓨터보다 계산 속도가 빠른 양자컴퓨터의 출현이 가까워지면서 수학자들은 더욱 안전한 공개키 암호 방식을 개발하기 위해 노력하고 있다. 우리나라 카이스트 수리과학부 고기형 교수와 서울대 수리과학부 천정희 교수 연구팀도 매듭이론을 이용한 새로운 공개키 암호체계를 개발해 주목을 받았다.
땋임 암호란?
‘땋임’은 머리카락을 꼬아 놓은 모습을 가리키는데, 다양한 모양으로 만들 수 있다. 연구팀은 긴 땋임에서 꼬여 있는 각 마디를 기호로 바꾼 뒤, 전체 땋임을 여러 기호의 곱셈 꼴로 변환했다. 그런데 땋임은 수를 이용한 연산과 달리, $a×b$와 $b×a$의 결과가 같지 않다. 땋임을 연결하는 순서를 바꾸면 전혀 다른 모양이 되기 때문이다. 즉, 곱셈에 대해 교환법칙이 성립하지 않는다. 따라서 해커는 암호를 풀기 위해 연산 순서까지 고려해야 하고, 그 결과 더 많은 노력과 시간이 필요하다.
하지만 공개키 암호 방식에서 정보를 수정하려면 암호를 풀어야 하는데, 이 과정에서 비공개키가 노출될 위험이 있다. 그래서 최근 천정희 교수 연구팀은 이같은 공개키 암호의 단점을 보완한 새로운 암호 기술인 ‘완전동형암호’를 개발했다.
완전동형암호란?
완전동형암호는 메시지를 특정한 수로 나눈 나머지를 상대방에게 보내는 방식이다. 예를 들어 받은 암호가 3이라고 했을 때, 나누는 수가 무엇인지만 알면 ‘중국인의 나머지 정리’를 이용해 원래 메시지를 알 수 있다.
이때 암호를 풀지 않아도 정보를 조작할 수 있는 원리는 다음과 같다. 10÷7과 15÷7의 나머지는 3과 1이다. 그리고 두 나머지를 더한 값은 4다. 그런데 (10+15)÷7의 나머지도 4다.
여기서 10과 15가 메시지 ❶, ❷라면, 3과 1은 암호 ❶, ❷라고 할 수 있다. 즉, 암호 ❶+❷는 원래 메시지를 더한 뒤 다시 암호화 한 값과 같다. 이 때문에, 암호를 풀지 않고도 원래 정보를 원하는 대로 조작할 수 있다.
이처럼 날로 교묘해지는 해킹 기술에 대응하기 위해 많은 수학자들이 좀 더 풀기 어려운 암호체계를 연구하고 있다. 해커들로부터 중요한 정보를 지킬 새로운 암호의 활약을 기대해 보자