就目前所了解的来看,防止抄板不仅仅是个技术问题,更应该是个博弈的过程。设计产品时,不应不计成本地追求无法被抄板的技术,而应该根据产品特性选择适合的防抄板手段来增加抄板的复杂度,从而使得抄板成本变得不可接受,有效避免硬件被盗版。
抄板和防抄板是个“攻和防”的问题,只有了解如何“攻”,才能更好的去“防”。解决此问题除了咨询专业PCB设计人员以及网上搜索外,还采用以买家身份和提供抄板服务的公司或个人沟通,了解PCB抄板及芯片解密的行情。
以下为调研PCB抄板及芯片解密情况:
在TB选择一款电路模块(size:6X6cm,双层),通过咨询相关抄板企业,了解到复制这款模块的价格在400元左右,可以提供PCB文件和元器件清单,加200元可以提供原理图文件,且保证板子的正确性。通过继续沟通了解到,此公司不可以抄高频PCB板以及柔性板,称其难度较大。如果PCB上有芯片LOGO被打磨掉,需要找专业人士鉴定型号,这需另收费用。
而后咨询一家国内比较专业的芯片解密公司,了解到解密一款51单片机时,其要价为20000元。若芯片中的程序在下载程序时被加密,则解密难度会加大。且此芯片型号较新,以前没有解密过,不能保证100%解密。然后我又提出由于芯片采用防抄板技术,在上电时需要认证ID号。得到的回复是这需要反汇编操作,其无法完成此此任务。
从以上的沟通了解到,“硬件盗版”的难度等级从低到高大致是为:从电路板反向出PCB文件或原理图文件,高频PCB或软性PCB的抄板,推断出没有LOGO的元件型号,解密芯片获得二进制文件,对被加密的二进制文件进行反汇编等。
下面简单介绍可采用的防抄板手段:
1、PCB抄板的防范手段有
①、打磨掉芯片上的LOGO,多采用没有器件标识的元件以及在不影响功能的前提下,放置干扰元件。采用这些措施来增加从电路板反向出PCB文件。
②、封胶,喷漆。这种方法只能简单的增加抄板难度。
③、PCB采用埋孔和盲孔技术,使过孔藏在板内,此方法成本较高,只适用于高端产品。
④、对于高频板可以利用PCB的特性,利用分布电容等参数,使得抄板后参数出现差异而导致板子不能正常工作。
总的来说,目前反向设计可以采用低成本的操作流程对PCB进行复制,所以PCB上可做的防范措施只是增加抄板难度以及抄板成本。
2、芯片解密的防范手段有
①、打磨掉芯片LOGO,印上其它芯片的LOGO。选择电源、地等引脚布局大致相同的芯片(最简单的方法是选择同一公司不同型号芯片的LOGO)。这可以误导解密公司,使其解密出的芯片无法正常工作。需要返工,重新分析器件型号,增加解密成本。
②、采用一些比较生僻、偏冷门的单片机来加大仿冒者采购的难度,以及避免遭遇所采用的芯片已经被某些公司解密过的情况。
③、主控芯片选择加密性能比较好,解密难度较大的芯片。或直接采用具有高安全性能的SoC。
④、在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效应对物理攻击。
⑤、采用CPU卡通用COS保护技术或开放的CPU卡加密协处理器技术。
⑥、主控芯片的程序在下载时采用软加密的方式。
⑦、在程序区中,标注你的单位,开发时间及仿制必究等标识,以备获得法律保护。
芯片的解密相对难度较大,成本较高。采用简单的防范措施就可以极大的增加“硬件盗版”的难度,从而增加解密成本。
3、软硬件结合的防范手段
①、最简单的防范手段是采用口令认证。目前主流的处理器芯片都会有唯一的ID号,在系统上电后,首先读取该ID号,确认此ID号在授权范围内,从而保证硬件的有效性。这种方法基本不会增加开发成本,且能达到一定的保护效果。为增加安全性,可以对ID号进行加密处理。但这种口令直接传输的方式,会被很容易地破解。
②、动态口令认证防护技术,可以通过专用防护芯片来实现。其操作流程以及和处理器的硬件连接如下图所示:
基本原理是防护芯片和MCU内置相同的密钥和相同的对称算法,利用随机数作为通讯数据,MCU判断防护芯片的计算结果正确与否,来决定程序是否继续运行。这种产品和技术解决了认证过程中口令的明文传输,可以有效的避免“硬件盗版”。DM2016采用OTP ROM来保存密钥,由于OTP ROM的解密比Flash的解密难度大,所以提升了防范“硬件盗版”性能。其缺点是增加了硬件成本,且占用了PCB面积。
③、采用专用的SoC芯片,将加密模块和处理器集成在一个MCU中,这种芯片如ESPU0808,其内集成了加密处理单元和8051内核。
总的来说,软硬件结合的技术可以有效地防范“硬件盗版”行为,极大地增加盗版成本。但就技术而言,还是可以通过技术手段破解的。
4、我的一种构想
目前采用软硬件结合的方法可以获得比较好的安全性能,要想解密此硬件,可以通过绕过硬件认证,获得密钥以及反汇编等技术手段。所以可以从以下几个方面来采取措施。
①、为了硬件认证被绕过,硬件认证最好不要仅集中在系统上后的一部分代码。可以采用随机函数+定时器的方法进行认证。
②、为了避免密钥被获取,最好采用动态口令认证。这样就避免密钥的直接传输,使得解密软件或专用探测设备很难从芯片中获得的二进制文件推敲出密钥。
③、反汇编是对软件加密最具杀伤力的技术手段。目前很多MCU都会采用一些加密措施来防范解密者从MCU的Flash中获得二进制文件。但这种方法还是会被解密者通过非侵入式,侵入式或半侵入式手段攻克。而如果程序通过加密的方式下载,则可以很好的避免直接的反汇编。从加密的二进制文件中获得密钥和加密算法或绕开硬件认证是比较困难的,这就有效防止了产品被盗版。
原文标题:如何防止自己设计的电路被其他人抄了?
文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论