This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2642R:用于密钥存储内存使用的 API

Guru**** 2387830 points
Other Parts Discussed in Thread: CC2674R10, CC2642R
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1281656/cc2642r-api-for-key-storage-memory-usage

器件型号:CC2642R
主题中讨论的其他器件:CC2674R10

在哪里可以找到用于写入密钥存储器并从中读取的 API 和文档? 谢谢。

此致、

沭阳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的沭阳:

    感谢您与我们联系。

    请问 API gapBondMgrReadBondRec 是否 可以提供帮助? 如果是、请参阅用户指南中的"提取绑定信息": https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/7.10.00.98/exports/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/gapbondmngr-cc13xx_cc26xx.html#extract-bonding-information

    我希望这将有所帮助、

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Clement、

    感谢您的及时响应。

    绑定记录是否存储在密钥存储器中? 从 API 的描述来看,它似乎将绑定记录存储在 NV 中。

    此致、

    沭阳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    添加更多背景信息:目标是使用密钥存储区存储器将密钥保存在 AES 加密中。

    我查看了 TI 驱动程序 API 文档 CryptoKey.h CryptoKeyPlaintext.h、也是 SimpleLink Academy 中的高级安全功能、Academy 提供了一个  使用纯文本启动加密密钥的示例、我假设我应将 CryptoKey->encoding 更改为 CryptoKey_BLANK_keystore 以使用密钥存储器、但找不到相应的 API。

    keystore _PSA_initKey()似乎是执行此操作的正确 API,但它仅支持 TI 驱动程序 API 文档中的 CC13x4/26x4。 您能否确认 CC2642是否支持此 API?

    此致、

    沭阳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的沭阳:

    绑定记录是否存储在密钥存储器中? 从 API 的描述来看,它似乎将绑定记录存储在 nv.

    绑定信息包括键(LTK、IRK、SRK)等。 绑定信息存储在 NV 中、因为它应该能够在重新启动后继续使用。

    目标是使用密钥存储区内存将密钥保存在 AES 加密中

    我不确定我是否理解这一点、但根据我的建议、您可以访问加密密钥、因此您应该很好。

    keystore_PSA_initKey()似乎是执行此操作的正确 API,但它仅支持 TI 驱动程序 API 文档中提供的 CC13x4/26x4。 您能否确认 CC2642是否支持此 API?

    CC2642和 CC13x4/CC26x4具有不同的 PKA 加速器

    我希望这将有所帮助、

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Clement、

    目的不是访问加密密钥、而是使用密钥存储区存储器来保护密钥免受攻击。

    CC26x2 TRM 第12.5.6章介绍了密钥区域(或密钥存储区)、该区域是存储密钥的专用存储区、仅允许从 DMA 进行访问:

    我的客户的目标是使用此关键区域来保护他们的 AES 密钥免受外部攻击、但找不到说明如何启用它的示例。

    您能不能帮我们联系司机团队、看看我们是否有这样的示例? 如果您需要有关此用例的更多信息、请告诉我、谢谢!

    此致、

    沭阳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的沭阳:

    感谢您提供的其他信息。

    请参阅文件中的函数 AESWriteToKeyStore()和 AESReadFromKeyStore() \source\ti\devices\cc13x2_cc26x2\driverlib\aes.c

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Clement、

    感谢您的指导。 客户已试用过 API、仍有以下2个问题:

    1.根据 AESReadFromKeyStore()的注释,它将密钥从 keyStoreArea 传输到模块的内部缓冲区。 但我找不到缓冲区的位置以及如何利用缓冲区来执行 AES 加密/解密:

    2.密钥存储存储器是否位于 RAM 中? 它可以承受下电上电吗? 如果它不在 RAM 中、它在哪里? 客户的目标是找到一个安全的地方来存储他们的密钥、如果密钥存储存储器在 RAM 中、我猜它无法实现这一目标。 您能否详细说明密钥存储区的设计目的及其典型使用案例?

    此致、

    沭阳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的沭阳:

    有关如何使用上述函数的详细信息、请参阅 AES 驱动程序。 这些驱动程序位于 \source\ti\drivers\aesxxxx

    2-密钥存储器位于密钥存储 RAM 中(如 https://www.ti.com/lit/swcu185f §12.5.1中所述)。 他们可以运行测试、以查看复位是否会擦除密钥存储 RAM。 同时、我会向研发团队提出这个问题。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Clement、

    我在 AESCBCCC26XX.h 中找到了密钥存储区的说明、其中指出 密钥存储区仅用于将密钥加载到 AES 加速器中、而不用于存储密钥:

    https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_7_10_01_24/docs/drivers/doxygen/html/_a_e_s_c_b_c_c_c26_x_x_8h.html

    如果我的理解正确、那么密钥存储区 RAM 仅用作 TI 驱动程序的临时缓冲区、而不供用户存储密钥。 您能否确认我是否理解正确? 如果是、我仍然不明白为什么我们需要 RAM 的这个特定区域作为缓冲区、因为通常密钥已经在 RAM 中、为什么 AES 模块不直接从 RAM 加载密钥?

    此致、

    沭阳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的沭阳:

    您是对的。 最后、CC2642R 不像 CC2674R10那样提供安全密钥存储。

    此致、