我正在请求并接收一个iOS设备的认证,只要我保留链接键,我就可以继续连接到这个设备。一旦链接键消失,我就不能重新连接,直到我从iOS设置中“删除”我的设备。我想知道是否有一些方法,iOS设备将分配一个新的密钥,并允许连接而不需要“忘记”步骤。保存链接键虽然是一种解决方案,但很困难,因为DA14580将在连接事件之间断电,而且没有现成的非易失性内存。
不,iOS会保留链接键,直到用户忘记该设备而将其删除。
你有两个选择:1.您可以使用flash或eeprom来存储密钥。2.您可以使用某种散列来生成密钥。参见Bluetooth 4.2 Specification Vol 3 Part H附录b。这是一个例子:每个设备都有一个唯一的硬编码的16字节秘密随机字符串。每次需要创建配对时,您会随机生成16字节的"rand"和2字节的"ediv"(使用加密安全的随机函数,即不是rand())。要生成LTK,请使用某种加密哈希函数以某种方式创建rand + ediv +惟一秘密的哈希。每次您收到带有一些rand、ediv值的加密请求时,您都将以相同的方式再次生成LTK。如果iOS之前设置了绑定并拥有正确的LTK,加密就可以工作。如果某些入侵者试图使用其他一些不匹配的错误密钥,加密将会因为不正确的身份验证标记而失败。一个安全问题是,如果有人探测到一个设备的初始连接,或以其他方式设法获得一对(rand, ediv, LTK),那么该设备的一对永远不能撤销。
原谅我,如果我忽略了一些东西,但有一个应用程序说明或例子如何做Joacimwe的选项1,存储键在flash或eeprom?
谢谢,
——Robertj
嗨robertj,
没有应用说明,但有智能标签参考设计,使用Flash存储绑定信息在Flash中,你可以看看这个,它会帮助你。
由于MT_dialog
MT_dialog:
既然你这么说了,我可能在别处看到过这句话。谢谢你慢跑我稀疏的记忆!
不,iOS会保留链接键,直到用户忘记该设备而将其删除。
你有两个选择:
1.您可以使用flash或eeprom来存储密钥。
2.您可以使用某种散列来生成密钥。参见Bluetooth 4.2 Specification Vol 3 Part H附录b。这是一个例子:每个设备都有一个唯一的硬编码的16字节秘密随机字符串。每次需要创建配对时,您会随机生成16字节的"rand"和2字节的"ediv"(使用加密安全的随机函数,即不是rand())。要生成LTK,请使用某种加密哈希函数以某种方式创建rand + ediv +惟一秘密的哈希。每次您收到带有一些rand、ediv值的加密请求时,您都将以相同的方式再次生成LTK。如果iOS之前设置了绑定并拥有正确的LTK,加密就可以工作。如果某些入侵者试图使用其他一些不匹配的错误密钥,加密将会因为不正确的身份验证标记而失败。一个安全问题是,如果有人探测到一个设备的初始连接,或以其他方式设法获得一对(rand, ediv, LTK),那么该设备的一对永远不能撤销。
原谅我,如果我忽略了一些东西,但有一个应用程序说明或例子如何做Joacimwe的选项1,存储键在flash或eeprom?
谢谢,
——Robertj
嗨robertj,
没有应用说明,但有智能标签参考设计,使用Flash存储绑定信息在Flash中,你可以看看这个,它会帮助你。
由于MT_dialog
MT_dialog:
既然你这么说了,我可能在别处看到过这句话。谢谢你慢跑我稀疏的记忆!
——Robertj