Show GN: 인터넷 연결 없이 클라이언트에서 간편결제 QR코드 만들기
(blog.javien.dev)함께 보기: https://news.hada.io/topic?id=10280
- 디미페이는 한국디지털미디어고등학교에서
사용하는 인하우스 QR 간편결제 솔루션입니다. - 학생들은 저렴한 데이터 요금제를 사용하여 인터넷 연결이 자유롭지 않은 경우가 많았고, 인터넷 연결 없이도 결제할 수 있는 방법을 고민하였습니다.
- 오프라인 결제 프로젝트를 리드한 팀원이 연구 과정을 블로그에 상세히 기록해두어서 공유합니다.
기술적 접근:
- TOTP에서 영감을 받은 결제토큰
- TOTP의 카운터와 HKDF를 활용하여 암호화에 필요한 키를 동적 생성
- XChaCha20-Poly1305를 사용한 대칭키 암호화
- 결제코드 유효성 검증
- 이미 사용되었거나 만료된 토큰을 구분하기 위해 Nonce(uuidv7)를 도입함
- 논스가 가장 최근 결제 시간보다 과거에 생성되었다면 거래 거부
- 리플레이 공격을 예방하려는 의도
- TLV(Tag-Length-Value) 포맷 도입: 페이로드를 유연하면서도 작게 직렬화할 수 있음