我正在使用 TMS570LC4357客户 OTP 闪存尝试创建安全的永久布尔值。 也就是说、开关可以翻转一次、永远不会翻转。 但是、以下因素使这一工作具有挑战性:
我的印象是、具有任意代码执行的攻击者可以通过对 ECC 位进行零操作来取消对某个数据位的零操作。 我在测试中确认了这一点。 这表示我们预期设计的潜在安全漏洞。
是否有有关 ECC 算法的文档? 看到这些方程将会很有洞察力。
我当前的权变措施涉及对64位数据及其对应的 ECC 字节进行零操作、这样最终结果既是永久性的、也是确定性的(即使错误校正返回错误数据、也会始终以不可改变的方式出现错误)。 然后、算法将分析这些64位数据和/或8位 ECC 并返回布尔值、以解决错误校正问题并模拟我们的永久开关。 我想我可以检查 ECC 字节是否为0 (假设 错误更正逻辑 本身不会更正错误代码), 或者,我可以计算数据中的高位数并检查其是否低于某个阈值(假设错误校正逻辑只能更正有限的位数)。
我想知道我是否正确地解释了这种情况,以及 TI 是否有更好的建议来解决这一问题。
谢谢!