전화요금이나 인터넷요금, 카드요금 등등 요즘은 많은 청구서들이 이메일로 청구서를 발송하면서 이른바 “보안메일”이라는 것으로 보냅니다. 그런데, 하필이면 보안까지는 좋은데, 보안 솔루션이란게 윈도우 전용이라 다른 곳에서는 읽을 방법이 없죠. 카드 얼마 썼는지도 모르고.. 전화요금이 나와도 뭐가 얼마 나왔는지 모르고.. 무지 답답합니다. 으이구~
그래서 간단하게 읽어볼 방법이 없을까 해서 보안 메일을 열어봤더니, base64로 인코딩되어 있어서 아.. 이때부터 삽질이 시작되었습니다. “어떻게든 프비에서 보안메일 한번 읽어보자!”
우선은 보안메일의 base64부분만 풀어도 상당한 힌트가 들어있는데, SEED/CBC/PKCS5Padding이라는 헤더가 있기 때문에, 중간 어딘가부터 분명 SEED/CBC가 시작될 것이라는 걸 강하게 암시하고 있습니다. 대략적으로 00이 많이 나오는 지역을 제외하면 첫 100~200바이트 내에서 CBC코딩이 시작된다는 것을 알 수 있는데, CBC는 그 특성상 시작부분을 정확하게 안 맞추면 뒷부분도 모두 어긋나기때문에 100~200사이에서 모두 시도해 보는 것으로 시험해 봤습니다.
주민등록번호 뒷자리를 입력하기 때문에, 주민등록번호 뒷자리에 0을 채운것, 진짜 PKCS5 패딩을 한 것, MD5한 것 세 가지를 해 봤는데, 혹시나 했는데 역시나 전혀 안 보이는군요. 크흐.. 그래서, 그 이후로 주민등록번호를 숫자로 코딩한 것, sha1로 해시해서 자른 것, sha1 해시한 것을 또 md5한 것 등등 상상할 수 있는 온갖 것들을 다 시도해 봤는데, 맞는게 없더군요..
하도 안 되니까, 속임수로 SEED/CBC라고 해놓고 실제론
SEED/CTR이나 AES/CBC같은 것 쓰는게 아닌가 해서 이놈들도
다 시도해 봤는데, 전혀 안 되네요.. 결국에는 디버거의 도움을
받아 장시간의 트레이스 끝에 키를 생성해 내는 방법을 알아내서
풀어 내긴 했습니다;;;; (함수 하나가 뭐 이리 긴지;;)
아.. 저 노이즈 속에 진주처럼 반짝반짝 빛나는 HTML이여.. -ㅇ-;;; 이제 본문을 풀어보면!! (이번 달에 만든 카드라 얼마 안 썼습니다 =3)
그런데, 하나 재미없고 곤란하게 된 것은 컴퓨터프로그램보호법 제 12조의 2항 “프로그램코드의역분석”에서의 제약사항 때문에, 지금까지 해서 메일 보는 것까지는 합법적이지만, 공개하는 것은 불법이기 때문에, 코드를 공개하거나 바이너리로라도 배포하는 것이 불가능하다는 점입니다. 아이고.. 공개를 안 하면 무슨 재미로 개발을 하나…. 그런데, 보안메일에서 쓰고 있는 방법은 엄청나게 기이한 과정을 거치기 때문에 역공학없이 메일 내용만 보고 풀어보는 것은 매우 힘들 것 같아서.. 해당 프로그램을 배포하는 쪽에서 직접 만들지 않는 한은 다른 호환 솔루션이 나오는 것은 매우 어려울 것 같군요.
파이썬 소스로 SEED부분을 제외하고 2줄이면 풀리는 간단한 방법인데, 앞으로 이니텍에서 Firefox용 플러그인도 좀 배포를 해 주던지, 아니면 자바스크립트나 플래시로라도 좀 해 줬으면 좋겠네요. 그거 만드는데 얼마나 걸린다고..~
어차피 주민등록번호의 일부를 키로 암호화할 거라면 뭐하러 ActiveX를 사용하는지 모르겠군요.
역시 학생은 검소하시군요. ^^
우아~! 저도 파폭에서 청구서 보고 싶어요~
이야~ 역시, 하고야 말았네요. 대단해용♡
형~! 저 석우예요^^
역시.. 저도 파폭쓰면서 청구서만 오면 IE 열어서 보는게 귀찮았는데 ㅎㅎ
근데 요새 체크카드 만들어서 쓰면 그것도 괜찮던데요?^^
저도 학교에서 뭐 사먹을때 단돈 1000원이라도 체크카드로 긁어먹는중이예요 ㅎ
그럼 나중에 소득공제 받을 수 있으니깐요~ 현금영수증은 5000원 이상이어야되지만 카드결제는 1000원이면 되는게 좋더라구요 ㅎㅎ
여튼, 종종 와서 구경하다가, 저도 결국은 허접썰렁 블로그 열고 나서 제대로 답글 남겨 봅니다.^^
저도 궁금하긴 하지만 그냥 삭제해 버립니다..-.-
아아, 어제 뭔가 디버거로 삽질하시던 게 이거였군요;;;
근데 저는 보안메일을 받아본 적이 없어서… 혹시 다 스팸처리되었나;;
오~ 풀어가는 과정이 궁금한데, 메일로 질문하면 살짝 알려주시렵니까?
음.. 안 됩니다. -ㅇ-; 법적으로 역공학으로 얻은 정보는 다른 곳에 활용할 수 없는데, 별 수 없이 과정을 설명하면 전달이 될 것 같네요. 저는 그냥 조용히 살고 싶어요;;
“자기 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피…”
아아~ 이리 멋진 내용에서 달은 안보고 손가락만 열심히 쳐다보는 어리석은 나…-O-;;
^^; =33
고려대 법대 김기창입니다.
컴퓨터 프로그램 보호법 제12조의2 제1항은 “정당한 권원에 의하여 프로그램을 사용하는 자 또는 그의 허락을 받은 자가 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피한 경우 당해 프로그램의 호환에 필요한 부분에 한하여 프로그램저작권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 있다”고 규정되어 있습니다.
보안메일을 윈도/IE외에서도 볼 수 있도록 하기 위한 역분석은 바로 이 규정이 허용하는 “호환에 필요한 부분에 한하여” 행하는 역분석입니다. 따라서 정당한 행위입니다.
그리고, 그 결과를 공표하는 것도 정당합니다. 호환을 보장하지 않은 프로그램저작자는 전세계 저작권 법제들이 모두 그리 곱게 보지는 않습니다.
어쨋건, 아무 염려 마시고 “보안메일 IE 외에서 보기” 프로그램을 공표, 배포하시기 바랍니다. 만일에 소포, 이니 등의 회사가 딴지를 걸면, 제가 변호사 등록을 하여 직접 무료로 변론해 드리겠습니다. 안그래도 이니, 소포에 대하여는 여러 건수를 준비 중이기도 하지만…(지금까지 변호사 할 마음이 없어, 등록을 하지 않고 있었으나, 만일 이런 일이 벌어진다면 기꺼이 등록하겠습니다.)
앗.. 감사합니다. 법 내용 중 제12조의2 제2항의1에서 제3자에게 제공하기 위해 사용하는 경우에는 역분석을 사용할 수 없다고 해서, 완전히 금지되는 줄 알았는데, 된다고 하시니 마음이 놓입니다.
우선 힘을 내서 firefox 플러그인을 한 번 만들어서 배포해 보겠습니다. ^^
대환영입니다.
저도 보안메일 그냥 버립니다만, 꼭 배포해 주세요~~~
대단하세요.. ^^ 빨리 배포되길…