《基于移动终端智能卡的数据传输方法及移动终端.pdf》由会员分享,可在线阅读,更多相关《基于移动终端智能卡的数据传输方法及移动终端.pdf(22页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104184892A43申请公布日20141203CN104184892A21申请号201410394472X22申请日20140812H04M1/725200601G06F21/3420130171申请人桂林微网半导体有限责任公司地址541004广西壮族自治区桂林市七星区漓江路18号漓江大厦二楼72发明人宾志滔黄一平莫华邦74专利代理机构北京市浩天知识产权代理事务所11276代理人宋菲刘兰兰54发明名称基于移动终端智能卡的数据传输方法及移动终端57摘要本发明公开了一种移动终端智能卡的数据传输方法及移动终端,以解决现有的密钥泄露问题。该方法包括智能卡接收由移动终端中的应用程序。
2、发来的传输数据;获取传输数据中包含的操作指令码并根据操作指令码的类型执行对应的操作,其中,当操作指令码包括解密/验签类型的指令码时,利用预先存储的密钥对传输数据进行解密/验签后提供给应用程序;或者,当操作指令码包括加密/签名类型的指令码时,利用预先存储的密钥对传输数据进行加密/签名后提供给应用程序;其中,智能卡与应用程序之间通过以下接口中的至少一个接口进行通信用于保存/读取短信的应用程序接口、用于写入/读取通讯录的应用程序接口、用于访问GP卡的应用程序接口、用于写入或读出SIM卡短信中心的应用程序接口、和用于读取STK菜单数据的应用程序接口。51INTCL权利要求书2页说明书16页附图3页19。
3、中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书16页附图3页10申请公布号CN104184892ACN104184892A1/2页21一种基于移动终端智能卡的数据传输方法,该智能卡为SIM卡、USIM卡和/或贴膜卡,其特征在于,包括所述智能卡接收由所述移动终端中的应用程序发来的传输数据;所述智能卡获取所述传输数据中包含的操作指令码并根据所述操作指令码的类型执行对应的操作,其中,当所述操作指令码包括解密/验签类型的指令码时,所述智能卡利用预先存储的密钥对所述传输数据进行解密/验签后提供给所述应用程序;或者,当所述操作指令码包括加密/签名类型的指令码时,所述智能卡利用预先存储的密。
4、钥对所述传输数据进行加密/签名后提供给所述应用程序;其中,所述智能卡与所述应用程序之间通过以下接口中的至少一个接口进行通信用于保存/读取短信的应用程序接口、用于写入/读取通讯录的应用程序接口、用于访问GP卡的应用程序接口、用于访问短信中心的应用程序接口、和用于读取STK菜单数据的应用程序接口。2根据权利要求1所述的数据传输方法,其特征在于,当所述智能卡与所述应用程序之间通过所述用于保存/读取短信的应用程序接口进行通信时,所述应用程序预先将所述传输数据转换为短信文件格式,且在所述传输数据中进一步包含第一预设标识,该第一预设标识用于表示该传输数据不是短信数据;当所述智能卡与所述应用程序之间通过所述。
5、用于写入/读取通讯录的应用程序接口进行通信时,所述应用程序预先将所述传输数据转换为通讯录文件格式,且在所述传输数据中进一步包含第二预设标识,该第二预设标识用于表示该传输数据不是通讯录数据;当所述智能卡与所述应用程序之间通过所述用于访问短信中心的应用程序接口进行通信时,所述应用程序预先将所述传输数据转换为短信中心文件格式,且在所述传输数据中进一步包含第三预设标识,该第三预设标识用于表示该传输数据不是短信中心数据。3根据权利要求1所述的数据传输方法,其特征在于,在所述智能卡获取所述传输数据中包含的操作指令码并根据所述操作指令码的类型执行对应的操作的步骤中进一步包括当所述操作指令码包括本地密码认证类。
6、型的指令码时,则提示用户输入本地密码,并判断用户在预设次数内输入的本地密码是否正确,只有在输入的本地密码正确时才允许执行后续操作。4根据权利要求1所述的数据传输方法,其特征在于,在所述智能卡获取所述传输数据中包含的操作指令码并根据所述操作指令码的类型执行对应的操作的步骤中进一步包括当所述操作指令码包括显示内容类型的指令码时,对所述传输数据的内容进行显示。5根据权利要求1至4任一所述的数据传输方法,其特征在于,所述应用程序包括手机银行应用程序、电商应用程序、第三方支付应用程序,则所述应用程序发来的传输数据中进一步包括应用程序标识,且所述智能卡中预先存储的密钥为多个分别对应于不同应用程序的密钥,所。
7、述智能卡根据所述应用程序标识来确定对应的密钥。6一种移动终端,包括能够执行应用程序的移动终端主体以及设置在所述移动终端主体中的智能卡,该智能卡为SIM卡、USIM卡和/或贴膜卡,其特征在于,所述智能卡进一步包括接收模块,用于接收由所述移动终端主体中的应用程序发来的传输数据;获取模块,用于获取所述传输数据中包含的操作指令码;权利要求书CN104184892A2/2页3操作模块,用于根据所述操作指令码的类型执行对应的操作,其中,当所述操作指令码包括解密/验签类型的指令码时,则利用预先存储的密钥对所述传输数据进行解密/验签后提供给所述应用程序;或者,当所述操作指令码包括加密/签名类型的指令码时,则利。
8、用预先存储的密钥对所述传输数据进行加密/签名后提供给所述应用程序;其中,所述智能卡上进一步设置有至少一个用于与所述应用程序进行通信的接口用于保存/读取短信的应用程序接口、用于写入/读取通讯录的应用程序接口、用于访问GP卡的应用程序接口、用于访问短信中心的应用程序接口、和用于读取STK菜单数据的应用程序接口。7根据权利要求6所述的移动终端,其特征在于,所述应用程序发来的传输数据为短信文件格式,且在所述传输数据中进一步包含第一预设标识,该第一预设标识用于表示该传输数据不是短信数据;或者,所述应用程序发来的传输数据为通讯录文件格式,且在所述传输数据中进一步包含第二预设标识,该第二预设标识用于表示该传。
9、输数据不是通讯录数据;或者,所述应用程序发来的传输数据为短信中心文件格式,且在所述传输数据中进一步包含第三预设标识,该第三预设标识用于表示该传输数据不是短信中心数据。8根据权利要求6所述的移动终端,其特征在于,所述操作模块进一步用于当所述操作指令码包括本地密码认证类型的指令码时,则提示用户输入本地密码,并判断用户在预设次数内输入的本地密码是否正确,只有在输入的本地密码正确时才允许执行后续操作。9根据权利要求6所述的移动终端,其特征在于,所述操作模块进一步用于当所述操作指令码包括显示内容类型的指令码时,对所述传输数据的内容进行显示。10根据权利要求6至9任一所述的移动终端,其特征在于,所述应用程。
10、序包括手机银行应用程序、电商应用程序、第三方支付应用程序,则所述应用程序发来的传输数据中进一步包括应用程序标识,且所述智能卡中预先存储的密钥为多个分别对应于不同应用程序的密钥,所述操作模块根据所述应用程序标识来确定对应的密钥。权利要求书CN104184892A1/16页4基于移动终端智能卡的数据传输方法及移动终端技术领域0001本发明涉及计算机技术领域,尤其涉及一种基于移动终端智能卡的数据传输方法及移动终端。背景技术0002随着移动终端的广泛普及,越来越多的用户习惯于通过手机等移动终端来进行各类数据的传输。例如,用户可以通过移动终端提供的手机银行功能与银行服务器进行数据传输,从而完成网上转账、。
11、支付等各项功能,为用户提供了诸多便利。0003但是,在移动终端与远端服务器如银行服务器进行数据传输时,一些敏感数据例如银行帐号、密码等在传输过程中容易被黑客等非法分子截获,从而威胁用户的账户安全。为此,在数据传输过程中,需要采取加密传输方式。在现有技术中,通常会直接将加密密钥保存在移动终端上,这样,一旦加密密钥被人非法获取,就会对用户的账户安全造成威胁。因此,现有的移动终端在与服务器进行数据传输时的安全性较低。发明内容0004鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于移动终端智能卡的数据传输方法及移动终端。0005依据本发明的一个方面,提供了一种基于移动。
12、终端智能卡的数据传输方法,该智能卡为SIM卡、USIM卡和/或贴膜卡,该方法包括所述智能卡接收由所述移动终端中的应用程序发来的传输数据;所述智能卡获取所述传输数据中包含的操作指令码并根据所述操作指令码的类型执行对应的操作,其中,当所述操作指令码包括解密/验签所谓“验签”也就是签名验证,即验证数字签名类型的指令码时,所述智能卡利用预先存储的密钥对所述传输数据进行解密/验签后提供给所述应用程序;或者,当所述操作指令码包括加密/签名所谓“签名”即做数字签名运算类型的指令码时,所述智能卡利用预先存储的密钥对所述传输数据进行加密/签名后提供给所述应用程序;其中,所述智能卡与所述应用程序之间通过以下接口中。
13、的至少一个接口进行通信用于保存/读取短信的应用程序接口、用于写入/读取通讯录的应用程序接口、用于访问GP卡的应用程序接口、用于访问短信中心的应用程序接口、和用于读取STK菜单数据的应用程序接口。0006可选地,当所述智能卡与所述应用程序之间通过所述用于保存/读取短信的应用程序接口进行通信时,所述应用程序预先将所述传输数据转换为短信文件格式,且在所述传输数据中进一步包含第一预设标识,该第一预设标识用于表示该传输数据不是短信数据;当所述智能卡与所述应用程序之间通过所述用于写入/读取通讯录的应用程序接口进行通信时,所述应用程序预先将所述传输数据转换为通讯录文件格式,且在所述传输数据中进一步包含第二预。
14、设标识,该第二预设标识用于表示该传输数据不是通讯录数据;当所述智能卡与所述应用程序之间通过所述用于访问短信中心的应用程序接口进行通信时,所述应用程序预先将所述传输数据转换为短信中心文件格式,且在所述传输数据中进一步包说明书CN104184892A2/16页5含第三预设标识,该第三预设标识用于表示该传输数据不是短信中心数据。0007可选地,在所述智能卡获取所述传输数据中包含的操作指令码并根据所述操作指令码的类型执行对应的操作的步骤中进一步包括当所述操作指令码包括本地密码认证类型的指令码时,则提示用户输入本地密码,并判断用户在预设次数内输入的本地密码是否正确,只有在输入的本地密码正确时才允许执行后。
15、续操作。0008可选地,在所述智能卡获取所述传输数据中包含的操作指令码并根据所述操作指令码的类型执行对应的操作的步骤中进一步包括当所述操作指令码包括显示内容类型的指令码时,对所述传输数据的内容进行显示。0009可选地,所述应用程序包括手机银行应用程序、电商应用程序、第三方支付应用程序,则所述应用程序发来的传输数据中进一步包括应用程序标识,且所述智能卡中预先存储的密钥为多个分别对应于不同应用程序的密钥,所述智能卡根据所述应用程序标识来确定对应的密钥。0010根据本发明的另一方面,提供了一种移动终端,包括能够执行应用程序的移动终端主体以及设置在所述移动终端主体中的智能卡,该智能卡为SIM卡、USI。
16、M和/或贴膜卡,所述智能卡进一步包括接收模块,用于接收由所述移动终端主体中的应用程序发来的传输数据;获取模块,用于获取所述传输数据中包含的操作指令码;操作模块,用于根据所述操作指令码的类型执行对应的操作,其中,当所述操作指令码包括解密/验签类型的指令码时,则利用预先存储的密钥对所述传输数据进行解密/验签后提供给所述应用程序;或者,当所述操作指令码包括加密/签名类型的指令码时,则利用预先存储的密钥对所述传输数据进行加密/签名后提供给所述应用程序;其中,所述智能卡上进一步设置有至少一个用于与所述应用程序进行通信的接口用于保存/读取短信的应用程序接口、用于写入/读取通讯录的应用程序接口、用于访问GP。
17、卡的应用程序接口、用于访问短信中心的应用程序接口、和用于读取STK菜单数据的应用程序接口。0011可选地,所述应用程序发来的传输数据为短信文件格式,且在所述传输数据中进一步包含第一预设标识,该第一预设标识用于表示该传输数据不是短信数据;或者,所述应用程序发来的传输数据为通讯录文件格式,且在所述传输数据中进一步包含第二预设标识,该第二预设标识用于表示该传输数据不是通讯录数据;或者,所述应用程序发来的传输数据为短信中心文件格式,且在所述传输数据中进一步包含第三预设标识,该第三预设标识用于表示该传输数据不是短信中心数据。0012可选地,所述操作模块进一步用于当所述操作指令码包括本地密码认证类型的指令。
18、码时,则提示用户输入本地密码,并判断用户在预设次数内输入的本地密码是否正确,只有在输入的本地密码正确时才允许执行后续操作。0013可选地,所述操作模块进一步用于当所述操作指令码包括显示内容类型的指令码时,对所述传输数据的内容进行显示。0014可选地,所述应用程序包括手机银行应用程序、电商应用程序、第三方支付应用程序,则所述应用程序发来的传输数据中进一步包括应用程序标识,且所述智能卡中预先存储的密钥为多个分别对应于不同应用程序的密钥,所述操作模块根据所述应用程序标识来确定对应的密钥。0015在本发明提供的基于移动终端智能卡的数据传输方法及移动终端中,利用应用程说明书CN104184892A3/1。
19、6页6序能够访问智能卡如SIM卡或USIM卡中的短信、通讯录、短信中心数据以及GP卡数据的特性,使应用程序能够通过相应的保存/读取短信的应用程序接口、写入/读取通讯录的应用程序接口、访问GP卡的应用程序接口、和/或访问短信中心的应用程序接口来实现与智能卡之间的数据通信。在此基础上,将密钥保存在智能卡上,当移动终端内部的应用程序需要与服务器等外部设备进行数据传输时,由智能卡根据保存的密钥执行加解密或签名验签运算,并将运算后的数据提供给移动终端内部应用程序。由于在一般情况下,无法直接读取智能卡内部存储的数据,因此,采用本发明中的处理方式,避免了现有技术中直接将密钥保存在移动终端上所导致的密钥泄露问。
20、题,同时显著提高了数据传输时的安全性。0016上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明0017通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中0018图1示出了本发明提供的基于移动终端智能卡的数据传输方法的流程图;0019图2示出了本发明优选实施例提供的基于移动终端智能卡的数。
21、据传输方法的流程图;以及,0020图3示出了本发明实施例提供的移动终端的结构图。具体实施方式0021下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。0022本发明提供了一种基于移动终端智能卡的数据传输方法及移动终端,能够解决现有技术中直接将密钥保存在移动终端上所导致的密钥泄露问题。0023图1示出了本发明提供的基于移动终端智能卡的数据传输方法的流程图。在图1所示的流程图中,主要是以移动终。
22、端与服务器之间进行通信为例进行说明的。本领域技术人员能够理解的是,在本发明其他的实施例中,移动终端也可以与其他的外部设备例如电脑客户端等进行通信,或者,本发明中的方法也可以不涉及外部设备,而只用于移动终端内部的数据通信如应用程序与智能卡之间的内部通信。如图1所示。该数据传输方法包括以下步骤0024步骤S110智能卡接收由移动终端中的应用程序发来的传输数据。0025步骤S120智能卡获取该传输数据中包含的操作指令码并判断操作指令码的类型,以便在后续步骤中根据操作指令码的类型来执行对应的操作。0026步骤S130当操作指令码包括解密/验签类型的指令码时,智能卡确定该传输数据为服务器发送给应用程序的。
23、已加密/签名数据,则利用预先存储的密钥对该传输数据进说明书CN104184892A4/16页7行解密/验签后提供给应用程序。0027步骤S140当操作指令码包括加密/签名类型的指令码时,智能卡确定该传输数据为应用程序要发送给服务器的非加密/非签名数据,则利用预先存储的密钥对该传输数据进行加密/签名后提供给应用程序,由应用程序发送给服务器。0028其中,本发明中的方法适用于智能卡对移动终端中的应用程序发来的各类传输数据的处理,例如,当智能卡接收到的传输数据中包含的操作指令码包括解密/验签类型的指令码时,则执行步骤S130;或者,当智能卡接收到的传输数据中包含的操作指令码包括加密/签名类型的指令码。
24、时,则执行步骤S140。0029由此可见,在上述步骤中,智能卡作为应用程序的安全模块,用来对应用程序传输的数据进行加解密或签名验签等安全处理。具体地,在上述的步骤S110、步骤S130以及步骤S140中,智能卡与应用程序之间通过以下接口中的至少一个接口进行通信用于保存/读取短信的应用程序接口、用于写入/读取通讯录的应用程序接口、用于访问GP卡的应用程序接口、和用于访问短信中心的应用程序接口。其中,GP卡的英文全称为GLOBALPLATFORMCARD,其中,GLOBALPLATFORMGP是跨行业的国际标准组织,致力于开发、制定并发布安全芯片的技术标准,以促进多应用产业环境的管理及其安全、可互。
25、操作的业务部署。GP是全球基于安全芯片的安全基础设施统一的标准的制定者。0030在本发明提供的基于移动终端智能卡的数据传输方法中,智能卡优选SIM卡和/或USIM卡和/或贴膜卡,利用应用程序能够访问智能卡中的短信、通讯录、短信中心数据以及GP卡数据的特性,使应用程序能够通过相应的保存/读取短信的应用程序接口、写入/读取通讯录的应用程序接口、访问GP卡的应用程序接口、和/或访问短信中心的应用程序接口来实现与智能卡之间的数据通信。在此基础上,将加解密或签名验签时所需的密钥保存在智能卡上,当移动终端内部的应用程序需要加解密或签名验签数据时,由智能卡根据保存的密钥执行加解密或签名验签运算,并将运算后的。
26、数据提供给移动终端内部应用程序。由于在一般情况下,无法直接读取SIM卡和/或USIM卡和/或贴膜卡内部存储的数据,因此,采用本发明中的处理方式,避免了现有技术中直接将密钥保存在移动终端上所导致的密钥泄露问题,同时显著提高了数据传输时的安全性。0031下面,以智能卡为SIM卡为例,介绍一下应用程序与SIM卡之间的数据传输方法。由于现有的SIM卡仅支持应用程序直接读写SIM卡中的短信文件、通讯录文件和短信中心文件等特殊文件,而不支持SIM卡与应用程序之间的普通数据传输,因此,为了实现本发明中的数据传输方法,本发明首先提供了一种SIM卡与应用程序之间的通信方法。该通信方法主要利用SIM卡支持应用程序。
27、直接读写其中的短信文件、通讯录文件和短信中心文件的特性,将应用程序与服务器之间传输的普通数据文件转换为短信文件格式、通讯录文件格式、和/或短信中心文件格式,并调用移动终端系统提供的用于保存/读取短信的应用程序接口、用于写入/读取通讯录的应用程序接口、和/或用于访问短信中心的应用程序接口,从而实现应用程序与SIM卡之间的通信。0032下面分别介绍一下应用程序与SIM卡之间的几种通信方式0033在第一种通信方式中,应用程序与SIM卡之间通过“用于保存/读取短信的应用程序接口API”进行通信。0034具体地,当应用程序调用移动终端操作系统提供的“用于保存短信的应用程序接说明书CN104184892A。
28、5/16页8口API”例如“向SIM卡保存短信的API”时,该API会通过SIM卡的操作指令把应用程序提供的传输数据保存到SIM卡上,从而使应用程序能够向SIM卡传输数据。当应用程序调用移动终端操作系统提供的“用于读取短信的应用程序接口API”例如“读取短信的API”时,该API会通过SIM卡的操作指令把SIM卡需要返回给应用程序的传输数据例如加密或解密后的传输数据提供给应用程序,从而使SIM卡能够向应用程序返回响应数据,进而实现应用程序与SIM卡之间的双向数据传输。0035另外,由于应用程序与SIM卡之间通过“用于保存/读取短信的应用程序接口API”进行通信时,所传输的数据文件必须符合规定的。
29、短信文件格式,因此,在本发明中,应用程序向SIM卡传输数据之前,需要预先将传输数据转换为短信文件格式,以符合移动终端操作系统规范。并且,为了与真正的短信文件相区别,应用程序向SIM卡传输的传输数据中进一步包含一个预设标识,该预设标识用于表示该传输数据不是短信数据,因此,SIM卡收到该传输数据后,根据该预设标识判断出该数据是需要进行安全处理的传输数据,从而对其执行加解密等安全运算。相应地,SIM卡返回给应用程序的响应数据例如加解密或签名验签的数据也需要转换为短信文件格式,以符合移动终端操作系统规范。0036表100370038表1示出了由移动终端操作系统规范所规定的短信文件格式的示意图。如表1所。
30、示,短信文件的第一个字段为“TAR”字段,其为该文件的文件头,在本实施例中,可以预先约定将“TAR”字段的具体值设置为“FEFEF8”,用来表示该传输数据不是普通的短信数据;第二个字段为“总条数”字段,用于在连续传输多条短信时表示要传输短信的总数量;第三个字段为“当前条数”字段,用于在连续传输多条短信时表示当前已传输短信的数量;第四个字段为“后续数据长度”字段,用于在连续传输多条短信时表示尚未传输的短信数据的长度;第五个字段为“应用数据”字段,用于承载短信文件的具体内容数据。0039下面以应用程序向SIM卡传输一条内容为“测试125”的传输数据为例,介绍一下应用程序与SIM卡之间的数据传输方式。
31、0040首先,应用程序将传输数据转换为短信文件格式。具体地,应用程序把传输数据“测试125”映射到“应用数据”字段,作为该条传输数据的具体数据内容;并按照约定将“TAR”字段的具体值设置为“FEFEF8”;然后,将其他字段补充完整,由于本例中仅传输一条数据,因此,“总条数”字段和“当前条数”字段均设置为“1”,“后续数据长度”字段设置为“0E”。0041然后,应用程序调用移动终端操作系统提供的“向SIM卡保存短信的API”,使传输数据以普通短信方式下发到SIM卡中。具体地,该API会通过SIM卡的操作指令把应用程序提供的传输数据保存到SIM卡上。说明书CN104184892A6/16页9004。
32、2接下来,结合传输过程中的传输代码来描述应用程序与SIM卡之间的交互过程。0043应用程序侧的处理流程0044应用程序向SIM卡传输数据时的传输代码如下S表示应用程序下发给SIM卡的传输数据,R表示SIM卡返回给应用程序的响应数据0045/选择SIM卡根目录0046SA0A40000023F000047R9F170048/选择SIM卡电信目录0049SA0A40000027F100050R9F170051/选择短信文件SIM卡的短信文件是在根目录3F00下的7E10的目录下0052SA0A40000026F3C0053R9F0F0054/读取短信文件格式0055SA0C000000F00000。
33、1606F3C040011FF44010201B00056R90000057/写短信0058SA0DC0104B0030AFEFEF801010E10010D0A6D4B8BD50031003200353131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313。
34、13131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313232330059上述写短信指令的注释如下0060说明书CN104184892A7/16页1000610D0A6D4B8BD5003100320035/实际短信内容,这里是“测试125”的UCS2编码006231313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131。
35、313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131323233/一条短信的内容是140个字,这些是填充够140个字,无实质性内容。0063SIM卡侧的处理流程0064当SIM卡检测到应用程序向SIM卡中保存短信文件的时候,如果保存。
36、的短信文件中携带有预先定义的应用程序与SIM卡通信的标识“FEFEF8”,则说明该短信不是实质性的短信,而是应用程序通过短信息承载的需要提交给SIM卡的传输数据,SIM卡收到该短信后,不保存到短信记录文件里,而是把有效数据获取到后,直接丢弃。然后,SIM卡向应用程序返回如下传输代码0065R9000/SIM卡收到应用程序下行的数据后返回的状态字,告诉应用程序命令这里的命令为写短信,即通过短信发送数据给SIM卡执行成功。0066应用程序收到上述传输代码后,得知传输数据已经成功下行给SIM卡,因而开始获取SIM卡的响应数据。具体地,应用程序调用移动终端操作系统提供的“读取短信的API”,取回SIM。
37、卡返回给应用程序的响应数据一般是应用数据,比如加密或解密结果等,这些结果是SIM卡通过运算后返回的,SIM卡把运算后返回的结果映射成SIM卡的短信息,以便应用程度进行读取。短信息的具体格式可以根据应用需求来定义。相应的传输代码如下0067A0B20104B00068010891683108701705F62405800180F600082110110123252320FEFEF801011A10010D1600340020003A00200031003200330034003500360037FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF。
38、FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90000069通过上面的过程,就完成了应用程序与SIM卡之间的双向数据传输。在上述过程中,可以利用短信通道传输任何自定义的数据内容。而且,在应用程序传输的数据中还可以进一步包含操作指令码,SIM卡根据操作指令码的类型确定相应的安。
39、全处理操作。例如,当所述操作指令码包括解密/验签类型的指令码时,所述智能卡则利用预先存储的密钥对所述传输数据进行解密/验签后提供给所述应用程序;当所述操作指令码包括加密/签名类型的指令码时,所述智能卡则利用预先存储的密钥对所述传输数据进行加密/签名后提供给所述应用程序;当所述操作指令码包括本地密码认证类型的指令码时,则提示用户操作内容,并要求用户输入本地密码,只有用户在限定的次数内输入正确的本地密码,所述智能说明书CN104184892A108/16页11卡才继续执行该操作;在所述智能卡获取所述传输数据中包含的操作指令码并根据所述操作指令码的类型执行对应的操作的步骤中进一步包括当所述操作指令码。
40、包括显示内容类型的指令码时,将所述传输数据的内容显示给操作用户。0070在第二种通信方式中,应用程序与SIM卡之间通过“用于写入/读取通讯录的应用程序接口API”进行通信。0071具体地,当应用程序调用移动终端操作系统提供的“用于写入通讯录的应用程序接口API”例如“写通讯录的API”时,该API会通过SIM卡的操作指令把应用程序提供的传输数据保存到SIM卡上,从而使应用程序能够向SIM卡传输数据。当应用程序调用移动终端操作系统提供的“用于读取通讯录的应用程序接口API”例如“读取通讯录的API”时,该API会通过SIM卡的操作指令把SIM卡需要返回给应用程序的传输数据例如加密或解密后的传输数。
41、据提供给应用程序,从而使SIM卡能够向应用程序返回响应数据,进而实现应用程序与SIM卡之间的双向数据传输。0072另外,由于应用程序与SIM卡之间通过“用于写入/读取通讯录的应用程序接口API”进行通信时,所传输的数据文件必须符合规定的通讯录文件格式,因此,在本发明中,应用程序向SIM卡传输数据之前,需要预先将传输数据转换为通讯录文件格式,以符合移动终端操作系统规范。并且,为了与真正的通讯录文件相区别,应用程序向SIM卡传输的传输数据中进一步包含一个预设标识,该预设标识用于表示该传输数据不是普通的通讯录数据,因此,SIM卡收到该传输数据后,根据该预设标识判断出该数据是需要进行安全处理的传输数据。
42、,从而对其执行加解密或签名验签等安全运算。相应地,SIM卡返回给应用程序的响应数据例如加解密或签名验签之后的数据也需要转换为通讯录文件格式,以符合移动终端操作系统规范。0073表200740075表2示出了由移动终端操作系统规范所规定的通讯录文件格式的示意图。如表2所示,通讯录文件主要包括电话号码部分和姓名部分,其中,电话号码部分用于承载该文件的相关信息,例如,电话号码部分的第一个字段为“TAR”字段,其为该文件的文件头,在本实施例中,可以预先约定将“TAR”字段的具体值设置为“010108”,用来表示该传输数据不是普通的通讯录数据;第二个字段为“总条数”字段,用于在连续传输多条通讯录时表示要。
43、传输通讯录的总数量;第三个字段为“当前条数”字段,用于在连续传输多条通讯录时表示当前已传输通讯录的数量;第四个字段为“长度”字段,用于表示该文件的长度。姓名部分仅包含一个字段,即“应用数据”字段,用于承载通讯录文件的具体内容数据。其中,“应用数据”字段的格式为ASCII,用2个ASCII字符表示一个16进制字节,如用FF来表示0XFF。0076接下来,结合传输过程中的传输代码来描述应用程序与SIM卡之间的交互过程。说明书CN104184892A119/16页120077首先,应用程序调用移动终端操作系统提供的“写通讯录的API”,向SIM卡发送数据的流程如下0078/应用程序调用写通讯录的AP。
44、I下行数据给SIM卡0079A0A40000023F0000809F1E0081/选择电信目录0082A0A40000027F1000839F1E0084/选择通讯录文件0085A0A40000026F3A00869F0F0087/开始用通讯录承载,下发数据给SIM卡0088A0DC01041C31313232333334343535363637370781101080301041FFFFFFFFFFFF008990000090A0DC01041C38383939303031313232333334340781101080302041FFFFFFFFFFFF009190000092A0DC01。
45、041C35353636FFFFFFFFFFFFFFFFFFFF0781101080303040FFFFFFFFFFFF009390000094/至此SIM卡接收完成应用程序下行的数据0095然后,SIM卡根据接收文件的“TAR”字段判断出该文件中的数据不是普通的通讯录数据,而是应用程序发来的需要进行安全运算的传输数据,因此,SIM卡对其内容进行安全运算例如加密或解密、签名或验签后,将得到的响应数据返回给应用程序。具体地,应用程序可以通过调用“读取通信录的API”,来得到返回的响应数据。其中,应用程序调用“读取通信录的API”之后的处理流程如下述代码所示0096/应用程序调用手机系统提供的读通。
46、讯录的API,从SIM卡取回数据0097A0B201041C009845454444434342424141393938380C81101080301041FFFFFFFFFFFF90000099A0B202041C010037373636464645454444434342420C81101080302041FFFFFFFFFFFF90000101A0B203041C010241413939FFFFFFFFFFFFFFFFFFFF0C81101080303040FFFFFFFFFFFF90000103通过上面的过程,就完成了应用程序与SIM卡之间的双向数据传输。在上述过程中,可以利用短信通道。
47、传输任何自定义的数据内容。而且,在应用程序传输的数据中还可以说明书CN104184892A1210/16页13进一步包含操作指令码,SIM卡根据操作指令码的类型确定相应的安全处理操作。其中,操作指令码的类型参见上文描述,此处不再赘述。0104在第三种通信方式中,应用程序与SIM卡之间通过“用于访问短信中心的应用程序接口API”进行通信。0105通常情况下,移动终端的操作系统能够支持应用程序对SIM卡的短信中心进行设置。利用这一特性,本发明中的应用程序可以通过对SIM卡短信中心进行设置来承载下行数据给SIM卡。SIM卡在检测到有短信中心更新的时候,把更新数据拦截下来,从而获取到应用程序发来的传输。
48、数据。0106表301070108表3示出了由移动终端操作系统规范所规定的短信中心文件格式的示意图。因此,应用程序通过相应的API接口发送给SIM卡的传输数据以及SIM卡返回的响应数据均应预先转换为表3所示的格式。其中,短信中心只能采用09的号码,而当应用程序向SIM卡传输的数据采用十六进制编码时,包含了ABCDEF这几个非号码数据的字符,因此,需要先把ABCDEF这几个字符用09的号码进行编码之后,才能传输。所以采用该方式承载数据时,需要对16进制字节重新编码,转换前先将全部16进制拆分成半字节,按半字节方式重新编码,然后重新组合成新的字节,不足2的位数时,后面补F。半字节编码采用如表4所示。
49、的转换方式0109表401100111例如,需要发送0X12,0X90,0XAB这3个16进制数据给卡片,则对应需要下行的短信中心号码为129009192,将其重新编码成16进制为0X12,0X90,0X09,0X19,0X2F。实际传输的ADN格式为0X21,0X09,0X90,0X91,0XF2。0112下面结合具体的传输代码描述应用程序与SIM卡之间的交互过程0113/应用程序通过调用移动终端操作系统提供的写短信中心的API,下行数据给SIM卡说明书CN104184892A1311/16页140114A0A40000027F1001159F170116/选择短信中心文件0117A0A40000026F4201189F0F0119/开始通过短信中心号码来承载数据的方式下行数据给SIM卡0120A0DC010429FFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF0A91895604000300130023FFFFFFFF012190000122A0DC010429FFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF0A91003300430053006399FFFFFFFF012391360124/SIM卡收完应用程序下行的数据后,弹。