请问STM32在RT THREAD里面,如何优雅地设置读保护,简单地防止程序被读出?
有相应的实现的代码吗,还是说需要自己来写
防止读出
一般我们认为是不可能做到的
。
之前有做过金融POS机固件开发,涉及到固件安全(安全认证)这块,就算使用硬件安全加密芯片,也没法阻止别人读出你的flash内容来。
但是如何保证你的固件安全呢?
有两个方面:
1.固件不可篡改性:固件是明文的,就算你读可以读出来,但是你不能烧录你的代码进去,跑你的代码逻辑;这里用到的方法就是固件签名验签机制;需要芯片的efuse配合进行;
2.固件密文模式:这种就需要安全芯片来支持了,在这种机制下,只能在芯片中以特定的方式去操作读,才能读出明文的内容,然后写数据的时候,芯片自动就会加密数据;总的来算,就是读的时候自动解密,写的时候自动加密
;这种方式,外面的机器一样可以读出你的固件内容来,但是它无法还原明文内容,因为是密文的,它拿不到解密的密钥。
涉及到固件安全这一块,知识还是挺多的,有兴趣一起交流交流。
有个观点,安全是相对的
!
一、STM32本身自带有闪存的写保护功能。可以查看“STM32F10xxx闪存编程参考手册”这个文档,里面的保护章节讲的很清楚。
二、如果没有文档,我提供一个下载链接:
链接:https://pan.baidu.com/s/1JrRwGAPNm40PAKsoiXlalQ
提取码:2okt
如何实现芯片加密?