ほとんどの人はQRコードを、ウェブサイトへの無害な近道として扱います。しばしばそのとおりです。でもQRは文字の入れ物にすぎず、その文字はリンクよりずっと機密性の高いものでありえます。コードの画像を、最初に見つけた「オンラインQRリーダー」に放り込む前に、あなたが何を——そして誰に——渡すことになりうるかを知っておく価値があります。
QRコードが実際に持ちうるもの

白黒の模様はプレーンテキストをエンコードし、慣例上、その文字は多くのものでありえます。
- URL — よくある場合ですが、ときに私的な、あるいは一回きりのリンク(パスワードリセット、招待、本当に公開ではなく「限定公開」の文書)。
- Wi-Fiネットワークとパスワード — ルーターやホテルの「スキャンして接続」コードは、文字どおりネットワーク名とパスワードをプレーンテキストでエンコードしています。
- 連絡先カード(vCard) — 名前、電話番号、メール、そして自宅または職場の住所。
- ログインや決済のトークン — 一部のアプリはセッションや送金を認可するためにQRを表示します。中の文字列は実質的に鍵です。
- プレーンテキストやメッセージ — 誰かがエンコードしたいと思ったもの何でも。
そのどれも、自分の端末でデコードするならあなたにとって危険ではありません。デコードに画像をどこかへ送ることが必要になると、問題になります。
隠れた工程:「オンラインリーダー」はあなたの画像をアップロードする

ここが見落としやすい部分です。典型的なオンラインQRリーダーは、画像ファイルをサーバーにアップロードし、そこでデコードし、結果を送り返すことで動きます。つまり画像は——そしてコードがエンコードするものは何であれ——端末を離れ、あなたの管理下にないハードウェアに着地します。公開記事へのリンクなら結構です。でもWi-Fiパスワード、ログイントークン、自宅住所付きの連絡先カードなら、すでに画面にあった文字を読むためだけに、秘密を見知らぬサーバーへ送信し、そこでログに記録されたりキャッシュされたりするかもしれません。
ツールがアップロードするかは確認できます。ファイルサイズに合わせて伸びる進捗バーに注目するか、ブラウザのネットワークタブを開いて、大きなリクエストがあなたの画像を運ぶか見ましょう。本当にローカルなツールはどちらもしません。
代わりにローカルでデコードする
プライバシーを尊重するやり方は、自分のブラウザでコードをデコードして、画像が移動しないようにすることです。
IMG.DIYのQRコードリーダーはまさにそれをします。画像を渡すと——ドラッグ、貼り付け、またはファイルを選ぶ——絵をキャンバスに描き、jsQRライブラリでQRをあなたのブラウザ内でデコードします。何もアップロードされません。アカウントも、処理をするサーバーもなく、ページが読み込まれればネットワークを切っても動き続けます。自分で証明できます。ツールを読み込み、機内モードをオンにして、コードをデコードしてみてください——それでも動きます、そもそもサーバーが介在していなかったからです。
コードがURLなら、ツールはクリックできるリンク(rel=nofollow付き)を渡すので、飛ぶ前に行き先を見られます。Wi-Fi文字列や連絡先カードなら、生の文字とコピーボタンが手に入ります——読んで、使って、それはあなたのマシンにとどまります。
機密性の高いコードへの分別ある習慣
2つの小さなルールがあなたを守ります。
- 行動する前に文字を見る。 コードをデコードすると、端末が何かに接続する前に、行き先や中身が見えます。それだけで、印刷されたコードが敵対的な場所を指すものにすり替えられる、QRを使った詐欺の多くを無力化します。
- ツールを秘密に合わせる。 公開リンクなら、どこでデコードするかはほとんど関係ありません。パスワード、トークン、誰かの個人情報なら、ローカルでデコードして、秘密がそもそも端末を離れないようにしましょう。
正直な限界も述べておく価値があります。これはあなたが用意した画像から、一度に1つ、コードを読みます。ライブのウェブカメラからではありません——すべてをローカルに保つための意図的な選択です。QRコードが隠しているかもしれない何にとっても、自分の端末で読むことが単純に正しい既定です。
