보안
M5 Vault가 실제로 작동하는 방식
이 페이지는 안전하다고 주장하는 대신 구조를 설명합니다. 한계나 절충이 있는 부분은 그대로 적었습니다.
서명 의식
채널을 지나가는 것은 결코 조각이 아닙니다
서명은 대화형 프로토콜입니다. 각 당사자는 자신의 조각으로 메시지를 계산해 보내고, 최종 서명을 유도합니다. 어느 쪽도 자신의 조각을 전송하지 않으며, 완전한 키는 어느 시점에도 존재하지 않습니다.
두 가지 볼트
두 번째 조각을 누가 보관할지는 사용자가 정합니다
두 경우 모두 프로토콜은 같습니다. 다른 것은 두 번째 당사자가 누구인가이며, 따라서 무엇을 신뢰하게 되는가입니다.
Fast Vault
두 번째 조각을 M5의 공동 서명 서비스가 보관합니다. 사용자만 아는 비밀번호로 AES-256-GCM 암호화해 저장하며, 요청할 때 그 비밀번호를 제시하지 않으면 서비스는 조각을 사용할 수 없습니다.
절충: 편리하고 기기 하나로도 쓸 수 있지만, 두 번째 당사자를 M5가 운영하므로 서명은 그 서비스에 접근할 수 있어야 가능합니다.
Secure Vault
두 번째 조각을 사용자가 가진 두 번째 기기가 보관합니다. 의식은 사용자의 두 기기 사이에서 진행되고, M5는 둘 사이에서 암호화된 메시지를 전달하는 릴레이만 운영합니다.
절충: 서명에 M5가 필요하지 않지만, 거래를 승인하려면 두 기기가 모두 곁에 있어야 합니다.
분명히 말하면
M5가 할 수 있는 일과 할 수 없는 일
M5가 할 수 없는 것
- 자산을 옮기는 일. 조각 하나로는 서명할 수 없고, Fast Vault의 조각은 M5가 가지고 있지 않은 사용자의 비밀번호로 암호화되어 있습니다.
- 키를 재구성하는 일. 프로토콜이 키를 조립하지 않으므로, 우리 쪽에는 합칠 것이 없습니다.
- 볼트를 대신 복구해 주는 일. 자기수탁이므로 접근 권한을 되살려 주는 고객지원 절차가 없습니다.
- 의식 트래픽을 읽는 일. 릴레이 메시지는 두 당사자 사이에서 종단 간 암호화됩니다.
사용자가 책임지는 것
- 볼트 백업 보관. 서명에는 두 조각이 모두 필요하며, 백업 없이 접근 권한을 잃으면 자산도 잃게 됩니다.
- Fast Vault 비밀번호. 서버가 보관한 조각을 암호화하는 값이며, 저희가 복구해 드릴 수 없습니다.
- 사용 기기의 보안. 침해된 기기는 의도하지 않은 거래를 승인하도록 유도할 수 있습니다.
- 무엇에 서명하는가. 키 방식이 무엇이든, 악의적인 거래를 승인하면 그것은 승인한 것입니다.
기기에서
프로토콜 너머
로컬 암호화
민감한 로컬 저장소는 AES-256으로 암호화합니다. 조각 자료는 로그나 크래시 리포트에 절대 남지 않습니다.
격리된 서명
키 연산과 하드웨어 지갑 통신은 백그라운드 프로세스에서 실행되며, 지갑이 렌더링하는 어떤 페이지나 웹 콘텐츠와도 분리되어 있습니다.
거래 검사
승인을 요청하기 전에 거래를 해석하고 위험을 확인하며, dApp URL도 연결을 열기 전에 검사합니다.
네이티브 구현
임계 서명 라이브러리는 JavaScript가 아니라 Android와 iOS의 네이티브 모듈로 제공됩니다.
저희가 주장하지 않는 것
M5wallet은 제3자 보안 감사를 마치지 않았고, 이 사이트도 감사를 받았다고 주장하지 않습니다. 인증도, 보험도, 손실에 대한 보증도 없습니다. 위에서 설명한 프로토콜은 충분히 연구된 구조이지만, 올바른 구조라도 실제 소프트웨어로 구현된 이상 결국 소프트웨어입니다. 베타는 베타로 대하시고, 테스트 기간에는 잃어도 괜찮은 만큼만 넣어 두시기 바랍니다.
공동 서명 서비스, 릴레이, 지갑 클라이언트는 모두 M5 코드베이스의 일부입니다. 진지하게 검토하신다면 이 페이지를 믿기보다 구현을 직접 읽어 보십시오.