用于PIC微控制器代码保护的关键序列号芯片

time : 2021-04-27 09:40       作者:凡亿pcb


用于PIC微控制器代码保护的关键序列号芯片

对于我们这些设计和开发PCB来保护固件免受黑客攻击的人来说,这似乎是一场捉迷藏的游戏。固件或微控制器代码保护对于保持产品的保真度以及保护产品设计开发中的时间和资本支出的投资至关重要。有几种很好的微控制器代码保护方法,可以使您的固件免受大多数黑客的攻击。但是,一些黑客决心通过以较低的价格充斥复制品或假装您制造的劣质产品来窃取您的辛勤工作和您的利润。对于这些黑客来说,锁上序列号芯片是微控制器代码保护的有效隐藏策略。

数万:PIC单片机代码保护

通常,通过将机器代码下载到本地存储器中来对处理器进行编程。这可能是通过闪烁执行的,其中的代码是可擦除的,并且处理器可以重新编程或硬连线(刻录)到内存中,以后无法进行任何更改。在这些情况下,即使没有经验的黑客也知道程序代码的位置,这使其非常不安全。

PIC微控制器是最流行的控制器之一,它们具有广泛的体系结构和不同的功能。不管方差如何,这些处理器的控制器代码结构都是相似的。大多数固件开发都是通过使用开发板来完成的,这对于调试代码是无价的。但是,这些板可通过串行电缆轻松访问控制器内存。

隐藏和寻求代码安全

序列号密钥的使用是一种加密形式,类似于用于密码保护的加密形式。每个制造的微控制器都分配有唯一的代码,范围从8位到80位或更长。这个想法是防止访问控制器代码,除非代码与访问设备或程序匹配。这样可以防止窥视程序代码。与密码保护一样,黑客也开发了密钥生成器,这些密钥生成器试图创建适当的代码以进行访问。如果有足够的时间,这些代码将非常有效地得出正确的代码。为了阻止这种情况,我建议您将密钥存储在黑客无法访问或可能不知道可以进入的位置。

唯一密钥必须位于可以在执行程序之前读取的位置。尽管这听起来可能有局限性,但是有很多选择。例如:

闪存:这是用于存储程序代码和可能被擦除和重写的键的最佳位置。它用于调试过程以及测试和开发。

程序存储器:这通常是为程序保留的专用内存块。这也是隐藏密钥的好地方。除非知道密钥的加密方法,否则很难将实际程序代码与密钥代码分开。

微处理器存储器(EEPROM):密钥已硬连线或刻录到ROM设备中,无法更改。这取决于系统阻止入侵者进行读取访问的能力。通常在制造过程中或刚好在运输之前完成。

Mikroe PIC单片机框图

如上所示,在几个存储位置中,密钥可以存储在微控制器中,并且不能由外部读取设备直接访问。此外,可以将外部安全存储组件添加到PCB,微控制器可以通过专用端口位置直接访问该组件。

您可以通过在PCB上实施专用的安全存储设备来创建外部存储单元,以用作微控制器无法访问的存储单元。由于大多数PCB包含许多连接到微控制器的设备,因此潜在的黑客可能不会检测到这种模棱两可的设备。而是假定它是系统关键组件。