보안
최종 수정일: 2026년 10월 19일
QR Wait는 대기열에 선 사람들에 관한 정보를 가능한 한 적게 보관하고 나머지는 보호합니다. 이 페이지는 그 방법을 요약합니다. 무엇을 얼마나 보관하는지는 개인정보처리방침에 있습니다.
1. 호스팅과 암호화
QR Wait는 Cloudflare 네트워크(Workers와 Durable Objects)에서 실행되며 데이터도 그곳에 저장합니다. 모든 연결은 HTTPS(TLS)로 암호화되며, 브라우저는 qrwait.app과 모든 하위 도메인에서 HTTPS만 사용하도록 지시받습니다(HSTS, 1년).
페이지에는 엄격한 콘텐츠 보안 정책(CSP)이 적용됩니다. 스크립트는 QR Wait와 Cloudflare에서만 불러오며, 다른 어떤 웹사이트도 QR Wait를 프레임 안에 표시할 수 없습니다.
Cloudflare는 ISO/IEC 27001, ISO/IEC 27701, ISO/IEC 27018 인증을 보유하고 있다고 밝히고 있습니다(Cloudflare Trust Hub). 이는 Cloudflare의 인증이며, QR Wait 자체는 인증을 보유하고 있지 않습니다.
2. 계정과 로그인
- 비밀번호는 솔트를 적용한 PBKDF2-SHA-256 해시로만 저장됩니다. 알려진 데이터 유출에 포함된 새 비밀번호는 거부되며, 이 확인을 위해 QR Wait 밖으로 나가는 것은 해당 SHA-1 해시의 앞 5자뿐입니다(k-익명성).
- 인증 앱(TOTP)을 이용한 2단계 로그인과 일회용 복구 코드. 소유자는 어떤 팀원이 이를 켰는지 확인할 수 있습니다.
- 팀원에게는 역할(소유자, 관리자 또는 담당자)이 있으며, 제한된 경우 배정된 대기열만 열 수 있습니다.
- 한 계정에 24시간 안에 로그인이 5번 실패하면 로그인할 때 봇 확인(Cloudflare Turnstile)도 필요합니다.
- 새 브라우저에서 계정에 로그인하면 이메일이 발송됩니다.
- 세션은 14일 동안 사용하지 않으면 종료됩니다. 비밀번호를 바꾸거나 "다른 기기에서 로그아웃"을 하면 다른 모든 세션이 종료됩니다.
- 인증, 비밀번호 재설정, 초대 링크는 한 번만 쓸 수 있으며 해시만 저장됩니다.
3. 요청 제한
요청은 Cloudflare 엣지에서 IP 주소별로 제한됩니다. 로그인·가입·비밀번호 재설정은 분당 10회, 대기열 참여는 분당 60회, REST API는 키당 분당 120회 및 IP 주소당 분당 120회입니다.
4. 방문자 데이터
- 방문자에게 전화번호나 이메일 주소를 묻지 않습니다. 이름은 업체가 해당 대기열에서 켠 경우에만 묻습니다.
- 티켓은 그 안의 이름과 참여 양식 답변과 함께, 대기열 설정과 관계없이 참여 후 늦어도 24시간 안에 삭제됩니다.
- 위치는 저장하지 않습니다. 대기열이 위치를 확인하는 경우, 티켓에는 대기열까지의 거리와 측정 시각만 기록됩니다.
- 담당자 화면에 표시되는 QR 코드는 15~75초마다 바뀌고 각 코드는 1~5분 동안만 유효하므로, 다른 곳에 공유된 사진으로는 아무도 들어올 수 없습니다.
- 담당자가 패널에서 한 작업은 30일 동안 기록되며, 담당자 링크는 언제든 회수할 수 있습니다.
5. 백업
다시 만들 수 없는 데이터(계정, 대기열 설정, 티켓 잔액)는 매일 Cloudflare R2로 내보내지며 기록 전에 암호화됩니다. 각 부분은 고유한 AES-256-GCM 키로 암호화되고, 그 키는 다시 공개 키(RSA-OAEP)로 암호화됩니다. 이를 여는 개인 키는 오프라인으로 보관됩니다. 내보낸 데이터는 35일 동안 보관됩니다.
티켓은 백업에 절대 포함되지 않습니다. 방문자 이름이 들어 있고 최대 하루만 존재하기 때문입니다.
6. 연동
- 웹훅은 한 번만 표시되는 시크릿으로 서명되며(타임스탬프가 포함된 HMAC-SHA256), 공개된 https 주소로만 전송됩니다. 업체가 주소별로 이름을 허용하지 않는 한 번호와 시간만 담습니다.
- API 키는 한 번만 표시되며 SHA-256 해시로만 저장됩니다. 키는 읽기 전용이거나 쓰기도 가능하며, 언제든 폐기할 수 있습니다.
- 개발자를 위한 자세한 내용: API 및 웹훅 레퍼런스(영어).
7. 하위 처리자
서비스 운영을 위해 다음 회사들이 QR Wait를 대신해 데이터를 처리합니다.
| 회사 | 용도 | 위치 |
|---|---|---|
| Cloudflare, Inc. | 호스팅, 저장, 백업, 이메일 발송, 봇 확인(Turnstile), 보안, 쿠키 없는 방문 통계 | 미국, 글로벌 네트워크 |
| Lemon Squeezy, LLC | 결제와 청구서(기록상 판매자) | 미국 |
| Apple Inc. | QR Wait iPhone 앱으로 보내는 알림(Apple Push Notification service) | 미국 |
| Google LLC | QR Wait Android 앱으로 보내는 알림(Firebase Cloud Messaging) | 미국 |
| OpenStreetMap Foundation | 관리자 패널의 지도 타일과 주소 검색 | 영국 |
브라우저 알림은 방문자 자신의 브라우저 푸시 서비스를 거칩니다. 데이터가 튀르키예와 EU 밖으로 어떻게 이전되는지는 개인정보처리방침에서 설명합니다.
8. 취약점 신고
hello@qrwait.app으로 제목을 "Security"로 하여 보내 주세요. 영업일 기준 3일 안에 접수를 확인하고 10일 안에 1차 평가를 보내 드립니다. 문제가 해결될 때까지 공개하지 마시고, 본인의 계정과 대기열로만 테스트해 주세요.
이 규칙을 선의로 따르는 연구에 대해서는 법적 조치를 취하지 않습니다. 유료 버그 바운티는 없습니다. 같은 연락처를 기계가 읽을 수 있는 형태로: security.txt.