2001년도 선관위 자동개표기 운용프로그램 BMT에 참여했던 개발자가 더플랜을 보고 (1):
http://www.clien.net/cs2/bbs/board.php?bo_table=park&wr_id=54637631CLIEN
저는 2001년도에 한틀 시스템및 윤익C&C 같은 수표분류 금융 장비 업체에 OCR 모듈을 공급하는 S/W 개발사인 D업체에 근무했었고
한틀 시스템의 HDP-2000 및 윤익C&C 장비에 OCR 모듈을 연동하여 수표를 분류하는 프로그램을 개발했었습니다.
2001년 선관위 자동개표기 선정 Benchmark Test에는 윤익C&C와 같이 참여했었고 윤익C&C 장비의 성능 및 안정성 부족으로 경쟁사인 한틀시스템이 선정되는 과정 전체를 지켜보았습니다.
2012년도에 자동개표기로 사용된 장비는 한틀시스템의 HDP-2000을 향상시킨 HDP-2000V입니다.
http://www.saramin.co.kr/zf_user/recruit/company-info/idx/5483968 -> 연혁 및 실적 펼쳐보기해야 나옴
인터넷을 검색해보니 2012년도 대선때까지는 HDP-2000V가 사용되었었네요.
http://www.ohmynews.com/NWS_Web/View/at_pg.aspx?CNTN_CD=A0001899858
1. 앞글에 밝힌 바와 같이 혼표 자체가 나올 수 없습니다.
이유는 앞글에 쓴 선관위 BMT에서 요구사항에 나와있는데, 기표가 정확히 된 유효표일지라도 OCR 모듈에서 이미지 스캔이 명확하지 못하여 인식을 제대로 못해서 미분류 투표함으로 보낼 수는 있습니다.
2. 첨부한 그림은 제가 금융권 프레젝트용으로 HDP-2000 장비에 OCR 엔진을 적용한 운영 프로그램을 개발했던 플로우 차트를 쉽게 설명한 겁니다.
(이걸 그리려고 15년도 더 된 소스코드를 찾기 위해 한참 CD 보관함을 뒤졌네요.)
투표기 분류기는 투표용지를 스캔해서 PC로 전송하고 PC의 명령을 받아서 해당 분류함에 분류하는 것이지 투표용지에서 어느후보 칸에 기표가 된건지 인식하는 기능은 없습니다.
즉 PC에서 돌아가는 운영 프로그램의 OCR 모듈에서 투표용지의 이미지를 인식하여 어느 분류함으로 보낼지 결정합니다.
3. 저 장비를 운영할 때 가장 까다로운 부분은 첨부한 그림에서 투표용지가 연결함을 다 통과할 때까지 PC에서 몇번 분류함으로 분류하라는 명령을 못받으면 벨트 라인이 멈추게 되어 투표용지들을 전부 미분류함으로 사출(PURGE)하고 장착부에 장착하여 처음부터 다시 반복해야 합니다.
(PC의 처리 속도가 장비에서 투표용지가 벨트를 타고 가는 속도를 못따라 갈 때 발생합니다.)
2012년 대선에서 부정이 없었다고 가정했을 때, 혼표 문제가 발생했다면 3번 사태가 생겼다고 봐야한다고 생각합니다.
이 경우 벨트에 있던 모든 투표용지를 사출하고 분류함에 있던 투표용지들까지 모두 합하여 다시 장착부에 꽂아 분류 작업을 시행했는지 그 당시 투표참관하셨던 분들이 있다면 댓글로 알려주시기 바랍니다.
이유는 금융권에서 수표 분류를 위해 저 장비를 사용할 때에 3번의 사태가 발생하면 모든 수표를 다시 장착부에 꽂아 다시 분류 작업을 시행하는 가이드 라인이 있었던 걸로 기억하기 때문입니다.
1분당 분류 속도 200매일 때 저 장비를 테스트하며 운영해보면 모니터에 스캔된 이미지가 착착착 바뀌는 데 사실 눈한번 깜빡거리면 놓치기 쉽상이었습니다.
18대 대선때엔 1분당 300매 정도로 분류했다고 하니 혼표가 소수 발생해도 모니터를 보던 참관인들이 충분히 놓칠만 하다고 생각합니다.
만약에 아주 만약에라도 위에 언급한 3번 사태가 발생하지 않았는데도 혼표가 생겼다면 운영 프로그램이 조작되었던가 아님 장비와 PC의 동기화가 이루어지지 못해 오류 상황이 발생했는데도 장비가 서지 않았다는 거죠.
OCR 문자인식 업체에 근무해보신 개발자들은 동의하겁니다.
상용으로 공급하는 OCR 라이브러리가 이미지가 깨끗하지 못해 인식을 못해서 에러처리는 할 수 있어도 기표용지의 칸에 찍힌 도장 위치를 잘못 인식할 수는 없다는걸 말입니다.
아무리 생각해봐도 혼표 발생은 이해가 안됩니다.
해킹을 했다면 경우의 수가 너무 많아서 제기하기도 힘들 지경입니다.
기기스펙 내에서는 뭐든지 가능한 거 아닌가요?
사람이 불건전 o
해킹 되었다면 bmt 이후일테니
그런데 자기 bmt 때 문제 없었다는 의미없는 얘기는 굳이 왜 하는지 모르겠네요
1편부터 보셨다면 지금 저 기기의 약점으로 인해 미분류표가 일정 비율로 발생할 수 밖에 없어서 그 점을 파고들어 교묘히 혼표 섞어치기를 했을 가능성이 있을 수 있다라는 의도로 쓴글입니다만?
님땜에 빡쳐서 나름대로 시간을 투자해서 쓴글인데 막 지우고 싶어지네요.
해킹의 가능성에 대해 언급하기엔 경우의 수가 너무 많아서 제기하기도 힘들지경입니다.
개인적으론 운영프로그램과 펌웨어 모두 안건드리고 기기에서 어느분류함으로 보내라는 함수 하나만 후킹하거나 COM Port 필터드라이브 하나 제작해서 PC에 올려서 한게 아닌가 하는 추론을 해봅니다.
해당 프로그램이나 펌은 건드리지도 않으니 당연히 무결성 검사에 걸리지 않을거고, 장비에 몇번 분류함으로 가라는 신호를 조작할 수 있으니까요.
비아냥 할려고 단 댓글이 아니라
어차피 해킹하면 기존 시스템은 의미가 없다는 말인데
기분 나쁘셨다면 죄송합니다
저도 발끈해서 지운다라고 한 치졸함을 보인 부분은 사과드립니다.
시간이 아까워서도 못지웁니다. ㅜㅜ
#CLiOS
한가지 질문 있습니다.
이 장비를 실제로 구동할때는 깨끗한 PC에 구동할때 딱 프로그램을 올려서 구동하는 방식인가요?
아니면 PC에는 미리 프로그램이 세팅이 된 상태에서 자리 잡고 구동을 하는건가요?
혹시 이것에 대한 기준도 있었나요?
제가 글을 2편 작성한 이유는 저 장비는 무효표가 아님에도 불구하고 미분류함으로 분류하는 약점이 존재할 수 가능성을 가질 수 있다는 겁니다.
더팩트를 보고 2001년도와 비교해서 지금도 그 비율이 거의 변하지 않았다는 팩트에 충격받았었습니다.
만약에 아주 만약에라도 부정이 이루어졌다면 작전은 그 부분에서 시작된게 아닌가 의심이 갑니다.
저 기기는 2001년도 당시 PC에서 PS/2 COM Port를 통해 몇번 분류함으로 보내라는 명령을 받아 분류 처리를 했고, 이러한 운영프로그램 무결성 검사를 피하기 위해 키보드/마우스/프린터 같은 주변기기 교체작업을 위해 설치한 필터 드라이버나 후킹 모듈에서 COM Port에서 보내는 데이터를 교묘히 바꾸지 않았나 하는 소설을 써봅니다.
어차피 ocr데이타가 pc에 남고 pc로직이 무결하다면 그 데이타는 어느 분류로 보냈는지도 남아 있을 것이고
그것을 취합하면 결국 실제 분류된 수치와 정확히 일치 해야만 하겠는데
만약 실제로 이게 서로 차이가 난다면
(1) 명령을 받았어도 실제로 hw가 에러가 발생하여 오분류를 했다거나
(2) 말씀하신대로 pc의 프로그램에서 지시하는 명령 신호를 후킹하여 지시와 전혀 다른 임의의 지시신호를 장비에 쏴버리거나 했을 수 있겠네요.
그러나 (1)의 경우는 251개의 hw가 동일한 오류가 있다는 것은 상상하기도 싫네요.
여하튼 결론은 기계는 믿을게 못된다 이고 말이죠.