PCI设计经验总结
1 物理安全保护................................................................................................................................................ 2
1.1 最小系统保护........................................................................................................................................ 2
1.2 PIN输入保护......................................................................................................................................... 3
1.2.1 键盘内部放置窃听器..................................................................... 3
1.2.2 键盘覆盖Overlay........................................................................... 4
1.2.3 PIN输入监测................................................................................ 5
1.3 ICC卡座................................................................................................................................................. 6
1.4 磁头的保护............................................................................................................................................. 8
1.5 LCD保护................................................................................................................................................ 8
1.6 非接保护................................................................................................................................................. 9
1.7 环境适应性............................................................................................................................................. 9
1.8 设备防拆................................................................................................................................................. 9
2 路径保护....................................................................................................................................................... 11
2.1 敏感信号走线...................................................................................................................................... 11
2.2 敏感信号过孔的保护......................................................................................................................... 12
2.3 敏感信号上被动器件的保护............................................................................................................ 13
2.4 敏感信号焊盘的保护......................................................................................................................... 14
3 保护机制自身安全.................................................................................................................................... 16
1 物理安全保护
按PCI规范要求,POS需要保护的有最小系统(26分)、PIN输入(26分)、ICC卡座(20分)、磁头(16分)、LCD(18分)、非接(18分)、环境适应性、设备防拆、保护机制自身安全。下面按照这几部分分别介绍保护方式
一般的,如果是采用物理按键作为PIN输入方式的POS,最小系统和IC卡座放在主板的背面。
1. 如果CPU不具有DDR总线加密机制,那么最小系统可以用保护墙和保护板构造一个封闭的空间来保护。
|
|
|
Figure.1 封闭空间保护最小系统
2. 如果CPU具有DDR总线加密机制,最小系统可以不用封闭空间保护,原因如下:
1. CPU的壳体具有MESH层保护,存储在CPU RAM的秘钥受到保护;
2. DDR中的程序和数据都是经过CPU加密的;
3. Flash中的程序和敏感信息都是经过签名和加密的,签名可以防止程序被替换,CPU加载程序时会对其进行签名校验。
如果是采用TP作为PIN输入方式的POS,且没有物理按键, ICC卡座和最小系统就可以放在主板正面,利用面壳形成的墙壁作为保护墙、屏幕形成的正面保护、主板内部的MESH充当传统POS盖板的作用,可以简化保护方式,如A70X最小系统和IC卡座保护省掉了保护框和盖板。
|
|
|
|
|
|
Figure.2 A70X 核心区域示意图
1.2 PIN输入保护
PIN输入要保护的有:
1. PIN输入的整个路径,包括路径上的过孔、电阻电容等器件;
2. 防止PIN输入区域放置窃听装置;
3. 防止用Overlay覆盖按键表面以记录痕迹,包括在键盘表面和键盘内部。
采用物理按键作为PIN输入方式的POS,硅胶按键设计成一整块,从内部安装,内置Bug需要更换硅胶按键,但硅胶按键有Tamper switch,所以更换硅胶按键是比较困难的。
|
Figure.3 键盘内部
面壳按键区域表面应做成光滑的,没有明显的台阶,这样在面壳按键面上放置一个记录材料极易被发现。
内部有Tamper switch和Keymesh的保护,很难覆盖Overlay。
|
Figure.4 物理按键表面
|
Figure.5 TP表面
1.2.3 PIN输入监测
对于PIN输入监测:
1. 结构设计上,每一个数字按键都应用相同的设计、材料以保证每一个按键按下和松开时产生的机械声音一致;
2. 硬件设计上,用在按键信号线上的滤波器件要用相同的型号及厂家,PCB上的各按键信号线走在同一层;
3. 台式机的按键周围应加防窥罩,防止他人窥视。
|
Figure.6 按键产生的功耗变化
|
Figure.7 按键产生的CPU电磁辐射变化
|
Figure.8 防窥罩
1.3 ICC卡座
ICC卡座需要保护的是ICC的I/O信号线、ICC卡座。
1. I/O信号线包括接口芯片与CPU的I/O线、接口芯片与卡座的I/O线,I/O线、接口芯片、卡座及连接在I/O线的被动器件都要用Tamper mesh或保护区域保护;
|
|
|
Figure.9 IC卡座保护
2. 卡座宜用PIN脚全在卡座后面的类型,应放置在用保护墙、主板、盖板组成的保护区域,卡座与各PCB的间隙尽可能小,卡口尽可能的与面壳或底壳贴近。
|
|
Figure.10 卡座围墙
|
Figure.11 IC卡座
磁头需要保护的是信号线及防止双磁头,保护方式:
1. 如果采用的是加密磁头,那么与CPU连接的信号线不需保护,但磁头线圈的6个PIN脚和加密芯片应用环氧树脂封闭;
2. 如果是非加密磁头,那么信号线、连接器、磁头解码芯片和磁头线圈的6个PIN脚都要用Tamper mesh来保护;
3. 磁头的安装位置旁边最好是主板或背板的边缘,便于在靠近磁头的PCB边缘上绕Tamper mesh,这样要加装磁头必须先失效 mesh,从而达到阻止加装磁头的目的
Figure.12 防止双磁头示例
1.5 LCD保护
LCD部分需要保护的是LCD数据总线及连接在I/O上的各种被动器件(电阻电容、滤波器)、LCD防拆。
1. 数据总线路径及过孔一般用Tamper mesh保护;
2. 被动器件放在安全区域内,LCD连接器放在LCD正下方;
3. 用LCD或者TP压住两个斜对角放置的Tamper switch来防拆
4. LCD的镜片最好是从设备内部安装,不要从面壳上面贴上去;
5. LCD与PCB的高度不宜过高,这样LCD下方的空间对于LCD的组件是安全的,可以将一些滤波器、电阻电容放在这里。不过这个高度一般不宜超过4mm(V37的经验),过高需要另加保护墙保护LCD连接器。不同的实验室可能要求不一样,像UL就要插座也要用保护墙围起来,而Brightsight要求相对比较松。
|
|
|
|
|
Figure.13 LCD分解图
非接接口芯片位于保护区、信号线受到保护即可。
设备的安全性不应受到以下影响:
1. 环境变化,主要指温度;
2. 操作条件变化,主要指电压。
一般的,POS机操作的温度范围是0℃~50℃,存储的温度范围是-70℃~-20℃,在这两个温度范围保证设备不触发即可。
安全CPU都会有RTC电压和核心电压监测,超出范围会导致设备触发。
一般用Tamper switch或斑马条来实现防拆:
1. 采用物理按键的POS,面壳有按键区的Tamper switch和LCD 的Tamper switch来防拆;
2. 采用TP的POS,TP与面壳紧贴,TP压着一个斑马条;
3. 底壳一般放置4个(数量不是关键,两个或3个也是可以的)Tamper switch,位置尽量靠近螺丝孔。
|
Figure.14 具有物理按键的POS面壳防拆
|
|
|
|
|
Figure.15 具有TP的POS面壳防拆
Figure.16 底壳防拆
2 路径保护
敏感信号一般包括PIN、ICC I/O、MSR、LCD 数据线、非接的SPI。采用Tamper mesh的方式保护信号线,要求信号线所在PCB层的上下一层各覆盖Tamper mesh。以一块8层板为例,信号线在PCB的第4层,则在PCB的第2/3层选一层走Tamper mesh,第5/6/7层选一层走Tamper mesh,Tamper mesh的范围只需覆盖第4层的敏感信号全路径。如下图 ,信号线在第四层,绿色标示,第二层和第七层为Tamper mesh,将信号线包在中间,从正反两面去探测信号线都要先失效Tamper mesh。
Figure.17 信号线路径保护
如果敏感线路有插座,如A70X采用TP作为PIN输入方式,需要保护TP的排线和连接座。 A70X的TP排线采用一层MESH包住TP排线,连接座位于一个插座保护区内。
Figure.18 TP排线
|
|
|
|
|
|
Figure.19 敏感插座区域爆炸图
敏感信号的过孔两面也要用Tamper mesh覆盖,以8层板为例,3-6的埋孔信号必须用第二层和第七层的Tamper mesh覆盖这个过孔,而不能用过孔经过的层的Tamper mesh,例如第6层的Tamper mesh。如下图3-6的过孔,被第二层和第七层的Tamper mesh覆盖。
Figure.20 过孔保护
连接到敏感信号的电阻电容等被动器件应放置在一个有Tamper mesh包围的保护区域,实际中一般的做法是放置在由墙板、盖板和主板围成的空间里。
|
Figure.21 保护区域
一般的,安全CPU采用BGA的封装,CPU的壳体上有Tamper mesh从正面保护CPU的焊盘,如果是焊盘裸露的封装则需一个保护空间,焊盘的另一面则需Tamper mesh覆盖焊盘。以8层板为例,CPU放在底层,PCB的2/3/4/5/6/7的任一层的Mesh覆盖焊盘即可,一般用第二层覆盖,3/4/5/6/7用来走线或布电源层。下图黄色的焊盘是按键信号的焊盘,PCB的第2层Mesh覆盖了这几个焊盘。
Figure.22 按键信号的CPU焊盘
特殊的,采用物理按键作为PIN输入方式的POS,焊盘保护一般采用Keymesh 的方式:
1. Keymesh用一对动态Tamper 信号绕一层,阻止从机器正面攻击焊盘获取PIN输入信号;
2. 至少放置三个相互独立的Tamper switch,且Tamper switch应在Keymesh的边缘,阻止揭开Keymesh。
|
|
Figure.23 焊盘用Keymesh覆盖
错误示例——V60SE POS安全,Keymesh四个角没有用Tamper switch压住,未通过测试。
|
|
Figure.24 Keymesh错误示例
3 保护机制自身安全
目前实际中用到的保护机制是Tamper mesh和Tamper switch。
1. 按键及核心保护区的Tamper mesh的线宽线距要求最大是6mil,且要用两组动态的Tamper 信号绕线;
2. Tamper 信号的过孔也要保护,一般用Tamper mesh或Tamper switch的方式;
Figure.25 Tamper 信号过孔用Tamper mesh保护
Figure.26 Tamper 信号过孔用Tamper switch保护
3. 所有连接到Tamper 信号上的焊盘、电阻电容及之间的走线都不能暴露在非保护区域;
4. Tamper mesh应尽量完整覆盖保护区域,不宜留有大片未覆盖mesh的区域,如下图白色框的区域,mesh覆盖较完整;
Figure.27 保护区域mesh完整覆盖
5. Tamper 信号上接的若干个Tamper switch要用串行的方式连接,不能使用并行的方式,因为并行的失效一路并不会导致设备触发;
Figure.28 Tamper switch串行&并行连接
6. Tamper switch要防止导电油墨的攻击,动态& 静态低触发Tamper 信号的Tamper switch采用外环接地的方式,静态高触发Tamper 信号的Tamper switch采用外环上拉到纽扣电池电源的方式。外环离Tamper switch的距离要适中,太远容易导致使用导电油墨攻击的难度下降,太近容易使Tamper信号与外环短路,不利于生产组装。
Figure.29 常用的Tamper switch封装
7. 保护墙目前有两种走线方式,一种是走平面线,一种是打“缝纫机”孔。平面线要求层数多,每层之间的间距小于0.5mm,如2mm的板做4层,“缝纫机”式的走线要求过孔尽可能的靠近,从侧面看就像形成了一排竖直的栅栏,这样留出的侧攻击缝隙就小,难度就大。
|
Figure.30 缝纫机式走线侧面图
Figure.31 缝纫机式走线正面图
8. MESH路径上,最难攻击的点靠近CPU的管脚,容易攻击的点放MESH路径的中间,一般的,后壳的几个触发点是比较容易失效的,如果MESH路径上一头一尾正好是后壳的触发点,就可以失效这两个点后,将这一路MESH攻破。
Figure.32 Tamper失效示意