《一种支持安全通道协议定制的JAVA卡平台实现方法.pdf》由会员分享,可在线阅读,更多相关《一种支持安全通道协议定制的JAVA卡平台实现方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104360833 A(43)申请公布日 2015.02.18CN104360833A(21)申请号 201410427114.4(22)申请日 2014.08.27G06F 9/44(2006.01)(71)申请人北京中电华大电子设计有限责任公司地址 100102 北京市朝阳区利泽中二路2号望京科技创业园A座五层(72)发明人毛云娟(54) 发明名称一种支持安全通道协议定制的JAVA卡平台实现方法(57) 摘要本发明公开了一种支持安全通道协议定制的JAVA卡平台实现方法,在一个包中分别使用不同的Applet类来实现不同的安全通道协议,将需要创建安全通道协议应用实例的。
2、Applet类的AID等信息写入构建文件,调用Ant工具编译平台代码,将生成包含所有安全通道协议实现的掩膜文件,去掉构建文件中不需要的安全通道协议的实现对应的class文件,将裁减后的class文件作为输入再次调用Ant工具编译平台代码,可得到仅包含所需配置的平台掩膜文件,在JAVA卡初始化时,根据不同的定制需求选择创建对应的安全通道协议的应用实例。(51)Int.Cl.权利要求书2页 说明书5页 附图1页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书5页 附图1页(10)申请公布号 CN 104360833 ACN 104360833 A1/2页21.一种支持。
3、安全通道协议定制的JAVA卡平台实现方法,其特征在于,步骤如下:步骤一:使用不同的Applet类来实现不同的安全通道协议,将这些Applet类统一放在同一包中;步骤二:根据客户的定制需求,将客户需要的安全通道协议实现对应的Applet类的Applet名、AID等信息写入构建文件build.xml中;步骤三:使用Ant编译工具执行构建文件build.xml,以完成对JAVA卡平台代码的编译、converter转换和掩膜文件生成的工作,编译过程中将JAVA源文件转换为class文件,在编译完成后将生成平台代码的掩膜文件;步骤四:根据客户的定制需求,对编译过程中生成的class文件进行裁剪,去掉需求。
4、中不需要的安全通道协议实现对应的class文件;步骤五:对构建文件build.xml进行修改,去掉其中对JAVA卡平台代码的编译过程,修改后的新构建文件build.xml使用步骤四中裁剪后的class文件作为converter转换的输入,再次使用Ant编译工具执行新的构建文件build_new.xml,编译完成后生成的平台代码掩膜文件即为只包含所需配置的掩膜文件;步骤六:在JAVA卡平台初始化时,创建掩膜Applet包中的应用实例时,检查安全通道协议包中有哪些Applet类,并为每个Applet类创建实例,也就创建了配置中要求的安全通道协议的实例,从而可以实现对应的安全通道协议。2.如权利要求。
5、1中所述的方法,其特征在于:JAVA卡平台是可以有多种配置的,其中对于支持的安全通道协议进行配置时,可以根据客户的定制需求选择JAVA卡平台要支持哪个或哪些安全通道协议。3.如权利要求1中所述的方法,其特征在于:使用Ant编译工具执行构建文件build.xml,在构建文件build.xml中需要有以下任务:编译JAVA卡平台代码生成对应的class文件;通过converter工具将JAVA卡平台代码编译后输出的class文件转换为JCA文件、EXP文件和CAP文件;使用maskgen工具对JCA文件进行处理后生成平台的掩膜文件。4.如权利要求1中所述的方法,其特征在于:根据客户的定制需求,在客。
6、户不需要支持全部安全通道协议时,需要对客户不需要的安全通道协议的实现进行裁剪,将客户不需要的安全通道协议的实现Applet类编译生成的class文件去掉。5.如权利要求1中所述的方法,其特征在于:对构建文件build.xml进行修改,去掉其中对JAVA卡平台代码的编译过程,修改后的构建文件build_new.xml中需要有以下任务:通过converter工具将裁剪后的所有class文件转换为JCA文件、EXP文件和CAP文件;使用maskgen工具对JCA文件进行处理后生成平台的掩膜文件。6.如权利要求1中所述的方法,其特征在于:客户需要的安全通道协议的实现和平台的其他代码一起形成掩膜文件后,。
7、在JAVA卡平台初始化时,对掩膜的Applet包进行遍历,查找平台中所有掩膜的Applet包以及Applet包中的Applet类,根据客户的需求和平台的自身的需求创建所需Applet类的实例。7.如权利要求6中所述的方法,其特征在于:在JAVA卡平台中,根据客户的需要,可能会有带有Applet类的Applet包与平台代码一起被掩膜并形成掩膜文件,这些带有Applet类的Applet包可能是客户提供的应用包,所以在JAVA卡平台初始化的过程中,会根据客户的需求创建被掩膜Applet包的实例。权 利 要 求 书CN 104360833 A2/2页38.如权利要求6中所述的方法,其特征在于:在JAV。
8、A卡平台中,平台本身的实现中也会有带有Applet类的Applet包与平台的其他代码一起被掩膜并形成掩膜文件,所以在JAVA卡平台初始化过程中,会根据平台的需求创建被掩膜Applet包的实例。权 利 要 求 书CN 104360833 A1/5页4一种支持安全通道协议定制的 JAVA 卡平台实现方法技术领域0001 本发明涉及智能卡技术领域,尤其涉及一种支持安全通道协议定制的JAVA卡平台实现方法。背景技术0002 随着智能卡技术的飞速发展,智能卡已经成为了人们生活中不可缺少的一部分,它被广泛的应用于各行各业中。GlobalPlatform组织的出现使智能卡可以实现跨行业的应用,进一步促进了智。
9、能卡的发展。GlobalPlatform组织致力于提供一个通用的安全和卡片管理架构,它发布的一系列规范也逐渐成为了智能卡行业公认的标准。0003 在GlobalPlatform组织提出的安全和卡片管理架构中,一个很重要的部分就是安全通道协议,该协议为卡上的安全域和应用与卡外实体间的通信提供了一个安全的环境。0004 在安全通道协议中,定义了以下与信息的安全性相关的安全服务,包括:0005 实体认证:卡片和卡外实体通过交换密文进行相互认证;0006 完整性和真实性:保证卡片和卡外实体之间的数据传输是来自真实可信的实体,并且传输数据的顺序是正确的且未被修改的;0007 保密性:保证卡片和卡外实体之。
10、间传输的数据是不能被不可信的未认证的实体所见的。0008 GlobalPlatform组织提供了安全通道协议标识符来标识不同的安全通道协议,目前有明确定义的包括:0009 01:安全通道协议1,被标识为不推荐的,使用对称密钥的安全通信协议01是为了向后兼容于版本号为2.0.1的Open Platform卡片规范;0010 02:安全通道协议2,除了提供安全通信协议01中的服务外,还对其中的某些服务相对于老版本进行了优化。0011 10:安全通道协议10,使用非对称密钥的安全通信协议10提供了基于公共密钥体系的认证服务,以及对APDU命令和响应采取的、基于对称密钥加密的安全消息传送保护服务。;0。
11、012 80:安全通道协议 80,安全通道协议 80支持定义在ETSI TS 102 225规范中的空中下载的安全模式。0013 同时,GlobalPlatform组织规定,发卡者的安全域必须实现一种安全通道协议,其他安全域必须至少实现一种安全通道协议。也就是说,可以同时支持几种安全通道协议,并允许在几种安全通道协议中相互切换。0014 目前,市场上主流的智能卡主要为JAVA卡,由于同等存储空间的前提下用ROM比用EEPROM所占芯片面积要大大地减少,也就是说具有相同数量的程序代码的情况下使用硬掩膜的方式可以获得更小、更便宜的微控制器,所以目前多采用硬掩膜的方式来生产智能卡。但是,硬掩膜方式的。
12、缺点也很明显,一旦生产商完成了掩膜,再对程序代码做改动就说 明 书CN 104360833 A2/5页5不可能了。但是,不同行业对于安全通道协议的需求也可能不同,有些行业对安全的要求高,也许需要支持安全通道协议10,但其他的一些行业可能只需要安全通道协议02,而同一行业不同的用户需求也有可能不同,这就需要卡商可以提供一种满足不同用户需求的产品。0015 目前,要实现对多安全通道协议的支持,多采用条件编译的方式,条件编译的方式在仅需支持某一种安全通道协议的情况下是一个较好的选择,在JAVA语言中,可以借助编译器对条件编译的代码进行优化,从而去掉条件编译中为false的选项对应的代码,这样就可以通。
13、过条件编译的方式将用户需要的安全通道协议掩膜到产品中,而用户不需要的安全通道协议就不需要进行掩膜,从而节省空间,但是这种实现方式的缺点是:这种条件编译是有使用限制的,仅在非此即彼的情况下,可以实现仅将用户需要的安全通道协议掩膜,随着市场需求的不断变化,安全通道协议的不断增加,在安全通道协议大于两种的情况下,此种方式虽然也能实现对多安全通道协议的支持,但是就需要将所有支持的安全通道协议的代码掩膜到产品中,仍然会造成空间的浪费。0016 另外,也可以对市场上需要的每种定制需求都维护一套JAVA平台的代码,但这样做,维护起来的成本太高,且市场需求变化快,只要有新的需求出现,就需要再维护一套新的代码,。
14、适应性差。发明内容0017 本发明提供了一种支持安全通道协议定制的JAVA卡平台实现方法,可以在满足客户不同定制需求的同时减少对JAVA卡平台代码的维护成本,也可以减少空间的浪费。0018 本发明提供了一种支持安全通道协议定制的JAVA卡平台实现方法,包括:0019 步骤一:使用不同的Applet类来实现不同的安全通道协议,将这些Applet类统一放在同一包中;0020 步骤二:根据客户的定制需求,将客户需要的安全通道协议实现对应的Applet类的Applet名、AID等信息写入构建文件build.xml中;0021 步骤三:使用Ant编译工具执行构建文件build.xml,以完成对JAVA卡。
15、平台代码的编译、converter转换和掩膜文件生成的工作,编译过程中将JAVA源文件转换为class文件,在编译完成后将生成平台代码的掩膜文件;0022 步骤四:根据客户的定制需求,对编译过程中生成的class文件进行裁剪,去掉需求中不需要的安全通道协议实现对应的class文件;0023 步骤五:对构建文件build.xml进行修改,去掉其中对JAVA卡平台代码的编译过程,修改后的新构建文件build.xml使用步骤四中裁剪后的class文件作为converter转换的输入,再次使用Ant编译工具执行新的构建文件build_new.xml,编译完成后生成的平台代码掩膜文件即为只包含所需配置的。
16、掩膜文件;0024 步骤六:在JAVA卡平台初始化时,创建掩膜Applet包中的应用实例时,检查安全通道协议包中有哪些Applet类,并为每个Applet类创建实例,也就创建了配置中要求的安全通道协议的实例,从而可以实现对应的安全通道协议。0025 本发明提供的支持安全通道协议定制的JAVA卡平台的实现方式,仅需维护一套JAVA卡平台的代码,省去了每种配置都要单独维护一套代码的代码维护成本,省去了为应说 明 书CN 104360833 A3/5页6对不同的客户需求不断修改代码造成的时间上的浪费,可以根据客户需求对客户不需要的安全通道协议进行裁剪,被裁减的代码也将从整个JAVA卡平台最后的掩膜文。
17、件中去掉,可以防止不必要的空间浪费。附图说明0026 图1为本发明实施例的实施方案流程图;具体实施方式0027 下面结合附图和实施例对本发明提供的支持安全通道协议定制的JAVA卡平台的实现方式进行更详细地说明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0028 本发明实施例中提供的支持安全通道协议定制的JAVA卡平台的实现方式,如图1所示,该方法步骤包括:0029 S101、使用不同的Applet来实现不同的安全通道协议;0030 S102、将客户需要的安全通道协议对应的Applet类的信息写入构建文件;0031 S103。
18、、执行构建文件,生成Java源文件对应的class文件;0032 S104、裁剪用户不需要的安全通道协议对应的class文件;0033 S105、修改构建文件,去掉对Java源文件的编译过程,使用修改后的class文件重新执行构建文件;0034 S106、JAVA卡平台初始化时,创建构建文件中指定的安全通道协议的实例。0035 具体地说,在步骤S101中,分别将平台支持的所有安全通道协议都采用不同的Applet类来实现,每一个Applet类实现一种安全通道协议,将这些Applet统一放在一个包中,要保证这些Applet类之间没有相互引用的关系,即这些Applet类之间是相互独立的。0036 使。
19、用Ant工具对JAVA卡平台进行编译时,是通过执行构建文件build.xml来完成的。0037 构建文件build.xml是由一系列的任务(target)组成的,包括:0038 任务1:编译Java源文件;0039 任务2:生成JCA文件和EXP文件;0040 任务3:生成掩膜文件。0041 构建文件build.xml首先使用JAVA编译器对Java源文件进行编译生成二进制代码即class文件,然后使用转换工具converter对class文件进行转换,生成Java卡的可读汇编文件JCA文件和导出文件EXP文件,最后使用掩膜工具将JCA文件转换为Java卡虚拟机可以识别的字节码,也就是掩膜文件。
20、。0042 在步骤S102中,先将安全通道协议的实现类所属包的信息写入构建文件中,再将客户需要的安全通道协议对应的Applet类的信息(包括Applet名、AID等信息)写入构建文件中,只有写入构建文件中,才能在掩膜文件中正确地生成相关Applet类的信息。0043 在步骤S103中,使用Ant编译工具执行构建文件build.xml,以完成对JAVA卡平台代码的编译、converter转换和掩膜文件生成的工作,在执行构建文件中的任务1后,会将JAVA平台的Java源文件编译生成对应的class文件。说 明 书CN 104360833 A4/5页70044 这里需要注意的是,无论是否写入构建文件。
21、,在执行构建文件中的任务1时,都会将所有的Java源文件编译生成class文件,也就是说,在执行任务1之后生成的class文件中既包括客户需要的安全通道协议的实现也包括用户不需要的安全通道协议的实现。0045 在步骤S104中,需要根据客户的需求对步骤S103中生成的class文件进行裁剪,步骤S103中生成了所有的安全通道协议实现对应的Applet类的class文件,按照客户的定制需求删除其中客户需求中不包含的安全通道协议实现对应的Applet类的class文件。0046 在步骤S105中,对构建文件进行修改,去掉原构建文件中的任务1,由于构建文件中每个任务之间是有依赖关系的,前一个任务的输。
22、出是后一个任务的输入,在去掉了原构建文件中的任务1之后,需要重新为任务2指定输入,修改后的构建文件build_new.xml中仅包含任务2和任务3,且任务2的输入改为步骤S104中裁剪后的class文件。0047 使用Ant编译工具执行修改后的构建文件build_new.xml,在执行任务2时,由于输入的是仅包含客户需要的安全通道协议实现对应的Applet类的class文件,在使用converter工具转换后,生成的JCA文件也将仅包含客户需要的安全通道协议实现对应的Applet类的信息,再以此JCA文件作为输入,生成掩膜文件时,将重新输出一个新的掩膜文件,新的掩膜文件与旧的掩膜文件相比,去掉。
23、了客户不需要的安全通道协议实现对应的Applet类的字节码,从而使新的掩膜文件的大小相比原掩膜文件小,减少了掩膜文件对空间的使用。0048 在步骤S106中,JAVA卡平台中会根据客户的需要将一些预置的应用与JAVA卡平台的代码一起掩膜,预置的应用可以由客户以CAP包的形式提供,也可以由卡商自主开发,无论以何种形式提供,这些应用在与JAVA卡平台的代码一起掩膜后,都需要先进行安装才可以使用,安装的过程就是为应用创建实例的过程。0049 由于JAVA卡平台本身也会有一些应用是掩膜形式存在的,而这些应用又是关系到整个平台能否正常运转的,所以必须要在JAVA卡平台初始化时对这些应用进行安装,也就是创。
24、建这些应用的实例。与客户要预置的应用不同的是,这些属于JAVA卡平台一部分的应用在创建实例时,不能通过GlobalPlatform规范中规定的命令进行创建,只能在平台初始化的过程中统一对掩膜的属于JAVA卡平台的应用进行实例的创建,因为这些应用如果未创建实例,将直接影响到平台的正常运转,对这些应用的实例的创建属于JAVA卡平台初始化的一个重要环节。0050 安全通道协议的实现类所属的包就属于JAVA卡平台本身的应用包,而且该包实现的功能又是关系到整个JAVA卡平台能否正常运转的,所以该包中的安全通道协议的实现对应的Applet类必须在JAVA卡平台初始化时就为其创建实例。由于JAVA卡平台初始。
25、化未完成的情况下,平台是无法处理GlobalPlatform规范中规定的命令的,所以这个实例的创建过程只能在平台初始化的过程中进行。0051 在平台初始化的过程中进行实例的创建,首先需要知道要创建实例的Applet类属于哪个包,然后要确定该包中Applet的个数,这些信息都是在生成掩膜文件的过程中记录下来的,可以直接获取到。随后即可分别为这几个Applet类创建实例,也就相当于分别为每一种安全通道协议创建了一个实例。这样就可以保证在平台初始化完成以后,安全通道协议的功能可以正常使用。0052 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何说 明 书CN 104360833 A5/5页8熟悉本技术领域的技术人员在本发明涉及的技术范围内,可以轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。说 明 书CN 104360833 A1/1页9图1说 明 书 附 图CN 104360833 A。