用于将终端应用程序绑定到安全元件的方法以及对应的安全元件、终端应用程序和服务器与流程

文档序号:17733497发布日期:2019-05-22 03:00阅读:140来源:国知局
用于将终端应用程序绑定到安全元件的方法以及对应的安全元件、终端应用程序和服务器与流程

电信终端(比如例如移动电话、pda、智能电话……)通常与安全元件协作,所述安全元件比如是sim卡、uicc或euicc(焊接在终端中的嵌入式uicc)。这些安全元件允许通信网络(gsm、umts、lte……)对订户(终端的所有者)进行认证。安全元件传统上被包括在电信终端中,但是它也可以例如在被包括在手表或首饰中时与终端无线地通信。

电信终端还包含本机安装的或者由终端的用户下载的应用程序。

在本发明的范围中,用户需要将应用程序(在下文中称为终端应用程序)绑定到他的安全元件,以便使应用程序强烈地依赖于安全元件。终端应用程序已经例如由用户从远程服务器下载,所述远程服务器通常是服务提供商(比如例如googletm、applestoretm、银行……)的服务器,或者已经由该终端的制造商安装在终端中。终端应用程序被安装在终端中并且没有被安装在安全元件中。终端应用程序到安全元件的绑定保护终端应用程序免受克隆(终端应用程序将仅与给定的单个安全元件一起工作——用另一个安全元件替换该安全元件将致使终端应用程序不起作用),并且提供了一种获得终端应用程序与安全元件之间的受保护通道的解决方案。

另一个问题是终端应用程序必须与远程服务器(服务提供商的服务器)通信并且该服务器不知道终端应用程序是否可以信任。被安装在终端中的恶意软件可以拦截终端应用程序与服务器之间的通信并且使它们生根到另一个终端上存在的假应用程序(或克隆体)。

为此目的,本发明提出了两步骤方法:

-单个登记阶段,其目的是创建在终端应用程序与安全元件之间共享的密钥;

-运行时间阶段,其目的是在用户想要运行终端应用程序时在服务提供商的级别处核实终端应用程序是否被绑定到安全元件。

更准确来说,本发明提出了一种用于在服务提供商的级别处检查终端中包括的终端应用程序是否有权请求由服务提供商提供的服务的方法,安全元件与终端协作,安全元件包含由终端应用程序在登记阶段期间生成的第一密钥,其中该方法包括:

a-从服务提供商向安全元件发送第一消息

[[[nonce4mobileapp]pubkey4app]nonce4sim]pubkey4sim,其中:

-nonce4mobileapp和nonce4sim是由服务提供商生成的数据;

-pubkey4app和pubkey4sim分别是终端应用程序的公钥和安全元件的公钥;

b-在安全元件中利用安全元件的私钥对第一消息进行解密;

c-从安全元件向终端应用程序发送通过第一密钥加密的经解密的第一消息;

d-在终端应用程序中利用第二密钥对所接收的消息进行解密并且利用终端应用程序的私钥对nonce4mobileapp进行解密;

e-从终端应用程序向服务提供商发送数据nonce4mobileapp和nonce4sim;

f-由服务提供商检查所接收的数据nonce4mobileapp和nonce4sim是否对应于在步骤-a-处发送的那些,并且

-如果数据对应,则认为服务提供商可以信任终端应用程序并且授权执行所述服务;

-如果数据不对应,则认为服务提供商不能信任终端应用程序并且禁止执行所述服务。

优选地,第一密钥是主密钥(masterkey)和由终端的用户输入的pin码的函数。

有利地,由终端应用程序通过外部服务器向安全元件发送第一密钥。

优选地,在已经接收到第一密钥之后,安全元件向终端应用程序发送挑战,终端应用程序利用第一密钥对该挑战的响应进行加密并且将经加密的响应发送给安全元件,安全元件对所接收的经加密的响应进行解密并且如果响应与安全元件所期望的匹配则存储第一密钥。

本发明还涉及一种与终端协作的安全元件,安全元件包含由终端中包括的终端应用程序生成的第一密钥,安全元件包括存储指令的微处理器,所述指令专用于:

a-从服务提供商接收第一消息[[[nonce4mobileapp]pubkey4app]nonce4sim]pubkey4sim,其中:

-nonce4mobileapp和nonce4sim是由服务提供商生成的数据;

-pubkey4app和pubkey4sim分别是终端应用程序的公钥和安全元件的公钥;

b-利用安全元件的私钥对第一消息进行解密;

c-向终端应用程序发送通过第一密钥加密的经解密的第一消息。

优选地,第一密钥是主密钥和由终端的用户输入的pin码的函数。

优选地,由终端应用程序通过外部服务器向安全元件发送第一密钥。

优选地,在已经接收到第一密钥之后,安全元件向终端应用程序发送挑战,终端应用程序对挑战进行解密并利用第一密钥对响应进行加密并且将经加密的响应发送给安全元件,安全元件对所接收的经加密的响应进行解密并且如果响应是安全元件所期望的则存储第一密钥。

本发明还涉及一种服务提供商的服务器,其能够检查终端中包括的终端应用程序是否有权请求由服务提供商提供的服务,安全元件与终端协作,安全元件包含由终端应用程序在登记阶段期间生成的第一密钥,该服务器包括一个或多个微处理器以用于:

a-从服务提供商向安全元件发送第一消息[[[nonce4mobileapp]pubkey4app]nonce4sim]pubkey4sim,其中:

-nonce4mobileapp和nonce4sim是由服务提供商生成的数据;

-pubkey4app和pubkey4sim分别是终端应用程序的公钥和安全元件的公钥;

b-从终端应用程序接收数据nonce4mobileapp和nonce4sim;

c-检查所接收的数据nonce4mobileapp和nonce4sim是否对应于在步骤-a-处发送的那些,并且

-如果数据对应,则认为服务提供商可以信任终端应用程序并且授权执行所述服务;

-如果数据不对应,则认为服务提供商不能信任终端应用程序并且禁止执行所述服务。

最后,本发明涉及一种被包括在终端中的终端应用程序,终端与安全元件协作,安全元件包含由终端应用程序在登记阶段期间生成的第一密钥,终端应用程序被配置成:

a-从安全元件接收第一消息[[[nonce4mobileapp]pubkey4app]nonce4sim]psk-sim-app,其中:

-nonce4mobileapp和nonce4sim是由服务提供商生成的数据;

-pubkey4app和pubkey4sim分别是终端应用程序的公钥和安全元件的公钥;

-psk-sim-app是第一密钥;

b-利用第二密钥对包含nonce4sim的第一消息进行解密并且利用终端应用程序的私钥对数据nonce4mobileapp进行解密;

c-向服务提供商发送数据nonce4mobileapp和nonce4sim或者其函数。

优选地,第一密钥是主密钥和由终端的用户输入的pin码的函数。

优选地,由终端应用程序通过外部服务器向安全元件发送第一密钥。

优选地,终端应用程序被配置成:

-从安全元件接收挑战;

-利用第一密钥对响应进行加密;

-将经加密的响应发送给安全元件。

由于对各图的以下描述将更好地理解本发明,所述图表示:

-图1登记阶段;

-图2运行时间阶段。

图1表示登记阶段。它在于创建在终端应用程序与安全元件之间共享的密钥。

在该图中,终端10,例如智能电话,与安全元件11协作并且包含终端应用程序12。还表示了终端10的屏幕13、小键盘14、天线15和用户16。

登记阶段的第一步骤在于定义应用程序pin码。该pin码由用户16选择,例如四个数字1234(利用小键盘14输入)。终端应用程序12使用该pin码来生成共享密钥,其被称为psk-sim-app(在下文中还称为第一密钥)。由于存储在终端应用程序中的主密钥而生成该共享密钥:

psk-sim-app=f(主密钥,pin码),其中f为函数。

主密钥取决于终端应用程序。给定的终端应用程序可以具有单个主密钥(安装在不同终端中的该终端应用程序将具有相同的主密钥)。但是,为了改进安全性,每一个所安装的终端应用程序可以具有不同的主密钥(安装在不同终端中的相同终端应用程序的主密钥是不同的(多样化的))。

登记阶段的第二步骤在于从终端应用程序向安全元件发送第一密钥psk-sim-app。因为终端应用程序与安全元件之间的绑定不针对所建立的时刻,所以终端应用程序与安全元件之间的链路不受保护。因此,终端应用程序通过受保护的ota(空中传输,overtheair)通道向安全元件发送psk-sim-app:psk-sim-app被例如通过sms或者在http通道上发送给外部服务器17(步骤18)。外部服务器(也在受保护的链路上)在步骤19处将所接收的psk-sim-app发送给安全元件。

登记阶段的第三步骤在于从安全元件11向终端应用程序12发送挑战以便使登记阶段生效。这可以在终端10(链路20)内部完成。由于psk-sim-app,终端应用程序对挑战进行加密,并且将其返回到安全元件。

登记阶段的第四步骤在于:由于在步骤19期间接收的psk-sim-app,在安全元件11的级别处检查终端应用程序的响应是否正确。如果终端应用程序已经返回正确的响应,则将第一密钥psk-sim-app存储在安全元件中并且登记阶段完成(安全元件已经识别出生成第一密钥的终端应用程序)。否则,中止登记阶段。

必须要指出的是,一旦psk-sim-app被存储在安全元件中,就在终端应用程序中删除它(终端应用程序不再存储第一密钥psk-sim-app)。

图2表示运行时间阶段。

该阶段发生在用户16试着通过使用终端应用程序12请求由服务提供商30提供的服务时。该服务提供商30想要确信终端应用程序12被绑定到安全元件11。为了检查终端应用程序12是否有权请求由该服务提供商30提供的服务,服务提供商30(由于服务器)向安全元件11发送(步骤31)第一消息:

[[[nonce4mobileapp]pubkey4app]nonce4sim]pubkey4sim

其中:

-nonce4mobileapp和nonce4sim是由服务提供商30生成的数据(随机的);

-pubkey4app和pubkey4sim分别是终端应用程序12和安全元件11的公钥。

可以例如响应于gsm标准03.40在sms中发送该第一消息。通过接收该第一消息,安全元件11利用其私钥对它进行解密并且恢复:

[[[nonce4mobileapp]pubkey4app]nonce4sim]

安全元件11然后向终端应用程序12传输(步骤32)通过它已经存储的第一密钥psk-sim-app加密的经解密的第一消息,即:

[[[nonce4mobileapp]pubkey4app]nonce4sim]psk-sim-app

该消息的传输在omapi规范下完成。

终端应用程序12利用第二密钥对所接收的消息进行解密并且利用其私钥对nonce4mobileapp进行解密。

如果用户已经正确地输入他的pin码,则第二密钥与第一密钥(psk-sim-app)相同。否则,两个解决方案是可能的:

-se11和终端应用程序12没有绑定;

-用户输入了错误的pin码。

因此,终端应用程序12恢复:

-nonce4mobileapp

-nonce4sim

终端应用程序12然后向服务提供商30发送(步骤33可以通过wifi、3g、4g、tls、https……实现)数据nonce4mobileapp和nonce4sim,并且服务提供商30检查所接收的数据nonce4mobileapp和nonce4sim是否对应于在步骤31处发送的那些。

在该图中,将f(nonce4mobileapp,nonce4sim)发送给服务提供商30。函数f可以是nonce4mobileapp和nonce4sim的散列或xor,但是nonce4mobileapp和nonce4sim还可以被用普通文字发送给服务提供商(系数为1的线性函数:f(x)=x)。

如果数据对应,则服务提供商30认为它可以信任终端应用程序12并且授权执行所述服务。否则,如果数据不对应,则服务提供商30认为它不能信任终端应用程序12并且禁止执行所述服务。

因此,本发明提出了一种信任委派(delegation):如果数据对应,则这意味着安全元件已经信任终端应用程序(它们被绑定),并且服务提供商可以信任终端应用程序。

本发明还涉及一种与终端10协作的安全元件11,该安全元件11包含由终端中包括的终端应用程序12生成的第一密钥,安全元件11包括存储指令的微处理器,所述指令专用于:

a-从服务提供商30接收第一消息:

[[[nonce4mobileapp]pubkey4app]nonce4sim]pubkey4sim

b-利用安全元件11的私钥对第一消息进行解密;

c-向终端应用程序12发送通过第一密钥加密的经解密的第一消息。

本发明还涉及一种服务提供商30的服务器,其能够检查终端10中包括的终端应用程序12是否有权请求由服务提供商30提供的服务,安全元件11与终端10协作,安全元件11包含由终端应用程序12在登记阶段期间生成的第一密钥,该服务器包括一个或多个微处理器以用于:

a-从服务提供商向安全元件11发送第一消息:

[[[nonce4mobileapp]pubkey4app]nonce4sim]pubkey4sim

b-从终端应用程序12接收数据nonce4mobileapp和nonce4sim;

c-检查所接收的数据nonce4mobileapp和nonce4sim是否对应于在步骤-a-处发送的那些,并且

-如果数据对应,则认为服务提供商可以信任终端应用程序12并且授权执行所述服务;

-如果数据不对应,则认为服务提供商不能信任终端应用程序12并且禁止执行所述服务。

最后,本发明还涉及一种在终端10中包括的终端应用程序12,终端10与安全元件11协作,安全元件11包含由终端应用程序12在登记阶段期间生成的第一密钥,终端应用程序12被配置成:

a-从安全元件11接收第一消息:

[[[nonce4mobileapp]pubkey4app]nonce4sim]psk-sim-app

b-利用第二密钥对该第一消息进行解密并且利用终端应用程序12的私钥对数据nonce4mobileapp进行解密;通过对第一消息进行解密,其得到nonce4sim;

c-向服务提供商发送数据f(nonce4mobileapp,nonce4sim),其中f是函数。f可以是散列函数。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1