走进硬件时代的身份认证:你的银行卡安全吗?
随着互联网发展日益壮大,单纯使用账号密码保障身份认证安全已经不能满足身份认证安全性需求,为了提高静态密码的安全性,采用双因子认证方式进行身份认证是现在的主流认证方式。信用卡大小的智能卡、硬件令牌、U盾等硬件载体被当成双因子身份验证的其中一个部分。双因子身份验证结合你知道的某些事(比如你的口令)和你拥有的某样东西(令牌或卡),来核实你的身份。本文节选汪德嘉博士《身份危机》中硬件时代的智能卡章节,带大家了解智能卡的发展现状、安全性及相应技术原理。
智能卡发展现状
智能卡是一种应用极为广泛的个人安全器件,最初是磁卡的替代产品。80年代初,人们应用的绝大多数是磁卡。由于磁卡存储量小,易于读出和刷新,使得它具有了可伪造性、可擦除性及可模拟性,而安全性大大降低,不能适应电子货币及其它许多应用的客观需要,也不能作为多用途卡。这就需要一种多用安全卡,能够把生活中单项使用的电话卡、预付卡、金融卡、信用卡、加油卡、电视卡、健康卡、身份证等融为一体,只要一卡在手,便能买到各类物品或得到各种服务,甚至走遍天下,畅通无阻。
90年代开始,由于微电子技术的发展,一种以计算机技术和集成电路为核心的智能卡在世界范围内迅速发展起来了。智能卡克服了磁卡的弱点,它容量大,计算功能强,能为电子货币提供更可靠、更安全的服务,因此在世界各国都有了很大的发展。而且,智能卡作为一种新兴的应用平台,除了在银行业应用外,在通信、服务、医疗、军事、安全、门禁、管理和交通等方面也得到了广泛的应用。随着日益严重的网络安全问题使智能卡有了更广阔的发展空间。国家金卡办专家组组长陈耀东教授指出:信息化就是因特网加上IC卡,IC卡在信息化中的智能卡身份认证技术研究与实现地位已经变得非常重要。
目前,当电子政务、电子商务正成为网络时代一个新的热门应用领域的时候,其中存在的安全问题也变得越来越重要,智能卡的应用和推广成为有效的措施。虽然智能卡行业是信息技术行业中的一个小分支,但智能卡作为支付和身份认证的工具却广泛应用于各种领域,甚至最新的基于互联网的网上银行、网上证券等应用领域。
智能卡又称集成电路卡(即IC卡),它是一个带有微处理器和存储器等微型集成电路芯片,具有标准规格的卡片,其大小与普通名片相仿,内含一块1cm左右的硅芯片,具有存储信息和进行复杂运算的功能。芯片中存有与用户身份相关的数据,智能卡由专门的厂商通过专门的设备生产,是不可复制的硬件。智能卡由合法用户随身携带,使用时必须将智能卡插入专用的读卡器读取其中的信息,以验证用户的身份。
随着社会和经济的迅速发展,智能卡因其成本低、携带方便等优点,广泛应用于银行、电信、交通、公共安全等社会各领域,并且发展十分迅速。
• 智能卡分类
智能卡可以用狭义和广义两种角度来看。狭义的就是指CPU卡,广义的指IC卡。对于IC卡,可以按照嵌入芯片类型、数据读写方式、数据交换方式和卡的不同应用领域分类。
按卡的应用领域可分为金融卡和非金融卡:
(1)金融卡也称为银行卡,又可以分为信用卡和现金卡两种。前者用于消费支付时,可按预先设定额度透支资金;后者可作为电子钱包或者电子存折,但不能透支。
(2)非金融卡也称为非银行卡,涉及范围十分广泛,实际包含金融卡之外的
所有领域,诸如电信、旅游、教育和公交等等。
按嵌入芯片分类可以有存储卡、加密存储卡和CPU卡:
(1)存储器卡:卡内的集成电路是电擦除可编程只读存储器EPROM,它仅有数据存储功能,没有数据处理能力;存储卡本身不提供硬件加密功能,只能存储通过系统加密过的数据,很容易被破解。这类卡存储信息方便、开发应用简单、价格便宜、很多场合可替代磁卡,但由于其本身不具备信息保密功能,因此,只能用于保密性要求不高的应用场合。
(2)加密存储卡:加密存储器卡内嵌芯片在存储区外增加了控制逻辑,在访问存储区之前需要核对密码,只有密码正确,才能进行存取操作,这类信息保密性较好,使用与普通存储器卡相类似。加密逻辑电路在一定程度上保护着卡和卡中数据的安全,但只是低层次的防护,无法防止恶意的攻击。密码一般通过明文进行传递和验证,很容易被破解,一般用于需要进行简单保密要求的应用场合。
(3)mCPU卡:CPU卡内嵌芯片相当于一个特殊类型的单片机,内部除了带有控制器、存储器、时序控制逻辑等外,还带有算法单元和操作系统,由于CPU卡有存储容量大,处理能力强,信息存储安全等特性,因此,被广泛用于信息安全性要求特别高的场合。CPU卡相当于一台没有显示器和键盘的微型计算机。
目前也出现了针对上面常用CPU卡的缺点而生产的新设备,称为超级智能卡。在卡上具有MPU和存储器并装有键盘、液晶显示器和电源,有的卡上还具有指纹识别装置等,主要用于高端应用。其核心和CPU卡类似,主要增加的是外围的辅助单元。
• 智能卡物理结构
全世界智能卡规格是有统一标准的。智能卡的物理支撑一般是一个塑料长方卡(见下图)。它的尺寸从通用磁卡演化而来。它们都遵从相关的国际标准IS07810,即大小为:85.47~85.72mm,厚度为0.76mm士0.08mm。有些IC卡上还贴有磁条,可以和磁卡兼容。IC卡上可以印有发行者的信息和卡片持有者的可读信息,如姓名、有效性及照片等。有的对安全性要求较高的IC卡,在其表面上印有个人签名、全息图象及类似纸币上的回纹等安全标识信息。在IC卡的左上角封装有IC芯片,其上覆盖有6或8个触点和外部设备进行通讯,每个触点的尺寸和位置应满足ISO7816-2中所做出的规定,且触点位于卡的正面。其下面为凸型字符,背面有磁条。
智能卡的物理结构
• 智能卡系统组成
不论是简单的还是复杂的,一个完整的IC卡应用都离不开如下几个组成部分:
1. IC卡卡片
无论是接触卡、非接触卡还是双界面卡,卡内都包括了芯片、软件、数据等几个组成部分。
2. 读卡器
读卡器是对lC卡操作的最直接设备,根据IC卡操作模式的不同,读卡器也可以分为接触式读卡器、非接触式读卡器、双界面读卡器等不同形式,严格意义上的读卡器只包括了读卡头和设备驱动,读卡器和卡片的接口通常满足一定的国际规范,标准读卡器一般是通用的。
为了使用卡片,还需要有与IC卡配合工作的接口设备IFD(IntcrFaceDeVicel)或称为读写设备。IFD可以是一个由微处理器、显示器与I/O接口组成的独立设备,该接口设备通过IC卡上的8个触点向IC卡提供电源井与IC卡相互交换信息。IFD也可以是一个简单的接口电路,IC卡通过该电路与通用微机相连接。
无论是磁卡或IC卡,在卡上能存储的信息总是有限的,因此大部分信息需要存放在接口设备或计算机中。当用信用卡购物时,如在允许透支范围内,则可以先取走商品,事后再结算;如需一笔大款,则需经银行确认,授权于商店后,才能取走商品。由于银行、发放信用卡的公司以及商店不在同一处,因此需要经过通信线路和主机联系才能实现上述过程。
目前,IC卡座的触点和IC卡之间的接触方式大体有滑动式和下压式两种。其中滑动式卡座对IC卡触点的磨损较大,且IC卡的读写设备设计如果不合理,较易损坏IC卡,而一个设计良好的下压式卡座则几乎不磨损IC卡的触点,对IC卡具有较好的保护,可以确保IC卡长时间的可靠使用。当然,由于下压式卡座设计复杂、零部件多、加工精密,其价格要高出滑动式卡座许多。应用开发单位或发行单位可视不同的应用场合和类型合理选择不同类型的卡座。
3. 应用程序
应用程序是应用逻辑控制的核心,根据应用的不同,应用程序的规模、运行、形式都有很大区别。对于独立的脱机应用,应用程序一般较小,逻辑结构比较简单,程序可以和读卡器、机具合在一起,不需要额外增加PC机等辅助设备。对于一些复杂的应用,应用程序一般在PC平台上运行,有些还需要联网和后台主机进行交互。此外,一般的IC卡应用,最终的结果数据都需要进行汇总和分析,尤其是涉及到消费的金融应用,后台系统极为关键。一个基于卡的应用在IC卡内的表现形式分为软件和数据两个部分。软件就是代码,通常是应用逻辑控制在卡内的表现形式;数据通常是应用的核心,即包含一般的用户个人信息,也包含一些极其重要的用户资料,例如帐户密码、资金等。根据应用中包含的软件、数据情况,应用可以分为如下3种不同情况:
只有数据的应用:这类应用通常将卡片作为一种安全数据的载体,对于卡片只需要其提供基本的卡片操作,没有额外的逻辑控制需要在卡内完成。
只有代码的应用:这类应用比较少,一种情况是将卡片作为一种逻辑控制的载体,起到一种逻辑钥匙的作用。另外一种情况是,卡片内置了特殊的算法流程,例如加密算法、签名算法等,起到安全计算的作用。
既包含数据又包含代码的应用:这类应用是最多、最普遍的,其对卡片的要求较高,不仅在卡内保存应用数据,还要放置相应的逻辑控制代码。例如金融卡、加油卡、社保卡等。
智能卡市场分析
智能卡(IC卡)作为信息存储的载体,同样面临持卡人身份认证和信息安全的问题,也是信息安全业的重点关注领域及其产品应用市场。
1) IC卡产品及其发展状况IC卡是将经过专门安全设计的CPU封装在标准尺寸卡片内的安全产品。卡内部数据和密钥受到内置IC卡操作系统的保护,外部不可能越过COS的控制直接对卡内的数据或密钥进行操作。IC卡可以使用接触或非接触式方式通过读写器与外部系统通信。根据《国家金卡工程全国IC卡应用(2008-2013)发展规划》,IC卡与RFID产业的创新发展、IC卡“一卡多用”、“多功能卡”的发行、电子标签应用试点、银行IC卡与行业性IC卡应用的融合发展等将是未来5年的发展重点。
2) EMV迁移下IC卡的市场机会中国人民银行发布的《2013年支付体系运行总体情况》统计数据显示,截至2013年末,全国累计发行银行卡42.14亿张,同比增长19.23%。但目前的银行卡多数都是磁条卡,存在被复制的风险,安全性较差。2011年3月,中国人民银行发布《中国人民银行关于推进金融IC卡应用工作的意见》,决定在全国范围内正式启动银行卡芯片迁移工作,“十二五”期间将全面推进金融IC卡应用,以促进中国银行卡的产业升级和可持续发展。IC卡市场需求将迎来高速发展期,据中国信息产业商会智能卡专业委员会初步预计,金融IC卡升级带动的软硬件升级市场需求超过500亿元。
EMV迁移的目的是在金融IC卡支付系统中建立卡片和终端接口的统一标准,使得在此体系下所有的卡片和终端能够互通互用,并且该技术的采用将大大提高银行卡支付的安全性,减少欺诈行为。EMV迁移下,中国目前所采用的磁条式银行卡将迎来全面向IC卡的升级换代,IC卡产业可能迎来爆发式增长时机。
3) IC卡技术发展趋势IC卡的“一卡多应用”是其发展的必然趋势,《国家金卡工程全国IC卡应用(2008-2013)发展规划》中指出:“要坚持以人为本,从方便企业和公众的使用出发,积极推行IC卡的一卡多用,加强协调、规范IC卡发放工作,推进IC卡全国统一、联网使用,尽量减少IC卡发行的种类”。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,Java技术具有通用性、高效性、平台移植性和安全性等特点,可应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群,是实现IC卡的“一卡多应用”的较好工具。
Java卡是Sun公司微系统为IC卡开发平台而制定的一个开放的标准,使用Java卡平台创建的IC卡上存有Javaapplet,在卡发行后也可以把applet加到卡上或修改卡上已有的applet,把数据存储在一个集成的微处理器芯片里。然后applet被下载到微处理器的内存里,由Java虚拟机来运行。Java卡使多个应用程序被安装并且各自独立地共存,每个applet都被防火墙保护以维护其完整性并防止干扰,应用程序可以动态地升级。Java卡应用是一种集合了IC卡、应用系统以及安全协议于一体的综合应用,可以方便地实现“一卡多应用”,目前欧洲流行使用Java卡,Java卡是IC卡发展的主要方向。目前国内市场上成熟的Java卡产品还较少,各家公司起步差距不大,新进入者未来发展机会较大。
读写器主要是IC卡的配套产品,IC卡需求的增加将直接带动IC卡读写器市场的发展,随着EMV迁移的全面推开,相应的IC卡读写器市场也将迎来相应的发展。
智能卡安全性分析
• 智能卡安全体系
智能卡的安全体系是智能卡COS要实现的一个重要部分,由COS的各个安全模块组成,包括底层的加密算法的实现、系统的安全服务以及应用安全的管理和控制等,关系到对卡片内数据对象的访问控制、对智能卡的鉴别、智能卡中信息的保密机制和核实方式的选择。智能卡迅速发展并流行起来的一个重要原因就是它的COS安全体系给用户提供了较高的安全属性和安全机制。智能卡安全体系结构可以分为以下部分:
1. 智能卡安全状态
安全状态指的是智能卡当前所处的安全级别状态,通常被分为全局安全、特定文件安全状态以及特定命令安全三种安全级别。安全状态是在智能卡完成一定操作或处理某些命令之后得到的。智能卡复位、安全报文检测、鉴别命令等操作均会影响到智能卡的安全状态。
2. 智能卡安全属性
数据对象的安全属性定义了
对这些数据执行命令操作时所需要满足的条件,包括文件访问安全属性和命令安全属性。前者包括允许的操作类型以及操作时需要满足的安全条件。后者主要由具体命令来定义和实现,包括命令报文的安全控制和命令数据域的安全控制,比如对于公钥密码中的私钥等重要数据,智能卡不能通过明文的方式和外界进行传递。
3. 智能卡安全机制
安全机制和安全状态、安全属性紧密联系在一起。可以将安全机制视为安全状态实现状态转移所采用的方法和手段。安全机制指定了智能卡中和安全相关的元素在卡内完成信息安全传递等命令中的执行操作类型、密码算法等。一种安全状态经过数据鉴别、密码鉴别、数据加密等操作手段后转移到另一种安全状态,将这种安全状态和某种安全属性作比较,一致的话,就代表可以执行该安全属性对应的命令操作,这就是智能卡COS安全体系的基本工作原理。
• 智能卡攻击技术
智能卡因为其存储能力和计算能力在目前得到了日益广泛地应用,然而,随着一些专门攻击技术的出现和发展,智能卡也呈现出不可忽视的安全漏洞,进而降低整个应用系统的安全性。下面对智能卡中存在的威胁以及目前广泛的攻击技术加以总结分析。
1. 网络数据流截取:在用户和银行交易的过程中,被第三方通过各种方法截获数据流,分析数据中的信息从而得到用户的信息。
2. 木马窃听:用户电脑中了病毒或者木马之后,电脑被监听,用户和银行交易的信息被木马记录,用户的信息就这样被盗了。
3. 穷举攻击:攻击者使用有意义的数字作为密码来不断尝试持卡人的密码。如果持卡人的密码是未经过改动的初始密码或一个特殊、容易被分析的数字,则密码很容易被攻击者穷举出来。
4. 网络钓鱼:第三方利用银行的身份给用户发信息,要求用户提供账号和密码,如果用户提供了的话就泄露了自己的信息了。或者是第三方假冒银行或者交易的网站,对没有认真辨别的情况下,用户很容易上当从而泄露自己的信息。网络的安全隐患不仅仅是这些。
智能卡技术原理
基于智能卡的身份认证结合了基于秘密信息和信任物体的实现方式,利用智能卡的信息存储和数据计算的能力,能够实现软/硬件的对称、非对称加解密算法,存储用户个人信息、密钥、数字证书等秘密数据。认证服务器和智能卡客户端之间按照一定的协议和操作来完成身份认证的过程。在基于智能卡的身份认证方法中,不再需要远程服务器存储用户的口令等信息,减轻了服务器维护口令表的负担,也避免口令表被盗的风险。结合了密码技术以及实物对用户进行身份认证,不再是像基于口令的单因素身份认证协议中那样,安全性仅仅依赖于口令的保密性。基于智能卡的身份认证是一种双因子(two-factorauthentication)认证。
智能卡中密码技术是保证信息系统安全的一种最重要的安全技术。在开放的网络环境中需要一种机制使消息的接收者能够验证消息确实是来自所声称的消息源,而且在传输过程中未受到未授权的修改。对抗消息的未授权修改可由数据完整性服务来提供。数据完整性服务主要可以消息认证码和数字签名两种技术来实现,而这两种技术都需使用杂凑函数。
智能卡中的软件通常是应用逻辑在卡内的表现形式,在CPU卡中就是COS(chipoperatingsystem,即片内操作系统)。智能卡的安全性在于COS中对密码算法的使用。比如持卡人在卡终端上使用卡片,为了保护业主和持卡人双方的利益,应用系统中可设置双向认证过程,终端方面要检查卡片是否合法,卡片方面也要检查终端是否合法,这种检查过程叫做认证,在认证过程中就可以使用密码算法。智能卡对终端的认证步骤可以是这样的,智能卡把一组随机数传送给终端,同时保存这组随机数,终端对随机数进行加密,把密文传送给智能卡,智能卡对密文进行解密,把得到的结果和保存的随机数进行比较,若一致,就可认定终端是合法的,若不一致,就可认定终端是非法的。这里面的道理是,合法的终端是知道认证所用的密钥的,这是应用系统约定好的,才可验证一致,而非法的终端没有得到授权,不知道认证密钥,认证不会通过。
但对于智能卡认证,需要在每个认证端添加读卡设备,增加了硬件成本,不如口令认证方便和易行。基于智能卡的认证方式是一种双因素的认证方式(PIN+智能卡),除非PIN或智能卡被同时窃取,否则用户不会被冒充。智能卡提供硬件保护措施和加密算法,可以利用这些功能加强安全性能,例如:可以把智能卡设置成用户只能得到加密后的某个秘密信息,从而防止秘密信息的泄露。
结语
身份认证技术的发展,经历了从古代辩物识人到账号密码认证,随着互联网金融的发展,硬件认证出现在人们的生活中,硬件认证以硬件为载体,在原有账号密码的基础上,增加硬件这一因子,安全性大大提升。而在硬件认证中除了智能卡以外,硬件令牌也可以有效地保护信息系统的安全性,保证用户身份的安全性。