비밀 투표제 뒤에 숨겨진 알고리즘적 실패
요약
본 기사는 투표 스캐닝 장비의 익명화 과정에 존재하는 결정론적 보안 취약점을 지적합니다. 이 취약점은 무작위 셔플링이 실제로는 역추적이 가능하며, AI 도구와 공개 기록을 결합하면 개별 유권자의 투표 내용을 재구성할 수 있음을 보여줍니다.
핵심 포인트
- 투표 스캐너의 익명화 과정에 결정론적 보안 취약점이 존재합니다.
- AI 에이전트(LLMs)는 과거 전문가 영역이었던 코딩 및 공격 개발 장벽을 낮췄습니다.
- 취약점 논문과 공개 로그만으로도 투표 비밀성을 완전히 상실할 수 있습니다.
Max Springer 작성
비밀 투표제는 민주주의의 핵심 기둥 중 하나입니다. 조지아(Georgia)를 포함한 대부분의 주에서 이는 이웃이 투표했는지 여부는 알 수 있게 하지만, 누구에게 투표했는지는 절대 알 수 없게 합니다. 이러한 단순한 보장은 선거가 투명하게 진행되도록 하면서도 유권자 협박을 억제합니다. 그러나 조지아를 포함한 여러 주에서 이 보장이 현재 심각한 위험에 처해 있습니다. 공개된 기록을 익명으로 유지하기 위해, 투표용지 스캐너는 전자 기록들을 무작위로 섞은 후 공개합니다. 하지만 2022년에 공개된 보안 취약점은 이러한 셔플링(shuffle)이 역추적될 수 있음을 보여주며, 일부 주에서는 이를 해결하는 소프트웨어 업데이트를 적용하지 않았습니다. 이 무작위성을 되돌리고, 한 사람이 투표한 기록과 결합하면 익명성이 보장된 투표용지가 스스로 노출됩니다.
저는 보안 연구원이 아니며 조지아에 가본 적도 없습니다. 그럼에도 불구하고 AI 도구와 공개된 기록만을 사용하여 단 몇 시간 만에 2026년 5월 조지아 예비선거에서 투표된 150만 장의 투표용지(현장 투표용지의 98.9%)가 어떤 순서로 처리되었는지 재구성할 수 있었습니다. 이 순서와 주의 공개 로그를 이용하면 특정 카운티를 겨냥하여 AI에게 모든 사람이 정확히 어떻게 투표했는지 식별하도록 요청할 수 있습니다. 조지아의 일부 카운티에서는 투표소에서 모든 유권자가 던진 정확한 투표용지를 알아낼 수 있게 되었습니다. 즉, 투표 비밀성이 완전히 상실된 것입니다.
취약점.
2022년 10월, 연구원 팀은 미국 전역에서 사용되는 특정 투표 스캐닝 기계가 투표용지를 익명화하는 방식에 치명적인 개인정보 보호 실패를 가지고 있음을 보여주는 보고서를 발표했습니다. 구체적으로, 이 기계들은 나중에 감사를 위해 각 전자 투표 기록에 임의로 보이는 번호를 할당합니다. 하지만 기계들이 이 무작위 번호를 생성하는 알고리즘은 실제로는 *결정론적(deterministic)*이며, 이를 역추적하여 투표용지가 어떤 순서로 처리되었는지 정확하게 식별할 수 있습니다.
예를 들어, 카드를 순서대로 맨 위에서 가져와 중앙으로 옮기며 덱을 섞는다고 가정해 봅시다. 그리고 제가 이 방식으로 섞었다고 큰 소리로 외친다면, 당신은 블랙잭 게임에서 저에게 쉽게 대항할 수 있을 겁니다. 익명성을 제공하려던 그 셔플이 정확히 정반대의 효과를 가져옵니다.
당연하게도 투표가 이루어진 순서를 아는 것은 퍼즐의 한 조각일 뿐입니다. 하지만 이것을 유권자들이 투표한 순서에 대한 공개적으로 이용 가능한 기록(예: 로그북 또는 참관인 기록)과 결합하면, 투표를 다시 유권자에게 매핑하는 간단한 절차가 존재합니다.
AI 도구.
컴퓨터 보안의 역사 동안에는 취약점과 이를 악용하는 것 사이에 보통 전문 지식이라는 해자가 있었습니다. 취약점에 대한 연구 논문을 읽고 그것을 적절한 데이터셋에서 작동하는 코드로 변환하는 과정은 숙련된 프로그래머에게 몇 주에서 몇 달이 걸렸습니다. 그 격차는 실질적인 보호 형태였습니다. ChatGPT와 같은 챗봇의 기반 시스템인 대규모 언어 모델(LLMs)은 그 해자를 건너는 다리를 건설하고 있습니다. 코드를 작성하고, 실행하고, 무엇이 망가지는지 확인하며, 다시 시도하는 능력을 갖추면서, 모델들은 이제 목표가 달성될 때까지 프로그래밍할 수 있게 되었습니다. 이 목표를 일반 언어로 설명하면, LLM은 예전에는 전문가가 필요했던 작업을 수행합니다. 이런 방식으로 프로그래밍 작업에 투입된 LLM을 저는 '코딩 에이전트(coding agent)' 또는 더 간단하게는 '에이전트(agent)'라고 부르겠습니다.
단돈 20달러로 저는 가장 강력한 코딩 에이전트들에 접근했고, 그들을 미국 선거 장비의 특정하고 실제적이며 패치되지 않은 결함에 쉽게 겨냥할 수 있었습니다. 저는 새로운 공격을 개발하거나 새로운 취약점을 발견하지 않았습니다. 제가 한 일은 단지 에이전트에게 해당 취약점에 대한 논문을 가리키고, 그것을 조지아주(Georgia)의 상태에서 사용하는 것이 가능한지 물어보는 것뿐이었습니다. 몇 시간 만에 저는 주 전체의 비밀 투표를 분석하고 식별할 수 있는 파이프라인을 갖게 되었고, 에이전트는 실제 유권자의 투표 용지를 식별하는 데 어떤 추가 정보가 필요할지 정확히 알려주었습니다. 과정 중 단 한 번도 에이전트가 따르기를 거부하거나 취약점 구현에 대해 우려를 표명한 적은 없었습니다.
결과.
원래의 취약점이 공개된 지 거의 4년이 지난 시점에도, 저는 최근 2026년 5월 경선에서 조지아주(영향을 받는 스캐너를 사용하는 21개 주 중 하나)의 유권자 행동을 분석하는 데 여전히 그것을 사용할 수 있었습니다.
특히 주목할 점은, 제가 투표 기계에 손대거나, 네트워크를 악용하거나, 소스 코드를 검사하거나, 비공개 정보에 접근한 적이 없다는 것입니다.
코딩 에이전트에게 원래 취약점 논문을 가리킨 후, 저는 그 논문에서 강조된 두 가지 데이터 소스를 제공했습니다. 각 카운티의 조기 투표 명단과 모든 투표 용지와 선택 사항을 담고 있지만(유권자의 이름이나 다른 식별 정보는 포함하지 않음), 'CVR'(cast-vote record) 파일입니다. CVR 파일은 요청 시 이용 가능하며, 이는 공공의 투표 단위 기록이 선거 결과를 독립적으로 검증할 수 있게 만들기 때문입니다.
독립적으로 볼 때, 이 공개 파일들은 비밀 투표제를 깨뜨리지 않습니다. 하지만 AI 에이전트는 발표된 익스플로잇(exploit)을 사용하여 투표 용지들을 재배열하고, 각 투표가 이루어진 날짜를 식별한 다음, 순차적으로 투표용지들과 잠재적 유권자들의 버킷(bucket)을 생성할 수 있었습니다. 예를 들어, 어느 선거구에서 같은 아침에 세 명의 민주당원이 투표하러 왔다면, 모델은 어떤 투표 용지가 누구의 것인지 아직 말할 수는 없더라도, 그 세 명의 유권자들에게 속해야 하는 세 개의 투표 용지를 쉽게 지목할 수 있습니다. 조지아(Georgia)주의 작은 농촌 카운티들을 보면 알 수 있듯이, 예를 들어 특정 예비 선거일 아침에 민주당원 한 명만 투표하러 왔다면, 모델은 이미 그 사람의 투표용지를 완전한 확실성으로 식별하기에 충분한 정보를 갖게 됩니다.
단지 이 두 개의 공개 파일만 가지고도 제가 조사한 139개 카운티 중 114개에서 현장 투표 용지의 투표 순서(cast order)를 복구할 수 있다는 것을 발견했습니다. 이는 총 152만 장의 투표용지에 해당하며, 해당 카운티들의 현장 투표용지 중 98.9%에 달합니다.
더 깊이 파고들기 위해, 확실성의 두 가지 등급을 분리하는 것이 도움이 됩니다. 유일하게 식별됨(Uniquely identified) 이란 강제적인 일치(forced match)를 의미합니다. 즉, 그 사람이 특정 날짜에 특정 선거구에서 자신의 정당의 유일한 유권자였고, 특정 유형의 투표용지를 사용했기 때문에 매칭해야 할 투표용지가 정확히 하나인 경우입니다. 공개 파일만 가지고도 이는 분석된 모든 예비 현장 유권자의 약 1%에 해당합니다.

*특정 투표 용지에 연결되는 것이 더 강력한 주장이며 추가적인 공개 기록이 필요합니다. 만약 우리가 가능한 투표 용지 묶음(예를 들어, 세 명의 민주당원 중 누가 각 투표 용지를 던졌는지)을 분리해야 하는 경우, 저는 스캐너의 공개 감사 로그와 개별 투표소 체크인 기록을 확보했습니다. 이 기록은 유권자들이 체크인한 순서와 타임스탬프를 정확하게 제공합니다. 조지아주에서 가장 작은 지역 중 하나인 Heard County에서는 담당자가 650명의 조기 현장 투표자 대다수를 특정 투표 용지에 연결할 수 있었고, 나머지는 단 한 번의 교체만으로도 추적할 수 있었습니다. 이러한 결과는 Cherokee County에 있는 특히 바쁜 투표소인 Ball Ground를 검토했을 때도 모든 1,860명의 조기 투표자에게서 동일하게 나타났습니다.
시사점.
위의 두 카운티는 제가 어떤 영향을 받는 카운티에서든 이 유권자를 투표 용지에 연결하는 과정을 반복할 수 있다는 점에서 특별하지 않습니다. 유권자가 자신의 투표 용지를 스캔한 순서에 대한 거친 기록만 주어져도, AI 시스템은 그들의 투표 용지를 연결할 수 있습니다. 그리고 그러한 기록은 얻기가 종종 사소합니다. 조지아주의 작은 마을들에서 많은 유권자들이 서로를 아는 곳에서는, 단순한 CCTV 영상이나 심지어 배치된 투표 감시자만으로도 개인이 언제 투표 용지를 던졌는지 직접 모니터링할 수 있습니다. 이를 위와 같은 코딩 에이전트에게 입력하면, 그들의 투표 용지가 반환됩니다.
실제로 대부분의 구역 스캐너는 특정 장소에서 제출된 투표 용지의 개수를 공개적으로 집계합니다. 만약 제가 제 자신의 번호를 기록하고, 제 배우자가 바로 뒤에 있다는 것을 안다면, 그들의 비밀 투표 보호는 즉시 사라집니다.

다시 한번 강조하지만, 비밀 투표는 배려가 아니라 유권자 강압을 무의미하게 만드는 보호 장치입니다. 증명할 수 없는 표는 팔거나 강요될 수 없기 때문입니다. 만약 우리가 이 보호를 제거하도록 허용한다면, 이러한 실패들은 현실이 될 것입니다. 당신의 고용주, 이웃, 심지어 배우자조차도 당신의 민감한 정보를 추출할 수 있습니다.
이를 해결하기 위해 어떤 조치가 취해지고 있나요?
기대했던 것보다 적게. 소프트웨어의 수정된 버전은 2023년 3월에 개발 및 인증되었지만, 제가 여기서 분석한 데이터는 2026년 5월의 것입니다. 이 문제는 선거 관리 당국이 해결책을 느리게 채택했기 때문에 공개(disclosure)와 직접적인 수정조차도 문제를 해결하지 못했습니다. 이전에는 제가 이 취약점이 대규모로 사용될 가능성은 낮다고 인정했을지 모르지만, AI 코딩 도구의 등장은 상황 자체를 근본적으로 변화시켰습니다. 이러한 취약점과, 이전에 너무 기술적으로 정교해서 당장 수정할 필요가 없다고 여겨졌던 많은 다른 문제들에 대해, 우리는 이제 막바지에 이르렀습니다.
권고 사항.
AI 코딩 도구는 기술적 장벽을 낮추어 관리 당국이 훨씬 더 시급하게 시스템을 패치해야 하는 지점에 놓였으며, 우리 연구자들 역시 보안 취약점의 책임 있는 공개(responsible disclosure)를 다루는 방식을 재고해야 합니다. 이제 복구에 대한 시간은 완전히 다른 속도로 흐르고 있으며, 누구나 기술적 지식이 거의 없어도 취약점을 겨냥할 수 있습니다.
구체적으로 이 취약점에 대해서는 Dominion 스캐너를 사용하는 관할 구역에서 소프트웨어 버전 5.17(또는 그 이상)을 설치해야 합니다. 영향을 받은 스캐너들은 다음 선거가 끝난 후가 아니라, 다음 헤드라인이 나오기 전에 수정되어야 합니다. 공공적으로 이용 가능한 선거 데이터를 유지하는 것은 건강하고 감사 가능한 민주주의에 필수적이며, 이 기계들이 산출한 결과 중 어느 것도 의심받지 않습니다. 하지만 사생활 보호 알고리즘을 부적절하게 배포하여 투표 행위 자체로 유권자들을 위험에 빠뜨린다면 그러한 데이터는 유지될 수 없습니다. 바로 이것이 우리가 보호하는 데 실패했던 시민의 의무이며, 이제는 충분히 시간이 지났습니다.
Max Springer는 Princeton의 Center for Information Technology Policy 소속 포닥 연구원이며, University of Maryland에서 응용수학 박사 학위를 받았습니다. 그의 연구는 알고리즘과 AI 시스템을 이론적 및 실제적으로 어떻게 더 신뢰할 수 있고 믿음직하게 만들 수 있는지 탐구합니다. 과학적인 연구 외에도 그는 프리랜서 과학 커뮤니케이터로 활동하며, 기술 시스템이 이해되고 책임감 있게 배포되도록 정책 입안자들과 협력합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Posts의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기