21ic中国电子网:电子技术论坛:摘要:本文论述了ESAM安全模块的功能和特点及其在智能卡表等方面的技术优势和应用模式,分析了产品开发和系统应用在安全性和可操作性方面需要考虑的因素,给出了相关应用设计举例和说明,同时给出了有关产品的技术参数和指标。1、什么是ESAM安全模块?ESAM(EmbeddedSecureAccessModule)嵌入式安全控制模块系列产品,是握奇公司经过多年技术开发和应用实践研制出的具有普遍应用价值的嵌入式数据安全产品。ESAM硬件平台采用亿恒科技(原西门子半导体)和飞利浦等半导体公司智能卡专用保密微控制器,具有安全的ROM和EEPROM安全控制、真随机数发生器RNG(可选)、DES/3DES加速器和高级加密协处理器ACE(可选)等安全结构,硬件安全性能达到ITSECE4级标准,具有防检测、抗攻击、自毁等硬件安全特性。ESAM芯片操作系统采用握奇公司自主开发的TimeCOS/ESAM嵌入式安全操作系统,具有安全的文件密钥存储、完善的安全机制、标准的加密算法等特点。ESAM系列产品完全符合ISO7816标准和中国人民银行金融IC卡规范,通过中国人民银行金融卡认证和北京市科委软件产品认证,并获得了国家密码管理委员会的安全认证和生产销售许可,目前在国内发行使用的数量超过300万片。ESAM特殊的安全属性使它可以嵌入到其他任何具有安全要求的智能设备中,完成文件和密钥的安全存储、数字签名、数据加密解密、21ic中国电子网:电子技术论坛:双向身份认证、内部分散密钥、电子钱包、通讯线路保护等多种功能。2、ESAM安全模块功能概述ESAM安全模块的应用是和各种专用或通用智能设备相关的,对于所有需要身份认证、数据加/解密、安全存储、通讯保密等较高数据安全要求的产品和应用系统,ESAM嵌入式安全控制模块都可以发挥其独到的安全控制作用。1)身份双向认证;2)数据加密解密;3)数字签名;4)分散密钥导出;5)内部分散密钥;6)传输线路保护;7)电子钱包;8)安全数据存储3、ESAM安全模块的应用领域握奇智能公司现已成功地将ESAM模块应用如下产品中。智能卡表:智能卡电表、水表、燃气表、热力表等通信设备:加密Modem、加密传真机、加密多路复用器金融设备:加密密码键盘、金融POS机、支付密码器、银行密码箱税控设备:税控出租车计价器、税控加油机、税控收款机交通收费:停车咪表、公共汽车收费终端、车载路桥收费终端设备条件接收:电视机顶盒(STB)、PC接收卡、加解扰前端/终端设备21ic中国电子网:电子技术论坛:网络安全:局域网管理、登录、文件夹加密、软件保护其他设备:智能卡饮水机、智能卡收费空调、网络电视等其他设备4、智能卡表应用为什么要使用ESAM安全模块对于象智能卡表一样规模较大的系统工程项目,系统运行的安全性和稳定性是至关重要的。采用CPU卡作为数据信息的传输介质后,密钥的安全使用是关键。以往的管理系统存在的弊端是由于卡表是由生产厂家提供,不论是密码认证还是密钥认证都是由用户卡和卡表中的微控制器之间完成的,而微控制器程序的设计不是由运行单位控制而是由表厂技术人员或委托的第三方设计人员完成的,在编程过程中,设计人员显然要知道运行系统的密码或密钥以及安全认证算法才能编制正确的程序。这样当系统投入运行后,由于除管理方之外还有其他渠道掌握系统安全的核心内容,一旦泄露,后果是严重的。即使管理得当,由于生产方知道密钥内容,就可以不经运行管理方的授权在现场对运行表计的数据进行修改,或者未经许可更换现场故障表。这种操作对小区物业系统影响不大,但对于针对城市的管理系统就很容易造成现场表计与后台管理系统数据库数据不同而产生混乱,从而造成系统运行故障和不稳定。解决如上问题有两种方法,一是运行管理方统一卡表内微控制器的程序,将编程好的微控制器芯片提供给表厂生产。这样就能够保证21ic中国电子网:电子技术论坛:系统的安全性全部掌握在运行管理方。但这种方法操作较难,因为微控制器程序除了安全认证部分外,更多的程序是关于表计计量、控制、显示以及功能操作的内容,表厂设计人员很容易处理好这些内容,并且会随着技术的发展不断创新和完善,而运行管理方却很难作好这部分程序,这样提供的芯片功能不一定领先,并且阻碍了卡表技术的发展和创新。另外一种解决办法就是采用ESAM安全模块(即嵌入式安全控制模块),这种模块只负责完成安全认证和数据的存储,此模块可以在运行管理方设置完毕后,提供给表厂安装在卡式卡表中。今后的数据存取以及密钥的安全认证过程都在用户卡与卡表中的ESAM模块之间进行,与表中的微控制器无关,微控制器仍然由表厂负责设计,完成卡表的功能。这样既实现了系统的安全性由运行管理方控制,又不妨碍表厂继续发展和完善卡表的功能和性能。是一种较理想的方案。因此,可以得出结论,在较大的管理系统中,为保证系统运行的安全性和稳定性,应该使用ESAM安全模块技术。概括而言,ESAM安全模块具有如下特点:1)ESAM安全模块具有更高的硬件安全性ITSECE4级高端智能卡专用微处理器平台(可选)ROM和EEPROM安全存储真随机数发生器RNG(可选)21ic中国电子网:电子技术论坛:加速器及RSA协处理器(可选)高频/低频以及高压/低压检测程序数据加密及内部地址串扰软硬件防止DPA/SPA攻击2)ESAM具有更好的软件安全性通过中国人民银行认证通过国家商密委认证通过软件版权登记通过软件产品认证3)面向服务商管理的安全机制,产品研发、生产与应用安全隔离4)标准开放,支持多用合一,良好的兼容性、灵活性和可扩展性5)稳定的多过一家的产品供应,有竞争力的价格和售前售后服务6)批量生产和众多成功的应用保证产品稳定、可靠21ic中国电子网:电子技术论坛:)产品供应的连续性保证系统更长的生命周期8)及时、周到、深入的技术支持、方便开发使用5、安全性方面的考虑安全性方面的考虑可以分为三个方面:卡片的安全性、表计生产过程的安全性、运行管理的安全性。卡片的安全性:由于用户群体庞大,并且表计安装后IC卡数据向表计传递管理系统无法监控,因此必须要求用户卡片具有较高的安全性。应选用带有密钥控制的CPU卡。并且在CPU卡的设计过程中,应该考虑与金融业务的兼容性,选择PBOC(中国人民银行)金融卡规范。用户卡中的密钥如果可能,尽量使用3-DES算法,在卡片的发行过程中,应该对用户卡中的密钥进行分散处理,最大限度地减少被黑客攻击破译系统密钥的可能性。同时在用户卡中传递的关键数据最好进行线路加密保护处理,以防止非法篡改数据的可能性。概括而言,智能卡比逻辑加密卡有如下优势:1)智能卡比逻辑加密卡具有更高的安全性:智能卡的安全性是建立在专用、安全的微处理器硬件平台和安全、可靠的软件操作系统基础之上。逻辑加密卡只靠逻辑电路实现简单的数据保护。智能卡除了能实现一般逻辑加密卡的密码校验之外,21ic中国电子网:电子技术论坛:还有建立在密钥和安全算法基础上更为安全的认证机制,认证过程以随机数为载体,认证码无法重复和跟踪。智能卡的密码校验、密钥认证以及文件操作可以在线加密或加认证码,防止通过在线测试对相关数据进行分析、篡改和重放。一般逻辑加密卡的密码校验过程没有随机性,密码传输过程是明文的,可以在测试并分析出卡片的密码。智能卡支持非常灵活的密钥系统设计,可以根据需求设计多种逻辑组合的文件访问权限设计,例如对于电子钱包,很容易把消费和充值由不同的密钥系统控制。一般的逻辑加密卡如果用来做电子钱包,消费和充值可能由一个密码保护,安全性很差。2)智能卡比逻辑加密具有更大的灵活性:智能卡由操作系统管理芯片硬件资源,可以根据需求,自由设计不同的应用文件的密钥系统。在逻辑上和物理上保证一卡多用在安全性和方便性方面的要求。3)智能卡比逻辑加密卡具有更好的标准性:智能卡在通讯协议、文件和命令等方面有深入、全面的国际标准可以遵循。而且其外部特性可以通过操作系统进行扩充和修改,实现更好的兼容性和功能扩展性。逻辑加密在通讯协议、读写特性和存储区划分等方面没有严格的标准,不同型号的产品不同通用,限制了产品的选择空间和产品供应的连续性,在很大程度上缩短了系统的生命周期。表计生产过程的安全性:21ic中国电子网:电子技术论坛:严格区分表计的生产过程和运行管理过程,保证卡表一旦安装运行,对卡表中任何数据的修改都应该在运行管理系统的控制下进行,坚决杜绝生产厂家或管理部门工作人员持有特殊工具卡可以不经管理系统对卡表数据进行改写的行为。要保证这一点,就应该在卡表中安装ESAM安全模块,该模块用来存储表中的数据和安全密钥,在运行过程中由用户卡和ESAM安全模块进行安全认证和数据传输,ESAM安全模块由运行管理系统发行并提供给表计生产厂商安装。在卡表生产完毕测试合格后再用管理系统提供的修改密钥卡将ESAM安全模块中的密钥修改为运行密钥,这样未经授权,任何人都不可以对表里的数据进行修改。运行管理的安全性:在CPU卡表系统中,系统的安全主要取决于密钥的发行和管理,因此必须有一套合适的卡片以及ESAM安全模块密钥发行和传递方式。由于系统的组成环节中有银行、水/电/气/热管理部门、表厂、卡片供应商和系统集成商,这几个环节都可能涉及的密钥管理,如果密钥在传递过程中被窃取,系统的安全性将受到极大影响。建议成立卡片发行和密钥管理机构,密钥发行传递采用总控卡、母卡、应用卡的三级方式,每一级在向下传递时采用密文线路保护方式或密钥密文导出方式。6、可操作性方面的考虑21ic中国电子网:电子技术论坛:可操作性方面的考虑体现在四个方面:用户卡开户过程、用户卡操作过程、补卡过程、故障表维护过程。用户卡开户过程:用户卡开户过程要完成用户信息、卡表信息以及用户卡的对应。这个过程应尽量流程简便,以避免用户在银行和行业管理部门之间的多次往返。由于卡片可能是银行发行,考虑到银行的使用对象是个人,而卡表的使用对象是户,为方便用户,应该考虑支持一表多卡的情况。如果仅从方便性来讲,可以取消户号,在用户卡中也用钱包文件存储采购量,用户可以根据自己的需要,将采购量输入到任何一块表中;如果考虑表计信息回传或补卡需要,可以设置户号,但允许一户中多个成员使用一个户号以便任何人都可以持卡购水/电/气。在用户卡上用钱包文件存储采购量的好处是可以根据限制条件一次或多次将采购量输入到卡表中,从而有效防止用户囤积。用户户号由行业管理部门编制,通过开户单传给用户,每一个用户中的成员都可以持开户单到银行申请办理用户卡业务并进行购水/电/气的操作,在银行数据库中,以户号为索引为每个成员分别建立帐务信息。用户卡操作过程:考虑到用户使用过程中,插拔用户卡的随意性,应该尽量使用户卡与卡表进行数据交换的时间降到最短,以避免由于用户在数据处理过程中将卡拔出而造成的数据错误,给用户采购过程造成不方便。从21ic中国电子网:电子技术论坛:这个角度来讲,应尽量减少数据项(尤其是从表中返传的数据项),并尽可能地将数据一次读取或一次写入。用户在使用过程中,