首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
模拟电路
» 嵌入式系统制造商面临的IP安全性的挑战(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
嵌入式系统制造商面临的IP安全性的挑战(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2016-9-24 22:10
|
只看该作者
嵌入式系统制造商面临的IP安全性的挑战(2)
十六进制
,
控制器
,
安全性
,
嵌入式
,
制造商
完全保护模式:如果无需对闪存模块进行现场或使用外部程序进行升级,那么这种保护模式理想适用于生产阶段。这种模式禁止以任何形式访问闪存,并禁用内/外部读/写操作。
在生成十六进制文件(将在生产就绪型系统编程)的同时,系统设计人员必须设定合适的保护等级,想方设法实现最高IP安全性。
对于需要为不同闪存区域设定不同保护等级的系统而言,最好检查一下闪存粒度保护的设定情况。有些微控制器只允许为闪存赋予一个保护等级。有些器件允许将闪存分为容量为数kB的块,有的闪存块甚至低至64字节。应使用可将闪存分为小块的器件,这样能最大程度地缩小处于较低保护等级的闪存区域。否则会造成闪存浪费或使更多闪存内容面临安全威胁。
隐藏模拟与数字资源及其互联方式
目前我们已经讨论了系统固件部分的IP保护问题。一些OEM厂商为了防止竞争对手读取部件编号,会在PCB板上涂焦油或环氧树脂。对于大批量系统还可以在IC器件上印刷定制部件编号。定制部件编号同样可以使实际部件编号难以识别。然而,这些方法都无法做到万无一失。竞争对手可以跟踪各种连接,观察各种引脚上的信号,并找出设计中所使用的部件,而且找到各种模块在PCB板上的连接方式也并非难事。因此,隐藏各种外设及其互连方式的唯一办法就是使用物理隐藏。例如,如果所有连接都能隐藏到单个芯片内部,那么要弄懂信号链并确定系统使用的外设就变得更加困难。将各种外设集成到单个芯片中有助于隐藏硬件相关信息,考虑到这一事实,因此在防止受逆向工程攻击时,片上系统(SoC)器件应该是最佳选择。然而,有些SoC的专用引脚存在逆向工程漏洞,例如当器件为外设提供专用引脚时,就很容易判断出所使用的外设类型。因此,那些具有灵活布线功能、可以让任意外设连接任意引脚的SoC能够更好地防止受逆向工程攻击。
图3(a)、3(b)和3(c)分别给出了电动自行车控制系统的三个高端实现实例(为了简便,只给出了比较抽象的方框图,并未包含PCB上的各种其它组件)。这些实现方案包括:
· 使用焊接在印刷电路板上的各个模块
· 使用带专用外设引脚的SoC
· 使用带灵活I/O布线功能的SoC
图3(a):基于单个组件的实现方案
图3(b):带专用外设引脚的SoC
图3(c):采用带灵活I/O布线功能的SoC
如果让工程师对以不同方式实现同一系统的这三种PCB板进行逆向工程设计,哪种更容易被还原工程?答案很明显应该是图3(a)中的实现方案,因为一切都清晰暴露在PCB板上。要对3(b)中的方案进行反逆向工程设计就需要更长的时间,但仍可获得基本的实现方法。那么图3(c)方案会怎样?可以说很难甚至不可能摸清这种实现方案,因为它更像是一个只有输出和输出的黑盒子。工程师根本无法找到该系统中实现的模拟信号链,因为SoC可以让所有外设连接任何一个引脚,而且这些外设在内部的互连无需借助任何物理引脚。此外,由于可编程逻辑没有使用专用引脚,因此无法找到保护逻辑。
对这种方案进行逆向工程设计的唯一可能方法是读取决定外设与引脚连接的寄存器。但是竞争对手必须首先解决闪存读取这个难题。如果有人能破解闪存的安全机制,或者系统设计人员忘了设置必要的闪存保护功能,那么如果外设与大部分MCU一样有固定地址,这种情况下信号链才可能被破解。
赛普拉斯半导体公司的PSoC 1器件在这方面能提供最佳的安全功能。这些器件采用通用模拟和数字模块以及可编程布线方式。同一通用模块可实现任意外设。例如,可编程模拟模块可用于实现可编程增益放大器 (PGA)、模数转换器(ADC)、比较器、滤波器甚至电容式感应模块。可编程数字模块可配置成定时器、计数器、UART、PRS生成器或SPI。这些模块都可以连接到任意引脚。这一切都由一些寄存器位来确定。这些寄存器值存储在闪存中并在启动过程中加载。寄存器值在闪存中的存储位置并不固定,而是由程序来决定。系统设计人员可在编译过程中改变寄存器值的存储位置。此外,还可以在运行过程中修改这些寄存器值,以便重新配置模块从而实现不同外设。例如,在启动阶段配置成可编程增益放大器的模块可重新配置成比较器或ADC。因此,几乎不可能对包含这类器件的设计中的硬件资源进行逆向工程设计。
如今的产品要想取得成功必须面对逆向工程设计这一残酷现实,为此应在系统中添加IP安全功能用以避免IP遭到未授权访问。其中很重要的一点就是要隐藏硬件与固件实现方案,从而实现最高安全等级。不同的MCU制造商提供不同的方法来防止闪存遭到非法读/写,因此选择系统器件之前必须评估该产品的安全技术与效果。采用可编程资源和可编程布线技术的SoC对系统中所有底层实现方案都进行了抽象化,留给竞争对手的只是一个无法实现逆向工程的黑盒子。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议