
Table of Contents
Gem Wallet은 Cure53의 심층 보안 검토를 통과했으며, 지갑의 Rust 코어와 iOS 및 Android 앱에서 심각하거나 높은 수준의 문제는 발견되지 않았고 중간 수준의 문제도 모두 수정되거나 완화되었습니다. 최종 보고서는 2026년 10월 21일 자로 작성되었습니다. 사용자에게는 Gem Wallet에서 안심하고 암호화폐를 보관하고, 보내고, 스왑할 수 있는 이유가 하나 더 생긴 셈입니다.
Cure53이란 무엇인가요?
Cure53은 2007년부터 애플리케이션 보안 감사를 전문으로 해 온 베를린 기업입니다. 팀에는 30명의 독립 전문가가 모여 있으며, 회사는 웹사이트에 130건이 넘는 감사 보고서를 공개했습니다.
Cure53은 감사 외의 활동으로도 유명한데, 웹 애플리케이션을 XSS 공격으로부터 보호하는 오픈 소스 도구 DOMPurify를 만든 곳이 바로 이 팀입니다. 감사를 맡았던 프로젝트로는 1Password, Mullvad VPN, Proton Pass, Threema 등이 있습니다.
Cure53이 Gem Wallet에서 검토한 내용
2026년 9월, Cure53의 시니어 테스터 4명으로 구성된 팀이 13일 동안 Gem Wallet 버전 2.114.40의 침투 테스트와 소스 코드 감사를 진행했습니다. 감사는 화이트박스 방식으로 이루어졌으며, Cure53은 소스 코드 전체에 접근해 코드를 검토하고 iOS 및 Android 릴리스 빌드를 테스트했습니다. 백엔드는 이번 감사 범위에 포함되지 않았습니다.
감사는 두 앱에서 키를 보호하는 Rust 코어에 집중했습니다.
- 암호화된 키스토어: 지갑이 비밀 정보를 암호화, 저장, 삭제하는 방식과 이 정보가 Rust 코어와 앱 사이에서 전달되는 방식.
- 키와 서명: 비밀 문구 가져오기, 계정 파생, 거래 서명.
- 비밀번호 보호: iOS 및 Android 앱이 지갑 비밀번호를 저장하고 사용하는 방식.
Gem Wallet 감사 결과
Cure53은 심각하거나 높은 수준의 문제를 발견하지 못했습니다. 21건의 문제 중 중간 수준의 문제 전부를 포함한 17건이 이미 수정되거나 완화되었으며, Cure53은 후속 검토에서 각 수정 사항을 확인했습니다.
- 심각 - 0건
- 높음 - 0건
- 중간 - 6건 (모두 수정 또는 완화)
- 낮음 - 10건 (8건 수정)
- 정보 - 5건 (3건 수정)
중간 수준의 문제는 기기 자체의 권한 확인과 관련된 것으로, 예를 들어 앱 잠금이 기본적으로 켜져 있지 않았고 루팅된 Android 휴대폰에서는 비밀번호 확인을 우회할 수 있었습니다. 이 문제들은 모두 잠금 해제되었거나 루팅된 휴대폰이 공격자의 손에 있거나, 사용자가 직접 악성 앱을 설치해야만 악용될 수 있었습니다. 남은 4건은 낮은 수준 또는 정보성 보안 강화 제안입니다.
Gem Wallet이 키를 보호하는 방법
Cure53은 가져오기, 암호화 저장, 계정 파생, 서명, 내보내기, 삭제에 이르기까지 지갑의 비밀 정보를 처음부터 끝까지 추적하고 그 기반을 확인했습니다.
- 두 앱을 위한 하나의 Rust 코어: iOS(Swift) 앱과 Android(Kotlin) 앱은 같은 Rust 코어를 공유합니다. 일상적인 서명에서는 복호화된 개인 키가 Rust 안에 머무르며, 앱은 서명된 거래만 받습니다.
- 저장 데이터의 강력한 암호화: 각 비밀 정보는 Argon2id로 파생한 키를 사용해 AES-256-GCM으로 암호화되며, 파일 헤더도 함께 인증됩니다. Cure53은 Argon2id 매개변수가 현재 권장 사항에 부합하며 nonce 재사용이 없다는 점을 확인했습니다.
- 보호된 비밀번호 저장: 지갑 비밀번호는 iOS Keychain 또는 Android Keystore에 보관됩니다.
- 안전한 난수: 비밀 문구, nonce, 솔트는 안전한 난수 소스에서 생성됩니다.
- 56개 체인에서의 주소 검사: 파생 테스트는 고정된 예상 주소를 사용하며, 비밀 문구를 사용하는 56개 체인 모두에서 주소가 일치했습니다.
감사 후 수정한 내용
수정 사항 대부분은 앱 잠금을 강화합니다. 이제 Gem Wallet은 지갑을 만들거나 가져올 때 앱 잠금을 켜도록 제안하며, 앱 잠금이 켜져 있으면 지갑을 삭제할 때 비밀번호나 생체 인식을 요구합니다. Android에서는 이제 지갑 비밀번호가 항상 Android Keystore 키로 보호되고, 앱 잠금이 켜져 있으면 이 키를 쓸 때 기기 PIN이나 생체 인식이 필요하므로 Cure53이 루팅된 휴대폰에서 발견한 우회 경로가 차단됩니다.
앱 자체도 강화했습니다. Android에서는 이제 DApp이 다른 앱이 가로챌 수 없는 검증된 gemwallet.com 링크를 통해 Gem으로 돌아옵니다. iOS에서는 비밀 문구와 개인 키가 스크린샷, 화면 녹화, 앱 전환기에서 숨겨집니다. Rust 코어에서는 이제 비밀 문구와 파생된 키가 사용 직후 메모리에서 삭제됩니다.
사용자에게 중요한 이유
Gem Wallet은 100% 오픈 소스 논커스터디얼 지갑으로, 개인 키는 오직 사용자의 기기에만 저장되며 우리 팀을 포함해 누구도 접근할 수 없습니다. 모든 코드가 GitHub에 공개되어 있어 누구나 감사를 받은 버전과 그 이후의 수정 사항을 검토할 수 있습니다.
오픈 소스 코드는 지갑이 어떻게 만들어졌는지 보여 주고, 독립 감사는 지갑의 보안을 확인해 줍니다. 이 둘이 함께 사용자에게 가장 중요한 것, 즉 자신의 암호화폐가 오직 자신의 통제 아래 있다는 확신을 줍니다.
전체 Cure53 보고서 읽기
📄 Gem Wallet Cure53 감사 보고서 (PDF)
📄 Gem Wallet Cure53 감사 요약 (PDF)
이제 CertiK와 Cure53, 두 건의 독립 감사가 Gem Wallet을 뒷받침하며, 앞으로도 독립 전문가에게 코드 검토를 계속 요청할 것입니다. 감사 이후의 모든 수정 사항을 받으려면 Gem Wallet을 최신 버전으로 업데이트하고, 24시간 연중무휴 안전하고 비공개로 암호화폐를 관리하세요.
면책 조항: 이 글은 정보 제공과 교육 목적으로만 작성되었으며 금융 또는 투자 조언이 아닙니다. 암호화폐 자산은 변동성이 매우 크며 투자한 자금을 모두 잃을 수 있습니다. 직접 조사한 뒤 본인의 책임하에 결정하세요.


