5

私は QR コードと、コード自体がどのように深刻なセキュリティ リスクにつながるかについて多くのことを読んできました。しかし、私が遭遇しなかったことの1つは、次のことです。

次のシナリオでは: 私のデータの一部を表示する QR コードがあります。

そして、コードをスキャンしてその内容を確認し、許可されていることのリストに何かを追加して、QR コードを再印刷します。翌日、仕事に来てコードをスキャンすると、コードに追加した余分なことを実行することが許可されます。

私の質問は、このシナリオの発生をどのように停止できるかです。私のデータがデータベースのデータと一致しているかどうかを確認することはできないことに注意してください。

より詳しい情報:

phonegap と Sencha Touch 2 を組み合わせて QR コードリーダーを作成しています。
これは、Android 4.0 デバイス専用に設計された Android アプリケーションです。
QRコードは年1回発行されます。
誰かが昨年の QR コードをスキャンしても機能しません。
注: 理論的には、彼がコードの日付を変更して侵入できるようにする場合、これはまさに私がブロックしようとしているものです。
一部の従業員は、コードを読み取るアプリケーションにアクセスできます。
アプリはQRコードのデータを検証する手段を持っていないので、QRコードのデータのみを利用したものでなければなりません。

4

4 に答える 4

12

秘密鍵でQRコードデータに署名します。読者はQRコードを確認するために公開鍵が必要になりますが、公開鍵を秘密にしておく必要はありません。

ECDSA Secp256K1キーを使用する場合、署名はQRコードデータに約68バイトしか追加しません。

QRコードにも発行日を含めてください。リーダーは、QRコードが古すぎないことを確認するためにローカルクロックが必要になります。リーダーに時計がない場合は、少なくともこれまでに見た最新の有効なコードを追跡できます。その日付の1年以上前に発行されたコードは、間違いなく無効です。

BouncyCastleとOpenSSLの両方に、必要なコードの実装が含まれています。

コードリーダー/ベリファイアに偽のQRコードを生成するために必要なすべての情報が含まれていても問題がない場合は、ECDSAの代わりにHMACを使用できます。これはより単純で、HMACは16バイト程度で、それでも機能します。

于 2012-06-29T12:31:50.897 に答える
6

QR コードが単純にプレーン テキストをエンコードしていることを認識していれば、これは簡単に理解できます。テキストファイルや壁に印刷されたテキストを扱っているだけでスキームが安全でない場合、QRコードはそれを変えません. QR コードにはセキュリティ メカニズムはありません。

逆に言えば、QRコード以外でスキームを保護するために利用できる手段はすべて、おそらくここで適用できます. 探しているのはデジタル署名です。これは、SSL 証明書が有効であり、電子メールが要求された送信者からのものであることを証明するために使用されるのと同じ種類の公開/秘密キー スキームです。ユーザーが提供する必要があるデータは、改ざんされていないことを確認するために署名する必要があります。

署名されたドキュメントを表す Base-64 でエンコードされたバイトなど、QR コードには何でも入れることができます。それをどう処理すればよいか、読者にはわかりません。スキャンし、それをデコードしてそれに応じて動作することを知っているカスタムアプリを作成する必要があります.

安全に管理している Web サイトにユーザーを誘導する方法を考える方がはるかに簡単だと思います。

于 2012-06-29T13:56:02.317 に答える
0

比較できないのなら、どうやって確保できるのかわかりません。たぶん、すべての情報が秘密鍵でハッシュされる可能性がありますか?その後、キーなしでコードを再印刷することはできません

于 2012-06-29T12:08:33.600 に答える