![](/uploads/20230517/64648cae3fde9.png)
传统的从智能卡中读出数据的采用机械探测攻击入侵,就是入侵芯片处理器的总线部份,这些攻击手段包括物理1:1还原芯片程序和直接使用微探针直接读取内部程序,当然,这就是解密手段难度加大的原因,比如说芯片的大小,存储器的硬件访问控制电路越来越复杂。
半侵入式攻击方式已经是我们研究经常使用的手段了,半侵入式攻击的话芯片还是保持原来的状态,没有直接的电接触,芯片仍然是完好无损的,这样的攻击例子包括光学探测,用激光诱导瞬态故障在一个或多个门导致的信息泄漏;涡流电的攻击,其中一个类似的效果是通过使一个小线圈接近芯片的表面,并诱导一个大的瞬态磁场。
用半入侵式方法将存储器的程序读取出来并保持存储器是一个无损的状态是否是一种顺理成章的方式?在我们看来,答案是肯定的,我们将在COMS RAM中来讲述这个技术,但是他们的应用是更为广泛的。
{C}2、{C}{C}光学读取CMOS RAM
一个典型的SRAM单元的结构如图1所示。;两个逆变器是由一对P和N沟道晶体管构成。第一个逆变器的输出连接到第二逆变器输入端,反之亦然。两个N沟道晶体管用于它读取数据和写入数据到它。一种基于微分结构读写放大器获得的单元(图2)。
在显微镜下面用红色激光聚焦在芯片表面对SRAM的存储结构进行分析,红色激光光子(650nm波长)的能量大于硅的带隙,它们将芯片内部的活动区电离,如果光子接近p-n结面积,由于光电流会产生光伏效应,当光子打到P或N沟道区,浙江通过自由载流子注入下降通道。在每一个CMOS反相器,有六个PN结,也有两个电阻对应于N和P-信道。
事实上,使我们能够读取一个存储单元的状态是,电阻明显的下降通道关闭,和几乎可以忽略不计的打开通道,因此,通过瞄准一个合适的晶体管或晶体管的激光束,我们可以区分这两种可能的内存状态。
在我们的第一实验中,我们建立了一个微控制器芯片表面的光电流的有源区地图用于激光扫描测量,该芯片被安装在分辨率为0.1um的X-Y平移台上,扫描结果如图三所示,有源区可以被看作是他们产生跟高的电流,但大部分的芯片上覆盖金属层,激光无法穿透,所以这些区域不产生任何电流,我们可以把这张驱动芯片的结果做为一个参照物。
我们的下一个实验是来操作芯片它的编程是允许我们将任何值上传到它的内存,然后停止芯片操作,与随机数据加载的存储单元的扫描的结果如图4所示,可以看出单元的状态是不同的,单元沟渠“1”的表面就透亮的,反之底部表现的是“0”,16位表现如下表:我们的实验是有点类似由Sandia实验公布的结果,但有一些差异、他们没有使用非常昂贵的激光扫描显微镜,我们从芯片的顶部开始扫描,在标准的功率分析中,我们使用了一个恒定的电压供应和测量电流,而不是通过发送恒定电流通过芯片。
图3:内存无启动激光扫描图
图4:内存启动时激光扫描的状态图3、电磁攻击
它也可以使用电磁感应扫描半导体芯片。在我们解释了一个低成本的攻击中,我们使用了一个微距闪光,探针和一些线插入去故障一个加密处理器。我们用细铁丝绕一个探针针尖几百圈建立一个小型电感器。这个线圈注入的电流将产生一个磁场,针将集中的磁场线。我们从摄像头获得电流去连接闪光处。测试探针放置在目标处理器的表面上的几微米。磁场在芯片创建一个涡流电流,就像建立一个芯片的地图(图5)。图片5:使用涡流建立的地图同一区域的正常图
我们尝试看看是否这种故障诱导技术也可以用于无损读出。我们扫描了相同的传感器芯片,我们在一个储存单元创建了一个小微扰。我们的想法很简单:在一个很短的时间的移动晶体管的极化点。只要在两种情况下的偏振点不返回到它的初始状态,在两个情况下,知道如果晶体管被锁定在“0”或在“1”它是有可能存在的。因此,我们试图做一个定时攻击。在实践中,我们发现以区分内存状态,时序差异是不够的,但是当前所需的强度恢复的偏振点的初始值零状态和1状态是明显不同的。
我们设法从静态的RAM和flash的中恢复了几个字节,在一个单元里面,这两种状态是不一样的。但只要晶管体不以相同的方式反应,当他们的偏振点是不一样的,它似乎是可以测量的差异。
通过的精准设备,在芯片上创建足够的电流而不干扰任何存储单元的内容是有一定的技术难度的。特别是,读写放大器是相当敏感的,甚至一个小扰动的其中一个组件将带动一整行或列的输出到一个定值。
因此我们集中我们的实际研究细化激光读出方法。然而,随着更好的设备组合,提高了实验室的技术和更复杂的信号处理,我们相信它可以利用电磁技术的内存读取实际。4、制冷和探测
上述的直接内存读取技术是有效但慢,他们可以从芯片中读取程序,然而,智能卡芯片通常有防御下时钟如复位电路或使用动态逻辑。
在解释为了当电源关闭保护数据的完整性如何制冷一个RAM内存,我们使用要同的技术,但取而代之的是帕尔贴制冷或液氮喷淋冷却,制冷RAM保持其内容为显着更长的时间从几分钟到几个小时。为了能读到离线内容,我们用这种方法来保护数据,特别是制冷保护一个RAM内存或是回复一个56位的DES密钥
不管用什么方法攻击芯片得到芯片的数据,反之我们总是设法用一种方法或另一种方法来提取数据,因为随着芯片加密结构的提升,破解手法也随之不同。
{C}5、{C}{C}结论
攻击芯片的手段是随之芯片加密的结构的变化而变化的,但有一些国外的芯片,受阻于设备,你们可能就是无法研究的。随着加密手段的提升,所要运用到的设备和技术研究的投入也会不同,这里我们讲的是半攻击技术,一会我们还会讲到全侵入攻击,像这样,就是投入非常到,要用到的设备费用也是非常高。