确定通信连接中的参与方的信任级别的方法
本发明与确定在第一通信方和第二通信方之间的通信连接中的一个参与方的信任级别(trustworthiness level)的方法有关,具体地说,与确定可信环境中的一个例如手持电话机之类的手持设备的信任级别的方法有关。
发明领域和背景
集成电路卡,又名灵通卡(smartcard),通常被认为比常规的计算机系统更具抗窜改能力,因此经常在大型计算机系统内用来进行验证和保安。作为一个例子,灵通卡在GSM移动电话系统内用来作为用户标识模块,简记为SIM。这里,移动手机,也称为移动设备或ME,通常不被认为是一种可信设备,而用可信的灵通卡来安全地存储和处理用户信息和验证功能。在发起呼叫时,移动网通过运用可信的灵通卡内的验证功能对移动用户进行验证。
手持电话机当前正扩展到对于例如银行和支付之类的增值应用可以在手持电话机上执行一些用户程序。手持电话机接入灵通卡保证了增值应用所需要的有关保安功能,诸如对手机发起的金融事项进行初始验证。虽然有可能使灵通卡执行所有的关键性保安功能,但也未必,因为灵通卡只有有限的处理和存储能力。因此可以预料,对于像银行业务那样的复杂应用保安功能不会完全依靠灵通卡,至少部分信用必须委托给手持电话机。除承办处理和存储以外,灵通卡必须无保留地信任为灵通卡提供可靠通信信道的手持电话机。
今后,可以预料,一些复杂的应用的一些部分将在手持电话机上执行。由于手持电话机也传送灵通卡、用户和后端服务器之间的所有通信,因此可以想象一个恶意的手持电话机可以改变在这三方之间发送的数据分组的内容。依靠可信的灵通卡对消息标记或验证并不能减轻这种威胁,因为灵通卡无法验证为了标记或验证手持电话给它的一个消息真是手持电话机给用户的消息。
因此,对于需要高度安全和保密的应用必需将信任范围扩展到包括手持电话机本身。按照惯例,这是通过两个主要措施来实现的,抗窜改硬件和保证抗窜改装置通过策略或者后端服务器的验证进行使用。
设计专用的抗窜改硬件可能涉及带有如果设备物理上受损害(诸如在外壳打开时)或断电就擦除诸如加密参数之类的安全敏感信息和中断未决事项的电路的专用加强结构,或者设计在可信的灵通卡和所需的输入-输出设备之间的各通路上没有任何软件控制成分的硬连线电路。
不幸的是,诸如移动手机之类的移动设备当前不是设计成能防止窜改的,而添加完全的防窜改对于日用类型的手机是不实际的,因为这样做的预期成本很高。
发明的目的和优点
一个按照权利要求1或10所述的本发明的目的是提供一种建立在一个通信连接中的一个参与方的信任级别以便按这个信任级别修改通信行为的方法。由于通信中的各参与方分成可以信任的防窜改设备和最好不相信可用于安全敏感通信的设备,本发明提供了一种通过确定一个参与方的信任级别、使通信行为适应所确定的信任级别来解决双方之间通过参与方通信的有益方法。采用这种方法,可信和非可信设备可以参与通信,而在传送安全敏感信息前自动地检验每个参与设备的可信度。
参与方可以是例如一个诸如手持电话机之类的移动设备。手持电话机的信任级别表示固有的抗窜改度。第一通信方可以是例如一个灵通卡,而第二通信方可以是例如一个后端服务器。
灵通卡可以利用手持电话机连接到一个后端服务器上,灵通卡和后端服务器能以一种有益的方式建立一个经验证的对话期,假设是一个非可信的手持电话机的话。在确定了信任级别后,灵通卡就将手持电话机的信任级别传送给后端服务器,而不需要后端服务器直接验证手持电话机。
另一个目的是提供一种方法,其中为一个应用规定了一个信任策略(trustworthiness policy),这个策略根据手持电话机的信任级别限制应用的功能。
在信任证书(trustworthiness certificate)带用一个证书管理机构私钥产生的签字到达第一通信方而第一通信方利用一个证书管理机构公钥验证这个签字时,就用了一种安全的方法来检验这个签字是否由一个有法定资格的可信证书管理机构颁发的。这是有益的,因为那时可以很容易确认在相应的参与方证书内含有的信息是它的始发方颁发的。
证书管理机构公钥可以从第一通信方的存储器读出,这样的优点是这个密钥是已经可用的而不必从其它地方获取。这也节省了时间。
传送检测到的信任级别可以通过将必需的信息负在灵通卡与后端应用服务器之间的应用层消息上予以签字进行。在第一通信方将所确定的信任级别通过将一个信任级别信息负在一个通信消息上再用一个第一方私钥对这个通信消息签字后发送给第二通信方时,就又选择了一种十分安全的方式将确定的信任级别通知后端服务器。从而,一个恶意的参与方无法修改这个信息,因此无法冒充一个可信的参与方。
作为按照所确定的信任级别选择的通信行为的参数之一,可以选择有值资产的总额或数量,例如最多的金融事项数和/或一个金融事项的最大金额和/或最多的机密字数。经修改的行为可用于弥补已以低信任级别建立的安全性的最后漏洞。例如,在低信任级别的情况下,只能执行最高为一个固定金额的金融事项。
测试信任证书是否属于参与方可以这样执行:由第一通信方向参与方发送一个测试数字,从参与方返回经用参与方私钥签字的测试数字。返回的测试数字的签字利用一个与参与方私钥相应的参与方公钥予以验证。这种询问-响应规则提供了一种容易实现而有高度安全性的简单方法。
参与方公钥可以由第一通信方作为信任证书的内容接收。这种方法可用于可能有多个信任证书因此也有多个信任级别,如果每个证书赋予一个不同的信任级别的话。
在确定信任级别中对于每个信任级别采用一个不同的带有一对相应的参与方公钥和参与方私钥的信任证书时,就提供了一种理解不同级别的简便易行方案。它可用于例如对于不同的密钥长度或只是不同的签字权限可以赋予不同的信任级别。
手持电话机为执行一个应用的灵通卡和后端服务器提供通信和处理资源。后端服务器希望对手持电话机进行验证,因为安全敏感数据发送给灵通卡要经过手持电话机。由于手持电话机与后端服务器可能分开相当大的物理距离和/或由一个窄带网络连接,在手持电话机与后端服务器之间运行传统的验证协议可能是不经济的。效率较高的是利用灵通卡就地验证手持电话机的信任级别,因为灵通卡与手持电话机之间的通信是比较快而经济的。
所提出的解决方案最有益于展开基于例如GSM电话机那样的移动手机的银行业务,因为这样的应用需要高度安全。如上面所指出的,这因而需要对手机本身的信任级别有要求。并不是所有的手机都是可信任的,因为设计和制造这样的手机的费用甚高,而且在这个领域内早已有大量不具有任何抗窜改能力的手机。
灵通卡作为后端服务器的委托代理,相对于手持电话机/灵通卡环境就地确定信任级别。在这里说明的系统允许可信的灵通卡检测手持电话机的抗窜改的级别,将这个级别传送给后端服务器。与基于服务器的设备验证方法相比,所提出的解决方案的固有优点是降低了在后端服务器与手持电话机之间的通信要求,这除了降低通信成本外还允许这个过程反复执行,如果必要的话,例如在灵通卡与后端服务器之间的每个消息前执行,以提供额外保护。
使应用行为适应传送的信任级别可以通过限制事项数或确定一个所执行的事项的最高金额来实现。例如,用完全非可信的手机只允许可以查询帐户,而用完全信任的手机可执行任意大额的事项。可信度为中间级别的手机可以局限于每月最高到某个额度的事项。
发明概述
所提出的方法可以为手持电话机确定一个反映这个手持电话机的抗窜改能力的信任级别。当前的移动手机,例如没有抗窜改能力的,将赋予最低的信任级别。将来的完全防窜改手机将赋予最高的信任级别。对于那些不完善的而又加了一定防窜改措施的手机指定中间的信任级别。
第一通信方,例如一个灵通卡,具有验证一个是在第一通信方与一个第二通信方之间的通信连接中的参与方的手持电话机的抗窜改能力的级别的措施,此外还具有将检测到的手持电话机的抗窜改能力的级别安全地传送给例如是一个后端服务器(灵通卡在参与方上执行一个应用期间与它进行通信)的第二通信方的措施。
后端服务器能按照灵通卡检测到后传送给它的抗窜改能力的级别修改通信(应用)的行为。
这种方法的基本步骤说明如下。
在灵通卡被插入手持电话机中启动一个对话期时,灵通卡请求手持电话机发给信任级别。信任级别可以例如由手持电话机的厂家指定,或者也许由在手持电话机上的应用将与之通信的机构或其代表(诸如银行或信用卡公司之类)指定。
灵通卡对从手持电话机接收到的信任级别在令牌是由一个有权指定信任级别的实体产生的意义上是有效的以及这个信任级别不是重放的情况进行验证。如果信任级别验证失败,就认为这个手持电话机是非可信的。如果是这种情况,灵通卡可以选择结束这个对话期,或者在只能执行可以通过一个非可信的手持电话机的应用的限制下继续这个对话期。然后,灵通卡形成一个信任级别令牌TLT送给第三方,表明手持电话机的信任级别。
选择一个应用在手持电话机上执行,这个应用利用网络与一个后端服务器接触。后端服务器和灵通卡利用一个不取决于手持电话机的可信度的协议相互验证。例如,如果手持电话机是一个GSM手机而灵通卡是一个SIM,后端服务器和灵通卡SIM就利用标准的GSM验证功能进行验证。或者,也可以利用WTLS的验证功能。
灵通卡通过将信任级别令牌TLT附加到从灵通卡向后端服务器S发送的这个应用的一些应用分组上,将手持电话机的信任级别传送给后端服务器。信任级别令牌TLT可以附加到每个分组上,或者按照另一个根据某个策略得出的方案传送。
后端服务器接收到经灵通卡发来的手持电话机的信任级别令牌TLT后,不必与手持电话机本身验证手持电话机的信任级别,因为这已经由可信的灵通卡完成了。后端服务器参考一个说明相对于信任级别令牌TLT指定的信任级别应该对应用加什么限制的信任策略,调整它在应用中的行动和响应。
附图说明
在附图中示出了本发明的例子,下面将举例详细说明。在图1中示出了一个具有一个第一通信方、一个参与方和一个第二通信方的系统。
这个图为了清晰起见没有以实际尺寸示出,也没有按实际比例示出这些尺寸之间的关系。
发明详细说明
下面,将对本发明的典型实施例进行说明。
在图1中示出了一个系统,包括一个呈灵通卡形式的第一通信方、一个呈后端服务器3形式的第二通信方和一个连接在通信方1、3之间的呈手持电话机形式的参与方2。手持电话机2包括一个也称为电话机信任模块的存储单元4,其中存储了信任证书6。
在灵通卡1插入手持电话机2启动一个经通信连接的对话期时,灵通卡1请求从手持电话机2传输信任证书6。
后面的实现情况基于利用公钥密码的原则,使一个实体产生一个数字签字而使另一个实体验证这个签字。然而也可以采用其他验证方法。
假设信任级别TL的有效集合用一列L+1个整数0,1,…,L表示,因此0指定为无可信度,1指定为最小可信度,而L指定为最大可信度。在0和L之间的值表示中间的信任级别TL,其中值较高的表示可信度较高。
在生产或个人化时,电话机信任模块4就装了例如X509格式或WTLS格式的信任证书6 CertME CA。信任证书6 CertME CA表示一个在手持电话机2的名称和一个参与方公钥7 KME之间的绑定(binding),哪个绑定在信任证书6 CertME CA中说明。信任证书6 CertME CA还含有一个扩展段14,存有一个给出为手持电话机2指定的信任级别TL的整数,其中0≤TL≤L。信任证书6带有证书管理机构CA的信任证书签字9,用作证书管理机构私钥。
一个与信任证书6的参与方公钥7 KME关联的参与方私钥8 K-1 ME和一些利用参与方私钥K-1 ME操作的功能也装入手持电话机2的电话机信任模块4,模块4是一个安全和防窜改处理区域。这样一个区域应该用于信任级别TL大于0的所有手持电话机。至少参与方私钥8 K-1 ME必须安全存储,也就是使它不能被未经许可人员或设备读出。
因此,手持电话机2赋有一对参与方公/私密钥7、8 KME/K-1 ME,可以用来验证信任证书6与手持电话机2的从属关系。手持电话机2含有带签字的信任证书6,其中存有它的参与方公钥7以及赋予手持电话机2的信任级别TL。
与证书管理机构私钥相应的证书管理机构公钥17可以认为是公开的,因此任何实体都可以用它检验信任证书签字9以及手持电话机2与信任证书6的从属关系。这样就可以确定信任级别TL。否则,证书管理机构还可能为第一通信方1提供这个证书管理机构公钥17,或者可以从某处,例如一个数据网,下载这个证书管理机构公钥17。
在生产或个人化时,为灵通卡1的灵通卡模块5装了一个为灵通卡1指定第一方公钥11 KSC的第一方证书10 CertSC CA以及一个第一方证书签字12。一个关联的第一方私钥13 K-1 SC也与一个有三个不同证书管理机构CA1、CA2、CA3的示例证书C1、C2、C3的集体15一起装入灵通卡可信度模块5。选择三个示例证书只是作为例示而已。示例证书的集体15通常应该充分大,以便能以很高的可能性验证任意手持电话机2给出的信任证书6 CertME CA。这里,示例证书C1、C2,C3中的第一示例证书C1含有验证信任证书签字9所需的证书管理机构公钥17。
在灵通卡1放入手持电话2时,可以确定手持电话机2的信任级别TL,情况如下。
灵通卡1产生一个随机数R1发送给手持电话机2的电话机信任模块4。这也称为询问步骤,应该手持电话机2会予以响应。
手持电话机2的电话机信任模块4用它的参与方私钥8 K-1 ME对随机数R1签字,将对随机数R1的签字Sign(R1)与它的信任证书6 CertME CA一起返回给灵通卡1。
灵通卡1对它的证书C1、C2、C3的集体15进行搜索,找到对于证书管理机构CA的第一示例证书C1,验证接收到的信任证书6 CertME CA上的信任证书签字9。对于证书C1、C2、C3的集体15来说,在灵通卡1上可以预装一些预选的这种证书,覆盖大多数受欢迎的证书管理机构CA。每当信任证书签字9没有它相当的而灵通卡1内证书所属的证书管理机构公钥17,这个遗漏的证书可以从一个提供这个证书的源例如某个网络装入。通常,这些证书配置成链接形式,这意味着为了相信一个证书,它的签字需利用一个嵌入另一个证书的公钥测试,而这另一个证书又是带签字的,这个签字又需检验,如此直到到达一个的确相信的证书管理机构,例如本身。也可以存在若干个这样的证书链。
如果信任证书签字9正确,灵通卡1就从信任证书6 CertME CA中提取参与方公钥7 KME,用以验证随机数签字Sign(R1)。如果任何一个签字验证失败,灵通卡1就中断这个过程,确定信任级别TL为0。
如果验证取得成功,灵通卡1检查信任证书CertME CA内的可信度段14,构造一个信任级别令牌(TLT),指出灵通卡1已经验证了接纳灵通卡1的手持电话机2,信任级别为TL。
灵通卡1从而验证了这个接收到的信任证书CertME CA是有效的,也就是说它是一个有权赋予信任证书CertME CA的实体产生的,而且这个信任证书CertME CA不是重放或冒充的。
如果信任证书6 CertME CA验证失败,就认为手持电话机2是非可信的,也就是说赋予它一个为0的信任级别TL。在这种情况下,灵通卡1可以选择结束这个对话期,或者在只可以执行允许在不安全通信连接上运行的那些应用的限制下继续这个对话期。
灵通卡1生成表示所确定的信任级别TL的信任级别令牌TLT,将它发送给一个是第三方的第二通信方3,向这个第三方表明手持电话机2的信任级别TL。
灵通卡1可以通过将信任级别信息TLT负在一个通信消息上、再用第一方私钥13对这个通信消息签字后发送给可以利用第一方公钥11测试签字的第二通信方3,将确定的信任级别TL传送给第二通信方3。
或者,例如在用于GSM的情况,两个通信方1和3可以在确定参与方2的信任级别TL前就已经相互相信,因为它们两个有一个共同的私钥,它可以是第一方的私钥13。这是可以理解的,因为灵通卡1是由一个已经在服务器3建立第一方私钥13的权力机构颁发的,当然是相信的,由这个权力机构预装了第一方私钥13。
为了执行,选择一个利用与后端服务器3接触、在手持电话机2上运行的应用。后端服务器3和灵通卡1利用一个不取决于手持电话2的可信度的协议相互验证。例如,如果手持电话机2是一个GSM手机而灵通卡1是一个SIM,后端服务器3和灵通卡1就利用标准的GSM验证功能进行验证。或者,也可以利用WTLS的验证功能。
灵通卡1将手持电话机2的信任级别TL通过将信任级别令牌TLT附加到从灵通卡1向后端服务器3发送的这个应用的一些应用分组上传送给后端服务器3。信任级别令牌TLT可以附加到每个应用分组上,或者按照另一个策略,根据一个确定的令牌通讯方案发送,例如每隔一段固定时间发送一次,或每个对话期发送一定次数等。
在后端服务器3接收到经灵通卡1发来的手持电话机2的信任级别令牌TLT时,它不需要与手持电话机2本身验证手持电话机2的信任级别TL,因为这已经由相信的灵通卡1完成了。对于应用A,后端服务器3咨询一个信任策略16 pol(A),例如在形式上呈一个存储表格,说明相对信任级别令牌TLT指定的信任级别TL要对应用A加什么限制。后端服务器3因此调整在应用A中它的行动和响应。也就是说,后端服务器3咨询应用A的信任策略16 pol(A)后,按照在信任级别令牌TLT中给出的信任级别TL修改或选择它的通信行为。
然后,灵通卡1按照用户命令,建立一个与后端服务器3的安全和经验证的对话期,以便运行应用A。后端服务器3和灵通卡1运行WTLS,采用客户机双方,也就是灵通卡1和后端服务器3,利用证书交换进行验证的方案。此时,后端服务器3与灵通卡1之间的可信度已经确定。
在需要灵通卡1向后端服务器3发送应用数据D时,灵通卡1附加上信任级别令牌TLT后发送数据对(D,TLT)。由于后端服务器3与灵通卡1之间的信道是经验证的,因此后端服务器3相信在信任级别令牌TLT中给出的信任级别TL实际上是对于这个对话期接纳灵通卡1的手持电话机2的信任级别TL。
信任级别令牌TLT是一个对后端服务器3有意义的数据项。它可以等同于信任级别TL的整数值,而在这样情况下后端服务器3应该检查说明对于这个信任级别TL它的行动或通信行为的策略16。或者,信任级别令牌TLT可以直接表示遵从某个适当的可信度度量,例如货币量,的意向信任级别TL。在那时,不需要策略16。
这个例子还使灵通卡1与后端服务器3之间的验证步骤很明确,但是这不必始终是这种情况。如果手持电话机2是一个GSM手机,于是灵通卡1可以是一个SIM,在插入手机2时利用标准的GSM验证算法予以验证。SIM的基站可以将这个验证信息转送给后端服务器3,因此就不需要在后端服务器3与SIM之间建立WTLS对话期。
另一个例子是参与方2确实只不过存储了参与方私钥8而没有信任证书6。于是,灵通卡1可以知道参与方私钥8或相应的参与方公钥7,从而执行上述的询问-响应测试,查明手持电话机2是否知道参与方私钥8。如果是这种情况,则可以赋予一个相应的信任级别TL。不同的信任级别TL可以相应于不同的参与方私钥8。
在以上说明中,非可信方是一个电话手机。应当注意的是,广义的非可信设备是任何移动设备,移动台手机只不过是一个例子。