IRK和ERK是什么?它们会影响什么?



IRK和ERK在我的ST BLE设备项目代码示例中作为常量出现。

/**
*   Identity root key used to derive LTK and CSRK
*/
#define CFG_BLE_IRK     {0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0}
/**
* Encryption root key used to derive LTK and CSRK
*/
#define CFG_BLE_ERK     {0xFE, 0xDC, 0xBA, 0x09, 0x87, 0x65, 0x43, 0x21, 0xFE, 0xDC, 0xBA, 0x09, 0x87, 0x65, 0x43, 0x21}
static const uint8_t BLE_CFG_IR_VALUE[16] = CFG_BLE_IRK;
static const uint8_t BLE_CFG_ER_VALUE[16] = CFG_BLE_ERK;
aci_hal_write_config_data(CONFIG_DATA_IR_OFFSET,
CONFIG_DATA_IR_LEN,
(uint8_t*) BLE_CFG_IR_VALUE);
aci_hal_write_config_data(CONFIG_DATA_ER_OFFSET,
CONFIG_DATA_ER_LEN,
(uint8_t*) BLE_CFG_ER_VALUE);

徘徊是否需要在设备之间不同?例如,在使用该代码生产数千个设备的情况下,我是保持它们的值不变还是随机化它们?

您需要使用加密安全的随机数生成器将它们随机化。只要至少存在一个键,数据就应该保持持久化。

如果不随机化IRK,多个设备将被错误地识别为相同的设备。

对于其他密钥,如果您重复使用密钥,则会失去安全性。

相关内容

  • 没有找到相关文章

最新更新