安全加密设备名称

时间:2013-12-06 08:05:27

标签: security encryption cryptography

我们有N个设备,每个设备都有一个唯一的名称DEVICE_1,DEVICE_2,..,DEVICE_N

设备广播其名称,以便其他设备可以开始与同一组中的其他设备通信(根据名称的格式)。

设备名称已加密,因此不在该组中的任何其他人都无法看到该名称,因此无法伪造该名称。 所有设备都使用对称加密的一个密钥来加密其名称并解密其他设备的名称。

问题在于对称enctyption的密钥存储在设备中。因此,如果有人入侵设备,请读取密钥,解密名称,将其名称更改为现有名称 其他设备并且让它变得干净,其他人都认为它是其他人。

编辑下面的想法是错误的,因为设备必须能够离线解密名称

我提供了一个将密钥存储在服务器上的数据库中的解决方案,因此一旦设备注册到服务,该名称就会在服务器上加密。即使设备名称具有此功能,也可以使用此功能 由于名称更改总是上传到服务器,因此我们可以再次在服务器上进行加密。

唯一的漏洞是,如果有人闯入数据库并读取密钥......

编辑结束

知道如何解决这个问题吗?

哦,我忘记了,设备在他们知道对方的名字之前无法进行通信,因此不对称密码术无法帮助,因为我甚至不知道我的团队中有一些设备。

1 个答案:

答案 0 :(得分:0)

首先,您似乎尝试通过加密实现身份验证和完整性 - 这是一个错误。即使您使用更多相关的加密原语(如签名或MAC(消息验证代码)),当您对所有设备使用相同的密钥时,如果其中一个设备被黑客攻击,则在使用它们时会遇到问题。

我认为每个设备都应该有一个公钥,数据库应该将它们(带有相应的标识)分发给其他设备。 公钥可能由可信方(例如CA)签名,这样,如果给定公钥和签名,则可以检测到损坏。

然后,使用公钥和身份,您可以创建成对对称密钥(请注意,每个设备应存储N个对称密钥 - 与其在此解决方案中存储的公钥数量完全相同),并使用它们进行有效通信。 你只能使用一个键,但是再次 - 这是非常有问题的。