Skip to content

지갑 인프라와 보안 모델 ​

업계 배경 ​

지갑 시스템은 일반적으로 개인 키를 보호하기 위해 하나 이상의 기초 암호 방식에 의존합니다. 이러한 접근 방식을 이해하면 본 문서에서 설명하는 보안 모델의 맥락을 파악할 수 있습니다.

Shamir's Secret Sharing (SSS) ​

SSS는 개인 키를 여러 개의 셰어로 나누며, 원본을 복원하려면 최소 임계값이 필요합니다. 완전한 비밀성을 제공합니다 — 임계값 미만의 셰어 개수는 키에 대해 아무 정보도 드러내지 않습니다. SSS는 성숙하고 도구가 잘 갖추어져 있으며 빠릅니다(서명 20–40ms). 트레이드오프는 서명을 위해 개인 키를 완전히 재조립해야 하며, 재구성 순간에 단일 장애점이 생긴다는 점입니다.

Threshold Signature Schemes (TSS) ​

TSS(일반적으로 MPC로 알려짐)는 여러 당사자가 개인 키를 재조립하지 않고도 공동으로 서명을 생성할 수 있게 합니다. 이렇게 하면 SSS의 재구성 위험이 사라집니다. 트레이드오프는 미성숙함 — 최초의 효율적인 2자 ECDSA 프로토콜은 2017년에야 등장했습니다 — 과 성능입니다. 각 서명에는 네트워크 왕복이 포함되어 지연이 수 초에 이를 수 있습니다.

Trusted Execution Environments (TEE) ​

TEE는 하드웨어 엔클레이브 안에서 암호 연산을 실행하여 키 자료가 노출되지 않고 승인된 코드만 실행되도록 합니다. 클라이언트는 증명을 통해 연산을 검증할 수 있습니다. TEE는 확장이 잘 되고 TSS의 왕복 지연을 피하지만, 보안은 엔클레이브 무결성에 달려 있으며 역사적으로 사이드채널 공격에 취약했습니다.

WebAuthn PRF 확장 ​

WebAuthn PRF(Pseudo-Random Function) 확장은 사용자의 패스키 하드웨어에서 — Apple 기기에서는 Secure Enclave, Windows에서는 TPM, Android에서는 Titan chip — 결정적 비밀을 유도합니다. 이 비밀은 기기와 사용자의 생체 인식 또는 PIN에 바인딩되며, 인증 시 기기에서 계산되고 전송되지 않습니다. 서버가 한 번도 보지 못한 비밀로 키 자료를 암호화할 수 있는 지갑 설계 유형을 가능하게 합니다.


세 당사자 키 보호 ​

개요 ​

본 시스템에서 개인 키는 완전한 형태로 저장되지 않습니다 — 사용자 기기에도, 당사 서버에도, 어디에도 없습니다. 대신 키 자료는 3-of-3 secret sharing 방식으로 세 독립 당사자 간에 암호적으로 분할됩니다. 키를 복원하려면 세 당사자 모두가 협력해야 합니다. 세 미만이면 개인 키에 대한 수학적으로 영의 정보만 드러납니다.

이것은 하이브리드 모델입니다: 패스키 기반 클라이언트 측 암호화(PRF-as-KEK), 비밀 공유, 격리된 서버 측 엔클레이브를 하나의 아키텍처로 결합합니다. 그 결과 구성은 Shamir's Secret Sharing과 동일한 정보이론적 보안 보장 — 임계값 미만 당사자의 부분 집합은 키에 대해 어떤 정보도 얻지 못함 — 을 달성하면서, 한 셰어를 사용자의 물리적 인증기 하드웨어에 바인딩하여 서버 측 침해만으로는 키를 재구성할 수 없게 합니다.

이것은 모든 최신 기기(iOS, macOS, Android, Windows의 주요 브라우저 전부)에서 기본 보안 모델입니다.


세 당사자 ​

당사자 1 — 사용자의 인증기 ​

사용자의 패스키 하드웨어는 해당 기기와 사용자의 생체 인식 또는 PIN에 바인딩된 결정적 비밀을 계산합니다. 이 출력 — PRF output이라고 부름 — 은 인증 중 기기에서 생성되며 어디로도 전송되지 않습니다. 저장되지 않고 로그에도 남지 않습니다. 서명 작업이 지속되는 동안 RAM에만 존재합니다.

이 비밀은 키 복원에서 사용자의 기여입니다. 이것 없이 다른 두 당사자는 사용 가능한 개인 키를 만들 수 있는 자료를 갖지 못합니다.

당사자 2 — API ​

API는 사용자 키 자료의 암호화된 사본을 저장합니다. 사용자의 PRF에서 유도된 비밀로 암호화되어 있으며, API는 그 비밀을 한 번도 보지 못했습니다. API는 접근을 제어합니다 — 사용자가 등록한 패스키로 서명된 유효한 WebAuthn 어설션을 제시한 요청에만 이 암호화 페이로드를 공개합니다. 다만 API 자체는 페이로드를 복호화할 수 없습니다.

API는 인증된 전달 메커니즘으로 동작하며 키 보관자가 아닙니다.

당사자 3 — 암호 엔클레이브 ​

API와 독립적으로 동작하며 자체 암호 키와 인프라를 갖는 별도의 격리 시스템이 서버 측 키 셰어를 보유합니다. 이 셰어는 엔클레이브만 아는 비밀로 저장 시 암호화됩니다. 엔클레이브는 어설션 검증을 통과한 요청에 대해서만 복호화된 셰어를 공개하며, 최종 서명 단계에서 사용자 셰어와 결합하기 위해서만 공개합니다.

엔클레이브는 사용자의 PRF 출력, 사용자의 키 셰어, 또는 조립된 개인 키 중 어느 것도 보지 않습니다.


보안 속성 ​

단일 장애점 없음 ​

시나리오결과
사용자 기기 도난공격자가 생체 인식/PIN을 재현할 수 없음; PRF output을 얻을 수 없음
API 완전 침해공격자가 얻는 것은 한 번도 본 적 없는 비밀로 암호화된 암호문뿐
엔클레이브 완전 침해공격자가 키의 한 셰어를 얻음; 다른 셰어는 침해된 두 시스템 어느 쪽에도 없음
API와 엔클레이브 모두 침해공격자가 암호화된 사용자 페이로드와 서버 셰어를 얻음 — 그래도 물리적 인증기의 PRF output 없이는 사용자 페이로드를 복호화할 수 없음

마지막 시나리오가 결정적입니다. 서버 측 인프라가 완전히 침해되어도 개인 키를 재구성하기에는 부족합니다. 사용자의 인증기는 서버 측 침해로 우회할 수 없는 암호학적 관문입니다.

정보이론적 보안 ​

하이브리드 모델은 Shamir's Secret Sharing과 동일한 유형의 보안 보장을 이어받습니다: 키 분할은 계산적으로 안전할 뿐만 아니라 — 정보이론적으로 안전합니다. 무한한 계산 능력을 가진 공격자가 세 당사자 중 임의의 두 당사자의 자료를 갖고 있어도 개인 키에 대한 정보를 얻지 못합니다. 시간이나 하드웨어를 아무리 써도 두 당사자의 데이터만으로 키를 유도하는 알고리즘은 없습니다. 이것은 일회용 패드가 제공하는 것과 동일한 보장입니다.

설계상 논커스터디얼 ​

당사는 API와 엔클레이브를 모두 운영합니다. 그럼에도 일방적으로 사용자 자금에 접근할 수 없습니다. 사용자의 PRF output이 빠진 조각입니다 — 사용자 하드웨어 안에서 생성되며 전송되지 않습니다. 자금에 접근할 수 없다는 것은 정책이나 이용약관상 약속이 아닙니다. 내부 접근 통제, 규제 압력, 인프라 침해와 관계없이 성립하는 수학적 제약입니다.


트랜잭션 서명 방식 ​

모든 서명은 사용자 기기에서 이루어집니다. 개인 키는 어떤 서버에서도 조립되지 않습니다.

  1. 사용자가 앱에서 트랜잭션을 승인합니다. 기기가 생체 인식 또는 PIN으로 사용자를 인증합니다.
  2. 기기가 하드웨어에 바인딩된 PRF 비밀을 로컬에서 계산합니다. 이 비밀은 기기를 떠나지 않습니다.
  3. 앱이 API에서 암호화된 사용자 페이로드를, 엔클레이브에서 서버 셰어를 가져옵니다. 둘 중 어느 하나도 단독으로는 쓸 수 없습니다.
  4. 사용자 기기의 RAM에서: 하드웨어 비밀이 사용자 페이로드를 복호화하여 사용자 키 셰어를 얻습니다. 두 셰어가 완전한 개인 키로 결합됩니다.
  5. 개인 키가 트랜잭션에 서명합니다 — 전부 기기에서.
  6. 개인 키는 즉시 RAM에서 지워집니다. 캐시·영구 저장·로그 모두 없습니다.

완전한 개인 키는 수 밀리초 동안만 존재하며, 사용자 기기에서만, 서명 작업 중에만 그렇습니다. 서버는 이를 한 번도 보지 못합니다.


개인 키 내보내기 ​

사용자가 개인 키를 내보내기로 선택하는 경우 — 예를 들어 다른 지갑으로 이전하려면 — 동일한 원칙이 적용됩니다. 키는 사용자 기기에서만 재구성되고 전달됩니다. 서버는 암호화된 셰어를 제공하지만 복호화와 조립은 로컬에서 이루어집니다. 내보내기 과정 어디에서도 개인 키가 서버를 통과하거나 서버에 보이지 않습니다.


패스키 동기화 및 기기 간 접근 ​

최신 플랫폼 — Apple의 iCloud Keychain, Android의 Google Password Manager — 는 사용자 기기 간에 패스키를 동기화합니다. 키 복원에 사용되는 하드웨어 바인딩 비밀은 동기화된 패스키 자료의 일부이므로, 사용자 동기화 그룹의 모든 기기에서 동일한 PRF output을 재현할 수 있습니다. 이렇게 하면 기기를 넘어서도 세 당사자 보안 모델이 유지됩니다: 동기화된 기기는 모두 서명에 참여할 수 있으며 서버 측 아키텍처를 바꿀 필요가 없습니다.

패스키가 클라우드 계정에 동기화되었는지 사용자에게 알려 주므로, 지갑 복구 가능성을 항상 파악할 수 있습니다.

PRF는 iOS 18+, macOS Sequoia 15.4+, Android 14+, YubiKey 5 시리즈에서 지원됩니다. PRF를 지원하지 않는 플랫폼에서는 서버 측 서명 폴백이 사용됩니다.


기존 지갑 보안과의 비교 ​

모델개인 키 위치자금에 접근할 수 있는 자
표준 셀프 커스터디(시드 구문)사용자가 보관시드 구문을 가진 자
거래소 / 핫 월렛 커스터디운영자가 보관운영자(및 운영자를 침해한 자)
하드웨어 지갑기기에 저장물리 기기와 PIN을 가진 자
본 시스템완전한 형태로 저장되지 않음사용자의 라이브 인증기와 서버 인프라가 동시에 필요

요약 ​

이 하이브리드 모델 — PRF 기반 클라이언트 측 암호화, 비밀 공유, 격리된 엔클레이브의 결합 — 은 신뢰를 실질적으로 독립된 세 당사자에 분산하여 두 당사자의 부분 집합으로는 개인 키를 재구성할 수 없으며, Shamir's Secret Sharing과 동일한 정보이론적 보안 보장을 제공합니다. 사용자의 생체 인식에 바인딩된 하드웨어 비밀이 전체 시스템의 암호학적 앵커입니다. 서버 측 인프라가 아무리 철저히 침해되어도 사용자의 물리적 참여 없이는 유효한 서명을 만들 수 없습니다.