《SD接口的智能安全卡的研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
北京邮电大学硕士学位论文SD接口的智能安全卡的研究SD接口的智能安全卡的研究摘要随着Intemet及电子商务的普及,网络安全己经成为人们关注的一个焦点。人们需要更有效的方法来保护自己的信息安全。智能卡能够存储和解释私人签名密钥和证书,实现数字签名和认证,有效的保证信息的安全。SD(SecuritvData)接口具有较高的传输速率、支持即插即用与热插拔、设备体积小便于携带等优点,这使得SD接口设备在计算机和外设的通信中占有重要地位。因此,具有sD接口、起到身份认证和电子签名作用的智能卡即SDKev,在网络安全、电子商务等方面具有十分广泛的应用前景。SDKev从智能卡技术上发展而来,是结合了现代密码学技术、智能卡技术和sD接口技术的新一代身份认证产品。SDK|ev将在与信息安全相关的各个领域得到广泛应用。SDKev整个体系结构由硬件层、核心驱动层、标准中间件层和应用层构成。本文偏重对底层的硬件的研究,包括硬件电路、cos(chip0peratingsystem)和sD固件程序。本文深入的研究了sD接口标准与智能卡的国际标准IsO/lEC7816协议,在理解协议的基础上研制了基于智能卡的安全认证终端。该终端突破了以往使用智能卡必须使用读卡器的工作模式,利用该终端与移动设备的sD接口直接进行通信。PC/sc协议定义了主机与智能卡互联的体系结构,本论文对PC/SC规范进行了简介。并探讨了在PC/SC规范下主机端的设备驱动程序开发。关键字;网络安全SD安全卡COS微控制器驱动 北京邮电大学硕士学位论文sD接口的智能安全#的研究THERESEARCHoFSⅣU岍SECURITYCARDWITHSDINTERE托EAstheIntemetandBCommefcebecomemoreandmorepopular,NetwofkSecurityespeciallyidentityauthentication,electfonicsignatllre,dataencryptionbecomeafocus.Peopleneed柚ef!fbctiVewaytOpfotecftheirinformationsecurity.SmartCardcaneffectiVelyproIecttheinformationsecuritybecauseitcanstoreandexplainthepriVates培naturekeyandcertificate,realizedigitalsigllatureandauthentication.TheSDinte施cehaShi曲tfansmissionspeed,plug越dplay,haslittlebulk,s0theequipmentswithSDinterfaceplayanimportfoleinmecommunicationbetweenconlputerandperipheraIs.’nleKeywithSDtechnologywiIIhavegoodprospectsinnet、ⅣorksecurityandE-commerce.SDKeydeVelopsf沁mSmar£Card.Itisanewgenerationidenti母authenticationproductwithcryptographytechnoIogy,SmartCardtechnologyandSDtechnology.SDKeywillwidelyusedintheinformationsecurityfield.TheSDKeysystemincludeshardwarelayer,kerneldriVerlayer,standafdmiddlewarelayer,applicationlayer.nispapeffocusedonthe佗searchofhardwafelayef.Thehardwarelayefincludeshard、Ⅳafedfcuit,CoSandfi姗warecode.Inthispaper,theSDiIlte血ceprotocoland3 北京邮电犬学硕+学位论文SD接口的智能安全膏的研究IS伽EC7816pfotocolarcstIldied,叩onwhich,theauthenticatete加inalisdeveloped.Itbreaksthroughthetraditionalusagernodelofsmartcardinwhichsmartcardreadermustbeused.ThisauthenticateterminalcommunicatedirectlywithhostthroughSDport.PC/SCpmtocoldefinesthcinteropemtionsystemstmctIlrebet、jl,eenIC卸dhost.Inthispaper,PC/SCpmtocolisrcarchedbasedonwhichthediVerdevelopmentisintroducedinthispaper.1【EYWODS:NetworkSecuritySDKeyCOSMCUDriVer4 北京邮电大学硕士学位论文sD接口的智能安全卡的研究独创性(或创新性)声明本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。申请学位论文与竣料若有不实之处,本人承担一切相关责任。本人签名:盏篓2遗R期:弘卑瘁三a暂dI/,关于论文使用授权的说明学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅:学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。(保密的学位论文在解密后遵守此规定)保密论文注释:本学位本人签名导师签名 北京邮电大学硕士学位论文SD接口的智能安全R的研究1.1课题背景第一章绪论近年来,随着移动通信和Intemct的高速发展,网络和电子商务(Bcommerce)已成为各行业关注的热点,而且迅速影响着人们的生活,移动电话与Intcmet相结合,产生的移动互联网(MobileIntemet),解决了人们随时随地上网的需求。在移动互联网上电子商务也就自然地发展成为移动电子商务,即MobileElectmnicCommercef或M—Commercc)。所谓移动电子商务,是通过手机、PDA(个人数字助理)、呼机等移动通信设备与因特网有机结合所进行的电子商务活动。移动通信技术和其它技术的完美组合创造了移动电子商务。伴随着移动电子商务用户的增加,无线网络黑客的数量也会增加,因此出于对金融、商业及私人隐私的考虑,安全的问题也变得越来越重要。J下因为无线用户可以随时随地自由的连接无线网络,所以就更增加了网络的安全风险:用户与无线网络之闻的通信很容易被截获;恶意软件也很容易被引入到网络中来;网络更容易被黑客攻击。这些问题在有线网络同样存在,但是在无线网络中这些问题混合在了一起,更加难以处理。客户端迫切需要一种具有良好性能、操作简单、同时便于使用的安全产品来保护个人敏感数据和网上交互信息。使用智能卡(SmanCard)或者集成电路卡(1nle盯ateCircujIcard:ICC)方法是目前国际上公认的网络信息安全中最好的用户端解决方案。智能卡内部有微处理器(CPu)和可重写存储单元(EEPROM),并且有硬件方式实现的DEs加密算法和文件管理系统以及信息保护算法等。它能够将用户的重要信息如:密钥、证书、口令等安全的存于智能卡内,并能够实现卡内产生密钥等许多功能。智能卡具有体积小、携带方便、保密性高等特点。使用智能卡作为网络电子身份鉴别设备,可提供便携式网络认证,可与PIN(PersonaIIdentificationNumben)值组合提供双重身份验证机制。是身份认证、电子商务、家庭银行、信息安全、身份控制以及其它安全应用的理想解决方案。在电子政务、网络安全和电子商务等需要认证和保密的应用环境中具有十分广阔的I;i『景。鉴于此,本文提出了一种基于Pl【I(PublicKeyIn触stmcturc)公开密钥基础设施体系的SD接口的智能卡即SDK.cy客户端设计方案。Pl(I是指通过公钥概念与技术来实施和提供安全服务的具有普适性的安全基础 北京邮电大学硕士学位论文SD接口的智能安全#的研究设施,它的核心服务是认证、数据的完整性和机密性。作为一种技术体系,PⅪ可以作为支持认证、完整性、机密性和不可否认性的技术基础,从技术上解决网上身份认证、信息完整性和抗抵赖等安全问题,为网络应用提供可靠的安全保障。作为基础设施,PKI与使用Pl(I的应用系统是分离的,因此具有“公用”的特性;另一方面,离开PⅪ应用系统,Pl(I本身没有任何用处。正是这种基础设施的特性使PKI系统的设计和开发效率大大提高,因为Pl(I系统的设计、开发、生产及管理都可以独立地进行,不需要考虑应用的特殊性。从而,安全应用程序的开发者就不必再关心复杂的数学模型和运算,只需要直接按照标准使用一种接口即可。1.2课题研究的现状与发展前景十届全国人大常委会第十一次会议于2004年8月28已通过了《电子签名法》I剐,于2005年4月1同起施行,这标志着电子签名(即数字签名)与文本签名具有同等法律效力,并明确电子认证服务市场准入制度,保障电子交易安全。截至到2003年我国数字签名卡及uSBKcv的累计发行已接近300多万,主要分布在网上报税、电子口岸、网上银行、电子政府及企业网络认证等领域。目前各地数字证书的应用如火如荼的展开,据不完全统计,国内各CA(Ccrt砸cationAutho—ty)证书机构目前己签发的证书达500万张以上。CA证书与&v结合是大势所趋,所以目前研究的SDKev将有极大的市场潜力。美国早在2000年6月就制订了电子签名法,目前美国、德国、同本、新加坡、马来西亚等数十个国家都有电子签名法。这些国家的&v技术相对中国来说更加成熟。例如,利用生物特性识别技术,使指纹、虹膜取代传统的用户口令P玳获得对Key的使用权限,更加安全和方便:使用ECC(椭圆曲线密码)算法取代DES算法进行数字签名,由于ECC在相同的安全强度下密钥长度短于DEs密钥,所以速度相对于DEs有较大提高。除了利用数字签名进行身份认证,Kev还可以扩展其他功能,在国内外均已有应用。Kev可以作为软件加密锁,解决软件反盗版问题,还可用于操作系统安全登陆和文件系统控制等领域;如果扩充Kev芯片的存储能力和计算能力,还能作为智能闪存使用。实现对存储数据的加解密,使数据以密文形式进行传输和存储,成为安全的数据保护和存储介质。本文研究的SDky安全卡解决方案部署图如图1.1所示2 北京邮电大学硕士学位论文SD接口的智能安全卡的研究图1.1安全卡解决方案部署图sDKey在用户端以卡片形式提供给用户方便用户携带,也可以方便的应用于C稻或者B,s结构的系统当中。SDKey所要解决的主要问题是客户端和服务器端的身份认证、在客户端和服务器端之|’BJ建立安全隧道、对客户端的关键数据进行加密、签名。1.3本文主要研究内容及结构本课题的主要研究目的是基于微控制器及ToD—Down设计思想完成一个SDKev的设计,同时,建立该设计的测试平台。本论文的研究内容主要包括三部分:首先分析和了解和本设计相关的协议sDMemory规范,IS伽EC7816.3和PC偈C规范,并根据本设计的具体应用环境完成对SDKev整体结构的设计和各个组成模块的功能划分;其次,重点分折了SDKev功能定义和具体的电路实现;最后分析了一下SDKev驱动程序的设计。3 北京邮电人学硕士学位论文SD接口的智能安全卡的研究本文结构如下:第一章为绪论部分,介绍课题的背景,研究的现状及发展前景。第二章为SDKey概述,主要分析了SDKey的特点、应用方式以及能够解决的问题。第三章介绍sDKev硬件层涉及到的关键技术包括sD接口技术、芯片操作系统COS,以及详细分析了接触式智能卡IS0/IEC7816-3协议。第四章为SDKev电路设计,详细分析了SD接口部分、CRC与DES部分的硬件实现。第五章介绍了SDKev驱动程序设计。最后为本文的结束语。4 北京邮电大学硕士学位论文sD接口的智能安全每的研究2.1SDKcy特点第二章SDKey概述SDKcv是结合了现代密码学技术、智能卡技术和SD接口技术的新一代身份认证产品,是一种秘密数据存储设备,它具有以下特点:1、双因子认证每一个SDKev都具有硬件和PⅢ码保护,PIN码和硬件构成了用户使用SDKev的两个必要因素,即所谓“双因子认证”。用户只有同时取得了SDKev和用户PIN码.才可以登录网上银行等移动电子商务系统。即使用户的PIN码被泄漏,只要用户持有的SDKey不被盗取,合法用户的身份就不会被仿冒;如果用户的SDK|ev遗失,拾到者由于不知道用户P烈码,也无法仿冒合法用户的身份。2、带有安全存储空间SDKev具有8K.64K的安全数据存储空间,可以存储数字证书、用户密钥等秘密数据,对该存储空间的读写操作必须通过程序实现,用户无法直接读取,其中用户私钥是不可导出的,杜绝了复制用户数字证书或身份信息的可能性。3、硬件实现加密算法SDKcv内置CPu或智能卡芯片,可以实现PⅪ体系中使用的数据摘要、数据加解密和签名的各种算法,加解密运算在SDf沁v内进行,保证了用户密钥不会出现在计算机内存中,从而杜绝了用户密钥被黑客截取的可能性。sDKcv支持RsA,DES,SSF33和3DES算法。4、便于携带,安全可靠如拇指般大的SDKev非常方便随身携带,并且密钥和证书不可导出,Kev的硬件不可复制,更显安全可靠。2.2SDKey身份认证系统的应用方式1、基于冲击——响应的双因子认证方式当需要在网络上验证用户身份时,先由客户端向服务器发出一个验证请求。服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为冲击)。客户端将收到的随机数提供给Key,由Key使用该随机数与存储在Key中的密钥进行 北京邮电人学硕十学位论文SD接口的智能安全卡的研究MD5.HMAC运算并得到一个结果作为认证证据传给服务器(此为响应)。与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行MD5.HMAc运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。密钥运算分别在Kev硬件和服务器中运行,不出现在客户端内存中,也不在网络上传输,由于MD5.HMAC算法是一个不可逆的算法,就是说知道密钥和运算用随机数就可以得到运算结果,而知道随机数和运算结果却无法计算出密钥。从而保护了密钥的安全,也就保护了用户身份的安全。2、基于数字证书的认证方式随着PⅪ技术同趋成熟,许多应用中丌始使用数字证书进行身份认证与数字加密。数字证书是由权威公币的第三方机构即cA中心签发的,以数字证书为核心的加密技术,可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障删络应用的安全性。PⅪ即公共密钥体系,是利用一对互相匹配的密钥进行加密、解密。每个用户拥有一个仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一个公开密钥(公钥)用于文件发送者加密和接收者验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。用户也可以采用自己的私钥对信息进行加密,接收者如果用发送者的公钥解密,由于私钥仅为用户本人所有。就能够确认该信息确实是该用户发送的,此过程称之为数字签名。SDKev作为数字证书的存储介质,可以保证数字证书不被复制,并可以实现所有数字证书的功能。2.3SDKey能够解决的问题l、客户端和服务器端的身份认证2、在客户端和服务器端之『自j建立安全隧道3、对客户端的关键数据进行加密、签名6 北京邮电丈学硕十学位论文SD接口的智能安全卡的研究3.1引言第三章SDKey相关技术SDKey作为新一代的身份认证产品,涉及很多技术。在底层主要有SD接口技术、cOs(卡操作系统)技术、加密技术。3.2sD接口技术SD舰范文件是由sD小组(包括MEI、ScanDisk、Toshiba公司)和sD卡协会共同制定的。目前sD接口设备中最成熟的是SD接口存储卡(SDMemoryCard)。SD存储卡是为近年来大为流行的音频视频消费类电子产品而设计的。SD存储卡可以为这些产品提供大容量、高性能、便携性的应用。SD存储卡包括一个内容保护机制,这个机制是根据SDMI(数码音乐版权保护系统)安全标准制定的,比以前的存储卡具有更高的速度以及更大的容量。SD存储卡的安全系统使用了相互认证以及“新的密码算法”来阻止对卡内容的非法访问,而对用户本人的内容也同时支持没有安全措施的访问【1J。sD存储卡也支持第二方的普遍使用的安全系统,比如IsO.7816,这个系统给SD存储卡接入公网或其它支持移动电子商务和数字签名的场合提供了接口。除了SD存储卡之外还有sD胂(sDIO)卡。SDl0规范定义了一种可能包含各种I/0单元和SD主机接口的SD卡。SDIO卡的存储部分是与SD存储卡规范完全兼容的。SDl0卡是以SD存储卡为基础并完全兼容SD存储卡的。机械、电气、电源、信号和软件都是兼容的。SD∞卡是为了给移动电子设备提供低功耗下的高速数据I/0。SDI/O卡的基本目标是一个SDI/O卡插入一个不支持SDl,0的主机时不会损坏设备的硬件和软件。这种情况下sDl/o卡只是简单的被忽略。如果插入的是支持sD怕卡的主机,对卡的检测将通过常规方式进行,这些方式在SD物理层规范有详细描述,在SDl0规范罩有一部分扩展。SD存储卡的通信是通过复杂的9脚接口(时钟、命令、4条数据线、3条电源线)进行的,设计工作在最高50MHz以及低电压范围。通信协议在物理层规范里7 北京邮电大学硕十学位论文SD接口的智能安全p的研究面有定义。sD存储卡结构如图3.1所示。彳}量㈨iliDA醢一旦MDCLKDATOCD∞AT3Inle哟cedrtverDATl匝日I上工lQS:垦【jl垒】H_.I£l垡!::■}·-I坠皇!!:!]}噜_-CardInterfaceL望§型3i堡l+-conhqlIer●一葛IS≥里il::.21}·●面厂页可百万确石0基;.M。m。ry。。rem惶丌8。。}卜拿●_●_●I●_●I●-●t●1。r。广。-。’。1。r。●’。●。、。T‘r。产。I。1’1’rI●-I●-●I-●l●J·~-L-●-J-●-‘.k—J-■-‘-~J-J-J.L·-··--州㈣O~∞Ⅻo-·-··●I-■●I●■●’o■’,。●。’。'。r。,o·‘’ot’r。,’。’。’。,-●I●I●-●-●-■●■●■●■_■一■一P一1一●一●一p一■一●-●一h■一●一+一}●-●■●I■●-●_图3.1SD存储卡内部结构SD规范分为几个部分。SD规范文档结构如图3.2所示。囝图3-2SD规范文档结构8 北京邮电大学硕士学位论文SD接口的智能安全#的研究SD存储卡主要有以下特征:可应用在便携以及固定设备上;最大支持2GB的容量(大容量sD存储卡可以支持到32GB):默认模式下支持o.25MHz可变时钟,最高可达12.5MB/秒的接口速率(使用4位并行总线);高速模式下支持o-50MHz可变时钟,最高可达25MB/秒的接口速率(使用4位并行总线);带有密码保护(使用锁/解锁命令);自动卡检测(插入/拔出):数据保护机制.符合高安全性SDMI标准;使用机械丌关支持写保护;读操作期『日J拔出卡不会损坏数据内容。3.2.1SD存储卡接口协议sD存储卡定义了两种可选择的通信协议:sD和SPI。主机能自动选择其中任意一种模式。当接收到主机的复位指令后,卡能检测到主机要求的模式,并在这种通信模式下进行下一步的通信。其中SD通信协议又分为1位总线模式和4位总线模式。最新的SDl0卡规范规定高速10卡必须支持SD存储卡的所有通信模式。SDKcv接口采用的是SDl0卡的SPI通信协议。一sPI接口协议首先是由Motomla公司提出来的,现在广泛存在于各种微控制器中。SPI总线系统是一种同步串行外设接口,允许MCu与各种外围设备以串行方式进行通信、数据交换。SPI系统可直接与各个厂家生产的多种标准外围器件直接接口,SPI系统一般使用4条线:串行时钟线ScK、主机输入/从机输出数据线MIsO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。sPI主从机互联模型如下图所示14J9 北京邮电人学硕+学位论文SD接口的智能安全砖的研究H8BITsH阿REGISTERI‘l8BlTsH;F丁REGlsTERP÷-L—LMoSIMOSlkJLJLS—lFTs尹}k8CKSCKEn捷BLEeLocKGENERAToR,SS图3-3SPI主从机互联模型SD存储卡兼容的sPI通信模式是用来与sPl通道进行通信的,这种方式是在上电后第一条复位指令中选择的并且在工作期间不能改变。SPI标准仪定义了物理连接,而不是完整的数据传输协议。SD存储卡的sPI实现使用的是与SD模式同一命令集。从应用的角度看,SPI模式的优点是可以简化主机的设计,因此减少了丌发费用。缺点就是性能有所降低,相对sD模式减少了总线带宽。SPl总线拓扑结构如图3.4所示11JlO 北京邮电人学硕士学位论文sD接口的智能安全}的研究HOSTCS渔VddVssC&BeLK.DataNOo物0Jte&£VeLK.DatalN.DataCLKDat3;N0ataOCLK.Data;NSO啦emoⅣCARD《AlfSPInlodejSO醚emor¥eA盈0f5;lSPlmode}Man潮ed}aCa『deAR0(Cj(SPImodej图3.4SPI总线拓扑结构卡确认及地址确认被硬件片选(CS)信号代替。没有广播命令。发送每一个命令前,卡(从设备)是通过一个片选信号(低电平有效)被选中的。在整个SPl传输(命令、响应以及数据)期I.日J片选信号必须一直有效。SPI接口使用7根而不是SD总线的9根信号(DATl和DAl2没有使用,DAT3是片选信号)。sPI模式是由基于Flash的sD存储卡提供的一个二级通信协议。这种模式是SD存储卡的一个子集。SD存储卡通道是基于命令和数据位流的,这个过程由一个起始位丌始一个结束位停止,而sPI通道是面向字节的。每一个命令或数据块都是基于字节的,并按字节安排片选信号。在确认片选信号的时候卡开始计数SPI总线时钟周期。每个数据或命令的标记位是安排给8时钟周期的分界线。类似SD存储卡协议,sPI消息包括命令、响应、和数据块标志。所有主机与卡之间的通信是由主机控制的,主机通过拉低片选信号开始每一个总线交互。sDMemoryCard定义了6个寄存器作为sD卡的接口,通过专用的命令可以访11 北京邮电人学硕士学位论文SD接口的智能安全告的研究问这些接口。其中OCR,CID,SCR,CSD描述卡片的详细信息。RCA,DSR是配置寄存器,可以动态配置卡的参数【“。这几个寄存器是卡与SDHost交互的接口。Host通过访问这些寄存器来获得卡支持的特性,或者设置一些卡的参数。下面简单介绍这六个寄存器。1、OcR(Ope均tjonalConditjo璐Re西ster)操作状态寄存器长度32bit,bito-bit31。主要是可以供sDHost查询sDMemoryCard支持的电压范围,卡的容量(bit30),是StandardCapability还是HigllCapability,卡上电过程(PowerupRoutine)是否结束(b“31)。2、cID(cardlDentificati伽number)卡的标识寄存器长度128bit,bit0_bitl27。CID是在卡出厂时就已经编程好了,即是只读的,不能被SDHost改变。3、CSD(CardSpecificData)卡的详细数据寄存器长度128bit,bit0-bitl27。不同版本的卡的CsD寄存器的结构不同,在CSD的CsDsTRuauRE字段倒to'bitl)罩可以查询CSD版本。CSD提供SDHost查询SDMemorvCard内容,卡的容量CslzE,定义数据的格式,DSR寄存器是否可用(DsRlmplemented字段),数据传输相关的参数,如数据传输速度,最大的数据访问时间,最大的读写数据块的长度等等。其中的一些字段是可写的,是配置寄存器。4、RCA(RelativecardAddressl卡的相对地址寄存器长度16bit,bito_bitl5。卡在处于lnactive状念时,当主机发送CMD0命令,总线上的SD卡被初始化为默认的相对地址O。RCA存储卡的相对地址,这个地址被用于认证阶段之后的HoST—a~RD之『白J的通信。一般是作为通信命令的参数。默认值为0】【0000。在cMD7中,参数RsA为O时,CMD7将sD总线上所有的卡恢复到St柚d.by状态。5、SCR(SDConfigIlrationRe舀stcr)SD配置寄存器长度64bit,bit0-bit63。SCR是除CSD外的另一个配置寄存器,SCR提供了每个sD卡特定的信息。包含的内容如scR版本号,SD卡版本号,是否支持安全性,擦除后的卡的状态的默认值,sD总线宽度。由卡的生产商在卡的生产阶段写入。6、DSR(Drivefstagc)总线驱动范围长度16bit,binbitl5。卡在处于Inactive状态时,当主机发送CMD0命令,总线上的sD卡被初始化为默认的相对地址0。同时DsR被初始化为最低的速度,最高的电流驱动能力。该寄存器是可选的。可以用来通过一些扩展的操作状态,如 北京邮电大学硕十学位论文SD接口的智能安全卡的研究总线宽度,传输速率,卡的数量来提高总线的性能。csD中有是否使用DsR的设置。DsR的默认的值为0】【404。3.2.2SDM锄orycard工作流程详解l、SDMemoryCard工作方式SDMemoryCard工作时,卡片共有10种工作状态,三种工作模式。见图3-5,其中数据传输模式分为sPl和sD模式。CardStateOpera稍OnModeha07veS:alelna3cloeld恒Sfa{e弓ea:vSla{eear。Be_lificab∞罐。de醛e州自cat∞S稿teS:ard宅vSt搬T,a£sferS协磅Send,峭·鑫a协8招te孤laTr鞠s衙M0deReceve—dalas协浩prog协nmngSta海0喀eonne^tSlaIe图3.5SD存储卡工作状态及操作模式2、SDMemorvCard工作状态机SD卡工作在一个状态机下,卡片接收到sD主机Host命令,从一种状态转换到另一种状态。主机Host跟CaTd交互的过程既是Host发命令和ca帕响应的过程,也是卡内部状态转换的过程。sD卡被设计成一个有限状态机,在某一特定的状态下,只能响应特定的命令从而进入另一种状念。其它的命令将不被响应。规范SDSpccificatio鹏Partl一PhysicalLayerSpecificationVersion2.ooDraftNovcmber9,2005Page65—66详细介绍了每种命令能被响应的状态集合和响应后的卡的确定的唯一的状态。从认证模式到数据传输模式之间的过渡是由cMD3来完成的,发送cMD3后,卡从Id∞IificationState进入StaIldbvStatc。COM0使得卡从数据传输模式的任一状态进入认证模式的Idlestate,cMDl5 北京邮电大学硕士学位论文SD接口的智能安全膏的研究使得卡从数据传输模式的任一状态进入认证模式的hlactiveState。3、认证模式在认证模式下,不涉及到数据线DAT的数据传输。认证阶段的结果是,卡进入Ident诟cationstate。基本的状态流程如图3.6所示吐基本流程是Inactivc—Idle—Rcady—Identification。Power∞neWHoASD№I∞ryCa嵋砒砒·dlagramlc喜rdl由ntlfIc砒Ionm-椭J图3-6SDMⅧofycard认证模式的状态流程4、数据传输模式数据传输模式下,涉及到了数据传输时的一些状态转换,基本流程是,Stalldby一1.ransf盯一Sending瓜eceivingData-Pro伊ammilIg。发送CMD3后,卡从IdentificationState进入St卸dbyState。进入St蛆dbyState后,CMD7选择总线上的RCA对应的卡,使得被选择的卡进入TransfcrStatc。这时一般先采用cMD6设置总线宽度。然后发送数据(块)读写命令。例如设置总线宽度为4b“后,发送数据块写命令CMD25进入Re∞ivingDataStatc,卡准备在DAro—DAB数据总线上接收数据,送入cMD25参数所指向的卡内地址,数据块长度由cMDl6来设定,默认为512B”e,数据块的个数可由主机控制,14 北京邮电人学硕士学位论文sD接口的智能安全}的研究当使用cMD25后卡会自动识别,(cMDl7则认为只有一个数据块),cMDl2结束数据传输过程,进入Pm伊ammingState。写命令类似,不再赘述。3.3COS技术3.3.1COS概述SOMemowCard搴t乱●棚agramfd甜atran$fermod●l图3-7SDMemofycard数据传输模式的状态流COS(ChipOperatingSystem)即芯片操作系统,一般指智能卡操作系统,SDKey操作系统的标准与智能卡的cos兼容。和传统的Pc系统软件相比,cOs在Kev中的地位类似于windows、unix等操作系统,但从功能上来说有明显的区别。首先,CoS是一个专用系统而不是通用系统,一个cOS的开发一般是针对某种特定类型的智能卡或usBKe”sDKey及其应用范围而进行的,例如sDKey由于其芯片特性和应用范围与智能卡不同,那么其COS的开发跟智能卡COS相应的有所不同;其次,与微机操作系统相比,COS更接近于监控程序,而不是真正意义上的操作系统。因为在当前阶段,coS所需要解决的还是对外部命令如何进行处理、响应的问 北京邮电大学硕十学位论文SD接口的智能安全卡的研究题,而不用涉及共享、并发的管理及处理等复杂的通用操作系统问题。coS的主要功能是控制sDKey和外界的信息交换,管理K毫y内的存储器,并在l(ey内部完成各种命令的处理。具体说来包括以下几个部分:≯Key的上电复位COS直接运行于芯片平台上,是所有应用代码的运行平台。COS程序运行的起点是Key的上电复位,Key插入主机后,芯片自动从指定位置丌始运行程序。此时c0S需要设置好所有的环境,等待应用的执行。》芯片底层硬件的驱动COS直接控制芯片的各个部件,包括存储器的读写、协处理器的使用、端口的监控、随机数发生器的使用等。≯&y对外接口交互芯片通过I/O端口与外界通信,所传递的数据格式必须符合相应的国际规范,CoS所遵循的信息交换协议目前包括两类:异步字符传输的T-=0协议以及异步分组传输的T=1协议。这两种信息交换协议的具体内容和实现机制在IS伽Ec7816.3标准中作了规定。>Kcv内存空间的维护Key的内存空|'HJ是程序的数据临时空间,是Kcy内的重要资源。由于价格等因素,内存空问通常十分有限,cOs需要提供相应的保障机制合理分配内存,并且区分保护好系统和应用各自的内存空间,确保安全性。≯-(cy内文件系统的维护数据在Kev内以文件的形式存在,和Pc中的操作系统类似,C0s的文件系统必须提供文件的建立、修改、删除、维护等基本操作,此外还有文件的寻址,文件访问的安全控制等。>系统运行安全的控制C0s级的系统安全主要表现在以下两个方面:一是cos对卡或Kev内数据的安全保障能力,二是cos对外提供的安全定义。应用应该能够利用COS提供的安全机制自定义出卡或Key内数据的访问控制。安全控制是C0s的核心,也是衡量CoS性能的一个重要部分。》命令的处理Key和应用之间的接口表现形式是命令和响应的方式,COS利用I,0接口接收命令报文,根据报文的内容和相应的逻辑进行处理,最终通过姻接口返回响应。命令处理是cos的核心部分,也是最终测试Cos正确与否的依据。16 北京邮电大学硕士学位论文SD接口的智能安全卡的研究》应用代码的执行COS对应用命令进行处理,最终将调用相应的应用代码。c0S需要实现定义好应用代码与COS系统的调用机制,即要能够完整的完成应用逻辑,又需要严格控制应用代码和COS代码的运行空间。3.3.2COS模块划分从信息传输的过程来看,我们把cOs分为四个模块:传输管理(TM)模块、安全管理(sM)模块、命令管理(AM)模块和文件管理(FM)模块,如图3.8所荆3】:图3—8COS逻辑结构图首先传输管理模块对物理层上传输的信号进行解码并将其传递给安全管理模块;若为加密传输则该模块对其进行解密并将解密后的命令传输给命令管理模块,若不是则将该模块直接传递给命令管理模块;命令管理模块根据预先的设计要求,检查此命令的合法性以及是否具备执行条件,若检查通过则启动执行此命令;如果此命令涉及到有关信息存取,则文件管理模块检查其是否满足预先设计的存取条件,若条件满足则执行有关数据存取操作。在整个过程中,若任何一次检查失败将立即退出并给出响应信息。传输管理rrransmissionManager)主要依据Key所使用的信息传输协议,对由主机发出的命令进行接收,同时,把对命令的响应按照传输协议的格式发送出去。在接收命令的同时,传输管理也对命令接收的正确性做出判断。这种判断只是针对可能的传输错误而占,不涉及具体的命令内容,通常由奇偶校验位、校验和来实现。如果传送管理器接收到的命令是正确的,它将接收到命令的信息部分传到下一功能模块,即安全管理器,而滤掉诸如起始位、停止位等附加信息。相应的,当传送管17 北京邮电大学硕士学位论文SD接口的智能安全卡的研究理器向主机发送应答的时候,则应该对每个传送单位加上信息交换协议中所规定的各种必要的附属信息。根据IS07816.3接触式卡智能卡的电信号和传输协议,智能卡的通讯传输协议有两种:异步半双工字符传输(T-=0)协议和异步半双工分组传输(T=1)协议。T=O协议以单字节的字符为基本单位,T毫1协议以一定长度的数据块为基本单位。sDKey的通信使用的是改进的T兰O协议。T毛0协议是面向字符的传输协议,从物理层上看,字符帧由1个起始位S、8个数据位和1个奇偶校验位P共10位组成,如图3—9所示12J::]!田]]丑互工工卫r图3.9T;O协议帧格式命令管理(ApplicationManager)的任务是对K-cy接收的命令的可执行性进行判断,然后执行。因为应用都是以文件的形式存在,因此,命令管理的关键是对文件访问的安全控制问题。文件管理(FileManager)通过为每种应用建立一个对应文件的方法来实现COS对各个应用的存储及管理。文件系统是cOs的基础模块。它负责组织、管理、维护I(cv内存储的所有数据。根据IS07816.4接触式卡智能卡与外界交互的接口规范,COS的文件系统按照其所处的逻辑层次可以分为三类:主文件(M弱tcrFiIe)、专用文件(DcdicatedFile)、基本文件(Elem锄taryFilc)。主文件MF为文件系统的根,下面可以有多个专用文件DF和基本文件EF。专用文件DF分为DDF(DiredoryDledicatedFile,目录专用文件)和ADF(ApplicationDedicatedFilc,应用专用文件)两种。DDF可以含有下级专用文件ADF,而ADF不能含有下级专用文件。一个具体的文件结构示意图如图3.10所示12J:18 北京邮电人学硕士学位论文SD接口的智能安全}的研究图3·lOCoS文件系统和PC上的文件系统相比,cos的文件系统有自身的特点:≯COS的文件操作很简单,不存在拷贝、剪切等;≯对于一个确定的应用,cOs内的文件结构以及大小都很固定,其存储空问大小和文件的属性在建立文件时就能确定,在使用中不需要修改;≯COS内的文件通过文件类型来表示不同的操作模式,类型和操作的关联通过文件系统来实现(PC一般通过应用程序来实现)。根据上述特点,文件系统有如下的逻辑结构:≯文件系统分层管理,树状结构。从逻辑上保证不同应用的数据文件具有各自的入口,实现应用之间的独立性,以保证COS的结构性和安全性;≯文件存储空间的连续。由于每个文件在建立时能够确定其最大长度,所以文件的存储在物理上可以保证其空间的连续性,以减少c0S设计和实现的难度;≯由于不同文件类型决定了不同的操作模式,每个文件在建立时必须指定文件类型,在文件操作前做严格的检查。COS文件的操作包括文件的建立、文件的查找、读取和更新、文件的删除。3.4加密技术l、RSA加解密算法RSA加解密算法描述如下:(1)随机的选择两个大素数p和q,并保密;(2)计算n=pq,并将n公开;(3)计算F(n)=O-1)(q-1),并对F(n)保密; 北京邮电人学硕+学位论文SD接口的智能安全卡的研究(4)随机的选取一个正整数,1 。2、DES算法3、ECC(椭圆曲线密码)算法4、生物特性识别技术2、3、4不再详述,请参考相关文献。20 北京邮电大学硕+学位论文SD接口的智能安全卡的研究4.1引言第四章sDKey电路设计在分析了sDKcy的体系结构之后,并参考了一些已有的设计方案,结合实验室的丌发环境,本文提出了sDKey的整体硬件构成,完成了各部件的功能划分。并详细的对SD接口部分、CRC、DES模块的功能进行了分析并介绍了部分电路的设计和实现。4.2SDKey体系结构SDKcy体系包括四个层次:(1)硬件层,包括硬件电路、cos和sD固件程序;(2)核心驱动层,指主机端SD驱动程序;(3)标准中间件层,包括PKcS社11接口和CsP接口;(4)应用层,指开发的上层应用程序。sDl(cy体系结构图如图4-1所示。厂面葡rI1...........................一隔磊下而军]星陬正蕊萄开司l,...............。.......一[二!]圈田[!!!圈![二!!]囹4.1SDKey体系结构硬件层包括Kev的硬件电路,固化在芯片罩的芯片操作系统COs和设备端的SD驱动程序。该层与用户主机之问以sD标准协议通信,使用标准SD通信协议交换C0s的APDu(应用协议数据单元,Appli∞tionProtocolDataunit)。核心驱动层指主机端的sD驱动程序。是依据微软定义的PC/sC(Personalomnputcr/smanCard)标准开发的驱动接口,使得上层可以通过will32标准函数集访问Kcy。该层负责协调用户主机与硬件层之间的数据交互操作和处理上层应用对 北京邮电大学硕十学位论文SD接口的智能安全}的研究Kev的访问请求。标准中间件层处于应用层和设备驱动之间,包括基于具有跨平台特性的PKc簖11(公钥密码标准,PubIicKeycrypto掣aphicstalldard)标准接口和w玳DO、VS平台的CSP(加密服务提供商,oypto伊aphicseⅣiccPmvidef)接口,应用开发者无需移植,可方便使用。PKcs是公钥密码体系的互操作标准,能实现不同系统、不同应用对公钥密码操作的兼容性。csP是微软为wIND0wS平台提供的最底层加解密接口。应用层是指针对上述接口开发的各类应用。本文主要研究硬件层的实现。4.3SDKey硬件构成SDKev的硬件构成包括七个必要组成部分:微处理器、系统外围设备、存储器、通信外围接口、密码协处理器、调试接口和安全访问逻辑12J。微处理器MPufMiniProcessorunitl是sDKcv的核心,在功能上类似于Pc机上的CPU,完成基本的指令执行、存储控制和逻辑控制等。SDKey多采用8位或16位的MPu。系统外围接口是指UO接口,是芯片与外界联系的唯一通道,提供芯片与外设间传送数据所必需的状态和控制信息。存储器用来存储程序代码和数据,包括易失性存储器RAM和非易失性存储器ROM、E2PROM或FL蟠H。随机读写存储器RAM(RandomA∞髂sMemory)类似于Pc上的内存,是临时数据空间,在l(cy复位时自动清零,掉电后数据也全部丢失,Key中一般使用sRAM(staticRAM)。非易失性存储器类似于PC上的硬盘空间,存放cos代码和sD固件程序,Key中多采用E2PROM或F“峪H,ROM由于掩膜后不能再修改,欠缺灵活性,故不是很常用。E2PROM或FIASH均可以反复擦除。通信外围接口指SD控制器,是控制ky与主机问的sD传输的硬件逻辑部件。密码协处理器cAu(aphcfArithmeticunit)是支持密钥对生成和加解密运算的协处理器。sDKcv支持PⅪ,需要提供加解密运算,完全依赖MPu的运算能力用软件实现使得加解密的运算速度不能忍受,必须提供加解密协处理器的支持。随机数发生器RNG(R柚d啪NumbcrG姐entor)生成真正随机的随机数,用来产生一次一密的过程密钥。 北京邮电大学硕士学位论文SD接口的智能安全膏的研究调试接口J1'AG(JoⅡ盯TESTAcnoNGRouP)是在Kcy的开发阶段提供给开发人员的接口,COs的目标程序通过该接口下载到Kcy中并且跟踪调试源程序;在产品使用阶段为了Key的安全性,该接口对用户屏蔽。安全访问逻辑sAL(securityA‘髓稿Lo西c)是芯片自定义的硬件安全逻辑,例如存储区各分区的访问控制,异常的外部光电信号检测等,这些机制对应用完全透明。SDKey的硬件结构图如图舢2所示。∞MPUCAURNG=;l;l{l;rSDJTAGS较AM£7PROM,FLASH。CONl_RoLlNTERFACE图睨sDky硬件结构目前,已有芯片生产商推出了一些集成了SD技术的m(IIlteIlectualProperty)核。如:lllrevium半导体公司的TE4353设备IP核以及11三4391,4392主机IP核、觚san公司的SDIO核AC2200等。AC2200SDIo核,内部功能框图如下图所示111l。图4弓AC2200sDl0核内部结构 北京邮电大学硕十学位论文SD接口的智能安全昔的研究Ⅱ}4353设备JP核,内部功能框图如下图所烈堋。·蝶!VD0~一*————m—-。^VSSl—-··---⋯一~⋯一·———n“!i熬.X}MPD^dd啦4嘲R胱D(8bn).cIsTE43竹{FlndⅨ蚋SO盼C甜d-妯XCSCIs40xOo-{∞O—OxO’』册COnH翻IerXeSCS^XWA盯XwEC§^)(I难.Fu啦nmRmc#anO∞0_哪-mmoFFFC峙tCSA^ddd{7blllR,WD(8bm×CSFNlRegb柑Sp^c●|XWEFNlR■∞'删阮’|髓彬∞7~⋯墼恻!⋯:~j。xwA|T-FHlB蛳RA碡’XINT。⋯一缈似口塑——!Q£a缝蠖。图4-4TE4353SD设备IP核内部结构图从以上图中可以看出,此类IP核的核心是SDlO控制器。对SD的协议的处理都是由此控制器来完成的。SD的数据和具体应用的数据都有自己的FIFD进行缓冲,它们和控制器的通信是通过一组总线来实现的。事实上,目Ij{『推出的大部分sD接口的产品都是基于类似的伊核来实现的。不同的是,不同的产品中集成的ROM和黜W容量不同,并集成了一些有特色的电路。在参考了一些设计结构后,结合本课题的实际要求,提出了基于微处理器+可编程器件的实现方式。sD接口逻辑由微处理器来实现,主要完成数据的接收和发送,并进行一定的处理。主要的功能有:(1)协议包的起始检测;(2)数据和时钟接收和恢复功能;(3)串并数据的处理。cRc、DES等逻辑由可编程逻辑实现,加快执行速度。主要完成CRc校验与DES加密功能。时钟部分、电源部分、复位电路是整个系统稳定工作的保障。FIFo主 J匕京邮电大学硕士学位论文SD接口的智能安全卡的研究以及存储器部分是用来存储代码、暂存运行期间数据以及进行数据缓冲,没有使用专门的器件来实现而是使用的微控制器内部自带的ROM、RAM、EEPROM以及可编程逻辑器件内部的逻辑单元来实现的。4.4SDKey的设计方法近十几年来,微控制器技术得到迅速发展,很多国际芯片厂商都推出了各具特色性能优异的微控制器产品,涵盖了从4位到8位、16位、32位甚至是64位的全部范围。由于采用了流水线设计技术,可在1MHz时钟下得到lMIPS(百万指令每秒)的处理能力。并且集成了丰富的资源,存储器有ROM、RAM、FLASH、EEPROM,外设接口有UART、SPl、CAN、UsB、AD转换、DA转换,PwM等,并且还有很强的扩展能力,有些还有内部振荡器,在只有电源的情况下微控制器本身就可以完成相当复杂的工作。随着集成电路工艺的发展,芯片抗静电能力至少在3KV以上,内部采用PLL倍频技术抗干扰能力也大大提高。很多微控制器带有片内下载调试接口方便开发。采用微控制器做设计用软件来完成大部分工作,系统便于升级,便于在片中采用一些加密措施,保护知识产权。以前用逻辑电路加时序电路做设计的时代一去不复返了。为了应付同益复杂的集成电路设计,集成电路设计方法学的研究得到了广泛的重视。目前Top.Down设计方法学是集成电路设计的主流方法,其主要特征是综合技术和硬件描述语言的使用。单个功能完整的模块采用Top.Down设计方法进行设计时,首先建立其行为功能模型,模拟币确后进行模块划分,RTL级仿真验证后进行综合,得到功能和时序均正确的门级网表,最后还可利用自动布局布线工具得到其版图。Top.Down设计方法,其主要特征是综合技术和硬件描述语言’的采用。用Top—Down设计方法进行系统设计,首先要根据设计要求用高级语言/硬件描述语言建立系统级功能模型,并进行功能模拟,符合设计要求后,再将一个系统用结构设计方法分解成多个可独立设计的子系统,并建立各子系统的行为模型,将各子系统连接起来进行整个系统的功能模拟。按上述方法对各子系统继续分解,直到各子系统的底层模块能够被EDA工具综合为止。在T0口一Down设计过程中,从系统的功能描述开始到最终经逻辑综合得到结构级的网表,每一步分解都要进行模拟验证,以便尽早地发现系统设计中存在的问题,减少设计的反复,提高一次设计成功的可能性,从而缩短系统硬件的设计周期。 北京邮电大学硕士学位论文SD接口的智能安全岳的研究典型的Ttop.Down设计流程如图4.5所示【121。通过行为级、RTL级描述直到逻辑综合,得到电路设计的门级网表后,再对门级网表进行仿真,并检查时序关系。通过反复修改、验证和比较,最后得到正确的设计。版图参数提取后又再指导逻辑综合的优化,并进一步约束布局布线,如此反复迭代,得到最终结果,因此,实际上是从HDL综合到版图的设计流程。图4·5Top·Down设计流程在SDKcy的设计中基木上按照微控制器加Top.Down这种设计方法。SD接口逻辑部分用微控制器模拟时序完成。CRc、DEs用FPGA完成。在完成功能划分后,用Ve蝴og硬件描述语言实现了整个设计的R1限描述。然后使用仿真工具Modelsim对设计的功能和时序进行了测试。最后用综合工具synpIify对通过测试的设计进行了逻辑综合。4.5开发平台介绍SD接口逻辑开发部分原理图如图4.6所示。微控制器采用AⅣEL公司的AVR系列的AⅣEGAl6。删EGAl6是高性能、低功耗的8位微处理器,采用先进的RlSc结构,在最高16M的主频-F可获得16MIPs的处理能力。内部集成非易失性程序和数据存储器,16K字节的系统内可编程F1嬲h,擦写寿命10,000次,512字节的EEPROM,擦写寿命100lOoo次,1K字节的片内sI认M。片上JTAG接口(与正EE1149.1标准兼容)。集成外设有可工作于主机/从机模式的sPI串行接口,具有独立片内振荡器的可编程看门狗定时 北京邮电大学硕士学位论文sD接口的智能安全}的研究器,上电复位以及可编程的掉电检测,片内经过标定的Rc振荡器,宽电压范围在2.7.5.5V可J下常工作。超低功耗,在lMHz,3V,25。C时的功耗:正常模式1.1mA,空闲模式0.35nA,掉电模式
此文档下载收益归作者所有