Remote Attestation Should Not Be Tolerated
원격 증명은 용인되어서는 안 됩니다
원격 증명(Remote Attestation)은 기기가 실행하는 소프트웨어를 외부 서비스가 확인하는 기술입니다. 글쓴이는 은행 앱과 게임 치트 방지 등에 쓰이는 이 기술이 사용자 기기의 통제권을 플랫폼과 서비스 제공자에게 넘긴다고 비판합니다. 댓글에서는 사기와 악성 앱을 막는 보안 효과, 선택권과 접근성을 제한하는 비용을 함께 따집니다.
- 주제
에디터 노트
원격 증명이 사기와 악성 앱의 비용을 높인다는 반론은 구체적입니다. 사이드로드를 악용한 은행 계좌 탈취와 치트 방지처럼 실제 방어 목적이 있지만, 그 효과가 대체 운영체제와 가상 환경을 배제하는 조건까지 정당화하는지는 별도 쟁점입니다. 댓글에서도 은행의 책임 회피와 사용자 보호가 뒤섞인다는 경험담, 은행 업무가 사실상 필수 서비스라는 반론이 나옵니다. 원격 증명의 범위를 일괄 평가하기보다 누가 기준을 정하고 사용자가 어떤 대체 경로를 갖는지가 논쟁의 초점입니다.
AI 요약
원격 증명은 다른 기기가 어떤 소프트웨어를 실행 중인지 외부에서 확인하는 기술입니다. 보통 하드웨어에 기반해 우회하기 어렵습니다. 글쓴이는 이를 사용자가 기기에 설치한 운영체제나 앱을 제3자가 판별하고, 기준에 맞지 않으면 앱 실행을 거부하는 장치로 설명합니다. 예로 Google Play Integrity를 들며, 은행과 정부 앱이 Google이 승인한 Android인지 확인하는 데 주로 쓴다고 말합니다. Apple App Attest와 게임의 치트 방지 시스템도 같은 범주에 넣습니다.
글쓴이의 비판
글쓴이는 원격 증명이 내세우는 보안보다 기기 통제권을 누구에게 주는지가 문제라고 주장합니다. 사용자가 수정한 Android나 대체 운영체제, 에뮬레이터를 쓰면 앱이 실행을 거부할 수 있습니다. 기기를 소유한 사람이 아니라 Google 같은 외부 권한자가 무엇을 정당한 소프트웨어로 인정할지 결정한다는 지적입니다. Volla의 Unified Attestation도 권한 주체만 바꿀 뿐 같은 문제를 해결하지 않는다고 봅니다.
글쓴이는 개인 기기를 몸의 연장으로 보고, 사용자가 코드를 확인하고 수정하거나 다시 빌드하며 복사본을 배포할 권리까지 기기 소유권에 포함해야 한다고 주장합니다. 앱 개발사도 사용자가 자기 기기에서 앱을 어떤 방식으로 실행할지 막아서는 안 된다는 입장입니다. 원격 증명이 사용자에게 보안을 제공한다는 주장에도 반문합니다. 사용자를 기기에서 배제한다면 그 보안은 누구를 위한 것이냐는 질문입니다. 글쓴이는 현재 소비자용 데스크톱에서 원격 증명이 쓰이지 않는다고 봤지만, 게임 치트 방지에도 쓰인다는 지적을 듣고 본문을 고쳤습니다.
Lobsters 반응
- @pushcx — 원격 증명을 보안이라는 이름으로 부르는 데 대한 글쓴이의 비판은 대체로 맞지만 충분하지 않습니다. 원격 증명이 막으려는 흔한 공격도 있습니다. 공격자가 사용자에게 전화해 기기가 이미 해킹됐다고 거짓말하고, 문제를 고쳐 주겠다며 앱을 사이드로드하게 만듭니다. 악성 앱은 앱 샌드박스를 벗어나거나 접근성 기능을 악용해 은행 앱 인증 정보를 훔칠 수 있습니다. 스토커웨어도 피해자에게 감시 앱을 설치하도록 유도합니다. 앱 심사 기관은 손전등 앱이 연락처에 접근하는 식의 과도한 권한 요청을 꽤 잘 막습니다. 원격 증명은 이런 위험을 줄이는 효과와 사용자의 선택권을 제한하는 비용이 함께 있는 보안 수단입니다. 이 보호가 단점보다 가치가 낮은 이유를 다루는 글도 보고 싶습니다.
- @lumi — 작성자입니다. 저는 교육 말고는 대안이 없다고 생각합니다. 사용자는 이런 사기에 속지 않고 앱 권한을 살피는 법을 배워야 합니다. 쉽지 않다는 점은 알지만, 컴퓨터를 잘 모르는 사람을 기준으로 보안을 설계하면 기기 통제권은 다른 사람에게 넘어갑니다. 정부와 고용주가 앱 설치를 강요한다면 반대하고 금지해야 합니다. 내 기기라면 예외 없이 내가 통제해야 합니다. 앱을 가상 환경에 격리하고 권한을 주지 않거나 가짜 권한과 데이터를 제공하는 방법도 좋습니다. 원격 증명은 은행 앱이 가상 환경에서 실행되지 못하게 합니다.
- @pushcx — 교육을 이야기한다면 고전 논문 "Human Error: models and management"와 Sidney Dekker의 "Safety Differently"를 읽어볼 만합니다. 숙련된 작업자를 위한 안전 설계에는 poka-yoke와 SHELL 모델 같은 방법도 있습니다. 앱을 완전히 격리하면 확대, 글자와 버튼 크기 조정, 번역, 화면 읽기, 음성 입력, 시선 추적 같은 보조 기능이 제한됩니다. 앱 사이 복사와 붙여넣기, 사진과 파일 이동, 화면 캡처와 공유, 비밀번호 관리자, 검색 같은 기능도 영향을 받습니다.
- @orib — 가장 흔한 사기는 가족인 척하며 돈을 보내 달라고 전화하는 방식입니다. 원격 증명은 이 공격을 막지 못합니다. 비기술적인 가족에게 운영체제를 백도어가 있는 것으로 바꾸도록 안내하는 공격은 시간과 일대일 기술 지원이 많이 들어 현실성이 낮습니다. 사용자가 이미 원격 증명된 자격 증명을 공격자에게 맡기는 편이 공격 비용도 낮습니다. 원격 증명은 비용이 큰 공격에는 약한 방어지만 사용자를 대형 기술 기업에 묶어두는 데는 효과가 있습니다. 국가 감시 대상인 언론인이라면 운영체제가 백도어에 감염되지 않았는지 확인하는 데 도움이 될 수 있지만, 현재 방식은 사용자가 직접 선택한 운영체제 빌드를 보장하지 못하고 공급업체의 강제 업데이트도 막지 못합니다.
- @bakkot — 저는 사기 방지 업무를 했습니다. 원칙에 따른 반론부터 말하겠습니다. 자기 기기에서 원하는 소프트웨어를 실행할 자유가 있듯이, 특정 활동에 참여하기 위해 특정 소프트웨어를 실행하지 않는다고 약속하고 이를 증명할 자유도 있습니다. 스포츠에서 약물 검사를 하는 것처럼 은행 업무나 경쟁 게임에도 그런 약속이 필요할 수 있습니다. 실질적인 이점도 있습니다. 악성 앱을 설치하도록 설득당해 평생 모은 돈을 잃는 사람이 있고, 원격 증명 없는 온라인 경쟁 게임은 치트에 잠식됩니다. 은행은 휴대전화에 복제하기 쉬운 카드를 저장하는 일을 꺼립니다. 원격 증명은 이런 문제를 불가능하게 만들지는 않지만 공격 비용을 올립니다. 원격 증명을 없애자고 설득하려면 같은 이점을 주는 대안도 내놓아야 합니다.
- @mccd — 그렇다면 언론인이나 내부고발자, 인권 활동가가 개인정보 보호를 위해 GrapheneOS 같은 운영체제를 쓰면서도 은행 업무를 할 수 있어야 합니까? 설치는 허용하되 은행 업무 같은 기본 기능은 포기해야 합니까?
- @bakkot — 원하는 운영체제를 쓸 수 있어야 합니다. 은행도 신뢰하지 않는 운영체제에서 모바일 뱅킹 서비스를 제공하지 않을 권리가 있습니다.
- @mccd — 모든 은행이 원격 증명만 쓴다면 실제로 Google Android나 iOS 외에는 선택할 수 없습니다. 사용자가 많은 플랫폼에만 은행이 서비스를 제공하고, 은행 서비스가 있는 플랫폼만 사용자가 선택하게 됩니다. 결국 양강 구도가 더 굳어집니다.
- @dutc — 새 사업용 은행 계좌로 돈을 옮겼다가 내부 통제에 걸려 계좌가 잠겼습니다. 사기를 당했거나 강요받아 송금한 것인지 확인하려고 30분 동안 긴 질문에 답해야 했습니다. 제 통제 아래 있는 계좌에서 새 계좌로 돈을 옮기는 것뿐이라고 반복해도 질문을 건너뛸 수 없었습니다. 은행을 탓하지는 않습니다. 다만 이 절차가 보안을 위한 것인지 책임 회피를 위한 것인지 궁금합니다. 은행은 사기 피해를 막는 데보다 문제가 생겼을 때 법적으로 책임을 줄이는 데 더 관심이 있어 보입니다. 이런 정책에 맞서려면 기술을 반대하는 것보다 기관의 책임을 넓히는 편이 나을지도 모릅니다.
- @ubernostrum — 기업 보안팀은 대개 자유를 없애려는 악당이 아닙니다. 이용자가 피해를 보는 모습을 보고 대중용 컴퓨터에 안전장치를 넣자고 제안하다가 독재자 취급을 받는 경우가 많습니다. 원격 증명은 공개키 암호의 직접적인 응용입니다. 이를 금지하면 은행 앱의 악용 사례와 저항 운동가들이 서명된 암호화 메일을 요구하는 사례를 법이나 규칙으로 어떻게 구별할지 문제가 생깁니다. 내 기기를 소유한다고 해서 다른 사람의 기기가 내 기기와 어떤 조건으로든 연결되도록 요구할 권리가 생기지는 않습니다. 상대방도 자기 기기에 어떤 연결을 허용할지 정할 권리가 있습니다.
- @msangi — "누구를 위한 보안인가?"라는 질문은 옳습니다. 원격 증명은 사용자가 자기 기기에서 할 일을 제한할 때 문제가 되지만 사용자에게 이익을 줄 수도 있습니다. 제가 아는 유일한 사례는 Apple의 Private Cloud Compute입니다. 사용자는 서버에서 어떤 코드가 실행되는지 확인할 수 있습니다.
원문: 개인 블로그 / 번역·요약: Trawling