An aspect of this disclosure relates to an information processing apparatus, a terminal, an information processing system, and an information processing method.
Japanese Laid-Open Patent Publication No. 2006-094041, for example, discloses an electric apparatus including an Internet-connection function. The electric apparatus includes a NAT control unit that controls a network address translation (NAT) router, which converts a global IP (GIP) address into a private address and vice versa, so that packets can be delivered to the electric apparatus and obtains configuration information and the global IP address of the NAT router; and a NAT configuration information reporting unit that reports the configuration information and the global IP address of the NAT router obtained by the NAT control unit to a server on the Internet.
Re-publication of PCT International Application Publication No. 2007-043381, for example, discloses a network communication apparatus that is connected to a network and communicates with other network communication apparatuses via NAT routers having an address conversion function. The network communication apparatus includes a direct search unit that sends a direct search request to another network communication apparatus that the network communication apparatus desires to communicate with; a route address obtaining unit that obtains, from an address management apparatus connected to the network, route addresses including addresses of NAT routers in a route between the other network communication apparatus and the address management apparatus; a route obtaining unit that compares the route addresses obtained by the route address obtaining unit with route addresses in a route between the network communication apparatus itself and the address management apparatus to obtain a route between the network communication apparatus and the other network communication apparatus; and a communication control unit that communicates with the other network communication apparatus based on information on the other network communication apparatus when the information is obtained via the direct search request, and communicates with the other network communication apparatus based on the obtained route when the information is not obtained.
Japanese Laid-Open Patent Publication No. 2007-312148, for example, discloses a home gateway apparatus connected via a network to an external apparatus and an external gateway apparatus. The home gateway apparatus includes a storage unit that stores information regarding a predetermined apparatus, and an access control unit that controls access to the external apparatus. The access control unit obtains the information regarding the predetermined apparatus from the storage unit, and sends the obtained information to the external gateway apparatus. When the external gateway apparatus determines that information obtained from and regarding the external apparatus corresponds to the information regarding the predetermined apparatus, the access control unit performs a control process to communicate with the external apparatus without passing through the external gateway apparatus.
According to an aspect of this disclosure, there is provided an information processing apparatus including a storage that stores status data indicating past usage of an access point by a terminal and a processor that executes a process. The process includes receiving encrypted status data via a network from the terminal, decrypting the encrypted status data received from the terminal, determining whether the decrypted status data is valid based on the status data stored in the storage, and when the decrypted status data is valid, establishing a peer-to-peer communication channel with the terminal via the network.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
With the related-art technologies described above, when, for example, a communication apparatus capable of establishing a peer-to-peer (P2P) connection with another communication apparatus is taken out and connected to the other communication apparatus by an unauthorized user, the other communication apparatus cannot determine whether the communication terminal is taken out by the unauthorized user, and therefore it is not possible to ensure the security of a P2P connection.
An aspect of this disclosure makes it possible to provide a communication terminal that can ensure the security of a P2P connection.
Another aspect of this disclosure makes it possible to provide an information processing apparatus, a terminal, an information processing system, and an information processing method that can ensure the security of a P2P connection.
Embodiments of the present invention are described below with reference to the accompanying drawings.
In the present embodiment, it is assumed that the personal computer 10 and the terminal 20 perform hybrid P2P communications via the network 40 by using the authentication server 30 as an address resolution unit.
In P2P communications where data is sent and received between networked computers connected directly to each other, it is necessary to obtain a destination Internet protocol (IP) address to establish a communication channel between the computers. However, when, for example, a dynamic host configuration protocol (DHCP) is used, IP addresses are automatically assigned to computers, and the assigned IP addresses change. For this reason, in a hybrid P2P connection technology, an index server having a global IP (GIP) address is provided on a network, and the index server performs address resolution by sending IP address information of a destination computer to a source computer that has tried to connect to the GIP address.
The personal computer 10, the terminal 20, and the authentication server 30 are computer systems having a hardware configuration as described later. The functional blocks in
The personal computer 10 may include an authentication application 100 as executable software. The authentication application 100 may include a user database (DB) 101, a validity determiner 102, a key generator 103, an encryptor-decryptor 104, an ID-PW processor 105, and a communication processor 106 as software modules.
The user DB 101 is an example of a status data storage, and stores status data indicating past usage of access points by the terminal 20.
The validity determiner 102 compares status data stored in the user DB 101 with status data sent from the terminal 20 to determine the validity of the terminal 20.
The key generator 103 generates a private key and a public key based on status data stored in the user DB 101.
The encryptor-decryptor 104 is an example of a decryptor, and decrypts status data encrypted with a public key generated by the key generator 103. The encryptor-decryptor 104 can also encrypt data to be sent from the personal computer 10 to another apparatus with a public key.
The communication processor 106 establishes a communication channel with another apparatus via the network 40, and sends and receives communication data to and from the other apparatus. In the present embodiment, the communication processor 106 establishes communication channels with the terminal 20 and the authentication server 30 via the network 40. Also in the present embodiment, it is assumed that the communication processor 106 can establish a communication channel both in a secure network environment and an insecure network environment with a communication controller 204 of the terminal 20.
Here, the secure network environment indicates a network that is free from intrusions and attacks from external computers and where all apparatuses connected to the network do not perform malicious activities such as unauthorized information acquisition. In the secure network environment, there is no risk of eavesdropping and alteration of communication data, and apparatuses connected to the network can safely communicate with each other without encrypting a communication channel or communication data. Accordingly, in the secure network environment, data can be sent and received via the network as plaintext.
On the other hand, the insecure network environment indicates an environment where communications are performed via, for example, a public network such as the Internet and where malicious activities such as eavesdropping and alteration of communication data and impersonation may occur. In the insecure network environment, communication data may need to be protected by, for example, encrypting a communication channel using a certificate of a secure socket layer (SSL) protocol, or encrypting the communication data using a hash function.
Details of communication data sent and received in the present embodiment are described later.
The ID-PW processor 105 performs authentication of a user of the terminal 20 to be connected via a P2P connection by using an ID and a password of the user.
The terminal 20 may include a user information DB 201, a registration processor 202, an encryptor 203, and a communication controller 204.
The user information DB 201 stores identification information of the terminal 20 and identification information of a user. For example, a media access control (MAC) address may be used as the identification information of the terminal 20. Also, depending on the type of the terminal 20, an internal mobile equipment identify (IMEI), an international mobile subscriber identity (IMSI), or an integrated circuit card identifier (ICCID) may also be used as the identification information of the terminal 20. The identification information of the user is, for example, a user ID and a password.
The user information DB 201 also stores status data including access point information on access points that the terminal 20 connected to and used in the past and an access history. The status data is to be encrypted and used for authentication as described later. The access point information in the status data indicates past usage of access points by the terminal 20 and includes, for example, IP addresses and/or IDs for identifying the access points.
The access history may include information for identifying a communication route of the terminal 20. The user information DB 201 may store an access history of the latest connection by the terminal 20 to an access point. Also, the user information DB 201 may store an access history of connections made during a predetermined time period. For example, the access history may indicate the date and time when an initial registration process described later is performed.
Further, the user information DB 201 may store an access history of a predetermined number of past connections. Unlike static identification information such as a MAC address, an access history dynamically changes. Therefore, using status data including an access history as an encryption target (seed) makes it possible to improve security.
Also, using status data including an access history makes it possible to detect impersonation where, for example, a terminal tries to impersonate the terminal 20 by using identification information such as a MAC address of the terminal 20. In the present embodiment, it is assumed that status data is stored in association with device information and user information, or includes device information and user information.
The registration processor 202 is an example of a usage registrar, and registers status data of the terminal 20. The status data registered by the registration processor 202 is sent to the personal computer 10. Details of communications between the personal computer 10 and the terminal 20 are described later with reference to
The encryptor 203 encrypts the status data registered by the registration processor 202 by using a public key provided by the personal computer 10.
The encryptor 203 receives a public key via the network 40 from the personal computer 10 in a secure network environment, and stores (or embeds) the received public key inside of the encryptor 203 itself so that the public key is available when necessary.
The encryptor 203 can use the public key received from the personal computer 10 during a validity period of the public key. The encryptor 203 can also discard the stored public key when the validity period expires. Also, the encryptor 203 may be configured to discard the public key in response to an explicit operation performed by an operator of the terminal 20.
The communication controller 204 establishes a communication channel with another apparatus via the network 40, and sends and receives communication data to and from the other apparatus. The communication controller 204 sends status data encrypted by the encryptor 203 via the network 40 to the personal computer 10. Also, when it is determined that the encrypted status data sent to the personal computer 10 is valid, the communication controller 204 establishes a peer-to-peer (P2P) communication channel with the personal computer 10.
The authentication server 30 may include a management DB 301 for managing user numbers and global IP (GIP) addresses, and a searcher 302 that searches the management DB 301 based on a user ID and a password to perform address resolution. In the management DB 301, a GIP address of an access point used by the terminal 20 and a user number of a user of the terminal 20 to be connected to the personal computer 10 via a hybrid P2P connection are registered through an initial registration process described later with reference to
As illustrated by
The CPU 11 controls operations of the personal computer 10. The software modules of the authentication application 100 described with reference to
The memory 12 may be implemented by a random access memory (RAM). Also, the memory 12 may be implemented by other types of storage media such as a read-only memory (ROM) and a hard disk.
The network I/F 13 establishes a connection path with another computer system via the network 40, and controls data communications performed via the network 40. The network I/F 13 may be implemented by, for example, a network interface card (NIC), and controls communications according to communication technologies such as a wired local area network (LAN), a wireless LAN, 3rd Generation (3G) Mobile Communications, 4th Generation (4G) Mobile Communications (Long Term Evolution (LTE)), and Worldwide Interoperability for Microwave Access (WiMAX).
The input device 14 may be implemented by, for example, a keyboard and a mouse. The display 15 may be implemented by, for example, a liquid crystal display.
The CPU 11, the memory 12, the network I/F 13, the input device 14, and the display 15 are connected to each other via the bus 16.
Next, an exemplary initial registration process for a P2P connection between the personal computer 10 and the terminal 20 of the information processing system 1 is described with reference to
First, a start-up process of the authentication application 100 of the personal computer 10 is performed (S11). The start-up process of the authentication application 100 is described with reference to
As illustrated by
When started, the authentication application 100 requests an operator of the personal computer 10 to enter an ID and a password.
On the ID-PW input UI (dialog box) of
Referring back to
In the present embodiment, it is assumed that communications between the personal computer 10 and the terminal 20 in the initial registration process are performed in a secure network environment.
Next, the authentication application 100 selects a terminal 20 whose status data is to be registered from the detected terminals 20 (S113). Selection of a terminal 20 is described with reference to
As illustrated by
Referring back to
Referring back to
Communications between the personal computer 10 and the authentication server 30 at steps S13 through S17 and communications between the personal computer 10 and the terminal 20 at step S121 and steps S18 through S20 may be performed asynchronously and concurrently.
First, communications between the personal computer 10 and the terminal 20 at step S121 and steps S18 through S20 are described.
When the communication channel is established, the terminal 20 registers terminal information in the personal computer 10 (S18). The terminal information includes, for example, device information of the terminal 20 and user information including a user number and a user ID.
The authentication application 100 sends a status data request to the terminal 20 whose terminal information has been registered, to request the terminal 20 to send status data (S19). When the terminal 20 receives the status data request, a PC selection UI is displayed on the display 15 of the terminal 20.
As illustrated by
When an OK button is pressed on the status data transmission confirmation UI of
While the status data is being sent to the personal computer 10, the status data transmission progress UI of
On the other hand, a status data reception UI is displayed on the display 15 of the personal computer 10 receiving the status data.
While the status data is being received from the terminal 20, the authentication application 100 displays the status data reception UI of
Next, communications between the personal computer 10 and the authentication server 30 at steps S13 through S17 are described.
The authentication application 100 of the personal computer 10 connects to the authentication server 30 using the ID and the password entered on the ID-PW input UI of
Next, the authentication application 100 sends a registration request to request the authentication server 30 to register a GIP address of an access point used by the terminal 20 and a user number (S14). The GIP address identifies an access point used by the terminal 20 to access the personal computer 10 in the past.
In response to the registration request from the personal computer 10, the authentication server 30 performs a registration process (S15). Details of the registration process are described with reference to
As illustrated by
As illustrated by
Referring back to
When receiving the response at step S16, the personal computer 10 sends a registration request to the authentication server 30 to request the authentication server 30 to register a user ID and a password included in the status data received at step S20 (S17).
Referring to
Referring back to
As illustrated by
The unsuccessful validation UI of
On the other hand, when the validity of the status data is confirmed (YES at S213), the authentication application 100 stores the status data and device information of the terminal 20 in the user DB 101 (S214). Next, the key generator 103 of the authentication application 100 generates, for each terminal 20, a pair of a private key and a public key based on the status data received from the corresponding terminal 20. The private key and the public key may be generated using, for example, a part of the status data. Also, the private key and the public key may be generated based on data obtained by applying a hash function to the status data. Because the status data varies depending on the terminal 20 and information on an access point used by the terminal 20, the public key generated by the key generator 103 also varies depending on the status data.
A validity period is set for the public key (S215). For example, an expiration date may be set as the validity period of the public key. Limiting the use of the public key by the expiration date makes is possible to improve security. Also, a start date and time and an end date and time may be set as the validity period. For example, a start date and time and an end date and time of a meeting performed using the personal computer 10 and the terminal 20 may be set as the validity period to improve security. The key generator 103 generates the private key and the public key with the set validity period (S216), and stores the generated private key and public key in the memory 12 of the personal computer 10 together with the status data received from the terminal 20 to register the terminal 20.
Referring back to
When receiving the public key, the terminal 20 embeds the received public key in the encryptor 203 and sends a public key embedding completion response to the personal computer 10 (S23).
Next, the personal computer 10 sends a GIP address of the personal computer 10 to the authentication server 30 (S24). In response, the authentication server 30 sends a GIP registration completion report to the personal computer 10 (S25), and the initial registration process ends. The GIP address sent at step S24 is to be used by the terminal 20 to access the personal computer 10. With the GIP address registered in the authentication server 30, the terminal 20 authenticated by the authentication server 30 can access the personal computer 10 using the GIP address.
In the present embodiment, because the public key is generated through interaction via a direct connection between the personal computer 10 and the terminal 20, the authentication server 30 does not have information on the public key. This in turn makes it possible to secure security even when, for example, the service of the authentication server 30 is provided by an outside supplier.
Details of status data registered in the personal computer 10 through the initial registration process are described with reference to
In the example of
The access point information of the terminal A indicates an access point used previously by the terminal A to connect to the personal computer 10. For example, the access point information may be represented by an ID or a GIP address of the access point. In the present embodiment, it is assumed that a GIP address is used as the access point information. The access point information may also include a use history indicating, for example, the date and time when the terminal A connected to the access point. Further, the access point information may include information indicating a communication route including the access point. The use history of the access point may include a record of the most recent use of the access point or a predetermined number of records of past use of the access point. Because the access point information varies depending on the use of the access point by a terminal, using the access point information for terminal authentication makes it possible to improve security. The access point information of the terminal B and the access point information of the terminal C are similar to the access point information of the terminal A, and therefore their descriptions are omitted here. As described above, the personal computer 10 stores status data for each of the terminals 20.
Next, examples of status data generated in the cases of different connection configurations are described with reference to
In
In the example of
In the second connection configuration of
Next, an exemplary connection configuration of the personal computer 10, the terminals 20, and the authentication server 30 for a hybrid P2P connection is described with reference to
In the present embodiment, it is assumed that a use history of the access point is shared by the personal computer 10 and the terminals 20, a generated public key is registered in each of the terminals 20 in advance, and the personal computer 10 and the terminals 20 perform P2P communications.
Through the initial registration process described above, a private key and a public key are registered in the personal computer 10, and the public key is registered in each terminal 20. The terminal 20 establishes a communication channel with the personal computer 10 by using the public key registered in the initial registration process. Here, the authentication server 30 is present on a public telecommunication network, and may be operated by a third party. However, because the public key is generated in the initial registration process without involving the authentication server 30, the authentication server 30 does not have information on the public key and cannot establish a communication channel with the personal computer 10 using the public key. That is, the authentication server 30 can only access the personal computer 10 using the GIP address of the personal computer 10. Accordingly, even when, for example, a malicious program is executed on the authentication server 30 or the authentication server 30 is operated by a malicious administrator, it is not possible to establish a P2P connection between the authentication server 30 and the personal computer 10.
Next, an exemplary process performed to establish a hybrid P2P channel is described with reference to
In
In
In response, the terminal 20 sends, to the authentication server 30, status data that includes a user ID, a password, a terminal ID, and access point information and is encrypted by a public key (S33).
The searcher 302 of the authentication server 30 searches status data stored in the management DB 301 to determine whether the status data includes a record including the user ID and the password sent from the terminal 20 (S53). When no record including the user ID and the password is found (NO at S53), the searcher 302 reports to the terminal 20 that the terminal 20 has not been registered (S54), and ends the process of
When the terminal ID is valid (YES at S55), the authentication server 30 retrieves a GIP address of the personal computer 10 from the management DB 301 (S57), and sends the connection request received from the terminal 20 to the personal computer 10 together with the user ID and the terminal ID (S58, S34).
In
When requested by the personal computer 10 to send status data (S35), the authentication server 30 sends a status data request report to the terminal 20 (S36).
The terminal 20 sends, to the authentication server 30, status data that includes access point information and is encrypted by the public key (S37).
The authentication server 30 sends the status data received from the terminal 20 to the personal computer 10 (S38).
When the status data is received by the personal computer 10 (YES at S75), the encryptor-decryptor 104 of the authentication application 100 decrypts the received status data with a private key corresponding to the user ID in the received status data (S76). Next, the validity determiner 102 compares the access point information in the decrypted status data with access point information in the corresponding status data stored in the user DB 101 to determine the validity of the decrypted status data (S77, S39). When the decrypted status data is valid (YES at S77), the personal computer 10 sends its own GIP address via the authentication server 30 or directly to the terminal 20 (S78, S40).
Also when the status data is valid (YES at S59), the authentication server 30 ends the process of
When receiving the GIP address of the personal computer 10 (S40), the terminal 20 sends a response to the personal computer 10 using the received GIP address (S41).
When receiving the response from the terminal 20 (YES at S79), the personal computer 10 establishes a P2P channel (S80, S42), and ends the process of
On the other hand, when status data corresponding to the received user ID and terminal ID does not exist in the user DB 101 (NO at S73) or when the decrypted status data is not valid (NO at S77), the personal computer 10 reports to the authentication server 30 that connection of the terminal 20 is denied (S81), and ends the process of
When the P2P channel is established, the personal computer 10 and the terminal 20 start P2P communications. For example, the terminal 20 encrypts data with the public key (S43) and sends the encrypted data to the personal computer 10 (S44). Then, the personal computer 10 decrypts the data received from the terminal 20 (S45), and uses the decrypted data.
Next, an exemplary process performed by a registered user after the initial registration process to register an additional terminal is described with reference to
In
The personal computer 10 determines whether the status data is valid, and updates the user DB 101 when the status data is valid (e.g., stores the status data and device information of the terminal 20 in the user DB 101) (S97). Also, the personal computer 10 requests the authentication server 30 to update the management DB 301 (S98). When requested, the authentication server 30 newly registers the terminal 20 in the management DB 301 (S99).
Next, the personal computer 10 registers the validity period of the public key again. The validity period of the public key registered at this step may be different from the validity period of another public key already registered. Also, the validity period of the public key may be the same as the validity period of an already-registered public key associated with the same user ID. Further, the validity period of an already-registered public key may be extended so that public keys of all the terminals 20 registered in association with the same user ID have the same validity period.
The personal computer 10 sends the public key to the terminal 20 (S100). The terminal 20 embeds the public key in the encryptor 203 and sends a public key embedding completion response to the personal computer 10 (S101).
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
The present application is a continuation application filed under 35 U.S.C. 111(a) claiming benefit under 35 U.S.C. 120 and 365(c) of PCT International Application No. PCT/JP2013/067919, filed on Jun. 28, 2013, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2013/067919 | Jun 2013 | US |
Child | 14973248 | US |