이더리움 재단의 Trillion Dollar Security(1TS) 이니셔티브는 WEBCAT의 지속적인 개발을 지원하기 위해 언론 자유 재단(Freedom of the Press Foundation, FPF)에 지원금을 할당하게 되었음을 자랑스럽게 발표합니다. WEBCAT은 등록된 웹사이트에서 제공하는 코드가 개발자가 게시한 코드와 일치하는지 브라우저가 검증할 수 있게 해주는 오픈 소스 도구입니다. 이 지원금은 또한 이더리움 지갑과 앱에 이러한 보호 기능을 도입하는 데 도움이 될 것입니다.
프런트엔드 검증 격차 해소
이 지원금은 오늘날 웹 애플리케이션 보안 방식의 격차를 해소하는 것을 목표로 합니다. HTTPS는 사용자가 연결하는 사이트를 인증하고 연결을 암호화하지만, 사이트에서 제공하는 코드가 개발자가 게시한 코드와 일치한다는 것을 증명하지는 않습니다. 독립적인 무결성 검사가 없다면, 브라우저는 아무런 경고 없이 변조된 프런트엔드를 실행할 수 있습니다.
이더리움 사용자의 경우, 위험은 앱의 웹사이트 자체에 있습니다. 사용자가 방문할 때 브라우저는 해당 사이트의 코드를 로드하고 실행합니다. 그곳의 변조된 코드는 수신자 주소를 스왑하거나 페이지에 표시된 것과 다른 내용에 서명하기를 요구할 수 있습니다. 사용자의 지갑은 연결만으로는 페이지가 변조되었는지 여부를 판단할 수 없습니다.
Trillion Dollar Security는 프런트엔드 해킹을 인프라 위험으로, 검증 가능한 프런트엔드를 다음 단계로 파악했습니다. 손상된 웹 인터페이스는 사용자를 공급망 공격과 UI 조작에 노출시킬 수 있으며, DNS 하이재킹과 같은 사건의 영향을 증가시킬 수 있습니다.
WEBCAT 소개
웹 기반 코드 보증 및 투명성(web-based code assurance and transparency)의 약자인 WEBCAT은 등록된 사이트에서 제공하는 리소스가 서명된 매니페스트와 일치하는지 브라우저가 검증할 수 있게 해줍니다. 검증에 실패하면, 현재 알파 버전의 Firefox 확장 프로그램은 페이지 로드를 차단하고 경고를 표시합니다.
개발자는 각 릴리스에 포함된 파일 및 기타 자산을 설명하는 매니페스트에 서명합니다. 분산되고 검증 가능한 등록 시스템이 공개 기록을 유지합니다. 각 참여 사이트에 대해, 해당 기록은 사이트의 승인된 서명 신원 및 유효성 검사 규칙을 지정하는 등록 정보의 암호화 지문을 보관합니다. 확장 프로그램은 주기적으로 기록의 Snapshot을 다운로드하고 검증하므로, 매 방문 시 제3자에게 연락하지 않고도 로컬에서 등록된 사이트를 검증할 수 있습니다.
FPF가 WEBCAT을 개발한 이유 중 하나는 향후 버전의 SecureDrop에 검증 가능한 브라우저 코드가 필요하기 때문입니다. SecureDrop은 언론인과 익명 제보자 간의 안전한 통신을 위한 FPF의 오픈 소스 제보 시스템입니다.
오늘날 SecureDrop은 제보 내용이 업로드될 때 뉴스룸의 서버에서 이를 암호화합니다. 서버는 업로드 중에 암호화되지 않은 콘텐츠를 처리하지만, 제보 내용은 암호화된 형태로 저장합니다. FPF는 향후 버전의 SecureDrop을 위한 종단간 암호화 프로토콜을 개발하고 있습니다. 의도된 설계에 따르면, 제보자의 브라우저가 메시지 내용을 전송하기 전에 암호화하므로, 서버는 서버에 의해 암호화될 때까지 메모리에 평문을 보관하는 대신 암호문을 저장하게 됩니다. 이 프로토콜은 아직 개발 중이며 파일 첨부 기능은 아직 지원하지 않습니다.
암호화 코드는 여전히 서버에서 제공되므로, 손상된 서버는 암호화 전에 콘텐츠를 가로채는 변조된 코드를 보낼 수 있습니다. WEBCAT은 이러한 종류의 변조를 탐지하고 차단하도록 설계되었습니다. FPF는 또한 개념 증명(proof-of-concept) 통합을 통해 다른 브라우저 기반 보안 애플리케이션과 함께 WEBCAT을 테스트했습니다.
이더리움 사용자가 브라우저 기반 앱 프런트엔드와 상호 작용할 때도 동일한 코드 무결성 위험이 적용되며, 이것이 바로 제보자와 언론인을 보호하기 위해 구축된 도구가 지갑과 앱에도 적합한 이유입니다.
지원금의 사용처
이 지원금은 지갑이 통합할 수 있는 WEBCAT 검증 라이브러리의 개발에 자금을 지원합니다.
라이브러리가 포함된 지갑은 등록된 사이트를 검증할 수 있으므로, 사용자는 별도의 확장 프로그램을 설치하지 않고도 보호를 받을 수 있습니다. 이 지원금은 또한 크롬 및 기타 Chromium 브라우저 지원에 대한 연구, 앱에 WEBCAT을 추가하는 팀에 대한 지원, 독립적인 보안 감사, 그리고 지갑 개발자가 따를 수 있는 표준을 제공하기 위한 이더리움 의견 요청(Ethereum Request for Comments, ERC) 표준에 자금을 지원합니다.
이 라이브러리는 Clear Signing을 포함한 다른 1TS 작업을 보완할 것입니다. Clear Signing은 사용자가 무엇을 승인하고 있는지 이해하도록 돕는 반면, WEBCAT 통합은 등록된 앱의 프런트엔드가 서명된 매니페스트와 일치하는지 지갑이 검증하는 데 도움을 줄 것입니다.
지갑 및 앱 팀의 다음 단계
이러한 검증을 지갑에 도입하려면 양측 모두의 채택이 필요합니다. 지갑 확장 프로그램은 라이브러리를 통합해야 하며, 앱 팀은 도메인을 등록하고 각 릴리스마다 서명된 매니페스트를 제공해야 합니다. 프런트엔드 무결성에 관심이 있는 지갑 또는 앱 팀의 일원이라면 trilliondollarsecurity@ethereum.org로 연락해 주시기 바랍니다.