안동데일리 국회=조충열 기자)[단독] 4월 25일(월) 오후 2시부터 국회도서관 소회의실에서는 부정선거방지대(약칭, 부방대/황교안 대표) 주관으로 "공직선거제도개혁과 국민주권의 실현"을 위한 심포지엄을 개죄되었다.

소프트웨어 전문가이자 개발자인 장영후 대표는 "사전선거제도, QR코드와 통합선거인명부 운영에서 개인정보 노출 위험성"이라는 주제로 발표를 했다.

내용을 요약하면 "중앙선관위 통합명부시스템 데이터베이스의 장애복구용 로그파일에서 데이터 추출 기능을 활용하면 투표자의 정치적 선택이 표시된 사전투표지 QR코드 안의 일련번호만으로도 투표자의 신원을 역추적하여 알아낼 수 있다."는 것인데 이것이 사실이라면 대한민국은 사이비 민주주의 선거를 한 셈이다.

이와 관련해 중앙선관위는 의혹이 제기된 기술적 사안에 대한 과학적 근거가 뒷받침되는 정직한 답변과 그에 따른 입장 표명이 신속히 있어야 할 것이다.

대한민국의 정체성이라는 국가의 운명과 국민의 정치적 권리인 선거권과 동시에 사생활 보호에 관한 중대 사안으로 실체적 진실 규명에 대한 국민적 요구 더욱 거세질 듯하다.

아래는 장영후 대표의 발표문 전문(全文)이다.


제목 : 사전투표 시 비밀투표 원칙 침해 가능성 고찰 (시스템 시연 포함)

발표자: 장영후 / 2022. 4. 25.(월)

1. 서문

중앙선거관리위원회(이하 선관위 또는 중앙선관위)는 통합명부시스템(또는 전산시스템)을 사용한 사전투표용지 발급과정에서 선거인 (또는 유권자)의 정보와 사전투표지에 인쇄되는 일련번호가 시스템내 연결되어 저장되지 않고 별도로 저장되고 있으며, 각 선거구별 일련번호는 마지막 일련번호만 저장됨으로써 유권자와 일련번호는 연결될 수 없으며, 따라서 기표한 사전투표지 내 QR코드 일련번호를 통해 유권자가 어느 후보에게 기표하였는지 확인할 수 없다고 주장하고 있습니다.

그러나 국제적으로 선거관련 전문가들은 기술적으로 관련 프로그램을 알 수 있는 인력들에 의해 선거인 인증순서(일련번호 발급 순서)를 복원해 낼 수 있다고 주장하고 있으며, 이 발제문에서는 서술된 내용과 시스템 시연을 통해 기술적으로 유권자와 일련번호 연결이 가능함을 제시할 것입니다. 시스템정보로부터 유권자와 일련번호가 연결 가능하다면 기술적 난이도가 높지 않은 사전투표지 QR코드 내 일련번호와 기표된 후보자를 읽는 것으로부터 사전투표한 유권자가 기표한 후보자를 연결할 수 있다는 가능성을 통하여 헌법 제67조, 공직선거법 제167조 및 제278조에 보장된 비밀투표 원칙의 침해 가능성이 있음을 설명하고자 합니다.

2. 전산시스탬에서 데이터 관리

기업이나 정부/헌법/공공 기관에서 매우 중요하게 관리되는 시스템은 운영 및 장애관리에 매우 많은 비용과 인력을 투입하고 있습니다. 투자하는 방법에는 하드웨어를 동일하게 미러링 하여 이중으로 유지하거나 장애 발생시 온전히 원상 복구할 수 있는 기능이 있는 데이터베이스 소프트웨어(이하 DBMS)가 있으며 최고도의 신뢰성이 요구되는 미션 크리티컬한 환경은 오라클 DBMS가 장악하고 있으며 선관위 시스템도 오라클 DBMS를 사용하고 있습니다.

전산시스템이 관리하는 데이터에는 사용자가 업무 수행 시 발생하는 데이터를 관리하는 업무영역 시스템 데이터가 있고 장애 발생시 장애 발생 전 승인된 상태로 데이터를 온전히 복구하기 위하여 DBMS가 자체적으로 관리하는 영역에 로그파일이 있습니다. [그림1]

[그림1] 전산시스템 데이터 저장 형태
[그림1] 전산시스템 데이터 저장 형태

업무시스템에 저장하여 업무에 활용하는 데이터는 최종데이터만 있으며 갱신되는(update) 과정에 있는 데이터는 보관하지 않습니다. 예를 들어 통합명부시스템에 각 선거구별 일련번호는 마지막 일련번호만 남기게끔 동일한 데이터에 대해 계속 갱신하기 때문에 중간과정 일련번호는 없고 최종적으로 남은 마지막 일련번호만 있습니다.

그러나 DBMS가 관리하는 로그파일에는 언제 발생할 지 모르는 장애 상황에 대처하기 위해 또한 사용자나 업무 운영담당자가 실수로 데이터를 잘못 변경하는 경우에 대처하기 위하여 DBMS에서 발생하는 추가/수정/삭제 되는 모든 데이터 기록을 발생순으로 기록하여 저장 합니다. 이러한 로그파일은 모든 데이터 변경기록을 저장해야 하고 필요시 복구를 할 수 있는 관련된 모든 정보를 담아야 하기 때문에 파일크기가 매우 크며, 시스템 성능에 영향을 주기도 합니다. 그러나 이런 기능이 필요한 중요시스템은 복구가능 기간을 설정하고 이 기간 범위내에서 로그파일을 관리합니다.

선관위의 통합명부시스템도 중요한 시스템이기 때문에 이러한 장애 등 복구를 위한 기능이 당연히 적용되어 있습니다. 즉, 사전투표과정에서 발생하는 모든 데이터 변경 기록이 발생순서로도 로그파일에 남아 있다는 것입니다.

3. 사전투표용지 발급 업무처리 절차

사전투표용지 발급 절차는 다음 [그림2]과 같습니다.

[그림2] 사전투표수행 업무 처리절차 및 데이터 변경 내용
[그림2] 사전투표수행 업무 처리절차 및 데이터 변경 내용

1) 신분증 등을 통해 명부단말기에서 신원확인 및 서명을 합니다.

2) 확인된 유권자에 대해 사전투표지 발급을 요청을 하면 전산시스템에서 최종발급 일련번호에 1이 증가한(+1) 일련번호를 추출하고 사전투표지 발급이력에 유권자정보와 “사전투표로 투표 하였음” 표기 및 사용된 일련번호를 최종 일련번호로 갱신합니다. 이 발급 절차 2)는 한 선거구 기준 여러 사전투표소 또는 여러 명부단말기 노트북에서 같은 시점에 요청되었을 때 일련번호 증가에 오류가 생기지 않도록 “차순위 일련번호 추출+발급이력 저장+사용된 일련번호 갱신”이 한 Session(=한 유권자 처리)이 처리 완료가 된 후 처리 해야만 합니다. 이 로직은 복잡하지 않고 단순하기 때문에 처리속도는 전혀 문제없습니다.

사전투표용지 발급 후 시스템에 남아있는 데이터의 예시는 다음 [그림3]과 같습니다.

[그림3] 사전투표 발급 후 시스템 업무 영역 내 데이터 저장 기록
[그림3] 사전투표 발급 후 시스템 업무 영역 내 데이터 저장 기록

위 [그림3]에서 보듯이 선거인 정보 기록에는 일련번호가 없으며 각 선거구별 일련번호를 저장하는 테이블에는 최종 일련번호 하나만 저장 관리합니다. 즉, 전산시스템내 업무영역데이터에는 선거인정보와 일련번호가 직접 연결되지 않은 상태로 관리됩니다.

4. 유권자와 일련번호 연결 방법

전산시스템에는 업무데이터 영역 외 장애 복구를 위한 DBMS 영역에 로그파일이 있습니다. 이 로그파일에 데이터를 저장하는 방식은 업무영역과는 다르며 파일이 용량이 크며, 권한이 없는 사용자에 의한 인위적인 변경이 되지 않도록 보호되어 기록되며, 사용언어 등 시스템 환경에 따라 데이터가 기록됨으로 인하여 로그파일내 데이터는 기록된 환경과 동일한 환경과 DBMS S/W Vendor에 의해서 공급된 프로그램에 의해서만 데이터를 조회할 수 있습니다. 기록 방식 또한 복구를 전제로 하기 때문에 복구를 위해 필요한 모든 정보를 담고 있으며 복구시점 기준으로 그 이후 발생한 모든 데이터를 복구해야 함으로써 발생순으로 기록하는 것이 매우 중요합니다. 발생순서에 입각하여 기록되어야만 복구시점 기준 이후의 데이터에 대하여 발생 순서대로 복구할 수 있습니다. [그림3] 내 업무 영역시스템 내 저장된 최종데이터가 나오기까지 발생한 데이터 변경이력에 대하여 로그파일내 기록된 내용을 Vendor 로그데이터 추출 프로그램을 통해 데이터를 추출 조회해 보면 다음 [그림4]과 같은 형태로 추출할 수 있습니다.

[그림4] DBMS영역 사전투표용지 발급 로그파일 내 추출데이터 (예시)
[그림4] DBMS영역 사전투표용지 발급 로그파일 내 추출데이터 (예시)

위 [그림4] 內 데이터는 연수구을 內 유권자 3명과 연수구갑 2명에 대한 사전투표 발급 로그파일 기록이며 로그파일 內에서 데이터를 추출하게 되면 처리된 업무절차 순서 즉, 발생한 순서대로 추출됨을 알 수 있습니다.

추출된 데이터를 위아래 순서에서 필요한 데이터만 좌우로 변경하는 단순한 작업에 의하여 연수구을 기준 다음 [표1]과 같이 정리될 수 있습니다.

[표1] 연수구을 유권자와 일련번호 정리 결과
[표1] 연수구을 유권자와 일련번호 정리 결과

즉, 유권자와 유권자에게 부여된 일련번호는 업무시스템 데이터가 아닌 로그파일로부터 쉽게 추출될 수 있고 단순한 정리과정을 통해 알 수 있습니다.

5. 투표지분류기 이미지 저장 / 관리, 일련번호 추출 및 기표후보 확인

투표지분류기는 투표지 이미지를 실시간으로 분류기에 붙어있는 노트북에 저장하는 역할을 합니다. 이때 사전투표지는 QR코드가 붙어있는 상태로 저장됨으로써 일련번호와 기표된 후보자가 하나의 이미지에 함께 존재함을 의미합니다. 즉, 일련번호 XX가 누구에게 기표하였음을 말합니다. QR코드에 일련번호는 QR코드 리더기를 통해 쉽게 확인 할 수 있으며, 인천 연수구을 재검표 과정에서 변호인단에 의해 개발된 프로그램이 QR코드 인식을 위해 사용되었던 것을 참조하더라도 이러한 기능을 수행하는 S/W를 개발하는 것은 어려운 일이 아닙니다. 기표된 후보인식 기술 또한 정밀도를 90%로 또는 99.9%로 하는 것에 대한 차이이지 단지 시간과 자금만 투입하면 되며 투표지분류기에 이미 탑재되었듯이 상용화된 기술입니다. [그림5]

[그림5] 투표지분류기 운영장치에 저장되는 기표된 투표지이미지 (화면내 왼쪽)
[그림5] 투표지분류기 운영장치에 저장되는 기표된 투표지이미지 (화면내 왼쪽)

즉, 대량의 기표된 투표지 이미지에서 QR코드 일련번호를 추출하고 기표된 후보를 추출하는 것은 프로그램 개발 필요성의 문제이며 기술적으로 아무런 장애가 없습니다.

다음 [그림6]의 사전투표지 이미지로부터 [표2]와 같이 데이터가 추출될 수 있다는 것입니다.

[그림6] 연수구을 우측여백이 없는 사전투표지 및 QR 리딩 결과
[그림6] 연수구을 우측여백이 없는 사전투표지 및 QR 리딩 결과
[표2] 일련번호와 기표된 후보 연결
[표2] 일련번호와 기표된 후보 연결

6. 결론( 일련번호를 통한 유권자와 기표후보 연결)

장애복구를 위해 시스템에서 관리되는 로그 파일을 통해 유권자의 정보와 발급 일련번호를 연결할 수 있고 QR코드 內 일련번호가 붙어 있는 기표된 투표지 이미지로부터 일련번호와 기표된 후보자를 추출할 수 있고 이 두 정보를 결합하면 사전투표를 한 어느 유권자가 누구에게 기표하였는지는 추적할 수 있음을 설명하였고 다음과 같습니다.

[표3] 선거인ID + 선거인명 + 일련번호 + 기표한 후보
[표3] 선거인ID + 선거인명 + 일련번호 + 기표한 후보

 

선관위가 415 총선 후 백업하여 보관하고 있는 DBMS 로그파일에서 데이터를 추출하면 배춧잎 투표지, 여백이 없는 투표지 등 모든 사전투표한 유권자의 투표지분류기로부터 저장된 이미지를 활용하여 기표한 후보를 특정할 수 있다는 것이며, 이는 다음과 같이 헌법 및 공직선거법 내 비밀투표 원칙에 대한 침해의 가능성이 있다는 것입니다.

[그림7] 헌법 제67조 1항
[그림7] 헌법 제67조 1항

[별도 시연 내용]
간략화 된 사전투표시스템에서 사전투표지 발급 및 로그파일로부터 데이터 추출(투표지 이미지로부터 기표후보 인식 시연은 제외)


◆사전투표 시 비밀투표 원칙 침해 가능성 고찰 (시스템 시연 포함) 이미지(총6매)

2022. 4. 25.(월)

발표자: 장영후(소프트웨어 전문가, 개발자)

 

 

저작권자 © 안동데일리 무단전재 및 재배포 금지