本公开涉及对与局域网连接的设备进行认证的技术,尤其涉及在控制器与设备之间进行相互认证并更新组密钥的技术。
背景技术:
近年来,期待使用了各种历史信息的服务,所述各种历史信息从具有网络连接功能的家电设备、AV设备、住宅设备等设备种类(以下,仅称为“设备”。)被收集到云服务器中。以下,将通过连接设置于家庭内的设备彼此而形成的网络称为家庭局域网。
有时将特定的设备(以下,称为“控制器”。)与这样的家庭局域网连接,并经由控制器进行设备与外部服务器之间的通信。因此,要求通过安全地设定控制器与各设备之间的连接来控制家庭内的通信,防止非法设备的通过欺诈进行的连接、由通信内容的监听导致的信息泄漏等。例如,对于前者,可考虑连接设备的认证等对策,对于后者,可考虑通信的加密等对策,合法性经过了认证的控制器和设备共有加密密钥,并进行使用了该加密密钥的加密通信。在存在与控制器连接的多台设备的情况下,通过控制器与该设备共有同一加密密钥(以下,称为“组密钥”。),进行控制器对多台设备同时发送同一信息的组播通信、广播通信的加密。
在先技术文献
非专利文献
非专利文献1:NSASuiteBImplementer'sGuidetoFIPS186-4(ECDSA)
非专利文献2:NISTSpecialPublication800-56ARevision2
非专利文献3:RFC5191ProtocolforCarryingAuthenticationforNetworkAccess(PANA)
技术实现要素:
发明要解决的问题
提供一种控制器、第一设备以及第二设备共有组密钥,且所述控制器对所述第一设备和所述第二设备进行使用所述组密钥加密了的信息的同时播报通信的认证系统中的所述控制器、与所述第一设备以及所述第二设备之间的认证方法,其特征在于,包括:第一相互认证步骤,所述控制器与所述第一设备执行相互认证,制作组密钥并共有,并且将所述第一设备设定为基准设备;第二相互认证步骤,所述控制器与所述第二设备执行相互认证,并使所述第二设备也共有在所述第一相互认证步骤中制作而成的组密钥;第三相互认证步骤,在所述第二相互认证步骤之后,所述控制器与作为所述基准设备的所述第一设备再次执行相互认证,更新所述组密钥,并共有更新后的组密钥;第四相互认证步骤,在所述控制器和所述基准设备更新所述组密钥的组密钥更新定时,所述控制器与不是所述基准设备的所述第二设备执行相互认证,并使所述第二设备也共有所述更新后的组密钥;以及加密步骤,使用所述组密钥将发送数据加密而生成加密数据,根据该发送数据、头、发送源地址以及发送目的地地址生成MAC,并进行包括该加密数据、该头、该发送源地址、该发送目的地地址以及该MAC的消息的所述同时播报通信。
此外,这些总括或具体的技术方案既可以由系统、装置、集成电路、计算机程序或记录介质来实现,也可以由系统、装置、方法、集成电路、计算机程序以及记录介质的任意组合来实现。
发明的效果
附图说明
图1是表示认证系统10的系统构成的概略图。
图2是控制器100的主要部分的功能框图。
图3是表示连接设备管理表1000的数据结构和数据的一例的图。
图4是表示公钥证书的数据结构的一例的图。
图5是表示CRL的数据结构的一例的图。
图6是设备200a的主要部分的功能框图。
图7是表示连接控制器管理表1100的数据结构和数据的一例的图。
图8是服务器300的主要部分的功能框图。
图9是表示设备信息管理表1300的数据结构和数据的一例的图。
图10是表示设备中的设备登记处理的步骤的一例的流程图。
图11是表示控制器中的设备登记处理的步骤的一例的流程图。
图12是表示设备登记处理的步骤的一例的时序图。
图13是表示设备中的会话更新处理的步骤的一例的流程图。
图14是表示控制器中的会话更新处理的步骤的一例的流程图。
图15是表示会话更新处理的步骤的一例的时序图。
图16是表示设备中的基于PKI的相互认证~共有密钥的制作的步骤的一例的流程图。
图17是表示控制器中的基于PKI的相互认证~共有密钥的制作的步骤的一例的流程图。
图18是表示基于PKI的相互认证~共有密钥的制作的步骤的一例的时序图。
图22是表示设备历史信息发送处理的步骤的一例的时序图。
图23是表示控制信息发送处理的步骤的一例的时序图。
图24是加密前和加密后的消息格式的数据结构图。
图25是表示设备历史信息MAC发送处理的步骤的一例的时序图。
图26是表示控制信息MAC发送处理的步骤的一例的时序图。
图27是表示实施方式2涉及的连接设备管理表2000的数据结构和数据的一例的图。
图28是表示实施方式2涉及的设备中的会话更新处理的步骤的一例的流程图。
图29是表示实施方式2涉及的控制器中的会话更新处理的步骤的一例的流程图。
图30是表示实施方式2涉及的会话更新处理的步骤的一例的时序图。
图31是表示实施方式3涉及的连接设备管理表3000的数据结构和数据的一例的图。
图32是表示实施方式3涉及的连接控制器管理表3100的数据结构和数据的一例的图。
图33是表示实施方式3涉及的设备中的会话更新处理的步骤的一例的流程图。
图34是表示实施方式3涉及的控制器中的会话更新处理的步骤的一例的流程图。
图35是表示实施方式3涉及的会话更新处理的步骤的一例的时序图。
具体实施方式
(成为本公开的基础的见解)
为了保持设备与控制器之间的安全,期望在连接时进行相互认证,此后,不是继续使用同一组密钥,而是设备与控制器重新进行相互认证并更新组密钥。
然而,当各台设备在各自的定时进行组密钥的更新时,各设备会保持不同的组密钥。例如,在第一设备保持有更新后的组密钥,而第二设备保持有更新前的组密钥的情况下,控制器无法进行使用了组密钥的加密信息的同时发送。
本公开是鉴于涉及的问题而作出的,提供一种能够匹配各设备与控制器之间的组密钥的更新定时的认证方法。
本公开的一个技术方案涉及的认证方法通过从连接到控制器的设备之中设定基准设备,其他设备基于该基准设备中的组密钥更新的定时进行组密钥的更新,从而能够匹配多个设备间的组密钥更新的定时。
由此,即使控制器与各设备进行相互认证和组密钥更新,控制器也能够进行加密了的信息的同时发送。
以下,参照附图说明本公开的实施方式。此外,以下的实施方式是将本公开具体化而成的一例,并不限定本公开的技术范围。
<1.实施方式1>
<1-1.概要>
以下,针对作为使用了本公开涉及的认证方法的一个实施方式的认证系统10,使用附图并进行说明。
图1是表示本实施方式涉及的认证系统10的系统构成的一例的概略图。
认证系统10是包括与家庭局域网400连接的控制器100和设备200a、设备200b、设备200c的构成。认证系统10中的控制器100经由网络500与服务器300连接,所述网络500是互联网等通信网。
控制器100和设备200a~设备200c与一个家庭局域网400连接。虽然在图中没有示出,但也可以经由网络设备(例如集线器、路由器等)连接。另外,设置控制器100或各设备的场所不限定于室内和室外。
控制器100与设备200a~设备200c中的每一个在开始连接时进行相互认证。而且,在相互认证的结果为能够确认彼此的合法性的情况下,共有加密密钥并进行加密通信。以后,控制器与各设备在各自的预定的定时进行会话更新处理,每当会话更新处理时,进行相互认证,在其结果为合法的情况下,更新加密密钥,并继续进行加密通信。
这样的控制器100与各设备在连接时的相互认证中确认彼此的合法性后,共同拥有(共有)三种共有密钥。
第一共有密钥是在控制器100与各个设备之间,在会话更新处理时的相互认证中使用的共有密钥。在控制器与设备连接时,首先,进行基于公钥认证基础设施(PKI:PublicKeyInfrastructure)的相互认证。另一方面,在利用该PKI的相互认证以后,在会话更新处理时,控制器与设备进行的相互认证使用该第一共有密钥来进行。以下,在仅记述为“共有密钥”的情况下,表示在该相互认证中使用的共有密钥。其中,明显地除去了记载了表示以下说明的组密钥和会话密钥的情况。
由于在控制器与设备之间的加密通信中使用共有密钥加密方式,所以控制器与设备共有(共同拥有)共有密钥。
第二共有密钥和第三共有密钥是用于在该加密通信中使用的共有密钥,将它们分别称为组密钥和会话密钥。组密钥是控制器为了对多台设备同时发送同一信息而使用的加密密钥,控制器与连接到控制器的全部设备共有同一组密钥。会话密钥是控制器与各设备为了进行一对一的单播通信而使用的加密密钥,控制器在与各个设备之间共有不同的加密密钥。
在这里,在控制器与各设备之间的通信中设置会话有效期间,在该会话有效期间中能够利用组密钥和会话密钥。在设定会话以后超过会话有效期间的情况下,控制为不可利用组密钥和会话密钥。此外,为了在会话有效期间经过后也继续进行加密通信,需要在控制器与各个设备之间进行会话更新处理,制作新的组密钥和会话密钥,并设定新的会话。
另外,控制器将连接的多台设备中的一台设备设定为基准设备。而且,控制器100与各个设备更新组密钥的定时基于基准设备进行会话更新处理并更新组密钥的定时,后面将说明具体方法。此外,基准设备例如设为控制器100最初连接的设备。
服务器300是对设备200a~设备200c进行服务提供等的外部服务器。在服务器300与各设备进行通信时,经由控制器100来进行。
例如,各设备经由控制器100,将表示设备的工作的设备历史信息发送给服务器300。另外,服务器300经由控制器100,向各个设备发送服务信息。在这里,服务器300发送用于使各设备执行预定功能的控制请求信息。控制器100接收并解读该控制请求信息,制作并发送用于使各设备执行的控制命令。而且,接收到该控制命令的各个设备执行从服务器300请求的功能。
<1-2.构成>
以下,使用附图,并说明作为本实施方式涉及的认证系统10的主要构成要素的控制器100和设备200a~设备200c、和与该认证系统10连接的服务器300的各构成。
<1-2-1.控制器100>
图2是控制器100的主要部分的功能框图,控制器100是包括设备管理部101、设备信息保持部102、认证处理部103、认证信息保持部104以及通信部105的构成。另外,虽然未图示,但控制器100是包括处理器和存储器的构成,设备管理部101、设备信息保持部102、认证处理部103、认证信息保持部104以及通信部105的各功能通过处理器执行存储在存储器中的程序而实现。设备信息保持部102、认证信息保持部104中的各数据的保持利用存储器来实现。
(设备管理部101)
为了控制控制器100与设备200a~设备200c之间的连接,设备管理部101具有如下功能。
设备管理部101经由通信部105受理对控制器100的来自设备的连接请求、会话更新请求。而且,使认证处理部103执行与该设备之间的相互认证处理。
在认证处理部103中进行的认证处理的结果为承认该设备的合法性的情况下,设备管理部101将连接设备管理数据登记在由设备信息保持部102保持的连接设备管理表1000中。将在后面说明连接设备管理表1000保持的连接设备管理数据的详细情况。
设备管理部101进行基准设备的设定。例如,可以将最初与控制器100连接的设备设定为基准设备。另外,在切断了与作为基准设备登记的设备之间的连接的情况下,从设备信息保持部102保持的连接设备管理表1000中提取其他设备并设定为基准设备。此时,可以将电源始终为接通的设备设定为基准设备。设备管理部101将该基准设备的设定也登记在连接设备管理表1000中。在进行与设备之间的连接时,认证处理部103进行是否将该设备设定为基准设备的判断,设备管理部101接受该判断结果,并登记在连接设备管理表1000中。
设备管理部101参照作为连接设备管理表1000的项目的会话更新状态,并经由通信部105,对会话未更新的设备进行会话更新通知。该会话更新通知是用于对设备催促会话更新的通知,之后,通过重新受理来自设备侧的对控制器100的会话更新请求,从而更新会话。
另外,设备管理部101将经由通信部105从设备200a~设备200c接收的加密了的设备历史信息进行解密。解密后的设备历史信息经由通信部105发送给服务器300。
进而,设备管理部101将经由通信部105从服务器300接收的、设备的控制请求信息加工成能够指示设备的形式后,用组密钥或会话密钥进行加密,并经由通信部105发送给设备。
(设备信息保持部102)
设备信息保持部102保持与控制器100连接的设备200a~设备200c的信息。图3是表示为了管理设备的信息,设备信息保持部102保持的连接设备管理表1000的数据结构和数据的一例的图。
一边使用图3的数据的例示,一边说明各项目。
设备ID1010是唯一地确定设备的识别符。
证书ID1020是设备的公钥证书的证书ID。
共有密钥1030是在控制器100与设备之间共有的共有密钥的数据。
组密钥1040是在控制器100对多台设备同时发送的信息的加密中使用的组密钥的数据。图3示出了作为与控制器连接的全部设备的设备ID1~设备ID3和共有同一组密钥“11223…”。此外,在图3的例示中,示出了设备ID1~设备ID3共有一个组密钥的项目栏的例子,但也可以按每个设备ID而具有单独的项目栏,在登记该项目时,对基准设备以外的设备设定与基准设备相同的组密钥的数据。
会话密钥1050是为了对控制器100与设备之间的单播通信进行加密而使用的会话密钥的数据。在图3的例子中也示出了控制器在与设备ID1~设备ID3这些各设备之间共有各自不同的会话密钥。
基准设备1080这一项目是表示设备是否为基准设备的数据。
关于会话更新状态1070和基准设备1080这些项目,在图3的例示中,示出了设备ID1的设备是基准设备。另外,示出了:在控制器100与作为基准设备的设备ID1的设备进行了会话更新以后,控制器与设备ID2的设备是已经更新了会话的状态,控制器与设备ID3的设备为会话未更新。
(认证处理部103)
认证处理部103具有进行与连接到控制器100的设备之间的相互认证处理的功能。在进行与设备之间的连接时,进行基于PKI的相互认证,在会话更新时,进行基于挑战应答认证的相互认证,所述挑战应答认证使用了共有密钥和随机数。
另外,认证处理部103在控制器100与设备之间进行会话更新时,进行挑战应答认证,所述挑战应答认证是使用了共有密钥的相互认证。认证处理部103也具有在与设备之间,利用密钥交换制作该共有密钥的功能。认证处理部103生成随机数,并经由通信部105发送给设备。而且,将设备用共有密钥加密并返回的随机数解密用控制器保持的共有密钥进行解密,并通过与自身制作的随机数进行对照来确认设备的合法性。另外,同样地,认证处理部103也通过将从设备接收到的随机数用共有密钥加密并返回,进行在设备侧的验证。
认证处理部103还具有执行会话的设定和更新所需的处理的功能。具体而言,制作组密钥和会话密钥,所述组密钥和会话密钥是用于加密控制器100与设备之间的通信的共有密钥。另外,设定会话有效期间,并经由设备管理部101,将会话密钥和组密钥一起登记在设备信息保持部102保持的连接设备管理表1000中。
(认证信息保持部104)
认证信息保持部104保持控制器100自身的私钥和公钥证书。另外,保持有为了在基于PKI的相互认证中确认对象设备的公钥证书没有失效而使用的CRL。这样的私钥、公钥证书以及CRL在控制器100的制造时嵌入。
(通信部105)
通信部105是控制器100用于与设备200a~设备200c以及服务器300中的每一个连接的通信接口。例如,具有如下功能:使用保持在设备信息保持部102的连接设备管理表1000中的会话密钥和组密钥,与设备200a~设备200c进行加密通信。
另外,通信部105具有与服务器300进行加密通信的功能,例如,进行SSL(SecureSocketLayer:安全套接层)通信。在这里,作为SSL通信所需的SSL服务器证书由通信部105保持。
<1-2-2.设备200a>
设备200a~设备200c是具有与网络连接的功能的家电设备、AV设备以及住宅设备,具体而言,例如是电视机、录像机、空调机、冰箱以及蓄电池等。
以下,使用设备200a作为代表说明设备的构成。此外,各设备分别具有固有的功能,在这一点中,如果设备是另一种设备,则与其他设备不相同。例如,如果是洗衣机则为洗涤功能,如果是空调机则为制热或制冷等功能,由于是通常的功能,所以省略说明。仅针对作为本申请的发明的认证方法涉及的功能进行说明,关于这一点,不言而喻的是,不限于设备200a,其他设备也具有相同功能。
图6是设备200a的主要部分的功能框图,设备200a是包括设备管理部201、设备历史保持部202、设备信息保持部203、认证处理部204、认证信息保持部205以及通信部206的构成。另外,虽然未图示,但设备200a是包括处理器和存储器的构成,设备管理部201、设备历史保持部202、设备信息保持部203、认证处理部204、认证信息保持部205以及通信部206的各功能通过处理器执行存储在存储器中的程序而实现。设备历史保持部202、设备信息保持部203以及认证信息保持部205中的各数据的保持利用存储器来实现。
(设备管理部201)
设备管理部201控制与控制器100之间的连接。具体而言,具有如下功能。
设备管理部201在与控制器100连接时,经由通信部206将连接请求发送给控制器100。
另外,当设备管理部201经由通信部206接收控制器100的公钥证书时,使认证处理部204执行基于PKI的认证处理。
在认证处理部204中进行的认证处理的结果为承认控制器100的合法性的情况下,设备管理部201将连接控制器数据登记在由设备信息保持部203保持的连接控制器管理表1100中。将在后面说明连接控制器管理表1100保持的连接控制器数据的详细情况。
当开始会话更新时,设备管理部201使认证处理部204执行处理。之后,接受认证处理部204制作的组密钥、会话密钥以及会话有效期间,并登记在由设备信息保持部203保持的连接控制器管理表1100中。
(设备历史保持部202)
设备历史保持部202具有将设备200a的工作记录为设备历史信息并保持的功能。每当操作设备200a或执行功能时,设备历史保持部202将表示这些工作的信息作为设备历史信息记录。此外,虽然设备历史信息作为设备200a经由控制器100并发送给服务器300的信息的一例示出,但是由于不是本申请的发明的主要构成要素,所以省略数据项目等的详细说明。
(设备信息保持部203)
设备信息保持部203保持与设备200a连接的控制器100的信息。图7是表示为了管理控制器的信息,设备信息保持部203保持的连接控制器管理表1100的数据结构和数据的一例的图。
使用图7的例子并对各项目进行说明。
控制器ID1110是唯一地确定控制器的识别符。
证书ID1120是控制器的公钥证书的证书ID。
共有密钥1130是在设备200a与控制器100之间共有的共有密钥的数据。
组密钥1140是为了加密控制器100对设备同时发送的信息而使用的共有密钥的数据。在设备侧,使用该组密钥将接收到的信息进行解密。
会话密钥1150是为了进行与控制器100之间的加密单播通信而使用的共有密钥的数据。
(认证处理部204)
认证处理部204具有进行与控制器100之间的相互认证处理的功能。在进行与控制器的连接时,进行基于PKI的相互认证,在会话更新时,进行基于挑战应答认证的相互认证,所述挑战应答认证使用了共有密钥和随机数。
从设备管理部201受理控制器的认证请求和该控制器的公钥证书,并进行基于PKI的认证处理。具体而言,首先,基于存储在认证信息保持部205中的CRL,确认取得的控制器的公钥证书的证书ID未记载在CRL中。另外,使用认证站的公钥来验证公钥证书的签名。在这里,认证站设为服务器300。
另外,认证处理部204在与控制器100之间进行会话更新时,进行挑战应答认证,所述挑战应答认证是使用共有密钥的相互认证。认证处理部204也具有在与控制器100之间,利用密钥交换制作该共有密钥的功能。认证处理部204生成随机数,并经由通信部206发送给控制器100。而且,认证处理部204用设备保持的共有密钥对控制器100用共有密钥加密并返回的随机数进行解密,并通过与自身制作的随机数进行对照来确认控制器的合法性。另外,同样地,认证处理部204也通过用共有密钥加密从设备接收到的随机数并返回,从而进行在设备侧的验证。
进而,认证处理部204具有执行会话的制作和更新所需的处理的功能。具体而言,当从设备管理部201受理会话更新处理的开始时,经由通信部206对控制器100发送会话更新请求。另外,认证处理部204经由通信部206从控制器100接收更新后的会话密钥、组密钥以及会话有效期间,并经由设备管理部201登记在设备信息保持部203保持的连接控制器管理表1100中。
(认证信息保持部205)
认证信息保持部205保持设备200a自身的私钥和公钥证书。另外,保持有为了在基于PKI的相互认证中确认公钥证书没有失效而使用的CRL。这样的私钥、公钥证书以及CRL在设备的制造时嵌入。
由于CRL和公钥证书的数据结构与控制器100的认证信息保持部104保持的CRL和公钥证书相同,所以省略说明。其中,设备200a的公钥证书保持的公钥当然是设备200a的公钥。
(通信部206)
通信部206是用于与控制器100连接的通信接口。例如,具有如下功能:使用设备信息保持部203的连接控制器管理表1100保持的会话密钥和组密钥,在与控制器100之间进行加密通信。
<1-2-3.服务器300>
图8是服务器300的主要部分的功能框图,服务器300是包括设备信息管理部301、设备信息保持部302、CRL管理部303、CRL保持部304以及通信部305的构成。另外,虽然未图示,但服务器300是包括处理器和存储器的构成,设备信息管理部301、设备信息保持部302、CRL管理部303、CRL保持部304以及通信部305的各功能通过处理器执行存储在存储器中的程序而实现。设备信息保持部302、CRL保持部304中的各数据的保持利用存储器来实现。
(设备信息管理部301)
为了控制设备信息保持部302,并将与服务器300连接的控制器的信息加入与控制器连接的设备的信息进行管理,设备信息管理部301具有以下功能。
设备信息管理部301将经由通信部305从控制器接收到的控制器和设备的信息登记在设备信息保持部302保持的设备信息管理表1300中。
另外,在从控制器接收到在控制器与设备之间的相互认证中判断为不合法的设备的信息的情况下,向CRL管理部303通知该设备的公钥证书的证书ID。
(设备信息保持部302)
设备信息保持部302保持与服务器300连接的控制器和设备的信息,图9是表示设备信息保持部302具有的、设备信息管理表1300的数据结构和数据的一例的图。
控制器ID1310是唯一地确定控制器的识别符。
控制器的证书ID1320是控制器的公钥证书的证书ID。
设备ID1330是识别与控制器连接的设备的设备ID。在图9的例子中,示出了用控制器ID1识别的控制器连接有用设备ID1、设备ID2以及设备ID3识别的三台设备。
设备的证书ID1340是设备的公钥证书的证书ID。
设备历史信息1350是从设备收集到的设备历史信息的数据。在这里,也可以是,设备历史信息本身由其他表按每台设备保持,并在该设备历史信息1350这一项目中保持前往所述其他表的链接信息。
(CRL管理部303)
当从设备信息管理部301受理非法设备的公钥证书的证书ID时,CRL管理部303发行CRL。
另外,CRL管理部303保持服务器300的公钥和私钥。
CRL管理部303在发行CRL时,将使用服务器300的私钥制作的签名赋予给CRL。使用该CRL的控制器和设备通过使用服务器300的公钥验证附加于CRL的签名,来确认CRL为合法。
CRL管理部发行的CRL经由通信部305发送给控制器和设备。
(CRL保持部304)
CRL保持部304保持CRL管理部303发行的CRL。由于CRL的数据结构与控制器100的认证信息保持部104保持的CRL相同,所以省略说明。
(通信部305)
通信部305是用于与控制器100进行通信的通信接口。服务器300与控制器100之间的通信例如通过SSL通信进行。SSL通信所需的证书由通信部305保持。
<1-3.工作>
(设备登记处理)
图10和图11是表示设备和控制器各自的设备登记处理的步骤的一例的流程图,图12是表示包括设备与控制器的授受的、设备登记处理的步骤的一例的时序图。
设备登记处理是在控制器100与设备连接时进行的处理,是从设备向控制器100请求连接并进行相互认证开始登记彼此的步骤。首先,沿着图10和图11的流程图,说明设备和控制器各自的处理的概要,沿着图12的时序图,说明包括设备与控制器的授受的、设备登记处理的更详细的步骤。
沿着图10的流程图,说明设备中的设备登记处理的概要。
首先,设备对控制器发送连接请求、以及设备自身的设备ID以及公钥证书(步骤S1010)。
接着,设备通过执行“基于PKI的相互认证~共有密钥的制作”这一子程序,在进行与控制器之间的相互认证后,共有(共同拥有)共有密钥(步骤S1020)。将在后面说明该子程序处理的详细情况。
在步骤S1040的子程序的返回值为“正常”的情况下(步骤S1050为是),设备将控制器作为合法的连接对象并登记控制器的信息(步骤S1060)。
另一方面,在步骤S1020的子程序的返回值为“错误”的情况下(步骤S1030为否),或步骤S1040的子程序的返回值为“错误”的情况下(步骤S1050为否),设备结束设备登记处理。
接着,沿着图11的流程图,说明控制器中的设备登记处理的概要。
控制器等待设备的连接请求、设备ID以及公钥证书(步骤S1110)。在未接收到设备的连接请求、设备ID以及公钥证书的情况下(步骤S1110为否),控制器继续等待来自设备的连接请求。
在接收到连接请求的情况下(步骤S1110为是),控制器通过执行“基于PKI的相互认证~共有密钥的制作”这一子程序,在进行了与设备的相互认证后,共有(共同拥有)共有密钥(步骤S1120)。将在后面说明该子程序处理的详细情况。
在步骤S1140的子程序的返回值为“正常”的情况下(步骤S1150为是),控制器将控制器和设备的信息发送给服务器300(步骤S1160)。
然后,控制器将设备作为合法的连接对象并登记设备的信息(步骤S1170)。
另一方面,在步骤S1120的子程序的返回值为“错误”的情况下(步骤S1130为否),或步骤S1140的子程序的返回值为“错误”的情况下(步骤S1150为否),控制器结束设备登记处理。
设备登记处理是新的设备与控制器100连接时进行的处理。例如,在向控制器所属的家庭局域网追加新的设备的定时、在该网络中以电源断开的状态存在的设备的电源变为接通的定时等执行。
设备200a的设备管理部201经由通信部206,发送对控制器100的连接请求(步骤S101)。此时,设备200a的设备ID和公钥证书也一起发送。
控制器100的设备管理部101经由通信部105受理连接请求,并使认证处理部103执行基于PKI的相互认证。接受该连接请求,控制器100的认证处理部103与设备200a的认证处理部204进行基于PKI的相互认证处理,并确认彼此的合法性(步骤S102)。
然后,控制器100的认证处理部103与设备200a的认证处理部204通过密钥交换方式制作共有密钥(步骤S102)。该共有密钥在以后进行的相互认证中使用。为方便起见,将上述步骤S102的“基于PKI的相互认证~共有密钥的制作”子程序化,将在后面说明步骤。此外,来自该子程序处理的返回值为“错误”的情况下,控制器和设备结束设备登记处理。
服务器300经由通信部305从控制器100接收控制器和设备的信息。然后,设备信息管理部301将该控制器的控制器ID和证书ID、经认证的设备的设备ID和证书ID登记在设备信息保持部302具有的设备信息管理表1300中(步骤S107)。
(会话更新处理)
图13和图14是表示设备和控制器各自的会话更新处理的步骤的一例的流程图,图15是表示包括设备与控制器之间的授受的、会话更新处理的步骤的一例的时序图。
首先,沿着图13的流程图,说明设备中的会话更新处理的概要。无论设备是基准设备还是基准设备以外的设备,都按如下步骤进行处理。
另一方面,在步骤S1230的子程序的返回值为“错误”的情况下(步骤S1240为否),设备结束会话更新处理而不进行会话的更新。
接着,沿着图14的流程图,说明控制器中的会话更新处理的概要。
控制器等待来自设备的会话更新请求(步骤S1310)。如果未接收到(步骤S1310为否),则继续等待来自设备的会话更新请求。
另一方面,在步骤S1320的子程序的返回值为“错误”的情况下(步骤S1330为否),对于该设备,通过不进行会话更新信息的登记,而不更新会话。
不管是进行了与该设备之间的会话更新还是没有进行与该设备之间的会话更新,在还存在其他会话没有更新的设备的情况下(步骤S1350为是),对该会话未更新设备发送会话更新通知(步骤S1360)。此时,虽然既可以对全部未更新会话的设备同时进行会话更新通知,也可以对其中的一部分或一台设备发送,但最终通过对全部未更新设备进行会话更新通知并更新会话,从而更新与全部设备之间的会话。当然,在步骤S1320中,除去发生了错误的设备。
在对全部设备完成会话更新处理的情况下(步骤S1350为否),结束会话更新处理。
控制器100的设备管理部101参照设备信息保持部102保持的连接设备管理表1000的会话更新状态1070这一项目,确认“未更新”的设备的有无。在不存在会话更新状态1070这一项目为“未更新”的设备的情况下,判断为进行了全部设备的会话更新处理,并结束处理。
在存在会话更新状态1070为“未更新”的设备的情况下,控制器100的设备管理部101对该设备进行会话更新通知(步骤S146)。在图15的例子中,进行对会话为未更新的设备200b的会话更新通知。此外,在还存在其他会话未更新的设备的情况下,对该设备也进行会话更新通知,并实施以后的处理。此时,也可以对全部会话为未更新的设备同时进行会话更新通知。或者,既可以对未更新设备中的一台设备发送,也可以每次发送给几台设备。
设备200b的设备管理部201经由通信部206受理控制器100发送来的会话更新通知,并使认证处理部204执行会话更新。认证处理部204首先经由通信部206,向控制器100发送会话更新请求(步骤S147)。
其中,在步骤S149中,控制器100的设备管理部101将在步骤S148中制作的组密钥、会话密钥以及会话有效期间登记在设备信息保持部102具有的连接设备管理表1000中,并且会话更新状态1070这一项目更新为“更新完成”(步骤S149)。
在上述步骤S145中,通过对全部会话未更新设备发送会话更新通知,控制器进行与全部设备之间的会话更新,并共有更新过的组密钥。
(基于PKI的相互认证~共有密钥的制作)
图16和图17是表示设备和控制器各自的基于PKI的相互认证~共有密钥的制作的步骤的一例的流程图,图18是表示包括设备与控制器之间的授受的、该处理的步骤的一例的时序图。沿着图16和图17的流程图,在对设备和控制器各自的处理的概要进行了说明之后,沿着图18的时序图,说明包括设备与控制器之间的授受的处理的详细情况。
首先,沿着图16的流程图,说明设备中的处理的概要。
设备等待来自控制器的控制器ID和公钥证书。在没有接收到控制器ID和公钥证书(步骤S1410为否)且接收到错误的情况下(步骤S1420为是),设置“错误”作为该子程序的返回值(步骤S1460)。
在没有从控制器接收到控制器ID和公钥证书或者错误中的任一个的情况下(步骤S1410为否且步骤S1420为否),继续等待来自控制器的信息。
在接收到控制器ID和公钥证书的情况下(步骤S1410为是),对从控制器接收到的公钥证书,确认证书ID不在CRL中(步骤S1430)。
然后,在证书ID未记载在CRL中且没有失效的情况下(步骤S1430为否),验证附加于公钥证书的签名(步骤S1440)。
在步骤S1440中,在控制器的公钥证书的签名的验证成功的情况下(步骤S1440为是),设备向控制器通知验证成功(步骤S1470)。
然后,设备通过与控制器之间的密钥交换,共有(共同拥有)共有密钥(步骤S1480)。该密钥利用于以后的相互认证中。另外,设备将“正常”设置为该子程序的返回值(步骤S1490)。
另一方面,在公钥证书的证书ID记载在CRL中的情况(步骤S1430为是)下,或者在签名验证不成功的情况(步骤S1440为否),判断为控制器的公钥证书的验证失败,设备对控制器发送错误通知(步骤S1450)。然后,将“错误”设置为该子程序的返回值(步骤S1460)。
将在步骤S1490或步骤S1460中设置的返回值作为该子程序的处理结果,并返回至调出源的处理(步骤S1500)。
接着,沿着图17的流程图,说明控制器中的处理的概要。
首先,控制器确认从设备接收到的公钥证书的证书ID不在CRL中(步骤S1610)。
然后,在证书ID未记载在CRL中且没有失效的情况下(步骤S1610为否),验证附加于公钥证书的签名(步骤S1620)。
在公钥证书的证书ID记载在CRL中的情况(步骤S1610为是),或者在签名验证不成功的情况(步骤S1620为否)下,设备的公钥证书的验证失败,控制器对设备发送错误通知(步骤S1630)。
然后,作为该子程序的返回值,设置“错误”(步骤S1670)。
在步骤S1620中,在控制器的公钥证书的签名验证成功的情况下(步骤S1620为是),等待设备侧的、对控制器的公钥证书的验证结果(步骤S1650)。
在没有从设备接收到验证成功(步骤S1650为否),且接收到错误通知的情况下(步骤S1660为是),作为该子程序的返回值,设置“错误”(步骤S1670)。
在没有从设备接收到验证成功(步骤S1650为否),且也没有接收到错误的情况下(步骤S1660为否),继续等待来自设备的验证结果。
在从设备接收到验证成功的情况下(步骤S1650为是),控制器与设备通过密钥交换,共有(共同拥有)共有密钥(步骤S1680)。该密钥利用于以后的相互认证中。
然后,控制器将“正常”设置为该子程序的返回值(步骤S1690)。
将在步骤S1690或步骤S1670中设置的返回值作为该子程序的处理结果,并返回至调出源的处理(步骤S1700)。
控制器100的认证处理部103确认设备200a的公钥证书的证书ID没有记载在由认证信息保持部104保持的CRL中(步骤S111)。
在步骤S111中,在设备200a的证书ID没有记载在CRL中的情况下,控制器100的认证处理部103验证赋予给设备200a的公钥证书的认证站的电子签名是否适当(步骤S112)。此时使用的电子签名方式和验证方法基于ECDSA(EllipticCurveDigitalSignatureAlgorithm:椭圆曲线数字签名算法)。关于基于ECDSA的电子签名和验证方法,由于使用记载在非专利文献1等中的通常的技术,所以省略说明。
在步骤S111中设备200a的证书ID记载在CRL中的情况下,或者在步骤S112中电子签名的验证不成功的情况下,认证处理部103判断为设备200a不是合法设备,进行对设备200a的错误通知,并将返回值“错误”返回给作为该子程序的调出源的设备登记处理。此时,在接收到错误通知的设备200a侧也将返回值“错误”返回,控制器与设备这两方结束该子程序处理。
在步骤S112中电子签名的验证成功的情况下,控制器100的认证处理部103判断为设备200a是合法设备,经由通信部105,将控制器自身的控制器ID和公钥证书发送给设备200a(步骤S113)。
设备200a的设备管理部201经由通信部206受理控制器100的控制器ID和公钥证书,并使认证处理部204执行基于PKI的认证处理。认证处理部204首先确认控制器的公钥证书的证书ID没有记载在由认证信息保持部205保持的CRL中这一情况(步骤S114)。
在步骤S114中,在控制器100的证书ID没有记载在CRL中的情况下,设备200a的认证处理部204验证赋予给控制器100的公钥证书的认证站的电子签名是否适当(步骤S115)。与步骤S112同样地,此时使用的电子签名方式和验证方法基于ECDSA(EllipticCurveDigitalSignatureAlgorithm:椭圆曲线数字签名算法),并省略说明。
在步骤S114中控制器的证书ID记载在CRL中的情况下,或者在步骤S115中电子签名的验证不成功的情况下,认证处理部204判断为控制器100不是合法设备,进行对控制器的错误通知,并将返回值“错误”返回给作为该子程序的调出源的设备登记处理。此时,在接收到错误通知的控制器侧也将返回值“错误”返回,控制器与设备这两方结束该子程序处理。
在步骤S115中电子签名的验证成功的情况下,设备200a的认证处理部204判断为控制器100是合法控制器,并对控制器100通知验证成功(步骤S116)。
接着,设备200a的认证处理部204和控制器100的认证处理部103进行密钥交换作为用于将共有密钥共有的处理(步骤S117、S118)。在这里,实施的密钥交换方式设为ECDH(EllipticCurveDiffie-Hellman),所述ECDH是使用了椭圆曲线加密的密钥交换方式。关于ECDH,由于使用记载在非专利文献2等中的通常的技术,所以省略详细的说明。
在利用ECDH的密钥交换中,控制器100的认证处理部103使用控制器自身的私钥和设备200a的公钥证书所包含的设备200a的公钥,通过预定步骤算出值。另一方面,设备200a的认证处理部204使用设备自身的私钥和控制器100的公钥证书所包含的控制器100的公钥,通过预定步骤算出值。在这里,在控制器100和设备200a的每一个中算出的值成为相同的结果。这样一来,根据共有的值算出共有密钥。在本实施方式中,将AES(AdvancedEncryptionStandard:高级加密标准)的密钥长度128比特作为共有密钥使用,根据上述共有的值计算哈希值,将计算得到的哈希值的高位的128比特作为共有密钥。
在本实施方式中,作为使用了共有密钥的相互认证,进行使用了随机数的挑战应答认证。
沿着图19和图20的流程图,在说明了设备和控制器各自的处理的概要后,沿着图21的时序图,说明包括设备与控制器之间的授受的处理的详细情况。
设备等待从控制器接收控制器制作的随机数A,在没有接收到的情况下(步骤S1810为否),继续等待。
在从控制器接收到随机数A的情况下(步骤S1810为是),设备进行接收到的随机数A的加密,并且进行作为另一随机数的随机数B的制作(步骤S1820)。
然后,设备将作为加密了的随机数A的加密随机数A’和随机数B发送给控制器(步骤S1830)。
之后,设备等待控制器侧的处理。在没有从控制器接收到加密随机数B’、加密会话密钥、加密组密钥以及会话有效期间(步骤S1840为否)且接收到错误的情况下(步骤S1850为是),将“错误”设置为该子程序的返回值(步骤S1880)。
在没有从控制器接收到加密随机数B’、加密会话密钥、加密组密钥以及会话有效期间(步骤S1840为否)且也没有接收到错误的情况下(步骤S1850为否),继续等待接收来自控制器的某一个信息。
在随机数B的验证不成功的情况下(步骤S1860为否),向控制器进行错误通知(步骤S1870)。
然后,将“错误”设置为该子程序的返回值(步骤S1880)。
在随机数B的验证成功的情况下(步骤S1860为是),将从控制器接收到的组密钥和会话密钥解密(步骤S1890)。
然后,设备对控制器通知验证成功(步骤S1900)。
将“正常”设置为该子程序的返回值(步骤S1910)。
将在步骤S1910或步骤S1880中设置的返回值作为该子程序的处理结果,并返回至调出源的处理(步骤S1920)。
控制器制作随机数A,并发送给设备(步骤S2010)。
然后,等待在设备侧的处理中制作的加密随机数A’和随机数B。在没有从设备接收到加密随机数A’和随机数B的情况下(步骤S2020为否),继续等待直到接收到。
在随机数A的验证不成功的情况下(步骤S2030为否),向设备进行错误通知(步骤S2040)。然后,将“错误”设置为该子程序的返回值(步骤S2150)。
在随机数A的验证成功的情况下(步骤S2030为是),将从设备接收到的随机数B加密(步骤S2050)。
然后,确认设备是否是基准设备(步骤S2060)。在设备为最初对控制器进行了连接请求的设备的情况下或在切断了与作为基准设备的设备之间的连接的情况下等未进行基准设备的设定的情况下,将该设备设为基准设备。
在设备是基准设备的情况下(步骤S2060为是),制作组密钥(步骤S2070)。另一方面,在设备不是基准设备的情况下(步骤S2060为否),由于也与该设备共有已经制作并保持的组密钥,所以取得组密钥的数据(步骤S2080)。
另外,控制器进行会话密钥的制作和会话有效期间的设定(步骤S2090)。
然后,用共有密钥对组密钥和会话密钥进行加密(步骤S2100)。
之后,将在步骤S2050~步骤S2100的处理中取得的加密随机数B’、加密会话密钥、加密组密钥以及会话有效期间发送给设备(步骤S2110)。
等待设备侧的验证结果,在没有接收到验证成功(步骤S2120为否),且接收到错误的情况下(步骤S2140为是),将“错误”设置为该子程序的返回值(步骤S2150)。
在没有接收到设备侧的验证结果(步骤S2120为否),且也没有接收到错误的情况下(步骤S2140为否),继续等待来自设备的结果。
在从设备接收到验证成功的情况下(步骤S2120为是),将“正常”设置为该子程序的返回值(步骤S2130)。
将在步骤S2130或步骤S2150中设置的返回值返回至该子程序的调出源的处理(步骤S2160)。
首先,控制器100的认证处理部103制作任意的随机数A,并向设备200a发送(步骤S121)。
设备200a的认证处理部204使用保持的共有密钥对经由通信部206接收到的随机数A进行加密,并制作加密随机数A’(步骤S122)。另外,认证处理部204制作任意的随机数B(步骤S122)。
设备200a的认证处理部204将在步骤S122中加密了的加密随机数A’和随机数B发送给控制器100(步骤S123)。
在步骤S124中随机数A的验证不成功的情况下,控制器的认证处理部103进行对设备的错误通知,并将返回值“错误”返回至该子程序的调出源。此时,在接收到错误通知的设备侧也将返回值“错误”返回,控制器与设备这两方结束该子程序处理。
在步骤S124中随机数A的验证成功的情况下,控制器的认证处理部103用共有密钥对从设备200a接收到的随机数B进行加密,并制作加密随机数B’(步骤S125)。
接着,控制器的认证处理部103参照设备信息保持部102的连接设备管理表1000的基准设备1080这一项目,确认设备200a是否是基准设备。在设备200a是基准设备的情况下,制作组密钥(步骤S126)。组密钥设为AES的密钥长度128比特,由于使用任意的通常技术制作,所以省略说明。另外,在设备200a为最初对控制器进行了连接请求的设备的情况下、切断了与作为基准设备的设备之间的连接的情况下等未进行基准设备的设定的情况下,将该设备200a设定为基准设备,并进行组密钥的制作。
另一方面,在参照连接设备管理表1000并确认了设备200a不是基准设备的情况下,认证处理部103从设备信息保持部102保持的连接设备管理表1000取得已经制作完成的组密钥的信息。
另外,控制器的认证处理部103制作会话密钥(步骤S127)。关于会话密钥,与组密钥同样地,设为AES的密钥长度128比特,使用任意的通常技术制作。
接着,控制器的认证处理部103设定会话有效期间(步骤S128)。此时,认证处理部103将预先确定的预定值(例如,24小时或72小时等)设为会话有效期间。
控制器的认证处理部103使用共有密钥,对在步骤S126、S127中得到的组密钥和会话密钥的信息进行加密(步骤S129)。
认证处理部103经由通信部105,将在步骤S125中进行了加密的加密随机数B’、在步骤S129中进行了加密的加密组密钥、加密会话密钥以及在步骤S128中设定的会话有效期间发送给设备200a(步骤S130)。
设备200a的认证处理部204验证从控制器100接收到的加密随机数B’(步骤S131)。认证处理部204用保持的共有密钥对加密随机数B’进行解密。在解密后的值与在步骤S122中设备200a自身制作的随机数B一致的情况下,认证处理部204判断为随机数B的验证成功。
在步骤S131中随机数B的验证不成功的情况下,认证处理部204判断为控制器100不是合法控制器,并进行对控制器100的错误通知,将返回值“错误”返回至该子程序的调出源。此时,在接收到错误通知的控制器侧也将返回值“错误”返回,控制器与设备这两方结束该子程序处理。
在步骤S131中随机数B的验证成功的情况下,设备200a的认证处理部204用共有密钥对加密组密钥和加密会话密钥进行解密(步骤S132)。
另外,设备200a的认证处理部204对控制器100通知验证成功(步骤S133)。
(设备历史信息发送处理)
图22是表示从设备200a对服务器300发送设备历史信息的步骤的一例的时序图。定期或不定期地进行这样的设备历史信息的发送。另外,在以下说明中,以设备200a的例示进行步骤的说明,但关于设备200b、设备200c,处理的步骤也同样如此。
设备的设备管理部201用会话密钥对存储在设备历史保持部202中的设备历史信息进行加密,并与设备自身的设备ID一起发送给控制器100(步骤S161)。
控制器100的设备管理部101经由通信部105接收设备ID和加密了的设备历史信息。然后,从设备信息保持部102具有的连接设备管理表1000取得与设备ID关联的会话密钥,并将接收到的设备历史信息进行解密(步骤S162)。
控制器100的通信部105与服务器300的通信部305进行SSL认证,并建立加密通信路径(步骤S163)。在这里,由于SSL认证使用通常的技术,所以省略说明。
控制器100的设备管理部101经由通信部105,将控制器自身的控制器ID、从设备接收到的设备ID以及解密后的设备历史信息发送给服务器300(步骤S164)。
服务器300的设备信息管理部301将经由通信部305接收到的控制器ID、设备ID以及设备历史信息登记在设备信息保持部302具有的设备信息管理表1300中(步骤S165)。
(控制信息发送处理)
图23是表示服务器300执行设备200a的控制的步骤的一例的时序图。服务器300对控制器100发送用于控制设备200a的控制请求信息。受理了控制请求的控制器100制作和发送对设备200a的控制命令,并使设备200a执行与控制请求对应的功能。定期或不定期地进行这样的从服务器300对设备200a的控制请求。在控制请求中,例如包括使设备执行的功能、使显示器显示的内容等。
在以下说明中,以设备200a的例示进行步骤的说明,但关于设备200b、设备200c,处理的步骤也同样如此。
服务器300的通信部305与控制器100的通信部105进行SSL认证,并建立加密通信路径(步骤S171)。
服务器300的设备信息管理部301制作用于使设备200a执行预定的工作的控制请求信息。然后,经由通信部305发送给控制器100(步骤S172)。
控制器100的设备管理部101经由通信部105接收控制请求信息。然后,设备管理部101确认该控制请求信息是对网络内的哪台设备的怎样的控制请求,并根据该控制请求,制作用于使设备200a执行的控制命令(步骤S173)。
然后,在步骤S173中制作的控制命令是面向多个设备的指示的情况下,控制器100的设备管理部101使用组密钥对控制命令进行加密(步骤S174)。此时,也可以将意味着使用组密钥进行了加密之意的信息赋予给将要发送的控制命令的头部分。
在步骤S173中制作的控制命令是面向单一设备的指示的情况下,控制器100的设备管理部101使用会话密钥对控制命令进行加密(步骤S175)。此时,也可以将意味着使用会话密钥进行了加密之意的信息赋予给将要发送的控制命令的头部分。
控制器100的通信部105将使用组密钥或会话密钥进行了加密的控制命令发送给对象设备(步骤S176)。
设备200a经由通信部105接收进行了加密的控制命令,并用组密钥或会话密钥进行解密(步骤S177)。此时,也可以使用在步骤S174或步骤S175中赋予给头部分的信息来判断使用组密钥或会话密钥中的哪一方来进行解密的判断。或者,也可以使用组密钥和会话密钥中的每一个对控制命令进行解密,并使用解密结果来进行判断。
(设备历史信息MAC发送处理)
在从设备向控制器发送设备历史信息的情况下,由本来设备历史信息的发送未被准许的第三方进行的、向发送源设备的欺诈发送有时会成为问题。
在这里说明的设备历史信息MAC发送处理为了对抗上述欺诈发送,发送源设备除了设备历史信息的加密以外,还生成包括头、发送源地址以及发送目的地地址的MAC,与加密了的设备历史信息一起发送所生成的MAC。
因此,例如,即使第三方进行利用篡改的欺诈发送,也能够通过进行对MAC的MAC验证来检测该篡改,所述篡改对头、发送源地址以及发送目的地地址等进行改写,所述MAC包括头、发送源地址、发送目的地地址以及设备历史信息。
以下,参照图24、图25,并列举设备200a对连接到家庭局域网400的全部其他设备(在这里,设为设备200b。)和控制器100组播发送设备历史信息的情况来说明设备历史信息MAC发送处理。
图24(a)是包括加密前的设备历史信息(以下,为了方便起见,也将该加密前的设备历史信息和后述的控制信息MAC发送处理中的加密前的控制信息称为“发送数据”。)的加密前的消息格式的数据结构图。
如该图所示,加密前的消息格式由头2401、发送源地址2402、发送目的地地址2403以及发送数据2404构成。
头2401包括在发送数据被分割为多个包(packet)的情况下赋予的片段的标志和片段的编号等。
发送源地址2402是对发送数据2404进行发送的设备的地址,例如是IP(InternetProtocol:互联网协议)地址、MAC(MediaAccessControl:媒体访问控制)地址等,并包括对将要进行发送的设备进行识别的信息。
发送目的地地址2403是接收发送数据2404的设备或控制器的地址,例如是IP地址、MAC地址等,并包括对接收的设备或控制器进行识别的信息。也可以设为包括组播发送中的组播地址。
设备200将发送数据2404作为明文进行加密。另外,将头2401、发送源地址2402、发送目的地地址2403以及发送数据2404作为明文来生成MAC。此时,加密也可以用AES加密,MAC的生成用AES的CBC-MAC(CipherBlockChainingMAC)、HMAC(Hash-basedMAC)生成。另外,也可以用AES-CCM(CounterwithCBCMAC)或AES-GCM(Galois/CounterMode)等附认证加密来进行加密和认证用数据的制作。在进行附认证加密的情况下,加密也将发送数据2404作为明文,MAC生成也将头2401、发送源地址2402、发送目的地地址2403以及发送数据2404作为明文来实施。
图24(b)是加密后的消息格式的数据结构图。
如该图所示,加密后的消息格式包括头2401、发送源地址2402、发送目的地地址2403以及附认证加密数据2405。
附认证加密数据2405是将加密了的发送数据和MAC结合而成的数据。
图25是表示以从设备200a对连接到家庭局域网400的其他全部设备和控制器(在这里,是设备200b和控制器100)组播发送设备历史信息的情况下的步骤作为设备历史信息MAC发送处理步骤的一例的时序图。
这样的设备历史信息的发送定期或不定期地进行。
设备200a用组密钥对存储在设备历史保持部202中的设备历史信息进行加密。此时,也可以将用组密钥进行了加密之意的信息赋予给将要发送的历史信息的头部分。
然后,设备200a根据头、发送源地址、发送目的地地址以及历史信息生成MAC(步骤S2501)。
当生成MAC时,设备200a用图24(b)所示的加密后的消息格式的形式,利用同时播报通信(broadcast)对设备200b和控制器100发送附认证加密数据(步骤S2502)。另外,此时,设备200a也一并发送自身的设备ID。
控制器100用组密钥将从设备200a接收到的加密了的发送数据解密并取得设备历史信息,并使用头、发送源地址、发送目的地地址以及发送数据进行MAC验证(步骤S2503)。此时,也可以在对头赋予了用组密钥进行了加密之意的信息的情况下,参照该信息,决定用组密钥解密。
在步骤S2504的处理中MAC验证成功的情况下(步骤S2504:是),控制器100在与服务器300之间进行SSL认证,并建立加密通信路径(步骤S2505)。
控制器100将自身的控制器ID、从设备200a接收到的设备ID以及解密后的设备历史信息发送给服务器300(步骤S2506)。
服务器300将从控制器100接收到的控制器ID、设备ID以及设备历史信息登记在设备信息保持部302具有的设备信息管理表1300中(步骤S2507)。
在步骤S2504的处理中MAC验证不成功的情况下(步骤S2504:否),控制器100不进行向服务器300的设备历史信息的发送。另外,也可以在MAC验证不成功的情况下,对与家庭局域网400连接的全部其他设备和控制器进行MAC验证不成功之意的通知。
设备200b用组密钥将从设备200a接收到的加密了的发送数据解密并取得设备历史信息,并使用头、发送源地址、发送目的地地址以及发送数据进行MAC验证(步骤S2508)。此时,也可以在对头赋予了用组密钥进行了加密之意的信息的情况下,参照该信息,决定用组密钥解密。
在步骤S2509的处理中MAC验证成功的情况下(步骤S2509:是),设备200b能够进行利用了设备历史信息的处理(步骤S2510)。
在步骤S2509的处理中MAC验证不成功的情况下(步骤S2509:是),设备200b不进行利用了设备历史信息的处理。另外,也可以在MAC验证不成功的情况下,对与家庭局域网400连接的全部其他设备200和控制器100进行MAC验证不成功之意的通知。
在这里,列举设备200a对连接到家庭局域网400的全部其他设备200和控制器100组播(multicast)发送设备历史信息的情况为例,说明设备历史信息MAC发送处理。
与此相对,也可考虑在步骤S2502的处理中,设备200a将设备历史信息仅向控制器100发送,而不向与家庭局域网400连接的其他设备发送的情况的例子。
在该情况下,不会发生步骤S2508~步骤S2510的处理。另外,在该情况下,也可以在步骤S2501的处理中,设备200a用会话密钥加密设备历史信息,在步骤S2503的处理中,控制器100用会话密钥解密设备历史信息。
(控制信息MAC发送处理)
在从控制器向设备发送控制命令的情况下,有时由本来未被准许发送控制命令的第三方进行的、向发送源控制器的欺诈发送成为问题。
在这里说明的控制信息MAC发送处理中,为了对抗上述欺诈发送,发送源控制器除了控制命令的加密以外,还生成包括头、发送源地址、发送目的地地址以及控制命令的MAC,与加密了的控制命令一起发送生成的MAC。
因此,例如,即使第三方进行由改写头、发送源地址以及发送目的地地址等的篡改导致的欺诈发送,也能够通过进行对包括头、发送源地址以及发送目的地地址的MAC的MAC验证来检测该篡改。
以下,参照图24、26并说明变更了控制信息发送处理(参照图23等)中的一部分处理而成的控制信息MAC发送处理。
如上所述,图24(a)是加密前的消息格式的数据结构图。
在设备历史信息MAC发送处理中,说明了发送数据2404为加密前的设备历史信息的情况,但在该控制信息MAC发送处理中,成为发送数据2404是加密前的控制命令的情况的例子。
如上所述,图24(b)是加密后的消息格式的数据结构图。
在设备历史信息MAC发送处理中,说明了附认证加密数据2405是将加密了的历史信息和MAC结合而成的数据的情况,在该控制信息MAC处理中,成为附认证加密数据2405是将加密了的控制命令和MAC结合而成的数据的情况的例子。
该控制信息MAC发送处理是将上述控制信息发送处理中的处理的一部分变更而成的处理。
定期或不定期地进行这样的控制信息MAC发送处理。
步骤S2601~步骤S2603的处理与控制信息发送处理中的步骤S171~步骤S173的处理是同样的处理。因此,由于这些处理的说明已经完成,所以省略。
当步骤S2603的处理结束时,在步骤S2603的处理中生成的控制命令是面向多个设备的指示的情况下,控制器100用组密钥加密所生成的控制命令。此时,也可以将用组密钥进行了加密之意的信息赋予给将要发送的控制命令的头部分。
然后,控制器100根据头、发送源地址、发送目的地地址以及控制命令生成MAC(步骤S2604)。
在步骤S2603的处理中生成的控制命令是面向单一设备的指示的情况下,控制器100用会话密钥加密生成的控制命令。此时,也可以将用组密钥进行了加密之意的信息赋予给将要发送的控制命令的头部分。
然后,控制器100根据头、发送源地址、发送目的地地址以及控制命令生成MAC(步骤S2605)。
当生成MAC时,控制器以图24(b)所示的加密后的消息格式的形式,对成为对象的设备发送附认证加密数据(步骤S2606)。
接收到附认证加密数据的设备(在这里,作为接收到附认证加密数据的设备的代表,例如,使用设备200a进行说明。)用组密钥或会话密钥将从控制器100接收到的加密了的发送数据解密并取得控制命令,并使用头、发送源地址、发送目的地地址以及发送数据进行MAC验证(步骤S2607)。此时,也可以在对头赋予了用组密钥进行了加密之意的信息或用会话密钥进行了加密之意的信息的情况下,参照该信息,决定使用组密钥和会话密钥中的哪一个来进行解密。
在步骤S2608的处理中MAC处理成功的情况下(步骤S2608:是),设备200a按照解密而成的控制命令的指示进行工作(步骤S2609)。
在步骤S2608的处理中MAC处理不成功的情况下(步骤S2608:否),设备200a不按照解密后的控制命令的指示。另外,也可以在MAC验证不成功的情况下,对与家庭局域网400连接的全部其他设备200和控制器100进行MAC验证不成功之意的通知。
在这里,对MAC对象(参照图24(a))包括头2401、发送源地址2402、发送目的地地址2403以及发送数据2404进行说明。此外,在利用会话密钥加密发送数据的情况下,MAC对象也可以仅包括发送数据2404。在该情况下,在发送数据2404中包括计数器、时序编号等。由于仅控制器100和相应的设备200共有会话密钥,所以由第三方导致的欺诈或重传攻击很困难。
在本公开的一个技术方案中,在控制命令的发送中,可以按如下方式进行。
在从控制器100向设备200的控制命令由多个控制命令构成的情况下,也可以将多个控制命令作为多个发送数据进行发送。此时,对多个发送数据的头赋予片段的标志、片段的编号等并进行发送。在头中有片段的标志的情况下,由于控制命令包括多个发送数据,所以接收到发送数据的设备200在接收到多个发送数据后执行控制命令。此时,在对全部发送数据加密而生成了MAC的情况下,在多个发送数据中、某一个的MAC验证不成功时,不执行控制命令。另外,也可以在多个发送数据中、某一个的MAC验证不成功的情况下,废弃发送数据而不进行以后的赋予了片段标志的发送数据的MAC验证。由此,能够减轻接收到发送数据的设备200、控制器100的处理。
也可以在不对全部发送数据生成MAC的情况下,将全部发送数据的头、发送源地址、发送目的地地址以及控制命令结合,生成MAC并对最后的发送数据赋予MAC。由此,能够仅执行一次MAC验证来验证全部发送数据的完整性,并能够减轻接收到发送数据的设备200、控制器100的处理。
在这里,关于控制信息MAC发送处理,以发送数据2404为控制命令进行了说明,但不一定限于发送数据2404为控制命令的情况,例如,也可考虑发送数据2404是从服务器300对设备200a的通知的情况的例子。
在该情况下,不发生步骤S2603的处理,控制器100将从服务器300接收到的通知按原样(直接)作为发送数据2404加以利用,并进行步骤S2604以后的处理。另外,在该情况下,在步骤S2608的处理中,设备200a在MAC处理成功的情况下(步骤S2608:是),进行将解密后的通知存储的处理来取代进行步骤S2609的处理,在MAC处理不成功的情况下(步骤S2608:否),不进行将解密后的通知存储的处理。
<1.4汇总>
本实施方式通过从与控制器连接的多台设备之中设置基准设备,在基准设备中的组密钥更新的定时,控制器进行对其他设备的更新通知,由此使其他设备执行组密钥的更新。由此,能够匹配与控制器连接的多台设备的组密钥更新定时,即使控制器与各设备进行相互认证和组密钥更新,控制器也能够进行加密了的信息的同时发送。
<2.实施方式2>
<2-1.概要>
以下,为了便于说明,对于与实施方式1同样的构成,使用相同的标号。另外,对于与实施方式1同样的构成,省略说明并重点说明不同之处。
<2-2.构成>
本实施方式中的认证系统、控制器、设备、服务器的构成分别是与实施方式1中的认证系统10、控制器100、设备200a~设备200c、服务器300同样的构成。但是,控制器100的设备信息保持部102保持的连接设备管理表的数据结构与实施方式1一部分不同。
图24是表示本实施方式中的连接设备管理表2000的数据结构和数据的一例的图。
其中,步骤S128中的控制器100的会话有效期间的设定方法与实施方式1不同。
在本实施方式中,在设备为基准设备的情况下,控制器100的认证处理部103将预先确定的预定值(例如24小时或72小时等)设定为会话有效期间。但是,在设备不是基准设备的情况下,按如下方式设定会话有效期间(步骤S128)。
图25和图26是表示设备和控制器各自的、在本实施方式中的会话更新处理的步骤的一例的流程图,图27是表示包括设备与控制器之间的授受的、会话更新处理的步骤的一例的时序图。
沿着图25和图26的流程图,在说明了设备和控制器各自的处理的概要后,沿着图27的时序图,说明包括设备与控制器之间的授受的处理的详细情况。
首先,沿着图25的流程图,说明设备中的会话更新处理的概要。
另一方面,在步骤S3030的子程序的返回值为“错误”的情况下(步骤S3040为否),结束会话更新处理而不进行会话的更新。
接着,沿着图26的流程图,说明控制器中的会话更新处理的概要。
控制器等待来自设备的会话更新请求(步骤S3110)。如果未接收到(步骤S3110为否),则继续等待来自设备的会话更新请求。
另一方面,在步骤S3120的子程序的返回值为“错误”的情况下(步骤S3130为否),不进行与正在执行该会话更新的设备之间的会话更新。
然后,在还存在没有更新会话的设备的情况下(步骤S3150为是),返回至最初的步骤,等待来自该会话未更新设备的会话更新请求(步骤S3110)。
在对全部设备完成会话更新处理的情况下(步骤S3150为否),结束会话更新处理。
从现在起,沿着图27的时序图,以与实施方式1的差别为中心,加入设备与控制器之间的授受来进行说明。关于设备,作为一例,设为设备200a是基准设备,设备200b是基准设备以外的设备。
关于“基于PKI的相互认证~共有密钥的制作”、“设备历史信息发送处理”以及“控制信息发送处理”,由于与实施方式1相同,所以省略说明。
<2-4.汇总>
<3.实施方式3>
<3-1.概要>
本实施方式涉及的认证系统的不同之处在于:控制器和各设备保持用于当前使用的组密钥和用于更新后使用的组密钥这两种组密钥。
以下,为了便于说明,对于与上述实施方式同样的构成,使用相同的标号。另外,对于与上述实施方式同样的构成,省略说明并重点说明不同之处。
<3-2.构成>
本实施方式中的认证系统、控制器、设备、服务器的构成分别是与实施方式2中的认证系统10、控制器100、设备200a~设备200c、服务器300同样的构成。但是,控制器100的设备信息保持部102保持的连接设备管理表的数据结构的一部分和设备信息保持部203保持的连接控制器管理表的数据结构的一部分与上述实施方式不同。
图28是表示在本实施方式中控制器100的设备信息保持部102具有的连接设备管理表3000的数据结构和数据的一例的图。
图29是表示在本实施方式中设备的设备信息保持部203具有的连接控制器管理表3100的数据结构和数据的一例的图。
在这里,控制器和各设备使用作为组密钥(当前)保持的加密密钥,进行控制器对各设备同时发送的信息的加密。另一方面,组密钥(新)是保持在控制器与基准设备之间的会话更新处理中新制作的组密钥的项目。
<3-3.工作>
其中,在步骤S104中,在设备200a的认证处理部204经由设备管理部201登记连接控制器管理表3100时,在步骤S103中制作的组密钥的信息登记在组密钥(当前)3140这一项目中(步骤S104)。
另外,在步骤S106中,在控制器100的设备管理部101登记连接设备管理表3000时,组密钥的信息也登记在组密钥(当前)3040这一项目中(步骤S106)。
图30和图31是表示设备和控制器各自的、在本实施方式中的会话更新处理的步骤的一例的流程图,图32是表示包括设备与控制器之间的授受的、会话更新处理的步骤的一例的时序图。
沿着图30和图31的流程图,在说明设备和控制器中的处理的概要后,沿着图32的时序图,说明包括设备与控制器之间的授受的处理的详细情况。
首先,沿着图30的流程图,说明设备中的会话更新处理的概要。
然后,设备等待来自控制器的组密钥更新通知(步骤S4060)。在没有接收到组密钥更新通知的情况下(步骤S4060为否),继续等待直到接收到。
在接收到组密钥更新通知的情况下(步骤S4060为是),通过替换当前使用的组密钥和在步骤S4030中新制作的组密钥来进行组密钥的更新(步骤S4070)。
另一方面,在步骤S4030的子程序的返回值为“错误”的情况下(步骤S4040为否),结束会话更新处理而不进行会话更新。
接着,沿着图31的流程图,说明控制器中的会话更新处理的概要。
控制器等待来自设备的会话更新请求(步骤S4110)。如果未接收到(步骤S4110为否),则继续等待来自设备的会话更新请求。
另一方面,在步骤S4120的子程序的返回值为“错误”的情况下(步骤S4130为否),不进行对正在执行该会话更新的设备的会话更新。
在还存在没有更新会话的设备的情况下(步骤S4150为是),返回最初的步骤,等待来自该会话未更新设备的会话更新请求(步骤S4110)。
在对全部设备完成会话更新处理的情况下(步骤S4150为否),对使用同一组密钥的设备发送组密钥更新通知(步骤S4160)。
然后,控制器自身也通过替换当前使用的组密钥和在步骤S4120中新制作的组密钥来进行组密钥的更新(步骤S4170)。
从现在起,沿着图32的时序图,以与实施方式2的差别为中心,加入设备与控制器之间的授受进行说明。关于设备,作为一例,设为设备200a是基准设备,设备200b是基准设备以外的设备。
然后,控制器100的设备管理部101参照连接设备管理表3000的会话更新状态3080这一项目,确认是否有“未更新”的设备。此时,在存在会话更新状态这一项目为“未更新”的设备的情况下,等待来自该设备的会话更新请求。在不存在会话更新状态为“未更新”的设备的情况下,控制器的设备管理部101对使用同一组密钥进行加密通信的全部设备进行组密钥更新通知(步骤S311)。
当设备的设备管理部201接收到组密钥更新通知时,用连接控制器管理表3100的组密钥(新)3150保持的值来覆写更新组密钥(当前)3140的值,并删除设置在组密钥(新)3150中的值。
控制器100的设备管理部101也同样地,在用连接设备管理表3000的组密钥(新)3050保持的值覆写更新组密钥(当前)3040之后,删除设定在组密钥(新)3050中的值。
其中,在控制器向设备同时发送的信息的加密中使用的加密密钥使用控制器和设备各自作为“组密钥(当前)”保持的加密密钥。
<3-4.汇总>
<4.变形例>
以上,基于实施方式说明了使用本公开涉及的认证方法的认证系统,但当然也能够按以下方式进行变形,本公开不限于上述实施方式所示的认证方法。
(1)在上述实施方式中,控制器和设备与一个网络连接。该网络既可以是家庭局域网,也可以是其他局域网。
(2)在上述实施方式中,对一个控制器设定了一个组密钥,但也可以设定多个组密钥。此时,按使用相同的组密钥的设备设定一台基准设备。
(3)在上述实施方式中,在删除了控制器与基准设备之间的连接的情况下,控制器从设备信息保持部保持的连接设备管理表中提取其他设备并设定为基准设备。此时,基准设备可以指定电源始终接通的设备。例如,可以指定冰箱等电源始终接通并工作的设备。
(4)在上述实施方式中的使用了共有密钥的相互认证中,进行使用共有密钥和随机数的挑战应答认证,但并不限定于此。例如,也可以使用RFC5191ProtocolforCarryingAuthenticationforNetworkAccess(PANA)的认证方式。关于RFC5191,由于使用记载在非专利文献3中的通常的技术,所以省略说明。
在使用RFC5191的情况下,也可以进一步使用EAP-PSK进行认证。另外,也可以使用作为EAP-PSK的协商的结果导出的EMSK来导出会话密钥。进而,作为此时的密钥导出函数,也可以使用HMAC_SHA2_256。
(5)在上述实施方式中,在设备登记处理时和会话更新处理时,控制器制作组密钥,并对设备分发。但是,不限定于此,也可以通过在控制器与基准设备之间进行基于ECDH、DH(Diffie-Hellman)的密钥交换,从而共有组密钥。
另外,控制器和基准设备分别生成随机数,并用共有密钥加密所生成的随机数并发送给对方。而且,也可以用共有密钥解密接收到的加密随机数,并将自身生成的随机数与解密得到的随机数的异或运算的结果作为组密钥。
这亦可以作为控制器和各设备中的会话密钥的制作步骤使用。
(6)本公开涉及的控制器可以是用于控制器的专用设备。另外,也可以是设置于家庭的配电盘。既可以是其他的电视机等AV设备,也可以是家电设备等。
(7)控制器也可以具有显示连接的设备的耗电量(功耗量)、蓄电池的功耗以及太阳光发电的发电量的功能。
(8)本公开涉及的控制器与设备之间的通信方式可以是Ethernet(注册商标)、Wi-Fi(WirelessFidelity)、特定小功率无线、电力线通信以及Bluetooth(注册商标)。
(9)在上述实施方式1中,在会话更新处理中,在存在会话未更新的设备的情况下,通过对该设备发送会话更新通知,使设备开始会话更新。在这里,也可以在该设备的电源没有接通的情况下,控制器对该设备定期地发送会话更新通知。
(13)在上述实施方式中,在设备与控制器之间,共有了用于进行一对一加密单播通信的会话密钥。但是,也可以不共有会话密钥,用组密钥进行设备与控制器间的全部加密通信。
(14)在上述实施方式中,在会话更新处理中,更新组密钥和会话密钥这两方,但不限定于此,也可以在会话更新处理时中,仅更新组密钥或仅更新会话密钥。
(15)具体而言,作为上述实施方式中的认证系统涉及的装置的控制器、设备以及服务器由处理器、存储器等构成。在存储器中记录有计算机程序。通过处理器按照记录在存储器中的计算机程序进行工作,各装置实现其功能。在这里,计算机程序是为了实现预定的功能而将表示对计算机的指令的多条命令代码组合而构成的。
(16)构成上述实施方式中的认证系统涉及的各装置的构成要素的一部分或全部可以包括一个系统LSI(LargeScaleIntegration:大规模集成电路)。构成上述各装置的构成要素的各部分既可以形成为独立的单片,也可以形成为包括一部分或全部的单片。
另外,虽然在这里记述为系统LSI,但根据集成度的不同,有时也称呼为IC(IntegratedCircuit:集成电路)、LSI、超级LSI以及超大规模LSI。另外,集成电路化的方法不限于LSI,也可以用专用电路或通用处理器来实现。在LSI制造后,也可以利用可编程的FPGA(FieldProgrammableGateArray:现场可编程门阵列)、能够将LSI内部的电路单元的连接、设定重构的可重构处理器。
进而,如果因半导体技术的进步或派生的其他技术出现代替LSI的集成电路化的技术,当然也可以使用该技术进行功能块的集成化。也有可能应用生物技术等。
(17)构成上述实施方式中的认证系统涉及的各装置的构成要素的一部分或全部可以由可拆装于各装置的IC卡或单个模块构成。该IC卡或该模块也可以具有防篡改性。
(18)本公开也可以是上述的方法。另外,既可以是利用计算机实现这些方法的计算机程序,也可以是由所述计算机程序构成的数字信号。也可以将这些计算机程序存储在存储器中,并利用处理器执行。
另外,本公开也可以将所述计算机程序或所述数字信号记录于计算机可读记录介质,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(注册商标)Disc)以及半导体存储器等。另外,也可以是记录在这些记录介质中的所述数字信号。
另外,本公开也可以经由电通信线路、无线或有线通信线路、以互联网为代表的网络以及数据同时播报等传送所述计算机程序或所述数字信号。
另外,本公开是具备处理器和存储器的计算机系统,所述存储器记录有上述计算机程序,所述处理器按照所述计算机程序工作。
此外,也可以通过将所述计算机程序或所述数字信号记录在所述记录介质中进行移送、或者通过将所述计算机程序或所述数字信号经由所述网络等移送,从而由其他独立的计算机系统实施。
(19)本公开也可以将上述各实施方式和上述各变形例部分地组合。
<5.补充>
以下,进一步说明本公开涉及的认证方法的一个实施方式及其效果。
(a)本公开涉及的认证方法是控制器、第一设备以及第二设备共有组密钥,且所述控制器对所述第一设备和所述第二设备进行使用所述组密钥加密了的信息的同时发送的认证系统中的所述控制器、所述第一设备以及所述第二设备之间的认证方法,其特征在于,包括:第一相互认证步骤,所述控制器与所述第一设备执行相互认证,制作组密钥并共有,并且将所述第一设备设定为基准设备;第二相互认证步骤,所述控制器与所述第二设备执行相互认证,并使所述第二设备也共有在所述第一相互认证步骤中制作而成的组密钥;第三相互认证步骤,在所述第二相互认证步骤之后,所述控制器与作为所述基准设备的所述第一设备再次执行相互认证,更新所述组密钥,并共有更新后的组密钥;以及第四相互认证步骤,在所述控制器和所述基准设备更新所述组密钥的组密钥更新定时,所述控制器与不是所述基准设备的所述第二设备执行相互认证,并使所述第二设备也共有所述更新后的组密钥。
由此,通过从连接到控制器的设备之中设定基准设备,其他设备基于该基准设备中的组密钥更新的定时进行组密钥的更新,从而能够匹配多个设备间的组密钥更新的定时,即使控制器与各设备进行相互认证和组密钥更新,控制器也能够进行加密了的信息的同时发送。
(b)也可以在上述(a)涉及的认证方法中,所述控制器、所述第一设备以及所述第二设备与一个家庭局域网连接。
由此,能够匹配连接到家庭局域网的控制器与各个设备之间的组密钥更新定时,即使控制器与各设备进行相互认证和组密钥更新,控制器也能够进行加密了的信息的同时发送。
(c)在上述(a)涉及的认证方法中,还可以包括组密钥更新通知步骤,当所述控制器与作为所述基准设备的所述第一设备更新所述组密钥并共有时,对没有共有该更新后的组密钥的所述第二设备发送组密钥更新通知,所述组密钥更新定时是所述第二设备接收到所述组密钥更新通知的定时。
由此,在控制器与基准设备之间更新组密钥以后,没有共有该更新后的组密钥的设备从控制器接收组密钥更新通知并更新组密钥,由此能够匹配与控制器连接的多台设备的组密钥更新定时。
由此,控制器与基准设备以外的设备之间的会话期间基于控制器与基准设备之间的会话剩余期间而设定,通过与连接到控制器的各设备基于该会话期间进行组密钥更新,能够匹配与控制器连接的多台设备的组密钥更新定时。
(e)在上述(a)涉及的认证方法中,也可以包括第一共有密钥共有步骤,所述控制器拥有控制器自身的私钥和公钥证书,所述第一设备拥有第一设备自身的私钥和公钥证书,进而所述控制器和所述第一设备制作第一共有密钥并共有;所述第一相互认证步骤中的相互认证是基于公钥基础设施(PublicKeyInfrastructure),使用彼此拥有的所述公钥证书进行相互认证的公钥认证,所述第三相互认证步骤中的相互认证是使用所述第一共有密钥进行相互认证的共有密钥认证。
(f)也可以在上述(e)涉及的认证方法中,所述第一共有密钥共有步骤中,所述控制器和所述第一设备通过密钥交换共有第一共有密钥,所述共有密钥认证中,所述控制器和所述第一设备基于使用相互制作而成的随机数和所述第一共有密钥的挑战应答认证进行相互认证。
由此,控制器和设备能够通过使用了共有密钥和随机数的挑战应答认证,确认彼此的合法性。
(g)也可以是,在上述(e)涉及的认证方法中,包括第二共有密钥共有步骤,所述第二设备拥有第二设备自身的私钥和公钥证书,进而所述控制器和所述第二设备制作第二共有密钥并共有,所述第二相互认证步骤中的相互认证是基于公钥基础设施,并使用彼此拥有的所述公钥证书进行相互认证的公钥认证,所述第四相互认证步骤中的相互认证是使用所述第二共有密钥进行相互认证的共有密钥认证。
(h)本公开涉及的认证系统是控制器、第一设备以及第二设备共有组密钥,且所述控制器对所述第一设备和所述第二设备进行使用所述组密钥加密了的信息的同时发送的认证系统,其特征在于,具备:第一相互认证单元,所述控制器与所述第一设备执行相互认证,制作组密钥并共有,并且将所述第一设备设定为基准设备;第二相互认证单元,所述控制器与所述第二设备执行相互认证,并使所述第二设备也共有在所述第一相互认证步骤中制作而成的组密钥;第三相互认证单元,在所述第二相互认证步骤之后,所述控制器与作为所述基准设备的所述第一设备再次执行相互认证,更新所述组密钥,并共有更新后的组密钥;以及第四相互认证单元,在所述控制器和所述基准设备更新所述组密钥的组密钥更新定时,使所述控制器与不是所述基准设备的所述第二设备执行相互认证,并使所述第二设备也共有所述更新后的组密钥。
产业上的可利用性
本公开涉及的认证方法能够活用于在控制器对连接的多台设备进行使用组密钥加密了的信息的同时发送的网络系统中,控制器与各设备之间的相互认证和组密钥更新等。