是否可以使用 Eddystone-EID 离线工作?

Is it possible to work offline with Eddystone-EID?

Eddystone-EID 信标传输临时标识符,这些标识符将由 Google 的邻近信标 API 解析。这意味着如果没有活动的互联网连接,就无法检测到 Eddystone-EID 信标。方法很新,所以网上资料不多。

Google 研究人员在 this paper 中描述了临时标识符的生成和解析机制。以下是程序摘要:Eddystone-EID 信标使用其密钥使用 AES-128 加密其嵌入式时间计数器的值,而密钥是每个信标的唯一标识符。结果是将要传输的临时 ID。就像每 512 秒一样,信标重新计算它们的临时 ID。当接收方收到临时 ID 时,解析器会尝试在已知的预定义密钥中找到提供正确解密的密钥。找到的key对应beacon的标识。

我想知道是否可以根据给定的论文实施离线 resolving/decryption 程序,该程序与市场上的 Eddystone-EID 一起使用。我们可以开发一个使用更少数量信标的本地解析器,而不是在云端使用全局解析器吗?

如果是,有没有之前的尝试或实现等?

你对这个话题有什么看法?

是的,理论上可以在 Android 或 iOS 代码中实现一个 EID 解析器 来计算 EID 传输是否到来来自已知的信标发射器。

移动设备实施需要使用兼容的 AES-128 加密库,并以某种方式存储为每个信标进行解析所需的密钥副本。

在为测试目的构建 server-side 解析器实现时,我考虑构建这样一个库。我还了解到,要让一切都完全正确是非常棘手的。许多 AES 库仅提供部分功能,因此无法使用。

同样重要的是要注意,美国对加密软件的出口限制将使将执行此操作的应用程序放入 Apple AppStore 和 Google Play Store 出现问题。