
SevenX Ventures: WebAuthn과 Passkey가 처참한 암호화 경험을 구원하는 방법은?
저자: Rui @Ruisnakes, SevenX Ventures

TL;DR
개인 키는 이더리움에서 트랜잭션에 서명하는 핵심이지만, 기억 단어(또는 "시드 구문")라는 사람이 읽을 수 있는 형식으로 관리하더라도 개인 키 관리는 여전히 사용자에게 악몽이다. 우리는 블록체인을 복잡한 게임으로 만들 생각이 결코 없었다.
트랜잭션의 보안성을 확보하려면 인가된 사용자의 신원을 인증해야 한다. 인터넷 보안과 사용자 경험의 발전과 함께 우리는 비밀번호 인증에서 얼굴 인식, 지문 등 생체 인식 기술로 나아갔다. 이 과정에서 WebAuthn은 중요한 이정표였다. 본 글에서는 다음 세 가지 용어를 중심으로 논의할 것이다:
-
WebAuthn: 외부 인증기가 생성하는 공개키 기반 자격 증명을 사용하는 웹 인증 표준. 비밀번호 없이도 안전한 사용자 인증을 가능하게 한다.
-
Secure Enclave: 민감한 데이터를 보호하기 위해 설계된 컴퓨팅 장치 내 하드웨어 기반 보안 영역. iOS, Android 및 Windows 장치에 각각 대응하는 Secure Enclave 버전이 존재한다. WebAuthn 적용 시 외부 인증기로서 하드웨어 수준의 보안을 제공하지만, 개인 키가 로컬에 묶여 있어 다중 장치 간 운영이 어려운 단점이 있다.
-
Passkey: 운영체제 수준의 WebAuthn 활용 방식으로, 다양한 장치 및 시스템 제공업체마다 맞춤형 규칙이 있다. 예를 들어 Apple의 Passkey는 iCloud 키체인(Keychain)에 저장된 키를 이용해 다중 장치 간 동기화를 실현한다. 그러나 이러한 방법은 일반적으로 특정 플랫폼 또는 시스템에 국한되어 크로스 플랫폼(Apple-Android) 지원에는 한계가 있다.

앞서 언급했듯이, WebAuthn의 배포는 일상적인 블록체인 사용자들에게 고급 피싱 방지 보안과 친숙한 사용자 경험을 제공하려는 우리의 목표와 일치한다. 아래는 WebAuthn을 블록체인에 통합하는 제안이다:
-
키 계층: 사용자는 얼굴 인식이나 지문 등의 원활한 방법으로 인증할 수 있다. 기술적으로는 하드웨어 기반 보안 프로세서(Secure Enclave) 또는 클라우드 서비스(iCloud, Google Cloud 등)가 키 관리를 처리한다. 이후 다중 장치 및 크로스 플랫폼 문제에 대해 심층적으로 논의하겠다.
-
계정 계층: 스마트 컨트랙트 계정(SCA)은 임의의 서명자(Secure Enclave, Passkey 등)와 임계값 메커니즘을 할당할 수 있다. 또한 모듈화된 설계는 유연성과 업그레이드 가능성을 강화한다. 예를 들어, 스마트 컨트랙트 계정은 트랜잭션 수량, 시간, IP 주소 등의 요소에 따라 동적으로 서명 요구사항을 조정할 수 있다. 반면 전통적인 외부 계정(EOA)은 MPC(다자간 계산) 서비스를 통해 확장될 수 있으며, 스마트 컨트랙트 계정보다 상호 운용성과 비용 효율성이 우수하지만, 스마트 컨트랙트 계정이 제공하는 고급 기능(특히 키 회전)은 제한적이다.
-
서명 계층: 이더리움은 기본적으로 k1 곡선을 지원하지만, WebAuthn의 서명 검증은 r1 곡선을 사용하기 때문에 더 높은 비용이 발생한다. 따라서 zkSync 같은 레이어 2 솔루션은 EIP-7212 r1 곡선을 기본으로 하는 사전 컴파일을 도입할 계획이다. 또한 제3자 서비스, Solidity 검증기, 제로노울리지(ZK) 검증기, 분산 키 관리 시스템 등이 r1 곡선 서명을 보다 저렴한 비용으로 지원할 수 있다.
* 면책조항:
기술적 진보가 반드시 시장 성공을 의미하지는 않으며, 모든 장치와 플랫폼이 Passkey를 채택한 것은 아니다. 스마트 컨트랙트 계정 사용은 외부 계정보다 더 비쌀 수 있으며, 제안된 해결책은 기술 발전에 따라 계속 변화할 것이다.
암호화 UX가 최악인 이유? 바로 키 관리 때문이다!
블록체인 분야에서 블록체인 자산의 진정한 통제권은 사용자나 지갑 제공업체가 아니라 개인 키에 있다. 이 키는 이더리움 상에서 트랜잭션이 실행되는지를 결정한다. 이를 이해하기 위해 외부 계정(EOA)을 예로 들어보겠다:

-
키 생성: secp256k1 타원 곡선에서 선택한 난수를 개인 키로 사용하고, 이 키를 곡선 상의 미리 정의된 점에 곱하여 공개 키를 생성한다. 이더리움 주소는 공개 키의 해시값에서 마지막 20바이트를 추출하여 파생된다. 일반적으로는 기억 단어를 사용해 개인 키를 사람이 읽을 수 있는 단어 형태로 백업하고, 이를 통해 개인 키와 공개 키를 재생성한다.
-
트랜잭션 서명: nonce(시퀀스 번호), 금액, 가스 가격, 수신 주소 등을 포함한 트랜잭션에 개인 키를 사용하여 서명한다. 이 과정은 타원 곡선 디지털 서명 알고리즘(ECDSA)을 사용하며, secp256k1 곡선 기반의 타원 곡선 암호학을 채택하여 (r, s, v) 값으로 구성된 서명을 생성한 후, 서명과 원본 트랜잭션을 네트워크에 방송한다.
-
트랜잭션 검증: 트랜잭션이 이더리움 노드에 도달하면 메모리 풀에서 검증된다. 서명자의 신원을 확인하기 위해 노드는 서명과 해시된 트랜잭션을 사용하여 송신자의 공개 키를 얻고, 추출된 주소와 송신자의 주소를 비교하여 트랜잭션의 진위를 확인한다.
앞서 설명했듯이, 개인 키는 체인 상에서 중요한 실체이다. 초기 이더리움 계정인 외부 계정은 단 하나의 개인 키에 의존했으며, 이는 키를 잃어버릴 경우 계정 접근 권한 자체를 잃는다는 중대한 위험을 수반한다.
많은 사람들이 계정 추상화(Account Abstraction, AA)가 사용자 경험 문제의 궁극적인 해결책이라고 생각할 수 있지만, 꼭 그렇지는 않다. 계정 추상화는 이더리움의 유효성 검사 규칙(validity rule)을 프로그래밍 가능한 규칙으로 바꾸며, 이를 스마트 컨트랙트 계정이 실현한다. 계정 추상화는 매우 강력하다. 여러 트랜잭션을 병렬로 보내는 것(abstract nonce), 가스 스폰서십, ERC-20으로 가스 비용 지불(abstract gas)을 지원하며, 본 주제와 더욱 관련 깊은 기능으로는 고정된 서명 검증을 깨뜨리는 것(abstract ECDSA signature)이 있다. 외부 계정과 달리 스마트 컨트랙트 계정은 다중 서명(multisig)이나 범위 제한 키(세션 키)와 같은 임의의 서명자와 서명 메커니즘을 할당할 수 있다. 그러나 계정 추상화의 유연성과 업그레이드 가능성은 향상되었지만, 여전히 트랜잭션 서명에는 키가 필요하다.
개인 키를 12개의 단어로 된 기억 단어로 변환하더라도 키 관리는 여전히 큰 도전이며, 분실되거나 피싱 공격을 당할 위험이 있다. 사용자는 복잡한 탈중앙화 솔루션과 중앙집중화 서비스 사이에서 선택해야 하지만, 어느 쪽도 이상적인 선택은 아니다.
왜 암호화 경험은 최악인가? 그 이유 중 상당 부분은 키 관리가 최악이기 때문이다. 사용자는 키 관리를 하면서 항상 사용성, 보안성, 탈중앙화 사이에서 균형을 맞춰야 한다. 본 글은 키 관리의 잠재적 최적 해법을 탐구한다.
키 관리 계층
완벽한 만병통치약은 존재하지 않는다. 키 보관의 최선의 방법은 특정 사용자 시나리오에 맞게 맞춤화되어야 하며, 사용자 유형(기관 vs 개인), 자본 규모, 거래 빈도, 상호작용 유형 등 다양한 요소에 의해 영향을 받는다.
먼저 명확히 밝히자면, 나는 현재 유행하는 '자가 보관(self-custody)', '반托管(semi-custody)', '완전托管(full custody)' 등의 용어를 사용하지 않을 것이다. 내 관점에서 진정한 자가 보관은 다른 당사자에 의존하지 않고 독립적으로 트랜잭션에 서명하는 것을 의미한다. 일부 솔루션이 전통적 의미에서托管(custody)되지 않았다고 해도(예: 분산 노드의 TEE에 저장됨), 그것이 반드시 non-custodial이라고 볼 수 없다. 단순히托管 여부로 솔루션의 우열을 판단하는 것은 지나치게 단순하며, 이러한 방식들의 적용 가능성 차이를 무시하는 것이다. 키 관리 방법을 더욱 섬세하게 평가하기 위해 나는 세 가지 차원에서 분석할 것을 제안한다.

책임
키 관리 책임을 서로 다른 책임 당사자들 사이에 분배하는지 여부.

개인 사용자는 일반적으로 키 관리에 많은 어려움을 겪기 때문에, 키 관리 책임을 분배하는 것이 자연스러운 리스크 완화 전략이 된다. 이러한 방법에는 여러 키를 협력하여 서명하는 방식, 예를 들어 다중 서명(Multi-sig) 시스템, 또는 비밀 공유 방식(SSS) 및 다자간 계산(MPC)을 통해 개인 키를 여러 부분으로 나누는 방법이 있다.
-
다중 서명(Multi-sig): 여러 개의 완전한 개인 키를 필요로 하여 트랜잭션 서명을 생성한다. 이 방법은 서로 다른 서명자가 체인 상에서 소통해야 하므로 거래 수수료가 더 높고, 개인정보 보호 측면에서도 서명자 수가 체인 상에 노출된다는 단점이 있다.
-
비밀 공유 방식(SSS): 단일 위치에서 개인 키를 생성한 후 이를 여러 부분으로 나누어 다른 당사자들에게 분배한다. 각 당사자는 트랜잭션에 서명하기 위해 전체 개인 키를 재구성해야 한다. 그러나 이 임시 재구성 과정은 취약점을 유발할 수 있다.
-
MPC-TSS(임계값 서명 방식): 다자간 계산의 일종으로, 여러 당사자가 각자의 입력을 비공개 상태로 유지하면서 계산을 수행할 수 있게 하는 암호화 방법이다. 각 당사자는 독립적으로 키 조각을 생성하고, 실제로 만나지 않아도 트랜잭션에 서명할 수 있다. 오프체인에서 작동하기 때문에 비용이 낮으며, SSS처럼 단일 실패 지점이 없는 장점이 있다.
저장
키 또는 키 조각을 저장하는 방법으로, 보안성, 접근성, 비용, 탈중앙화 등의 요소에 영향을 받는다.

-
AWS, iCloud 등 중앙화된 클라우드 서비스. 자주 거래하는 데 편리하지만 검열에 더 취약하다.
-
IPFS 및 Filecoin과 같은 탈중앙화 저장소.
-
로컬 컴퓨터 / 모바일 장치: 브라우저의 보안 저장소에 키를 저장.
-
페이퍼 월렛: 개인 키나 QR 코드를 출력.
-
신뢰 실행 환경(TEE): 주 프로세서 내에 주 운영체제와 독립적으로 민감한 데이터를 실행하거나 저장하는 보안 영역을 제공.
-
Secure Enclave: 현대 장치의 Secure Enclave는 주 프로세서와 분리되어 있어, 애플리케이션 프로세서 코어가 위협받아도 민감한 사용자 데이터를 보호할 수 있는 추가 보안 계층을 제공한다.
-
하드웨어 지갑: Ledger 및 Trezor과 같은 물리적 장치로, 개인 키를 안전하게 저장하기 위해 특별히 설계되었다.
-
하드웨어 보안 모듈(HSM): 안전한 키 관리 및 암호화 작업을 위한 전용 하드웨어 장치로, 일반적으로 기업 환경에서 사용되며 고급 보안 기능을 제공한다.
접근
저장된 키에 접근하기 위해 사용자 신원을 어떻게 인증하는가?

저장된 키에 접근하려면 인증이 필요하다. 즉, 접근을 시도하는 개체가 실제로 키 접근 권한을 부여받았는지를 확인해야 한다. 과거를 되돌아보면 접근 방식은 다음과 같이 분류할 수 있다:
-
당신이 아는 것: 비밀번호, PIN 번호, 보안 질문의 답, 특정 도형 등.
-
당신이 소유한 것: 스마트카드, 하드웨어 토큰(TOTP 기반), 소셜 계정 인증, 휴대폰으로 전송되는 문자 코드 등 디지털 인자.
-
당신이 누구인지: 지문, 얼굴 인식(Apple의 Face ID 또는 Windows Hello), 음성 인식, 홍채/망막 스캔 등 사용자의 고유한 신체 특징.
이들을 기반으로 이중 인증(2FA) 및 다중 인증(MFA)은 최소 두 가지 요소를 결합하여 사용자 계정 보안을 강화한다. 예를 들어 문자 메시지와 푸시 알림을 결합하는 방식 등이 있다.
기존 제품 분석

MetaMask는 사용자가 비밀번호를 사용해 로컬 브라우저 저장 공간에 저장된 키에 접근하도록 허용한다.

Trust Wallet은 사용자가 비밀번호 또는 faceID를 사용해 로컬 브라우저 저장 공간에 저장된 키에 접근하도록 하고, 사용자가 클라우드 서비스를 선택하여 개인 키를 백업할 수도 있다.

Privy는 이메일 등 다양한 소셜 로그인 방법을 허용하며, 비밀 공유 방식을 통해 키를 세 부분으로 나눈다:
-
장치 조각: 브라우저 - iFrame, 모바일 - Secure Enclave.
-
Auth 인증 조각: Privy가 저장하며, Privy ID에 연결됨.
-
Recovery 복구 조각: 사용자 비밀번호 또는 HSM(하드웨어 보안 모듈)에 Privy가 암호화하여 저장.

Particle은 소셜 로그인을 허용하며, MPC-TSS를 사용해 키를 두 부분으로 나눈다:
-
장치 조각: 브라우저 - iFrame
-
서버 키 조각: Particle 서버
새로운 솔루션
키 계층: WebAuthn, Secure Enclave 및 Passkey
위에서 살펴본 기존 솔루션들은 사용자들이 Web3에 관심을 갖도록 하는 데 중요한 역할을 해왔다. 그러나 도전도 함께 존재한다: 비밀번호는 잊혀지거나 피싱 공격의 표적이 될 수 있고, 2FA는 더 안전하지만 여러 단계를 거쳐야 하기 때문에 불편하다. 또한 모든 사람이 제3자에게 키 관리를 위탁하는 것을 원하지 않으며, 일부 서비스가 사용자에게 키 접근을 차단할 때 사용자는 여전히 시스템의 가용성과 유효성에 의존해야 한다.
이러한 상황에서 우리는 더 효과적인 솔루션—거의 신뢰 없이도 높은 보안성과 원활한 사용자 경험을 제공하는 솔루션—이 있는지 고민하게 된다. 이러한 솔루션을 찾는 여정은 우리를 최적의 Web2 방법론으로 이끈다. 본문 초반에서 언급했듯이, 이 주제와 밀접하게 관련된 몇 가지 용어가 있으며, WebAuthn은 인증 표준이고, Secure Enclave와 Passkey는 해당 표준과 관련된 배포 또는 구성 요소이다.
WebAuthn
WebAuthn은 웹 기반 애플리케이션에 대한 사용자 인증 인터페이스를 표준화한다. 사용자는 비밀번호 대신 외부 인증기를 사용하여 인터넷 계정에 로그인할 수 있다. 인증기는 Yubikey, Titan key와 같은 이동식 인증기(roaming authenticator) 또는 Apple 기기의 내장 키체인(keychain)과 같은 플랫폼 인증기(platform authenticator)일 수 있다.

WebAuthn의 기술적 배경은 처음에 FIDO(Fast IDentity Online) 연합에 의해 개발되었다. 2019년 3월 W3C는 WebAuthn을 공식 웹 표준으로 발표했으며, 표준화가 진행되면서 Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari 등 주요 브라우저들이 WebAuthn을 채택함으로써 WebAuthn의 적용 범위와 가용성이 크게 확대되었다. 현재 많은 선진 장치에서 지원되고 있다.
WebAuthn의 장점:
-
높은 보안성: 비밀번호 의존성이 사라져 피싱, 무차별 대입 공격, 재생 공격 등의 위험이 줄어든다.
-
사용자 경험 향상: 한 번의 클릭 또는 생체 인식 인증만으로 간단하고 빠르게 로그인할 수 있다.
-
프라이버시 보호: 인증 과정에서 공유 비밀 정보가 전송되지 않으며, 개별 웹사이트는 어떤 개인정보도 수신하지 않는다.
-
확장성 및 표준화: 웹 표준으로서 다양한 브라우저 및 플랫폼 간의 일관성과 상호 운용성을 보장한다.
장치 기반 WebAuthn, 예: Secure Enclave
이제 우리는 하드웨어 프로세서를 인증기로 사용할 수 있다. 예를 들어 Apple 기기의 Secure Enclave, Android 기기의 Trustzone, Google Pixel의 Strongbox 등이 있다.

-
키 생성: 공개키 암호화를 사용하여 WebAuthn 표준에 따라 키 쌍을 생성하며, 일반적으로 P-256 r1 곡선을 사용한다. 공개 키는 서버로 전송되고, 개인 키는 Secure Enclave를 벗어나지 않는다. 사용자는 평문 키를 처리하지 않으므로 개인 키의 안전성이 보장된다.
-
키 저장: 개인 키는 장치의 Secure Enclave 내에 안전하게 저장되며, 이 강화된 하위 시스템은 주 프로세서와 분리되어 있다. 주 시스템이 손상되더라도 원본 키 자료에 접근할 수 없도록 민감한 데이터를 보호한다. Secure Enclave를 해킹하는 것은 매우 어렵기 때문에 Apple Pay 및 FaceID 데이터와 같은 가장 민감한 데이터 유형이 여기에 저장된다.
-
인증: 사용자는 얼굴 인식 또는 지문을 사용하여 접근 권한을 얻고, Secure Enclave는 개인 키를 사용해 서버의 도전(challenge)에 서명하며, 서버는 공개 키로 검증한다.

장치 기반 WebAuthn의 장점:
-
하드웨어 수준의 보안성: Secure Enclave와 같은 독립형 하드웨어 기반 키 관리자가 보안을 강화한다.
-
피싱 공격 저항성: 위협받을 수 있는 장치나 웹사이트에 아무런 정보도 입력하지 않는다.
-
편리한 사용 경험: 사용자 친화적인 경험을 제공한다. 사용자는 더 이상 다양한 웹사이트의 복잡한 비밀번호를 기억할 필요가 없다.
장치 기반 WebAuthn의 단점:
-
장치 제한: 장치를 분실하거나 손상시키면 개인 키를 내보내거나 검색할 수 없으며, 다중 장치 간 운영이 불가능하다.
클라우드 기반 WebAuthn, Passkey
다중 장치 기능의 문제를 해결하기 위해 기술 거물들이 클라우드 기반 WebAuthn 배포 방식을 도입하였고, Apple 덕분에 Passkey가 널리 알려졌다.

Apple의 Passkey를 예로 들면:
-
키 생성: 사용자의 macOS, iOS 또는 iPadOS 장치가 인증기로 작동하여 계정 생성 시 공개 키와 개인 키를 생성한다. 공개 키는 서버로 전송되고, 개인 키는 장치의 iCloud 키체인에 저장된다. iCloud 키체인 데이터는 하드웨어에 바인딩된 키로 암호화되어 하드웨어 보안 모듈에 저장된다. Apple은 해당 키를 접근할 수 없다.
-
다중 장치 동기화: 이 과정은 iCloud에 접속하는 것과 동일하다. iCloud 계정을 인증하고, 문자 인증 코드를 수신한 후, 기기 중 하나의 비밀번호를 입력한다.

클라우드 기반 WebAuthn의 장점:
-
다중 장치 지원: Passkey는 사용자가 자주 사용하는 모든 장치에서 쉽게 접근할 수 있도록 설계되었다. 그러나 현재는 Apple 기기에 한정되어 있다. Android 기기에서는 더 도전적인데, Android의 버전과 하드웨어 다양성이 많기 때문이다.
-
피싱 공격 방지: 위와 동일.
-
편리한 사용 경험: 위와 동일.
클라우드 기반 Passkey의 단점:
-
클라우드 서비스 의존성: 장치 기반 WebAuthn과 비교해 클라우드 기반 Passkey는 Secure Enclave의 하드웨어 보안 계층을 iCloud 키체인으로 옮겼다. 일부는 이를 클라우드 서비스에托管된 것으로 볼 수 있다. 고려해야 할 핵심 포인트는 사용자의 iCloud AppleID 계정이 유출되었는지 여부이다. iCloud 키체인은 데이터 보호를 위해 엔드투엔드 암호화를 사용하지만, 운영 실수나 취약점이 위험을 초래할 수 있다.
-
플랫폼 제한: 예를 들어 iCloud 기반 비밀번호를 Android 기기에서 사용하는 것은 매우 도전적이다. 또한 기존 방법과 달리 Apple과 Google은 기기별 assertion을 전송하지 않는다. 이는 현재 키 생성 장치 유형을 검증할 수 없음을 의미하며, 키와 관련 메타데이터의 신뢰성에 의문을 제기한다.
계정 계층: 스마트 컨트랙트 계정 및 외부 계정
지금까지 살펴보았듯이, 하드웨어 수준의 보안성을 유지하면서 다중 장치 및 크로스 플랫폼 호환성을 확보하는 것은 큰 도전이다. 마찬가지로 소셜 복구 옵션(예: 보안을 강화하기 위해 여러 guardian 추가) 역시 중요하다. 이러한 맥락에서 블록체인은 우리에게 길을 제시할 수 있다.
참고: Web2의 WebAuthn을 Web3에 적용하려 할 때 눈에 띄는 차이점은 Web2는 소유권 증명만 필요하지만 Web3는 동시에 트랜잭션을 인가해야 한다는 점이다. 단지 Passkey만으로는 개발자가 서명 메시지를 제어할 수 없으며, 서명 메시지는 일반적으로 "sign in"과 같은 일반적인 내용이다. 이는 잠재
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News










