本帖最后由 IJK 于 2011-2-14 13:33 编辑
看到大家讨论,STM32 的唯一 ID已经有**公司可以改写。这对大家的代码安全是个很大的挑战。
这里提供1个方法,原理跟原来的ID加密类似,但能解决唯一 ID被**公司改写的问题:
1)我们知道STM32唯一 ID的基地址位于0x1FFF F7E8,在memory mapping中处于system memory区域。同时,boot loader也在这个区域。
2)既然唯一 ID有**公司可以改写,那么把唯一ID的概念加以扩展,把从 0x1FFF F000~0x1FFF FFFF的整个区域当作唯一的ID,来加以利用。问题就此解决。
3)还可以考虑不同级别的安全方式。比如 唯一ID作为ID1,0x1FFF F800~0x1FFF F80F(即Option Bytes)作为ID2,0x1FFF F80F~0x1FFF FFFF(即reserved)作为ID3。
最后,套用1句话:“只要肯动脑筋,办法总比困难多”。 |