bd-标注-走进硬件时代的身份认证(三):网银U盾安全认证原理解析
编者按:你是不是曾经疑惑,开通网银为什么一定要配发U盾呢?今天这篇推送或许可以回答你这个问题。U盾(USBkey),即银行系统在2003年推出并获得国家专利的客户证书USBkey的俗称,是银行提供的办理网上银行业务的高级别安全工具。它外形酷似U盘,像一面盾牌,时刻保护着网上银行资金安全。U盾是用于网上银行电子签名和数字认证的工具,它内置微型智能卡处理器,采用1024位非对称密钥算法对网上数据进行加密、解密和数字签名,确保网上交易的保密性、真实性、完整性和不可否认性。本文节选汪德嘉博士《身份危机》一书中 U盾(USBKEY)章节,带大家了解U盾是如何确认网络用户的身份和用户数据的安全?
拥有U盾,人们办理网上银行业务时,不用再担心黑客、假网站、木马病毒等各种风险,U盾可以有效保障银行客户的网上银行资金安全。除U盾外,各银行还推出了一系列安全措施:通过别名登录(一种不同于传统账号登录的自定义登录方式),登录密码和支付密码双重密码控制,以及支付额度控制等措施来确保客户安全;通过网址核对、网站证书验证、预留信息验证等方式来识别和防范假冒银行网站。
U盾作为移动数字证书,它存放着一位银行客户个人的数字证书,并不可读取。同样,银行也记录着这一客户的数字证书。当银行一客户尝试进行网上交易时,银行会向其发送由时间字串,地址字串,交易信息字串,防重放攻击字串组合在一起进行加密后得到的字串A,客户的U盾将根据客户的个人证书对字串A进行不可逆运算得到字串B,并将字串B发送给银行,银行端也同时进行该不可逆运算,如果银行运算结果和客户的运算结果一致便认为客户合法,交易便可以完成,如果不一致便认为不合法,交易便会失败。理论上,不同的字串A不会得出相同的字串B,即一个字串A对应一个唯一的字串B:但是字串B和字串A无法得出你的数字证书,而盾具有不可读取性,所以任何人都无法获得你的数字证书。并且银行每次都会发不同的防重放字串(随机字串)和时间字串,所以当一次交易完成后,刚发出的B字串便不再有效。综上所述,理论上U盾是绝对安全的,其理论上发生伪造概率大约为2的80次方分之一。
U盾的发展史
1、一代U盾
它是由一块内置安全系统芯片、电子数字证书与签名秘钥构成的。安全芯片的作用是对使用U盾计算机进行安全扫描,排除风险。电子数字证书与网站安全证书互动,实现用户登录安全保障,而每个U盾特有的签名秘钥是不可以被复制的,秘钥的唯一性特质,再次加强其安全防护。
一代U盾是基于便利性的理念,外形就像一个USB,因此在提议之初便得到了发展。同时,U盾是基于PKI技术,并且采用1024位非对称密钥算法对网上数据进行加密、解密和数字签名等相关操作,确保网上交易的真实性与安全性。它设备虽然小巧,但技术含量极高。
随着电子商务和PKI应用的兴起,数字证书作为确认用户身份和保护用户数据有效手段越来越被人们所接受。然而数字证书实质上表现为带有用户信息和密钥的一个数据文件,如何保护数字证书本身又成为PKI体系中最薄弱的环节。数字证书可以保存在各种存储介质上,如软盘、硬盘等。国内CA早期颁发的数字证书都是以软盘的形式发放,或者由用户从网络上下载,然后导入到系统中保存在硬盘上。然而,用软盘保存数据是非常不可靠和不安全的,软盘虽然便于携带,却非常容易损坏,而用硬盘保存数据虽然不容易损坏,但是不便于携带,更致命的是不论用硬盘还是用软盘保存数字证书都非常容易被复制或被病毒破坏。虽然一般数字证书都带有密码保护,然而一旦证书被非法复制,整个安全系统的安全性就降低到仅仅靠密码保护的级别。于是,专门用于存储秘密信息的U盾就很自然的成为数字证书的最佳载体。
U盾厂家将U盾与PKI技术相结合,开发出了符合PKI标准的安全中间件,利用U盾来保存数字证书和用户私钥,并对应用开发商提供符合PKI标准的编程接口如PKCS#11和MSCAPI,以便于开发基于PKI的应用程序。由于U盾本身作为密钥存储器,其自身的硬件结构决定了用户只能通过厂商编程接口访问数据,这就保证了保存在U盾中的数字证书无法被复制,并且每一个U盾都带有PIN码保护,这样U盾的硬件和PIN码构成了可以使用证书的两个必要因子。如果用户PIN码被泄漏,只要保存好U盾的硬件就可以保护自己的证书不被盗用,如果用户的U盾丢失,获得者由于不知道该硬件的PIN码,也无法盗用用户存在U盾中的证书。与PKI技术的结合使U盾的应用领域从仅确认用户身份,到可以使用数字证书的所有领域。
但一代U盾的客户获得交易单详情地途径只有由计算机屏幕上的网页,增大了资料交互经历被不法分子攻击的危险。同时,一代U盾并没有一个危险预报功能,在对信息进行签名操作时,不会针对性的提示,也不会提供给用户下一步操作的步骤。这无疑大大增加了U盾被远程劫持的可能性,甚至出现客户签名的是未知订单,造成意外财产损失。一代U盾主要有以下两个关键问题:(1)网页病毒后台修改未完成的交易项或支付信息,强行让用户打款给黑客或是完成不法分子的订单。(2)罪犯通过木马将客户在电脑上使用的U盾进行虚拟至他本地的计算机,用客户财产进行支付或转账活动。
2、二代U盾
二代U盾,在一代USBKey基础上增加显示、按键功能。一代U盾已是比较成熟的安全产品,但是近年来对U盾产品的攻击手段不断翻新,层出不穷。近来,黑客通过“木马”远程控制主机,冒用合法用户的U盾,为非法数据生成合法签名的案件已有发生。虽然这类案件主要由于客户端环境的脆弱性导致,与U盾本身的安全性没有太大关系,但只有解决在危机四伏的客户端环境下使用网上银行的安全问题,才能真正解决用户和银行的后顾之忧,促进网上银行应用的健康发展。
在此背景下,为了解决一代U盾应用中由于终端交易环境不安全而存在的“交易伪造”和“交易劫持”问题,在2005年提出了“基于可参与性的网络可信交易理论”,并以此为基础,针对具体工程实现,提出了操作控制列表技术(OperationControlList,简称OCL技术)。它从硬件认证设备端入手,充分考虑已有应用环境的兼容性和便利性,避免对平台及交易环境的改变,很好地解决了终端交易环境不安全所带来的“交易伪造”和“交易劫持”问题,因而得到了产业界和各商业银行的广泛认可和支持。OCL技术现已成为中国主流商业银行高端U盾的技术标准。
随着二代U盾产业链的成熟,产品成本不断降低,为二代U盾产品的大规模商用奠定了良好的物质基础。从2010年开始,目前国内最大的工、农、中、建四家国有商业银行均已大规模发行二代U盾产品,累计发行量已超5000万支,从技术上和经济上证明了其可行性。2012年,各股份制银行、城市商业银行、农信银系统都已开始进行二代U盾产品招标和测试工作。二代U盾产品的推广和使用,彻底解决了网上银行交易过程中客户端操作的安全隐患,为网上银行业务的深入开展奠定了坚实的基础,使各金融机构在网上银行业务的推广过程中再无后顾之忧。
3、三代U盾
随着具有PKI功能的多应用金融IC卡的发行,在金融IC卡中实现数字证书应用在技术上成为可能,因此集成了二代U盾、智能卡读写器和金融IC卡功能的三代U盾产品(也称为互联网终端或个人金融终端)成为业界关注的热点。这种产品在传统智能卡读写器基础上增加了安全芯片、显示屏、数字键盘等模块,可实现二代U盾、动态口令(OTP)、金融IC卡和行业应用IC的余额查询、圈存、消费等各种应用,使人们在足不出户的情况下,尽享银行提供的各种金融服务,是人们迈向无现金社会的必选装备。
存储型的U盾由于其硬件功能的限制,仅能实现简单的数据摘要算法,对于PKI中广泛使用的对称和非对称加密算法只能通过运行在PC上的中间件来实现,这样在加密和签名运算中用户的密钥就会出现在内存中,有可能被技术高超的黑客获取。随着用户对信息安全要求的提高,市场出现了由硬件实现加密运算的需求。智能卡技术的发展,智能卡运算能力不断提高,出现了可以运行加密算法的智能卡。然而,以卡片形式存在的智能卡在使用时必须通过读卡器与电脑通讯,非常不方便用户使用。于是出现了将智能卡芯片和读卡器结合在一起的U盾。带有智能卡芯片的U盾可以通过内置的智能卡芯片在Key内部硬件实现DES/3DES、RSA加解密运算,并支持Key内生成RSA密钥对,杜绝了密钥在客户端内存中出现的可能性,大大提高了安全性。
目前市场上见到U盾按照硬件芯片不同可以分为使用智能卡芯片的和不使用智能卡芯片两种,按照CPU是否内置加密算法又可以分为带算法和不带算法的U盾。一般我们把不带加密算法的称为存储型U盾,带加密算法的称为加密型U盾。
U盾(USBkey)市场分析
近几年来,各大银行纷纷发放USBKey,用于网上银行的安全交易、身份认证。USBKey外形如U盘,是一种USB接口的硬件设备,内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书。USBKey在其内部产生用户私钥,交易安全度高,加上支付快捷、便于携带、功能全面、服务多样等特点,使得其在市场上迅速推广,成为保证网上银行、电子商务、电子政务等领域交易安全的标准设备。
我国是全球最大的USBKey生产地,也是全球最大的USBKey市场。2010年,中国的USBKey销量超过6000万支,同比增长90%以上。巨大的市场吸引了众多的分食者,目前国内大约有十多家USBKey厂商。2010年前三家USBKey厂商的销量市场份额比重超过60%,市场品牌集中度相对较高。这一方面和USBKey产品需要安全认证有关,因为USBKey应用领域比较特殊,一般企业很难进入银行供应商环节,而一旦进入银行则在短期内具有一定的稳定性。另一方面,USBKey芯片和系统越来越朝着高度集成化、可多方应用等方向发展,提高了开发难度,同时产品更新换代速度较快,增加了成本投入,已有积累的企业形成先发优势,增加了其他企业的进入壁垒。此外,当前银行大力降低采购成本,使得年产量较小的厂商只能在网上银行以外的市场游离。产品更新换代速度的加快也使该市场的竞争越发激烈。
目前中国的USBKey大部分应用于网上银行领域,用于网银的USBKey市场占到总市场的80%以上。造成这种现象的原因主要是网上银行应用和其它领域应用的受众群体不同。网上银行应用受众群体基本为个人消费者,虽然企业网上银行也占据了一部分市场,但和个人网上银行用户数量相比仍然有非常大的悬殊。相比而言,电子政务、电子商务等领域的受众群体却主要是企业,例如:电子政务中的网上报税、网上报关等受众群体基本都是企业。企业用户数量和个人用户数量的悬殊是造成市场应用一边倒的主要原因。
2010年初,央行19号文(试行)规定国内银行需在3年内全部发行二代USBKey,从而开启了国内二代USBKey市场。2010年国内二代USBKey市场尚处于起步阶段,销量仅占整个USBKey市场10%左右。此外,随着移动互联网等应用需求的不断扩展,在二代USBKey的基础上,集成了OTP功能或增加复合手机硬件接口的三代USBKey产品,在2013年上半年上市,其销量在随后几年里稳步提高。由于可应用于手机对用户进行身份认证,随着移动互联网的快速发展,三代USBKey将呈现广阔的发展前景。到2016年,三代USBKey超过15000余万支,占USBKey市场总量超过70%。2011-2016年中国USBKey市场产品结构预测(见图7-5)。
图7-5 2011-2016年中国USBKey市场产品结构预测(按销量,单位:万支)
U盾优势
1、硬件PIN码保护
U盾采用了使用以物理介质为基础的个人客户证书,建立基于公钥PKI技术的个人证书认证体系(PIN码)。黑客需要同时取得用户的U盾硬件以及用户的PIN码,才可以登录系统。即使用户的PIN码泄露,U盾没有丢失,合法用户的身份就不会被仿冒,如果用户U盾丢失,其他人不知道用户的PIN码,这也是无法假冒合法用户的身份。
2、安全的密钥存放
U盾的密钥存储于内部的智能芯片中,用户无法从外部直接读取,对密钥文件的读写和修改都必须由U盾内部的CPU调用相应的程序文件执行,从而U盾接口的外面,没有任何一条指令能对密钥区的内容进行读取、修改、更新和删除,这样可以保证黑客无法利用非法程序修改密钥。
3、双密钥密码体制
为了提高交易的安全,U盾采用了双钥密码体制保证安全性,在U盾初始化的时候,先将密码算法程序烧制在ROM中,然后通过产生公私密钥对的程序生成一对公私密钥,公私密钥产生后,密钥可以导出到U盾外,而私钥则存储于密钥区,不允许外部访问。进行数字签名时以及非对称解密运算时,凡是有私钥参与的密码运算只在芯片内部即可完成,全程私钥可以不出U盾介质,从而来保证以U盾为存储介质的数字证书认证在安全上无懈可击。
4、硬件实现加密算法
U盾内置CPU或智能卡芯片,可以实现数据摘要、数据加解密和签名的各种算法,加解密运算在U盾内进行,保证了用户密钥不会出现在计算机内存中。
U盾(USBkey)技术原理
基于USBKey身份认证系统主要有两种应用模式:一种是基于冲击/响应的认证模式,另一种是基于PKI体系的认证模式,广泛运用在电子政务、网上银行。
USBkey身份认证系统应用模式
1、基于冲击/响应的认证模式
采用冲击/响应的认证方法,每个USBkey都有用户PIN码,实现双因子认证功能。USBkey内置单向散列算法,预先在USBkey和服务器端存储一个证明用户身份的密钥,当需要在网络上验证身份时,先由客户端向服务器发送一验证请求。服务端接收到此请求后生成一个随机数并通过网络传输给客户端(此为冲击),客户端收到的随机数提供给插在客户端上的USBkey,由USBkey使用该随机数与存储在USBkey中的密钥进行带密钥的单向散列运算,并得到一个结果作为认证证据传送给服务器(此为响应)。与此同时,服务器使用该随机数与存储在服务器数据库中的该客户密钥进行单向散列运算,如果服务器运算的结果与客户端传回的响应结果相同,则认为客户端是一个合法的用户。USBKEY挑战/应答原理流程图(见图7-6)。
图7-6 USBKEY挑战/应答原理流程图
2、基于PKI体系的认证模式
PKI(PublicKeyInfrastructure)即公共密钥体系,即利用一对互相匹配的密钥进行加密、解密。一个公共密钥(公钥,publickey)和一个私有密钥(私钥,privatekey)。其基本原理是:由一个密钥进行加密的信息内容,只能由与之配对的另一个密钥才能进行解密。公钥可以广泛地发给与自己有关的通信者,私钥则需要十分安全地存放起来。每个用户拥有一个仅为本人所掌握的私钥,用它进行解密和签名;同时拥有一个公钥用于文件发送时加密。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。
引人PKI安全体系,在PKI基础之上以数字证书的形式解决了公钥信息的存储表示问题,通过把要传输的数字信息进行加密和签名,保证信息传输的机密性、真实性、完整性和不可否认性。同时使用硬件USBKey,通过该USBKey中的存储空间存储用户的私钥、会话秘钥以及数字证书等机密数据,并通过该硬件保证用户的私钥不可导出,这样以来就又充分保证了私钥等机密信息的安全性。用户只能通过USBKey内部的CSP模块访问私密数据,提供了银行级别的安全性。
服务器端验证用户身份并传输数据的通信流程如下:
(1)客户端通过确认按钮,将信息A(用户名、密码等)发送给服务器;
(2)服务器收到信息A后,将信息A、当前系统时间、随机码序列(为了防止重放攻击)形成的数据B保存在服务器上,并通过服务器的加密函数将上述信息以客户公钥加密的方式加密成数据C发送给客户端;(3)客户端收到该加密数据C后,用自己的私钥解密,再用服务器公钥加密后,形成数据D发还给服务器;
(4)服务器收到数据D后,用自己的私钥解密,并与服务器上原先保存的数据B进行比对,若完全一致,则服务器认为请求者是合法用户,允许用户的登录操作。
冲击响应模式可以保证用户身份不被仿冒,但无法保证认证过程中数据在网络传输过程中的安全。而基于PKI的“数字证书认证方式”可以有效保证用户的身份安全和数据传输安全。数字证书是由可信任的第三方认证机构—数字证书认证中心(CertficateAuthority,CA)颁发的一组包含用户身份信息(密钥)的数据结构,PKI体系通过采用加密算法构建了一套完善的流程,保证数字证书持有人的身份安全。而使用USBKey可以保障数字证书无法被复制,所有密钥运算在USBKey中实现,用户密钥不在计算机内存出现也不在网络中传播,只有USBKey的持有人才能够对数字证书进行操作,安全性有了保障。
结束: U盾具有安全可靠,便于携带、使用方便、成本低廉的优点,加上PKI体系完善的数据保护机制,使用U盾存储数字证书的认证方式已经成为目前主要的认证模式。随着移动互联网时代飞速发展,不管是传统U盾还是进化后的U盾,在用户的生活中始终扮演者重要角色,都是保护用户资金安全的重要工具。
关于《身份危机》中篇的“硬件时代”章节内容到这里就全部分享完毕,希望分享过的内容对大家有帮助。事实上,除了之前为大家的分享的身份认证技术外,基于人的生物特征的身份认证也是个人身份认证技术中最简单而安全的方法,是一种可信度高而又难以伪造的认证方式。在接下来的章节中,将带与大家一同探讨当前信息安全技术领域的热点——基于生物特征的身份认证技术,敬请期待!