所以基本上我想要做的是,让我的应用程序继续发送包/接收包,以便我知道我之前遇到过哪些人。发送数据很简单:我只需要一个uuid来识别这是我的应用程序,以及一个数字或字符串来表示它代表的用户。现在的问题是,我怎样才能保证安全?让我们说如果有人能够发现它,那么他可以嘲笑一个完全相同的包并发送出去,然后如果他站在我旁边,我的应用程序会相信他是用户,即使他不是(他嘲笑)。
iBeacon完全不符合此要求,因为它的uuid / major / minor很容易被检测到。我能想到的一种方法是使用BLE代替iBeacon在服务中编写加密数据,那么问题是其他人是否可以使用他检测到的数据轻松模拟服务?
答案 0 :(得分:0)
典型的解决方案是将真实标识符与时间戳组合,并使用密钥加密该对。这会产生一个加密的标识符,除非你能解码,否则它会不断变化并且毫无价值。解码后,时间戳可以防止重放攻击 - 它必须在距离当前时间很短的时间间隔内才能使解密的标识符有效。
显然,这种解决方案需要发送器和接收器上的同步时钟。
实施细节更多的是加密问题,而不是信标问题。魔鬼在细节中。