CN104360833A - 一种支持安全通道协议定制的java卡平台实现方法 - Google Patents
一种支持安全通道协议定制的java卡平台实现方法 Download PDFInfo
- Publication number
- CN104360833A CN104360833A CN201410427114.4A CN201410427114A CN104360833A CN 104360833 A CN104360833 A CN 104360833A CN 201410427114 A CN201410427114 A CN 201410427114A CN 104360833 A CN104360833 A CN 104360833A
- Authority
- CN
- China
- Prior art keywords
- file
- applet
- platform
- class
- mask
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种支持安全通道协议定制的JAVA卡平台实现方法,在一个包中分别使用不同的Applet类来实现不同的安全通道协议,将需要创建安全通道协议应用实例的Applet类的AID等信息写入构建文件,调用Ant工具编译平台代码,将生成包含所有安全通道协议实现的掩膜文件,去掉构建文件中不需要的安全通道协议的实现对应的class文件,将裁减后的class文件作为输入再次调用Ant工具编译平台代码,可得到仅包含所需配置的平台掩膜文件,在JAVA卡初始化时,根据不同的定制需求选择创建对应的安全通道协议的应用实例。
Description
技术领域
本发明涉及智能卡技术领域,尤其涉及一种支持安全通道协议定制的JAVA卡平台实现方法。
背景技术
随着智能卡技术的飞速发展,智能卡已经成为了人们生活中不可缺少的一部分,它被广泛的应用于各行各业中。GlobalPlatform组织的出现使智能卡可以实现跨行业的应用,进一步促进了智能卡的发展。GlobalPlatform组织致力于提供一个通用的安全和卡片管理架构,它发布的一系列规范也逐渐成为了智能卡行业公认的标准。
在GlobalPlatform组织提出的安全和卡片管理架构中,一个很重要的部分就是安全通道协议,该协议为卡上的安全域和应用与卡外实体间的通信提供了一个安全的环境。
在安全通道协议中,定义了以下与信息的安全性相关的安全服务,包括:
实体认证:卡片和卡外实体通过交换密文进行相互认证;
完整性和真实性:保证卡片和卡外实体之间的数据传输是来自真实可信的实体,并且传输数据的顺序是正确的且未被修改的;
保密性:保证卡片和卡外实体之间传输的数据是不能被不可信的未认证的实体所见的。
GlobalPlatform组织提供了安全通道协议标识符来标识不同的安全通道协议,目前有明确定义的包括:
’01’:安全通道协议1,被标识为不推荐的,使用对称密钥的安全通信协议’01’是为了向后兼容于版本号为2.0.1的Open Platform卡片规范;
’02’:安全通道协议2,除了提供安全通信协议’01’中的服务外,还对其中的某些服务相对于老版本进行了优化。
’10’:安全通道协议’10’,使用非对称密钥的安全通信协议’10’提供了基于公共密钥体系的认证服务,以及对APDU命令和响应采取的、基于对称密钥加密的安全消息传送保护服务。;
’80’:安全通道协议’80’,安全通道协议’80’支持定义在《ETSI TS 102 225规范》中的空中下载的安全模式。
同时,GlobalPlatform组织规定,发卡者的安全域必须实现一种安全通道协议,其他安全域必须至少实现一种安全通道协议。也就是说,可以同时支持几种安全通道协议,并允许在几种安全通道协议中相互切换。
目前,市场上主流的智能卡主要为JAVA卡,由于同等存储空间的前提下用ROM比用EEPROM所占芯片面积要大大地减少,也就是说具有相同数量的程序代码的情况下使用硬掩膜的方式可以获得更小、更便宜的微控制器,所以目前多采用硬掩膜的方式来生产智能卡。但是,硬掩膜方式的缺点也很明显,一旦生产商完成了掩膜,再对程序代码做改动就不可能了。但是,不同行业对于安全通道协议的需求也可能不同,有些行业对安全的要求高,也许需要支持安全通道协议’10’,但其他的一些行业可能只需要安全通道协议’02’,而同一行业不同的用户需求也有可能不同,这就需要卡商可以提供一种满足不同用户需求的产品。
目前,要实现对多安全通道协议的支持,多采用条件编译的方式,条件编译的方式在仅需支持某一种安全通道协议的情况下是一个较好的选择,在JAVA语言中,可以借助编译器对条件编译的代码进行优化,从而去掉条件编译中为false的选项对应的代码,这样就可以通过条件编译的方式将用户需要的安全通道协议掩膜到产品中,而用户不需要的安全通道协议就不需要进行掩膜,从而节省空间,但是这种实现方式的缺点是:这种条件编译是有使用限制的,仅在非此即彼的情况下,可以实现仅将用户需要的安全通道协议掩膜,随着市场需求的不断变化,安全通道协议的不断增加,在安全通道协议大于两种的情况下,此种方式虽然也能实现对多安全通道协议的支持,但是就需要将所有支持的安全通道协议的代码掩膜到产品中,仍然会造成空间的浪费。
另外,也可以对市场上需要的每种定制需求都维护一套JAVA平台的代码,但这样做,维护起来的成本太高,且市场需求变化快,只要有新的需求出现,就需要再维护一套新的代码,适应性差。
发明内容
本发明提供了一种支持安全通道协议定制的JAVA卡平台实现方法,可以在满足客户不同定制需求的同时减少对JAVA卡平台代码的维护成本,也可以减少空间的浪费。
本发明提供了一种支持安全通道协议定制的JAVA卡平台实现方法,包括:
步骤一:使用不同的Applet类来实现不同的安全通道协议,将这些Applet类统一放在同一包中;
步骤二:根据客户的定制需求,将客户需要的安全通道协议实现对应的Applet类的Applet名、AID等信息写入构建文件build.xml中;
步骤三:使用Ant编译工具执行构建文件build.xml,以完成对JAVA卡平台代码的编译、converter转换和掩膜文件生成的工作,编译过程中将JAVA源文件转换为class文件,在编译完成后将生成平台代码的掩膜文件;
步骤四:根据客户的定制需求,对编译过程中生成的class文件进行裁剪,去掉需求中不需要的安全通道协议实现对应的class文件;
步骤五:对构建文件build.xml进行修改,去掉其中对JAVA卡平台代码的编译过程,修改后的新构建文件build.xml使用步骤四中裁剪后的class文件作为converter转换的输入,再次使用Ant编译工具执行新的构建文件build_new.xml,编译完成后生成的平台代码掩膜文件即为只包含所需配置的掩膜文件;
步骤六:在JAVA卡平台初始化时,创建掩膜Applet包中的应用实例时,检查安全通道协议包中有哪些Applet类,并为每个Applet类创建实例,也就创建了配置中要求的安全通道协议的实例,从而可以实现对应的安全通道协议。
本发明提供的支持安全通道协议定制的JAVA卡平台的实现方式,仅需维护一套JAVA卡平台的代码,省去了每种配置都要单独维护一套代码的代码维护成本,省去了为应对不同的客户需求不断修改代码造成的时间上的浪费,可以根据客户需求对客户不需要的安全通道协议进行裁剪,被裁减的代码也将从整个JAVA卡平台最后的掩膜文件中去掉,可以防止不必要的空间浪费。
附图说明
图1为本发明实施例的实施方案流程图;
具体实施方式
下面结合附图和实施例对本发明提供的支持安全通道协议定制的JAVA卡平台的实现方式进行更详细地说明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中提供的支持安全通道协议定制的JAVA卡平台的实现方式,如图1所示,该方法步骤包括:
S101、使用不同的Applet来实现不同的安全通道协议;
S102、将客户需要的安全通道协议对应的Applet类的信息写入构建文件;
S103、执行构建文件,生成Java源文件对应的class文件;
S104、裁剪用户不需要的安全通道协议对应的class文件;
S105、修改构建文件,去掉对Java源文件的编译过程,使用修改后的class文件重新执行构建文件;
S106、JAVA卡平台初始化时,创建构建文件中指定的安全通道协议的实例。
具体地说,在步骤S101中,分别将平台支持的所有安全通道协议都采用不同的Applet类来实现,每一个Applet类实现一种安全通道协议,将这些Applet统一放在一个包中,要保证这些Applet类之间没有相互引用的关系,即这些Applet类之间是相互独立的。
使用Ant工具对JAVA卡平台进行编译时,是通过执行构建文件build.xml来完成的。
构建文件build.xml是由一系列的任务(target)组成的,包括:
任务1:编译Java源文件;
任务2:生成JCA文件和EXP文件;
任务3:生成掩膜文件。
构建文件build.xml首先使用JAVA编译器对Java源文件进行编译生成二进制代码即class文件,然后使用转换工具converter对class文件进行转换,生成Java卡的可读汇编文件JCA文件和导出文件EXP文件,最后使用掩膜工具将JCA文件转换为Java卡虚拟机可以识别的字节码,也就是掩膜文件。
在步骤S102中,先将安全通道协议的实现类所属包的信息写入构建文件中,再将客户需要的安全通道协议对应的Applet类的信息(包括Applet名、AID等信息)写入构建文件中,只有写入构建文件中,才能在掩膜文件中正确地生成相关Applet类的信息。
在步骤S103中,使用Ant编译工具执行构建文件build.xml,以完成对JAVA卡平台代码的编译、converter转换和掩膜文件生成的工作,在执行构建文件中的任务1后,会将JAVA平台的Java源文件编译生成对应的class文件。
这里需要注意的是,无论是否写入构建文件,在执行构建文件中的任务1时,都会将所有的Java源文件编译生成class文件,也就是说,在执行任务1之后生成的class文件中既包括客户需要的安全通道协议的实现也包括用户不需要的安全通道协议的实现。
在步骤S104中,需要根据客户的需求对步骤S103中生成的class文件进行裁剪,步骤S103中生成了所有的安全通道协议实现对应的Applet类的class文件,按照客户的定制需求删除其中客户需求中不包含的安全通道协议实现对应的Applet类的class文件。
在步骤S105中,对构建文件进行修改,去掉原构建文件中的任务1,由于构建文件中每个任务之间是有依赖关系的,前一个任务的输出是后一个任务的输入,在去掉了原构建文件中的任务1之后,需要重新为任务2指定输入,修改后的构建文件build_new.xml中仅包含任务2和任务3,且任务2的输入改为步骤S104中裁剪后的class文件。
使用Ant编译工具执行修改后的构建文件build_new.xml,在执行任务2时,由于输入的是仅包含客户需要的安全通道协议实现对应的Applet类的class文件,在使用converter工具转换后,生成的JCA文件也将仅包含客户需要的安全通道协议实现对应的Applet类的信息,再以此JCA文件作为输入,生成掩膜文件时,将重新输出一个新的掩膜文件,新的掩膜文件与旧的掩膜文件相比,去掉了客户不需要的安全通道协议实现对应的Applet类的字节码,从而使新的掩膜文件的大小相比原掩膜文件小,减少了掩膜文件对空间的使用。
在步骤S106中,JAVA卡平台中会根据客户的需要将一些预置的应用与JAVA卡平台的代码一起掩膜,预置的应用可以由客户以CAP包的形式提供,也可以由卡商自主开发,无论以何种形式提供,这些应用在与JAVA卡平台的代码一起掩膜后,都需要先进行安装才可以使用,安装的过程就是为应用创建实例的过程。
由于JAVA卡平台本身也会有一些应用是掩膜形式存在的,而这些应用又是关系到整个平台能否正常运转的,所以必须要在JAVA卡平台初始化时对这些应用进行安装,也就是创建这些应用的实例。与客户要预置的应用不同的是,这些属于JAVA卡平台一部分的应用在创建实例时,不能通过GlobalPlatform规范中规定的命令进行创建,只能在平台初始化的过程中统一对掩膜的属于JAVA卡平台的应用进行实例的创建,因为这些应用如果未创建实例,将直接影响到平台的正常运转,对这些应用的实例的创建属于JAVA卡平台初始化的一个重要环节。
安全通道协议的实现类所属的包就属于JAVA卡平台本身的应用包,而且该包实现的功能又是关系到整个JAVA卡平台能否正常运转的,所以该包中的安全通道协议的实现对应的Applet类必须在JAVA卡平台初始化时就为其创建实例。由于JAVA卡平台初始化未完成的情况下,平台是无法处理GlobalPlatform规范中规定的命令的,所以这个实例的创建过程只能在平台初始化的过程中进行。
在平台初始化的过程中进行实例的创建,首先需要知道要创建实例的Applet类属于哪个包,然后要确定该包中Applet的个数,这些信息都是在生成掩膜文件的过程中记录下来的,可以直接获取到。随后即可分别为这几个Applet类创建实例,也就相当于分别为每一种安全通道协议创建了一个实例。这样就可以保证在平台初始化完成以后,安全通道协议的功能可以正常使用。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明涉及的技术范围内,可以轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种支持安全通道协议定制的JAVA卡平台实现方法,其特征在于,步骤如下:
步骤一:使用不同的Applet类来实现不同的安全通道协议,将这些Applet类统一放在同一包中;
步骤二:根据客户的定制需求,将客户需要的安全通道协议实现对应的Applet类的Applet名、AID等信息写入构建文件build.xml中;
步骤三:使用Ant编译工具执行构建文件build.xml,以完成对JAVA卡平台代码的编译、converter转换和掩膜文件生成的工作,编译过程中将JAVA源文件转换为class文件,在编译完成后将生成平台代码的掩膜文件;
步骤四:根据客户的定制需求,对编译过程中生成的class文件进行裁剪,去掉需求中不需要的安全通道协议实现对应的class文件;
步骤五:对构建文件build.xml进行修改,去掉其中对JAVA卡平台代码的编译过程,修改后的新构建文件build.xml使用步骤四中裁剪后的class文件作为converter转换的输入,再次使用Ant编译工具执行新的构建文件build_new.xml,编译完成后生成的平台代码掩膜文件即为只包含所需配置的掩膜文件;
步骤六:在JAVA卡平台初始化时,创建掩膜Applet包中的应用实例时,检查安全通道协议包中有哪些Applet类,并为每个Applet类创建实例,也就创建了配置中要求的安全通道协议的实例,从而可以实现对应的安全通道协议。
2.如权利要求1中所述的方法,其特征在于:JAVA卡平台是可以有多种配置的,其中对于支持的安全通道协议进行配置时,可以根据客户的定制需求选择JAVA卡平台要支持哪个或哪些安全通道协议。
3.如权利要求1中所述的方法,其特征在于:使用Ant编译工具执行构建文件build.xml,在构建文件build.xml中需要有以下任务:编译JAVA卡平台代码生成对应的class文件;通过converter工具将JAVA卡平台代码编译后输出的class文件转换为JCA文件、EXP文件和CAP文件;使用maskgen工具对JCA文件进行处理后生成平台的掩膜文件。
4.如权利要求1中所述的方法,其特征在于:根据客户的定制需求,在客户不需要支持全部安全通道协议时,需要对客户不需要的安全通道协议的实现进行裁剪,将客户不需要的安全通道协议的实现Applet类编译生成的class文件去掉。
5.如权利要求1中所述的方法,其特征在于:对构建文件build.xml进行修改,去掉其中对JAVA卡平台代码的编译过程,修改后的构建文件build_new.xml中需要有以下任务:通过converter工具将裁剪后的所有class文件转换为JCA文件、EXP文件和CAP文件;使用maskgen工具对JCA文件进行处理后生成平台的掩膜文件。
6.如权利要求1中所述的方法,其特征在于:客户需要的安全通道协议的实现和平台的其他代码一起形成掩膜文件后,在JAVA卡平台初始化时,对掩膜的Applet包进行遍历,查找平台中所有掩膜的Applet包以及Applet包中的Applet类,根据客户的需求和平台的自身的需求创建所需Applet类的实例。
7.如权利要求6中所述的方法,其特征在于:在JAVA卡平台中,根据客户的需要,可能会有带有Applet类的Applet包与平台代码一起被掩膜并形成掩膜文件,这些带有Applet类的Applet包可能是客户提供的应用包,所以在JAVA卡平台初始化的过程中,会根据客户的需求创建被掩膜Applet包的实例。
8.如权利要求6中所述的方法,其特征在于:在JAVA卡平台中,平台本身的实现中也会有带有Applet类的Applet包与平台的其他代码一起被掩膜并形成掩膜文件,所以在JAVA卡平台初始化过程中,会根据平台的需求创建被掩膜Applet包的实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410427114.4A CN104360833A (zh) | 2014-08-27 | 2014-08-27 | 一种支持安全通道协议定制的java卡平台实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410427114.4A CN104360833A (zh) | 2014-08-27 | 2014-08-27 | 一种支持安全通道协议定制的java卡平台实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104360833A true CN104360833A (zh) | 2015-02-18 |
Family
ID=52528097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410427114.4A Pending CN104360833A (zh) | 2014-08-27 | 2014-08-27 | 一种支持安全通道协议定制的java卡平台实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104360833A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406932A (zh) * | 2016-08-26 | 2017-02-15 | 北京中电华大电子设计有限责任公司 | 一种改进的Java卡初始化方法和Java卡 |
CN108647033A (zh) * | 2018-04-03 | 2018-10-12 | 四川新网银行股份有限公司 | 一种开放平台的sdk自动打包方法 |
CN112712356A (zh) * | 2020-12-30 | 2021-04-27 | 深圳杰睿联科技有限公司 | 一种配置Java Card参数的方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593621A (zh) * | 2012-08-13 | 2014-02-19 | Nxp股份有限公司 | 本地可信服务管理器 |
CN103747019A (zh) * | 2014-02-12 | 2014-04-23 | 中国联合网络通信集团有限公司 | 一种数据传输的方法及装置 |
-
2014
- 2014-08-27 CN CN201410427114.4A patent/CN104360833A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593621A (zh) * | 2012-08-13 | 2014-02-19 | Nxp股份有限公司 | 本地可信服务管理器 |
CN103747019A (zh) * | 2014-02-12 | 2014-04-23 | 中国联合网络通信集团有限公司 | 一种数据传输的方法及装置 |
Non-Patent Citations (1)
Title |
---|
程恒: "Java智能卡安全运行环境的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406932A (zh) * | 2016-08-26 | 2017-02-15 | 北京中电华大电子设计有限责任公司 | 一种改进的Java卡初始化方法和Java卡 |
CN106406932B (zh) * | 2016-08-26 | 2020-01-07 | 北京中电华大电子设计有限责任公司 | 一种改进的Java卡初始化方法和Java卡 |
CN108647033A (zh) * | 2018-04-03 | 2018-10-12 | 四川新网银行股份有限公司 | 一种开放平台的sdk自动打包方法 |
CN112712356A (zh) * | 2020-12-30 | 2021-04-27 | 深圳杰睿联科技有限公司 | 一种配置Java Card参数的方法和系统 |
CN112712356B (zh) * | 2020-12-30 | 2022-04-15 | 深圳杰睿联科技有限公司 | 一种配置Java Card参数的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103580852B (zh) | 安全元件以及初始化安全元件的方法和系统 | |
CN104717198B (zh) | 安全元件上的软件更新方法和设备 | |
JP3689368B2 (ja) | データ処理リソースを備えたマルチアプリケーション組込システムにアプリケーションをローディングする方法、対応するシステムおよび実行方法 | |
US20110276805A1 (en) | System and Method for Third Party Creation of Applications for Mobile Appliances | |
CN107908392B (zh) | 数据采集工具包定制方法、装置、终端和存储介质 | |
US8417640B2 (en) | Secure license key method and system | |
JP5910297B2 (ja) | 情報処理装置、icチップ、情報処理方法、プログラム、及び情報処理システム | |
CN107231490A (zh) | 动态更新ios系统应用程序的方法、客户端及服务器 | |
CN102455931B (zh) | 一种Android平台工程的开发方法及系统 | |
CN110059456A (zh) | 代码保护方法、代码保护装置、存储介质与电子设备 | |
CN104360833A (zh) | 一种支持安全通道协议定制的java卡平台实现方法 | |
CN112966227A (zh) | 代码加密解密方法和装置、存储介质 | |
CN108829396A (zh) | 脚本编译的方法、脚本执行的方法、相关装置及系统 | |
CN105068851A (zh) | 一种移动终端rom包的安全打包方法、系统及移动终端 | |
CN1971578A (zh) | 安全许可密钥方法和系统 | |
CN113508411A (zh) | 虚拟电子卡管理方法、系统及安全芯片、终端和存储介质 | |
CN107871066A (zh) | 基于安卓系统的代码编译方法及装置 | |
CN113994627A (zh) | 用于生成加密资料的系统 | |
KR20140048094A (ko) | 이동 단말 장치 칩 프로그래밍을 위한 방법 | |
US7698703B2 (en) | Imparting digital uniqueness to the types of a programming language using a unique digital sequence | |
CN103885784A (zh) | 具有安全模块可插拔功能的Android平台构建方法 | |
CN104751026B (zh) | 安卓系统的软件保护方法、软件应用方法及相关装置 | |
WO2009097072A2 (en) | Dynamic intermediate language modification and replacement | |
KR101979320B1 (ko) | 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법 | |
Moebius et al. | Model-driven code generation for secure smart card applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 102209 Beijing, Beiqijia, the future of science and technology in the south area of China electronic network security and information technology industry base C building, Applicant after: Beijing CEC Huada Electronic Design Co., Ltd. Address before: 100102 Beijing City, Chaoyang District Lize two Road No. 2, Wangjing science and Technology Park A block five layer Applicant before: Beijing CEC Huada Electronic Design Co., Ltd. |
|
COR | Change of bibliographic data | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150218 |
|
WD01 | Invention patent application deemed withdrawn after publication |