我一直在阅读了很多关于QR码和代码本身如何能导致严重的安全隐患。 但有一两件事,我没有穿过来如下。
在下面的场景:我有一些显示我的数据的QR码可以说: - 姓名 - 地址 - 事情的清单,我允许做
我扫描我的代码,看看它的内容,增加一些对塞入的东西,我被允许做和转载的QR码列表。 第二天我来上班扫描我的代码,并允许我做我添加到代码中多余的东西。
我的问题是:我怎么能阻止这种情况发生的情况。 请注意,这是不可能的检查,如果我的数据与数据库中的数据一致。
更多信息:
我结合使用PhoneGap的与煎茶触摸2创建我的QR码阅读器。
这是一个Android应用程序仅适用于Android 4.0设备而设计。
提供每年一次的QR码。
如果有人将扫描去年他的QR码这是行不通的。
需要注意的是:在理论上,如果他想改变的代码,他将能够得到的日期,这正是我试图阻止。
有些员工能够访问其内容的代码应用程序。
该应用程序没有任何办法来验证QR码的数据,所以它必须是使用上的QR码只有数据的东西。
注册QR码数据与私有密钥。 读者将需要公钥来验证QR码,但公钥不需要保密。
如果使用ECDSA Secp256K1键,签名只会增加约68字节到QR码的数据。
包括发布的QR码以及日期。 读者需要一个本地时钟,以检查QR码是不是太旧。 如果读者没有时钟,你至少可以跟踪你所见过的最新有效的代码。 该日期之前发行了一年多的任何代码肯定是无效的。
无论BouncyCastle的和OpenSSL包含你需要的代码实现。
如果是没关系的读码器/核查员包含生成假的QR码所需的所有信息,那么你可以使用HMAC而不是ECDSA。 这是简单和HMAC可少为16字节,仍然做的工作。
这是所有容易,如果你认识到QR码编码简单的纯文本推理。 如果你的方案是不安全的,如果你只是在处理文本文件或印在墙上的文字 - QR码不会更改。 有一个QR码没有任何安全机制。
围绕把它 - 任何方式都可以保护您的方案,QR码之外,或许可以应用在这里。 你所寻找的是一个数字签名,在同一类型的公钥/私钥方案的用于证明SSL证书是否有效以及电子邮件是从所要求的发送者。 用户需要提供的数据必须由您签字知道他们有没有与它篡改。
你可以把QR码你想要的任何东西,包括代表签名的文档的Base-64编码的字节。 没有读者会知道怎样用它做什么; 你必须写扫描,然后知道将其解码并采取相应的行动定制的应用程序。
我认为这是迄今为止容易受孕,涉及用户引导到一个网站,你安全地控制方案。
如果你不能做任何比较,我不知道你怎么能保证。 也许所有的信息可以用密钥被散列? 那么你就不能没有钥匙转载代码
QR码是比编码文本转换成2D图像不多。 因此,这不是QR码的责任进行加密。 但你总是可以生成一个简单的验证码,例如MD5或Base64,从一个独特的ID加上创建日期。 取决于你愿意,你可以拒绝或禁止的代码是什么样的保护带有错误的验证码。