기술

eMudhra 인증서 비밀키가 숫자 ‘4’였다…어떤 웹사이트든 위조 가능

Adrian Kessler
Google에서 추가하기

웹사이트의 신원을 보증하는 인증서 가운데 하나의 비밀 키가 숫자 4로 밝혀졌다. 우연히 4로 시작하는 길고 무작위적인 숫자가 아니라, 그저 4였다. 같은 인도 인증기관 eMudhra가 발급한 다른 키 7개도 거의 그만큼 단순했다. 이 키를 가진 사람은 은행부터 이메일 서비스까지 어떤 웹사이트든 인증서를 만들어낼 수 있으며, eMudhra를 신뢰하는 소프트웨어는 이를 진짜로 받아들인다.

브라우저의 자물쇠 표시가 확인하는 것이 바로 이런 인증서다. 위조 인증서가 있으면 카페 와이파이나 해킹된 라우터, 적대적인 국가 네트워크 등에서 인터넷 연결 중간에 끼어든 공격자가 실제 사이트인 척하며 사용자가 보내는 정보를 읽거나 바꿀 수 있다. Chrome, Firefox, Safari와 Microsoft 플랫폼은 이미 이 8개 인증서를 신뢰하지 않도록 조치했다. 하지만 기기에 설치된 다른 소프트웨어 상당수는 아직 그렇지 않다.

이 유형의 일반적인 키는 약 384비트 길이의 무작위 숫자로, 가능한 조합이 대략 10의 115제곱에 이른다. 하지만 Ars Technica가 열거한 eMudhra 키의 길이는 3~8비트에 불과했고, 키 값은 4, 56, 66, 115, 155, 156, 230, 237이었다. 보안 연구원 스콧 헬름(Scott Helme)은 노트북에 저장된 공개 인증서에서 8개 키를 모두 복구했다며 “1초도 걸리지 않았다”고 썼다. 이후 Anthropic의 Claude도 프롬프트 하나만으로 같은 작업을 해냈다고 덧붙였다.

누군가 무엇인가를 훔칠 필요도 없었다. BleepingComputer가 보도한 Mozilla 제출 자료에서 eMudhra는 키 생성 절차에 사용된 스크립트의 버그를 원인으로 지목했다. 스크립트가 취약한 키 세트를 하나 더 만들었고, 직원들이 라벨이 비슷해 이를 실수로 선택했다는 설명이다. 6천만 개가 넘는 디지털 인증서를 발급했다고 밝힌 이 회사는, 문제가 된 중간 인증서 대부분은 실제 운영에 투입되지 않았으며 최종 사용자용 인증서에 서명했다는 증거도 찾지 못했다고 Mozilla에 전했다. eMudhra는 8개 키를 모두 폐기하고 문제가 된 루트 인증서로는 더 이상 발급하지 않고 있다.

브라우저에서의 대응은 쉬운 편이다. Chrome, Firefox, Safari는 사용자에게 알리지 않고 폐기 목록을 내려보내며, 모든 인증서가 공개 인증서 투명성(Certificate Transparency) 로그에 기록되도록 요구한다. 이 키에 연결된 웹사이트 인증서는 그 로그에 한 번도 나타나지 않았으므로, 최신 브라우저는 기본 설정만으로는 위험에 노출되지 않았다. 문제는 그 밖의 모든 곳에 있다. curl 같은 명령줄 도구, Python·Node·Go 같은 프로그래밍 언어, VPN 클라이언트, Docker 컨테이너, 스마트홈 기기는 각자 신뢰하는 인증기관 목록을 보유하고 있다. 이들은 인증서 폐기 여부를 확인하는 경우가 드물고 투명성 로그도 무시한다. 헬름은 Stripe 결제 API용 가짜 인증서를 만들어 시험했고, 그가 테스트한 모든 Linux 및 macOS 기기에서 curl, Python, Node가 이를 받아들인다는 사실을 확인했다.

Go 언어의 암호화 코드를 관리하는 필리포 발소르다(Filippo Valsorda)는 Ars Technica에 “대규모 정리 작업이 필요할 겁니다. 수습하는 데 여러 해가 걸린 OpenSSL 취약점 Heartbleed보다 더 큰 문제죠”라고 말했다. 그는 자체 신뢰 루트 인증서 사본을 포함한 IoT 기기와 Docker 컨테이너, 방치된 Linux 컴퓨터, 유지보수가 끊긴 도구 등에서 “문제가 아주, 아주 오래 이어질 것”이라고 내다봤다. 이 키를 악용하려면 여전히 공격자가 네트워크 경로에 있어야 하므로, 정부나 침해된 사내 네트워크, 공공 와이파이 운영자라면 공격을 시도할 수 있다. Ars에 따르면 암호화 과정에서 이 인증서에 의존하지 않는 Signal, WhatsApp, WireGuard는 영향을 받지 않는다.

이 키는 2025년 4월 인증서가 만들어진 순간부터 복구할 수 있었으며, 그 기간은 약 17개월에 달한다. 투명성 검사를 건너뛰는 소프트웨어를 상대로 누군가 실제로 키를 사용했는지는 알 방법이 없다. 또한 모든 인증서는 2025년 5월 Sectigo의 AAA Certificate Services 루트 인증서로 교차 서명돼, 이를 신뢰하는 시스템의 범위가 넓어졌다.

대부분의 사용자에게 필요한 조치는 업데이트 설치다. 한 연구원이 10월 17일 브라우저 제작사들에 키 문제를 신고했다. Mozilla는 그날 3시간 만에 Firefox에서 해당 인증서를 차단했고, 10월 20일에는 eMudhra 루트 인증서를 제거한 Firefox 158.0.1과 새 ESR 빌드, NSS 3.131.1을 배포했다. Mozilla 엔지니어 데니스 잭슨(Dennis Jackson)이 운영하는 사고 대응 사이트에 따르면 Apple은 10월 19일, Microsoft는 10월 20일 보호 조치를 추가했다. 다만 Ars는 보도 당시 Windows 10의 Edge가 여전히 테스트 서버에 연결되는 것을 확인했다. Go 1.27.3과 1.26.10, pip 26.2.2, uv 0.13.4, certifi 2026.10.19가 출시됐고, Cloudflare는 WARP와 1.1.1.1 앱을 업데이트했다. Linux 배포판들도 새 ca-certificates 패키지를 계속 배포하고 있다. macOS에 내장된 curl은 인증서 파일을 직접 수정하지 않는 한 계속해서 이 키를 신뢰한다.

Chrome은 버전 43에서 Chrome Root Store에서 eMudhra 루트 인증서를 제거할 예정이라고 확인했다. 모든 기기가 업데이트될 때까지, 일상적으로 쓰이는 수많은 소프트웨어와 그럴듯한 웹사이트 위조 사이에는 단 8비트만 놓여 있다.

태그: , , , , ,

Google에서 추가하기

토론

댓글 0개가 있습니다.