微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
2000 Vol.19 No.2 P.17-18




IC卡系统设计中的安全性考虑
张吉文　郭圣文
摘 要： 对从最初选择IC卡直到完成IC卡系统设计的整个过程中所涉及到的安全性问题作了探讨。
关键词： IC卡系统 安全控管机制 安全报文 防拨特性 攻击测试 密钥管理
　　IC卡与磁卡相比，具有存储容量大、保密性好及独立性强等显著优点，使用发展前景广泛。
　　从系统工程的角度来看，IC卡系统不仅仅只是卡片与读卡机之间的信息交换。由于IC卡可实现脱机交易，其系统的复杂程度要远远超过磁条卡，因而幻想仅仅通过IC卡的高保密性来实现整个系统的安全性要求是幼稚且错误的，IC卡本身提供的高保密性能还需要整个系统的安全管理以及安全设计来支持。怎样才能全面保证IC卡系统的高保密性、安全可靠地坚实运作？本文从选卡、系统设计到运作管理等方面来对此问题作一论述。
1 选卡时的安全性考虑
　　IC卡行业近年在我国发展迅猛，但由于刚起步不久，整个IC卡市场基本上还处于一种无规范无统一管理的状态，在尚无相关规范约束，IC卡的测试及质量认证还只能靠商家自己来保证的情况下，作为设计的第一步，在具体选择某一商家的IC卡时，必须要经过认真的调查与严格的专家论证与测试。具体要从2个方面考虑：①IC卡本身的性能安全测试；②卡片操作系统的安全性分析与论证。
1．1 IC卡的性能安全测试
　　IC卡的安全性中，芯片的质量具有至关重要的作用。所选择的卡片使用的芯片必须通过国际上独立的检测权威机构的认证。通常这些机构将会对芯片进行全面的攻击测试，确保卡片能够防范外界的攻击。
　　IC卡可分为接触式与非接触式2种，其最重要的性能：①存储容量要大；②保密性要强。一般要求写入IC卡上的数据格式是保密的，卡中信息加密后，不可非法修改或复制，从而保证数据安全；③具有强的抗干扰功能，能很好地防伪、防磁、防静电；④重复使用寿命要高。
1．2 卡片操作系统的安全性分析与论证
　　对于卡片操作系统，要从3个方面来考虑，以保证其安全性。
　　1．文件及应用管理机制。对于具有微处理芯片的IC卡，其文件及应用管理系统的设计是整个操作系统的核心。一个性能可靠的操作系统，其在文件管理上应能够做到简单明晰、易于初学者掌握；过于复杂的系统设计，往往会降低系统的可靠性，也使系统设计者在系统设计中容易出现漏洞。在文件类型上，一个好的操作系统应能够区分公共数据文件及系统文件的管理。系统文件通常是卡片的密匙文件、PIN文件、钱包文件等一系列存放敏感数据的文件，这类文件在管理及操作上不同于一般公共数据文件。好的操作系统应对存放此类数据的安全性有严格的控制。
　　2．安全控管控制。IC卡的高可靠及高保密性通常可从4个方面来衡量：文件的存储权限、安全报文、防拨特性、抗外界攻击。
　　（1）文件存储权限。在设计IC卡系统过程中，大多数设计者会将整个系统的安全性集中在IC卡本身，其实对于IC卡系统，系统的安全性分布在主机、前置机、脱机终端、联机终端以及通信线路等各个部分。因此文件存储权限的控制，既要做到对文件操作不同级别的安全控制，同时做到对卡片的不同生命周期的安全控制。
　　通常1个IC卡生命周期分为3个阶段：个人化阶段、使用阶段、终止阶段，这3个阶段对于系统的安全性要求是不同的。在个人化阶段，卡片操作权限将全部控制在发卡中心，这阶段对卡片的安全性要求最高，外界不可对一个未进入使用阶段的卡片进行操作。在使用阶段，操作系统应能够保证卡片完成基本的交易指令，而对于系统在个人阶段的指令则要禁止使用。在使用阶段，操作系统还应能够判定卡片是否将进入终止阶段，一旦卡片进入终止阶段，任何指令将被禁止使用。
　　（2）安全报文。安全报文在IC卡操作系统中通常是用于敏感指令的执行，以及防止敏感数据在传输、交互中的泄露。
　　（3）防拨特性。一个性能可靠的操作系统，应具有良好的防拨特性，即卡片在任何掉电的情况下或人为地交易操作过程中故意拨卡时，能够保证内部数据的不丢失，以及操作系统的状态不改变，这在实际使用环境中是很重要的。
　　3．指令。在金融IC卡操作系统中一般存在三大类指令：个人化指令、交易指令和管理指令。在IC卡操作系统中，并不是指令越多越好。好的操作系统的指令应越少越好，且功能清晰，与国际的标准相兼容。

图1　IC卡系统框图
2 IC卡系统设计时的安全性设计
　　有了IC卡与IC卡操作系统后，如何设计一个安全的IC卡系统，这是第一次设计IC卡系统的工程技术人员经常面临的问题。在IC卡系统设计过程中，从始至终都应考虑系统安全性。从整体上来讲，IC卡系统的设计分为以下几个方面：①卡片内部结构设计与操作系统设计；②密钥管理设计；③IC卡网络设计。包括发卡系统设计、终端系统设计、前置机系统设计、后台主机系统设计、结算系统设计。
　　IC卡系统的这几个方面是相辅相成的，每一部分的设计都是相互影响的。系统的安全性设计更是渗透在这几个方面。
2．1 密钥管理设计
　　要保证IC卡系统具有足够的安全性，系统设计者在设计整个IC卡系统的同时要着手设计一个密钥管理系统。密钥管理系统是IC卡系统安全的核心，严谨的密钥管理是整个系统安全的重要保障。
　　密钥管理系统中所设计的密钥不仅仅是指管理IC卡本身存放的密钥，还应该包括系统内部的信息传递通信密钥、传输敏感数据的传输密钥等。
　　通常一个密钥管理系统由以下2部分组成：密钥生成系统、密钥存放及下装系统。密钥生成系统管理从种子数据到主密钥的生成过程。如果是多级发卡结构，应考虑如何完成多级密钥管理和卡片通用的问题，在密钥生成的过程中，应保证必要的安全性以及密钥的强度，而且从任何一个主密钥都不可推出种子数据，即生成算法必须是不可逆的。
　　在密钥存入及下装系统中，必须保证密钥的不被泄露。在IC卡系统中，密钥必须根据功能的不同存放在不同地方，例如密钥可分为联机密钥和脱机共享密钥，通常联机密钥必须存放在主机的硬件加密模块中，而脱机共享密钥则存放在终端的芯片中或者是SAM卡中。
2．2 网络系统设计
　　一个较完整的IC卡系统应包括后台主机系统、发卡系统、结算系统、前置机系统、终端系统等。图1是1个可参照的IC卡系统框图。
　　后台主机系统是整个IC卡网络系统的中枢，它提供整个网络的所有控制与重要服务，保存或备份所有重要性数据。由于其重要性，必须采取各种隔离保护技术，防止任何非法入侵，如防火墙技术、数据加密传输等，有条件的还可对其在物理实体上加以封闭性隔离。主服务器上数据要实行同步备份，备份机不直接接入网络，而是在主服务器发生故障时自动接入网络运行。若对数据的安全性要求更高，甚至可以采取异地备份及双备份的方式。
　　发卡系统是IC系统中与安全性紧密相关的一个部分。发卡系统首先必须保证发卡环境的安全性，不能发生丢卡及重卡的现象，同时要保证在发卡过程中敏感数据不被泄露。
　　财务结算系统的数据库完整一致性维护与安全审核同样是系统安全性的一个重要部分。在发卡系统与结算系统等软件上进行的操作需要有相应的操作权限，各种权限操作须有对应的操作员口令及管理卡配合进行。
　　在前置机与终端部分中，首先是要防止传输时的数据泄密，以及终端数据的电磁泄漏。其次，常见的恶意攻击往往从这里入手，例如搭线窃听、非法终端等。最后，各种病毒也往往从此环节入侵，因此，线路干扰也要考虑。
　　总之，设计一个IC卡系统，需要进行周密的考虑，不允许在安全系统上出现大的漏洞，防止系统的崩溃。对于初次设计IC卡系统的设计人员，在设计完成后，应由IC卡专家对系统进行评审，以确保系统的可靠性。同时，对于不成熟的IC卡系统，不提倡在未进行大量测试的情况下，就大量发卡。
张吉文（广东工业大学计算机应用研究室510090）
郭圣文（广东工业大学计算机应用研究室510090）
参考文献
1，亚科希资讯．智能卡应用全书．亚社国际出版
2，葛湘．计算机局域网络的安全性和保密技术．微电子学与计算机，1998；6
收稿日期：1999－09－01
