智能卡防护基础:智能卡操作系统
发布时间:2008/11/22 0:00:00 访问次数:594
硬件的防护机制形成了操作系统软件防护机制的基础,没有可以疏漏的潜在的弱点。因为防护机制的这三 个部分:硬件、操作系统和应用是以逻辑“与”的关系连系起来的。可以用一个链条来比拟,其中最弱的一 环决定了打破的强度。如果在智能卡中某个特定的机制失效了,则整个安全性就瓦解了,尤其是作为实际应 用基础的操作系统,其信息与处理必须受到保护。
以下将特别讨论防御典型攻击的保护方法,而不是一般的智能卡的安全功能。绝大多数的这类功能也对操 作的安全性和防御攻击有显著的贡献。因此,需要参阅第5章有关的各节。
(1)防护:在复位之后对软件和硬件进行测试
当操作系统被初始化后,至少应对硬件的最重要的部分进行测试,以了解它们是否处于正常工作状态,例 如对ram的测试是绝对必要的,因为当芯片在运转时所有的访问条件都被存储在ram中,而单独一位的失效就 有可能导致整个安全性崩溃。对rom和eeprom的最重要的部分进行校验和的计算与比较也同样是必需的。至 少cpu用传送atr进行隐含测试,因为机器命令的大多数都必须无差错地执行才使得atr的传送成为可能。对 cpu或任何可能存在的npu通常限于抽样测试,因为对于正常的运作而完整测试所有功能将占用太多的时间和 代码。
如果操作系统发现了一个硬仵或校验和的差错,这里有两种方式可继续下去。第1个选择是使软件立即跳 转到一个无尽循环中去,这意味着不可能送出atr也不会接收后继的命令。这种做法的主要不利之处是不可 能从外部识别这种运转状态产生的原因。无法说明问题·是压焊引线开路,芯片破裂或是eeprom中的校验和 错误。第2个选择比较好,即卡在本身切断或进入无尽循环之前能送出一个特殊的atr,此错误的atr至少向 外部给出一个关于智能卡内部发生了什么事情的指示。然而不可忽视的事实是发送这个表明出错的atr需要 cpu的大量功能,ram的少量字节和在rom中的数百字节的程序代码。
(2)防护:在操作系统中分开层次
在各个层次之间定义的传送参数用来分开层次,这是智能卡操作系统稳定而坚固的标志。由于在操作系统内分开了层次,使得操作系统内可能存在的设计或编程差错都减少了。这当然不是说错误就不会发生,而其效果是错误不像在浓缩的编程代码的操作系统中那样大量,层次的分开使得在某层中出现的错误难以传播到其他层次之中。
(3)防护:控制数据传送
另一个非常重要的安全因素是控制数据传送的过程以防止对存储器的非授权访问。对智能卡的整个来往通信都是经过被操作系统控制的i/0接口进行的,没有其他可能的访问形式。这体现了在智能卡中的一种有效的存储器保护方式,这样保证了操作系统始终保持着对存储区访问的有效控制。
传输协议由传输管理程序控制,应能截留所有可能的不正确输入,必须没有靠操纵传送的字组来影响对数据传输处理的可能,防止在未经正当授权的情况下使数据从存储器传送到终端。
(4)防护:重要存储内容的校验和
文件的结构,特别是文件的头标(换言之即文件描述符),应能用校验和予以保护。使得操作系统至少有可能检测出任何存储在存储器中的数据的无意识的改变。对每个文件来说,面向对象的访问条件,就被存储在文件的这一部分中,出于这一原因此这种需求就特别重要了。
对智能卡操作系统来说,eeprom中的所有存储区都具有生死攸关的重要性,必须用差错检测码(edc)予以保护,每当该区域被访问或其所含编码被调用执行时,必须在访问或编码执行被允许的处理之前对其内容的一致性进行验证。
(5)防护:应用的密钥
某些操作系统把含有应用及其文件的单独的df加以密封,使得各个应用相互被隔离开。当然这仅仅是基于软件的保护,并没有芯片的硬件支持,因之保护的水平并不像它能达到的那么高。即使是这种用软件手段对应用的密封在出现一差错的情况下也有着极大的好处,因为在未经事先明确选择的情况下使得文件管理器不可能超出此de的界限,结果是使文件中的存储器错误至少被限制在相关的dl"之内。
如果在硬件中存在着存储器管理单元mmu(mem。ry management unit)对操作系统提供支持,不同的应用相互之间可完全被隔离。在这种情况下,即使能在一个应用中操纵软件也不可能获得对其他应用的存储区的未授权的访问。
(6)防护:隐蔽操作系统的活动
每当向eeprom写入数据时,首先要把芯片中的电荷泵接通,这就增加了芯片的电流损耗,使用简单的测试设各能很容易测出来。对操作系统的设计必须考虑到这一事实,即完全有可能从外部来确定eeprom写访问出现的时刻,智能卡的软件必须阻止攻击者从这一点取得好处的可能,参见图1。
重要的是从测量卡所吸取的电流中不可能得出关于机器程序的处理和决策方面的任何结论,如果能利用这种测量去可靠地判断在命令执行
硬件的防护机制形成了操作系统软件防护机制的基础,没有可以疏漏的潜在的弱点。因为防护机制的这三 个部分:硬件、操作系统和应用是以逻辑“与”的关系连系起来的。可以用一个链条来比拟,其中最弱的一 环决定了打破的强度。如果在智能卡中某个特定的机制失效了,则整个安全性就瓦解了,尤其是作为实际应 用基础的操作系统,其信息与处理必须受到保护。
以下将特别讨论防御典型攻击的保护方法,而不是一般的智能卡的安全功能。绝大多数的这类功能也对操 作的安全性和防御攻击有显著的贡献。因此,需要参阅第5章有关的各节。
(1)防护:在复位之后对软件和硬件进行测试
当操作系统被初始化后,至少应对硬件的最重要的部分进行测试,以了解它们是否处于正常工作状态,例 如对ram的测试是绝对必要的,因为当芯片在运转时所有的访问条件都被存储在ram中,而单独一位的失效就 有可能导致整个安全性崩溃。对rom和eeprom的最重要的部分进行校验和的计算与比较也同样是必需的。至 少cpu用传送atr进行隐含测试,因为机器命令的大多数都必须无差错地执行才使得atr的传送成为可能。对 cpu或任何可能存在的npu通常限于抽样测试,因为对于正常的运作而完整测试所有功能将占用太多的时间和 代码。
如果操作系统发现了一个硬仵或校验和的差错,这里有两种方式可继续下去。第1个选择是使软件立即跳 转到一个无尽循环中去,这意味着不可能送出atr也不会接收后继的命令。这种做法的主要不利之处是不可 能从外部识别这种运转状态产生的原因。无法说明问题·是压焊引线开路,芯片破裂或是eeprom中的校验和 错误。第2个选择比较好,即卡在本身切断或进入无尽循环之前能送出一个特殊的atr,此错误的atr至少向 外部给出一个关于智能卡内部发生了什么事情的指示。然而不可忽视的事实是发送这个表明出错的atr需要 cpu的大量功能,ram的少量字节和在rom中的数百字节的程序代码。
(2)防护:在操作系统中分开层次
在各个层次之间定义的传送参数用来分开层次,这是智能卡操作系统稳定而坚固的标志。由于在操作系统内分开了层次,使得操作系统内可能存在的设计或编程差错都减少了。这当然不是说错误就不会发生,而其效果是错误不像在浓缩的编程代码的操作系统中那样大量,层次的分开使得在某层中出现的错误难以传播到其他层次之中。
(3)防护:控制数据传送
另一个非常重要的安全因素是控制数据传送的过程以防止对存储器的非授权访问。对智能卡的整个来往通信都是经过被操作系统控制的i/0接口进行的,没有其他可能的访问形式。这体现了在智能卡中的一种有效的存储器保护方式,这样保证了操作系统始终保持着对存储区访问的有效控制。
传输协议由传输管理程序控制,应能截留所有可能的不正确输入,必须没有靠操纵传送的字组来影响对数据传输处理的可能,防止在未经正当授权的情况下使数据从存储器传送到终端。
(4)防护:重要存储内容的校验和
文件的结构,特别是文件的头标(换言之即文件描述符),应能用校验和予以保护。使得操作系统至少有可能检测出任何存储在存储器中的数据的无意识的改变。对每个文件来说,面向对象的访问条件,就被存储在文件的这一部分中,出于这一原因此这种需求就特别重要了。
对智能卡操作系统来说,eeprom中的所有存储区都具有生死攸关的重要性,必须用差错检测码(edc)予以保护,每当该区域被访问或其所含编码被调用执行时,必须在访问或编码执行被允许的处理之前对其内容的一致性进行验证。
(5)防护:应用的密钥
某些操作系统把含有应用及其文件的单独的df加以密封,使得各个应用相互被隔离开。当然这仅仅是基于软件的保护,并没有芯片的硬件支持,因之保护的水平并不像它能达到的那么高。即使是这种用软件手段对应用的密封在出现一差错的情况下也有着极大的好处,因为在未经事先明确选择的情况下使得文件管理器不可能超出此de的界限,结果是使文件中的存储器错误至少被限制在相关的dl"之内。
如果在硬件中存在着存储器管理单元mmu(mem。ry management unit)对操作系统提供支持,不同的应用相互之间可完全被隔离。在这种情况下,即使能在一个应用中操纵软件也不可能获得对其他应用的存储区的未授权的访问。
(6)防护:隐蔽操作系统的活动
每当向eeprom写入数据时,首先要把芯片中的电荷泵接通,这就增加了芯片的电流损耗,使用简单的测试设各能很容易测出来。对操作系统的设计必须考虑到这一事实,即完全有可能从外部来确定eeprom写访问出现的时刻,智能卡的软件必须阻止攻击者从这一点取得好处的可能,参见图1。
重要的是从测量卡所吸取的电流中不可能得出关于机器程序的处理和决策方面的任何结论,如果能利用这种测量去可靠地判断在命令执行
上一篇:智能卡应用系统的保护基础
上一篇:智能卡在一般的逻辑方面的攻击