QR码安全

6
我一直在阅读有关QR码的文章,其中提到QR码本身可能导致严重的安全风险。但是我没有找到以下内容。
在下面的场景中: 我有一个显示我的某些数据的QR码,比如: -名字 -地址 -我被允许做的事情清单
我扫描我的代码以查看其内容,将一些内容添加到我被允许做的事情列表中,并重新打印QR码。 第二天,我来上班扫描我的代码,并被允许做我添加到代码中的额外事项。
我的问题是:如何阻止这种情况发生。 请注意,无法检查我的数据是否与数据库数据一致。
更多信息:
我使用PhoneGap与Sencha Touch 2结合使用来创建我的QR码阅读器。 它是一个针对Android 4.0设备的Android应用程序。 QR码每年提供一次。 如果有人扫描他去年的QR码,它不起作用。 请注意:理论上,如果他更改了代码上的日期,那么他将能够进入,这正是我想要阻止的。 一些员工可以访问读取代码的应用程序。 该应用程序没有任何方法验证QR码上的数据,因此必须使用仅QR码上的数据来实现。

你需要更详细地描述问题,才能得到有用的答案。例如,如果某人可以使用昨天的QR码,即使他已经收到了一个新的QR码,但权限更少,这是否是一个问题?所有设备都在共同管理之下吗?验证器是否具有任何形式的持久存储?我们真正需要完整的要求才能给出真正有帮助的答案,但简短的答案是--使用HMAC对QR码进行签名。 - David Schwartz
@DavidSchwartz 感谢您的反馈,我添加了更多信息。这样对您来说足 - Rick Hoving
4个回答

13

使用私钥对QR码数据进行签名。读取器需要公钥来验证QR码,但公钥不需要保密。

如果您使用ECDSA Secp256K1密钥,签名将仅向QR码数据添加约68个字节。

在QR码中还需包含发行日期。读者需要一个本地时钟来检查QR码是否太旧。如果读者没有时钟,您至少可以跟踪到您曾经看过的最新有效代码。任何在该日期之前一年以上发布的代码都肯定是无效的。

BouncyCastle和OpenSSL都包含了您所需的代码实现。

如果读取器/验证器包含生成假QR码所需的所有信息,那么可以使用HMAC而不是ECDSA。这更简单,一个HMAC可以只有16字节,仍然能够完成任务。


非常感谢,我会在互联网上收集更多关于此的数据并尝试一些东西。我会让这个线程再运行一天,看看是否有其他想法。如果没有,我会将您的答案标记为正确答案。 - Rick Hoving
@david 这个问题是:Mr.Dupe从原始QR码中获取信息,并生成具有相同信息的伪QR码。ECDSA Secp256K1能否阻止这种情况?如果可以,如何实现?如果不能,可能的解决方案是什么? - nation best
1
如果它包含与真实代码相同的信息,那么它为什么是假的?这里“真实”和“假”的区别是什么? - David Schwartz

7
如果你意识到QR码只是编码纯文本,那么所有的推理都会变得更容易。如果你的计划在处理文本文件或者墙上的文字时不安全,那么QR码也无法改变这一点。QR码中没有任何安全机制。
相反,除了QR码之外,任何可用于保护计划的手段都可以应用于此。你要寻找的是数字签名,这是一种公钥/私钥方案,用于证明SSL证书有效以及电子邮件来自所声称的发件人。你的用户需要提供的数据必须由你进行签名,以知道它们没有被篡改。
你可以将任何内容放入QR码中,包括表示已签署文档的Base-64编码字节。没有读取器会知道该怎么做;你必须编写一个自定义应用程序来扫描并知道如何解码并相应地操作。
我认为,最容易构思的方案是将用户安全地引导到你控制的网站上。

0
如果您无法进行任何比较,我不知道您如何保护程序。也许所有的信息都可以使用秘密密钥进行哈希处理?这样,没有密钥就无法重新生成代码。

但是我能不能只改变数据而不改变哈希密钥呢?这样还能正常工作吗? - Rick Hoving
不可以,因为散列值现在不匹配了。散列值仍然是旧数据的散列值。由于您不知道密钥,无法确定新数据的散列值应该是什么。因此,您无法更改数据。 - David Schwartz
但是我必须对QR码上的所有数据进行哈希处理。虽然这是可能的,但很容易被识别和复制。 - Rick Hoving
是的,你可以对QR码上的所有数据进行哈希处理。是的,它容易被识别和复制。然而,没有人能够修改QR码上的数据,因为他无法计算出正确的数据哈希值,而且他也不知道密钥是什么。 - David Schwartz

-3

QR码不过是将文本编码成二维图像而已,所以QR码并不负责加密。但你总可以生成一个简单的验证代码,例如由唯一ID和日期创建的MD5或Base64。根据你想要的保护类型,你可以拒绝或禁用带有错误验证代码的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接