피드로 돌아가기
I built a browser-based proof-of-presence tool
Dev.toDev.to
Security

Web Crypto API 기반의 서버리스 Proof-of-Presence 시스템 구현

I built a browser-based proof-of-presence tool

BunHead2026년 4월 15일1intermediate

Context

중앙 서버와 계정 체계 없이 두 사용자의 물리적 인접성을 증명하기 위한 아키텍처 설계 브라우저 환경 내에서 신뢰 가능한 Co-location 증명 방식의 필요성 대두

Technical Solution

  • Web Crypto API를 활용한 클라이언트 사이드 ECDSA P-256 서명 체계 구축
  • GPS 좌표 기반의 Hash 생성 및 서명을 통한 12m 이내 거리 증명 로직 구현
  • JSON.stringify의 불확정적 속성 순서 문제를 해결하기 위한 Canonical Serialisation 도입
  • 데이터 무결성 보장을 위해 서버 사이드 필터링 전 좌표 정보를 유지하는 Payload 설계
  • postMessage API와 iframe 구조를 통한 SDK 없는 Embeddable Widget 인터페이스 제공

- 암호화 서명 전 데이터의 일관성을 보장하기 위한 Canonical JSON 포맷팅 적용 - 클라이언트 사이드 검증 로직 설계 시 서버측 데이터 변형(Stripping)으로 인한 해시 불일치 가능성 검토 - Web Crypto API를 통한 Zero-server 기반의 신뢰 모델 설계 가능성 타진

원문 읽기