대부분의 사람은 QR 코드를 웹사이트로 가는 무해한 지름길로 여긴다. 종종 그렇다. 하지만 QR은 그저 텍스트의 그릇이고, 그 텍스트는 링크보다 훨씬 민감할 수 있다. 코드 이미지를 처음 발견한 "온라인 QR 리더"에 넣기 전에, 당신이 무엇을 — 그리고 누구에게 — 넘길 수 있는지 알아둘 만하다.

QR 코드가 실제로 담을 수 있는 것

이미지에서 QR 코드 읽기 — 비공개로, 자기 기기에서 — visual 1
QR 코드가 실제로 담을 수 있는 것

흑백 무늬는 일반 텍스트를 인코딩하고, 관례상 그 텍스트는 여러 가지일 수 있다:

  • URL — 흔한 경우지만, 때로는 비공개나 일회용 링크(암호 재설정, 초대, 진짜 공개가 아니라 "미등록"인 문서).
  • Wi-Fi 네트워크와 암호 — 라우터와 호텔의 "스캔해서 연결" 코드는 네트워크 이름과 암호를 문자 그대로 일반 텍스트로 인코딩한다.
  • 연락처 카드(vCard) — 이름, 전화번호, 이메일, 집이나 사무실 주소.
  • 로그인 또는 결제 토큰 — 일부 앱은 세션이나 이체를 승인하려고 QR을 보여준다. 안의 문자열은 사실상 키다.
  • 일반 텍스트나 메시지 — 누군가 인코딩하기로 한 무엇이든.

그중 어느 것도 당신 자신의 기기에서 디코딩할 때는 당신에게 위험하지 않다. 디코딩이 이미지를 다른 어딘가로 보내야 할 때 문제가 된다.

숨은 단계: "온라인 리더"는 당신 이미지를 업로드한다

이미지에서 QR 코드 읽기 — 비공개로, 자기 기기에서 — visual 2
숨은 단계: "온라인 리더"는 당신 이미지를 업로드한다

여기가 놓치기 쉬운 부분이다. 전형적인 온라인 QR 리더는 당신 이미지 파일을 서버로 업로드해 거기서 디코딩하고 결과를 되돌려보내는 식으로 작동한다. 즉, 그림 — 그리고 코드가 인코딩하는 무엇이든 — 이 기기를 떠나 당신이 통제하지 못하는 하드웨어에 도착한다. 공개 기사 링크라면 괜찮다. Wi-Fi 암호, 로그인 토큰, 집 주소가 담긴 연락처 카드라면, 이미 화면에 있던 텍스트를 읽자고 방금 낯선 서버로 비밀을 전송한 것이다. 거기서 기록되거나 캐시될 수도 있다.

도구가 업로드하는지 확인할 수 있다. 파일 크기에 따라 커지는 진행 막대를 지켜보거나, 브라우저 네트워크 탭을 열어 큰 요청이 당신 이미지를 실어 나르는지 보라. 진짜 로컬 도구는 둘 다 하지 않는다.

대신 로컬로 디코딩하기

프라이버시를 존중하는 접근은 코드를 당신 자신의 브라우저에서 디코딩해 이미지가 절대 이동하지 않게 하는 것이다.

IMG.DIY의 QR 코드 리더가 정확히 그렇게 한다. 이미지를 주면 — 끌거나, 붙여넣거나, 파일을 고르면 — 그림을 캔버스에 그리고 jsQR 라이브러리로 당신 브라우저 안에서 바로 QR을 디코딩한다. 아무것도 업로드되지 않는다. 계정도, 일하는 서버도 없고, 페이지가 로드되고 나면 네트워크를 끈 채로 계속 작동한다. 직접 증명할 수 있다. 도구를 로드하고, 비행기 모드를 켜고, 코드를 디코딩하라 — 여전히 작동한다. 애초에 회로에 서버가 없었기 때문이다.

코드가 URL이면 도구는 클릭 가능한 링크(rel=nofollow 표시)를 주어 확정하기 전에 목적지를 볼 수 있게 한다. Wi-Fi 문자열이나 연락처 카드면 원시 텍스트와 복사 버튼을 준다 — 읽고, 쓰고, 그것은 당신 기기에 남는다.

민감한 코드를 위한 분별 있는 습관

두 가지 작은 규칙이 당신을 안전하게 지킨다:

  1. 행동하기 전에 텍스트를 보라. 코드를 디코딩하면 당신 기기가 무언가에 연결되기 전에 목적지나 내용을 보여준다. 그것만으로도 인쇄된 코드가 적대적인 곳을 가리키는 것으로 바뀌는 많은 QR 기반 사기를 무력화한다.
  2. 도구를 비밀에 맞춰라. 공개 링크라면 어디서 디코딩하든 거의 상관없다. 암호, 토큰, 누군가의 개인 정보라면 로컬로 디코딩해 비밀이 애초에 기기를 떠나지 않게 하라.

정직한 한계는 밝힐 가치가 있다. 이것은 당신이 제공한 이미지에서 한 번에 하나씩 코드를 읽는다. 실시간 웹캠에서가 아니다 — 모든 것을 로컬로 유지하는 의도적 선택이다. QR 코드가 숨길 수 있는 무엇에든, 자기 기기에서 읽는 것이 그냥 옳은 기본값이다.