CN101493967A - 智能卡以及在智能卡中调用服务器证书或证书链的方法 - Google Patents
智能卡以及在智能卡中调用服务器证书或证书链的方法 Download PDFInfo
- Publication number
- CN101493967A CN101493967A CNA2008102475423A CN200810247542A CN101493967A CN 101493967 A CN101493967 A CN 101493967A CN A2008102475423 A CNA2008102475423 A CN A2008102475423A CN 200810247542 A CN200810247542 A CN 200810247542A CN 101493967 A CN101493967 A CN 101493967A
- Authority
- CN
- China
- Prior art keywords
- certificate
- chain
- data
- information
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种智能卡以及在智能卡中调用服务器证书或证书链的方法。为了克服现有技术中在内存资源有限的智能卡上无法完成服务器证书的调用的问题而发明。本发明是通过在智能卡中建立位置信息索引表,用以保存服务器证书或证书链中各数据项目信息相对于证书或证书链的位置信息来实现的。这样,当应用程序根据需要发出对某个或某些个数据项目信息的请求时,微处理器只需根据应用程序的请求,通过查找位置信息索引表,从而从存储器中调出相应的证书或证书链的数据项目信息,返回给应用程序即可,而不需要完全解析备份证书的所有信息,从而能节约大量的内存资源,减少解析时间。
Description
技术领域
本发明涉及计算机和通信安全领域,特别涉及智能卡以及在智能卡中调用服务器证书或证书链的方法。
背景技术
数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证身份的方式。由权威认证机构发行,可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。数字证书包含一个公开密钥、名称以及证书授权中心的数字签名,一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该数字证书的序列号等信息,数字证书的格式遵循ITUTX.509国际标准。
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。
x.509服务器证书(server certificates)组成Web服务器的SSL安全功能的唯一的数字标识。通过相互信任的第三方组织获得,并为用户提供验证Web站点身份的手段。服务器证书包含详细的身份验证信息,如服务器内容附属的组织、颁发证书的组织以及称为公开密钥的唯一的身份验证文件。这意味着服务器证书确保用户关于web服务器内容的验证,同时意味着建立安全的HTTP连接是安全的。
现阶段服务器证书的解析和验证大多是在PC机上进行,一些恶意网站可以通过病毒或插件等技术在PC机上骗过客户端的服务器证书验证,假冒银行等重要机构,骗取用户的信任,引诱客户在不知情的情况下与其进行交易、或获取用户的信息。
智能卡设备的内存容量有限,如果按照常规方法完全解析备份证书的所有信息,在智能卡上会有很多困难,甚至难以执行。
发明内容
为了克服上述缺陷,本发明的目的在于提供一种智能卡以及在智能卡中调用服务器证书和证书链的方法,以避免错误地将恶意网站误人认作自己信任的网站,并且在内存资源有限的智能卡上完成服务器证书的解析和验证。
为达到上述目的,本发明智能卡,该智能卡带有微处理器和至少用于存储证书或证书链的存储器,还包括一个位置信息索引表,该位置信息索引表用于保存所述证书或证书链中各数据项目信息相对于证书或证书链的位置信息;所述的微处理器根据应用程序的请求,通过查找位置信息索引表中相关数据项目信息的位置来解析存储器中相应的证书或证书链的数据项目信息。
其中,所述的数据项目信息包括:证书中的版本信息、证书序列号、证书使用的签名算法、证书的有效期、证书所有人的名称、证书所有人的公开密钥、证书发行者对证书的签名和/或证书扩展项目数据。
其中,所述的服务器证书或证书链为X.509服务器证书或证书链。
为达到上述目的,本发明在智能卡中调用服务器证书或证书链的方法,包括下述步骤:智能卡在获得服务器证书或证书链数据后,扫描整个证书或证书链数据;解析出各数据项目信息在证书或证书链数据中的相对位置;按照证书或证书链中各数据项目在证书中的相对位置建立位置信息索引表;分析应用程序所请求的数据信息项目;按照所请求的数据信息项目搜索位置信息索引表;按照位置信息索引表中该数据信息项目的位置信息从存储器中仅提取所请求的数据信息项目;将提取的数据信息项目返回应用程序。
特别是,上述应用程序所请求的数据信息项目,具体可以为请求解析数据信息项目或者请求验证数据信息项目。
特别是,所述的按照证书或证书链中各数据项目在证书中的相对位置建立位置信息索引表的步骤具体为:判断证书数据为服务器证书还是服务器证书链;如果是服务器证书,则按照证书各数据项目信息在证书中的相对位置建立位置信息索引表;如果是服务器证书链,则解析出整个证书链中证书的个数,将其存入位置信息索引表位置0处,并在位置0后按序定义证书链中各证书的保存位置,将各证书的数据项目信息在证书中的相对位置信息存放在位置信息索引表中所对应各证书的保存位置中。
采用上述本发明的技术方案,当应用程序根据需要发出对某个或某些个数据项目信息的请求时,微处理器只需根据应用程序的请求,通过查找位置信息索引表中相关数据项目信息的位置,从而从存储器中解析出相应的证书或证书链的数据项目信息,返回给应用程序即可,而不需要完全解析备份证书的所有信息,从而能节约大量的内存资源,减少解析时间。
附图说明
图1是典型的X.509服务器证书结构。
图2是为本发明智能卡实施例中位置信息索引表的结构示意图。
图3为本发明在智能卡中调用服务器证书或证书链的方法的实施例流程图。
图4是为本发明实施例中自签名证书的验证过程的流程图。
图5是本发明实施例中证书链的验证过程的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
本发明的智能卡带有微处理器和至少用于存储证书或证书链的存储器,还包括一个位置信息索引表,该位置信息索引表用于保存所述证书或证书链中各数据项目信息相对于证书或证书链的位置信息。
这样,当应用程序根据需要发出对某个或某些个数据项目信息的请求时,微处理器只需根据应用程序的请求,通过查找位置信息索引表中相关数据项目信息的位置,从而从存储器中解析出相应的证书或证书链的数据项目信息,返回给应用程序即可,而不需要完全解析备份证书的所有信息,从而能节约大量的内存资源,减少解析时间。
其中,上述的证书或证书链可以为X.509服务器证书或证书链,当然,也可根据该方案应用于其它服务器证书或证书链,下述均以X.509服务器证书或证书链为例。上述的智能卡可以为Java卡也可以为非Java卡。
上述的证书或证书链数据是卡外部应用通过APDU命令将证书或证书链数据发送到智能卡中。X.509服务器证书或证书链数据需要从应用程序中通过APDU命令送入卡中,每次送入卡的数据量不大于256个字节,因此需要分批多次送入卡中。服务器证书或证书链数据保存在一维数组之中。
如图1所示的实施例典型的X.509服务器证书结构,上述数据项目信息包括:证书的版本信息、证书序列号、证书使用的签名算法、证书的发行机构名称、证书的有效期、证书所有人的名称、证书所有人的公开密钥、证书发行者对证书的签名、证书扩展信息的获取和证书或证书链有效性验证。所述证书或证书链有效性验证包含验证认证机构对证书内容的签名、验证证书在当前时间上有效期是否有效和验证证书是否在证书撤销列表中。
上述智能卡中的位置信息索引表可以按下述方法建立:在证书数据完全送入卡中之后,开始对数据进行扫描,按顺序只解析出各数据项目信息在证书数据数组中的位置,将各项目数据的位置信息按顺序保存在位置信息索引表中,位置信息索引表可以为short型的信息数组(如图2所示),每个信息数组保存一个证书的位置信息,证书1的位置信息在信息数组中的起始位置为1,由于证书位置信息长度为固定值,证书2的位置信息起始位置为证书1的位置信息长度加1,依次类推;对于证书数据是证书链的,还需要记录证书链中证书的个数,将证书的个数信息保存在位置信息索引表位置0处,如果不是证书链,信息数组位置0处设置为0。位置信息索引表参见图2。
下面结合图3,对本发明在智能卡中调用服务器证书或证书链的方法的实施例进行介绍。
本发明在智能卡中调用服务器证书或证书链的方法,包括下述步骤:
(1)智能卡在获得服务器证书或证书链数据后,扫描整个证书或证书链数据;
(2)解析出各数据项目信息在证书或证书链数据中的相对位置;
(3)按照证书或证书链中各数据项目在证书中的相对位置建立位置信息索引表;
判断证书数据为服务器证书还是服务器证书链;如果是服务器证书,则按照证书各数据项目信息在证书中的相对位置建立位置信息索引表;如果是服务器证书链,则解析出整个证书链中证书的个数,将其存入位置信息索引表位置0处,并在位置0后按序定义证书链中各证书的保存位置,将各证书的数据项目信息在证书中的相对位置信息存放在位置信息索引表中所对应各证书的保存位置中。
(4)分析应用程序所请求的数据信息项目;
应用程序请求数据信息项目包括请求解析数据信息项目或者请求验证数据信息项目,这些数据信息项目:证书的版本信息、序列号、发行机构算法、发行机构名称、有效期、所有人名称、公开密钥、发行者对证书的签名、扩展信息等。
(5)按照所请求解析或验证的数据信息项目搜索位置信息索引表;
(6)按照位置信息索引表中该数据信息项目的位置信息从存储器中仅提取所请求解析或验证的数据信息项目;
(7)将提取的数据信息项目返回应用程序。
上述应用程序请求调用数据信息项目的时候,根据位置信息索引表,从证书数据中解析出相应的信息。这些项目数据信息只有在用户请求的时候才需要调用,并将调用的结果返回给应用程序,在程序内部不需要真正保存这些信息,只需要将调用出来的数据保存在一个公共缓冲区中,将数据发送给应用程序后,缓冲区中的数据就不需要持久保存。
所述公共缓冲区,是由于智能卡的特点,分配出来的内存在解析程序存在期间,内存是不可回收的,因此预先分配一个大的数组,供解析这些信息共享使用,数组的大小可以根据的版本信息、序列号、发行机构算法、发行机构名称、有效期、所有人名称、公开密钥、发行者对证书的签名、扩展信息中最大数据容量要求来分配,这个大的数据数组称为公共缓冲区。
下面对各数据项目信息的具体提取方法详述如下:
1)版本信息、序列号、发行机构算法、发行者对证书的签名
证书中的版本信息、序列号、发行机构算法、发行者对证书的签名根据位置信息索引表中的位置信息和X.509服务器证书的规范可以解析出来,将其临时保存在公共缓冲区中,通过APDU返回给应用程序。
2)发行机构名称、所有人名称
发行机构名称、所有人名称是结构复合信息,其中的内容包括的项目包括国家(country)、省(state)、位置(locality)、公司(organization)、机构单位(org Unit)、名称(common Name)、哈西值(hash),首先定义设定各个项目在公共缓冲区中的位置和每项所占用的长度,然后分别按照发行机构名称、所有人名称在位置信息索引表中的位置信息,根据X.509证书的规范解析出相应的项目,将各自项目的数据复制到公共缓冲区中的相应位置中,通过APDU返回给应用程序。
3)有效期
有效期是复合信息,其中包含的项目包括有效期开始日期(not Before)和有效期结束日期(not After),首先定义出这两个项目在公共缓冲区中所占位置和长度,然后分别按照有效期在位置信息索引表中的位置信息,根据X.509服务器证书的规范解析出相应的项目,将各自项目的数据复制到公共缓冲区中的相应位置中,通过APDU返回给应用程序。
4)公开密钥
公开密钥信息是复合信息,包含的项目包括模数据N和指数数据e,首先定义出这两个项目在公共缓冲区中所占位置和长度,然后分别按照有公开密钥在位置信息索引表中的位置信息,根据X.509服务器证书的规范解析出相应的项目,将各自项目的数据复制到公共缓冲区中的相应位置中,通过APDU返回给应用程序。
5)扩展信息
扩展信息是复合信息,包含的项目包括授权机构密钥ID(Authority keyidentifier)、密钥用途(Key usage)、基本约束(Basic constraints)等项目,首先定义出这两个项目在公共缓冲区中所占位置和长度,然后分别按照有公开密钥在位置信息索引表中的位置信息,根据X.509服务器证书的规范解析出相应的项目,将各自项目的数据复制到公共缓冲区中的相应位置中,通过APDU返回给应用程序。
6)服务器证书或证书链有效性验证包含验证认证机构对证书内容的签名、验证证书在当前时间上有效期是否有效和验证证书是否在证书撤销列表。
7)认证机构对证书内容的签名验证
如果验证的证书为自签名的证书,定义签名数据在共享内存中的保存位置,根据位置信息索引表中签名数据的位置,提取出签名数据,保存到共享内存中的证书签名数据位置中。定义共享内存中公钥的保存位置,根据位置信息提取出公钥信息,对签名数据进行解密,将解密后的数据保存在共享内存中。根据签名算法在位置信息索引表中位置在证书中提取签名算法,按照证书的整体内容和提取的算法计算出证书的签名,与解密后的证书签名数据比较,如果相等则认为证书有效。如果不等,证书验证失败。过程如图4所示。
如果验证的是证书链,需要从第一个证书起,根据证书位置信息列表中发行机构名称的位置信息,提取发行机构的信息,计算其哈西值,保存在共享内存中。然后同样根据位置信息索引表提取后面一个证书的哈西值,保存在共享内存中。比较两个哈西值是否相同,如果相同这向后移动一个证书,重新进行计算,直至最后一个证书,最后按照自签名证书进行验证。如果不同,认为证书链验证失败。过程如图5所示。
8)有效期验证
因为智能卡本身不具有时钟信息,如果需要验证有效期,在应用程序请求验证的时候需要通过APDU将时间信息发送到卡中,证书验证程序根据位置信息列表中的位置信息提取有效期信息,比较应用程序发送过来的时间是否处于有效期之内,如果位于有效期之内,证书有效。否则,证书验证失败。
9)证书是否在证书撤销列表中
证书撤销列表数据信息一般比较大,需要应用程序中将撤销的证书序列号提取出来,通过APDU发送到卡中,证书验证程序根据位置信息列表提取证书序列号,在撤销证书序列号列表中查询证书序列号是否包含在其中,如果没有包含在其中,证书有效。如果包含在其中,证书验证失败。
上面对本发明所述的在智能卡中调用X.509服务器证书或证书链的方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (8)
1、一种智能卡,该智能卡带有微处理器和至少用于存储服务器证书或证书链的存储器,其特征在于:还包括一个位置信息索引表,该位置信息索引表用于保存所述证书或证书链中各数据项目信息相对于证书或证书链的位置信息;所述的微处理器根据应用程序的请求,通过查找位置信息索引表中相关数据项目信息的位置来解析存储器中相应的证书或证书链的数据项目信息。
2、如权利要求1所述的智能卡,其特征在于:所述的数据项目信息包括:证书中的版本信息、证书序列号、证书使用的签名算法、证书的有效期、证书所有人的名称、证书所有人的公开密钥、证书发行者对证书的签名和/或证书扩展项目数据。
3、如权利要求1或2所述的智能卡,其特征在于:所述的服务器证书或证书链为X.509服务器证书或X.509服务器证书链。
4、一种在智能卡中调用服务器证书或证书链的方法,其特征在于,包括下述步骤:智能卡在获得服务器证书或证书链数据后,扫描整个证书或证书链数据;解析出各数据项目信息在证书或证书链数据中的相对位置;按照证书或证书链中各数据项目在证书中的相对位置建立位置信息索引表;分析应用程序所请求的数据信息项目;按照所请求的数据信息项目搜索位置信息索引表;按照位置信息索引表中该数据信息项目的位置信息从存储器中仅提取所请求的数据信息项目;将提取的数据信息项目返回应用程序。
5、如权利要求4所述在智能卡中调用服务器证书或证书链的方法,其特征在于:所述应用程序所请求的数据信息项目,具体可以为请求解析数据信息项目或者请求验证数据信息项目。
6、如权利要求4所述在智能卡中调用服务器证书或证书链的方法,其特征在于:所述的按照证书或证书链中各数据项目在证书中的相对位置建立位置信息索引表的步骤具体为:
判断证书数据为服务器证书还是服务器证书链;如果是服务器证书,则按照证书各数据项目信息在证书中的相对位置建立位置信息索引表;如果是服务器证书链,则解析出整个证书链中证书的个数,将其存入位置信息索引表位置0处,并在位置0后按序定义证书链中各证书的保存位置,将各证书的数据项目信息在证书中的相对位置信息存放在位置信息索引表中所对应各证书的保存位置中。
7、如权利要求4、5或6所述在智能卡中调用服务器证书或证书链的方法,其特征在于:所述的数据项目信息包括:证书中的版本信息、证书序列号、证书使用的签名算法、证书的有效期、证书所有人的名称、证书所有人的公开密钥、证书发行者对证书的签名和/或证书扩展项目数据。
8、如权利要求4、5或6所述在智能卡中调用服务器证书或证书链的方法,其特征在于:所述的服务器证书或证书链为X.509服务器证书或证书链。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102475423A CN101493967A (zh) | 2008-12-30 | 2008-12-30 | 智能卡以及在智能卡中调用服务器证书或证书链的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102475423A CN101493967A (zh) | 2008-12-30 | 2008-12-30 | 智能卡以及在智能卡中调用服务器证书或证书链的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101493967A true CN101493967A (zh) | 2009-07-29 |
Family
ID=40924549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102475423A Pending CN101493967A (zh) | 2008-12-30 | 2008-12-30 | 智能卡以及在智能卡中调用服务器证书或证书链的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101493967A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808092A (zh) * | 2010-03-12 | 2010-08-18 | 中国电信股份有限公司 | 多证书共享方法、***和智能卡 |
CN105204832A (zh) * | 2014-06-24 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 一种实现脚本引擎的***及方法 |
CN106953867A (zh) * | 2017-03-29 | 2017-07-14 | 深圳Tcl数字技术有限公司 | CI Plus证书认证方法、认证装置及电视设备 |
CN107864159A (zh) * | 2017-12-21 | 2018-03-30 | 有米科技股份有限公司 | 基于证书及信任链的通信方法和装置 |
-
2008
- 2008-12-30 CN CNA2008102475423A patent/CN101493967A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808092A (zh) * | 2010-03-12 | 2010-08-18 | 中国电信股份有限公司 | 多证书共享方法、***和智能卡 |
CN101808092B (zh) * | 2010-03-12 | 2013-03-20 | 中国电信股份有限公司 | 多证书共享方法、***和智能卡 |
CN105204832A (zh) * | 2014-06-24 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 一种实现脚本引擎的***及方法 |
CN105204832B (zh) * | 2014-06-24 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 一种实现脚本引擎的***及方法 |
CN106953867A (zh) * | 2017-03-29 | 2017-07-14 | 深圳Tcl数字技术有限公司 | CI Plus证书认证方法、认证装置及电视设备 |
CN106953867B (zh) * | 2017-03-29 | 2020-09-22 | 深圳Tcl数字技术有限公司 | CI Plus证书认证方法、认证装置及电视设备 |
CN107864159A (zh) * | 2017-12-21 | 2018-03-30 | 有米科技股份有限公司 | 基于证书及信任链的通信方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11973750B2 (en) | Federated identity management with decentralized computing platforms | |
JP3230238U (ja) | 電子データを安全に格納するシステム | |
US9887989B2 (en) | Protecting passwords and biometrics against back-end security breaches | |
US11824991B2 (en) | Securing transactions with a blockchain network | |
RU2747947C2 (ru) | Системы и способы персональной идентификации и верификации | |
CN112580102A (zh) | 基于区块链的多维度数字身份鉴别*** | |
US8146143B1 (en) | Fraud detection | |
CN102420690B (zh) | 一种工业控制***中身份与权限的融合认证方法及*** | |
CN111859348A (zh) | 一种基于用户识别模块及区块链技术的身份认证方法及装置 | |
WO2018004783A1 (en) | Public key infrastructure using blockchains | |
CN106452770B (zh) | 一种数据加密方法、解密方法、装置和*** | |
CN107733933B (zh) | 一种基于生物识别技术的双因子身份认证的方法及*** | |
Das et al. | An enhanced biometric authentication scheme for telecare medicine information systems with nonce using chaotic hash function | |
Abraham et al. | Revocable and offline-verifiable self-sovereign identities | |
JP2005522775A (ja) | 情報保存システム | |
CN105207776A (zh) | 一种指纹认证方法及*** | |
CN114257376B (zh) | 数字证书更新方法、装置、计算机设备和存储介质 | |
US20220005039A1 (en) | Delegation method and delegation request managing method | |
CN106209730B (zh) | 一种管理应用标识的方法及装置 | |
US20190288833A1 (en) | System and Method for Securing Private Keys Behind a Biometric Authentication Gateway | |
Griffin | Telebiometric authentication objects | |
CN115001841A (zh) | 一种身份认证方法、装置及存储介质 | |
DE112020000234T5 (de) | Drahtlos-sicherheitsprotokoll | |
CN114499876A (zh) | 基于区块链以及NB-IoT芯片的物联网数据存证方法 | |
Rana et al. | Secure and ubiquitous authenticated content distribution framework for IoT enabled DRM system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090729 |