[92] 제국의 역습 ==============================
#58-2
그나마 심심하지 않은 건, 우르르 몰려온 구름과 같은 구매자들 덕이었다. 사무실에 커다란 창이 있어서 스토어의 상황을 그대로 볼 수 있었다. 대신 스토어쪽에선 사무실 안은 보이지 않는다.
그쪽에서 보면 거울처럼 빛이 반사되고, 안에서만 보이는 형태의 유리였기 때문이다. 계산대에선 쉬지 않고 ID 오피스가 팔려나가고 있다. 계산대 밑에 저장고가 있었지만, 거기에 쌓아둔 물량은 진작 다 소진되었다. 재고를 채우기 위해서 직원들이 땀을 뻘뻘 흘리면서 오피스 패키지를 나르고 있었다. 힘이 세도 한 번에 12개 이상을 드는 건 무리라서 열심히 나르는 수밖에 없다.
시연용 컴퓨터 앞에도 사람들이 끝없이 늘어서 있었다. 이것저것 해보면서 감탄도 하고, 옆에 있는 크루에게 기능을 물어보기도 했다. 레이저프린터도 쉬지 않고 뭔가를 출력해 내고 있었다. 오늘 행사가 마무리되면 특별 보너스라도 챙겨줘야 할 것처럼 열심이다.
흐뭇한 광경이다.
그러다 문득 이질적인 모습도 눈에 들어왔다.
컴퓨터였다.
플래그쉽 스토어는 밖에서도 화려하고, 안에서도 세련된 모습이었다. 천장의 조명도 형광등이 그대로 노출된 게 아니라, 하얀색 유리로 덮여 있어서 천장 전체가 빛을 내는 것 같았다. 여기에 주광색 조명등이 추가되어서 밝기도 하면서 은은한 분위기를 자아냈다.
실내 인테리어도 번갯불에 콩 구워 먹은 것처럼 빨랐지만, 유리와 원목을 적절히 사용해서 고급스러운 분위기를 냈다.
옥에 티가 컴퓨터였다.
데스크톱 본체 위에 모니터를 올려놓았고, 키보드, 마우스를 앞에 놓았다. 투박한 80년대 스타일의 컴퓨터가 여러 대 늘어서 있는 걸 보니 스토어의 스타일과 어울리지 않았다.
플래그쉽 스토어에 어울리는 세련된 디자인의 컴퓨터가 있으면 좋은데, 아직 일체형 디자인이 나오지 않은 것이다.
‘없으면 만들어봐?’
컴파일 중에 엉뚱한 생각이 드는 유재원이다.
“보스, 다녀왔습니다. 손님들도 그 사정을 충분히 이해한다고 하셨습니다. 맛있는 점심 잘 먹고 간다고 전해달라고도 했습니다.”
레스토랑에 갔던 레밍턴도 돌아왔다.
“다행이네요.”
FBI 수사에 협조하기 위해 시간이 필요하다고 하면 다들 고개를 끄덕여줄 거다.
그러는 사이 컴파일이 완료되었다.
“준비는 끝났으니, 시작해보죠.”
안나 모랄레스가 전해준 디스켓이 드라이브에 삽입했다. 파일 탐색기를 열어서 플로피 디스크로 이동했다. 1.44메가짜리 디스켓 안에는 무려 1메가에 달하는 파일 하나만 덩그러니 들어 있었다.
키보드 워리어에서 다이어리를 한 편이라도 작성하면 생성되는 파일이다. 그런데 용량이 상당하다. DES는 암호화를 해도 용량이 늘어나는 형태의 알고리즘은 아니었다. 그러니 용의자가 일기 자체를 엄청난 분량으로 작성했다는 이야기다.
뭔가 의심스럽긴 하다.
몇 개월분의 일기라고 해도 그게, 소설책 4권 분량이니 보통 사람은 아닌 거다. 유재원도 하루를 마감할 때 일지를 작성하긴 하는데, 특별한 일이 있더라도 몇 줄에 불과했다. 핵심만 딱딱 적어 놓기 때문이다.
다이어리 파일을 키보드 워리어가 있는 디렉토리로 복사한 후 실행했다.
분위기와 어울리지 않는 경쾌한 타이틀 화면이 나타났다. ESC 키를 연타해서 오프닝은 다 넘기고 바로 타이틀 화면으로 이동해, 시작 버튼을 눌러서 다이어리 기능을 실행했다.
기존에 만들어진 파일이 없으면 새로운 다이어리를 만들겠느냐고 물어보는 화면이 나오는데, 지금은 암호 입력화면이 나타났다.
유재원은 여기에 아무렇게나 단어를 입력하고 엔터를 쳤다. 잘못된 암호 입력이라는 메시지가 떴다가 사라졌다. 그러면서 남은 기회가 4번뿐이라는 새로운 글귀도 나타났다. 유재원은 아무렇게나 단어를 입력하는 짓을 4번 더 했다.
그러자 접근을 차단한다는 문구와 함께 프로그램이 자동 종료된다는 문장이 떠올랐다. 하지만 소스코드를 바꿔서 프로그램 종료 기능을 해제했기에 프로그램이 꺼지진 않았다. 암호 입력도 계속되었다.
“DES 암호를 쉽게 깨는 방법이 있나요?”
여기까지 지켜본 안나가 호기심을 참지 못하고 물어봤다.
5번 입력하면 프로그램이 꺼져서 무차별 공격(Brutal Force Attack)이라는 암호 해체 기본기도 사용해보지 못했던 안나 요원이었기에 얼굴이 밝아졌다.
물론 있다.
DES의 구조 자체에선 취약점이 없는데, 암호키가 56bit밖에 되지 않는다. 아무리 복잡한 암호를 넣어도 숨길 수 있는 한계가 있다. 무차별 공격을 보다 효율적으로 할 수 있게 병렬 연산으로 무식하게 털어내면 이틀이면 충분하다.
“없습니다. 하지만 다른 길이 있죠.”
병렬 연산 프로그래밍은 현재 컴퓨터 기술 수준에서는 무척이나 고급 기술이다. 그걸 이 자리에서 보여줄 필요는 없다. 게다가 지금은 시간이 많이 남지 않았다고 하니, 다른 방법을 쓰는 게 좋다.
“요원님은 운이 좋은 겁니다.”
키보드 워리어에는 설명서에 없는 기능이 있다.
다이어리 암호를 잃어버렸을 때, 복구해달라고 사무실로 찾아와서 떼를 쓰는 유저도 있겠다 싶었다. 그래서 유재원은 암호 복구 기능을 만들었다.
미리 설정한 마스터키를 입력하면 사용자가 다이어리 암호로 설정한 단어가 나타난다. 원리는 간단하다. 사용자가 임의로 넣은 암호를 통해 암호화를 마치고 나서, 파일의 마지막 부분에 키보드 워리어에 내장된 마스터키를 통해 사용자가 입력했던 암호를 따로 암호화해서 저장하는 형태였다.
그러니까 마스터키를 넣으면 사용자 암호가 나오고, 그걸로 원래의 다이어리를 복원할 수 있다.
어떻게 보면 백도어라고도 할 수 있지만, 그런 용도는 전혀 생각하지 않았다. 암호 복구용 말고는 큰 의미는 없다. 인터넷으로 연결된 것도 아니라서 원격에서 사용자의 다이어리를 훔쳐보는 건 불가능하니 말이다.
무엇보다 이런 형태의 백도어는 수준이 너무도 낮은 거다.
리버스엔지니어링을 해서 보면 사용자가 입력한 암호를 따로 저장한다는 게 딱 보인다. 물론 어셈블러를 읽고 이해할 수 있는 전문가에 한하겠지만, 숙련된 전문가는 내장된 마스터키도 찾아낼 거다.
진짜 백도어를 심었다면, 이런 식이 아니라 암호화 알고리즘 자체의 취약점을 알고도 내버려두는 식으로 만드는 게 보통이다.
실제로 암호를 잃어버렸다고 하소연하던 유저 몇몇은 마스터키를 이용해서 복구를 해주기도 했다. 대신 복구용 마스터키가 유출되면 안 되기에, 실리콘밸리 사무실까지 찾아온 사람에게만 해줬다.
또한, 마스터키가 작동하는 조건도 있다. 다섯 번 암호를 잘못 입력해서 파일이 잠긴 상태에서만 가능하다.
참고로 AES 방식을 넣은 ID 오피스의 경우엔 백도어는 없다. 사용자가 선택할 수 있는 옵션을 통해 원래 암호를 유추할 수 있는 힌트 파일을 생성하도록 했지만, 사용자 몰래 뭘 숨기는 것은 없다.
“그럼 복원합니다.”
유재원이 번개처럼 키보드를 눌러 영어 대소문자와 숫자로 조합된 16자리 마스터키를 입력했다. 길기도 하고, 엄청나게 빨라서 훈련된 눈썰미를 가진 안나 요원이라도 외우지 못할 정도였다.
마스터키가 입력되자 하드디스크 읽는 소리가 나더니 암호가 복원되었다. 이번엔 아예 모니터를 가리고 유재원 혼자만 봤다. 그리곤 바로 닫아버렸다.
“지금 뭐죠?”
안나 요원의 목소리가 날카로워졌다. 그것이 그녀가 용의자의 암호를 못 봤다는 걸 확인시켜 줬다.
아직 영장이 코앞으로 날아온 것은 아니니, 용의자의 암호는 보호해주는 거다.
그런데 용의자 직업이 뭔지 모르겠지만, 암호는 제법 잘 만들었다.
‘St!Mans0n.’
마침표 포함해서 10자짜리 암호다. 이 시대의 암호라는 건 특정 단어나 기념일 같은 숫자를 넣는 게 보통이었다. 암호를 잃어버렸다고 사무실까지 찾아왔다는 유저의 암호도 간단한 단어에 불과했다. 그런데 살인 사건의 용의자는 대문자와 소문자, 특수문자와 숫자까지 다 넣어 조합했다.
읽을 수도 있다. 외우기는 쉽지만 유추하긴 어려운 암호다. 그런데 가톨릭 성자 중에 맨슨이란 성자가 있나?
“맨슨이라….”
성자는 없다. 대신 유명한 쓰레기는 안다.
“용의자는 찰스 맨슨의 신봉자입니다. 어떻게 알았죠? 아, 찾아낸 암호가 찰스 맨슨과 관련이 있는 것이군요.”
안나 요원도 날카로웠다.
맨슨이라는 단어 하나만 듣고 바로 파악했다. 그렇다고 그게 암호는 아니지만 말이다.
유재원은 암호 복원의 최종 단계로 넘어갔다.
바탕화면으로 돌아와, 파일 관리자를 이용해 키보드 워리어의 설정 파일을 지우고 다시 실행하는 것이다. 5회 연속 잘못 입력하면 파일이 잠가지는데, 이걸 푸는 건 설정파일을 날리는 것이 제일 빠르고 쉽다.
다이어리 기능을 켜니 초기화된 암호 입력창이 나타났다.
여기에 추출된 암호를 넣었다.
이전처럼 잘못된 암호라는 메시지는 나오지 않았다. 곧 날짜를 선택하는 달력 화면이 나타났다.
이전 날짜로 커서를 옮겨 엔터를 치면, 그날 입력한 본문이 나타나고, 오늘 날짜를 치면 새로운 글을 입력하는 빈 메모장이 뜨는 거다.
“풀린 겁니까? 그럼 작년 12월 31일 자 다이어리를 열어주세요.”
안나의 요청이 곧 이어졌다. 하지만 유재원의 손가락은 엔터키 대신 ESC 키를 눌렀다. 다이어리 기능을 종료한 거다.
“제가 해드릴 수 있는 건 여기까지예요. 암호는 찾았고, 영장이 제 앞으로 오면 얼마든 열람할 수 있게 해드릴 거예요.”
유재원은 그렇게 호락호락한 사람이 아니다.
반면 바로 다이어리를 보여줄 거라고 기대했던 것 같은 안나는 안색이 크게 변했다. 차가웠던 얼굴에 홍조가 좀 올라왔다고 할까? 열을 좀 받은 것 같다.
여름이라고 시원하게 에어컨을 틀어 놓은 상태였는데도, 저러니 얼마나 화가 났을지 짐작이 가지 않는다.
“이렇게 비협조적으로 나올 겁니까?”
“비협조적이라뇨? 지금 열심히 암호를 찾아서 풀어준 걸 확인하셨잖아요.”
“이 자리에서 살짝 보여줄 수도 있잖습니까.”
“그러다가 영장이 안 오면 ID 테크놀로지가 위법 행위를 하게 되는 거잖아요.”
“뭐라고요? 그건 FBI를 믿지 못하겠다는 말인가요?”
대화를 듣고 있던 레밍턴이 크게 고개를 끄덕였다. 안나 요원이 보든 말든 엄지를 척 치켜들면서 말이다.
“글쎄요. 그건 우리 변호사님과 상의해봐야겠네요.”
변호사라는 말에 안나 요원이 움찔했다.
미국은 변호사의 왕국이었다. 스키너와 안나가 유재원과 편하게 대화를 나눌 수 있었던 것도 이 자리에 변호사가 없었기 때문이다.
“예, 법무실장 엘런이 곧 도착할 겁니다.”
유재원이 척하면 레밍턴은 착이다. 변호사가 오고 있다는 소리에 안나 요원은 한 발 뒤로 물러섰다.
“전화 좀 사용할 수 있을까요?”
결국, 생각을 바꿨는지, 전화를 요청했다. 얼마든지 사용하라는 너그러운 표정으로 책상의 전화기를 가리켰다.
“보안이라.”
안나 요원이 전화기를 사용하는 걸 보며, 유재원은 혼잣말로 중얼거렸다.
이번 일로 ID 오피스뿐만이 아니라 ID 테크놀로지까지 인지도를 대폭 상승시킬 이벤트가 떠올랐다.
ID 오피스 해킹 대회라는 거다. 암호가 걸린 ID 오피스 파일을 풀어내는 것에 상금을 크게 걸면 해커라고 자부하는 이들이 벌떼처럼 몰릴 거다. 상금으로 100만 달러쯤 걸면 불타오르는 불길에 기름을 부은 것처럼 활활 타오르지 않을까?
절대 뚫리지 않을 거라는 확신이 있어야 가능한 이벤트다.
뚫리지 않는 걸 보여주기 위한 행사인데, 뚫리게 되면 이런 개망신도 없으니 말이다. 하지만 이번 FBI의 경우를 보면 자신감을 가져도 좋을 것 같다.
마침 그랜드 오픈 행사가 성공적으로 치러졌으니, 언론의 포커스가 집중된 지금 해킹 대회를 개최하는 게 최적의 타이밍이 아니겠는가. 게다가 컴퓨터에 대한 이해도가 높은 해커는 창의적인 개발자이기도 했다. 운 좋게 대어라도 걸리면 남는 장사다.
유재원은 결심이 섰다.
‘해보자.’
아주 성대한 해커들의 축제를 여는 거다!
미국은 물론이고 전 세계 해커들이 다 모이는 축제의 장을 열어 보는 거다!
========== 작품 후기 ==========
추천과 리플, 선작 모두모두 고맙습니다~!!
원고료 쿠폰, 후원 쿠폰 완전 감사합니다~~!!
오늘도 연참 성공이네요.
과연 연참 신기록이 언제까지 이어질 지 저도 궁금해집니다.