CN105809011B - 一种可以动态加载应用的二代USB Key兼容Java Card平台的方法 - Google Patents
一种可以动态加载应用的二代USB Key兼容Java Card平台的方法 Download PDFInfo
- Publication number
- CN105809011B CN105809011B CN201410854589.1A CN201410854589A CN105809011B CN 105809011 B CN105809011 B CN 105809011B CN 201410854589 A CN201410854589 A CN 201410854589A CN 105809011 B CN105809011 B CN 105809011B
- Authority
- CN
- China
- Prior art keywords
- key
- usb key
- generation
- java card
- display module
- 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.)
- Active
Links
Abstract
本发明提供了一种可以动态加载应用的二代USB Key兼容Java Card平台的方法,在传统二代USB Key的基础上,本发明将Native COS替换为支持Java Card的COS,支持应用的动态更新。由于Java Card平台本身没有定义操作外设的接口,需要提供扩展API供上层应用开发人员操作将LCD和按键等外设使用,不需要对智能卡操作系统的源代码进行修改。
Description
技术领域
本发明涉及USB Key领域,尤其涉及一种可以动态加载应用的二代USB Key兼容Java Card平台的方法。
背景技术
不同于普通的存储设备U盘,USB Key是用于加密及解密、身份识别的智能存储设备,是数字签名及数字认证的工具。作为网络用户身份识别和数据保护的电子钥匙,USBKey作为智能加密存储设备,内置微型智能卡处理器,并有一定的存储空间,可以用来存储用户的私钥以及数字证书。USB Key采用非对称密钥算法对数据进行加密、解密和数字签名,以实现对用户身份的认证,确保网上交易的保密性、真实性、完整性和不可否认性。
USB Key的安全体现在物理存在,用户只有使用USB Key时交易才能完成。恶意程序即使获取了用户的账户、口令信息,由于没有物理USB Key,也无法在其他PC上完成交易。USB Key经历了逐渐完善的过程,目前网络交易系统广泛采用的主要有一代USB Key和二代USB Key两种硬件设备。
二代USB Key相较于早期的一代USB Key产品,增加了屏幕以及按键功能。可以通过二代USB Key产品的屏幕查看交易或操作信息,通过按键的方式进行上翻、下翻、确认、取消等操作。
在使用二代USB Key进行网上银行交易时,一旦进入交易环节,二代USB Key会开始进行计时,只有在预设时间范围内按下Key上的确认键,交易才能正常进行。如果在预设时间范围内未按下Key上的确认键,则当前交易会自动取消,用户需要重新发起交易。这样可以有效地防止交易信息的伪造,通过液晶屏幕显示给客户进行交易按键确认,防止数据在客户端被黑客程序、木马病毒等篡改而导致非法交易。
USB Key内置智能卡的COS(Card Operating System智能卡操作系统)是一个小型的操作系统,其固化在智能卡只读存储器ROM中(防止修改等恶意攻击),对智能卡进行管理与控制,管理智能卡存储器中的文件系统,控制其与外界信息交换,并在智能卡内完成各种命令的处理。
传统二代USB Key在智能卡操作系统COS上采用Native COS,应用使用与Native平台同样的语言进行开发,即应用和操作系统代码在一起开发、编译,应用于智能卡操作系统紧密结合,智能卡芯片通过SPI/I2C/GPIO等方式连接LCD、按键等外设。
但是,Native COS的缺点在于无法动态更新应用,如果需要更新应用或指令,需要对COS源码进行修改,可能会影响其他应用的指令的实现和稳定性,而且需要重新进行整体的测试和认证。
因此,如何有效地动态更新应用,而不需要对智能卡操作系统的源代码进行修改是当前亟需解决的问题。
发明内容
本发明提供了一种可以动态加载应用的二代USB Key以及兼容Java Card平台的方法,在传统二代USB Key的基础上,本发明将Native COS替换为支持Java Card的COS,支持应用的动态更新。
本发明所述的一种可以动态加载应用的二代USB Key包括智能卡芯片、智能卡操作系统、字库、显示模块和按键模块,所述智能卡芯片包括USB接口通信、芯片底层硬件、硬件抽象层、JAVACard虚拟机、JAVAAPI接口。
上述方案中优选的是,所述USB接口通信负责与计算机进行数据交互。
本发明还提供一种采用上述二代USB Key的兼容Java Card平台的方法,所述方法包括如下步骤:首先,所述的二代USB Key在驱动层将所述字库、所述显示模块和所述按键模块都映射为特殊地址;其次,将对所述字库、所述显示模块和所述按键模块的操作转化为对所述特殊地址的操作;然后,调用javacardx.external.MemoryAccess.readData()以及javacardx.external.MemoryAccess.writeData()接口进行读写操作。
上述方案中优选的是,当所述USB接口通信接收到指令时,由所述JAVA Card虚拟机按照正常流程处理指令;在所述指令处理过程中,如果有对所述特殊地址的读写,则判断指令的合法性,然后将对所述特殊地址的读写再转换为对所述字库、所述显示模块和所述按键模块的操作。
附图说明
图1为本发明一优选实施例的二代USB Key的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下结合附图对本发明所提供的可以动态加载应用的二代USB Key作进一步说明。
图1为本发明一优选实施例的二代USB Key的结构示意图。如图1所示,由于JavaCard平台本身没有定义操作外设的接口,需要提供扩展API供上层应用开发人员操作将LCD和按键等外设使用。相对于传统二代Key而言,本发明的二代USB Key采用了Java Card技术,支持应用的动态更新。
所述二代USB Key包括智能卡芯片和字库、显示模块和按键模块,所述智能卡芯片包括USB接口通信、芯片底层硬件、硬件抽象层、JAVA Card虚拟机、JAVAAPI接口,其中,所述USB接口通信负责与计算机进行数据交互。
此外,对于自行扩展了非标准Java CardAPI的平台,针对此类平台开发的应用并不能够在其它支持标准Java CardAPI的平台上运行,因此本发明还提出了一种方法,使得Applet能够在其他支持标准Java CardAPI的平台上运行,即在本发明所述的二代USB Key上开发的Java应用也可以兼容其它的Java Card平台。本发明所述的二代USB Key在驱动层将字库、显示模块和按键模块等外设都映射为特殊地址,上层应用开发人员在开发时,将对外设的操作按照事先的定义转为对指定地址的操作,并通过调用javacardx.external.MemoryAccess.readData()以及javacardx.external.MemoryAccess.writeData()两个接口进行读写操作。当所述USB接口通信有指令到来时,由JAVACard虚拟机按照正常流程处理指令,在指令处理过程中,如果有对特殊地址的读写,则首先判断指令合法性,然后将对特殊地址的读写再转换为对外设的操作。
上述方法并未对标准JavaCardAPI进行扩展,因此在基于此方法设计的二代USBKey上开发的应用也可以在其它支持标准JavaCardAPI的平台上运行。
上述各实施例仅用于说明本发明,其中各模块的具体实现都可以有所变化,凡是在本发明技术方案的基础上进行的等同变换和改进,均应视为本发明的保护范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (1)
1.一种二代USBKey兼容JavaCard平台的方法,所述二代USBKey包括智能卡芯片、智能卡操作系统、字库、显示模块和按键模块,其特征在于,所述智能卡芯片包括USB接口通信、芯片底层硬件、硬件抽象层、JAVACard虚拟机、JAVAAPI接口,所述智能卡操作系统为将所述二代USBKey原有的Native COS替换为支持Java Card的COS,用以支持应用的动态更新;所述USB接口通信负责与计算机进行数据交互;
所述方法包括如下步骤:
首先,所述的二代USBKey在驱动层将所述字库、所述显示模块和所述按键模块都映射为特殊地址;
其次,将对所述字库、所述显示模块和所述按键模块的操作转化为对所述特殊地址的操作;
然后,调用javacardx.external.MemoryAccess.readData()以及javacardx.external.MemoryAccess.writeData()接口进行读写操作;
所述方法还包括如下步骤:当所述USB接口通信接收到指令时,由所述JAVACard虚拟机按照正常流程处理指令;在所述指令处理过程中,如果有对所述特殊地址的读写,则判断指令的合法性,然后将对所述特殊地址的读写再转换为对所述字库、所述显示模块和所述按键模块的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410854589.1A CN105809011B (zh) | 2014-12-31 | 2014-12-31 | 一种可以动态加载应用的二代USB Key兼容Java Card平台的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410854589.1A CN105809011B (zh) | 2014-12-31 | 2014-12-31 | 一种可以动态加载应用的二代USB Key兼容Java Card平台的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105809011A CN105809011A (zh) | 2016-07-27 |
CN105809011B true CN105809011B (zh) | 2019-02-05 |
Family
ID=56465188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410854589.1A Active CN105809011B (zh) | 2014-12-31 | 2014-12-31 | 一种可以动态加载应用的二代USB Key兼容Java Card平台的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105809011B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595245B (zh) * | 2018-03-13 | 2021-08-13 | 深圳市文鼎创数据科技有限公司 | Java卡外设访问方法及Java卡虚拟机 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739755A (zh) * | 2009-12-04 | 2010-06-16 | 北京握奇数据系统有限公司 | 一种实现智能卡多业务应用的方法及装置 |
CN101739246A (zh) * | 2008-11-21 | 2010-06-16 | 爱思开电讯投资(中国)有限公司 | 智能卡和应用数据处理方法 |
CN102609253A (zh) * | 2012-01-19 | 2012-07-25 | 捷德(中国)信息科技有限公司 | 一种智能卡的应用实现方法及系统 |
CN202976195U (zh) * | 2012-11-28 | 2013-06-05 | 北京旋极信息技术股份有限公司 | 一种用于网银业务的签名设备 |
CN202976090U (zh) * | 2012-11-28 | 2013-06-05 | 北京旋极信息技术股份有限公司 | 一种电子签名设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2877118B1 (fr) * | 2004-10-22 | 2007-01-19 | Oberthur Card Syst Sa | Protection contre les attaques par generation de fautes sur les instructions de saut |
-
2014
- 2014-12-31 CN CN201410854589.1A patent/CN105809011B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739246A (zh) * | 2008-11-21 | 2010-06-16 | 爱思开电讯投资(中国)有限公司 | 智能卡和应用数据处理方法 |
CN101739755A (zh) * | 2009-12-04 | 2010-06-16 | 北京握奇数据系统有限公司 | 一种实现智能卡多业务应用的方法及装置 |
CN102609253A (zh) * | 2012-01-19 | 2012-07-25 | 捷德(中国)信息科技有限公司 | 一种智能卡的应用实现方法及系统 |
CN202976195U (zh) * | 2012-11-28 | 2013-06-05 | 北京旋极信息技术股份有限公司 | 一种用于网银业务的签名设备 |
CN202976090U (zh) * | 2012-11-28 | 2013-06-05 | 北京旋极信息技术股份有限公司 | 一种电子签名设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105809011A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105391840B (zh) | 自动创建目标应用程序 | |
CN105900104B (zh) | 安全元件中的小应用程序迁移 | |
CN103748594B (zh) | 针对arm*trustzonetm实现的基于固件的可信平台模块 | |
KR101567902B1 (ko) | Nfc 가능 디바이스용 다수-발급사 시큐어 엘리먼트 파티션 아키텍처 | |
CN104717198B (zh) | 安全元件上的软件更新方法和设备 | |
CN105446713B (zh) | 安全存储方法及设备 | |
CA2969493C (en) | System and method for enabling secure authentication | |
CN110023941A (zh) | 一种实现安全操作系统切换的片上系统和方法 | |
JP2016512407A (ja) | トラステッドサービスマネージャデータの保護および秘密性のためのトラステッドセキュリティゾーンコンテナ | |
CN103329139A (zh) | 在具有随机分配的存储范围的安全系统中支持jit的系统和方法 | |
US20150220709A1 (en) | Security-enhanced device based on virtualization and the method thereof | |
JP6552714B2 (ja) | データ処理方法およびシステム、ならびにウェアラブル電子デバイス | |
CN107196907B (zh) | 一种安卓so文件的保护方法及装置 | |
EP3678021B1 (en) | User interface display method and terminal device | |
CN108282466A (zh) | 用于在tee中提供数字证书功能的方法、系统 | |
US11409653B2 (en) | Method for AI model transferring with address randomization | |
CN111061524A (zh) | 一种应用数据处理方法及相关装置 | |
CN106203141A (zh) | 一种应用的数据处理方法和装置 | |
EP2354994A1 (en) | Secure signature creation application using a TPM comprising a middleware stack | |
CN108171063A (zh) | 访问安全元件的方法、终端及计算机可读存储介质 | |
CN105809011B (zh) | 一种可以动态加载应用的二代USB Key兼容Java Card平台的方法 | |
US20210390462A1 (en) | Method for ai model transferring with layer randomization | |
CN103425922A (zh) | 基于csp获取远端加密指令的方法及系统 | |
CN107315610A (zh) | 实现密码功能的方法、装置及计算机可读存储介质 | |
CN113127535B (zh) | 基于区块链的数据处理方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Li Jingjin Inventor before: Peng Wei Inventor before: Li Liang Inventor before: Hua Yanxiang |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |