수요일, 유럽 집행위원회는 플랫폼과 개인정보를 공유하지 않고 온라인에서 연령을 증명할 수 있도록 설계된 모바일 앱(새 창)을 발표했습니다. EU 관계자들은 해당 앱이 준비되었으며 최고 수준의 개인정보 보호 표준을 충족한다고 밝혔으며, 투명성의 증거로 해당 앱의 오픈 소스 코드를 언급했습니다.
그러나 불과 몇 시간 만에 보안 연구원들이 오픈 소스 코드를 분석하기 시작했습니다. 목요일까지 보안 컨설턴트인 폴 무어(Paul Moore)는 2분도 채 되지 않아 앱의 보호 기능을 우회(새 창)했습니다.

다른 사람들도 그의 발견을 확인했습니다. 앱의 속도 제한 제어 기능은 수정 가능한 파일에 저장되어 있었고, 생체 인식 인증은 간단한 설정 변경으로 끌 수 있었으며, 민감한 자격 증명은 보안 하드웨어 보호 없이도 접근할 수 있었습니다.
집행위원회는 해당 출시 버전이 데모 버전이라며 이러한 발견의 의미를 축소했습니다. 무어와 프랑스 암호학자 올리비에 블레이지(Olivier Blazy)는 Politico(새 창)에 결함을 발견했을 당시 최신 버전의 코드를 테스트하고 있었다고 말하며 반박했습니다.
나중에 집행위원회는 문제가 해결되었다고 밝혔으나, 이번 사건은 이러한 연령 확인 시스템이 얼마나 취약한지를 여전히 보여줍니다.
EU 연령 확인 앱의 기능과 무엇이 잘못되었는지
EU 연령 확인 앱을 통해 귀하는 여권, 국가 신분증 또는 은행과 같이 신뢰할 수 있는 제공업체를 사용하여 연령을 확인할 수 있습니다. 그러면 플랫폼은 영 제로 지식 증명(zero-knowledge proof)으로도 알려진, 기본 개인정보에 접근하지 않고도 귀하가 특정 연령 이상인지 확인하도록 앱에 요청할 수 있습니다.
구현 과정에서 해당 설계의 취지가 훼손되었습니다. EU의 연령 확인 앱은 암호화된 PIN을 민감한 데이터가 보관되는 신원 보관함과 분리된 기기 내 편집 가능한 설정 파일에 저장했습니다. 몇 가지 값을 삭제하고 앱을 재시작함으로써, 공격자는 이전 프로필의 자격 증명을 재사용하면서 새로운 PIN을 설정할 수 있습니다.
반복적인 추측을 방지하는 속도 제한 제어는 동일한 파일에 단순 카운터로 저장되었으며, 이를 0으로 재설정하여 실패한 시도 기록을 모두 삭제할 수 있었습니다. 생체 인식 인증은 단일 부울(boolean) 플래그로 제어되었으며, 이를 true에서 false로 전환하면 확인 과정을 완전히 건너뛰었습니다.
연령 확인을 위해 구축되었으나 안전하지 않음
연구원들이 코드를 사용하여 결함을 노출시킨 후, 관계자들은 해당 앱을 데모 버전으로 재정의했습니다.
여러 개발자들은 민감한 데이터가 현대적 스마트폰에서 사용 가능한 하드웨어 수준의 보호 기능인 보안 인클레이브(secure enclave)에 저장되었어야 하며, 그랬다면 이러한 공격이 훨씬 어려웠을 것이라고 지적했습니다.
하지만 이러한 취약점은 이 특정 앱을 넘어서는 문제를 드러냅니다. 설계상 연령 확인은 안전하지 않은데, 이는 실제 신원을 온라인 활동과 연결해야 하기 때문입니다. 해당 링크는 잠시 동안이라도 어딘가에 저장되어야 하며, 저장되는 위치가 어디든 해커, 정부 및 기초 데이터에 무단 접근을 권한을 얻은 모든 이들의 표적이 됩니다. 그 링크가 더 중앙 집중화되고 재사용 가능해질수록 표적의 규모는 더 커집니다.
EU의 연령 확인법은 회원국 전반에 걸쳐 형성되고 있는 법적 혼란을 대체하는 단일하고 개인정보를 보호하는 표준이 되고자 하지만, 앱이 준비되었다는 집행위원회의 자신감은 성급한 것으로 판명되었습니다. 400명 이상의 개인정보 및 보안 연구원들은 지난 3월 집행위원회에 서한을 보내(새 창) 연령 확인 기술에 대한 과학적 근거가 확립될 때까지 배포를 유예해 줄 것을 요청했습니다.






