WO2020157928A1 - データ送信方法、通信処理方法、装置、および通信処理プログラム - Google Patents

データ送信方法、通信処理方法、装置、および通信処理プログラム Download PDF

Info

Publication number
WO2020157928A1
WO2020157928A1 PCT/JP2019/003445 JP2019003445W WO2020157928A1 WO 2020157928 A1 WO2020157928 A1 WO 2020157928A1 JP 2019003445 W JP2019003445 W JP 2019003445W WO 2020157928 A1 WO2020157928 A1 WO 2020157928A1
Authority
WO
WIPO (PCT)
Prior art keywords
encrypted packet
packet
address
public key
encrypted
Prior art date
Application number
PCT/JP2019/003445
Other languages
English (en)
French (fr)
Inventor
久利寿 帝都
Original Assignee
コネクトフリー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コネクトフリー株式会社 filed Critical コネクトフリー株式会社
Priority to EP19913938.7A priority Critical patent/EP3920479A4/en
Priority to PCT/JP2019/003445 priority patent/WO2020157928A1/ja
Priority to JP2020569289A priority patent/JP7218003B2/ja
Priority to US17/426,054 priority patent/US11962575B2/en
Priority to TW109102812A priority patent/TWI828848B/zh
Publication of WO2020157928A1 publication Critical patent/WO2020157928A1/ja
Priority to JP2023006080A priority patent/JP2023055755A/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2801Broadband local area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use

Definitions

  • the present disclosure relates to data communication technology between devices having an authenticated IP address.
  • ICT Information and Communication Technology
  • IP Internet Protocol
  • routing In order to realize data communication between devices, the data sent from the source device must be transferred to the destination device. Such a data transfer process is called “routing” or the like. In order to realize such routing, many routers are arranged on the network.
  • the router has a route information table that stores route information, and the internetworking address in the received frame and the route information table According to the contents, the route is determined and the received frame is relayed (see paragraphs [0005] and [0006] of JP-A No. 05-022293).
  • Patent Document 1 assuming a network in which a large number of devices exist, a large number of routers are required, and the responsibility of each router also increases. Therefore, in a network including a large number of devices, it is preferable that each device can realize data communication independently.
  • the present disclosure provides a solution such as a data transmission method in which each device independently realizes data communication in a network including a large number of devices.
  • a data communication method in a network in which a plurality of devices are connected is provided.
  • a data communication method in a first device, encrypting a packet destined for a second device with a first encryption key associated with a second device to generate a first encrypted packet, Determining a device to which the first encrypted packet is to be sent, encrypting the first encrypted packet with a second encryption key associated with the determined device, and generating a second encrypted packet; The step of transmitting to the determined device, and the device receiving the second encrypted packet, decrypts the second encrypted packet into the first encrypted packet, and the decrypted first encrypted packet is If the decrypted first encrypted packet is not destined to the self device by the step of deciding whether it is destined to the self device and the decision whether it is destined for the self device, another device is determined and transmitted. If the decrypted first encrypted packet is addressed to the device itself, further decrypting the first encrypted packet.
  • the above-described data communication method includes a step of transmitting, in each of a plurality of devices, a public key held by each device and a digital certificate associated with the public key to another device, and the public key and the digital certificate.
  • the device which has received the step may further include the step of determining the IP address of the device that is the transmission source of the public key and the electronic certificate based on the hash value calculated from the public key according to the hash function.
  • a communication processing method in a device connected to a network is provided.
  • the communication processing method is executed when a packet addressed to another device is given, and the packet is encrypted with a first encryption key associated with the other device to generate a first encrypted packet. And a step of determining a device to which the first encrypted packet is transmitted, and encrypting the first encrypted packet with a second encryption key associated with the determined device to obtain the second encrypted packet. Generating and transmitting the second encrypted packet to the determined device.
  • the communication processing method is further executed when receiving the second encrypted packet from the other device, the step of decrypting the second encrypted packet into the first encrypted packet, and the decrypted first encrypted packet.
  • a step of determining whether or not the encrypted packet is addressed to the own device by determining whether or not the encrypted packet is addressed to the own device; Determining a further device to which the encrypted packet is sent, and generating and transmitting a second encrypted packet using the second encryption key associated with the determined device; If the first encrypted packet is addressed to the device itself, the step of further decrypting the first encrypted packet is included.
  • the device to be the destination may be determined based on the IP address of each device.
  • the communication processing method described above includes a step of obtaining a private key and a public key, a step of determining an IP address of the own device based on a hash value calculated from the public key according to a hash function, and a public key from the certificate authority.
  • the method may further include obtaining an associated digital certificate and transmitting the public key and the digital certificate to another device.
  • the step of determining the validity of the digital certificate and the determination that the digital certificate is valid And a step of determining the IP address of another device based on the hash value calculated from the public key according to the hash function.
  • the above-described communication processing method may further include a step of searching for an IP address of a device of the destination, which is executed when a packet destined to another device is given.
  • the communication processing method described above further includes the steps of establishing a session with another device and determining a first encryption key, which is executed when a packet addressed to the other device is given. Good.
  • the communication processing method described above establishes a session with another device that is a destination of the first encrypted packet and is executed when the second encrypted packet is received from the other device. , And may further include the step of determining the second encryption key.
  • a device including a network interface for connecting to a network and a control unit connected to the network interface.
  • the control unit can execute a process of encrypting the packet into a first encrypted packet using a first encryption key associated with another device, and a process of decrypting the first encrypted packet.
  • 1 encryption/decryption unit and encrypts the first encrypted packet into a second encrypted packet using the second encryption key associated with the device to which the first encrypted packet is sent.
  • a second encryption/decryption unit capable of executing a process and a process of decrypting a second encrypted packet, and a packet destined to another device is a first encryption/decryption unit and a second encryption unit.
  • a transmission management unit that transmits the second encrypted packet generated by being encrypted in each of the encryption/decryption units to the destination device.
  • the transmission management unit determines whether or not the first encrypted packet generated by decrypting the second encrypted packet received from another device by the second encryption/decryption unit is addressed to the own device. If it is determined that the generated first encrypted packet is not addressed to its own device, the second encrypted packet generated by encrypting the first encrypted packet in the second encryption/decryption unit The encrypted packet is further transmitted to another device, and if the generated first encrypted packet is addressed to the own device, the first encrypted packet is further decrypted by the first encryption/decryption unit and output. ..
  • a communication processing program for a computer having a network interface for connecting to a network is provided.
  • the communication processing program When executed by the computer, it causes the computer to execute any one of the communication processing methods described above.
  • each device can realize data communication independently in a network including many devices.
  • FIG. 6 is a diagram for explaining an IP address authentication procedure in the network system according to the present embodiment.
  • FIG. 6 is a diagram showing an example of type identification information embedded in an IP address used in the network system according to the present embodiment.
  • 7 is a flowchart showing a processing procedure for a device to provide an authenticated IP address in the network system according to the present embodiment.
  • FIG. 7 is a sequence chart showing a processing procedure related to notification of an IP address in the network system according to the present embodiment.
  • FIG. 3 is a diagram for explaining an outline of data communication in the network system according to the present embodiment. It is a schematic diagram which shows the function structure which concerns on the data transmission in the device according to this Embodiment.
  • FIG. 7 is a schematic diagram showing an operation example during data transmission in the device according to the present embodiment. 7 is a flowchart showing a processing procedure when a transmission packet occurs in the device according to the present embodiment. 7 is a flowchart showing a processing procedure when a device according to the present embodiment receives a packet from another device.
  • FIG. 1 is a schematic diagram showing an example of the overall configuration of a network system 1 according to the present embodiment.
  • a plurality of devices 100-1, 100-2, 100-3, 100-4, 100-5,... (Hereafter, referred to as “devices”) in an arbitrary network 2 such as the Internet or an intranet.
  • “100” may be collectively referred to as "100".
  • Some devices 100 may be connected to the network 2 via wireless communication established with the access point 4.
  • another part of the device 100 may be connected to the network 2 via a wireless communication established with the mobile base station 6.
  • the network 2 may include any one of a local area network (LAN), a wide area network (WAN), a radio access network (RAN), and the Internet.
  • LAN local area network
  • WAN wide area network
  • RAN radio access network
  • Each of the devices 100 connected to the network can be regarded as a “node” of the network, and the device 100 may be referred to as a “node” in the following description.
  • data communication is realized between the devices 100 according to the procedure described below. Note that any physical connection method between the devices 100 may be used.
  • the device 100 includes any device having a function of performing data communication with other devices using the IP address of each device.
  • the device 100 may be configured as a single communication device, may be configured as a part of some object, or may be configured by being incorporated in some object.
  • the device 100 is, for example, any one of a personal computer, a smartphone, a tablet, and a wearable device (for example, a smartwatch or AR glasses) worn on the user's body (for example, arm or head). May be. Further, the device 100 may be a control device installed in a smart home electric appliance, a connected automobile, a factory, or a part thereof.
  • the network system 1 further includes one or more certificate authorities 200.
  • Each of the certificate authorities 200 is a computer including one or a plurality of servers.
  • the IP address held by each device 100 is authenticated by one or a plurality of certificate authorities 200 according to a procedure described later. As a result, each device 100 will have an authenticated IP address.
  • authenticated IP address means a state in which the legitimacy of the IP address held by each device 100 is guaranteed to the communication destination or a third party. More specifically, an "authenticated IP address” means an IP address that is generated by an irreversible cryptographic hash function and that is directly or indirectly authenticated by a certificate authority (for details). Will be described later). By using such an “authenticated IP address”, it can be guaranteed that the IP address used by each device 100 for data communication is not spoofed.
  • any device 100 included in the network system 1 will be uniquely specified based on the IP address of each device 100. That is, each device can determine the device to be the destination or destination of data transmission based on the IP address of each device.
  • the IP address is assumed to be a global IP address that can be used for data communication between devices 100 connected to the Internet, but it may be a private IP address used only within a specific network.
  • IPv4 Internet Protocol Version 4
  • IPv6 Internet Protocol Version 6
  • IPv6 Internet Protocol Version 6
  • FIG. 2 is a schematic diagram showing a hardware configuration example of device 100 according to the present embodiment.
  • the device 100 includes, as a main component, a control unit 110 which is a processing circuit.
  • the control unit 110 is an arithmetic entity for providing functions and executing processing according to the present embodiment.
  • the control unit 110 uses the processor and the memory as shown in FIG. 2 to execute the computer readable instructions (computer readable instructions) (OS (Operating System) and communication processing program as shown in FIG. 3) stored in the memory. May be configured to perform.
  • the control unit 110 may be realized by using a hard-wired circuit such as an ASIC (Application Specific Integrated Circuit) in which a circuit corresponding to a computer-readable instruction is incorporated.
  • the control unit 110 may be realized by realizing a circuit corresponding to a computer-readable instruction on an FPGA (field-programmable gate array).
  • the control unit 110 may be realized by appropriately combining a processor, a memory, an ASIC, an FPGA, and the like.
  • control unit 110 includes a processor 102, a main memory 104, a storage 106, and a ROM (Read Only Memory) 108.
  • the processor 102 is an arithmetic circuit that sequentially reads and executes computer-readable instructions.
  • the processor 102 includes, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), and a GPU (Graphics Processing Unit).
  • the control unit 110 may be implemented using a plurality of processors 102 (multiprocessor configuration), or the control unit 110 may be implemented using a processor having a plurality of cores (multicore configuration).
  • the main memory 104 is a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory).
  • DRAM Dynamic Random Access Memory
  • SRAM Static Random Access Memory
  • the storage 106 is a non-volatile storage device such as an HDD (Hard Disk Drive), SSD (Solid State Drive), or flash memory.
  • the storage 106 stores various programs executed by the processor 102 and various data described below.
  • the ROM 108 fixedly stores various programs executed by the processor 102 and various data described below.
  • the memory corresponds to the storage 106 and the ROM 108.
  • FIG. 3 is a schematic diagram showing a configuration example of programs and data of device 100 according to the present embodiment.
  • the memory (storage 106 and/or ROM 108) of device 100 stores, for example, an OS 160, a communication processing program 170, and various applications 300 as programs including computer-readable instructions.
  • the OS 160 is a program that provides basic functions for realizing the processing executed by the device 100.
  • Communication processing program 170 is mainly a program for implementing the provision of functions and the execution of processing according to the present embodiment.
  • the communication processing program 170 may use a library or the like provided by the OS 160 to realize the function provision and the process execution according to the present embodiment.
  • the various applications 300 are programs for realizing various functions provided by the device 100, and can be arbitrarily installed by the user. Typically, the various applications 300 provide various processes using the data communication function provided by the communication processing program 170.
  • a private key 172, a public key 174, an electronic key 174, and an electronic key are stored as data necessary for implementing the functions and executing the processes according to the present embodiment.
  • the certificate 176 is stored.
  • the private key 172 and the public key 174 are so-called key pairs generated according to an arbitrary encryption/decryption algorithm.
  • the secret key 172 is used for encrypted communication with another device.
  • the public key 174 is used to determine the IP address of each device 100 according to the procedure described below.
  • the electronic certificate 176 is issued to the public key 174 by the certificate authority 200, and is for ensuring the validity of the IP address of the device 100.
  • the electronic certificate 176 includes a hash value (electronic signature) calculated from the public key 174 of each device 100 using the private key of the certificate authority 200.
  • the device 100 having received the electronic certificate 176 confirms the validity of the electronic certificate 176 and the public key 174 associated with the electronic certificate 176, using the public key of the certificate authority 200.
  • both the storage 106 and the ROM 108 it is not necessary to provide both the storage 106 and the ROM 108, and only one of them may be provided depending on the implementation form.
  • the key pair secret key 172 and public key 174 may be stored in the ROM 108 to enhance confidentiality.
  • the device 100 further includes a network interface 120 for connecting the device 100 to the network.
  • the network interface 120 performs data communication with other devices via the network.
  • the network interface 120 includes a wired connection terminal such as an Ethernet (registered trademark) port, a USB (Universal Serial Bus) port, a serial port such as IEEE 1394, and a legacy parallel port.
  • the network interface 120 may include processing circuits and antennas for wireless communication with devices, routers, mobile base stations and the like.
  • the wireless communication supported by the network interface 120 is, for example, Wi-Fi (registered trademark), Bluetooth (registered trademark), ZigBee (registered trademark), LPWA (Low Power Wide Area), GSM (registered trademark), W-CDMA, It may be any of CDMA200, LTE (Long Term Evolution), and fifth generation mobile communication system (5G).
  • the device 100 may include a display unit 130, an input unit 140, and a media interface 150 as optional components.
  • the display unit 130 is a component for presenting the processing result of the processor 102 and the like to the outside.
  • the display unit 130 may be, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display. Further, the display unit 130 may be a head mounted display mounted on the user's head or a projector that projects an image on a screen.
  • the input unit 140 is a component for receiving an input operation of a user who operates the device 100.
  • the input unit 140 may be, for example, a keyboard, a mouse, a touch panel arranged on the display unit 130, an operation button arranged on the housing of the device 100, or the like.
  • the media interface 150 reads various programs and/or various data from a non-transitory medium 152 in which various programs (computer-readable instructions) and/or various data are stored.
  • the medium 152 may be, for example, an optical medium such as a DVD (Digital Versatile Disc) or a semiconductor medium such as a USB memory.
  • the media interface 150 adopts a configuration according to the type of the media 152.
  • Various programs and/or various data read by the media interface 150 may be stored in the storage 106 or the like.
  • various programs and/or various data may not be installed in the device 100 via the medium 152, but necessary programs and data may be installed in the device 100 from a distribution server on the network. In this case, necessary programs and data are acquired via the network interface 120.
  • the display unit 130, the input unit 140, and the media interface 150 are optional components, they may be connected from the outside of the device 100 via an arbitrary interface such as USB.
  • the control unit 110 realizes the provision of the function and the execution of the process according to the present embodiment, and the technical scope of the present application includes at least hardware and/or software for realizing the control unit 110.
  • the hardware may include not only the configuration including the processor and the memory but also the configuration using the hard-wired circuit using the ASIC or the like or the FPGA. That is, the control unit 110 can be realized by installing a program in a general-purpose computer, or can be realized as a dedicated chip.
  • the software executed by the processor may include not only software distributed via the medium 152 but also software appropriately downloaded via the distribution server.
  • control unit 110 shown in FIG. 2, and can be implemented by using any technology according to the era in which it is realized.
  • an authenticated IP address is used to authenticate the IP address of each device 100.
  • the IP address of each device 100 may be authenticated using a public key cryptography (PKI).
  • PKI public key cryptography
  • FIG. 4 is a diagram for explaining an IP address authentication procedure in network system 1 according to the present embodiment.
  • the symbols such as "S1" to "S4" in FIG. 4 correspond to the step numbers shown in FIG.
  • the device 100 has a key pair including a private key 172 and a public key 174.
  • the hash value 178 is calculated by inputting the public key 174 to the predetermined hash function 180, and all or part of the calculated hash value 178 is used as the IP address 190 of the device 100.
  • the device 100 transmits the public key 174 to the certificate authority 200 along with the determination process of the IP address 190, and associates the electronic certificate 176 issued to the public key 174 by the certificate authority 200.
  • the device 100 transmits the public key 174 and the electronic certificate 176 of its own device to another device.
  • the other device confirms the legitimacy of the IP address 190 of the device 100 based on the public key 174 and the electronic certificate 176 published by the device 100.
  • the legitimacy of the IP address 190 is confirmed, data communication is started using the legitimate IP address 190.
  • the own device and the other device can directly communicate with each other, in addition to the direct communication process, the inquiry process in the certificate authority 200 may be included.
  • IP address 190 itself can be authenticated, and the device itself holds such authenticated IP address 190, so that each device can be statically or dynamically operated.
  • a self-sustaining network can be constructed without using the IP address that is assigned to each other.
  • the private key 172 and the public key 174 which are key pairs, may be created by the device 100 itself, or may be provided from the outside and stored in the device 100 in advance. When provided externally, the device 100 may acquire only the secret key 172 and generate the public key 174 by itself.
  • a bit string of a predetermined length (for example, 512 bits) generated by a random number generator is used as the secret key 172, and a known cryptographic algorithm (for example, elliptic curve cryptography) is used.
  • a public key 174 composed of a bit string of a predetermined length (for example, 256 bits) may be generated from the secret key 172 according to an algorithm.
  • the random number generator may be realized by using the function provided by the OS 160, or may be realized by using a hard-wired circuit such as ASIC. ..
  • the hash function 180 a known irreversible cryptographic hash function (for example, BLAKE) can be used.
  • the hash function 180 calculates a hash value 178 consisting of a bit string of a predetermined length (for example, 256 bits).
  • a message associated with a predetermined organization may be used as an arbitrary keyword.
  • a message including the name of the trademark owned by the predetermined organization may be used.
  • the name of a registered trademark owned by a predetermined organization for example, “connectFree”
  • connectFree may be used as a keyword to be input to the hash function 180.
  • All or part of the hash value 178 calculated by the hash function 180 is used as the IP address 190.
  • an arbitrary 32 digit (for example, the first 32 digits) of the 64-digit hash value 178 is an IP address corresponding to IPv6. It may be determined as 190 (128 bits).
  • the first 8 digits of the 64-digit hash value 178 may be determined as the IP address 190 (32 bits) corresponding to IPv4.
  • the 128-bit hash value 178 may be calculated from the hash function 180 in consideration of the IP address 190 (128 bits) corresponding to IPv6. In this case, all of the calculated hash value 178 can be determined as the IP address 190 (128 bits) corresponding to IPv6.
  • the IP address 190 unique to the device 100 can be determined based on the public key 174 of the device 100. In this way, the IP address 190 determined by the device 100 can be used to connect the device 100 to a network such as the Internet. Further, the device 100 can perform data communication using the IP address 190 determined by itself even if there is no service provider (server) such as an Internet service provider (ISP) that manages a global IP address. .. Even if the device 100 does not have a server that manages a private IP address such as a DHCP (Dynamic Host Configuration Protocol) server installed in an access point or the like, the device 100 uses the IP address 190 determined by itself to access the Internet such as the Internet. Data communication can be performed by connecting to a global network. Therefore, it is possible to improve the user experience and convenience of the user when connecting to a network such as the Internet.
  • server such as an Internet service provider (ISP) that manages a global IP address. ..
  • ISP Internet service provider
  • the IP address 190 determined by the device 100 may be able to specify that it is determined according to the processing procedure according to the present embodiment.
  • the IP address 190 may include a predetermined specific value (specific character string) for identification. That is, the determined IP address may include a predetermined specific value (specific character string) for identification.
  • the first two digits (first digit and second digit from the beginning) of the hexadecimal representation IP address 190 may be fixed to a predetermined unique character string (for example, “FC”). Since the hash function 180 is usually a one-way function, the public key 174 cannot be calculated backward from the IP address 190. Therefore, the private key 172 and the public key 174 are repeatedly used by using the random number generator until the determined IP address 190 satisfies the predetermined condition (in this case, the first two digits become the predetermined unique value). It may be generated. That is, the public key 174 may be determined such that the IP address 190 determined based on the hash value calculated from the public key 174 according to the hash function matches the predetermined format.
  • a predetermined unique character string for example, “FC”. Since the hash function 180 is usually a one-way function, the public key 174 cannot be calculated backward from the IP address 190. Therefore, the private key 172 and the public key 174 are repeatedly used by using the random
  • IP address 190 by including a predetermined specific value for identification (for example, the first two digits are “FC”) in the IP address 190, a third party can determine the IP address 190 of the device 100 by the device 100 itself. It is possible to judge whether or not it is a thing.
  • a predetermined specific value for identification for example, the first two digits are “FC”
  • the IP address 190 determined by the device 100 may include information that can identify the type of the device 100. In order to perform such identification, for example, the IP address 190 may include a value according to the type of the device 100. That is, the determined IP address 190 may include a value according to the type of the device 100 that determined the IP address 190.
  • a value (type identification information) according to the type of the device 100 may be embedded in the third and fourth digits from the beginning of the hexadecimal representation IP address 190.
  • FIG. 5 is a diagram showing an example of the type identification information embedded in the IP address used in the network system 1 according to the present embodiment.
  • the type identification information shown in FIG. 5 may be stored in advance in the ROM 108 (see FIG. 2) of the control unit 110 of each device 100 or the like. As an example, a value according to the type of device as shown in FIG. 5 can be used.
  • a value “00” indicating the personal computer is set at the third and fourth digits from the beginning of the IP address 190. ..
  • the public key 174 cannot be calculated backward from the IP address 190. Therefore, until the determined IP address 190 satisfies a predetermined condition (in this case, the third digit and the fourth digit from the beginning have values indicating the type of the device 100), the random number generator is used to keep the secret.
  • the key 172 and the public key 174 may be repeatedly generated. That is, the public key 174 may be determined such that the IP address 190 determined based on the hash value calculated from the public key 174 according to the hash function matches the predetermined format.
  • a third party can specify the type of the device 100 from the IP address 190 determined by the device 100.
  • the device 100 acquires an electronic certificate 176 for certifying the validity of the public key 174 from the certificate authority 200.
  • the public key 174 is transmitted from the device 100 to the certificate authority 200 to be registered, and the electronic certificate 176 associated with the registered public key 174 is acquired from the certificate authority 200. ..
  • the device 100 transmits a public key 174 and an electronic certificate issuance request (hereinafter, also referred to as “certificate signature request”) to the certificate authority 200 via the network. ..
  • the certificate authority 200 registers the public key 174 and issues the electronic certificate 176 associated with the registered public key 174. Then, the certificate authority 200 transmits the electronic certificate 176 to the device 100 via the network.
  • the digital certificate 176 includes the owner information of the digital certificate 176 (device 100 in this example), the issuer information of the digital certificate 176 (certificate authority 200 in this example), and the digital certificate of the issuer. It includes the signature and the expiration date of the electronic certificate 176.
  • the certification authority 200 may be operated by a predetermined organization, or may be an intermediate certification authority associated with a root certification authority operated by a predetermined organization. Further, in registering the public key 174 and issuing the electronic certificate 176 associated with the public key 174, a predetermined fee and/or a maintenance fee may be required for a predetermined organization.
  • the public key 174 is directly authenticated by the certification authority 200 through the registration of the public key 174 and the acquisition of the public key 174, so that the IP address 190 determined based on the public key 174. Is also indirectly authenticated by the certificate authority 200. By such authentication of the certificate authority 200, the device 100 can realize data communication via the network using the authenticated IP address 190.
  • the electronic certificate 176 associated with the public key 174 may include information related to the attribute of the device 100 (hereinafter, also referred to as “attribute information”) in order to improve confidentiality.
  • attribute information of the device 100 for example, the version information of the OS 160 and the communication processing program 170 of the device 100, the serial number of the hardware (for example, the processor or the storage) configuring the device 100, and the like can be used.
  • the device 100 may transmit the attribute information of the device 100 to the certificate authority 200 when transmitting the public key 174 and the certificate signing request.
  • the attribute information of the device 100 included in the electronic certificate 176 may be encrypted by a known irreversible cryptographic hash function or the like.
  • the electronic certificate 176 by including the attribute information of the device 100 in the electronic certificate 176, it is possible to authenticate that the electronic certificate 176 is issued in response to the certificate signing request from the device 100 itself. That is, it is possible to more reliably prevent a device other than the device 100 from impersonating the device 100 and using the public key 174 and the electronic certificate 176 of the device 100.
  • FIG. 6 is a flowchart showing a processing procedure in which device 100 provides an authenticated IP address in network system 1 according to the present embodiment.
  • the processing procedure shown in FIG. 6 is executed in each device 100, and each step shown in FIG. 6 is executed by the control unit 110 of each device 100.
  • the device 100 acquires a key pair (secret key 172 and public key 174) generated according to an arbitrary algorithm (step S1).
  • the key pair may be generated by the device 100 itself or may be acquired by the device 100 from the outside. Alternatively, the device 100 may obtain only the private key 172 from the outside and internally generate the public key 174.
  • the device 100 calculates the hash value 178 by inputting the public key 174 into the predetermined hash function 180, and obtains the IP address 190 of the device 100 from all or part of the calculated hash value 178. It is determined (step S2). That is, the device 100 determines the IP address of the device itself based on the hash value 178 calculated from the public key 174 according to the hash function 180.
  • a unique character string for example, the first digit and the second digit from the beginning of the IP address 190
  • type identification information for example, the third digit and the fourth digit from the beginning of the IP address 190
  • Appropriate key pairs private key 172 and public key 174 may be generated to be included.
  • the device 100 also transmits a public key 174 and a request to issue a digital certificate (certificate signing request) to the certificate authority 200 (step S3).
  • the certificate authority 200 registers the public key 174 and issues the electronic certificate 176 associated with the registered public key 174. Then, the certificate authority 200 transmits the electronic certificate 176 to the device 100 via the network. Then, the device 100 receives and stores the electronic certificate 176 from the certificate authority 200 (step S4).
  • the device 100 acquires the electronic certificate 176 associated with the public key 174 from the certificate authority.
  • 7 and 8 are diagrams for explaining the process related to the notification of the IP address in network system 1 according to the present embodiment. 7 and 8 show an example of exchanging IP addresses among the three devices 100-1, 100-2, 100-3. The same processing can be performed between two devices 100, and the same processing can be performed between a larger number of devices 100.
  • each of the devices 100-1, 100-2, 100-3 follows the procedure as described above, and the devices 100-1, 100-2, 100-3 have the IP address 190. -1, 190-2 and 190-3 are respectively determined, the public keys 174-1, 174-2 and 174-3 are registered in the certificate authority 200 and the electronic certificate 176- It is assumed that 1,176-2 and 176-3 have been acquired respectively.
  • each device 100 transmits (broadcasts) the public key 174 of each device and the electronic certificate 176 associated with the public key 174 periodically or at each event. .. That is, each device 100 transmits the public key 174 and the electronic certificate 176 to another device. When the public key 174 is included in the electronic certificate 176, only the electronic certificate 176 may be transmitted.
  • FIG. 7 shows an example in which the device 100-1 transmits (broadcasts) the public key 174-1 and the digital certificate 176-1 associated with the public key 174-1.
  • the devices 100-2 and 100-3 can receive the public key 174-1 and the digital certificate 176-1 transmitted by the device 100-1. Then, the devices 100-2 and 100-3 determine whether or not the electronic certificate 176-1 is valid, and if determined to be valid, based on the associated public key 174-1. Then, the IP address 190-1 of the device 100-1 is determined and registered in the connection tables 194-2 and 194-3, respectively.
  • connection table includes information of each device 100 for performing data communication, and each device 100 refers to the connection table to identify the IP address and the like of the destination device 100, A successful session.
  • the “session” means a logical communication path configured by exchanging necessary data prior to transmitting/receiving data such as packets.
  • the device 100-2 first determines whether the electronic certificate 176-1 broadcast from the device 100-1 is valid. In the process of determining the validity, the integrity of the electronic certificate 176-1 is verified.
  • the device 100-2 first confirms the existence of the owner information of the electronic certificate 176-1, the issuer information of the electronic certificate 176-1, and the digital signature of the issuer. .. Then, the device 100-2 determines whether or not the electronic certificate 176-1 is within the expiration date. Furthermore, the device 100-2 determines whether the issuer of the electronic certificate 176-1 is reliable. Particularly, when the electronic certificate 176-1 is issued by the intermediate certificate authority, the device 100-2 identifies the root certificate authority associated with the intermediate certificate authority that issued the electronic certificate 176-1 and , Determine whether or not the specified root certification authority is reliable. For example, when the specified root certification authority matches with one or a plurality of root certification authorities stored in the device 100-1, it is determined that the issuer of the electronic certificate 176-1 is reliable.
  • the device 100-2 determines that the electronic certificate 176-1 broadcast from the device 100-1 is valid. Then, the device 100-2 calculates the hash value 178-1 by inputting the public key 174-1 broadcast from the device 100-1 to the predetermined hash function 180, and calculates the calculated hash value.
  • the IP address 190-1 of the device 100-1 is determined using all or part of 178-1. Here, it is assumed that the devices 100-1 and 100-2 have a common hash function 180. It is also assumed that the processes for determining the IP address 190-1 from the hash value 178-1 are common between the devices 100-1 and 100-2.
  • the device 100-2 can determine the IP address 190-1 of the device 100-1. Then, the device 100-2 adds the entry of the determined IP address 190-1 of the device 100-1 to the connection table 194-2.
  • the public key 174-1 may be registered in association with the IP address 190-1.
  • the device 100-3 also executes the same processing as the device 100-2, and the connection table 194-3 of the device 100-3 stores the entry of the determined IP address 190-1 of the device 100-1 in the connection table. Added to 194-2.
  • the public key 174-1 may be registered in association with the IP address 190-1.
  • the device 100-2 and the device 100-3 can obtain the IP address 190-1 of the device 100-1 by the processing as shown in FIG.
  • FIG. 8 shows an example in which the device 100-2 transmits (broadcasts) the public key 174-2 and the electronic certificate 176-2 associated with the public key 174-2.
  • the devices 100-1 and 100-3 can receive the public key 174-2 and the electronic certificate 176-2 transmitted by the device 100-2. Then, the devices 100-1 and 100-3 determine whether or not the electronic certificate 176-2 is valid, and if it is determined to be valid, based on the associated public key 174-2. Then, the IP address 190-2 of the device 100-2 is determined and registered in the connection tables 194-1 and 194-3, respectively.
  • a series of processes executed by the devices 100-1 and 100-3 is similar to the process described with reference to FIG. 7, and thus detailed description will not be repeated.
  • the device 100-1 and the device 100-3 can obtain the IP address 190-2 of the device 100-2.
  • the device 100-3 may transmit (broadcast) the public key 174-3 and the electronic certificate 176-3 associated with the public key 174-3. It is assumed that the devices 100-1 and 100-2 can receive the public key 174-3 and the electronic certificate 176-3 transmitted by the device 100-3. Then, the devices 100-1 and 100-2 determine whether or not the electronic certificate 176-3 is valid, and if it is determined to be valid, based on the associated public key 174-3. Then, the IP address 190-3 of the device 100-3 is determined and registered in the connection tables 194-1 and 194-2, respectively. By such processing, the devices 100-1 and 100-2 can acquire the IP address 190-3 of the device 100-3.
  • FIG. 9 is a sequence chart showing a processing procedure related to notification of an IP address in network system 1 according to the present embodiment.
  • FIG. 9 shows a processing procedure in the three devices 100-1, 100-2, 100-3 corresponding to FIGS. 7 and 8.
  • the device 100-1 transmits (broadcasts) the public key 174-1 and the electronic certificate 176-1 associated with the public key 174-1 (sequence SQ10).
  • the device 100-2 Upon receiving the public key 174-1 and the electronic certificate 176-1 transmitted by the device 100-1, the device 100-2 determines the validity of the electronic certificate 176-1 (sequence SQ11). If it is determined that the electronic certificate 176-1 is valid, the device 100-2 determines the IP address 190-1 of the device 100-1 based on the public key 174-1 (sequence SQ12), and determines the IP address 190-1. The IP address 190-1 of the device 100-1 is registered in the connection table 194-2 (sequence SQ13).
  • the device 100-3 determines the validity of the electronic certificate 176-1 (sequence SQ14). If it is determined that the electronic certificate 176-1 is valid, the device 100-3 determines the IP address 190-1 of the device 100-1 based on the public key 174-1 (sequence SQ15), and determines the IP address 190-1. The IP address 190-1 of the device 100-1 is registered in the connection table 194-3 (sequence SQ16).
  • the device 100-2 also transmits (broadcasts) the public key 174-2 and the electronic certificate 176-2 associated with the public key 174-2 (sequence SQ20).
  • the device 100-1 Upon receiving the public key 174-2 and the electronic certificate 176-2 transmitted by the device 100-2, the device 100-1 determines the validity of the electronic certificate 176-2 (sequence SQ21). When it is determined that the electronic certificate 176-2 is valid, the device 100-1 determines the IP address 190-2 of the device 100-2 based on the public key 174-2 (sequence SQ22), and determines the IP address 190-2. The IP address 190-2 of the device 100-2 is registered in the connection table 194-1 (sequence SQ23).
  • the device 100-3 determines the validity of the electronic certificate 176-2 (sequence SQ24). If it is determined that the electronic certificate 176-2 is valid, the device 100-3 determines the IP address 190-2 of the device 100-2 based on the public key 174-2 (sequence SQ25), and determines it. The IP address 190-2 of the device 100-2 is registered in the connection table 194-3 (sequence SQ26).
  • the device 100-3 also transmits (broadcasts) the public key 174-3 and the electronic certificate 176-3 associated with the public key 174-3 (sequence SQ30).
  • the device 100-1 Upon receiving the public key 174-3 and the electronic certificate 176-3 transmitted by the device 100-3, the device 100-1 determines the validity of the electronic certificate 176-3 (sequence SQ31). If it is determined that the electronic certificate 176-3 is valid, the device 100-1 determines the IP address 190-3 of the device 100-3 based on the public key 174-3 (sequence SQ32), and determines the IP address 190-3. The IP address 190-3 of the device 100-3 is registered in the connection table 194-1 (sequence SQ33).
  • the device 100-2 determines the validity of the electronic certificate 176-3 (sequence SQ34). When it is determined that the electronic certificate 176-3 is valid, the device 100-2 determines the IP address 190-3 of the device 100-3 based on the public key 174-3 (sequence SQ35), and determines the IP address 190-3. The IP address 190-3 of the device 100-3 is registered in the connection table 194-2 (sequence SQ36).
  • sequences SQ10 to SQ16, the processing of sequences SQ20 to SQ26, and the processing of sequences SQ30 to SQ36 may be executed in any order or in parallel.
  • each device 100 determines the validity of the digital certificate 176 (sequences SQ11, SQ14, SQ21, SQ24, SQ31, SQ34). Then, when it is determined that the electronic certificate 176 is valid, each device 100 determines the IP address of another device based on the hash value calculated from the public key 174 according to the hash function (sequence SQ12, SQ15, SQ22, SQ25, SQ32, SQ35).
  • the disclosure associated with electronic certificate 176 is provided on condition that electronic certificate 176 transmitted from another device 100 is determined to be valid.
  • the IP address 190 of the other device 100 is determined based on the key 174. Since the IP address 190 is determined based on the public key 174 on condition that the electronic certificate 176 associated with the public key 174 is valid, the validity of the public key 174 and the validity of the IP address 190 are determined. Can be guaranteed. Therefore, reliable data communication can be realized between the devices 100.
  • each device 100 since the IP address of each device 100 can be known based on public key 174 broadcast by each device 100, there is no server that manages the IP address. However, the devices 100 can be directly connected to each other. In particular, even if there is no virtual private network (VPN) server or the like, since communication in which confidentiality is ensured between the devices 100 can be realized, the cost and power consumption for maintaining the VPN server can be reduced.
  • VPN virtual private network
  • each device 100 has a routing function and a data transfer function, and such a function can realize a network capable of autonomous data communication.
  • data (typically, a packet or a frame) for data communication is encrypted with an encryption key set for each session. Therefore, the confidentiality of data communication can be secured.
  • FIG. 10 is a diagram for explaining an outline of data communication in network system 1 according to the present embodiment.
  • FIG. 10 illustrates, as an example, a data transmission method in a network including three devices 100-1, 100-2, 100-3.
  • the device 100-1 and the device 100-2 can directly communicate with each other, and the device 100-2 and the device 100-3 can directly communicate with each other. And however, it is assumed that direct communication cannot be performed between the device 100-1 and the device 100-3.
  • the state in which direct communication is possible typically means a connection state in which nodes exist within one hop. A process of transmitting a packet from the device 100-1 to the device 100-3 in such a connected state will be described.
  • a two-stage session is established. More specifically, the two-stage session includes the adjacent node session 12 that is the first-stage session and the end-to-end session 14 that is the second-stage session.
  • the adjacent node session 12 is a session established between the devices 100 capable of direct communication.
  • the adjacent node session 12 is established between the device 100-1 and the device 100-2 and between the device 100-2 and the device 100-3.
  • the end-to-end session 14 is a session established between the source device 100 and the destination device 100.
  • the packet is encrypted in each of the adjacent node session 12 and the end-to-end session 14.
  • encryption keys used between nodes are exchanged or shared in the process of establishing each session.
  • a packet to be transmitted (hereinafter, also referred to as “transmission packet 20”) based on the encryption key exchanged or shared between the device 100-1 and the device 100-3. ) Is encrypted and the encrypted packet 22 obtained is encrypted.
  • the transmission packet 20 includes a header portion 20H including information such as a destination and a data body portion 20D.
  • the encrypted packet 22 includes the result of encrypting the entire transmission packet 20 as a data body 22D, and further includes a header 22H including information such as a destination.
  • an encrypted packet 24 obtained by further encrypting the encrypted packet 22 is exchanged based on another encryption key exchanged or shared between the device 100-1 and the device 100-2. To be done. Further, an encrypted packet 26 obtained by further encrypting the encrypted packet 22 is exchanged between the device 100-2 and the device 100-3 based on another encryption key exchanged or exchanged.
  • the encrypted packet 24 includes the result of encrypting the entire encrypted packet 22 as a data body 24D, and further includes a header 24H including information such as a destination.
  • the encrypted packet 26 includes the result of encrypting the entire encrypted packet 22 as a data body 26D, and further includes a header 26H including information such as a destination.
  • the encrypted packet 24 is once decrypted into the encrypted packet 22 and then encrypted again to generate the encrypted packet 26. Even in this case, since the device 100-2 cannot decrypt the encrypted packet 22 generated in the end-to-end session 14, the confidentiality of data communication is ensured.
  • the device 100-1 encrypts the transmission packet 20 destined for the device 100-2 with the encryption key associated with the device 100-2 to generate the encrypted packet 22. Then, the device 100-1 determines the device (device 100-2 in the example shown in FIG. 10) to which the encrypted packet 22 is to be sent, and uses the encryption key associated with the determined device to encrypt the encrypted packet 22. Is encrypted to generate an encrypted packet 24, and the encrypted packet 24 is transmitted to the determined device.
  • the device 100-2 that has received the encrypted packet 24 decrypts the encrypted packet 24 into the encrypted packet 22 and determines whether or not the decrypted encrypted packet 22 is addressed to itself. Then, if the decrypted encrypted packet 22 is not addressed to its own device, the device 100-2 executes the same process as the device 100-1 transmitted the encrypted packet 24 to the device 100-2. That is, the device 100-2 determines the device (in this case, the device 100-3) to which the encrypted packet 22 is further transmitted, and uses the encryption key associated with the determined device to transmit the encrypted packet 22.
  • the encrypted packet 26 is generated by encryption and transmitted to the determined device.
  • the decrypted encrypted packet 22 is addressed to its own device (in this example, when the encrypted packet 22 reaches the device 100-3 in the example shown in FIG. 10), the encrypted packet 22 is the transmission packet. Decrypted to 20.
  • FIG. 11 is a schematic diagram showing a functional configuration related to data transmission in device 100 according to the present embodiment.
  • device 100 includes a router engine 1120, a transfer engine 1110, and an interface 1210 as a configuration for realizing data communication as shown in FIG. These components will be provided by the controller 110.
  • the router engine 1120 is mainly in charge of the end-to-end session 14, and the transfer engine 1110 is mainly in charge of the adjacent node session 12.
  • the router engine 1120 When the router engine 1120 receives a transmission packet from various applications 300, the router engine 1120 encrypts the transmission packet using an encryption key exchanged with or exchanged with the destination device 100, and encrypts the transmission packet including the encrypted transmission packet. The encrypted packet is transmitted to the destination device 100.
  • the router engine 1120 when the router engine 1120 receives the encrypted packet from the transfer engine 1110, it determines whether or not the encrypted packet is addressed to its own device. In the case of the encrypted packet addressed to the own device, the router engine 1120 receives the transmission packet included in the encrypted packet using the encryption key exchanged or shared with the device 100 as the transmission source. The packet is decoded as a packet (hereinafter, also referred to as “received packet”) and output to various applications 300. On the other hand, if the packet is an encrypted packet addressed to another device, the router engine 1120 returns the encrypted packet to the transfer engine 1110.
  • the router engine 1120 includes a session management engine 1122, an encryption/decryption engine 1124, an end-to-end session management table 1126, and a search engine 1128.
  • the session management engine 1122 performs session establishment with the destination device 100, packet transfer processing, retransmission processing, and the like. Also, the session management engine 1122 determines the transmission destination of the transmission packet according to the given destination of the transmission packet.
  • the encryption/decryption engine 1124 performs encryption and decryption of data.
  • the end-to-end session management table 1126 holds the IP address, encryption key, connection type, etc. of the device 100 with which the session management engine 1122 can establish a session.
  • the search engine 1128 searches the device 100 having the designated IP address and its route on the network.
  • the transfer engine 1110 When the transfer engine 1110 receives a packet from the interface 1210, the transfer engine 1110 decrypts the packet using the encryption key exchanged or exchanged with the device 100 that directly communicates the packet, and then the router engine Output to 1120. Further, when the transfer engine 1110 receives the packet from the router engine 1120, the transfer engine 1110 encrypts the packet using the encryption key exchanged or exchanged with the device 100 that directly communicates the packet. Then, the data is transmitted to the destination device 100.
  • the transfer engine 1110 includes a session management engine 1112, an encryption/decryption engine 1114, and an adjacent node session management table 1116.
  • the session management engine 1112 performs session establishment with the device 100 that directly communicates the packet, packet transfer processing, packet retransmission processing, and the like.
  • the encryption/decryption engine 1114 performs encryption and decryption of data.
  • the adjacent node session management table 1116 holds the IP address, encryption key, connection type, etc. of the device 100 with which the session management engine 1112 can establish a session.
  • the interface 1210 is a module that logically processes data physically exchanged by the network interface 120.
  • the interface 1210 logically connects the session management engine 1112 and a data communication path prepared for each protocol (for example, TCP (Transmission Control Protocol) 1212, UDP (User Datagram Protocol) 1214, and other protocols 1216). To do.
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • FIG. 12 is a schematic diagram showing an operation example during data transmission in device 100 according to the present embodiment.
  • FIG. 12 shows a process when the device 100 receives a packet addressed to its own device (received packet addressed to its own device) and a process performed when the device 100 receives a packet addressed to another device (received packet addressed to another device). Indicates.
  • the packet When the packet arrives at the device 100, the packet is sent to the transfer engine 1110, and is decrypted using the encryption key exchanged or exchanged with the device 100 that directly communicated the packet with the data. If the packet is addressed to the device itself, the decrypted packet is sent to the router engine 1120, and is further decrypted using the encryption key exchanged or exchanged with the device 100 that is the transmission source, and various applications are executed. It is output to 300. On the other hand, if the packet is addressed to another device, the decrypted packet is returned to the transfer engine 1110 and encrypted using the encryption key exchanged or exchanged with the next transmission destination device. Will be sent over.
  • FIG. 13 is a flowchart showing a processing procedure when a transmission packet occurs in device 100 according to the present embodiment.
  • FIG. 14 is a flowchart showing a processing procedure when device 100 according to the present embodiment receives a packet from another device. 13 and 14 show the procedure of the communication processing method in the device 100 connected to the network. The steps shown in FIGS. 13 and 14 are executed by the control unit 110 (see FIG. 2) of the device 100 (typically realized by cooperation of the processor and the memory).
  • step S100 it is determined whether the transmission packet 20 destined to another device is given by the various applications 300 or the like. If the transmission packet 20 addressed to another device is not given (NO in step S100), the process of step S100 is repeated.
  • step S100 when the transmission packet 20 destined to another device is given (YES in step S100), the processes of step S102 and thereafter are executed. That is, the processing from step S102 shown in FIG. 13 is executed when a packet destined for another device is given.
  • step S102 the device 100 (session management engine 1122 in FIG. 11) determines whether a session corresponding to the IP address of the destination device is registered (step S102).
  • a session corresponding to the IP address of the destination device is registered (step S102).
  • an IP address for each session that can be established is registered in the end-to-end session management table 1126 shown in FIG. 11, and the registered content is referred to.
  • step S102 If the session corresponding to the IP address of the destination device is registered (YES in step S102), the process of step S114 described below is executed.
  • step S102 If the session corresponding to the IP address of the destination device is not registered (NO in step S102), the device 100 (search engine 1128 in FIG. 11) temporarily stores the transmission packet 20 in the queue (step S104), and With respect to the data communication route, the search for the destination device and the route to the destination device is started (step S106). Then, the device 100 determines whether the search is successful (step S108). If the search is successful (YES in step S108), the process of step S114 described below is executed. In this way, when a packet destined for another device is given, the device 100 searches for the IP address of the destination device.
  • step S108 the device 100 determines whether or not a predetermined time limit (timeout time) has elapsed since the transmission packet 20 was stored in the queue (step S108). Step S110). If the predetermined time limit has not elapsed since the transmission packet 20 was stored in the queue (NO in step S110), the processing of step S108 and thereafter is repeated.
  • a predetermined time limit timeout time
  • the device 100 discards the transmission packet 20 stored in the queue (step S112). Then, the process ends.
  • step S114 the device 100 (session management engine 1122 in FIG. 11) determines whether the end-to-end session 14 is established with the destination device (step S114).
  • the device 100 establishes the end-to-end session 14 with the destination device (step S116). Upon establishing the end-to-end session 14, the device 100 exchanges or shares the cryptographic key associated with the end-to-end session 14 with the destination device. In this way, the device 100 establishes the end-to-end session 14 with another device and determines the encryption key associated with the end-to-end session 14 (that is, the other device).
  • step S116 if the end-to-end session 14 has already been established with the destination device (YES in step S114), the process of step S116 is skipped.
  • the device 100 (encryption/decryption engine 1124) encrypts the transmission packet 20 with the encryption key associated with the end-to-end session 14 established with the destination device, thereby performing encryption.
  • the encrypted packet 22 is generated (step S118). That is, the device 100 generates the encrypted packet 22 by encrypting with the encryption key associated with the other device that is the destination.
  • the device 100 determines the device to which the encrypted packet 22 is sent (step S120). Typically, an IP address for each session that can be established is registered in the adjacent node session management table 1116 shown in FIG. 11, and the registered content is referred to. Further, the device 100 (encryption/decryption engine 1114) determines whether or not the adjacent node session 12 has been established with the determined destination device (step S122).
  • the device 100 establishes the adjacent node session 12 with the determined destination device (step S122). S124).
  • the device 100 exchanges or shares the encryption key associated with the adjacent node session 12 with the target device. In this way, the device 100 establishes the adjacent node session 12 with another device that is the destination of the encrypted packet 22 and associates it with the adjacent node session 12 (that is, the device that is the destination). Determine the encryption key that was assigned.
  • step S124 if the adjacent node session 12 has already been established with the determined destination device (YES in step S122), the process of step S124 is skipped.
  • the device 100 (encryption/decryption engine 1114) encrypts the encrypted packet 22 with the encryption key associated with the adjacent node session 12 established with the determined destination device.
  • the encrypted packet 24 is generated (step S126). That is, that is, the device 100 generates the encrypted packet 24 by encrypting the encrypted packet 22 with the encryption key associated with the determined destination device.
  • the device 100 (session management engine 1112) sends the generated encrypted packet 24 to the determined destination device (step S128). As described above, the processing when the transmission packet 20 is given is completed.
  • step S200 it is determined whether the encrypted packet 24 is received from another device (step S200). If the encrypted packet 24 has not been received from another device (NO in step S200), the process of step S200 is repeated.
  • step S200 when the encrypted packet 24 is received from another device (YES in step S200), the processes of step S202 and thereafter are executed. That is, the processing from step S202 shown in FIG. 14 is executed when the encrypted packet 24 is received from another device.
  • the device 100 decrypts the encrypted packet 24 into the encrypted packet 22 using the encryption key associated with the adjacent node session 12 with the other device (step S202). Then, the device 100 (session management engine 1112) determines whether or not the decrypted encrypted packet 22 is addressed to its own device (step S204).
  • the device 100 determines a device as a further destination of the encrypted packet 22 (step S210). Typically, the adjacent node session management table 1116 shown in FIG. 11 is referred to. Further, the device 100 (encryption/decryption engine 1114) determines whether or not the adjacent node session 12 has been established with the determined destination device (step S212). If the adjacent node session 12 is not established with the determined destination device (NO in step S212), the device 100 establishes the adjacent node session 12 with the determined destination device (step S212). S214). If the adjacent node session 12 has already been established with the determined destination device (YES in step S212), the process of step S214 is skipped.
  • the device 100 (encryption/decryption engine 1114) encrypts the encrypted packet 22 with the encryption key associated with the adjacent node session 12 established with the determined destination device. Then, the encrypted packet 24 is generated (step S216). Finally, the device 100 (session management engine 1112) sends the generated encrypted packet 24 to the determined destination device (step S218).
  • the device 100 determines another device to which the encrypted packet 22 is to be sent, and the determined device The encrypted packet 24 is generated and transmitted by the encryption key associated with. As described above, the process when the encrypted packet 24 is received from another device is completed.
  • the device 100 determines that the end-to-end established between the device 100 and the transmission source device.
  • the encrypted packet 22 is decrypted into the transmission packet 20 using the encryption key associated with the session 14 (step S206).
  • the device 100 outputs the decrypted transmission packet 20 as a reception packet to the various applications 300 (step S208). As described above, the process when the encrypted packet 24 is received from another device is completed.
  • a packet when a packet is transmitted from a source device to a destination device, it is associated with end-to-end session 14 between the source device and the destination device.
  • the encrypted packet 22 is generated using the encrypted key.
  • the encrypted packet 22 may be sequentially transferred by one or a plurality of devices, even in such a process, the encrypted packets are sequentially transferred in an encrypted state, and therefore, the encrypted packet 22 may be transferred before reaching the destination device.
  • the confidentiality of the packet can be maintained throughout.
  • the encrypted packet 22 is further encrypted using the encryption key associated with the adjacent node session 12 between the devices. Be converted. Therefore, even in the data communication process in which the encrypted packets 22 are sequentially transferred, the confidentiality can be further enhanced.
  • Network system 1 can provide a solution in which each device 100 can realize data communication independently in a network including many devices.
  • 1 network system 1 network system, 2 network, 4 access point, 6 mobile base station, 12 adjacent node session, 14 end-to-end session, 20 transmission packet, 20D, 22D, 24D, 26D data body part, 20H, 22H, 24H, 26H Header part, 22, 24, 26 encrypted packet, 100 device, 102 processor, 104 main memory, 106 storage, 108 ROM, 110 control part, 120 network interface, 130 display part, 140 input part, 150 media interface, 152 media , 160 OS, 170 communication processing program, 172 private key, 174 public key, 176 digital certificate, 178 hash value, 180 hash function, 190 IP address, 194 connection table, 200 certificate authority, 300 various applications, 1110 transfer engine, 1112, 1122 session management engine, 1114, 1124 encryption/decryption engine, 1116 adjacent node session management table, 1120 router engine, 1126 end-to-end session management table, 1128 search engine, 1210 interface, 1216 and other protocols.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本開示のある形態に従うデータ通信方法は、第1のデバイス(100-1)において、第2のデバイス(100-2)を宛先とするパケットを関連付けられた第1の暗号鍵(172)により暗号化して第1の暗号化パケット(24)を生成するステップ(S118)と、第1の暗号化パケットの送出先となるデバイスを決定し、関連付けられた第2の暗号鍵により第1の暗号化パケットを暗号化して第2の暗号化パケットを生成し、当該決定したデバイスへ送信するステップ(S120~S128)と、自デバイス宛てであるか否かの判断により、復号された第1の暗号化パケットが自デバイス宛てでなければ、別のデバイスを決定し送信するステップを実行し、復号された第1の暗号化パケットが自デバイス宛てであれば、第1の暗号化パケットをさらに復号するステップ(S200~S218)とを含む。

Description

データ送信方法、通信処理方法、装置、および通信処理プログラム
 本開示は、認証済みIPアドレスを有するデバイス間のデータ通信技術に関する。
 近年の情報通信技術(Information and Communication Technology:ICT)の進歩は目覚ましく、インターネットなどのネットワークに接続されるデバイスは、従来のパーソナルコンピュータやスマートフォンといった情報処理装置に限らず、様々なモノ(things)に広がっている。このような技術トレンドは、「IoT(Internet of Things;モノのインターネット)」と称され、様々な技術およびサービスが提案および実用化されつつある。将来的には、地球上の数十億人と数百億または数兆のデバイスとが同時につながる世界が想定されている。このようなネットワーク化された世界を実現するためには、よりシンプル、より安全、より自由につながることができるソリューションを提供する必要がある。
 通常、ネットワーク上では、各デバイスに静的または動的に割り当てられたIP(Internet Protocol)アドレスを用いて、デバイス間のデータ通信が実現される。
 デバイス間のデータ通信を実現するためには、送信元のデバイスから送出されたデータを宛先のデバイスまで転送しなければならない。このようなデータ転送の処理は、「ルーティング」などと称される。このようなルーティングを実現するために、ネットワーク上には多数のルータが配置される。
 特開平05-022293号公報(特許文献1)に開示されるように、ルータは、経路情報を記憶する経路情報テーブルを有しており、受信フレーム中のインターネットワーキング用アドレスと、経路情報テーブルの内容に従って、経路を定めて受信フレームの中継を行う(特開平05-022293号公報の段落[0005]および[0006]など参照)。
特開平05-022293号公報
 上記特許文献1によれば、多数のデバイスが存在するネットワークを想定すると、ルータも多数必要となり、また、各ルータの責務も大きくなるという問題が生じる。そのため、多数のデバイスが存在するネットワークにおいては、各デバイスが自立してデータ通信を実現できる構成が好ましい。本開示は、多数のデバイスが存在するネットワークにおいて、各デバイスが自立してデータ通信を実現するデータ送信方法などの解決策を提供する。
 本開示のある形態によれば、複数のデバイスが接続されたネットワークにおけるデータ通信方法が提供される。データ通信方法は、第1のデバイスにおいて、第2のデバイスを宛先とするパケットを第2のデバイスに関連付けられた第1の暗号鍵により暗号化して第1の暗号化パケットを生成するステップと、第1の暗号化パケットの送出先となるデバイスを決定し、当該決定したデバイスに関連付けられた第2の暗号鍵により第1の暗号化パケットを暗号化して第2の暗号化パケットを生成し、当該決定したデバイスへ送信するステップと、第2の暗号化パケットを受信したデバイスにおいて、第2の暗号化パケットを第1の暗号化パケットに復号し、当該復号された第1の暗号化パケットが自デバイス宛てであるか否かを判断するステップと、自デバイス宛てであるか否かの判断により、復号された第1の暗号化パケットが自デバイス宛てでなければ、別のデバイスを決定し送信するステップを実行し、復号された第1の暗号化パケットが自デバイス宛てであれば、第1の暗号化パケットをさらに復号するステップとを含む。
 上記のデータ通信方法は、複数のデバイスの各々において、各デバイスが有している公開鍵および当該公開鍵に関連付けられた電子証明書を他のデバイスに送信するステップと、公開鍵および電子証明書を受信したデバイスにおいて、ハッシュ関数に従って公開鍵から算出されるハッシュ値に基づいて、公開鍵および電子証明書の送信元のデバイスのIPアドレスを決定するステップとをさらに含んでいてもよい。
 本開示の別の形態によれば、ネットワークに接続されたデバイスでの通信処理方法が提供される。通信処理方法は、他のデバイスを宛先とするパケットが与えられると実行される、当該パケットを他のデバイスに関連付けられた第1の暗号鍵により暗号化して第1の暗号化パケットを生成するステップと、第1の暗号化パケットの送出先となるデバイスを決定するステップと、第1の暗号化パケットを決定したデバイスに関連付けられた第2の暗号鍵により暗号化して第2の暗号化パケットを生成するステップと、第2の暗号化パケットを決定したデバイスへ送信するステップとを含む。通信処理方法は、さらに、他のデバイスから第2の暗号化パケットを受信すると実行される、第2の暗号化パケットを第1の暗号化パケットに復号するステップと、復号された第1の暗号化パケットが、自デバイス宛てであるか否かの判断により、自デバイス宛てであるか否かを判断するステップと、復号された第1の暗号化パケットが自デバイス宛てでなければ、当該第1の暗号化パケットの送出先となるさらに別のデバイスを決定し、当該決定したデバイスに関連付けられた第2の暗号鍵により第2の暗号化パケットを生成して送信するステップと、復号された第1の暗号化パケットが自デバイス宛てであれば、第1の暗号化パケットをさらに復号するステップとを含む。
 上述の形態において、各デバイスが有しているIPアドレスに基づいて、送出先となるデバイスが決定されてもよい。
 上述の通信処理方法は、秘密鍵および公開鍵を取得するステップと、ハッシュ関数に従って公開鍵から算出されるハッシュ値に基づいて、自デバイスのIPアドレスを決定するステップと、認証局から公開鍵に関連付けられた電子証明書を取得するステップと、公開鍵および電子証明書を他のデバイスに送信するステップとをさらに含んでいてもよい。
 上述の通信処理方法は、他のデバイスから公開鍵および公開鍵に関連付けられた電子証明書を受信すると、電子証明書の正当性を判断するステップと、電子証明書が正当であると判断されると、ハッシュ関数に従って公開鍵から算出されるハッシュ値に基づいて、他のデバイスのIPアドレスを決定するステップとをさらに含んでいてもよい。
 上述の通信処理方法は、他のデバイスを宛先とするパケットが与えられると実行される、当該宛先のデバイスのIPアドレスを探索するステップをさらに含んでいてもよい。
 上述の通信処理方法は、他のデバイスを宛先とするパケットが与えられると実行される、他のデバイスとの間のセッションを確立するとともに、第1の暗号鍵を決定するステップをさらに含んでいてもよい。また、上述の通信処理方法は、他のデバイスから第2の暗号化パケットを受信すると実行される、第1の暗号化パケットの送出先となるさらに別のデバイスとの間のセッションを確立するとともに、第2の暗号鍵を決定するステップをさらに含んでいてもよい。
 本開示のさらに別の形態によれば、ネットワークに接続するためのネットワークインターフェイスと、ネットワークインターフェイスに接続された制御部とを含む装置が提供される。制御部は、パケットを他のデバイスに関連付けられた第1の暗号鍵を用いて第1の暗号化パケットに暗号化する処理、および、第1の暗号化パケットを復号する処理を実行可能な第1の暗号化/復号部と、第1の暗号化パケットを第1の暗号化パケットの送出先となるデバイスに関連付けられた第2の暗号鍵を用いて第2の暗号化パケットに暗号化する処理、および、第2の暗号化パケットを復号する処理を実行可能な第2の暗号化/復号部と、他のデバイスを宛先とするパケットが第1の暗号化/復号部および第2の暗号化/復号部においてそれぞれ暗号化されることで生成される第2の暗号化パケットを送出先のデバイスに送信する送信管理部とを含む。送信管理部は、他のデバイスから受信した第2の暗号化パケットを第2の暗号化/復号部において復号することで生成される第1の暗号化パケットが自デバイス宛てであるか否かを判断し、生成された第1の暗号化パケットが自デバイス宛てでなければ、当該第1の暗号化パケットが第2の暗号化/復号部において暗号化されることで生成される第2の暗号化パケットをさらに別のデバイスに送信し、生成された第1の暗号化パケットが自デバイス宛てであれば、当該第1の暗号化パケットを第1の暗号化/復号部においてさらに復号し出力する。
 本開示のさらに別の形態によれば、ネットワークに接続するためのネットワークインターフェイスを有するコンピュータのための通信処理プログラムが提供される。通信処理プログラムはコンピュータによって実行されると、コンピュータに上述のいずれかの通信処理方法を実行させる。
 本開示によれば、多数のデバイスが存在するネットワークにおいて、各デバイスが自立してデータ通信を実現できる解決策を提供できる。
本実施の形態に従うネットワークシステムの全体構成の一例を示す模式図である。 本実施の形態に従うデバイスのハードウェア構成例を示す模式図である。 本実施の形態に従うデバイスのプログラムおよびデータの構成例を示す模式図である。 本実施の形態に従うネットワークシステムにおけるIPアドレスの認証手順を説明するための図である。 本実施の形態に従うネットワークシステムで利用されるIPアドレスに埋め込まれる種類特定情報の一例を示す図である。 本実施の形態に従うネットワークシステムにおいてデバイスが認証済みIPアドレスを提供する処理手順を示すフローチャートである。 本実施の形態に従うネットワークシステムにおけるIPアドレスの通知に係る処理を説明するための図である。 本実施の形態に従うネットワークシステムにおけるIPアドレスの通知に係る処理を説明するための図である。 本実施の形態に従うネットワークシステムにおけるIPアドレスの通知に係る処理手順を示すシーケンスチャートである。 本実施の形態に従うネットワークシステムにおけるデータ通信の概要を説明するための図である。 本実施の形態に従うデバイスにおけるデータ送信に係る機能構成を示す模式図である。 本実施の形態に従うデバイスにおけるデータ送信時の動作例を示す模式図である。 本実施の形態に従うデバイスにおいて送信パケットが発生した場合の処理手順を示すフローチャートである。 本実施の形態に従うデバイスにおいて他のデバイスからパケットを受信した場合の処理手順を示すフローチャートである。
 本開示に係る実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.ネットワークシステム1の全体構成>
 まず、本実施の形態に従うネットワークシステム1の全体構成について説明する。
 図1は、本実施の形態に従うネットワークシステム1の全体構成の一例を示す模式図である。図1を参照して、インターネットやイントラネットなどの任意のネットワーク2には、複数のデバイス100-1,100-2,100-3,100-4,100-5,・・・(以下、「デバイス100」と総称することもある。)が接続されているとする。一部のデバイス100は、アクセスポイント4との間に確立された無線通信を介して、ネットワーク2に接続されてもよい。あるいは、別の一部のデバイス100は、移動体基地局6との間に確立された無線通信を介して、ネットワーク2に接続されてもよい。
 このように、ネットワーク2は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線アクセスネットワーク(RAN)、およびインターネットのうちのいずれかを含んでいてもよい。
 ネットワークに接続されたデバイス100の各々は、ネットワークの「ノード」とみなすことができ、以下の説明においては、デバイス100を「ノード」と称することもある。
 本実施の形態に従うネットワークシステム1において、デバイス100の間では、後述するような手順に従って、データ通信を実現する。なお、デバイス100間の物理的な接続方法はどのようなものであってもよい。
 デバイス100は、各々が有しているIPアドレスを用いて他のデバイスとデータ通信を行う機能を有している任意の装置を包含する。デバイス100は、通信装置単体として構成されることもあるし、何らかのモノの一部として、あるいは、何らかのモノに組み込まれて構成されることもある。
 より具体的には、デバイス100は、例えば、パーソナルコンピュータ、スマートフォン、タブレット、ユーザの身体(例えば、腕や頭など)に装着されるウェアラブルデバイス(例えば、スマートウォッチやARグラスなど)のいずれであってもよい。また、デバイス100は、スマート家電、コネクティッド自動車、工場などに設置された制御機器あるいはその一部であってもよい。
 本実施の形態に従うネットワークシステム1は、1または複数の認証局200をさらに含む。認証局200の各々は、1または複数のサーバで構成されるコンピュータである。1または複数の認証局200を用いて、後述するような手順によって、各デバイス100が有しているIPアドレスは認証される。その結果、各デバイス100は、認証済みIPアドレスを有することになる。
 本明細書において、「認証済みIPアドレス」は、通信先あるいは第三者に対して、各デバイス100が保持しているIPアドレスの正当性が保証されている状態を意味する。より具体的には、「認証済みIPアドレス」は、不可逆な暗号学的ハッシュ関数によって生成されるとともに、認証局によって直接的または間接的に認証されたIPアドレスであることを意味する(詳細については後述する)。このような「認証済みIPアドレス」を用いることで、各デバイス100がデータ通信に利用するIPアドレスが偽装されていないことを保証できる。
 その結果、ネットワークシステム1に含まれる任意のデバイス100は、各デバイス100が有しているIPアドレスに基づいて一意に特定されることになる。すなわち、各デバイスは、各デバイスが有しているIPアドレスに基づいて、データ送信の宛先や送出先となるデバイスを決定できる。
 IPアドレスは、インターネットに接続されたデバイス100間のデータ通信にも用いることができるグローバルIPアドレスが想定されるが、特定のネットワーク内だけで利用されるプライベートIPアドレスであってもよい。
 IPアドレスは、バージョンによって、アドレスを構成するビット数が異なっている。現在制定されているIPv4(Internet Protocol Version 4)においては、32ビットのアドレス区間が規定されており、現在制定されているIPv6(Internet Protocol Version 6)においては、128ビットのアドレス区間が規定されている。本実施の形態においては、IPv6に従うIPアドレスを主として説明する。但し、より多くのビット数で規定されるネットワークアドレス、あるいは、より少ないビット数で規定されるネットワークアドレスにも本開示は適用可能である。
 <B.デバイス100の構成例>
 次に、本実施の形態に従うネットワークシステム1に用いられるデバイス100のハードウェアおよびソフトウェアの構成例について説明する。
 図2は、本実施の形態に従うデバイス100のハードウェア構成例を示す模式図である。図2を参照して、デバイス100は、主たるコンポーネントとして、処理回路(processing circuitry)である制御部110とを含む。
 制御部110は、本実施の形態に従う機能の提供および処理の実行を実現するための演算主体である。制御部110は、図2に示すようなプロセッサおよびメモリを用いて、メモリに格納されたコンピュータ可読命令(computer readable instructions)(図3に示すようなOS(Operating System)および通信処理プログラム)をプロセッサが実行するように構成されてもよい。あるいは、コンピュータ可読命令に相当する回路が組み込まれたASIC(Application Specific Integrated Circuit)などのハードワイヤード回路を用いて制御部110を実現してもよい。さらにあるいは、FPGA(field-programmable gate array)上にコンピュータ可読命令に相当する回路を実現することで制御部110を実現してもよい。また、プロセッサおよびメモリ、ASIC、FPGAなどを適宜組み合わせて制御部110を実現してもよい。
 図2に示すようなプロセッサおよびメモリを用いた構成において、制御部110は、プロセッサ102と、主メモリ104と、ストレージ106と、ROM(Read Only Memory)108とを含む。
 プロセッサ102は、コンピュータ可読命令を順次読出して実行する演算回路である。プロセッサ102は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。複数のプロセッサ102を用いて制御部110を実現してもよいし(マルチプロセッサの構成)、複数のコアを有するプロセッサを用いて制御部110を実現してもよい(マルチコアの構成)。
 主メモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置である。プロセッサ102は、ストレージ106またはROM108に格納された各種プログラムのうち、指定されたプログラムを主メモリ104上に展開し、主メモリ104と協働することで、本実施の形態に従う各種処理を実現する。
 ストレージ106は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリなどの不揮発性記憶装置である。ストレージ106には、プロセッサ102で実行される各種プログラムや後述するような各種データが格納されている。
 ROM108は、プロセッサ102で実行される各種プログラムや後述するような各種データを固定的に格納する。
 図2に示すようなプロセッサ102がメモリに格納されたコンピュータ可読命令を実行する構成において、メモリは、ストレージ106およびROM108に相当する。
 ここで、デバイス100のメモリに格納されるプログラムおよびデータの一例について説明する。
 図3は、本実施の形態に従うデバイス100のプログラムおよびデータの構成例を示す模式図である。図3を参照して、デバイス100のメモリ(ストレージ106および/またはROM108)には、例えば、コンピュータ可読命令を含むプログラムとして、OS160と、通信処理プログラム170と、各種アプリケーション300とが格納される。
 OS160は、デバイス100で実行される処理を実現するための基本的な機能を提供するプログラムである。通信処理プログラム170は、主として、本実施の形態に従う機能の提供および処理の実行を実現するためのプログラムである。なお、通信処理プログラム170は、OS160が提供するライブラリなどを利用して、本実施の形態に従う機能の提供および処理の実行を実現することもある。
 各種アプリケーション300は、デバイス100が提供する各種機能を実現するためのプログラムであり、ユーザが任意にインストールすることができる。典型的には、各種アプリケーション300は、通信処理プログラム170に提供されるデータ通信機能を利用した各種処理を提供する。
 また、デバイス100のメモリ(ストレージ106および/またはROM108)には、例えば、本実施の形態に従う機能の提供および処理の実行の実現に必要なデータとして、秘密鍵172と、公開鍵174と、電子証明書176とが格納される。秘密鍵172および公開鍵174は、任意の暗号化/復号アルゴリズムに従って生成される、いわゆる鍵ペアである。秘密鍵172は、他のデバイスとの暗号化通信に用いられる。公開鍵174は、後述するような手順に従って各デバイス100のIPアドレスの決定に用いられる。電子証明書176は、認証局200によって公開鍵174に対して発行されるものであり、デバイス100のIPアドレスの正当性を担保するためのものである。通常、電子証明書176は、認証局200の秘密鍵を用いて、各デバイス100の公開鍵174から算出されたハッシュ値(電子署名)などを含む。電子証明書176を受信したデバイス100は、認証局200の公開鍵を用いて、電子証明書176および電子証明書176に関連付けられた公開鍵174の正当性を確認する。
 鍵ペア(秘密鍵172および公開鍵174)の生成、電子証明書176の取得、およびこれらのデータの利用手順などについては後述する。
 なお、ストレージ106およびROM108の両方を設ける必要はなく、実装形態に応じて、いずれか一方のみを設けるようにしてもよい。また、ストレージ106およびROM108の両方を設ける場合には、例えば、鍵ペア(秘密鍵172および公開鍵174)についてはROM108に格納して、秘匿性を高めるようにしてもよい。
 再度図2を参照して、デバイス100は、デバイス100をネットワークに接続するためのネットワークインターフェイス120をさらに含む。ネットワークインターフェイス120は、ネットワークを介して他のデバイスとデータ通信を行う。
 ネットワークインターフェイス120は、例えば、イーサネット(登録商標)ポート、USB(Universal Serial Bus)ポート、IEEE1394などのシリアルポート、レガシーなパラレルポートといった有線接続端子を含む。あるいは、ネットワークインターフェイス120は、デバイス、ルータ、移動体基地局などと無線通信するための処理回路およびアンテナなどを含んでもよい。ネットワークインターフェイス120が対応する無線通信は、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、ZigBee(登録商標)、LPWA(Low Power Wide Area)、GSM(登録商標)、W-CDMA、CDMA200、LTE(Long Term Evolution)、第5世代移動通信システム(5G)のいずれであってもよい。
 デバイス100は、オプショナルなコンポーネントとして、表示部130と、入力部140と、メディアインターフェイス150とを含んでいてもよい。
 表示部130は、プロセッサ102での処理結果などを外部へ提示するためのコンポーネントである。表示部130は、例えば、LCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイなどであってもよい。また、表示部130は、ユーザの頭部に装着されるヘッドマウントディスプレイであってもよいし、画像をスクリーン上に投影するプロジェクターであってもよい。
 入力部140は、デバイス100を操作するユーザの入力操作を受け付けるためのコンポーネントである。入力部140は、例えば、キーボード、マウス、表示部130上に配置されたタッチパネル、デバイス100の筐体に配置された操作ボタンなどであってもよい。
 メディアインターフェイス150は、各種プログラム(コンピュータ可読命令)および/または各種データが格納された非一過性(non-transitory)のメディア152から各種プログラムおよび/または各種データを読み出す。
 メディア152は、例えば、DVD(Digital Versatile Disc)などの光学メディア、USBメモリなどの半導体メディアなどであってもよい。メディアインターフェイス150は、メディア152の種類に応じた構成が採用される。メディアインターフェイス150により読み出された各種プログラムおよび/または各種データは、ストレージ106などに格納されてもよい。
 なお、メディア152を介して各種プログラムおよび/または各種データをデバイス100にインストールするのではなく、ネットワーク上の配信サーバから必要なプログラムおよびデータをデバイス100にインストールするようにしてもよい。この場合には、ネットワークインターフェイス120を介して、必要なプログラムおよびデータが取得される。
 上述したように、表示部130、入力部140、メディアインターフェイス150は、オプショナルなコンポーネントであるため、例えば、USBなどの任意のインターフェイスを介してデバイス100の外部から接続されるようにしてもよい。
 本実施の形態に従う機能の提供および処理の実行を実現するのは制御部110であり、本願の技術的範囲は、少なくとも、制御部110を実現するためのハードウェアおよび/またはソフトウェアを包含する。ハードウェアは、上述したように、プロセッサおよびメモリからなる構成だけではなく、ASICなどを用いたハードワイヤード回路やFPGAを用いた構成を含み得る。すなわち、制御部110は、汎用コンピュータにプログラムをインストールすることで実現され得るし、専用のチップとして実現することもできる。
 また、プロセッサで実行されるソフトウェアは、メディア152を介して流通するものだけではなく、配信サーバを介して適宜ダウンロードされるものも含み得る。
 なお、本実施の形態に従う機能の提供および処理の実行を実現するための構成は、図2に示す制御部110に限られず、実現される時代に応じた任意の技術を用いて実装できる。
 <C.認証済みIPアドレス>
 次に、各デバイス100に対して認証済みIPアドレスを提供するための処理などについて説明する。
 (c1:IPアドレスの決定処理)
 本実施の形態に従うネットワークシステム1においては、典型的には、認証済みIPアドレスを用いて、各デバイス100のIPアドレスを認証する。一例として、公開鍵暗号基盤(PKI:public key infrastructure)を用いて、各デバイス100のIPアドレスを認証してもよい。
 図4は、本実施の形態に従うネットワークシステム1におけるIPアドレスの認証手順を説明するための図である。なお、図4中の「S1」~「S4」などの符号は、図6に示すステップ番号に対応している。
 図4を参照して、デバイス100は、秘密鍵172および公開鍵174からなる鍵ペアを有している。予め定められたハッシュ関数180に公開鍵174を入力することでハッシュ値178を算出し、その算出されたハッシュ値178の全部または一部を用いて、デバイス100のIPアドレス190として用いる。
 このようなIPアドレス190の決定処理に伴い、デバイス100は、公開鍵174を認証局200へ送信し、認証局200が公開鍵174に対して発行する電子証明書176を紐付ける。デバイス100は、自デバイスの公開鍵174および電子証明書176を他のデバイスへ送信する。他のデバイスは、デバイス100が公開する公開鍵174および電子証明書176に基づいて、デバイス100のIPアドレス190の正当性を確認する。IPアドレス190の正当性が確認されると、正当性が確認されたIPアドレス190を用いてデータ通信を開始する。自デバイスおよび他のデバイスは、互いに直接通信を行うことができるが、直接通信の処理に加えて、認証局200における問い合わせの処理を含むようにしてもよい。
 このように、本実施の形態に従うネットワークシステム1においては、IPアドレス190自体を認証することができ、このような認証済みIPアドレス190をデバイス自体が保持することで、各デバイスに静的または動的に割り当てられたIPアドレスを用いることなく、自立的なネットワークを構築できる。
 以下、本実施の形態に従うネットワークシステム1における認証済みIPアドレスを提供するための処理の詳細について説明する。
 鍵ペアである秘密鍵172および公開鍵174は、デバイス100自身が作成してもよいし、外部から提供されて予めデバイス100に格納されていてもよい。外部から提供される場合には、デバイス100は秘密鍵172のみを取得し、公開鍵174については自身で生成するようにしてもよい。
 鍵ペアである公開鍵174の生成方法の一例としては、乱数発生器が発生する所定長さのビット列(例えば、512ビット)を秘密鍵172として用いるとともに、公知の暗号アルゴリズム(例えば、楕円曲線暗号アルゴリズム)に従って秘密鍵172から所定長さのビット列(例えば、256ビット)からなる公開鍵174を生成してもよい。なお、デバイス100自身が鍵ペアを生成する場合には、乱数発生器は、OS160が提供する機能を利用して実現してもよいし、ASICなどのハードワイヤード回路を用いて実現してもよい。
 ハッシュ関数180は、公知の不可逆な暗号学的ハッシュ関数(例えば、BLAKE)を用いることができる。ハッシュ関数180は、所定長さのビット列(例えば、256ビット)からなるハッシュ値178を算出する。
 ハッシュ関数180には、公開鍵174だけではなく、任意のキーワードを入力するようにしてもよい。任意のキーワードとして、所定の組織に関連付けられたメッセージを用いてもよい。所定の組織に関連付けられたメッセージとして、当該所定の組織が有している商標の名称を含むメッセージを用いてもよい。例えば、所定の組織が保有する登録された商標の名称(例えば、「connectFree」)をハッシュ関数180に入力するキーワードとして用いるようにしてもよい。このような実装方式を採用することで、所定の組織以外の第三者が、当該所定の組織の許諾なしに本実施の形態に従うネットワークシステム1および関連する方法やプログラムなどを実施することを防止できる。
 ハッシュ関数180により算出されるハッシュ値178の全部または一部がIPアドレス190として用いられる。例えば、256ビット(16進数表現で64桁)のハッシュ値178が算出される場合には、64桁のハッシュ値178のうち任意の32桁(例えば、前半32桁)をIPv6に対応するIPアドレス190(128ビット)として決定してもよい。あるいは、64桁のハッシュ値178のうち前半8桁をIPv4に対応するIPアドレス190(32ビット)として決定してもよい。
 あるいは、IPv6に対応するIPアドレス190(128ビット)を考慮して、ハッシュ関数180から128ビットのハッシュ値178を算出するようにしてもよい。この場合には、算出されるハッシュ値178の全部をIPv6に対応するIPアドレス190(128ビット)として決定できる。
 本実施の形態によれば、デバイス100の公開鍵174に基づいてデバイス100に固有のIPアドレス190を決定できる。このように、デバイス100によって決定されたIPアドレス190を用いてデバイス100をインターネットなどのネットワークに接続させることができる。また、デバイス100は、インターネットサービスプロバイダ(ISP)などのグローバルIPアドレスを管理するサービス事業者(サーバ)が存在しなくても、自身が決定したIPアドレス190を用いてデータ通信を行うことができる。また、デバイス100は、アクセスポイントなどに実装されるDHCP(Dynamic Host Configuration Protocol)サーバなどのプライベートIPアドレスを管理するサーバが存在しなくても、自身が決定したIPアドレス190を用いてインターネットなどのグルーバルネットワークに接続してデータ通信を行うことができる。したがって、インターネットなどのネットワークへの接続についてのユーザ体験およびユーザの利便性を向上できる。
 (c2:固有文字列)
 デバイス100が決定するIPアドレス190は、本実施の形態に従う処理手順に従って決定されたものであることを特定できるようにしてもよい。このような特定を行うために、例えば、IPアドレス190に予め定められた特定用の固有値(固有文字列)を含めるようにしてもよい。すなわち、決定されるIPアドレスは、予め定められた特定用の固有値(固有文字列)を含んでいてもよい。
 一例として、16進数表現のIPアドレス190の先頭2桁(先頭から1桁目および2桁目)を予め定められた固有文字列(例えば、「FC」)に固定してもよい。通常、ハッシュ関数180は一方向性関数であるので、IPアドレス190から公開鍵174を逆算することはできない。そのため、決定されるIPアドレス190が所定条件(この場合には、先頭2桁が予め定められた固有値になること)を満たすまで、乱数発生器を用いて、秘密鍵172および公開鍵174を繰り返し生成してもよい。すなわち、公開鍵174は、公開鍵174からハッシュ関数に従って算出されるハッシュ値に基づいて決定されるIPアドレス190が、予め定められたフォーマットに合致するように決定されてもよい。
 このように、IPアドレス190に予め定められた特定用の固有値(例えば、先頭2桁が「FC」)を含めることで、第三者は、デバイス100のIPアドレス190がデバイス100自身によって決定されたものであるか否かを判断できる。
 (c3:種類特定情報)
 デバイス100が決定するIPアドレス190には、デバイス100の種類を特定できる情報を含めてもよい。このような特定を行うために、例えば、IPアドレス190にデバイス100の種類に応じた値を含めるようにしてもよい。すなわち、決定されるIPアドレス190は、そのIPアドレス190を決定したデバイス100の種類に応じた値を含んでいてもよい。
 一例として、16進数表現のIPアドレス190の先頭から3桁目および4桁目にデバイス100の種類に応じた値(種類特定情報)を埋め込んでもよい。
 図5は、本実施の形態に従うネットワークシステム1で利用されるIPアドレスに埋め込まれる種類特定情報の一例を示す図である。図5に示される種類特定情報は、各デバイス100の制御部110のROM108(図2参照)などに予め格納されていてもよい。一例として、図5に示すようなデバイスの種類に応じた値を用いることができる。
 図5に示すように、例えば、デバイス100の種類がパーソナルコンピュータである場合には、IPアドレス190の先頭から3桁目および4桁目には、パーソナルコンピュータを示す値「00」が設定される。
 上述したように、通常、ハッシュ関数180は一方向性関数であるので、IPアドレス190から公開鍵174を逆算することはできない。そのため、決定されるIPアドレス190が所定条件(この場合には、先頭から3桁目および4桁目がデバイス100の種類を示す値になること)を満たすまで、乱数発生器を用いて、秘密鍵172および公開鍵174を繰り返し生成してもよい。すなわち、公開鍵174は、公開鍵174からハッシュ関数に従って算出されるハッシュ値に基づいて決定されるIPアドレス190が、予め定められたフォーマットに合致するように決定されてもよい。
 このように、IPアドレス190にデバイス100の種類を示す値を含めることで、第三者は、デバイス100が決定したIPアドレス190から当該デバイス100の種類を特定できる。
 (c4:公開鍵174の登録および電子証明書176の取得)
 次に、公開鍵174の登録および電子証明書176の取得について説明する。
 デバイス100は、公開鍵174の正当性を証明するための電子証明書176を認証局200から取得する。電子証明書176を取得する手順としては、デバイス100から公開鍵174を認証局200へ送信して登録するとともに、登録された公開鍵174に関連付けられた電子証明書176を認証局200から取得する。
 より具体的には、デバイス100(制御部110)は、ネットワークを介して、公開鍵174および電子証明書の発行要求(以下、「証明書署名要求」とも称す。)を認証局200へ送信する。認証局200は、デバイス100から受信した証明書署名要求に応答して、公開鍵174を登録するとともに、登録した公開鍵174に関連付けられた電子証明書176を発行する。そして、認証局200は、ネットワークを介して、電子証明書176をデバイス100へ送信する。
 典型的には、電子証明書176は、電子証明書176の所有者情報(この例では、デバイス100)、電子証明書176の発行者情報(この例では、認証局200)、発行者のデジタル署名、および電子証明書176の有効期限などを含む。
 認証局200は、所定の組織によって運営されていてもよいし、所定の組織によって運営されているルート認証局に関連付けられた中間認証局であってもよい。また、公開鍵174の登録および公開鍵174に関連付けられた電子証明書176の発行にあたっては、所定の組織に対して所定の手数料および/または維持料が必要であってもよい。
 本実施の形態によれば、公開鍵174の登録および公開鍵174の取得を通じて、公開鍵174が認証局200によって直接的に認証されることで、公開鍵174に基づいて決定されるIPアドレス190も認証局200によって間接的に認証される。このような認証局200の認証によって、デバイス100は、認証済みIPアドレス190を用いて、ネットワークを介してデータ通信を実現できる。
 なお、公開鍵174に関連付けられた電子証明書176には、秘匿性を向上させるために、デバイス100の属性に関連する情報(以下、「属性情報」とも称する。)を含んでもよい。デバイス100の属性情報は、例えば、デバイス100のOS160や通信処理プログラム170のバージョン情報、デバイス100を構成するハードウェア(例えば、プロセッサやストレージなど)のシリアル番号などを用いることができる。この場合、デバイス100は、公開鍵174および証明書署名要求を送信する際に、デバイス100の属性情報を認証局200へ送信してもよい。なお、電子証明書176に含ませるデバイス100の属性情報は、公知の不可逆な暗号学的ハッシュ関数などによって暗号化されてもよい。
 このように、デバイス100の属性情報を電子証明書176に含ませることで、デバイス100自身からの証明書署名要求に応答して、電子証明書176が発行されたことを認証できる。すなわち、デバイス100以外のデバイスがデバイス100になりすまして、デバイス100の公開鍵174および電子証明書176を用いることをより確実に防止できる。
 (c5:処理手順)
 次に、各デバイス100における認証済みIPアドレスを提供するための処理手順について説明する。
 図6は、本実施の形態に従うネットワークシステム1においてデバイス100が認証済みIPアドレスを提供する処理手順を示すフローチャートである。図6に示される処理手順は、各デバイス100においてそれぞれ実行され、図6に示す各ステップは、各デバイス100の制御部110によって実行される。
 図6を参照して、デバイス100は、任意のアルゴリズムに従って生成される鍵ペア(秘密鍵172および公開鍵174)を取得する(ステップS1)。この鍵ペアは、デバイス100自身が生成してもよいし、デバイス100が外部から取得してもよい。あるいは、デバイス100は秘密鍵172のみを外部から取得して、公開鍵174を内部で生成してもよい。
 続いて、デバイス100は、予め定められたハッシュ関数180に公開鍵174を入力することでハッシュ値178を算出し、その算出されたハッシュ値178の全部または一部からデバイス100のIPアドレス190を決定する(ステップS2)。すなわち、デバイス100は、ハッシュ関数180に従って公開鍵174から算出されるハッシュ値178に基づいて、自デバイスのIPアドレスを決定する。
 なお、IPアドレス190に固有文字列(例えば、IPアドレス190の先頭から1桁目および2桁目)および/または種類特定情報(例えば、IPアドレス190の先頭から3桁目および4桁目)が含まれるように、適切な鍵ペア(秘密鍵172および公開鍵174)が生成されてもよい。
 また、デバイス100は、公開鍵174および電子証明書の発行要求(証明書署名要求)を認証局200へ送信する(ステップS3)。認証局200は、デバイス100から受信した証明書署名要求に応答して、公開鍵174を登録するとともに、登録した公開鍵174に関連付けられた電子証明書176を発行する。そして、認証局200は、ネットワークを介して電子証明書176をデバイス100へ送信する。すると、デバイス100は、認証局200からの電子証明書176を受信して格納する(ステップS4)。
 このように、デバイス100は、認証局から公開鍵174に関連付けられた電子証明書176を取得する。
 なお、ステップS2の処理と、ステップS3およびS4の処理との実行順序は問わない。
 <D.データ通信処理>
 次に、認証済みIPアドレスを用いたデバイス100間のデータ通信処理について説明する。
 (d1:IPアドレスの通知)
 まず、本実施の形態に従うネットワークシステム1におけるデバイス100間のIPアドレスの通知に係る処理について説明する。
 図7および図8は、本実施の形態に従うネットワークシステム1におけるIPアドレスの通知に係る処理を説明するための図である。図7および図8には、3つのデバイス100-1,100-2,100-3の間でIPアドレスを交換する例を示す。なお、2つのデバイス100の間でも同様の処理が可能であるし、より多くのデバイス100の間でも同様の処理が可能である。
 図7および図8に示す状態において、デバイス100-1,100-2,100-3の各々は、上述したような手順に従って、デバイス100-1,100-2,100-3は、IPアドレス190-1,190-2,190-3をそれぞれ決定しており、また、認証局200への公開鍵174-1,174-2,174-3の登録および認証局200からの電子証明書176-1,176-2,176-3の取得もそれぞれ済んでいるものとする。
 図7および図8に示すように、各デバイス100は、定期的またはイベント毎に、各デバイスが有している公開鍵174および公開鍵174に関連付けられた電子証明書176を送信(ブロードキャスト)する。すなわち、各デバイス100は、公開鍵174および電子証明書176を他のデバイスに送信する。なお、公開鍵174が電子証明書176に含まれる場合には、電子証明書176のみを送信するようにしてもよい。
 図7には、一例として、デバイス100-1が公開鍵174-1および公開鍵174-1に関連付けられた電子証明書176-1を送信(ブロードキャスト)する例を示す。図7に示す例では、デバイス100-2および100-3がデバイス100-1により送信された公開鍵174-1および電子証明書176-1を受信できたとする。すると、デバイス100-2および100-3は、電子証明書176-1が正当であるか否かを判断した上で、正当であると判断されると、関連付けられた公開鍵174-1に基づいてデバイス100-1のIPアドレス190-1を決定し、コネクションテーブル194-2および194-3にそれぞれ登録する。
 ここで、コネクションテーブルは、データ通信を行うために各デバイス100の情報を含むものであり、各デバイス100は、コネクションテーブルを参照して、宛先のデバイス100のIPアドレスなどを特定するとともに、必要なセッションを確立する。ここで、「セッション」とは、パケットなどのデータの送受信に先立って、必要なデータをやり取りすることで構成される、論理的な通信路を意味する。
 より具体的には、デバイス100-2は、まず、デバイス100-1からブロードキャストされた電子証明書176-1が正当であるか否かを判断する。この正当性を判断する処理においては、電子証明書176-1の完全性が検証される。
 完全性が検証する処理の一例として、まず、デバイス100-2は、電子証明書176-1の所有者情報、電子証明書176-1の発行者情報、発行者のデジタル署名の存在を確認する。そして、デバイス100-2は、電子証明書176-1が有効期限内であるか否かを判断する。さらに、デバイス100-2は、電子証明書176-1の発行元が信頼できるものであるか否かを判断する。特に、電子証明書176-1が中間認証局により発行されている場合には、デバイス100-2は、電子証明書176-1を発行した中間認証局に関連付けられたルート認証局を特定するとともに、当該特定されたルート認証局が信頼できるものであるか否かを判断する。例えば、特定されたルート認証局がデバイス100-1に格納されている1または複数のルート認証局のいずれかと一致する場合には、電子証明書176-1の発行元が信頼できると判断する。
 以上のような判断処理にパスすると、デバイス100-2は、デバイス100-1からブロードキャストされた電子証明書176-1が正当であると決定する。すると、デバイス100-2は、予め定められたハッシュ関数180に、デバイス100-1からブロードキャストされた公開鍵174-1を入力することでハッシュ値178-1を算出し、その算出されたハッシュ値178-1の全部または一部を用いて、デバイス100-1のIPアドレス190-1を決定する。ここで、デバイス100-1および100-2は、共通のハッシュ関数180を有しているものとする。また、デバイス100-1および100-2の間において、ハッシュ値178-1からIPアドレス190-1を決定する処理も共通であるとする。
 以上のような処理によって、デバイス100-2は、デバイス100-1のIPアドレス190-1を決定できる。そして、デバイス100-2は、決定したデバイス100-1のIPアドレス190-1のエントリをコネクションテーブル194-2に追加する。なお、IPアドレス190-1に関連付けて公開鍵174-1を登録してもよい。
 また、デバイス100-3においてもデバイス100-2と同様の処理が実行され、デバイス100-3のコネクションテーブル194-3には、決定したデバイス100-1のIPアドレス190-1のエントリをコネクションテーブル194-2に追加する。なお、IPアドレス190-1に関連付けて公開鍵174-1を登録してもよい。
 図7に示すような処理によって、デバイス100-2およびデバイス100-3は、デバイス100-1のIPアドレス190-1を取得できる。
 図8には、一例として、デバイス100-2が公開鍵174-2および公開鍵174-2に関連付けられた電子証明書176-2を送信(ブロードキャスト)する例を示す。図8に示す例では、デバイス100-1および100-3がデバイス100-2により送信された公開鍵174-2および電子証明書176-2を受信できたとする。すると、デバイス100-1および100-3は、電子証明書176-2が正当であるか否かを判断した上で、正当であると判断されると、関連付けられた公開鍵174-2に基づいてデバイス100-2のIPアドレス190-2を決定し、コネクションテーブル194-1および194-3にそれぞれ登録する。
 デバイス100-1および100-3において実行される一連の処理は、図7を参照して説明した処理と同様であるので、詳細な説明は繰り返さない。図8に示すような処理によって、デバイス100-1およびデバイス100-3は、デバイス100-2のIPアドレス190-2を取得できる。
 さらに、デバイス100-3が公開鍵174-3および公開鍵174-3に関連付けられた電子証明書176-3を送信(ブロードキャスト)してもよい。デバイス100-1および100-2がデバイス100-3により送信された公開鍵174-3および電子証明書176-3を受信できたとする。すると、デバイス100-1および100-2は、電子証明書176-3が正当であるか否かを判断した上で、正当であると判断されると、関連付けられた公開鍵174-3に基づいてデバイス100-3のIPアドレス190-3を決定し、コネクションテーブル194-1および194-2にそれぞれ登録する。このような処理によって、デバイス100-1およびデバイス100-2は、デバイス100-3のIPアドレス190-3を取得できる。
 図9は、本実施の形態に従うネットワークシステム1におけるIPアドレスの通知に係る処理手順を示すシーケンスチャートである。図9には、図7および図8に対応させて、3つのデバイス100-1,100-2,100-3における処理手順を示す。
 デバイス100-1は、公開鍵174-1および公開鍵174-1に関連付けられた電子証明書176-1を送信(ブロードキャスト)する(シーケンスSQ10)。
 デバイス100-2は、デバイス100-1により送信された公開鍵174-1および電子証明書176-1を受信すると、電子証明書176-1の正当性を判断する(シーケンスSQ11)。電子証明書176-1が正当であると判断されると、デバイス100-2は、公開鍵174-1に基づいてデバイス100-1のIPアドレス190-1を決定し(シーケンスSQ12)、決定したデバイス100-1のIPアドレス190-1をコネクションテーブル194-2に登録する(シーケンスSQ13)。
 同様に、デバイス100-3は、デバイス100-1により送信された公開鍵174-1および電子証明書176-1を受信すると、電子証明書176-1の正当性を判断する(シーケンスSQ14)。電子証明書176-1が正当であると判断されると、デバイス100-3は、公開鍵174-1に基づいてデバイス100-1のIPアドレス190-1を決定し(シーケンスSQ15)、決定したデバイス100-1のIPアドレス190-1をコネクションテーブル194-3に登録する(シーケンスSQ16)。
 また、デバイス100-2は、公開鍵174-2および公開鍵174-2に関連付けられた電子証明書176-2を送信(ブロードキャスト)する(シーケンスSQ20)。
 デバイス100-1は、デバイス100-2により送信された公開鍵174-2および電子証明書176-2を受信すると、電子証明書176-2の正当性を判断する(シーケンスSQ21)。電子証明書176-2が正当であると判断されると、デバイス100-1は、公開鍵174-2に基づいてデバイス100-2のIPアドレス190-2を決定し(シーケンスSQ22)、決定したデバイス100-2のIPアドレス190-2をコネクションテーブル194-1に登録する(シーケンスSQ23)。
 同様に、デバイス100-3は、デバイス100-2により送信された公開鍵174-2および電子証明書176-2を受信すると、電子証明書176-2の正当性を判断する(シーケンスSQ24)。電子証明書176-2が正当であると判断されると、デバイス100-3は、公開鍵174-2に基づいてデバイス100-2のIPアドレス190-2を決定し(シーケンスSQ25)、決定したデバイス100-2のIPアドレス190-2をコネクションテーブル194-3に登録する(シーケンスSQ26)。
 また、デバイス100-3は、公開鍵174-3および公開鍵174-3に関連付けられた電子証明書176-3を送信(ブロードキャスト)する(シーケンスSQ30)。
 デバイス100-1は、デバイス100-3により送信された公開鍵174-3および電子証明書176-3を受信すると、電子証明書176-3の正当性を判断する(シーケンスSQ31)。電子証明書176-3が正当であると判断されると、デバイス100-1は、公開鍵174-3に基づいてデバイス100-3のIPアドレス190-3を決定し(シーケンスSQ32)、決定したデバイス100-3のIPアドレス190-3をコネクションテーブル194-1に登録する(シーケンスSQ33)。
 同様に、デバイス100-2は、デバイス100-3により送信された公開鍵174-3および電子証明書176-3を受信すると、電子証明書176-3の正当性を判断する(シーケンスSQ34)。電子証明書176-3が正当であると判断されると、デバイス100-2は、公開鍵174-3に基づいてデバイス100-3のIPアドレス190-3を決定し(シーケンスSQ35)、決定したデバイス100-3のIPアドレス190-3をコネクションテーブル194-2に登録する(シーケンスSQ36)。
 なお、シーケンスSQ10~SQ16の処理と、シーケンスSQ20~SQ26の処理と、シーケンスSQ30~SQ36の処理とは、任意の順序あるいは並列的に実行され得る。
 このように、各デバイス100は、他のデバイスから公開鍵174および公開鍵174に関連付けられた電子証明書176を受信すると、電子証明書176の正当性を判断する(シーケンスSQ11,SQ14,SQ21,SQ24,SQ31,SQ34)。そして、各デバイス100は、電子証明書176が正当であると判断されると、ハッシュ関数に従って公開鍵174から算出されるハッシュ値に基づいて、他のデバイスのIPアドレスを決定する(シーケンスSQ12,SQ15,SQ22,SQ25,SQ32,SQ35)。
 上述したように、本実施の形態に従うネットワークシステム1においては、他のデバイス100から送信された電子証明書176が正当であると判断されることを条件に、電子証明書176に関連付けられた公開鍵174に基づいて、当該他のデバイス100のIPアドレス190を決定する。公開鍵174に関連付けられた電子証明書176が正当であるとの判断を条件に、公開鍵174に基づいてIPアドレス190を決定するので、公開鍵174の正当性およびIPアドレス190の正当性を保証できる。したがって、デバイス100の間で確実なデータ通信を実現できる。
 また、本実施の形態に従うネットワークシステム1においては、各デバイス100がブロードキャストする公開鍵174に基づいて、各デバイス100のIPアドレスを知ることができるので、IPアドレスを管理するサーバが存在しなくても、デバイス100同士が直接接続し得る。特に、バーチャルプライベートネットワーク(VPN)サーバなどが存在しなくても、デバイス100同士で秘匿性の確保された通信を実現できるため、VPNサーバを維持するためのコストや消費電力を削減できる。
 (d2:データ通信)
 次に、デバイス100間のデータ通信に係る処理について説明する。本実施の形態に従うネットワークシステム1においては、各デバイス100がルーティング機能およびデータ転送機能を有しており、このような機能によって、自立的にデータ通信を行うことができるネットワークを実現できる。
 また、本実施の形態に従うネットワークシステム1においては、データ通信されるデータ(典型的には、パケットまたはフレーム)は、セッション毎に設定される暗号鍵により暗号化される。そのため、データ通信の秘匿性を担保できる。
 まず、本実施の形態に従うネットワークシステム1におけるデータ通信の概要について説明する。以下の説明では、典型例として、データは「パケット」の形で送信されるものとする。
 図10は、本実施の形態に従うネットワークシステム1におけるデータ通信の概要を説明するための図である。図10には、一例として、3つのデバイス100-1,100-2,100-3を含むネットワークにおけるデータ送信方法を説明する。
 図10において、一例として、デバイス100-1とデバイス100-2との間は直接的に通信が可能であり、デバイス100-2とデバイス100-3との間は直接的に通信が可能であるとする。但し、デバイス100-1とデバイス100-3との間は、直接的な通信はできない状態であるとする。ここで、直接的な通信が可能な状態とは、典型的には、ノード間が1ホップ以内に存在しているような接続状態を意味する。このような接続状態において、デバイス100-1からデバイス100-3に向けてパケットを送信する処理について説明する。
 本実施の形態に従うネットワークシステム1においては、2段階のセッションが確立される。より具体的には、2段階のセッションは、1段階目のセッションである隣接ノードセッション12と、2段階目のセッションであるエンドトゥエンドセッション14とを含む。
 隣接ノードセッション12は、直接的な通信が可能なデバイス100間に確立されるセッションである。図10に示す例では、デバイス100-1とデバイス100-2との間、および、デバイス100-2とデバイス100-3との間に隣接ノードセッション12が確立される。一方、エンドトゥエンドセッション14は、送信元のデバイス100と宛先のデバイス100との間に確立されるセッションである。
 隣接ノードセッション12およびエンドトゥエンドセッション14の各々において、パケットはそれぞれ暗号化される。典型的には、各セッションが確立される過程において、ノード間で使用される暗号鍵が交換ないし共有される。その結果、エンドトゥエンドセッション14においては、デバイス100-1とデバイス100-3との間で交換ないし共有された暗号鍵に基づいて、送信すべきパケット(以下、「送信パケット20」とも称す。)を暗号化して得られる暗号化パケット22がやり取りされる。送信パケット20は、宛先などの情報を含むヘッダ部20Hおよびデータ本体部20Dからなる。暗号化パケット22は、送信パケット20全体を暗号化した結果をデータ本体部22Dとして含み、さらに宛先などの情報を含むヘッダ部22Hが付加されている。このようなデータ構造を採用することで、データ本体部22Dに含まれる送信パケット20の秘匿性を維持しつつ、宛先のデバイスまでパケット転送を実現できる。
 隣接ノードセッション12においては、デバイス100-1とデバイス100-2との間で交換ないし共有された別の暗号鍵に基づいて、暗号化パケット22をさらに暗号化して得られる暗号化パケット24がやり取りされる。また、デバイス100-2とデバイス100-3との間で交換ないし交換されたさらに別の暗号鍵に基づいて、暗号化パケット22をさらに暗号化して得られる暗号化パケット26がやり取りされる。
 暗号化パケット24は、暗号化パケット22全体を暗号化した結果をデータ本体部24Dとして含み、さらに宛先などの情報を含むヘッダ部24Hが付加されている。同様に、暗号化パケット26は、暗号化パケット22全体を暗号化した結果をデータ本体部26Dとして含み、さらに宛先などの情報を含むヘッダ部26Hが付加されている。
 なお、デバイス100-2においては、暗号化パケット24が暗号化パケット22に一旦復号された後に、再度暗号化されて暗号化パケット26が生成されることになる。この場合であっても、デバイス100-2は、エンドトゥエンドセッション14において生成された暗号化パケット22を復号できないので、データ通信の秘匿性は担保される。
 図10に示すデータ送信方法において、デバイス100-1は、デバイス100-2を宛先とする送信パケット20をデバイス100-2に関連付けられた暗号鍵により暗号化して暗号化パケット22を生成する。そして、デバイス100-1は、暗号化パケット22の送出先となるデバイス(図10に示す例では、デバイス100-2)を決定し、当該決定したデバイスに関連付けられた暗号鍵により暗号化パケット22を暗号化して暗号化パケット24を生成し、当該決定したデバイスへ送信する。
 暗号化パケット24を受信したデバイス100-2は、暗号化パケット24を暗号化パケット22に復号し、復号された暗号化パケット22が自デバイス宛てであるか否かを判断する。そして、復号された暗号化パケット22が自デバイス宛てでなければ、デバイス100-2は、デバイス100-1が暗号化パケット24をデバイス100-2に送信したのと同様の処理を実行する。すなわち、デバイス100-2は、暗号化パケット22のさらなる送出先となるデバイス(この場合には、デバイス100-3)を決定し、当該決定したデバイスに関連付けられた暗号鍵により暗号化パケット22を暗号化して暗号化パケット26を生成し、当該決定したデバイスへ送信する。
 一方、復号された暗号化パケット22が自デバイス宛てであれば(この例では、図10に示す例では、暗号化パケット22がデバイス100-3に到達したとき)、暗号化パケット22が送信パケット20に復号される。
 図11は、本実施の形態に従うデバイス100におけるデータ送信に係る機能構成を示す模式図である。図11を参照して、デバイス100は、図10に示すようなデータ通信を実現するための構成として、ルータエンジン1120と、転送エンジン1110と、インターフェイス1210とを含む。これらのコンポーネントは、制御部110によって提供されることになる。
 ルータエンジン1120は、主として、エンドトゥエンドセッション14を担当し、転送エンジン1110は、主として、隣接ノードセッション12を担当する。
 ルータエンジン1120は、各種アプリケーション300から送信パケットを与えられると、宛先のデバイス100との間で交換ないし交換された暗号鍵を用いて送信パケットを暗号化するとともに、暗号化した送信パケットを含む暗号化パケットを宛先のデバイス100へ送信する。
 また、ルータエンジン1120は、転送エンジン1110から暗号化パケットを与えられると、当該暗号化パケットが自デバイス宛てであるか否かを判断する。自デバイス宛ての暗号化パケットである場合には、ルータエンジン1120は、送信元のデバイス100との間で交換ないし共有された暗号鍵を用いて当該暗号化パケットに含まれる送信パケットを受信されたパケット(以下、「受信パケット」とも称す。)として復号し、各種アプリケーション300へ出力する。一方、他デバイス宛ての暗号化パケットである場合には、ルータエンジン1120は、当該暗号化パケットを転送エンジン1110へ戻す。
 より具体的には、ルータエンジン1120は、セッション管理エンジン1122と、暗号化/復号エンジン1124と、エンドトゥエンドセッション管理テーブル1126と、サーチエンジン1128とを含む。
 セッション管理エンジン1122は、宛先のデバイス100との間のセッション確立、パケットの転送処理および再送処理などを行う。また、セッション管理エンジン1122は、与えられた送信パケットの宛先に応じて、当該送信パケットの送信先を決定する。暗号化/復号エンジン1124は、データの暗号化および復号を行う。エンドトゥエンドセッション管理テーブル1126は、セッション管理エンジン1122がセッションを確立できるデバイス100のIPアドレス、暗号化鍵、コネクション種別などを保持する。サーチエンジン1128は、各種アプリケーション300から指定されたIPアドレスがエンドトゥエンドセッション管理テーブル1126に登録されていない場合に、ネットワーク上で指定されたIPアドレスを有するデバイス100およびその経路を探索する。
 転送エンジン1110は、インターフェイス1210からパケットを与えられると、当該パケットを直接データ通信する先のデバイス100との間で交換ないし交換された暗号鍵を用いて、当該パケットを復号した上で、ルータエンジン1120へ出力する。また、転送エンジン1110は、ルータエンジン1120からパケットを与えられると、当該パケットを直接データ通信する先のデバイス100との間で交換ないし交換された暗号鍵を用いて、当該パケットを暗号化した上で、送信先のデバイス100へ送信する。
 より具体的には、転送エンジン1110は、セッション管理エンジン1112と、暗号化/復号エンジン1114と、隣接ノードセッション管理テーブル1116とを含む。
 セッション管理エンジン1112は、パケットを直接データ通信する先のデバイス100との間のセッション確立、パケットの転送処理および再送処理などを行う。暗号化/復号エンジン1114は、データの暗号化および復号を行う。隣接ノードセッション管理テーブル1116は、セッション管理エンジン1112がセッションを確立できるデバイス100のIPアドレス、暗号化鍵、コネクション種別などを保持する。
 インターフェイス1210は、ネットワークインターフェイス120により物理的にやり取りされるデータを論理的に処理するモジュールである。インターフェイス1210は、セッション管理エンジン1112と、プロトコル毎に用意されるデータ通信経路(例えば、TCP(Transmission Control Protocol)1212、UDP(User Datagram Protocol)1214、その他のプロトコル1216など)とを論理的に接続する。
 図12は、本実施の形態に従うデバイス100におけるデータ送信時の動作例を示す模式図である。図12には、デバイス100が自デバイス宛てのパケット(自デバイス宛受信パケット)を受信した場合の処理、および、デバイス100が他デバイス宛てのパケット(他デバイス宛受信パケット)を受信した場合の処理を示す。
 デバイス100にパケットが到着すると、当該パケットは転送エンジン1110に送られて、当該パケットを直接データ通信したデバイス100との間で交換ないし交換された暗号鍵を用いて、復号される。当該パケットが自デバイス宛てである場合には、復号されたパケットはルータエンジン1120に送られ、送信元のデバイス100との間で交換ないし交換された暗号鍵を用いてさらに復号されて、各種アプリケーション300へ出力される。一方、当該パケットが他デバイス宛てである場合には、復号されたパケットは転送エンジン1110に戻されて、次の送信先のデバイスとの間で交換ないし交換された暗号鍵を用いて暗号化された上で送信される。
 図13は、本実施の形態に従うデバイス100において送信パケットが発生した場合の処理手順を示すフローチャートである。図14は、本実施の形態に従うデバイス100において他のデバイスからパケットを受信した場合の処理手順を示すフローチャートである。図13および図14には、ネットワークに接続されたデバイス100での通信処理方法の手順が示される。図13および図14に示す各ステップは、デバイス100の制御部110(図2参照)によって実行される(典型的には、プロセッサおよびメモリが協働することにより実現される)。
 図13を参照して、各種アプリケーション300などによって、他のデバイスを宛先とする送信パケット20が与えられたか否かを判断する(ステップS100)。他のデバイスを宛先とする送信パケット20が与えられていなければ(ステップS100においてNO)、ステップS100の処理が繰り返される。
 一方、他のデバイスを宛先とする送信パケット20が与えられると(ステップS100においてYES)、ステップS102以下の処理が実行される。すなわち、図13に示すステップS102以下の処理は、他のデバイスを宛先とするパケットが与えられると実行される。
 ステップS102において、デバイス100(図11のセッション管理エンジン1122)は、宛先のデバイスのIPアドレスに対応するセッションが登録されているか否かを判断する(ステップS102)。典型的には、図11に示すエンドトゥエンドセッション管理テーブル1126には確立可能なセッション毎のIPアドレスが登録されており、この登録内容が参照される。
 宛先のデバイスのIPアドレスに対応するセッションが登録されていれば(ステップS102においてYES)、後述のステップS114の処理が実行される。
 宛先のデバイスのIPアドレスに対応するセッションが登録されていなければ(ステップS102においてNO)、デバイス100(図11のサーチエンジン1128)は、送信パケット20をキューに一旦格納し(ステップS104)、それぞれのデータ通信経路について、宛先のデバイスおよび宛先のデバイスまでの経路の探索を開始する(ステップS106)。そして、デバイス100は、探索が成功したか否かを判断する(ステップS108)。探索が成功すると(ステップS108においてYES)、後述のステップS114の処理が実行される。このように、デバイス100は、他のデバイスを宛先とするパケットが与えられると、当該宛先のデバイスのIPアドレスを探索する。
 一方、探索が成功していなければ(ステップS108においてNO)、デバイス100は、送信パケット20をキューに格納してから予め定められた制限時間(タイムアウト時間)が経過したか否かを判断する(ステップS110)。送信パケット20をキューに格納してから予め定められた制限時間が経過していなければ(ステップS110においてNO)、ステップS108以下の処理が繰り返される。
 一方、送信パケット20をキューに格納してから予め定められた制限時間が経過していれば(ステップS110においてYES)、デバイス100は、キューに格納した送信パケット20を破棄する(ステップS112)。そして、処理は終了する。
 ステップS114において、デバイス100(図11のセッション管理エンジン1122)は、宛先のデバイスとの間にエンドトゥエンドセッション14が確立されているか否かを判断する(ステップS114)。
 宛先のデバイスとの間にエンドトゥエンドセッション14が確立されていなければ(ステップS114においてNO)、デバイス100は、宛先のデバイスとの間にエンドトゥエンドセッション14を確立する(ステップS116)。エンドトゥエンドセッション14を確立する際には、デバイス100は、エンドトゥエンドセッション14に関連付けられた暗号鍵を宛先のデバイスとの間で交換ないし共有する。このように、デバイス100は、他のデバイスとの間のエンドトゥエンドセッション14を確立するとともに、エンドトゥエンドセッション14(すなわち、当該他のデバイス)に関連付けられた暗号鍵を決定する。
 一方、宛先のデバイスとの間にエンドトゥエンドセッション14が既に確立されていれば(ステップS114においてYES)、ステップS116の処理はスキップされる。
 続いて、デバイス100(暗号化/復号エンジン1124)は、宛先のデバイスとの間に確立されているエンドトゥエンドセッション14に対応付けられた暗号鍵で送信パケット20を暗号化することで、暗号化パケット22を生成する(ステップS118)。すなわち、デバイス100は、宛先となっている他のデバイスに関連付けられた暗号鍵により暗号化して暗号化パケット22を生成する。
 続いて、デバイス100(セッション管理エンジン1112)は、暗号化パケット22の送出先となるデバイスを決定する(ステップS120)。典型的には、図11に示す隣接ノードセッション管理テーブル1116には確立可能なセッション毎のIPアドレスが登録されており、この登録内容が参照される。さらに、デバイス100(暗号化/復号エンジン1114)は、決定した送出先のデバイスとの間に隣接ノードセッション12が確立されているか否かを判断する(ステップS122)。
 決定した送出先のデバイスとの間に隣接ノードセッション12が確立されていなければ(ステップS122においてNO)、デバイス100は、決定した送出先のデバイスとの間に隣接ノードセッション12を確立する(ステップS124)。隣接ノードセッション12を確立する際には、デバイス100は、隣接ノードセッション12に関連付けられた暗号鍵を対象のデバイスとの間で交換ないし共有する。このように、デバイス100は、暗号化パケット22の送出先となるさらに別のデバイスとの間の隣接ノードセッション12を確立するとともに、隣接ノードセッション12(すなわち、当該送出先となるデバイス)に関連付けられた暗号鍵を決定する。
 一方、決定した送出先のデバイスとの間に隣接ノードセッション12が既に確立されていれば(ステップS122においてYES)、ステップS124の処理はスキップされる。
 続いて、デバイス100(暗号化/復号エンジン1114)は、決定した送出先のデバイスとの間に確立されている隣接ノードセッション12に対応付けられた暗号鍵で暗号化パケット22を暗号化することで、暗号化パケット24を生成する(ステップS126)。すなわち、すなわち、デバイス100は、暗号化パケット22を決定した送出先のデバイスに関連付けられた暗号鍵により暗号化して暗号化パケット24を生成する。
 最終的に、デバイス100(セッション管理エンジン1112)は、生成した暗号化パケット24を決定した送出先のデバイスへ送出する(ステップS128)。以上により、送信パケット20が与えられた場合の処理は終了する。
 図14を参照して、他のデバイスから暗号化パケット24を受信したか否かを判断する(ステップS200)。他のデバイスから暗号化パケット24を受信していなければ(ステップS200においてNO)、ステップS200の処理が繰り返される。
 一方、他のデバイスから暗号化パケット24を受信すると(ステップS200においてYES)、ステップS202以下の処理が実行される。すなわち、図14に示すステップS202以下の処理は、他のデバイスから暗号化パケット24を受信すると実行される。
 デバイス100(暗号化/復号エンジン1114)は、当該他のデバイスとの間の隣接ノードセッション12に対応付けられた暗号鍵で暗号化パケット24を暗号化パケット22に復号する(ステップS202)。そして、デバイス100(セッション管理エンジン1112)は、復号された暗号化パケット22が自デバイス宛てであるか否かを判断する(ステップS204)。
 復号された暗号化パケット22が自デバイス宛てでなければ(ステップS204においてNO)、デバイス100(セッション管理エンジン1112)は、暗号化パケット22のさらなる送出先となるデバイスを決定する(ステップS210)。典型的には、図11に示す隣接ノードセッション管理テーブル1116が参照される。さらに、デバイス100(暗号化/復号エンジン1114)は、決定した送出先のデバイスとの間に隣接ノードセッション12が確立されているか否かを判断する(ステップS212)。決定した送出先のデバイスとの間に隣接ノードセッション12が確立されていなければ(ステップS212においてNO)、デバイス100は、決定した送出先のデバイスとの間に隣接ノードセッション12を確立する(ステップS214)。なお、決定した送出先のデバイスとの間に隣接ノードセッション12が既に確立されていれば(ステップS212においてYES)、ステップS214の処理はスキップされる。
 続いて、デバイス100(暗号化/復号エンジン1114)は、決定した送出先のデバイスとの間に確立されている隣接ノードセッション12に対応付けられた暗号鍵で暗号化パケット22を暗号化することで、暗号化パケット24を生成する(ステップS216)。最終的に、デバイス100(セッション管理エンジン1112)は、生成した暗号化パケット24を決定した送出先のデバイスへ送出する(ステップS218)。
 このように、復号された暗号化パケット22が自デバイス宛てでなければ(ステップS204においてNO)、デバイス100は、暗号化パケット22の送出先となるさらに別のデバイスを決定し、当該決定したデバイスに関連付けられた暗号鍵により暗号化パケット24を生成して送信する。以上により、他のデバイスから暗号化パケット24を受信した場合の処理は終了する。
 一方、復号された暗号化パケット22が自デバイス宛てであれば(ステップS204においてYES)、デバイス100(暗号化/復号エンジン1124)は、送信元のデバイスとの間に確立されているエンドトゥエンドセッション14に対応付けられた暗号鍵で暗号化パケット22を送信パケット20に復号する(ステップS206)。そして、デバイス100は、復号した送信パケット20を受信パケットとして、各種アプリケーション300へ出力する(ステップS208)。以上により、他のデバイスから暗号化パケット24を受信した場合の処理は終了する。
 上述したように、本実施の形態に従うネットワークシステム1においては、送信元のデバイスから宛先のデバイスへパケットを送信するにあたって、送信元のデバイスと宛先のデバイスとの間のエンドトゥエンドセッション14に関連付けられた暗号鍵を用いて暗号化パケット22が生成される。暗号化パケット22は、1または複数のデバイスにより順次転送されることもあるが、このような過程においても、暗号化された状態で順次転送されるため、宛先のデバイスに到達するまでの間に亘って、パケットの秘匿性を維持できる。
 さらに、本実施の形態に従うネットワークシステム1においては、暗号化パケット22を順次転送するデバイス間においても、当該デバイス間の隣接ノードセッション12に関連付けられた暗号鍵を用いて暗号化パケット22がさらに暗号化される。そのため、暗号化パケット22が順次転送されるデータ通信過程においても、より秘匿性を高めることができる。
 <E.利点>
 本実施の形態に従うネットワークシステム1によれば、多数のデバイスが存在するネットワークにおいて、各デバイス100が自立してデータ通信を実現できる解決策を提供できる。
 今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 ネットワークシステム、2 ネットワーク、4 アクセスポイント、6 移動体基地局、12 隣接ノードセッション、14 エンドトゥエンドセッション、20 送信パケット、20D,22D,24D,26D データ本体部、20H,22H,24H,26H ヘッダ部、22,24,26 暗号化パケット、100 デバイス、102 プロセッサ、104 主メモリ、106 ストレージ、108 ROM、110 制御部、120 ネットワークインターフェイス、130 表示部、140 入力部、150 メディアインターフェイス、152 メディア、160 OS、170 通信処理プログラム、172 秘密鍵、174 公開鍵、176 電子証明書、178 ハッシュ値、180 ハッシュ関数、190 IPアドレス、194 コネクションテーブル、200 認証局、300 各種アプリケーション、1110 転送エンジン、1112,1122 セッション管理エンジン、1114,1124 暗号化/復号エンジン、1116 隣接ノードセッション管理テーブル、1120 ルータエンジン、1126 エンドトゥエンドセッション管理テーブル、1128 サーチエンジン、1210 インターフェイス、1216 その他のプロトコル。

Claims (10)

  1.  複数のデバイスが接続されたネットワークにおけるデータ送信方法であって、
     第1のデバイスにおいて、第2のデバイスを宛先とするパケットを前記第2のデバイスに関連付けられた第1の暗号鍵により暗号化して第1の暗号化パケットを生成するステップと、
     前記第1の暗号化パケットの送出先となるデバイスを決定し、当該決定したデバイスに関連付けられた第2の暗号鍵により前記第1の暗号化パケットを暗号化して第2の暗号化パケットを生成し、当該決定したデバイスへ送信するステップと、
     前記第2の暗号化パケットを受信したデバイスにおいて、前記第2の暗号化パケットを前記第1の暗号化パケットに復号し、当該復号された第1の暗号化パケットが自デバイス宛てであるか否かを判断するステップと、
     前記自デバイス宛てであるか否かの判断により、前記復号された第1の暗号化パケットが自デバイス宛てでなければ、別のデバイスを決定し前記送信するステップを実行し、前記復号された第1の暗号化パケットが自デバイス宛てであれば、前記第1の暗号化パケットをさらに復号するステップとを備える、データ送信方法。
  2.  前記複数のデバイスの各々において、各デバイスが有している公開鍵および当該公開鍵に関連付けられた電子証明書を他のデバイスに送信するステップと、
     前記公開鍵および前記電子証明書を受信したデバイスにおいて、ハッシュ関数に従って前記公開鍵から算出されるハッシュ値に基づいて、前記公開鍵および前記電子証明書の送信元のデバイスのIPアドレスを決定するステップとをさらに備える、請求項1に記載のデータ送信方法。
  3.  ネットワークに接続されたデバイスでの通信処理方法であって、
     他のデバイスを宛先とするパケットが与えられると実行される、
      当該パケットを前記他のデバイスに関連付けられた第1の暗号鍵により暗号化して第1の暗号化パケットを生成するステップと、
      前記第1の暗号化パケットの送出先となるデバイスを決定するステップと、
      前記第1の暗号化パケットを前記決定したデバイスに関連付けられた第2の暗号鍵により暗号化して第2の暗号化パケットを生成するステップと、
      前記第2の暗号化パケットを前記決定したデバイスへ送信するステップとを備え、
     他のデバイスから前記第2の暗号化パケットを受信すると実行される、
      前記第2の暗号化パケットを前記第1の暗号化パケットに復号するステップと、
      前記復号された第1の暗号化パケットが自デバイス宛てであるか否かを判断するステップと、
      前記復号された第1の暗号化パケットが、前記自デバイス宛てであるか否かの判断により、自デバイス宛てでなければ、当該第1の暗号化パケットの送出先となるさらに別のデバイスを決定し、当該決定したデバイスに関連付けられた第2の暗号鍵により第2の暗号化パケットを生成して送信するステップと、
      前記復号された第1の暗号化パケットが自デバイス宛てであれば、前記第1の暗号化パケットをさらに復号するステップとを備える、通信処理方法。
  4.  各デバイスが有しているIPアドレスに基づいて、送出先となるデバイスが決定される、請求項3に記載の通信処理方法。
  5.  秘密鍵および公開鍵を取得するステップと、
     ハッシュ関数に従って前記公開鍵から算出されるハッシュ値に基づいて、自デバイスのIPアドレスを決定するステップと、
     認証局から前記公開鍵に関連付けられた電子証明書を取得するステップと、
     前記公開鍵および前記電子証明書を他のデバイスに送信するステップとをさらに備える、請求項4に記載の通信処理方法。
  6.  前記他のデバイスから前記公開鍵および前記公開鍵に関連付けられた電子証明書を受信すると、前記電子証明書の正当性を判断するステップと、
     前記電子証明書が正当であると判断されると、ハッシュ関数に従って前記公開鍵から算出されるハッシュ値に基づいて、前記他のデバイスのIPアドレスを決定するステップとをさらに備える、請求項5に記載の通信処理方法。
  7.  前記他のデバイスを宛先とするパケットが与えられると実行される、当該宛先のデバイスのIPアドレスを探索するステップをさらに備える、請求項4~6のいずれか1項に記載の通信処理方法。
  8.  前記他のデバイスを宛先とするパケットが与えられると実行される、前記他のデバイスとの間のセッションを確立するとともに、前記第1の暗号鍵を決定するステップをさらに備え、
     前記他のデバイスから前記第2の暗号化パケットを受信すると実行される、前記第1の暗号化パケットの送出先となるさらに別のデバイスとの間のセッションを確立するとともに、前記第2の暗号鍵を決定するステップをさらに備える、請求項3~7のいずれか1項に記載の通信処理方法。
  9.  ネットワークに接続するためのネットワークインターフェイスと、
     前記ネットワークインターフェイスに接続された制御部とを備え、
     前記制御部は、
      パケットを前記他のデバイスに関連付けられた第1の暗号鍵を用いて第1の暗号化パケットに暗号化する処理、および、前記第1の暗号化パケットを復号する処理を実行可能な第1の暗号化/復号部と、
      前記第1の暗号化パケットを前記第1の暗号化パケットの送出先となるデバイスに関連付けられた第2の暗号鍵を用いて第2の暗号化パケットに暗号化する処理、および、前記第2の暗号化パケットを復号する処理を実行可能な第2の暗号化/復号部と、
      他のデバイスを宛先とするパケットが前記第1の暗号化/復号部および前記第2の暗号化/復号部においてそれぞれ暗号化されることで生成される前記第2の暗号化パケットを送出先のデバイスに送信する送信管理部とを備え、
     前記送信管理部は、
      他のデバイスから受信した第2の暗号化パケットを前記第2の暗号化/復号部において復号することで生成される第1の暗号化パケットが自デバイス宛てであるか否かを判断し、
      前記生成された第1の暗号化パケットが自デバイス宛てでなければ、当該第1の暗号化パケットが前記第2の暗号化/復号部において暗号化されることで生成される第2の暗号化パケットをさらに別のデバイスに送信し、
      前記生成された第1の暗号化パケットが自デバイス宛てであれば、当該第1の暗号化パケットを前記第1の暗号化/復号部においてさらに復号し出力する、装置。
  10.  ネットワークに接続するためのネットワークインターフェイスを有するコンピュータのための通信処理プログラムであって、前記通信処理プログラムは前記コンピュータによって実行されると、前記コンピュータに請求項3~8のいずれか1項に記載の通信処理方法を実行させる、通信処理プログラム。
PCT/JP2019/003445 2019-01-31 2019-01-31 データ送信方法、通信処理方法、装置、および通信処理プログラム WO2020157928A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP19913938.7A EP3920479A4 (en) 2019-01-31 2019-01-31 DATA TRANSMISSION METHOD, COMMUNICATION PROCESSING METHOD, DEVICE AND PROGRAM
PCT/JP2019/003445 WO2020157928A1 (ja) 2019-01-31 2019-01-31 データ送信方法、通信処理方法、装置、および通信処理プログラム
JP2020569289A JP7218003B2 (ja) 2019-01-31 2019-01-31 データ送信方法、通信処理方法、装置、および通信処理プログラム
US17/426,054 US11962575B2 (en) 2019-01-31 2019-01-31 Data transmission method, communication processing method, device, and communication processing program
TW109102812A TWI828848B (zh) 2019-01-31 2020-01-30 資料傳送方法、通訊處理方法、通訊裝置以及通訊處理程式
JP2023006080A JP2023055755A (ja) 2019-01-31 2023-01-18 通信方法、装置および通信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/003445 WO2020157928A1 (ja) 2019-01-31 2019-01-31 データ送信方法、通信処理方法、装置、および通信処理プログラム

Publications (1)

Publication Number Publication Date
WO2020157928A1 true WO2020157928A1 (ja) 2020-08-06

Family

ID=71842018

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/003445 WO2020157928A1 (ja) 2019-01-31 2019-01-31 データ送信方法、通信処理方法、装置、および通信処理プログラム

Country Status (5)

Country Link
US (1) US11962575B2 (ja)
EP (1) EP3920479A4 (ja)
JP (2) JP7218003B2 (ja)
TW (1) TWI828848B (ja)
WO (1) WO2020157928A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11729154B2 (en) * 2021-02-25 2023-08-15 Comcast Cable Communications, Llc Systems and methods for network privacy

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0522293A (ja) 1991-07-12 1993-01-29 Hitachi Ltd ブリツジ機能付きルータ装置
JP2013005110A (ja) * 2011-06-14 2013-01-07 Ntt Communications Kk 仮想ネットワークシステム、構成変更方法、トンネル終端装置、トンネル接続装置、及びプログラム
JP2018207472A (ja) * 2017-06-07 2018-12-27 コネクトフリー株式会社 ネットワークシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002529779A (ja) 1998-10-30 2002-09-10 サイエンス アプリケーションズ インターナショナル コーポレイション 保証されたシステム可用性を有する安全な通信のためのアジル・ネットワーク・プロトコル
US7203837B2 (en) * 2001-04-12 2007-04-10 Microsoft Corporation Methods and systems for unilateral authentication of messages
US7003672B2 (en) * 2001-09-25 2006-02-21 Hewlett-Packard Development Company, L.P. Authentication and verification for use of software
US7916739B2 (en) 2003-06-24 2011-03-29 Ntt Docomo, Inc. Location privacy for internet protocol networks using cryptographically protected prefixes
KR101261674B1 (ko) * 2008-12-22 2013-05-06 한국전자통신연구원 다운로드 제한 수신 시스템에서의 상호 인증 방법 및 장치
US8953798B2 (en) * 2010-10-29 2015-02-10 Telefonaktiebolaget L M Ericsson (Publ) Enhanced cryptographically generated addresses for secure route optimization in mobile internet protocol
US9350550B2 (en) 2013-09-10 2016-05-24 M2M And Iot Technologies, Llc Power management and security for wireless modules in “machine-to-machine” communications
US9220123B1 (en) 2014-07-10 2015-12-22 International Business Machines Corporation Peer-to-peer sharing of network resources
US9843929B2 (en) 2015-08-21 2017-12-12 Afero, Inc. Apparatus and method for sharing WiFi security data in an internet of things (IoT) system
US10075300B1 (en) * 2016-09-13 2018-09-11 Wells Fargo Bank, N.A. Secure digital communications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0522293A (ja) 1991-07-12 1993-01-29 Hitachi Ltd ブリツジ機能付きルータ装置
JP2013005110A (ja) * 2011-06-14 2013-01-07 Ntt Communications Kk 仮想ネットワークシステム、構成変更方法、トンネル終端装置、トンネル接続装置、及びプログラム
JP2018207472A (ja) * 2017-06-07 2018-12-27 コネクトフリー株式会社 ネットワークシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISHIDA YAYOI: "Implementation of IPv6 security functions ", NEC TECHNICAL JOURNAL, vol. 52, no. 6, 30 November 1998 (1998-11-30), JP, pages 54 - 55, XP009529892, ISSN: 0285-4139 *

Also Published As

Publication number Publication date
US11962575B2 (en) 2024-04-16
TW202040974A (zh) 2020-11-01
JP7218003B2 (ja) 2023-02-06
EP3920479A4 (en) 2022-09-14
US20220116370A1 (en) 2022-04-14
JPWO2020157928A1 (ja) 2021-12-02
JP2023055755A (ja) 2023-04-18
EP3920479A1 (en) 2021-12-08
TWI828848B (zh) 2024-01-11

Similar Documents

Publication Publication Date Title
US10601594B2 (en) End-to-end service layer authentication
US7702901B2 (en) Secure communications between internet and remote client
Sahraoui et al. Efficient HIP-based approach to ensure lightweight end-to-end security in the internet of things
US20180176194A1 (en) Service processing method and apparatus
AU2016369606A1 (en) Systems and methods for secure multi-party communications using a proxy
JP2006121510A (ja) 暗号化通信システム
CN114503507A (zh) 安全的发布-订阅通信方法和设备
JP7364272B2 (ja) 通信方法およびネットワークシステム
WO2022100356A1 (zh) 身份认证系统、方法、装置、设备及计算机可读存储介质
WO2019129201A1 (en) Session management for communications between a device and a dtls server
US20170111323A1 (en) MiTM PROXY HAVING CLIENT AUTHENTICATION SUPPORT
Gündoğan et al. Content object security in the internet of things: challenges, prospects, and emerging solutions
JP2023055755A (ja) 通信方法、装置および通信プログラム
CN112839062B (zh) 夹杂鉴权信号的端口隐藏方法和装置、设备
WO2017210852A1 (zh) 业务处理方法及装置
JP2023108058A (ja) データ送信方法、通信処理方法、装置、および通信処理プログラム
WO2014201783A1 (zh) 一种自组网的加密鉴权方法、系统及终端
Gao et al. SecT: A lightweight secure thing-centered IoT communication system
Goswami et al. Securing intra-communication in 6LoWPAN: A PKI integrated scheme
TWI833892B (zh) 通訊處理方法、通訊裝置以及通訊處理程式
de Toledo et al. Enabling security in software-defined wireless sensor networks for internet of things

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19913938

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020569289

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019913938

Country of ref document: EP

Effective date: 20210831