本文中讨论的实施方式涉及通信程序、通信方法和通信设备。
背景技术:
当使用诸如在线购物、用于发行信用卡的应用以及开设银行账户这样的各种服务时,服务用户可能向服务提供商提供数字证书。数字证书可以是由证书认证机构颁发的。在这种情况下,证书认证机构对用户执行身份确认等,并且基于结果颁发证书。用户将获得的数字证书提供给服务提供商。服务提供商适当地检查证书的有效性,并且当证书有效时,服务提供商根据经证书证明的信息来提供服务。
图1是描述了用于检查证书有效性的处理的示例的图。图1中例示的网络包括通信设备5a至5c。在图1的示例中,作为证书认证机构操作的通信设备5a颁发通信设备5b的用户的证书,并且将该证书发送到通信设备5b(步骤s1)。通信设备5b将证书发送到通信设备5c,以便接收由通信设备5c提供的服务(步骤s2)。当提供服务时,通信设备5c向作为证书颁发方的通信设备5a询问证书的有效性(步骤s3)。通信设备5a确定证书是否有效,并且将确定结果作为对询问的响应发送到通信设备5c(步骤s4)。
作为相关技术,已知服务提供商的服务器在证书处理期间向无效确认站服务器进行对属性证书的无效确认请求的系统(例如,专利文献1)。在该系统中,在属性证书并非无效的情况下,验证属性证书与签名密钥之间的关系被建立为正式签名,并且服务提供商的服务器提供服务。还提出了一种权限数据分发设备,该权利数据分发设备确认在无效列表中是否包含经检查具有真实性的证书(例如,专利文献2)。当任何无效列表中都未包含证书时,该设备使得能够导出许可权限数据和导出禁止权限数据。
[引用文献列表]
[专利文献]
[专利文献1]日本专利公开no.2007-295430
[专利文献2]日本专利公开no.2005-275973
技术实现要素:
技术问题
一旦各个服务提供商已经向证书的颁发方询问了每个证书的有效性,就允许证书的颁发方通过询问证书的有效性来指定用户打算使用的服务。由于用户的服务使用状态是有关用户隐私的信息,因此不期望由证书的颁发方指定使用状态。还存在从证书的颁发方泄漏由证书的颁发方指定的服务使用状态的风险。因此,期望的是不由证书的颁发方指定使用证书的用户使用的是哪种服务。作为相关技术描述的技术并没有解决这个问题。
一方面的目的是使得可以以不允许证书的颁发方推测服务使用状态的方式来检查证书的有效性。
问题的解决方案
根据一方面的一种通信程序是在能够与第一通信设备通信的第二通信设备中执行的。所述第二通信设备颁发由所述第一通信设备的用户使用的证书。所述第二通信设备将所述证书的标识信息与能用于对用第一密钥加密的信息进行解密的第二密钥相关联地存储,所述第一通信设备使用所述第一密钥进行加密。在能用所述第二密钥对附接到询问所述标识信息标识的证书是否有效的询问消息的签名信息进行解密的情况下,所述第二通信设备将表示所述标识信息标识的证书是否有效的信息发送到所述第一通信设备。
本发明的有益效果
可以以不允许证书的颁发方推测服务使用状态的方式来检查证书的有效性。
附图说明
图1是描述了用于检查证书有效性的处理的示例的图;
图2是描述了根据实施方式的通信方法的示例的图;
图3是描述了通信设备的配置的示例的图;
图4是描述了通信设备的硬件配置的示例的图;
图5是描述了包含在分布式账本中的公共密钥信息的示例的图;
图6是描述了分发证书的方法的示例的图;
图7是描述了证书有效性的询问处理的示例的图;
图8是描述了证书有效性的通知处理的示例的图;
图9是描述了由颁发证书的通信设备进行的处理的示例的流程图;
图10是描述了服务用户使用的通信设备进行的处理的示例的流程图;
图11是描述了服务提供商使用的通信设备进行的处理的示例的流程图;
图12是描述了根据实施方式的通信方法的示例的图;
图13是描述了第二实施方式中的证书有效性的询问处理的示例的图;
图14是描述了第二实施方式中的证书有效性的通知处理的示例的图;
图15是描述了服务用户使用的通信设备进行的处理的示例的流程图;以及
图16是描述了服务提供商使用的通信设备进行的处理的示例的流程图。
具体实施方式
图2是描述了根据实施方式的通信方法的示例的图。在图2中例示的示例中,通信设备10a至10c已经参与了网络。在图2中,假定通信设备10a是证书的颁发方使用的通信设备10。通信设备10b是要使用服务的用户使用的设备,并且通信设备10c是证书的验证方使用的通信设备10。假定网络中的每个通信设备10都能够获取与其它通信设备10用于加密的秘密密钥配对的公共密钥。可以采用用于获取公共密钥的任何期望方法。
首先,通信设备10a响应于来自通信设备10b的请求而颁发证书。通信设备10a获取作为证书(要认证的主题)的发送目的地的通信设备10b的公共密钥,并且将所获取的公共密钥与关于所颁发证书的标识信息(证书标识信息)相关联并将其记录在证书管理表41中(步骤s11)。通信设备10a将所颁发的证书发送到通信设备10b(步骤s12)。为了使用由使用通信设备10c的验证方提供的服务,通信设备10b的用户将证书从通信设备10b发送到通信设备10c(步骤s13)。
使用通信设备10c的验证方将用于确认证书有效性的询问消息发送到已经将证书发送到通信设备10c的通信设备10b(步骤s14)。询问消息包含关于证书的标识信息。通信设备10b将签名信息附加到接收到的询问消息,并且将带有签名信息的询问消息传送到通信设备10a(步骤s15)。通过使用通信设备10b的秘密密钥对作为询问主题的证书的标识信息进行加密来生成签名信息。
通信设备10a指定与从通信设备10b接收的询问消息中包含的关于证书的标识信息相关联地记录在证书管理表41中的公共密钥。通信设备10a使用指定的公共密钥对签名信息进行解密。在已经通过使用公共密钥对签名信息进行解密而获取了关于证书的标识信息的情况下,通信设备10a确定已经成功对签名信息进行解密。在成功对签名信息进行解密的情况下,通信设备10a识别出已经将包含签名信息的询问消息发送到通信设备10a的设备是已经颁发了证书的通信设备10b。在成功对签名信息进行解密的情况下,通信设备10a将包含证书有效性的通知消息发送到通信设备10b(步骤s16)。通信设备10b将从通信设备10a接收的通知消息传送到通信设备10c(步骤s17)。这允许通信设备10c使用通知消息来确定证书是否有效。
另一方面,在使用与作为询问主题的证书的标识信息关联的公共密钥无法对签名信息进行解密的情况下,通信设备10a不生成包含证书有效性的通知消息。无法对签名信息进行解密的情况包括使用已经获取证书的用户(待认证主题)的通信设备10b持有的秘密密钥没有生成签名信息的情况。因此,在根据实施方式的通信方法中,通信设备10在从已经被颁发证书的通信设备10之外的通信设备接收关于由设备自身所颁发的证书的有效性的询问时,通信设备10不提供证书有效性的通知。为此原因,通过已经被颁发证书的通信设备10来确认证书的有效性。
如图2中例示的,在根据实施方式的通信方法中,通过已经被颁发证书的通信设备10确认证书的有效性。为此原因,已经被颁发证书的通信设备10没有指定将要确定证书有效性的通信设备10(服务提供商的通信设备10)。因此,根据实施方式的通信方法使得可以在证书颁发方未推测已经获取了证书的用户的服务使用状态的情况下通知提供证书有效性服务的验证方。
<设备配置>
图3是描述了通信设备10的配置的示例的图。通信设备10包括通信单元20、控制单元30和存储单元40。通信单元20包括发送单元21和接收单元22。发送单元21将分组发送到诸如其它通信设备10这样的其它设备。接收单元22从诸如其它通信设备10这样的其它设备接收分组。
存储单元40包括证书管理表41和秘密密钥42。当通信设备10颁发证书时,证书管理表41将所颁发的证书的标识信息与在证书分发目的地中使用的公共密钥相关联。秘密密钥42被用于通信设备10中的加密处理。例如,在通信设备10作为生成证书的设备进行操作的情况下,秘密密钥42被用于对所生成证书进行加密。
控制单元30包括颁发处理单元31、加密处理单元32、更新单元33、解密处理单元34、询问处理单元35和通知处理单元36。颁发处理单元31颁发数字证书。在通信设备10作为颁发证书的终端进行操作的情况下,使用颁发处理单元31。加密处理单元32使用秘密密钥42进行加密处理。例如,加密处理单元32对在颁发处理单元31中生成的证书进行加密。加密处理单元32还生成在从证书的发送目的地等已经接收到证书有效性的询问消息的情况下使用的签名信息。更新单元33结合证书的颁发来更新证书管理表41。
解密处理单元34对证书和签名信息进行解密。解密处理单元34还进行获取用于解密处理的公共密钥的处理。例如,在设备共享网络中的分布式账本的系统中,解密处理单元34获取分布式账本中的信息。在网络中的设备从公共密钥服务器获取公共密钥的系统中,解密处理单元34进行诸如生成用于获取公共密钥的请求消息这样的处理。询问处理单元35进行处理,以询问证书的有效性。通知处理单元36进行处理,以生成并传送包含对询问消息的响应的通知消息。
图4是描述了通信设备10的硬件配置的示例的图。通信设备10包括处理器101、存储器102、总线105和网络接口109。通信设备10还可以包括输入装置103、输出装置104,存储设备106和便携式存储介质驱动装置107中的至少一个。
处理器101是任何处理电路,并且可以是例如中央处理单元(cpu)。处理器101作为控制单元30进行操作。处理器101能够执行存储在存储器102、存储装置106等中的程序。存储器102适当地存储通过处理器101的操作获取的数据以及用于处理器101的处理的数据。存储装置106存储程序、数据等,并且适当地将所存储的信息提供给处理器101等。存储器102、存储装置106等作为通信设备10中的存储单元40进行操作。
总线105将处理器101、存储器102、输入装置103、输出装置104、存储装置106、便携式存储介质驱动装置107和网络接口109彼此联接,使得彼此能够进行数据的发送和接收。输入装置103是诸如键盘、鼠标、麦克风或相机这样的任何用于输入信息的装置,并且输出设备104是诸如显示器这样的任何用于输出数据的装置。便携式存储介质驱动装置107能够将存储器102、存储装置106等中的数据输出到便携式存储介质108,并且能够从便携式存储介质108读出程序、数据等。便携式存储介质108可以是任何便携式存储介质,包括可记录光盘(cd-r)和可记录数字通用盘(dvd-r)。网络接口109进行处理,以使通信设备10适当地与其它设备通信。网络接口109作为通信单元20进行操作。
<第一实施方式>
下文中,以已经参与网络的通信设备10共享分布式账本并且使用分布式账本共享诸如公共密钥这样的信息的情况为例进行描述。下文中,描述第一实施方式,同时将其分解为分布式账本中的信息、证书的分发、关于证书有效性的询问以及证书有效性的通知的示例。同样在下面的示例中,通信设备10a是证书的颁发方使用的通信设备10,并且通信设备10b是要使用服务的用户使用的设备。假定通信设备10c是服务提供方使用的通信设备10。
在下面的描述中,为了阐明正在进行处理的通信设备10,有时在通信设备10的单元的参考符号的末尾添加正在进行处理的通信设备10的参考符号的末端处的字母。例如,颁发处理单元31a是通信设备10a的颁发处理单元31,并且解密处理单元34c是通信设备10c的解密处理单元34。
图5是描述了包含在分布式账本中的公共密钥信息的示例的图。图5中例示的公共密钥信息与通信设备、设备id、公共密钥和地址关联。设备id是条目中的指派给通信设备10的标识信息。公共密钥是与条目中的用于被通信设备10加密的秘密密钥配对的公共密钥。地址是条目中的指派给通信设备10的地址。例如,设备id=ida和地址=ipa被指派给通信设备10a,并且与通信设备10a使用的秘密密钥配对的公共密钥是pubkey10。设备id=idb和地址=ipb被指派给通信设备10b,并且与通信设备10b使用的秘密密钥配对的公共密钥是pubkey1。类似地,设备id=idc和地址=ipc被指派给通信设备10c,并且与通信设备10c使用的秘密密钥配对的公共密钥是pubkey2。设备id=idd和地址=ipd被指派给通信设备10d,并且与通信设备10d使用的秘密密钥配对的公共密钥是pubkey3。
图6是描述了分发证书的方法的示例的图。首先,假定已经请求通信设备10a颁发将由通信设备10b的用户使用的证书。可以通过允许通信设备10a的操作者识别请求的任何方法来进行对通信设备10b的用户将使用的证书的颁发的请求。例如,用于颁发证书的请求消息可以从通信设备10b被发送到通信设备10a。可以允许通信设备10a的操作者通过来自通信设备10b的用户的邮件、应用的通知等来识别已经请求颁发供通信设备10的用户使用的证书。在这种情况下,通信设备10a的操作者可以使用通信设备10a的输入装置103输入用于颁发证书的信息(图4)。
颁发处理单元31a通过适当地访问存储在存储单元40a等中的信息来颁发供通信设备10b的用户使用的证书。在图6的示例中,颁发给通信设备10b的用户的证书的标识信息被假定为cred1。加密处理单元32a使用通信设备10a的秘密密钥42a对所颁发的证书进行加密。此后,更新单元33a通过访问分布式账本中的信息来获取成为证书的分发目的地的通信设备10b的公共密钥(图4)。在图6的示例中,假定更新单元33a已经获取了通信设备10b的公共密钥pubkey1。更新单元33a将颁发给通信设备10b的证书的标识信息与通信设备10b的公共密钥相关联,并且将标识信息和公共密钥记录到证书管理表41a中(步骤s21)。通过该处理来记录图6中例示的证书管理表41的第一条目。此后,发送单元21a将所颁发的证书发送到通信设备10b(步骤s22)。
通信设备10b将通过接收单元22b接收的证书适当地存储在存储单元40b中。此后,为了使通信设备10b的用户向通信设备10c申请服务,证书从通信设备10b被发送到通信设备10c(步骤s23)。在通信设备10c中,通过接收单元22c接收证书,并且将证书的数据与关于证书发送方的信息相关联并且将其存储在存储单元40c中。
图7是描述了证书有效性的询问处理的示例的图。通信设备10c的询问处理单元35c生成询问消息,该询问消息包含将被寻址到已经将证书发送到通信设备10c的用户的通信设备10的证书标识信息。在图7的示例中,针对其证书标识信息=cred1的证书的有效性的询问消息被生成以被寻址到通信设备10b。发送单元21c将询问消息发送到通信设备10b(步骤s31)。
在通过接收单元22b获取询问消息之后,通信设备10b的询问处理单元35b提取询问消息中包含的证书标识信息。加密处理单元32b用秘密密钥42b对询问处理单元35b提取的证书标识信息进行加密以生成签名信息(步骤s32)。询问处理单元35b将签名信息附加到从通信设备10c接收的询问消息,以将作为证书颁发方的通信设备10a指定为目的地。签名信息和询问消息被传送到通信设备10a(步骤s33)。
在通过接收单元22a获取询问消息之后,通信设备10a的询问处理单元35a提取包含在询问消息中的证书标识信息。询问处理单元35a通过参照证书管理表41a来指定与证书标识信息相关联地登记的公共密钥(步骤s34、s35)。在图7的示例中,搜索证书管理表41a并且将pubkey1指定为与证书标识信息=cred1关联的公共密钥。询问处理单元35a将与询问消息和所指定公共密钥一起接收到的签名信息输出到解密处理单元34a。解密处理单元34a使用所提供的公共密钥对签名信息进行解密,以验证是否已经从作为证书分发目的地的通信设备10接收到询问消息(步骤s36)。在通过使用公共密钥对签名信息进行解密而获得的信息与作为询问主题的证书的标识信息一致的情况下,解密处理单元34a确定已经从作为证书分发目的地的通信设备10接收到询问消息。在图7的示例中,假定已经通过使用公钥pubkey1对签名信息进行解密获得了cred1,cred1是作为询问主题的证书的标识信息。然后,通知处理单元36a确定已经从作为证书分发目的地的通信设备10b接收到其标识信息=cred1的证书的询问消息。
由于验证成功,所以通知处理单元36a执行处理,以生成包含证书的有效性(状态)的通知消息。通知处理单元36a将以下信息附加到通知消息。
颁发方的标识信息:ida(通信设备10a)
证书标识信息:cred1
状态:有效
通知处理单元36a将证书标识信息和证书的状态输出到加密处理单元32a。加密处理单元32a用秘密密钥42a对证书标识信息和状态进行加密以生成签名信息(步骤s37)。通知处理单元36a将通知消息和签名信息输出到发送单元21a,以发送它们。通知处理单元36a将通信设备10b指定为通知消息的目的地,以便生成作为对询问消息的响应的通知消息。
图8是描述了证书有效性的通知处理的示例的图。通信设备10a的发送单元21a将通知消息发送到通信设备10b(步骤s41)。通信设备10b的通知处理单元36b从通知消息获取颁发方的标识信息,以获取颁发方的公共密钥。在图8的示例中,由于在通知消息中包含颁发方的标识信息=ida,因此通知处理单元36b识别出颁发方是通信设备10a。通知处理单元36b获取通信设备10a的公共密钥pubkey10。通知处理单元36b将公共密钥pubkey10和附加在通知消息上的签名信息输出到解密处理单元34b。解密处理单元34b使用公共密钥pubkey10对签名信息进行解密。假定通过对签名信息进行解密而获得的数据是证书标识信息=cred1和状态=有效的组合。通知处理单元36b确定对通知消息的验证已经成功(步骤s42)。
通知处理单元36b将通知消息中包含的证书标识信息与在步骤s33中传送到通信设备10a的询问消息中包含的证书标识信息进行比较(图7)。在图8的示例中,假定通知消息中包含的证书标识信息与询问消息中的证书标识信息一致。通知处理单元36b确定将通知消息作为对询问消息的响应进行传送,并且通过发送单元21b将通知消息传送到通信设备10c(步骤s43)。
通信设备10c的通知处理单元36c从通知消息获取颁发方的标识信息,并且获取已经颁发证书的通信设备10a的公共密钥pubkey10。解密处理单元34c使用公共密钥pubkey10对签名信息进行解密。通知处理单元36c将通过对签名信息进行解密而获得的数据中包含的证书标识信息与通知消息中包含的证书标识信息进行比较,以确定验证是否已经成功。假定通过对签名信息进行解密而获得的信息是证书标识信息=cred1和状态=有效的组合,并且通过对签名信息进行解密而获得的信息与通知消息中的信息一致。通知处理单元36c确定使用签名信息进行的验证已经成功(步骤s44)。
此后,通知处理单元36c将作为询问主题的证书的标识信息与包含在通知消息中的证书的标识信息进行比较(步骤s45)。作为询问主题的证书的标识信息是询问消息中的证书标识信息。在作为询问主题的证书的标识信息与通知消息中包含的证书标识信息一致的情况下,通知处理单元36c确定已经提供了所询问的证书的有效性。因此,通信设备10c使用接收到的有效性执行以下处理。例如,在证书有效的情况下,使解密处理单元34c能够使用证书颁发方的公共密钥解密证书,并且指定经证书证明的内容。
图9是描述了由颁发证书的通信设备10进行的处理的示例的流程图。在参照图6至图8描述的示例中,通信设备10a进行图9中例示的处理。
颁发处理单元31颁发证书。更新单元33a通过访问分布式账本中的信息来获取作为证书的分发目的地的通信设备10b的公共密钥。更新单元33将成为证书分发目的地的通信设备10的公共密钥和证书的标识信息登记到证书管理表41中(步骤s51)。发送单元21将证书发送到作为分发目的地的通信设备10(步骤s52)。发送单元21可以发送使用秘密密钥42加密的证书。
假定此后,接收单元22已经接收到询问消息(步骤s53)。询问处理单元35确定是否可以使用询问消息中包含的证书标识信息从证书管理表41中获取公共密钥作为密钥(步骤s54)。在证书管理表41中不存在与询问消息中包含的证书标识信息关联的公共密钥的情况下,在询问消息中询问其有效性的证书不是自身设备生成的证书(步骤s54中的“否”)。询问处理单元35结束处理。因此,在步骤s54中为“否”的情况下,不发送响应于询问消息的通知消息。
在已经从证书管理表41获取与询问消息中包含的证书标识信息关联的公共密钥的情况下,在询问消息中询问其有效性的证书是自身设备生成的证书(步骤s54中的“是”)。通知处理单元36使用解密处理单元34使用公共密钥对询问消息进行解密的结果进行验证处理(步骤s55)。在验证失败的情况下,由于尚未从作为证书分发目的地的通信设备10发送询问消息,因此询问处理单元35结束处理(步骤s56中为“否”)。
另一方面,假定询问消息的验证已经成功(步骤s56中为“是”)。在这种情况下,已经从作为证书分发目的地的通信设备10发送了询问消息。通知处理单元36使用秘密密钥42来生成包含询问消息中包含的证书标识信息、证书的状态和颁发方的标识信息的通知消息(步骤s56、步骤s57中的“是”)。发送单元21将通知消息发送到作为证书分发目的地的通信设备10(步骤s58)。
图9中例示的处理是示例,并且可以按照实现方式进行改变。例如,在步骤s54或s56中的“否”的情况下,询问处理单元35可以将错误的询问消息通知给发送方。
图10是描述了服务用户使用的通信设备进行的处理的示例的流程图。在参照图6至图8描述的示例中,通信设备10b进行图10中例示的处理。
已经请求颁发证书的用户使用的通信设备10的接收单元22接收证书(步骤s61)。接收到的证书与关于作为证书颁发方的通信设备10的信息相关联地存储在存储单元40中。发送单元21将证书发送到提供服务的验证方的通信设备10(步骤s62)。
假定此后已经从提供服务的验证方的通信设备10接收到对证书的询问消息(步骤s63)。加密处理单元32使用秘密密钥42对询问消息中的证书标识信息进行加密,以生成签名(步骤s64)。发送单元21将询问消息和签名发送到作为证书颁发方的通信设备10(步骤s65)。
此后,接收单元22接收从证书颁发方的通信设备10发送的通知消息(步骤s66)。通知处理单元36确定使用与证书颁发方的通信设备10关联的公共密钥进行的通知消息验证是否已经成功(步骤s67)。在进行通知消息验证时,解密处理单元34用与证书颁发方的通信设备10关联的公钥对附加到通知消息的签名信息进行解密。通知处理单元36c将通过对签名信息进行解密而获得的信息与通知消息中的信息进行比较,以确定验证是否已经成功。当通知消息的验证失败时,通知处理单元36结束处理(步骤s67中的“否”)。
当通知消息的验证成功时,通知处理单元36确定通知消息中的证书标识信息是否与在步骤s63中接收到的询问消息中的证书标识信息一致(步骤s67、步骤s68中的“是”)。在通知消息中的证书标识信息与询问消息中的证书标识信息不一致的情况下,通知处理单元36结束处理(步骤s68中的“否”)。
另一方面,在通知消息中的证书标识信息与询问消息中的证书标识信息一致的情况下,通知消息包含通过询问消息询问的证书的有效性(步骤s68中的“是”)。通知处理单元36通过发送单元21将通知消息发送到验证方的通信设备10(步骤s69)。
图10中例示的处理是示例,并且可以按照实现方式进行改变。例如,在步骤s67或s68中的“否”的情况下,通知处理单元36可以将错误的通知消息通知给源通信设备。
图11是描述了服务提供商使用的通信设备进行的处理的示例的流程图。在参照图6至图8描述的示例中,通信设备10c进行图11中例示的处理。
询问处理单元35将包含作为询问主题的证书的标识信息的询问消息发送到证书的发送方的通信设备10(服务用户使用的通信设备10)(步骤s71)。
假定此后,接收单元22已经接收到通知消息(步骤s72)。通知处理单元36使用从证书颁发方的通信设备10的标识信息中指定的公共密钥来验证通知消息(步骤s73)。在进行通知消息验证时,解密处理单元34用与证书颁发方的通信设备10关联的公钥对附加到通知消息的签名信息进行解密。通知处理单元36c将通过对签名信息进行解密而获得的信息与通知消息中的信息进行比较,以确定验证是否已经成功。在验证失败的情况下,由于存在通知消息已经被篡改的可能性,因此通知处理单元36结束处理(步骤s74中的“否”)。
另一方面,在验证成功的情况下,通知消息未被篡改(步骤s74中的“是”)。通知处理单元36确定询问消息中的证书标识信息与通知消息中的证书标识信息是否一致(步骤s75)。在询问消息中的证书标识信息与通知消息中的证书标识信息不一致的情况下,由于未提供与作为询问主题的证书有效性有关的信息,因此通知处理单元36结束处理(步骤s75中的“否”)。
在询问消息中的证书标识信息与通知消息中的证书标识信息一致的情况下,提供与作为询问主题的证书有效性有关的信息(步骤s75中的“是”)。通知处理单元36获取通知消息中的状态信息(步骤s76)。
如上所述,在根据实施方式的通信方法中,通过已经被颁发证书的通信设备10确认证书的有效性。这使得旨在确定证书有效性的通信设备10可以获取证书的有效性,而不允许证书颁发方的其它通信设备10指定设备旨在获取证书的有效性。在以上描述中,已经以存在一种提供服务的验证方的情况为例进行了描述,即使当在网络中存在多个提供服务的验证方时,也实现相同的效果。
图12是描述了根据实施方式的通信方法的示例的图。在图12的示例中,通信设备10a至10e被包含在网络中。假定通信设备10c是提供服务a的验证方的通信设备10,并且通信设备10d是提供服务b的验证方的通信设备10。通信设备10e是提供服务c的验证方的通信设备10。通信设备10a是证书的颁发方使用的通信设备10,并且假定通信设备10b的用户已经使用通信设备10a从颁发方获取了证书。假定使用通信设备10b的用户已经将证书发送到通信设备10c至10e,以便使用服务a至c。
在图12的情况下,通信设备10c至10e中的每一个执行询问处理,以确认证书的有效性,并且所有通信设备10c至10e都向通信设备10b发送询问消息(箭头a1至a3)。对于从通信设备10c至10e中的任一个接收的询问消息,通信设备10b将询问消息与使用秘密密钥42b生成的签名一起传送到作为证书颁发方的通信设备10a(箭头a4)。因此,在未指定使用通信设备10b的用户打算使用的服务的情况下,使用通信设备10a的颁发方将证书的有效性通知给通信设备10b。通信设备10b将包含关于证书有效性的信息的通知消息传送到询问消息的发送方。因此,根据实施方式的通信方法使得已经获取证书的用户可以在证书颁发方未推测用户的服务使用状态的情况下通知提供证书有效性服务的验证方。
由于证书颁发方的签名也被附加到通知消息,因此当从用户的通信设备10传送通知消息时,也传送签名。这使得验证方的通信设备10c至10e可以确定通知消息是否已经被篡改从而验证通知消息。因此,尽管通过用户的通信设备10b传送通知消息,但在通信设备10b已经被通知消息篡改的情况下,当验证方的通信设备10验证通知消息时,发生错误。因此,不允许用户篡改通知消息。
<第二实施方式>
在第一实施方式中,通知消息与已经引起通知消息问题的询问消息不关联。因此,已经接收到对证书有效性的询问消息的通信设备10有可能利用作为对过去经处理的另一询问消息的响应发送的通知消息作为对接收到的询问消息的响应。
例如,假定通信设备10b将经证书标识信息=cred1标识的证书发送到通信设备10c和通信设备10d二者。假定此后,从通信设备10c发送询问消息m1,以询问证书标识信息=cred1的证书的有效性。假定如第一实施方式中所述地处理询问消息m1,使得通知消息m2从通信设备10a被发送到通信设备10b。允许通信设备10b将通知消息m2作为对询问消息m1的响应发送到通信设备10c。假定此后,向通信设备10b发送询问消息m3,以便通信设备10d询问证书标识信息=cred1的证书的有效性。此时,通信设备10b可以将通知消息m2发送到通信设备10d,而没有将询问消息m3传送到通信设备10a。在这种情况下,通信设备10d将通知消息m2作为对询问消息m3的响应进行处理。
当利用通知消息并且对于发送询问消息m1的时间和发送询问消息m3的时间而言证书标识信息=cred1的证书的有效性不同时,发生问题。例如,当在发送询问消息m1时证书标识信息=cred1的证书有效时,将状态=有效的信息添加到通知消息m2。假定此后,尽管在发送询问消息m3时证书标识信息=cred1的证书变得无效,通信设备10b也将通知消息m2作为对询问消息m3的响应传送到通信设备10d。通信设备10d错误地识别证书标识信息=cred1的证书的有效性。
在第二实施方式中,描述了利用随机值(随机数)使得作为对第一询问消息的响应而获得的通知消息不被用作对第二询问消息的响应的实施方式。
同样,在第二实施方式中,颁发和分发证书的处理与第一实施方式中的相同。同样,在第二实施方式中,假定证书的颁发方使用通信设备10a并且使用服务的用户使用通信设备10b。假定服务提供方使用通信设备10c。
图13是描述了第二实施方式中的针对证书有效性的询问处理的示例的图。下文中,假定已经发生了针对由证书标识信息=cred1标识的证书的有效性的询问。假定在发生询问时,通信设备10a具有图13中例示的证书管理表41a。
通信设备10c的询问处理单元35生成可用于标识询问消息的随机数。应该认为随机数是通过任何已知方法生成的。假定已经生成了noncea的值作为随机数值。在这种情况下,如下所述,询问处理单元35c生成包含证书标识信息和随机数的询问消息。
证书标识信息:cred1
随机数:noncea
询问处理单元35c将所生成的询问消息发送到作为证书发送方的通信设备10b(步骤s81)。
通信设备10b的加密处理单元32b用秘密密钥42b对接收到的询问消息中包含的随机数和证书标识信息进行加密,以生成签名信息(步骤s82)。询问处理单元35b将从通信设备10c接收的询问消息和签名信息传送到通信设备10a(步骤s83)。
在通过接收单元22a获取询问消息和签名信息之后,通信设备10a的询问处理单元35a从询问消息中提取证书标识信息和随机数。询问处理单元35a通过参照证书管理表41a来指定与证书标识信息关联的公共密钥(步骤s84、s85)。第二实施方式中的指定公共密钥的方法与第一实施方式中的相同。在图13的示例中,假定指定了公共密钥pubkey1。解密处理单元34a使用所指定的公共密钥对签名信息进行解密并且将签名信息与询问消息中的信息进行比较,以验证是否已经从作为证书分发目的地的通信设备10接收到询问消息(步骤s86)。当询问消息中的证书标识信息和随机数的组合与通过解密处理而获得的信息一致时,解密处理单元34a确定已经从作为证书分发目的地的通信设备10接收到询问消息。
在询问消息中的证书标识信息和随机数的组合与通过解密处理而获得的信息一致的情况下,通知处理单元36a执行处理,以生成包含证书标识信息、随机数值和证书有效性的通知消息。假定已经生成了包含以下信息的通知消息。
颁发方的标识信息:ida(通信设备10a)
证书标识信息:cred1
随机数:noncea
状态:有效
加密处理单元32a用秘密密钥42a对证书标识信息、随机数和状态的组合进行加密以生成签名信息(步骤s87)。
图14是描述了第二实施方式中的证书有效性的通知处理的示例的图。通信设备10a的发送单元21a将通知消息和签名信息发送到通信设备10b(步骤s91)。
通信设备10b的通知处理单元36b通过与第一实施方式中相同的处理从通知消息中获取颁发方的标识信息,以获取颁发方的公共密钥。在图14的示例中,指定了通信设备10a的公共密钥pubkey10。解密处理单元34b使用公共密钥pubkey10对连同通知消息一起接收的签名信息进行解密。假定通过对签名信息进行解密而获得的数据与证书标识信息=cred1、随机数=noncea、状态=有效的组合一致。通知处理单元36b确定对通知消息的验证已经成功(步骤s92)。
通知处理单元36b将通知消息中包含的证书标识信息和随机数的组合与在步骤s83中传送到通信设备10a的询问消息中包含的证书标识信息和随机数的组合进行比较(图13)。在图14的示例中,假定通知消息中包含的证书标识信息和随机数的组合与询问消息中的证书标识信息和随机数的组合一致。通知处理单元36b通过发送单元21b将通知消息传送到通信设备10c(步骤s93)。与通知消息一起发送的签名信息也被传送到通信设备10c。
通信设备10c的通知处理单元36c从通知消息获取颁发方的标识信息,以获取已经颁发证书的通信设备10a的公共密钥pubkey10。解密处理单元34c使用公共密钥pubkey10对签名信息进行解密。当通过对签名信息进行解密而获得的数据中包含的证书标识信息和随机数的组合与通知消息中包含的证书标识信息和随机数的组合一致时,通知处理单元36c确定验证已经成功。假定通知处理单元36c确定使用签名信息进行的验证已经成功(步骤s94)。
通知处理单元36c将通知消息中的证书标识信息和随机数的组合与在图13的步骤s81中发送的询问消息中包含的证书标识信息和随机数的组合进行比较(步骤95)。例如,在图14的情况下,通知消息包含证书标识信息=cred1和随机数=noncea。另一方面,图13的步骤s81中的通信设备10c发送的用于询问由证书标识信息=cred1标识的证书的有效性的询问消息中包含的随机数也是noncea。在通知消息中的证书标识信息和随机数的组合与询问消息中包含的证书标识信息和随机数的组合一致的情况下,通知处理单元36c确定已经提供了所询问证书的有效性。因此,通信设备10c使用接收到的有效性进行以下处理。
另一方面,在对于通知消息和询问消息而言证书标识信息和随机数值的组合不一致的情况下,通信设备10未接收到响应于自身设备发送的询问消息而生成的通知消息。例如,假定询问消息包含证书标识信息=cred1和随机数=noncea,而通知消息包含证书标识信息=cred1和随机数=nonceb。在这种情况下,对于询问消息和通知消息而言,随机数的值不一致。通知处理单元36c因此被允许指定已经传送了通知消息的通信设备10b利用了过去针对证书标识信息=cred1而获取的通知消息。在这种情况下,通知处理单元36c不使用通知消息中的表示有效性的信息作为所询问的证书的状态。
图15是描述了服务用户使用的通信设备进行的处理的示例的流程图。在参照图13至图14描述的示例中,通信设备15b进行图15中例示的处理。步骤s101至s103中的处理与参照图10描述的步骤s61至s63中的处理相同。
加密处理单元32使用秘密密钥42对询问消息中的证书标识信息和随机数进行加密,以生成签名(步骤s104)。发送单元21将询问消息和签名发送到作为证书颁发方的通信设备10(步骤s105)。
此后,接收单元22接收从证书颁发方的通信设备10发送的通知消息(步骤s106)。通知处理单元36确定使用与证书颁发方的通信设备10关联的公共密钥进行的通知消息验证是否已经成功(步骤s107)。在通知消息的验证失败的情况下,由于存在通知消息已经被篡改的可能性,因此通知处理单元36结束处理(步骤s107中的“否”)。
另一方面,在通知消息验证成功的情况下,通知消息未被篡改(步骤s107中的“是”)。通知处理单元36确定通知消息中的证书标识信息和随机数的组合与在步骤s103中接收的询问消息中的证书标识信息和随机数的组合是否一致(步骤108)。在对于通知消息和询问消息而言证书标识信息和随机数的组合不一致的情况下,由于未生成响应于所发送的询问消息而生成的通知消息,因此通知处理单元36结束处理(步骤s108中的“否”)。
另一方面,在对于通知消息和询问消息而言证书标识信息和随机数的组合一致的情况下,接收到响应于所发送的询问消息而生成的通知消息(步骤s108中的“是”)。通知处理单元36通过发送单元21将通知消息发送到验证方的通信设备10(步骤s109)。
图15中例示的处理是示例,并且可以按照实现方式进行改变。例如,可以修改处理,使得在步骤s107或s108中的“否”的情况下,通知处理单元36可以将错误的通知消息通知给发送方。
图16是描述了服务提供商使用的通信设备进行的处理的示例的流程图。在参照图13至图14描述的示例中,通信设备10c进行图16中例示的处理。
询问处理单元35将包含随机数和作为询问主题的证书的标识信息的询问消息发送到证书的发送方的通信设备10(服务用户使用的通信设备10)(步骤s121)。步骤s122至s124中的处理与参照图11描述的步骤s72至s74中的处理相同。
在步骤s124中验证已经成功的情况下,通知消息未被篡改(步骤s124中的“是”)。通知处理单元36确定询问消息中的证书标识信息和随机数的组合与通知消息中的证书标识信息和随机数的组合是否一致(步骤125)。在对于询问消息和通知消息而言证书标识信息和随机数的组合不一致的情况下,没有接收到响应于所发送的询问消息而生成的通知消息(步骤s125中的“否”)。在这种情况下,通知消息的传送方的通信设备10(用户的通信设备10)利用了过去接收的通知消息。通知处理单元36a结束通知消息的处理。
另一方面,在对于询问消息和通知消息而言证书标识信息和随机数的组合一致的情况下,接收到响应于所发送的询问消息而生成的通知消息(步骤s125中的“是”)。通知处理单元36a获取通知消息中的状态信息(步骤s126)。
如上所述,在根据第二实施方式的通信方法中,询问消息包含与其它询问消息的随机数不同的随机数。证书颁发方的通信设备10将已经触发了通知消息生成的询问消息中的证书标识信息和随机数添加到通知消息中。在与询问消息中的随机数不同的随机数被添加到通知消息的情况下,进行验证处理的通信设备10被允许确定未接收到响应于所发送询问消息而生成的通知消息。因此,在第二实施方式中,即使当证书标识信息相同时,也不利用响应于过去传送的询问消息而生成的通知消息。这使得不可能通过利用通知消息来伪造证书的有效性。
同样,在根据第二实施方式的通信方法中,通过已经被颁发证书的通信设备10确认证书的有效性。这使得旨在确定证书有效性的通信设备10可以获取证书的有效性,而不允许证书颁发方的其它通信设备10指定设备旨在获取证书的有效性。
<其它>
实施方式不限于以上,并且可以进行各种修改。以下,将描述其一些示例。
尽管在以上描述中已经以使用分布式账本共享公共密钥的系统为例进行了描述,但是根据实施方式的通信方法可以通过网络中的设备从公共密钥服务器获取公共密钥的系统来实现。在包括公共密钥服务器的系统中,不必在通信设备10的网络中共享分布式账本。
上述表、消息、数字证书等的格式仅是示例,并且可以根据实现方式进行改变。例如,表、消息和数字证书可以包括除了上述信息元素之外的信息元素,并且可以不包括所例示信息元素中的一些。
在以上描述中,为了容易理解,分别描述了由通信设备10执行的处理,但是任何通信设备10都可以颁发、发送和验证数字证书。
本文中提供的所有示例和条件语言意图是帮助读者理解本发明和发明人为进一步发展本领域而贡献的构思的教学目的,并且不应该被解释为对这种具体列举的示例和条件的限制,也不应该被解释为是与表明本发明的优劣相关的说明书中的这些示例的组织。虽然已经详细描述了本发明的一个或更多个实施方式,但是应该理解,可以在不脱离本发明的精神和范围的情况下,对其进行各种改变、替换和更改。
1.一种通信方法,该通信方法使能够与第一通信设备通信的第二通信设备执行以下过程:
颁发由所述第一通信设备的用户使用的证书;
将所述证书的标识信息与第二密钥相关联地存储,所述第二密钥能用于对用第一密钥加密的信息进行解密,所述第一通信设备使用所述第一密钥进行加密;以及
当能用所述第二密钥对附接到询问所述标识信息标识的证书是否有效的询问消息的签名信息进行解密时,将表示所述标识信息标识的证书是否有效的信息发送到所述第一通信设备。
2.根据权利要求1所述的通信方法,其中,
其它标识信息被包含在通过用所述第二密钥对所述签名信息进行解密而获得的解密数据中,并且
所述通信方法使所述第二通信设备执行以下过程:
当所述询问消息中包含的所述标识信息与所述其它标识信息一致时,确定能用所述第二密钥对所述签名信息进行解密。
3.根据权利要求1所述的通信方法,其中,
所述询问消息包含对于不同询问消息而言不同的第一值,
其它标识信息和第二值被包含在通过用所述第二密钥对所述签名信息进行解密而获得的解密数据中,并且
所述通信方法使所述第二通信设备执行以下过程:
当所述询问消息中包含的所述标识信息与所述其它标识信息一致并且所述第二值与所述第一值一致时,确定能使用所述第二密钥对所述签名信息进行解密;以及
将表示所述标识信息标识的证书是否有效的信息与所述第一值彼此关联的信息通知给所述第一通信设备。
4.根据权利要求1至3中任一项所述的通信方法,其中,
当不能用与所述标识信息关联的所述第二密钥对所述签名信息进行解密时,所述第二通信设备不将表示所述标识信息标识的证书是否有效的信息通知给所述第一通信设备。
5.一种通信方法,所述通信方法使打算使用服务的用户使用的第一通信设备执行以下过程:
从第二通信设备获取用于应用于所述服务的证书,所述第二通信设备能够获取第二密钥,所述第二密钥能够对所述第一通信设备使用第一密钥加密的信息进行解密;
将所述证书发送到提供所述服务的第三通信设备;
当接收到包含所述证书的标识信息并询问所述证书的有效性的询问消息时,将通过使用所述第一密钥对所述标识信息进行加密而获得的签名信息和所述询问消息发送到所述第二通信设备;以及
当通知消息通知所述标识信息标识的证书的有效性时,将所述通知消息发送到所述第三通信设备。
6.根据权利要求5所述的通信方法,所述通信方法使所述第一通信设备执行以下的过程:
当从所述第二通信设备接收到所述通知消息时,确定第一标识信息与第二标识信息是否一致,所述第一标识信息标识已经通过所述通知消息提供了其有效性的证书,所述第二标识信息标识已经通过所述询问消息询问了其有效性的证书;以及
当确定所述第一标识信息与所述第二标识信息一致时,将所述通知消息发送到所述第三通信设备。
7.根据权利要求6所述的通信方法,其中,
所述询问消息包含对于不同询问消息而言不同的第一值,
所述通信方法使所述第一通信设备执行以下过程:
当从所述第二通信设备接收到所述通知消息时,进一步确定所述第一值与所述通知消息中包含的第二值是否一致;以及
当所述第一标识信息与所述第二标识信息一致并且所述第一值与所述第二值一致时,将所述通知消息发送到所述第三通信设备。
8.一种通信方法,所述通信方法包括以下步骤:
使已经颁发第一通信设备的用户使用的证书的第二通信设备将所述证书的标识信息与第二密钥相关联地存储,所述第二密钥能用于对用第一密钥加密的信息进行解密,所述第一通信设备使用所述第一密钥进行加密;以及
使所述第一通信设备在从作为所述证书的发送目的地的第三通信设备接收到询问所述证书的有效性的询问消息后,将通过使用所述第一密钥对所述证书的标识信息进行加密而获得的签名信息和所述询问消息发送到所述第二通信设备;以及
使所述第二通信设备在能用所述第二密钥对所述签名信息进行解密的情况下将表示所述标识信息标识的证书的有效性的信息发送到所述第一通信设备。
9.一种被配置为与第一通信设备通信的通信设备包括:
处理器,该处理器被配置为颁发由所述第一通信设备的用户使用的证书;以及
存储器,该存储器被配置为将所述证书的标识信息与第二密钥相关联地存储,所述第二密钥能用于对用第一密钥加密的信息进行解密,所述第一通信设备使用所述第一密钥进行加密;以及
发送器,该发送器被配置为当能用所述第二密钥对附接到询问所述标识信息标识的证书是否有效的询问消息的签名信息进行解密时,将通知发送到所述第一通信设备,所述通知包含表示所述标识信息标识的证书是否有效的信息。
技术总结