通信程序、通信方法、通信设备及通信系统转让专利

申请号 : CN202010888123.9

文献号 : CN112448818A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 铃木大

申请人 : 富士通株式会社

摘要 :

通信程序、通信方法、通信设备及通信系统。一种通信程序,其使能够获取在网络中共享的分布式账本中的信息的第一设备执行以下处理:从第二设备获取第二设备的用户向第一设备进行申请所使用的一个或更多个数字证书;通过使用分布式账本,来获取标识用户以及由一个或更多个数字证书所证明的信息的类型的组合的类型信息;获取与类型信息相关联地记录在分布式账本中的证书发布历史;以及确定发布历史是否包含尚未从第二设备获取的另一数字证书的信息。

权利要求 :

1.一种通信程序,该通信程序使能够获取在网络中共享的分布式账本中的信息的第一设备执行以下处理:从第二设备获取所述第二设备的用户向所述第一设备进行申请所使用的一个或更多个数字证书;

通过使用所述分布式账本来获取标识所述用户以及由所述一个或更多个数字证书所证明的信息的类型的组合的类型信息;

获取与所述类型信息相关联地记录在所述分布式账本中的证书发布历史;以及确定所述发布历史是否包含尚未从所述第二设备获取的另一数字证书的信息。

2.根据权利要求1所述的通信程序,该通信程序使所述第一设备执行以下处理:在所述发布历史包含尚未从所述第二设备获取的另一数字证书的信息的情况下,确定存在所述用户关于所述类型的信息所获取的数字证书的一部分被隐藏的可能性。

3.根据权利要求1或2所述的通信程序,其中,

在所述用户获取所述一个或更多个数字证书之前,将所述类型信息登记在所述分布式账本中,所述一个或更多个数字证书中的每一个与所述类型信息相关联地生成,并且关于所述一个或更多个数字证书中的每一个的发布信息与所述类型信息相关联地记录在所述分布式账本中。

4.根据权利要求1或2所述的通信程序,其中,

在所述用户获取所述一个或更多个数字证书之前,将通过利用由所述第二设备使用的秘密密钥对所述类型信息进行加密而获得的加密信息登记到所述分布式账本中,由已经获取了与来自所述第二设备的所述秘密密钥配对的公共密钥的设备,与通过利用所述公共密钥对所述加密信息进行解密所生成的所述类型信息相关联地生成所述一个或更多个数字证书中的每一个,并且关于所述一个或更多个数字证书中的每一个的发布信息与所述类型信息相关联地记录在所述分布式账本中。

5.根据权利要求4所述的通信程序,该通信程序还使所述第一设备执行以下处理:从所述第二设备获取所述公共密钥;

通过利用所述公共密钥对所述加密信息进行解密来获取所述类型信息;以及获取与所述类型信息相关联的所述发布信息的列表,作为所述发布历史。

6.一种通信程序,该通信程序使获取数字证书以用于向第一设备进行申请的第二设备执行以下处理,该第一设备能够获取在网络中共享的分布式账本中的信息:生成类型信息,该类型信息能够唯一地指定所述第二设备的用户和用于向所述第一设备进行申请的信息的类型的组合;

将所述类型信息登记到所述分布式账本中;

获取数字证书,该数字证书证明关于所述用户针对所述类型的信息并且具有在所述分布式账本中与所述类型信息相关联的发布信息;以及向所述第一设备发送所述数字证书。

7.一种通信方法,该通信方法包括以下步骤:

使获取向第一设备进行申请所使用的数字证书的第二设备在分布式账本中登记类型信息,该第一设备能够获取在网络中共享的所述分布式账本中的信息,所述类型信息能够唯一地指定所述第二设备的用户以及向所述第一设备进行申请所使用的信息的类型的组合;

使发布所述数字证书的第三设备从所述分布式账本中获取所述类型信息,然后向所述第二设备发送关于所述类型信息的数字证书,并将所述第三设备发布的所述数字证书的发布信息与所述类型信息相关联地记录到所述分布式账本中;

使所述第二设备向所述第一设备发送针对所述申请所使用的所述数字证书;以及使所述第一设备确定所述分布式账本中的与所述类型信息相关联的所述发布信息的列表是否包含未从所述第二设备获取的另一数字证书的信息。

8.一种能够获取在网络中共享的分布式账本中的信息的通信设备,该通信设备包括:存储器;以及

控制器,该控制器联接至所述存储器并被配置为:

从另一设备获取所述另一设备的用户向该通信设备进行申请所使用的一个或更多个数字证书,通过使用所述分布式账本来获取标识所述用户以及由所述一个或更多个数字证书所证明的信息的类型的组合的类型信息,获取在所述分布式账本中与所述类型信息相关联地记录的证书发布历史,并且确定所述发布历史是否包含尚未从所述另一设备获取的另一数字证书的信息。

9.一种通信系统,该通信系统包括:

第一通信设备,该第一通信设备被配置为获取在网络中共享的分布式账本中的信息;

以及

第二通信设备,该第二通信设备被配置为获取共享的所述分布式账本中的信息,其中,所述第一通信设备还被配置为:从所述第二通信设备获取所述第二通信设备的用户向所述第一通信设备进行申请所使用的一个或更多个数字证书,通过使用所述分布式账本来获取标识所述用户以及由所述一个或更多个数字证书所证明的信息的类型的组合的类型信息,获取在所述分布式账本中与所述类型信息相关联地记录的证书发布历史,并且确定所述发布历史是否包含尚未从所述第二通信设备获取的另一数字证书的信息,并且所述第二通信设备还被配置为:

生成能够唯一地指定所述第二通信设备的所述用户以及向所述第一通信设备进行申请所使用的信息的类型的组合的类型信息,将所述类型信息登记到所述分布式账本中,

获取数字证书,该数字证书证明关于所述用户针对所述类型的信息并且具有在所述分布式账本中与所述类型信息相关联的发布信息,以及向所述第一通信设备发送所述数字证书。

说明书 :

通信程序、通信方法、通信设备及通信系统

技术领域

[0001] 本文讨论的实施方式涉及通信程序、通信方法、通信设备、通信系统。

背景技术

[0002] 当使用诸如申请信用卡、开设银行账户和购买保险之类的各种服务时,服务用户有时会向服务提供方出示数字证书。数字证书可以由证书权威机构发布。在这种情况下,证书权威机构对用户执行身份确认等,并基于结果发布证书。用户向服务提供方出示所获得的数字证书。
[0003] 近年来,作为实现虚拟货币的平台而出现的分布式账本技术引起了关注。在没有系统中央管理员的情况下,使用分布式账本可以抑制信息被篡改,并且还正在研究应用于虚拟货币之外的领域。
[0004] 作为相关技术,已知一种用于从身份提供方获得用于访问依赖方的服务的令牌的方法(例如,专利文献1)。
[0005] [引用文献列表]
[0006] [专利文献]
[0007] [专利文献1]日本国际专利申请公开No.2011-525028

发明内容

[0008] 技术问题
[0009] 服务提供方基于服务用户所出示的数字证书来识别用户的状态,并提供服务。为此,当服务用户已经获取了多个数字证书时,用户可以向服务提供方出示对用户有利的证书,同时隐藏不利证书的存在。在这种情况下,存在以下风险:服务提供方以对用户有利的方式错误地识别了用户的状态,并且根据错误识别的状态来提供服务。
[0010] 一方面的目的是检测由服务用户对数字证书的隐藏。
[0011] 技术方案
[0012] 一种通信程序,该通信程序使能够获取在网络中共享的分布式账本中的信息的第一设备执行以下处理:从第二设备获取第二设备的用户向第一设备进行申请所使用的一个或更多个数字证书;通过使用分布式账本,来获取标识用户以及由一个或更多个数字证书所证明的信息的类型的组合的类型信息;获取与类型信息相关联地记录在分布式账本中的证书发布历史;以及确定发布历史是否包含尚未从第二设备获取的另一数字证书的信息。
[0013] 技术效果
[0014] 可以检测服务用户对数字证书的隐藏。

附图说明

[0015] 图1是描述根据一个实施方式的通信方法的示例的图;
[0016] 图2是描述通信设备的配置的示例的图;
[0017] 图3是描述通信设备的硬件配置的示例的图;
[0018] 图4是描述分布式账本中包含的公共密钥信息的示例的图;
[0019] 图5是描述类别ID的登记处理的示例的序列图;
[0020] 图6是描述当发布证书时进行的处理的示例的序列图;
[0021] 图7是描述关于证书完整性的验证处理的示例的序列图;
[0022] 图8是描述通信设备进行的验证处理的示例的流程图;
[0023] 图9是描述对类别ID进行加密所使用的密钥信息的示例的图;
[0024] 图10是描述第二实施方式中所使用的类别ID列表的示例的图;
[0025] 图11是描述类别ID的登记处理的示例的序列图;
[0026] 图12是描述当发布证书时进行的处理的示例的序列图;
[0027] 图13是描述对证书完整性的验证处理的示例的序列图;
[0028] 图14是描述由通信设备进行的验证处理的示例的流程图;以及
[0029] 图15是描述第二实施方式中的通信处理的示例的图。

具体实施方式

[0030] 图1是描述根据一个实施方式的通信方法的示例的图。在图1所示的示例中,节点5(5a至5d)已经参与了网络1。假设已经参与网络1的节点5a至5d共享分布式账本2。网络1是允许共享分布式账本2的任何期望形式的网络。例如,网络1可以是区块链技术中的联盟。在图1的示例中,通信设备10(10a至10d)联接到节点5。假设每个通信设备10能够通过通信设备10所联接至的节点5获取分布式账本2中的信息。
[0031] 在下文中,参照图1,描述了要提供的服务是保险并且证书是用户的病史证书的示例。假设通信设备10a是安装在A医院中的通信设备10,并且通信设备10b是安装在B医院中的通信设备10。假设通信设备10c是将要使用保险的用户C所使用的设备,并且通信设备10d是保险公司使用的通信设备10。假设作为证书的发布方的A医院的标识信息(发布方ID)是IDA,而B医院的发布方ID是IDB。
[0032] 首先,一旦接收到要获取证书的类别的输入时,通信设备10c生成能够唯一地指定类别(类型)和使用通信设备10c的用户C的组合的标识信息(类型信息)。在下面的描述中,能够唯一地指定类别和用户的组合的标识信息有时被描述为“类别ID”。通信设备10c向节点5c通知所生成的类别ID。然后,节点5c将接收到的类别ID登记到分布式账本2中。在图1的示例中,如R1中所示,作为关于用户C的病史的类别ID的a2k8y以及作为关于用户C的教育程度的类别ID的30f8h被登记在分布式账本2中。在共享分布式账本2的节点5之间共享关于用户C的类别ID的信息。每个通信设备10还能够通过节点5获取类别ID。
[0033] 接下来,用户C从通信设备10c向通信设备10a发送对病史证书的请求,以便从A医院获取病史证书(步骤S1)。假设通信设备10a的操作者已经生成了用户C的病史证书C1。通信设备10a生成了关于证书C1的发布信息,并且将该发布信息发送给节点5a。关于证书C1的发布信息包含指定用户C的病史的类别ID。如R2中所示,节点5a将接收到的发布信息记录在分布式账本2中。发布信息R2所示的记录表示:来自发布方ID=IDA(A医院)的、关于用户和由类别ID=a2k8y所标识的类别的组合的证书ID=a1的证书。此后,从通信设备10a向通信设备10c传输证书ID=a1的证书(步骤S2)。
[0034] 在用户C也从B医院获取病史证书的情况下,进行与从A医院获取证书相同的处理。具体而言,例如,从通信设备10c向通信设备10b传输对病史证书的请求(步骤S3)。由于通信设备10b进行与通信设备10a相同的处理,因此由通信设备10b生成的证书的信息也由节点
5b登记在分布式账本2中。因此,如R3中所示,在分布式账本2中已经记录了以下事实:已经从发布方ID=IDB(B医院)为用户和由类别ID=a2k8y所标识的类别的组合发布了证书ID=b1的证书。此后,从通信设备10b向通信设备10c传输证书ID=b1的证书(步骤S4)。
[0035] 接下来,对于用户C使用服务的申请,通信设备10c向通信设备10d发送表示证书和证书的类别是病史的信息(步骤S5)。在图1的示例中,假设通信设备10c已经向通信设备10d传输了由用户C从A医院获取的证书和由用户C从B医院获取的证书二者。
[0036] 通信设备10d从节点5d请求用户C的病史证书的证书发布历史(步骤S6)。“证书发布历史”是针对特定类别向特定用户发布的所有证书的标识信息的列表。
[0037] 节点5d参考分布式账本2中的R1的记录,以识别出标识用户C和病史的组合的类别ID是“a2k8y”。节点5d检索在分布式账本2中与类别ID=a2k8y相关联地记录的发布信息。在图1的示例中,从发布信息R2和R3中识别出已经发布了证书ID=a1,b1的证书。节点5d向通信设备10d通知证书ID=a1,b1作为证书发布历史(步骤S7)。通信设备10d比较从节点5d接收的证书ID和从通信设备10c接收的证书中包含的证书ID。在图1的示例中,由于从节点5d接收到的证书ID和从通信设备10c接收到的证书中包含的证书ID彼此一致,所以通信设备10d可以确定用户C已经提交了针对病史获取的所有证书。
[0038] 此后,通信设备10d通过解密每个接收到的证书来验证证书。为了验证证书,假设通信设备10d能够视情况而从节点5d获取与发布了每个证书的设备中所使用的秘密密钥配对的公共密钥。假设每个通信设备10的公共密钥预先登记在分布式账本2中。在图1的示例中,通信设备10d可以通过从节点5d获取与发布方ID=IDA相关联的通信设备10a的公共密钥和与发布方ID=IDB相关联的通信设备10b的公共密钥来解密证书。
[0039] 在通信设备10未接收到由证书发布历史中所包含的ID标识的1个或更多个证书的情况下,通信设备10可以确定即将接收服务的用户尚未传输所有证书。在尚未传输由证书发布历史中包含的ID所标识的1个或更多个证书的情况下,通信设备10可以确定存在即将接收服务的用户可能隐藏了一些证书的可能性。
[0040] 如上所述,在使用根据实施方式的通信方法的系统中,每当发布证书时,将证书发布信息与类别ID相关联地记录在分布式账本2中。因此,关于所有证书的发布信息被登记在分布式账本2中。在用户将能够唯一指定用户和证书类别的组合的类别ID登记在分布式账本2中之后,发布每个证书。这使得服务提供方可以通过使用分布式账本2的记录来识别服务用户是否已向提供方提交了用户针对与服务相关的类别所获取的所有数字证书。
[0041] 图1仅是示例,并且网络中的节点5和通信设备10的数量可以根据需要改变。依据实现,要提交的证书类型和要提供的服务类型也可以根据需要而改变。
[0042] <设备配置>
[0043] 图2是描述通信设备10的配置的示例的图。通信设备10包括通信单元20、控制单元30和储存单元40。通信单元20包括发送单元21和接收单元22。发送单元21向节点5、另一通信设备10等发送分组。接收单元22从节点5、另一通信设备10等接收分组。
[0044] 控制单元30包括ID生成单元31、登记处理单元32、获取单元33、确定单元34和应用处理单元35。ID生成单元31生成类别ID。在通信设备10作为获取证书的用户的终端而操作的情况下使用ID生成单元31。登记处理单元32进行用于在分布式账本2中登记诸如类别ID和证书发布信息之类的信息的处理。例如,登记处理单元32向通信设备10所联接至的节点5发送要登记到分布式账本2中的信息,并且进行用于请求登记到分布式账本2中的处理。获取单元33进行用于从节点5获取信息的处理。例如,在通信设备10作为发布证书的设备或验证证书的设备而操作的情况下使用获取单元33。确定单元34通过比较包含在证书发布历史中的证书ID和包含在接收到的数字证书中的证书ID,来确定是否存在隐藏证书的可能性。应用处理单元35通过在通信设备10中运行的应用程序进行处理。例如,应用处理单元35发布数字证书,通过使用应用程序来验证数字证书,并进行其它处理。
[0045] 储存单元40存储类别ID信息41和证书生成秘密密钥42。类别ID信息41是由通信设备10生成的类别ID的信息。证书生成秘密密钥42是在通信设备10作为发布证书的设备来操作的情况下用于对生成的证书进行加密的秘密密钥。
[0046] 图3是描述通信设备10的硬件配置的示例的图。通信设备10包括处理器101、存储器102、总线105和网络接口109。通信设备10可以还包括输入装置103、输出装置104、储存装置106和便携式储存介质驱动装置107中的至少一个。
[0047] 处理器101是任何处理电路,并且可以是例如中央处理单元(CPU)。处理器101作为控制单元30操作。处理器101能够执行存储在存储器102、储存装置106等中的程序。存储器102适当地存储通过处理器101的操作而获取的数据和用于处理器101的处理的数据。储存装置106存储程序、数据等,并且视情况而向处理器101等提供所存储的信息。存储器102、储存装置106等作为通信设备10中的储存单元40操作。
[0048] 总线105将处理器101、存储器102、输入装置103、输出装置104、储存装置106、便携式储存介质驱动装置107和网络接口109彼此联接,使得数据能够在彼此之间进行发送和接收。输入装置103是诸如键盘、鼠标、麦克风或相机之类的用于输入信息的任何装置,而输出装置104是诸如显示器之类的用于输出数据的任何装置。便携式储存介质驱动装置107能够向便携式储存介质108输出存储器102、储存装置106等中的数据,并且能够从便携式储存介质108中读出程序、数据等。便携式储存介质108可以是包括可记录光盘(CD-R)和可记录数字多功能盘(DVD-R)的任何便携式储存介质。网络接口109视情况而实施使通信设备10与其它设备进行通信的处理。网络接口109作为通信单元20操作。
[0049] <第一实施方式>
[0050] 在下文中,从使用分布式账本2共享的信息、类别ID的登记、数字证书的发布处理,到在已经接收到数字证书的通信设备10中进行的验证处理的示例,分开描述第一实施方式。同样在以下示例中,证书是用户的病史证书的情况。假设通信设备10a是安装在A医院中的通信设备10,并且通信设备10b是安装在B医院中的通信设备10。假设通信设备10c是即将使用保险的用户C使用的设备,并且通信设备10d是保险公司使用的通信设备10。
[0051] 在下面的描述中,为了使正在进行处理的通信设备10清楚,可以将正在进行处理的通信设备10的附图标记末尾的字母添加到该通信设备10的部件的附图标记的末尾。例如,ID生成单元31a是通信设备10a的ID生成单元31,并且登记处理单元32c是通信设备10c的登记处理单元32。
[0052] 图4是描述包含在分布式账本2中的公共密钥信息的示例的图。在分布式账本2中,不仅保留诸如类别ID和证书发布信息之类的信息,而且还保留公共密钥信息,如参照图1所描述的。公共密钥信息是关于与在每个通信设备10中对证书进行加密所使用的秘密密钥配对的公共密钥的信息。
[0053] 图4所示的公共密钥信息与通信设备、设备ID、公共密钥和地址相关联。设备ID是指配给条目中的通信设备10的标识信息。公共密钥是与条目中的通信设备10进行加密所使用的秘密密钥配对的公共密钥。地址是指分配给条目中的通信设备10的地址。例如,设备ID=IDA和地址=IPa被指配给通信设备10a,并且与通信设备10a使用的秘密密钥配对的公共密钥是KeyPA。设备ID=IDB和地址=IPb被指配给通信设备10b,并且与通信设备10b使用的秘密密钥配对的公共密钥是KeyPB。类似地,设备ID=IDC和地址=IPc被指配给通信设备10c,并且与通信设备10c使用的秘密密钥配对的公共密钥是KeyPC。设备ID=IDD和地址=IPd被指配给通信设备10d,并且与通信设备10d使用的秘密密钥配对的公共密钥是KeyPD。
[0054] 图5是描述类别ID的登记处理的示例的序列图。参照图5,描述了在分布式账本2中登记用户C为了获取证书而使用的类别ID的情况下的处理的示例。
[0055] 通信设备10c的ID生成单元31c生成能够唯一地指定用户C和类别的组合的类别ID(步骤S11)。生成类别ID的方法可以是任何已知的方法。在图5的示例中,为了使用户C获取病史证书,假设ID生成单元31c已经生成了a2k8y作为能够唯一地指定用户C和病史的组合的类别ID(病史ID)。为了使用户C获取教育程度证书,假设ID生成单元31c已经生成了30f8h作为能够唯一地指定用户C和教育程度的组合的类别ID(教育程度ID)。在下面的描述中,为了易于理解每个类别ID与哪个类别相关联,有时用附接到类别名称的ID来表示每个类别的类别ID。例如,能够唯一指定用户C和病史的组合的类别ID有时被描述为用户C的“病史ID”。类似地,能够唯一指定用户C和教育程度的组合的类别ID有时被描述为用户C的“教育程度ID”。
[0056] 通信设备10c的登记处理单元32c请求节点5c将由ID生成单元31c生成的类别ID登记到分布式账本2中(步骤S12)。节点5c将请求登记到分布式账本2中的每个类别ID与每个类别和关于用户的信息相关联地记录。因此,在使用分布式账本2的节点5a至5d之间共享图5的R1中指示的信息。
[0057] 图5中所示的记录R1是类别ID的登记的一个示例,并且登记的形式可以依据实现而变化。例如,在通信设备10与用户一一对应的情况下,类别ID可以被生成为能够唯一地指定用户使用的通信设备10的标识信息与类别的组合的信息。在这种情况下,同样在分布式账本2中,类别ID可以与通信设备10的标识信息和类别的组合相关联地记录。
[0058] 图6是描述当发布证书时进行的处理的示例的序列图。参照图6,描述在由A医院的通信设备10a发布用户C的病史证书的情况下的处理的示例。假设在图6的处理之前已经进行了参照图5描述的登记处理。
[0059] 通信设备10c的应用处理单元35c识别出通过来自用户C等的输入已经请求了从A医院获取病史证书。应用处理单元35c还识别出通过来自用户等的输入也已经获取了诸如A医院的通信设备10a的地址之类的信息。应用处理单元35c生成对证书的请求消息,该请求消息包含请求用户C的证书的信息以及用于请求证书的类别是病史的信息。发送单元21c向通信设备10a发送所生成的请求消息(步骤S21)。
[0060] 通信设备10a的获取单元33a通过接收单元22a获取请求消息。然后,获取单元33a从节点5a请求用户C的病史ID(步骤S22)。节点5a通过参照分布式账本2中所包含的记录R1(图5)来识别用户C的病史ID为a2k8y。节点5a向通信设备10a通知作为用户C的病史ID的a2k8y(步骤S23)。
[0061] 通信设备10a的获取单元33a通知应用处理单元35a用户C的病史证书被请求,并且指定用户C的病史的类别ID为a2k8y。应用处理单元35a使用从获取单元33a接收的信息从储存单元40a等读取关于用户C的病史的信息,以生成用户C的病史证书C1(步骤S24)。应用处理单元35a还生成用于标识所生成的证书C1的证书ID。在图6的示例中,假设由应用处理单元35a所生成的、关于用户C的病史的证书C1的证书ID为a1。
[0062] 应用处理单元35a向登记处理单元32a输出证书C1的证书ID以及用户C的病史ID。登记处理单元32a请求节点5a将从应用处理单元35a接收到的证书ID和病史ID的组合记录到分布式账本2中,作为证书发布信息(步骤S25)。节点5a将以下信息记录在分布式账本2中,作为证书发布信息(图6的R2)。
[0063] 证书发布信息
[0064] 类别ID:a2k8y
[0065] 证书ID:a1
[0066] 发布方ID:IDA
[0067] 发布方ID是用于标识已经发布了证书C1的通信设备10a的信息。通过节点5a的登记处理,使用分布式账本2在节点5a至5d之间共享图6的R2中所指示的信息(步骤S26)。
[0068] 通信设备10a的应用处理单元35a利用证书生成秘密密钥42a对在步骤S24中生成的证书C1进行加密。假设证书ID记录在证书中未加密的区域中。应用处理单元35a向发送单元21a输出加密的证书C1和指示证书C1的目的地是通信设备10c的信息。发送单元21a向通信设备10c发送从应用处理单元35a输入的证书C1(步骤S27)。视情况而定,通信设备10c将通过接收单元22c接收到的证书的数据存储在储存单元40c中。存储在储存单元40c中的证书的数据是在证书的发布方处加密的数据。
[0069] 尽管已经参照图6描述了在A医院的通信设备10a发布用户C的病史证书C1的情况下的处理,但是可以在诸如通信设备10b之类的其它通信设备10中通过相同处理来进行证书的生成、证书发布信息的登记、证书的发送。可以以相同的方式进行针对除用户C以外的任何用户的处理。参照图6描述的处理过程是示例,并且可以依据实现来改变处理的过程。例如,在步骤S27中发送证书的处理可以与步骤S25、S26中的处理并行地进行,或者可以在步骤S25、S26中的处理之前进行。
[0070] 图7是描述关于证书完整性的验证处理的示例的序列图。参照图7,描述了在A医院和B医院发布了用户C的病史证书并且用户C向保险公司提交病史证书的情况下进行的处理的示例。图7的处理是示例,并且可以依据实现而变化。
[0071] 假设在进行图7的处理时,通过参照图5描述的过程在分布式账本2中登记了用户C的类别ID,如记录R1(图7)中所示。还假设通过参照图6描述的过程在分布式账本2中还登记了关于用户C的病史的、A医院的证书C1的发布信息,如发布信息R2中所指示。还假设通过在B医院中使用的通信设备10b和节点5b中的处理来发布证书C2,并且将以下信息记录在分布式账本2中(图7的R3)。
[0072] 证书发布信息
[0073] 类别ID:a2k8y
[0074] 证书ID:b1
[0075] 发布方ID:IDB
[0076] 在节点5a至5d之间共享分布式账本2中的信息。
[0077] 假设用户C向保险公司申请了保险服务。保险公司的操作者从通信设备10d向用户C使用的通信设备10c发送对病史证书的发送请求(步骤S31)。对证书的发送请求可以以任何形式进行。例如,发送请求可以是传输请求用户C提交证书的邮件,或者是传输用于在通信设备10c上显示可以发送证书的操作画面的信息。
[0078] 通信设备10c的接收单元22c接收发送请求。在发送请求是用于在通信设备10c上显示操作画面的数据的情况下,应用处理单元35c在诸如显示器之类的输出装置104(图3)上显示与发送请求相对应的显示画面。假设此后,通过用户C的操作向通信设备10d发送了从A医院发布的证书C1和从B医院发布的证书C2(步骤S32)。假设在步骤S32中发送到通信设备10d的证书C1和C2已经以在证书的发布方处加密的加密数据的状态下被发送到通信设备10d。
[0079] 假设通信设备10d的应用处理单元35d已经通过接收单元22d获取了证书C1、C2的数据以及指示这些数据是用户C的病史证书的信息。应用处理单元35d视情况而将所获得的信息存储到储存单元40中。然后,获取单元33d向节点5d询问用户C的病史ID(步骤S33)。
[0080] 节点5d根据来自通信设备10d的获取单元33d的询问,通过参考分布式账本2来获取用户C的病史ID=a2k8y的信息。节点5d向通信设备10d发送所获得的病史ID(步骤S34)。
[0081] 通信设备10d的获取单元33d通过接收单元22d获取用户C的病史ID=a2k8y。接下来,获取单元33d向节点5d请求与用户C的病史ID(a2k8y)相关联的证书的证书发布历史(步骤S35)。
[0082] 节点5d响应于来自通信设备10d的获取单元33d的询问而检索分布式账本2中的与类别ID=a2k8y相关联的证书发布信息。在图7的示例中,类别ID=a2k8y被包含在发布信息R2和发布信息R3中。然后,节点5d向通信设备10d发送所检索到的发布信息中包含的证书信息和发布方ID的组合,作为证书发布历史(步骤S36)。例如,在图7的示例中,向通信设备10d发送以下信息作为证书发布历史。
[0083] 发布信息1
[0084] 证书ID=a1,发布方ID=IDA
[0085] 发布信息2
[0086] 证书ID=b1,发布方ID=IDB
[0087] 通信设备10d的获取单元33d视情况而向储存单元40d和确定单元34d输出通过接收单元22d从节点5d获取的证书发布历史。确定单元34d验证所获取的证书发布历史和从用户传输的证书之间的ID和数量是否一致(步骤S37)。在图7的示例中,从用户C向通信设备10d发送了证书C1和证书C2。证书C1包含证书ID=a1的信息,证书C2包含证书ID=b1的信息。确定单元34d确定从用户C发送的证书中包含的ID和数量与从节点5d接收到的作为记录在分布式账本2中的信息的证书发布历史一致。在这种情况下,不存在用户C隐藏部分证书的可能性。然后,通信设备10d的操作者可以进行诸如解密每个证书并在解密之后验证证书之类的处理,以向用户C提供保险服务。参照图8描述了获取用于验证证书的公共密钥等的细节。
[0088] 接下来,描述在步骤S37的处理中,确定单元34d确定在从节点5接收到的证书发布历史与从用户发送的证书之间的证书的ID和数量不一致的情况。发布证书的每个通信设备10在发布证书时通过节点5将证书发布信息记录到分布式账本2中。篡改分布式账本2是非常困难的。因此,肯定的是:从节点5接收到的证书发布历史是完全覆盖了用户针对指定类别所获取的全部证书的列表。为此,在从节点5接收到的证书发布历史与从用户发送的证书之间的证书的ID和数量不一致的情况下,存在用户没有发送部分证书的可能性,或用户错误地发送了另一类别的证书的可能性。因此,根据第一实施方式的通信方法使得服务提供方可以在解密每个证书或验证证书内容之前指出没有正确提交证书。
[0089] 图8是描述由通信设备10进行的验证处理的示例的流程图。图8是处理的示例,并且可以依据实现而变化。例如,图8的步骤S52中的处理可以修改为如图7的步骤S33和S35所示的两次询问处理。在图8的示例中,类别ID与用户使用的通信设备10和类别的组合相关联地生成,并且被记录在分布式账本2中。
[0090] 通信设备10的应用处理单元35获取证书和类别信息(步骤S51)。应用处理单元35视情况而将获取的信息存储在储存单元40中。获取单元33向节点5请求与关于发送证书的通信设备10的信息和类别的信息的组合相对应的类别ID相关的证书发布历史(步骤S52)。每次发布每个证书时,在分布式账本2中记录发布信息,并且很难篡改分布式账本2。因此,肯定的是:从节点5接收到的证书发布历史是完全覆盖了用户针对该用户所使用的通信设备10和类别的组合而获取的全部证书的列表。获取单元33待机直到获取到证书发布历史(步骤S53中为“否”)。在获取到证书发布历史之后(步骤S53中为“是”),获取单元33将证书发布历史存储到储存单元40中。
[0091] 确定单元34确定接收到的证书的ID和数量是否与证书发布历史一致(步骤S54)。当接收到的证书的ID和数量与证书发布历史不一致时(步骤S54中为“否”),确定单元34确定存在部分证书被隐藏的可能性。应用处理单元35在不进行诸如解密证书之类的处理的情况下结束处理。
[0092] 另一方面,当接收到的证书的ID和数量与证书发布历史一致时(步骤S54中为“是”),确定单元34确定不存在部分证书被隐藏的可能性。当获取单元33已经确定不存在部分证书被隐藏的可能性时,获取单元33可以通过使用从节点5接收到的证书发布历史中包含的发布方ID,向节点5请求与每个发布方ID相关联的公共密钥。
[0093] 节点5使用从通信设备10接收到的发布方ID作为关键字来检索分布式账本2中的公共密钥信息(图4)。例如,假设针对发布方ID=IDA和发布方ID=IDB请求公共密钥。在公共密钥信息中,发布方ID=IDA与公共密钥=KeyPA相关联,而发布方ID=IDB与公共密钥=KeyPB相关联。节点5向通信设备10通知KeyPA作为发布方ID=IDA的公共密钥,并且向通信设备10通知KeyPB作为发布方ID=IDB的公共密钥。获取单元33通过经由接收单元22从节点5接收通知来获取用于解密证书的公共密钥(步骤S56)。应用处理单元35使用获取单元33的处理所获取的公共密钥对证书解密,以进行证书验证处理(步骤S57)。
[0094] 如上所述,在根据第一实施方式的系统中,由于每次发布证书时将证书发布信息与类别ID相关联地记录在分布式账本2中,因此关于所有证书的发布信息被登记在分布式账本2中。在用户将能够唯一指定用户或用户所使用的通信设备10和证书类别的组合的类别ID登记在分布式账本2中之后发布每个证书。这使得服务提供方可以通过使用分布式账本2的记录,来识别服务用户是否已向提供方提交了用户针对与该服务相关的类别而获取的全部数字证书。
[0095] <第二实施方式>
[0096] 在第一实施方式中,由于在分布式账本2中记录了即将使用服务的用户的类别ID,因此能够访问分布式账本2中的信息的第三方可以获取关于用户的证书发布信息。因此,对用户隐私的保护来说是不够的。还存在获取了证书发布信息的第三方滥用证书发布信息的风险。鉴于此,在第二实施方式中,在类别ID被加密以使得第三方不能从证书发布信息中识别用户的情况下的实施方式。
[0097] 图9是描述对用户C的类别ID进行加密所使用的密钥信息的示例的图。在第二实施方式中,假设通信设备10已经存储了如图9所示的用于对类别ID进行加密的密钥信息。关于用于对类别ID进行加密的密钥信息,无论是秘密密钥还是公共密钥均未登记在分布式账本2中。为此,通信设备10向发布和验证证书的通信设备10分发用于对加密的类别ID进行解密的公共密钥。例如,用于对类别ID进行加密的密钥信息由已生成密钥信息的通信设备10保持,使得第三方无法获取用于对类别ID进行解密的公共密钥。
[0098] 在图9的示例中,使用秘密密钥KeyA对用于指定用户C的病史的类别ID进行加密。另一方面,使用KeyB来解密通过对用于指定用户C的病史的类别ID进行加密而获得的数据进行解密。使用秘密密钥KeyC来对用于指定用户C的教育程度的类别ID进行加密,并且使用KeyD来解密通过对用于指定用户C的教育程度的类别ID进行加密而获得的数据。
[0099] 图10是描述在第二实施方式中使用的类别ID列表的示例的图。在第二实施方式中,关于使用类别ID的用户的信息和通过对每个类别的类别ID进行加密而获得的信息被记录在类别ID列表中,类别ID列表登记到分布式账本2中。例如,通过用秘密密钥KeyA对类别ID(a2k8y)进行加密而获得的信息被登记为用户C的病史ID。类似地,通过用秘密密钥KeyC对类别ID(30f8h)进行加密而获得的信息被登记为用户C的教育程度ID。在以下描述中,为了易于与明文的类别ID进行区分,加密的类别ID有时称为“加密ID”。
[0100] 图11是描述类别ID的登记处理的示例的序列图。通信设备10c的ID生成单元31c生成能够唯一地指定用户C和类别的组合的类别ID,以及对类别ID进行加密所使用的一对秘密密钥和公共密钥(步骤S71)。生成类别ID的方法与第一实施方式中的方法相同。同样在下面的描述中,假设a2k8y已经被生成为能够唯一地指定用户C和病史的组合的类别ID(病史ID),并且30f8h已经被生成为能够唯一地指定用户C和教育程度的组合的类别ID(教育程度ID)。生成对类别ID进行加密所使用的秘密密钥和公共密钥的方法可以是任何已知方法。在下面的描述中,假设已经生成了图9中所示的一对密钥。ID生成单元31c利用为了对类别ID进行加密而生成的秘密密钥对所生成的类别ID进行加密。因此,ID生成单元31c利用秘密密钥KeyA对用户C的病史ID(a2k8y)进行加密,并且利用秘密密钥KeyC对用户C的教育程度ID(30f8h)进行加密。
[0101] 通信设备10c的登记处理单元32c请求节点5c将由ID生成单元31c加密的类别ID(加密ID)登记到分布式账本2中(步骤S72)。节点5c将被请求登记到分布式账本2中的每个加密ID与每个类别和关于用户的信息相关联地记录。图11的R11中指示的信息被登记在分布式账本2中。使用分布式账本2在节点5a至5d之间共享R11中指示的信息(步骤S73)。
[0102] 同样在第二实施方式中,登记的形式可以依据实现而变化。例如,加密ID可以被生成并记录为能够唯一地指定用户所使用的通信设备10的标识信息和类别的组合的信息。
[0103] 图12是描述当发布证书时进行的处理的示例的序列图。参照图12,描述了在由A医院的通信设备10a发布用户C的病史证书的情况下进行处理的示例。
[0104] 在识别出通过从用户C等的输入请求从A医院获取病史证书时,通信设备10c的应用处理单元35c生成包含所请求的证书的类别是病史的信息的证书请求消息。应用处理单元35c通过发送单元21c将该请求消息以及与所请求的证书的类别(病史)相关联的公共密钥一起发送到通信设备10a(步骤S81)。在步骤S81中,发送KeyB作为用于解密的公共密钥。
[0105] 通信设备10a的获取单元33a通过接收单元22a获取请求消息。然后,获取单元33a向节点5a请求与用户C和类别=病史相关联的加密病史ID(步骤S82)。节点5a通过参考分布式账本2中包含的记录R11(图11)来获取与用户C的病史相关联的加密病史ID,并向通信设备10a通知加密病史ID(步骤S83)。获取单元33a用KeyB对加密病史ID进行解密(步骤S84)。在获取单元33a已经成功解密的情况下,从请求发布证书的源发送了正确的解密密钥,并且因此,可以认为,从由用户C所使用的通信设备10c请求了证书的发布。在图12的示例中,假设获取单元33a已经通过使用KeyB的解密处理获取了a2k8y作为用于指定用户C的病史的类别ID。
[0106] 通信设备10a的获取单元33a通知应用处理单元35a用户C的病史证书被请求并且指定用户C的病史的类别ID为a2k8y。在应用处理单元35a中的证书的生成和证书ID的生成以与第一实施方式中相同的方式进行。在下文中,同样在图12的示例中,假设应用处理单元35a已经生成了关于用户C的病史的证书C1。假设用于标识证书C1的证书ID为a1。登记处理单元32a以与第一实施方式中相同的处理请求节点5a,将证书发布信息登记到分布式账本2中(步骤S85)。还假设节点5a以与第一实施方式中相同的处理,在分布式账本2中记录以下信息,作为证书发布信息(图12的R2)。
[0107] 证书发布信息
[0108] 类别ID:a2k8y
[0109] 证书ID:a1
[0110] 发布方ID:IDA
[0111] 由于在节点5a至5d之间共享分布式账本2,因此与在R11中指示的加密ID信息类似,在节点5a至5d之间也共享在R2中指示的证书发布信息(步骤S86)。同样在第二实施方式中,证书发布信息中包含的类别ID是与第一实施方式相同的方式的明文的类别ID。如R11所示,用户的类别ID的登记信息仅包含加密ID。因此,即使当获取到分布式账本2中的信息时,也不允许不拥有对加密ID进行解密的公共密钥的第三方识别R2中包含的证书发布信息与哪个用户相关联以及与包含的类别ID的哪个类别相关联。例如,第三方无法识别R2中记录的证书发布信息是用户C的病史证书。因此,即使将证书发布信息记录在分布式账本2中,用户C的隐私也得到保护。
[0112] 此后,通信设备10a的应用处理单元35a用证书生成秘密密钥42a对针对用户C的病史所生成的证书C1进行加密,并将加密证书C1发送到通信设备10c(步骤S87)。证书的加密处理和发送处理以与第一实施方式中相同的处理进行。
[0113] 参照图12描述的处理是示例,并且可以以相同的方式在诸如通信设备10b的其它通信设备10中进行证书的生成、证书发布信息的登记、证书的传输。可以以相同方式进行针对除用户C以外的任何用户的处理。参照图12描述的处理过程可以以依据实现而变化。例如,在步骤S87中发送证书的处理可以与步骤S85、S86中的处理并行地进行,或者可以在步骤S85、S86中的处理之前进行。
[0114] 图13是描述对证书完整性的验证处理的示例的序列图。参照图13,描述了在A医院和B医院发布了用户C的病史证书并且用户C向保险公司提交病史证书的情况下进行的处理的示例。在图13中,假设在图12的步骤S86的处理之后,通过从B医院发布证书C2,在分布式账本2中也记录了以下信息(图13中的R3)。
[0115] 证书发布信息
[0116] 类别ID:a2k8y
[0117] 证书ID:b1
[0118] 发布方ID:IDB
[0119] 在节点5a至5d之间共享分布式账本2中的信息(步骤S91)。
[0120] 假设同样在图13中,用户C向保险公司申请保险服务。保险公司的操作者从通信设备10d向用户C使用的通信设备10c发送对病史证书的发送请求(步骤S92)。
[0121] 假设在通信设备10c的接收单元22c接收到发送请求之后,应用处理单元35c进行与发送请求相对应的显示画面的显示处理。假设已经通过用户C的操作向通信设备10d发送了从A医院发布的证书C1、从B医院发布的证书C2以及用于解密用户C的病史ID的公共密钥(KeyB)(步骤S93)。指示所发送的证书是用户C的病史证书的信息可以一起被发送到通信设备10d。在步骤S93中发送到通信设备10d的证书C1和C2二者已经以在证书的发布方处加密的加密数据的状态被发送到通信设备10d。
[0122] 假设通信设备10d的应用处理单元35d已经通过接收单元22d获取到证书C1、证书C2和公共密钥KeyB。应用处理单元35d视情况而将所获得的信息存储到储存单元40中。获取单元33d向节点5d询问与用户C和类别=病史相关联的加密病史ID(步骤S94)。
[0123] 节点5d响应于来自通信设备10d的获取单元33d的询问而通过参考分布式账本2,来获取与用户C的病史相关联的加密病史ID,并且向通信设备10d通知加密病史ID(步骤S95)。获取单元33d用KeyB对加密病史ID进行解密(步骤S96)。在获取单元33d已经成功解密的情况下,从请求发布证书的源发送了正确的解密密钥,并且因此认为已经从用户C所使用的通信设备10c发送了证书等。在图13的示例中,假设获取单元33d通过使用KeyB的解密处理已经获取了a2k8y作为用于指定用户C的病史的类别ID。接下来,获取单元33d向节点5d请求关于用户C的病史ID(a2k8y)的证书发布历史(步骤S97)。
[0124] 节点5d响应于来自通信设备10d的获取单元33d的询问而检索分布式账本2中的与类别ID=a2k8y相关联的证书发布信息。在图13的示例中,由于类别ID=a2k8y被包含在发布信息R2和发布信息R3中,因此节点5d向通信设备10d发送以下检索结果,作为证书发布历史(步骤S98)。
[0125] 发布信息1
[0126] 证书ID=a1,发布方ID=IDA
[0127] 发布信息2
[0128] 证书ID=b1,发布方ID=IDB
[0129] 通信设备10d的获取单元33d视情况而向储存单元40d和确定单元34d输出通过接收单元22d从节点5d获取的证书发布历史。确定单元34d验证在所获取的证书发布历史与从用户发送的证书之间的ID和数量是否一致(步骤S99)。当步骤S99中的验证成功时,以与在参照图7和图8的第一实施方式中所描述的处理相同的处理进行诸如验证处理和解密每个证书之类的处理。根据第二实施方式的通信方法使得服务提供方可以如第一实施方式中那样检查证书是否被隐藏,同时保护获取证书的用户的隐私。
[0130] 图14是描述由通信设备10进行的验证处理的示例的流程图。图14是处理的示例,并且可以依据实现而变化。
[0131] 通信设备10的应用处理单元35获取证书和用于对类别ID解密的公共密钥(步骤S111)。应用处理单元35视情况而将所获取的信息存储到储存单元40中。获取单元33通过节点5获取已经发送了证书的用户的加密类别ID(步骤S112)。获取单元33通过使用公共密钥对加密类别ID进行解密来生成明文的类别ID(步骤S113)。获取单元33从节点5获取与所生成的明文的类别ID相关联的证书发布历史(步骤S114)。
[0132] 确定单元34确定接收到的证书的ID和数量是否与证书发布历史完全一致(步骤S115)。当接收到的证书的ID和数量与证书发布历史不一致时,确定单元34确定存在部分证书被隐藏的可能性(步骤S115中为“否”,步骤S117)。应用处理单元35在不进行诸如解密证书之类的处理的情况下结束处理。
[0133] 另一方面,当接收到的证书的ID和数量与证书发布历史一致时(步骤S115中为“是”),确定单元34确定不存在部分证书被隐藏的可能性。当确定出不存在部分证书被隐藏的可能性时,获取单元33解密并验证证书(步骤S116)。步骤S116中的处理的细节与参照图8的步骤S56、S57描述的处理相同。
[0134] 图15是描述第二实施方式中的通信处理的示例的图。参照图15,描述第二实施方式中实现的效果。如图15所示,在第二实施方式中,每条证书发布信息包含如R2和R3所示的明文的类别ID、证书ID和发布方ID。如R11所指示的,使用加密ID进行每个用户的类别ID的登记。为此,不允许未获取到与对加密ID进行加密所使用的秘密密钥配对的公共密钥的第三方识别每个用户的类别ID。例如,由于第三方没有获取公共密钥,因此即使读取了分布式账本2中所包含的R11,也不允许第三方指定用户C的类别ID。因此,第三方即使查看R2、R3等的证书发布信息,也仅找到已经与类别ID=a2k8y相关联地发布的证书,并且不允许其识别已经发布了用户C的证书。因此,第二实施方式的使用使得可以保护用户的隐私。
[0135] 另一方面,与第一实施方式的情况一样,第二实施方式的使用使得在通信设备10d中能够确定用户是否已经提交了针对申请所使用的类别的全部数字证书。例如,用户C的通信设备10c向发布证书的通信设备10出示用于解密类别ID的公共密钥,如箭头A1、A3所示。通信设备10a、10b二者可以使用公共密钥对类别ID进行解密,并且可以发布与解密的类别ID相关联的证书,并且将发布信息记录在分布式账本2中。通信设备10a、10b二者可以向用户的通信设备10c传输所发布的证书(箭头A2、A4)。因此,通信设备10c可以将对类别ID进行解密所使用的公共密钥以及所获取的证书一起发送到保险公司的通信设备10d(箭头A5)。
在保险公司的通信设备10d中,可以像通信设备10a等那样使用公共密钥来对类别ID进行解密,并且获取在分布式账本2中与解密类别ID相关联地记录的证书的证书ID。为此,通信设备10d可以通过将分布式账本2中与解密类别ID相关联地记录的证书的证书ID与从通信设备10c出示的证书的证书ID进行比较,来确定是否存在数字证书被隐藏的可能性。
[0136] <其它>
[0137] 实施方式不限于以上,并且可以进行各种修改。下面将描述其一些示例。
[0138] 上述表、消息、数字证书等的格式仅是示例,并且可以依据实现而变化。例如,表、消息和数字证书可以包括除以上描述的信息元素以外的信息元素,并且可以不包括所例示的信息元素中的一些。
[0139] 在以上描述中,已经以类别为病史的情况为例进行了描述,但是根据实施方式的通信方法中要发送和接收的证书的类别可以依据实现视情况而改变。例如,类别可以是教育程度、个人历史、犯罪记录等。
[0140] 尽管在由通信设备10进行的处理被分开的同时已经进行了以上描述,但是任何通信设备10可以进行类别ID的生成、数字证书的发布、传输和验证。在第二实施方式中,任何通信设备10可以进行类别ID的加密、类别ID的生成、数字证书的发布、传输和验证。
[0141] 在以上描述中,尽管以通信设备10不是共享分布式账本2的设备的情况为例进行了描述,但是节点5和通信设备10可以是一个设备。在节点5和通信设备10被实现在一个设备中的情况下,发布证书的设备发布证书,并将关于由该设备发布的证书的证书发布信息登记到分布式账本2中。在这种情况下,用户即将接收使用的服务的设备将类别ID登记到分布式账本2中。验证证书的设备通过访问分布式账本2中的信息来指定证书发布历史,并可以确定是否存在证书已经被隐藏的可能性。