본문으로 건너뛰기
Anon Wallet

인증

Anon은 패스키(권장)와 비밀번호 인증을 지원합니다. 두 방식 모두 지갑 키 계층을 지원하며 루트 비밀값의 파생·보호 방식이 다릅니다.

패스키(WebAuthn PRF)

패스키는 WebAuthn 표준의 PRF 확장(의사 난수 함수)을 사용합니다. 인증할 때:

  1. 브라우저가 Touch ID, Face ID, Windows Hello, FIDO2 하드웨어 키 같은 인증 장치를 호출합니다
  2. 인증 장치가 Anon 자격 증명을 키로 HMAC-PRF를 실행합니다
  3. 결정론적 32바이트 비밀값인 PRF 출력을 지갑 키 파생에 사용합니다

패스키의 장점

  • 인증 장치 보호: 저장, 기기 귀속, 동기화는 인증 장치에 따라 다릅니다. PRF 지원이 필요하며 손상된 기기에 대한 안전을 보장하지 않습니다.
  • 피싱 저항성: WebAuthn 자격 증명은 출처(chrome-extension://...)에 연결되어 피싱 사이트가 요청할 수 없습니다.
  • 비밀번호 입력 불필요: 키로거에 지갑 비밀번호가 노출되는 일을 피하지만 세션 비밀값은 계속 보호해야 합니다.
  • 생체 인증의 편의성: 한 번의 터치나 시선으로 인증합니다.

지원 인증 장치

브라우저, OS, 인증 장치, PRF 지원 여부에 따라 다릅니다. 설정 중 호환성을 확인하세요. 아래 예시는 모든 버전의 동작을 보장하지 않습니다.

  • Touch ID(Mac)
  • Face ID(Bluetooth를 통한 외부 인증 장치로서의 iPhone/iPad)
  • Windows Hello
  • YubiKey 및 기타 FIDO2 하드웨어 보안 키

비밀번호 인증

비밀번호를 선택하면 Argon2id로 루트 키를 파생합니다.

  • Argon2id는 오프라인 추측 비용을 높이도록 설계된 메모리 집약적 비밀번호 해시 알고리즘입니다
  • Anon은 높은 메모리 비용(64 MB)을 사용해 오프라인 무차별 대입 비용을 높입니다
  • 무작위 솔트는 chrome.storage.local에 저장되며 파생 키는 서버에 전달되지 않습니다

비밀번호는 편리하지만 다음 이유로 패스키보다 보안성이 다소 낮습니다.

  • 파생 중 비밀번호가 잠시 메모리에 존재합니다
  • 저장소를 탈취당하면 약한 비밀번호는 여전히 오프라인 공격에 취약합니다

길고 고유한 암호문을 사용하세요.

세션 관리

인증 후 Anon이 세션을 만듭니다.

  • 백그라운드 동기화를 위해 보기 전용 키를 메모리에 로드합니다
  • 지출 키는 거래를 시작할 때 필요에 따라 로드합니다
  • 설정된 시간 제한 후 세션이 만료됩니다

만료되면 Anon이 잠기고 모든 세션 키가 메모리에서 지워집니다.

자동 잠금

시스템 이벤트에 따라 자동 잠금이 가능합니다.

  • 유휴 시간 제한: N분 동안 활동이 없을 때
  • OS 잠금: 화면 잠금 또는 절전 시(해당 브라우저 확장 API 필요, 기본 활성화)
  • 브라우저 닫기: 항상 잠금을 실행

Settings → Security에서 동작을 설정할 수 있습니다.