(1)保护:半导体技术
芯片结构的尺寸(引线宽度、晶体管的大小等)逼近目前技术可能达到的极限,通常结构宽度约在1至0.35 μm的范围内,参看图片1。从其本身来说在技术上没有什么不寻常,然而在硅表面的晶体管密度目前可 用标准的平版印刷制造过程来达到。这种非常精细的技术使得采用分析的方法几乎不可能从芯片析取任何信 息。因此,1flm结构尺寸的半导体技术在目前被认为是安全的,可以确信这一尺寸在未来还将缩小。
图1 照片中(放大了1 000倍)比较了人的头发与智能卡微控制器的半导体结构(Gieseeke&Devrient公司 提供)
(2)保护:芯片设计
“标准单元”经常用于半导体集成电路的设计之中,它们可含有处理器的单元或特殊类型的存储器。 标准单元的采用,使得半导体制造商得以在高质量水平上生产大量不同类型的芯片。这一过程已经被用于安 全性不是关键的元件的大量生产,不能被用于智能卡微控制器。这是因为标准单元的设计和功能是众所周知 的,因此采用它们将给潜在攻击者提供如此之多的信息。智能卡微控制器的功能元件应当按有关应用而特殊 开发,并不做其他目的之用。
(3)保护:哑结构
在芯片上采用哑结构是们经常争议的主题,哑结构是半导体的不具有任何真实功能的元件,目的在于混淆与误导攻击者。其安全性纯粹在於保守该结构的存在与位置的秘密。哑元件可以受到 监测,使得能检查出它们的任何改变并用来切断芯片电源,哑结构的主要不利之处在于它们在芯片上占据了 额外的空间。
(4)保护:芯片的总线
芯片的所有总线把处理器连接到三种不同类型的存储器(ROM,EEPROM和RAM)上,但都不引出到芯片之外 ,因而不能直接与这些总线相连。对于一个攻击者来说,不可能从微控制器的地址、数据或控制总线抽头去 影响总线信号以便读出存储器的内容。此外,芯片上的总线以静态或芯片专有的方式被搅乱排列,使得从外 部无法识别各条总线的功能。
(5)保护:存储器设计
大多数程序的存储介质是ROM,ROM的内容可用一台光学显微镜逐位读(看)出,把这些位组装成字节,排 列字节以获得完整的ROM代码并不是特别困难的事。为了严密地防止这种类型的分析,ROM不是位于芯片的顶 部表面,即容易接触到的那一层。相反,它在硅片的低层中,这样就阻止了光学分析。
然而,如果把芯片上下颠倒地粘在托架上而把背面磨光,则仍有可能读出ROM的内容。因此,在智能卡微控 制器中只使用离子注入的ROM,这样的ROM的内容既不能用可见光也不能用紫外光读出。这也极大地防止了用 选择性蚀刻半导体的方法,避免使ROM的内容再次可见。
(6)防护:保护层
在芯片工作时对它电位的进行分析是一种威胁,这种技术可用来测量晶体上很小区域的电荷电势(电压) ,利用这些信息,就有可能在芯片工作时推导出RAM的内容。为此,在存储单元的顶部要设计上金属化的导 流层以有效地防止这种分析。如果这些金属层用化学腐蚀的方法去掉,芯片将不能正常工作,因为这些层是 给芯片分配供电电源的。
此外,芯片可以利用整个芯片表面或需要特殊保护的区域(如过低频率检测器)的顶部弯曲部分作导流结 构,很容易监测这种结构的电阻,或者把它们结合到芯片的功能部件中去,使得在它们有危险时,芯片立即 停止工作。
也可设想采用不透明的保护层,它的完整性可以连续地由光敏晶体管监测,后者是很容易实现的半导体器 件。如果该层被去掉将立即被检出,而芯片将拒绝任何工作。
(7)攻与防:易失存储器的读出
RAM的数据内容将随掉电而丢失,然而如果存储单元冷冻至-60℃时,这种情况就不会发生。若RAM所存数 据保持长时间不变,其内容也不一定就丢失。这一效应的背景在PeterGutmans的一篇主题为存储介质的安全 擦除[Cutmann 96]的论文中有所叙述。因此,秘密密钥不能保存在RAM中是必要的,应当立刻把它们 擦除掉或用其他数值改写,这样减少了对留在RAM中秘密密钥进行跟踪的风险,同时也削弱了立足于冷冻或 火烧以固定RAM内容的攻击。
读出BAM单元的内容是极其困难的,因为它需要检测所包含的晶体管的开关状态。然而,使用电子显微 镜和特殊的增强反差的方法,确实能够析取出存在RAM单元中的数据,参看图片2。为此的一个先决条件是去 掉钝化层和钝化层之下的金属化层,它们严密地保护RAM以防止这种类型的攻击,去掉金属化层不可避免地 会引起ROM单元受到破坏,因为它们的功能被部分地包含在这些层中。
图2 几个RAM单元的照片,放大了3 000倍,没有附加金属层的保护。照片下图所示为同一RAM单元的电位 ,是在芯片工作时用电子束测试器测得的.
在RAM上的0和1的分布可以清晰地识别出来(Giesecke&Devrient 公司提供)
(8)防护:存储器的乱址(Set·anbling memory)
在微控制器芯片上使存储器乱址,类似的惯例是对总线的搅乱,已越来越多的被采用了。这项技术的安全J 眭是基于对存储单元乱址方案的保密能力,存储器乱址比较容易实现并且不需要芯片上太多的附加空间。没 有相关的乱址信息,对于攻击者来说要发现存储单元实际上如何编址是极端困难的,参看图3。
图3 常规的半导体存储器和智能卡微控制器中所用的乱址的存储器的比较
EEPROM也可用软件使之乱址,然而这需要复杂的编程,而所有的写访问都必须把它们安排成原子进程,否 则系统在突然去掉供电电源时将很容易受到伤害。无论如何,存储器的软件乱址具有能使芯片专用而且是动 态的优点,使得存储器内容在会话期间就可在存储器中重新分布。
(9)攻与防:PIN的加密存储
在实体水平上的攻击的例子是无有效防御机制的典型,这种防御的基本思想是攻击者有可能从智能卡 的EEPROM中读出时,至少在这种情况下应防止对PIN值的研究。当然,可以采取预防性的方法,只要用一个 单向函数对PIN加密,而把结果存在EEPROM中作为PIN比较的基准值,一个卡专用密钥可用做此单向函数,这 样两个相同PIN的基准数据在两张不同的卡中是不一样的。
如果现在有可能从EEPROM中读出基准数据,将发现不可能从这些数据得到PIN。然而,一个聪明的攻击者将不会选择这样的手段,如果正规的PIN是用4位十进制数组成的,编号空间的下限为“0000”而上限为“9999”,这就是说PIN的可能编号数正好是10 000。如果攻击者能读出智能卡的整个内存,就也能读出单向函数和它相关的卡专用密钥,有了这些信息,用单向函数来加密所有可能的PIN,经平均为5 000次的尝试后,将可得到与智能卡相匹配的基准值,也就是说知道了PIN。由此可见,在这种情况下,用一个单向函数来存储PIN并不能提供任何有意义的好处。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。