これは不可能だと思いますが、バーコード(URLを含むことができる、つまりQRスタイルのもの)を見つける必要があります。
スマートフォンアプリで撮影する必要がありますが、画像は数週間または数か月間変更されることはなく、紙に印刷する必要があります。
バーコードに何を入れても、常に同じ問題が発生します。誰かがQRコードを撮影し、印刷して再スキャンする可能性があります。
それは私たちが避けようとしていることです:バーコードの無許可のスキャン。
バーコードは数秒間のみ電話に表示され、それ以外の場合は簡単に利用できません。
私たちはAGPSを使用して場所を取得することを考えましたが、悪意のあるユーザーがコードを写真に撮って印刷し、最初に取得した場所(移動しない)の近くをスキャンすることができました。
つまり、要約すると、スマートフォンでスキャンできる必要がある数週間/月ごとにのみ変更されるURLを含むことができるバーコードが必要です。許可なくスキャンすることはできません。所有者(つまり、バーコードを持っている人はデバイスを使用してスキャンできません)。
これは悪い考えです。
理由を理解するために、QRコードがなく、人間が読めるURLの表示があると想像してください。
では、このURLを秘密にしておくことをセキュリティスキームのベースにしますか?もちろん、あなたはそうしません。それは、あいまいさによるランク付けのセキュリティです。
URLをかなり機密にしたい場合は、高度なウィザードを使用せずに行いますが、誰もがURLを知っている場合でもセキュリティを保護する必要があります。リソース名へのアクセスではなく(単に)リソースへのアクセス時に認証を実装します。
バーコードに何を入れても、同じ問題が常に発生します。誰かがQRコードを撮影し、印刷して再スキャンする可能性があります。
または、コードを表示する画面をスキャンします。 QRコードはこの種の問題(印刷不良、一部の変換、回転など)に対処するために特別に作成されているため、これを回避することはできません。
コードの写真撮影を防ぐ手法も見つかりません。写真を撮ることができれば、読者もそうではないからです。
私の頭に浮かぶアイデアは:
これは、アクセス許可のvalidationをどのように実装するかにかかっています。それが単に特定の場所へのアクセスである場合、physicalセキュリティ。たとえば、個人アドレスに手紙を送り、使用後にコードを破棄するように受信者に要求することができます。特定の情報がある場合は、暗号化ソリューションに戻ります。たとえば、数字のワンタイムパッドや乱数トークンなど、オンライン銀行が使用する多くのソリューションの1つを使用できます。
実際に機能している生体認証(または物理的セキュリティの場合は人間による検証)以外の方法でできない可能性があるのは、アクセスは、そのアクセスを他の誰かに引き渡すだけです。
「QRコードの写真を撮り、印刷して再スキャンする」ことができるユーザーがカスタムスキャンアプリケーション(またはそれを使用するためのパスワード)にアクセスできない場合、暗号化が必要なようです。
拡張チャネル解釈(ECI)モード(データ-> 8ビットバイト値)でQRコードを使用すると、独自の暗号化ソリューションを実装できます。たとえば、パスワードを使用してURLを暗号化できます。そうすると、あなたのアプリケーションだけがそれを読むことができ、このパスワードを共有します。さらに良いことに、そのパスワードはユーザーにのみ知られている可能性があり、アプリに保存されていないか、ユーザーがアプリを開くためのパスワードを入力すると復号化される暗号化された形式で保存されます。
出力をQRコードに合わせると、非対称のソリューションも機能します。
このように機能するアプリはすでにあります。 ここ または ここ を参照してください
もちろん、もう1つの方法は、テキストを文字化けして保存することです。これは、アプリだけが元に戻すことができる変換を適用することによって行われますが、それはあいまいです。