Computer program for communication device, communication device, and method executed by communication device
Patent Information
- Application Number
- JP2022101998
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-06-24
- Publication Date
- 2026-09-08
- Estimated Expiration
- 2042-06-24
Smart Images

Figure 0007916677000001 
Figure 0007916677000002 
Figure 0007916677000003
Abstract
Description
[[Technical Field]]
[0001] The present specification relates to a technique for establishing a wireless connection between a communication device and an external device. [[Background Art]]
[0002] Non-Patent Document 1 discloses a technique for establishing a wireless connection between a pair of devices in accordance with DPP (abbreviation for Device Provisioning Protocol). [[Prior Art Documents]] [[Non-Patent Documents]]
[0003] [[Non-Patent Document 1]] "Wi-Fi Easy Connect(TM) Specification Version 2.0", Wi-Fi Alliance, 2020 [[Summary of the Invention]] [[Problem to be Solved by the Invention]]
[0004] The present specification provides a technique for securely managing a DPP bootstrapping key. [[Means for Solving the Problem]]
[0005] This specification discloses a computer program for a first communication device. The first communication device may include a Wi-Fi interface for performing Wi-Fi communication in accordance with the Wi-Fi standard, and a computer. The computer program comprises the following parts of the computer: an acquisition unit for acquiring specific identification information that identifies a second communication device; an identification information transmission unit for transmitting the specific identification information to a server different from the second communication device, wherein the server is configured to store, in association with identification information that identifies each of one or more communication devices and a bootstrapping key stored in the communication device; a first key receiving unit for receiving a first bootstrapping key associated with the specific identification information from the server in response to the transmission of the specific identification information to the server; and, when the first bootstrapping key is received from the server, transmitting an authentication request using the first bootstrapping key, in accordance with a first method of the Wi-Fi standard, to the second communication device via the Wi-Fi interface. A first connection information communication unit that, when an authentication request is transmitted to the second communication device, receives an authentication response from the second communication device via the Wi-Fi interface in accordance with the first method, and when an authentication response is received, communicates first connection information with the second communication device via the Wi-Fi interface in accordance with the first method, wherein the first connection information is information for establishing a Wi-Fi connection between the first or second communication device and an external device, and a second key receiving unit that, after the communication of the first connection information has been performed, receives a second bootstrapping key different from the first bootstrapping key from the second communication device via the Wi-Fi interface, and when the second bootstrapping key is received from the second communication device,A first update request transmission unit may function as a unit that transmits a first update request to the server, the first update request being a signal requesting the server to store the second bootstrapping key in place of the first bootstrapping key in association with the specific identification information.
[0006] According to the above configuration, the first communication device, after using the first bootstrapping key, receives the second bootstrapping key from the second communication device and sends a first update request including the second bootstrapping key to the server. As a result, the server stores the second bootstrapping key in place of the first bootstrapping key. This allows for secure management of the bootstrapping keys.
[0007] The computer-readable recording medium for storing the above-mentioned computer program, the first communication device itself implemented by the above-mentioned computer program, and the method executed by the above-mentioned first communication device are also novel and useful. Furthermore, a communication system comprising the first communication device and the second communication device is also novel and useful. [Brief explanation of the drawing]
[0008] [Figure 1] This shows the configuration of the communication system. [Figure 2] A flowchart of the processes performed by the application is shown (First Embodiment). [Figure 3] The sequence diagram for Case A of the first embodiment is shown. [Figure 4] The sequence diagram following Figure 3 is shown. [Figure 5] The sequence diagram for Case B of the first embodiment is shown. [Figure 6] The sequence diagram for Case C of the first embodiment is shown. [Figure 7] The sequence diagram for Case D of the first embodiment is shown. [Figure 8] A flowchart of the processes performed by the application is shown (Second Example). [Figure 9] The sequence diagram for the second embodiment, Case E, is shown. [Modes for carrying out the invention]
[0009] (First embodiment) (Configuration of communication system 2; Figure 1) As shown in Figure 1, the communication system 2 comprises an AP (Access Point) 6, two terminals 10A and 10B, two printers 100A and 100B, and a server 200. In this embodiment, it is assumed that a wireless connection (hereinafter referred to as "Wi-Fi connection") in accordance with the Wi-Fi standard is established between each printer 100A and 100B and the AP6 using terminal 10A or 10B. In the following, terminals 10A and 10B will be referred to as "terminal 10" unless otherwise specified.
[0010] (Configuration of terminal 10A) Terminal 10A is a portable terminal device such as a mobile phone (e.g., a smartphone), PDA, or tablet PC. In a modified example, terminal 10A may be a stationary PC, notebook PC, etc. Terminal 10A comprises an operation unit 12A, a display unit 14A, a Wi-Fi interface 16A, a camera 18A, and a control unit 30A. Each unit 12A to 30A is connected to a bus line (symbol omitted). Hereafter, the interface will be referred to as "I / F".
[0011] The operation unit 12A is an interface for inputting various instructions to the terminal 10A. The display unit 14A is a display for displaying various information. The display unit 14A is a so-called touch panel and also functions as the operation unit 12A. The camera 18A is a device for photographing objects. In this embodiment, the camera 18A is used to photograph barcodes attached to the casings of the printers 100A and 100B.
[0012] The Wi-Fi I / F16A is a wireless interface for performing Wi-Fi communication in accordance with the Wi-Fi standard. The Wi-Fi standard is a wireless communication standard for performing wireless communication in accordance with the IEEE (The Institute of Electrical and Electronics Engineers, Inc.) 802.11 standard and equivalent standards (e.g., 802.11a, 11b, 11g, 11n, 11ac, etc.). In particular, the Wi-Fi I / F16A supports DPP (Device Provisioning Protocol), which was developed by the Wi-Fi Alliance. Details of DPP are described in the "Wi-Fi Easy Connect™ Specification Version 2.0" specification document created by the Wi-Fi Alliance.
[0013] Furthermore, Wi-Fi I / F16A also supports WFD (short for Wi-Fi Direct®), a standard developed by the Wi-Fi Alliance. Details of WFD are described in the "Wi-Fi Direct Specification Version 1.9" standard document created by the Wi-Fi Alliance. In the following, a Wi-Fi connection established according to WFD will be referred to as a "WFD connection."
[0014] The control unit 30A comprises a CPU 32A and a memory 34A. The CPU 32A performs various processes according to programs 36A and 38A stored in the memory 34A. The memory 34A is composed of volatile memory, non-volatile memory, etc.
[0015] The OS (abbreviation for Operating System) program 36A is a program for implementing basic operations of the terminal 10A. The application 38A is a program for establishing a Wi-Fi connection between the terminal 10A and the AP 6, or establishing a Wi-Fi connection between a printer (e.g., the printer 100A) and the AP 6. Hereinafter, the OS program and the application are referred to as "OS" and "app" respectively. The app 38A is installed on the terminal 10 from, for example, the server 200 on the Internet (not shown) provided by the vendor of the printers 100A and 100B, or a server on the Internet (not shown) provided by the vendor of the OS 36A.
[0016] Note that the app 38A can cause the OS 36A to execute various processes by supplying instructions to the OS 36A, and can also cause other applications to execute various processes via the OS 36A. Therefore, each process executed by the OS 36A or another application in response to an instruction from the app 38A is also a process implemented by the app 38A (that is, it causes the CPU 32A to function as an execution unit that executes the process).
[0017] (Configuration of Terminal 10B) The terminal 10B is a portable terminal device such as a mobile phone (e.g., a smartphone), a PDA, or a tablet PC. In a modification, the terminal 10B may be a desktop PC, a notebook PC, or the like. The terminal 10B includes an operation unit 12B, a display unit 14B, a Wi-Fi I / F 16B, a camera 18B, and a control unit 30B. Each of the units 12B to 30B is connected to a bus line (reference numeral omitted). The configuration of each of the units 12B to 30B is the same as that of each of the units 12A to 30A of the terminal 10A, except that the Wi-Fi I / F 16B does not support DPP.
[0018] (Configuration of Printer 100A) Printer 100A is a peripheral device capable of executing a printing function (for example, a peripheral device of terminal 10A). In a variant, printer 100A may be a multifunction device capable of executing a scanning function, a facsimile function, and the like. Printer 100A comprises an operation unit 112A, a Wi-Fi I / F 116A, a print execution unit 118A, and a control unit 130A. Each of units 112A to 130A is connected to a bus line (reference numeral omitted). A barcode obtained by encoding the serial number SN_A of printer 100A is affixed to a housing (not shown) of printer 100A.
[0019] Operation unit 112A comprises a plurality of keys. A user can input various instructions to printer 100A by operating operation unit 112A. Wi-Fi I / F 116A is the same as Wi-Fi I / F 16A of terminal 10A. That is, Wi-Fi I / F 116A supports DPP and WFD. Print execution unit 118A comprises a printing mechanism such as an inkjet system or a laser system.
[0020] Control unit 130A comprises a CPU 132A and a memory 134A. CPU 132A executes various processes according to a program 136A stored in memory 134A. Memory 134A is constituted by a volatile memory, a non-volatile memory, or the like. Memory 134A further stores serial number SN_A and public key PK_A1. Public key PK_A1 is information used in authentication in accordance with DPP, and is stored in memory 134A from the shipping stage of printer 100A.
[0021] (Configuration of Printer 100B) Printer 100B is a peripheral device capable of performing printing functions (for example, a peripheral device of terminal 10A). In a modified example, printer 100B may be a multifunction device capable of performing scanning functions, facsimile functions, etc. Printer 100B comprises an operation unit 112B, a Wi-Fi interface 116B, a print execution unit 118B, and a control unit 130B. Each unit 112B to 130B is connected to a bus line (symbol omitted). The configuration of each unit 112B to 130B is the same as that of each unit 112A to 130A of printer 100A, except that Wi-Fi interface 116B does not support DPP. That is, Wi-Fi interface 116B is the same as that of Wi-Fi interface 16B of terminal 10B.
[0022] (Server 200 configuration) Server 200 is a server for managing multiple printers, including printers 100A and 100B. Server 200 is a server installed on the internet (not shown) by the vendors of printers 100A and 100B. Server 200 includes a communication interface 216 and a control unit 230.
[0023] The control unit 230 comprises a CPU 232 and a memory 234. The CPU 232 performs various processes according to the program 236 stored in the memory 234. The memory 234 is composed of volatile memory, non-volatile memory, etc.
[0024] Memory 234 also stores the printer table 240. The printer table 240 stores the serial number, support information, public key, and method information in association with each other. This various information is registered in the printer table 240 by the printer vendor before the printer to be managed is shipped.
[0025] Support information indicates either "Supported," meaning DPP is supported, or "Not Supported," meaning DPP is not supported. Note that public key and methodology information are only registered if the support information indicates "Supported." Methodology information indicates the actions the user must perform to initiate processing according to DPP.
[0026] As described above, the printer 100A stores the public key PKA1 in memory 134A. Therefore, if the printer 100A can directly output the public key PKA1 (for example, by displaying a QR code (registered trademark) obtained by encoding the public key), the terminal 10A can obtain the public key PKA1 and perform communication with the printer 100A in accordance with DPP. However, this embodiment assumes a situation in which the printer 100A cannot directly output the public key PKA1. Such situations include, for example, a situation in which the printer 100A does not have a display unit, or a situation in which the printer 100A has a display unit but the display unit is small. In this embodiment, even in such situations, the terminal 10A is able to perform communication with the printer 100A in accordance with DPP.
[0027] (App processing; Figure 2) Next, referring to Figure 2, we will explain the process implemented by the CPU (e.g., CPU 32A) of a terminal (e.g., terminal 10A) executing an application (e.g., application 38A). Figure 2 shows the process by which a target terminal that has established a Wi-Fi connection with AP6 establishes a Wi-Fi connection between the printer (e.g., printer 100A) and AP6. In the following, when explaining the process in Figure 2, we will focus on the application (e.g., application 38A, hereinafter referred to as "target application") rather than the CPU (e.g., CPU 32A). Also, in the following, the terminal on which the target application, which is the main component of the process in Figure 2, is installed, and the printer for which the Wi-Fi connection is to be established, will be referred to as "target terminal" and "target printer," respectively. The process in Figure 2 is triggered when the target application obtains the serial number of the target printer in response to the target terminal's camera capturing the barcode of the target printer.
[0028] In S10, the target application determines whether the target device supports DPP. Specifically, although not shown in Figure 1, information indicating whether the target device's Wi-Fi interface supports DPP is stored in the target device's memory. The target application retrieves this information from memory. If the target application obtains information indicating that DPP is supported, it determines YES in S10 and proceeds to S12; if it obtains information indicating that DPP is not supported, it determines NO in S10 and proceeds to S30.
[0029] In S12, the target application sends a public key transfer request to the server 200 via the target terminal's Wi-Fi interface. The public key transfer request is a signal requesting the server 200 to send a public key, and includes the acquired serial number. As a result, the server 200 identifies various pieces of information stored in association with the serial number included in the public key transfer request (i.e., support information, and if the support information indicates "support," also the public key and method information). Then, the server 200 sends a response to the target terminal containing the identified pieces of information.
[0030] In S14, the target application receives a response from server 200 via the target device's Wi-Fi interface. This response includes the various pieces of information identified above.
[0031] In S16, the target application determines whether or not it has obtained the public key. Specifically, the target application determines whether or not the response received in S14 contains the public key. If the received response contains the public key, the target application determines YES in S16 and proceeds to S18; if the received response does not contain the public key, it determines NO in S16 and proceeds to S30.
[0032] In S18, the target application displays notification screen SC1 on the target device's display. Notification screen SC1 is the screen used to initiate DPP processing, and details will be described later.
[0033] In S20, the target application performs DPP processing with the target printer. DPP processing includes various communications in accordance with DPP.
[0034] In S22, the target application determines whether the DPP process was successful or not. As will be explained in more detail later, if the DPP process with the target printer is successful, the target application receives a Status Query Result (hereinafter simply referred to as "Result") from the target printer that contains information indicating that the DPP process was successful. If the target application receives this Result, it determines YES in S22 and proceeds to S50. On the other hand, if the target application does not receive this Result, it determines NO in S22 and proceeds to S30. If the DPP process is successful (YES in S22), a Wi-Fi connection is established between the target printer and AP6. Therefore, the target terminal can perform Wi-Fi communication with the target printer via AP6.
[0035] In S30, the target application displays notification screen SC2 on the target device's display. Notification screen SC2 is the screen used to initiate non-DPP processing, and details will be described later.
[0036] In S32, the target application performs non-DPP processing with the target printer. Non-DPP processing includes various communications that follow a different method than DPP. As a result, a Wi-Fi connection is established between the target printer and AP6. Therefore, the target terminal can perform Wi-Fi communication with the target printer via AP6.
[0037] In S34, the target application determines whether or not it has already obtained support information for the target printer. As mentioned above, the response received in S14 includes support information. Therefore, in S34 after going through S14 (i.e., the case where the answer is NO in S16 or S22), the target application has already obtained support information for the target printer, so it determines YES in S34 and skips S36 and S38 to proceed to S40. On the other hand, in S34 without going through S14 (i.e., the case where the answer is NO in S10), the target application has not yet obtained support information for the target printer, so it determines NO in S34 and proceeds to S36.
[0038] In S36, the target application sends a support inquiry to the target printer via the Wi-Fi interface and AP6. The support inquiry is a signal that asks the target printer whether or not it supports DPP.
[0039] In S38, the target application receives a response to a support inquiry from the target printer via the Wi-Fi interface and AP6. This response includes information indicating whether or not the target printer supports DPP (i.e., support information).
[0040] In S40, the target application determines whether the target printer supports DPP. Specifically, the target application determines whether the support information included in the response received in S14, or the support information included in the response received in S38, indicates "supported" or "not supported". If the support information indicates "supported", the target application determines YES in S40 and proceeds to S50. On the other hand, if the support information indicates "not supported", the target application determines NO in S40, skips the processing from S50 onwards, and terminates the process shown in Figure 2.
[0041] In S50, the target application displays notification screen SC3 on the target device's display. Notification screen SC3 is for updating the target printer's public key, and details will be described later.
[0042] In S52, the target application sends a public key update request to the target printer via the Wi-Fi interface and AP6. The public key update request is a signal that requests the target printer to update its public key. As a result, the public key on the target printer is updated. Below, the updated public key may be referred to as the "new public key."
[0043] In S54, the target application receives the new public key from the target printer via the Wi-Fi interface and AP6.
[0044] In S56, the target application sends an update request to the server 200 via the Wi-Fi interface and AP6. The update request includes the serial number of the target printer and the new public key received in S54. The update request is a signal to the server 200 to store the new public key in place of the public key associated with the target printer's serial number. As a result, the server 200 stores the new public key in the printer table 240 in place of the public key associated with the serial number included in the update request. Once the server 200 has stored the new public key, it sends an update completion notification to the target terminal.
[0045] In S58, the target application receives an update completion notification from server 200 via the Wi-Fi interface and AP6. The update completion notification indicates that the public key update has been completed on server 200.
[0046] In S60, the target application displays notification screen SC4 on the target device's display. Notification screen SC4 indicates that the public key update is complete. Once the S60 process is finished, the process shown in Figure 2 is completed.
[0047] (Case A; Figures 3 and 4) Next, we will explain a specific case that is realized by the process shown in Figure 2. First, we will explain Case A with reference to Figures 3 and 4. Case A is a case in which a Wi-Fi connection is established between a printer 100A that supports DPP and AP6 using terminal 10A. Although not shown, in the initial state of Figure 3, DPP processing is being performed between terminal 10A and AP6, and a Wi-Fi connection has already been established between terminal 10A and AP6. The printer 100A's casing (not shown) has a barcode B1 attached to it, which is obtained by encoding the serial number SNA.
[0048] In the following explanations of Figures 3 and 4, for the sake of ease of understanding, the operations performed by the CPU of each device (e.g., CPU 32, 132, 232, etc.) will be described from the perspective of each device (e.g., terminals 10A, 10B, printers 100A, 100B, server 200) rather than from the perspective of the CPU. In particular, when describing the processing performed by application 38A on terminal 10A (or application 38B on terminal 10B), application 38A (or application 38B) may be described from the perspective of terminal 10A (or terminal 10B). The same applies to the explanations of Figures 5 to 7 and Figure 9. Furthermore, communication between the following devices 6, 10, 100, and 200 is performed via a Wi-Fi interface (or communication interface). Therefore, in the following explanations of communication between devices, the phrase "via a Wi-Fi interface (or communication interface)" will be omitted.
[0049] When printer 100A receives a power-on command from the user at T100, it turns on its power at T102.
[0050] When terminal 10A receives an application launch operation from the user at T110 (for example, an operation to select the icon of application 38A), it launches application 38A. Once application 38A is launched, it launches camera 18A and receives an operation from the user at T112 to photograph barcode B1. In this case, application 38A decodes barcode B1 and obtains the serial number SNA of printer 100A (trigger for the process in Figure 2). Such barcode B1 has been used conventionally for purposes such as product management. For this reason, terminal 10A can obtain the serial number without adding a new configuration to printer 100A to allow terminal 10A to obtain the serial number.
[0051] When application 38A obtains the serial number SNA, at T114 it determines that terminal 10A's Wi-Fi I / F 16A supports DPP (YES at S10), and at T120 it sends a public key transmission request to server 200 (S12). The public key transmission request includes the obtained serial number SNA. Although not shown in the diagram, the public key transmission request is sent to server 200 via AP6. Various communications between terminal 10A and server 200, as described below, are also performed via AP6. In the modified example, terminal 10A may use 4G, 5G, etc., to communicate with server 200.
[0052] When server 200 receives a public key transmission request from terminal 10A at T120, it identifies the serial number SNA included in the public key transmission request from the printer table 240. Then, server 200 identifies various information associated with the identified serial number SNA (i.e., support information "support", public key PKA1, method information M1) and sends a response containing this information to terminal 10A at T122.
[0053] When application 38A receives a response from server 200 in T122 (S14), and the response includes the public key PKA1 (YES in S16), it displays notification screen SC1 on display unit 14A in T124 (S18). Notification screen SC1 includes a message prompting the user to press a first predetermined button on printer 100A and then select the OK button, and an OK button. The first predetermined button on the printer is a button that transitions the printer from a DPP non-responsive state to a DPP responsive state. The DPP non-responsive state is a state in which it is not possible to send an Authentication Response in response to an Authentication Request, which will be described later, and the DPP responsive state is a state in which it is possible to send the Response. Hereafter, Authentication will be referred to as "Auth," and Request and Response will be referred to as "Req" and "Res," respectively. The method for transitioning from a DPP non-responsive state to a DPP responsive state differs depending on the printer model. Therefore, the server 200 stores different method information for each printer model, and in this case, it sends a response to the terminal 10A that includes method information M1 for printer 100A. The target application displays a notification screen SC1 that includes the method identified by the acquired method information M1, so the user can appropriately execute the method to bring printer 100A into the DPP response state.
[0054] When printer 100A receives a notification from a user who has viewed the notification screen SC1 at T126, and the user presses a first predetermined button (i.e., an operation to switch printer 100A to the DPP response state), printer 100A switches to the DPP response state at T128.
[0055] Subsequently, when application 38A accepts the selection of the OK button in the notification screen SC1 at T129, it sends an Auth Request using the public key PKA1 to printer 100A at T130 (S30).
[0056] The Auth Req is a signal requesting authentication from the sending terminal 10A. Specifically, terminal 10A first generates a shared key using terminal 10A's private key (not shown) and printer 100A's public key PKA1, and then generates encrypted data by encrypting a random value using the shared key. Then, terminal 10A sends an Auth Req to printer 100A that includes terminal 10A's public key (not shown), the encrypted data, and terminal 10A's Capability. Terminal 10A's Capability includes a value indicating that it can only operate as a DPP Configurator.
[0057] When printer 100A receives an Auth Request from terminal 10A at T130, it performs authentication of the encrypted data contained in the Auth Request. Specifically, printer 100A generates a shared key using terminal 10A's public key and printer 100A's private key contained in the Auth Request, and uses the shared key to decrypt the encrypted data. If the decryption of the encrypted data is successful, printer 100A determines that authentication has been successful and proceeds with processing from T132 onwards.
[0058] In T132, printer 100A sends an Auth Res that includes printer 100A's Capability to terminal 10A. Since printer 100A has already transitioned to the DPP response state (see T128), it can send the Auth Res appropriately. Printer 100A's Capability includes a value indicating that it can operate only as a DPP Enrollee.
[0059] When terminal 10A receives an Auth Res from printer 100A at T132, it determines that there is no conflict between the Capability of printer 100A (i.e., Enrollee) included in the Auth Res and terminal 10A's own Capability (i.e., Configurator). Then, at T134, terminal 10A sends an Auth Confirm to AP6. The Auth Confirm contains information indicating that terminal 10A will act as a Configurator and printer 100A will act as an Enrollee. As a result, at T136, terminal 10A decides to act as a Configurator. The Configurator is a device that is responsible for sending a Configuration Object (hereinafter referred to as "CO") to the Enrollee.
[0060] Furthermore, at T138, it is decided that printer 100A will act as the Enrollee. The Enrollee is a device responsible for receiving CO from the Configurator. The processing at T130-T138 corresponds to DPP authentication.
[0061] Printer 100A sends a Configuration Request to terminal 10A at T140. Hereafter, Configuration will be referred to as "Config". The Config Request is a signal requesting the transmission of a CO.
[0062] When terminal 10A receives a Config Request from printer 100A at T140, it generates a printer CO. Specifically, terminal 10A first generates a printer Signed Connector (hereinafter referred to as "SC"), which is information that should be used by printer 100A to establish a Wi-Fi connection. The printer SC includes, for example, a group ID, which is an identifier that identifies the wireless network. Then, terminal 10A generates a printer CO including the printer SC and sends a Config Request including the printer CO to printer 100A at T142.
[0063] When printer 100A receives a Config Res from terminal 10A at T142, it sends a Config Result to terminal 10A at T144. The Config Result contains information indicating that the configuration was successful. The processing from T140 to T144 corresponds to the configuration of DPP.
[0064] Printer 100A sends a Discovery Request, including the printer SC, to AP6 via T150. The Discovery Request is a signal requesting the other party to send the SC.
[0065] When AP6 receives a Discovery Request from printer 100A at T152, it uses the AP SC to authenticate the printer SC included in the Discovery Request. If the authentication of the printer SC is successful, AP6 generates a connection key. Then, at T152, AP6 sends a Discovery Request containing the AP SC to printer 100A.
[0066] When printer 100A receives Discovery Res from AP6 at T152, it uses the printer's SC to authenticate the AP SC included in Discovery Res. If the authentication of the AP SC is successful, printer 100A generates a connection key. The connection key generated here is the same as the connection key generated by AP6. In other words, the connection key is shared between printer 100A and AP6.
[0067] Next, printer 100A uses the connection key to perform a 4-way handshake communication with AP6. As a result, at T154, a Wi-Fi connection is established between printer 100A and AP6. Since a Wi-Fi connection has also been established between terminal 10A and AP6, terminal 10A and printer 100A can communicate with each other via AP6. The processing from T150 to T154 corresponds to DPP's Network Access. Furthermore, the processing from T130 to T144 described above corresponds to the "DPP processing" at S20 in Figure 2.
[0068] Furthermore, once printer 100A establishes a Wi-Fi connection with AP6, it sends a Result message to terminal 10A that includes the information "Success," indicating that the Wi-Fi connection has been established.
[0069] Terminal 10A receives a Result containing "Success" from printer 100A at T156 (YES at S22).
[0070] As described above, printer 100A can establish a Wi-Fi connection with AP6. To this end, printer 100A can receive print data representing the image to be printed from terminal 10A via AP6 and execute printing of the image represented by said print data.
[0071] (Continuation of Figure 3; Figure 4) In Figure 4, at T160, application 38A displays notification screen SC3 on display unit 14A (Figure 2, S50). Notification screen SC3 includes a message informing the user that the printer's public key is being updated, a message prompting the user to enter the printer's password, a password input area, and an OK button.
[0072] In T162, application 38A accepts the input of a password on the notification screen SC3 and then accepts the selection of an OK button. In this case, in T164, application 38A sends a public key update request to printer 100A (S52). The public key update request includes the entered password.
[0073] When printer 100A receives a public key update request from terminal 10A at T164, it performs authentication of the password included in the public key update request at T166. Here, the password is information pre-stored in printer 100A, and the user has obtained the password in advance. For example, a user has pre-registered a specific string specified by the user as the password for printer 100A. In this case, since password authentication is successful in printer 100A, at T168, a new public key PKA2 is generated, and the new public key PKA2 is stored in memory 134A in place of the stored public key PKA1. Although not shown in the diagram, at T168, printer 100A also generates a new private key (not shown) corresponding to the new public key PKA2, along with the new public key PKA2, and stores the new private key in memory 134A in place of the stored private key. Specifically, printer 100A first generates a new private key using a random number. Next, printer 100A generates a new public key PKA2 using the new private key. In this way, the public and private keys are properly updated in printer 100A. In particular, since password input is required to update the public and private keys, the public and private keys can be updated securely. In the modified version, printer 100A stores a fixed private key and does not need to update the private key (i.e., generate a new private key) in T168. After that, printer 100A sends the new public key PKA2 to terminal 10A in T170.
[0074] Here, we consider a comparative example where the public and private keys of printer 100A are not updated. For example, it is assumed that printer 100A stores a fixed private key, and a device other than printer 100A, such as terminal 10A, generates the public key of printer 100A using the printer 100A's serial number SNA, etc. In such a situation, if the logic by which terminal 10A generates the public key of printer 100A is leaked to a third party, that third party could generate the public key of printer 100A by obtaining the printer 100A's serial number. On the other hand, in this embodiment, each time the process in Figure 3 is executed, printer 100A generates (i.e., updates) a new private and public key using random numbers. Thus, in this embodiment, a new private and public key is generated each time the process in Figure 3 is executed, so security can be enhanced compared to the comparative example.
[0075] Application 38A receives the new public key PKA2 from printer 100A at T170 (S54). In this case, application 38A sends an update request to server 200 (S56). The update request includes the serial number SNA of printer 100A and the received new public key PKA2.
[0076] When server 200 receives an update request from terminal 10A at T172, it updates the printer table 240 at T174. Specifically, first, server 200 identifies the serial number SNA included in the update request from the printer table 240. Next, server 200 stores a new public key PKA2 in place of the public key PKA1 associated with the identified serial number SNA. After that, server 200 sends an update completion notification to terminal 10A at T176 indicating that the update of the printer table 240 has been completed.
[0077] When application 38A receives an update completion notification from server 200 in T176 (S58), it displays notification screen SC4 on display unit 14A in T178 (S60). Notification screen SC4 includes a message indicating that the public key update is complete. The user can learn that the public key update is complete by viewing notification screen SC4. Furthermore, as a result of the above process, the public key stored in printer 100A and the public key stored in server 200 match, so printer 100A and terminal (e.g., 10A) can properly execute DPP processing again.
[0078] (Case B; Figure 5) Next, we will explain Case B with reference to Figure 5. Case B is a case in which a Wi-Fi connection is established between a printer 100B, which does not support DPP, and AP6 using terminal 10A. In the initial state of Figure 5, DPP processing is being performed between terminal 10A and AP6, and a Wi-Fi connection has already been established between terminal 10A and AP6. A barcode B2 obtained by encoding the serial number SNB is affixed to the casing of printer 100B (not shown). The processing of T200~T210 is the same as the processing of T100~T110 in Figure 3.
[0079] Application 38A receives a user request to photograph barcode B2 on T212. In this case, application 38A decodes barcode B2 and obtains the serial number SNB of printer 100B (trigger for the process in Figure 2).
[0080] When application 38A obtains the serial number SNB, at T214 it determines that terminal 10A's Wi-Fi I / F 16A supports DPP (YES at S10), and at T220 it sends a public key transmission request to server 200 (S12). The public key transmission request includes the obtained serial number SNB.
[0081] When server 200 receives a public key transmission request from terminal 10A at T220, it identifies the serial number SNB included in the public key transmission request from printer table 240. Then, server 200 identifies the information associated with the identified serial number SNB (i.e., support information "unsupported") and sends a response including this information to terminal 10A at T122.
[0082] When application 38A receives a response from server 200 at T222 (S14), it determines that the response does not contain a public key (NO at S16), and at T224, it displays notification screen SC2 on display unit 14A (S30). Notification screen SC2 includes a message prompting the user to press a second designated button on printer 100B and then select the OK button, and the OK button itself. The second designated button on the printer is a button used to switch the printer to the Group Owner (hereinafter referred to as "G / O") of the WFD. G / O is the state in which the printer operates as the master station of the wireless network.
[0083] When printer 100B receives a notification from the user who has viewed the notification screen SC2 at T226, and the second designated button is pressed (i.e., an operation to switch printer 100B to G / O), printer 100B switches to G / O at T228.
[0084] Subsequently, at T229, application 38A accepts the selection of the OK button in the notification screen SC2. As a result, at T230, a WFD connection is established between terminal 10A and printer 100B. Specifically, terminal 10A belongs as a slave station to the wireless network formed by printer 100B, which acts as a G / O. Although not shown in the diagram, when the OK button is selected at T229, terminal 10A disconnects the Wi-Fi connection with AP6. This is because terminal 10A cannot simultaneously establish a Wi-Fi connection with AP6 and a WFD connection with printer 100B. In a modified version in which terminal 10A can simultaneously establish a Wi-Fi connection with AP6 and a WFD connection with printer 100B, terminal 10A does not need to disconnect the Wi-Fi connection with AP6 even when the OK button is selected at T229.
[0085] Application 38A, using the established WFD connection in T232, sends an SSID search request to printer 100B. An SSID search request is a signal that requests printer 100B to search for the SSID.
[0086] When printer 100B receives an SSID search request from terminal 10A at T232, it broadcasts an SSID search at T234. The SSID search is a signal that searches for APs (Access Points) present around printer 100B.
[0087] When AP6 receives an SSID search from printer 100B at T234, it sends its own SSID "S1" to printer 100B at T236.
[0088] Printer 100B receives the SSID "S1" from AP6 on T236. In this case, printer 100B receives the SSID only from AP6.
[0089] Printer 100B uses the established WFD connection at T238 to send the search results to terminal 10A. The search results include the SSID found in the SSID search (in this case, one SSID "S1").
[0090] When application 38A receives search results from printer 100B in T238, it displays the search results screen SC5 on display unit 14A in T240. The search results screen SC5 includes a list of SSIDs found by the above SSID search, a message prompting the user to select one SSID from the SSID list and enter a password, a password input area, and an OK button.
[0091] App 38A, at T242, receives from the user the selection of SSID "S1", the input of the password used for the wireless network identified by SSID "S1" (i.e., the wireless network formed by AP6), and the selection of the OK button. The password is a predetermined string, and the user has obtained this password in advance. At T244, App 38A uses the established WFD connection to send the selected SSID "S1" and the entered password to printer 100B.
[0092] When printer 100B receives the SSID "S1" and password from terminal 10A at T244, it uses this information at T250 to establish a Wi-Fi connection with AP6. In this way, even in situations where the public key is not stored in server 200, such as when printer 100B does not support DPP, a Wi-Fi connection can be established between printer 100B and AP6 using terminal 10A. Then, at T252, printer 100B uses the established WFD connection to send an establishment notification to terminal 10A indicating that a Wi-Fi connection with AP6 has been established. The above processing from T230 to T252 corresponds to the "non-DPP processing" at S32 in Figure 2.
[0093] When application 38A receives an establishment notification from printer 100B at T252, it does not perform the process to update the public key because the response received at T222 includes the support information "not supported" (YES at S34, NO at S40). This is because printer 100B does not support DPP and therefore cannot perform DPP processing using the public key. Consequently, application 38A is spared from performing unnecessary processing. Although not shown in the diagram, when terminal 10A receives an establishment notification from printer 100B, it re-establishes the Wi-Fi connection with AP6, which had been disconnected. For this reason, printer 100B can receive print data representing the image to be printed from terminal 10A via AP6 and perform printing of the image represented by the print data.
[0094] (Case C; Figure 6) Next, we will explain Case C with reference to Figure 6. Case C is a case in which a Wi-Fi connection is established between a printer 100A that supports DPP and AP6 using terminal 10A. However, in Case C, the DPP process fails because the public key PKA1 stored in printer 100A and the public key PKA3 associated with the serial number SNA of printer 100A in server 300 are different. For example, in T168 of Figure 4, it is conceivable that after a new public key is generated in printer 100A, the communication T170 between terminal 10A and printer 100A, or the communication T172 between terminal 10A and server 200, fails. In such a situation, printer 100A stores the new public key, but server 200 does not. Even in the initial state of Figure 6, the DPP process is being executed between terminal 10A and AP6, and a Wi-Fi connection has already been established between terminal 10A and AP6. In Case C, the same process as T100-T120 in Figure 3 is first executed.
[0095] Application 38A receives a response from server 200 at T322. The response at T322 includes support information "Support", the public key PKA3, and method information M1. Processing at T324-T329 is the same as processing at T124-T129 in Figure 3. Processing at T330 is the same as processing at T130 in Figure 3, except that the public key used is PKA3.
[0096] As described above, in this case, authentication fails on printer 100A because the public key PKA1 stored on printer 100A and the public key PKA3 used in Auth Req (i.e., the public key stored on server 200) are different. In this case, printer 100A sends an Auth Res to terminal 10A indicating that authentication failed.
[0097] When application 38A receives an Auth Res from printer 100B at T332 indicating that authentication failed, it determines that the DPP process has failed (NO at S22 in Figure 2), and at T340 displays the notification screen SC2 on display unit 14A (S30). The processing at T340 to T372 is the same as the processing at T224 to T252 in Figure 5. In this way, even when the DPP process between terminal 10A and printer 100A fails, a Wi-Fi connection can be established between printer 100A and AP6 using terminal 10A.
[0098] Furthermore, when application 38A receives an establishment notification from printer 100A at T372, the response received at T322 contains support information "Support" (YES at S34, YES at S40), so it executes the process to update the public key (i.e., S50-S60 in Figure 2, process in Figure 4). As a result, both the public key stored in printer 100A and the public key stored in server 200 become the new public key PKA2. Therefore, when DPP processing is executed again, the public key stored in printer 100A and the public key stored in server 200 will match, allowing printer 100A and the terminal (e.g., 10A) to properly execute DPP processing again.
[0099] (Case D; Figure 7) Next, we will explain Case D with reference to Figure 7. Case D is a case in which a Wi-Fi connection is established between printer 100A and AP6 using terminal 10B, which does not support DPP. In the initial state of Figure 7, a Wi-Fi connection has already been established between terminal 10B and AP6. The processing of T400 to T412 is the same as the processing of T100 to T112 in Figure 3, except that the main processing is performed by application 38B on terminal 10B.
[0100] In step T414, application 38B determines that terminal 10B's Wi-Fi interface 16B does not support the DPP method (NO in S10 of Figure 2), and in step T440, displays notification screen SC2 on display unit 14B. The processing from T440 to T472 is the same as the processing from T224 to T252 in Figure 5, except that terminal 10B is used instead of terminal 10A. In this way, a Wi-Fi connection can be established between printer 100A and AP6 using terminal 10B, which does not support DPP.
[0101] Furthermore, when app 38B receives an establishment notification from printer 100A in T472, it does not yet have support information for printer 100A (NO in S34), so in T480, it sends a DPP support inquiry to printer 100A via AP6 (S36). The DPP support inquiry is a signal to ask printer 100A whether or not it supports DPP.
[0102] When printer 100A receives a DPP support inquiry from terminal 10B, it supports Wi-Fi I / F 116ADPP, so T482 sends information to terminal 10B via AP6 indicating that it supports DPP.
[0103] In T482, application 38B receives information from printer 100A indicating that it supports DPP (YES in S38 and S40). In this case, application 38B executes the process to update the public key (i.e., S50-S60 in Figure 2 and the process in Figure 4).
[0104] As described above, if terminal 10B, which does not support DPP, is used, the public key transmission request will not be sent to server 200. This is because, since terminal 10B does not support DPP, even if it were to send a public key transmission request to server 200 and receive the public key, it would not be able to send an Auth Request using that public key. Therefore, terminal 10B does not have to perform unnecessary processing, thus reducing the processing load on terminal 10B.
[0105] (Effects of the first embodiment) According to the above configuration, after using the public key PKA1 (see T130 in Figure 3), terminal 10A receives a new public key PKA2, which is different from public key PKA1, from printer 100A (T170 in Figure 4), and sends an update request including the new public key PKA2 to the server (T172). As a result, the new public key PKA2 is stored in the server 200 in place of public key PKA1 (T174). This allows for secure management of public keys.
[0106] (Correspondence) Terminals 10A and 10B are examples of the "first communication device". Printers 100A and 100B are examples of the "second communication device". Server 200 and AP6 are examples of the "server" and "external device", respectively. DPP and a method different from DPP are examples of the "first method" and "second method", respectively. The serial number is an example of "specific identification information". Public key PKA1 and public key PKA2 are examples of the "first bootstrapping key" and "second bootstrapping key", respectively. Auth Req, Auth Res, and printer CO are examples of the "authentication request", "authentication response", and "first connection information", respectively. The SSID and password of the wireless network formed by AP6 are examples of the "second connection information". Notification screen SC3 and notification screen SC1 are examples of the "password input screen" and "method screen", respectively. The update request T172 and the public key update request T164 in Figure 4 are examples of the "first update request" and "second update request", respectively.
[0107] The process at T112 in Figure 3 is an example of a process executed by the "Acquisition Unit". The processes at S12, S14, S18, S50, S52, S54, and S56 in Figure 2 are examples of processes executed by the "Identification Information Transmission Unit", "First Key Reception Unit (and Support Information Reception Unit, and Method Information Reception Unit)", "Second Display Control Unit", "First Display Control Unit", "Second Update Request Transmission Unit", "Second Key Reception Unit", and "First Update Request Transmission Unit", respectively. The processes at T130, T132, and T142 in Figure 3 are examples of processes executed by the "Authentication Request Transmission Unit", "Authentication Response Reception Unit", and "First Connection Information Communication Unit", respectively. The process at T244 in Figure 5 is an example of a process executed by the "Second Connection Information Communication Unit".
[0108] (Second example) Next, a second embodiment will be described. In the second embodiment, the method for transitioning the printer to the DPP response state differs from that of the first embodiment. Also, in the second embodiment, the method information is not stored in the printer table 240 in association with the serial number.
[0109] (App processing; Figure 8) Referring to Figure 8, the processing of the second embodiment, which is achieved by the CPU of the target terminal executing the target application, will be explained. Figure 8 shows the process for establishing a Wi-Fi connection between the target printer and AP6. In Figure 8, the same reference numbers are used for the same processes as in Figure 2. Detailed explanations of the processes that are the same as in Figure 2 will be omitted, and the processes that differ from those in Figure 2 will be explained below.
[0110] In S118 of Figure 8, the target application sends a Probe Request via broadcast. The Probe Request includes a predetermined SSID to transition the target printer to the DPP responsive state. Upon receipt of this Probe Request by the target printer, the target printer transitions from the DPP non-responsive state to the DPP responsive state.
[0111] (Case E; Figure 9) Next, we will explain a specific case E realized by the process in Figure 8. Case E is a case in which a Wi-Fi connection is established between a printer 100A that supports DPP and AP6 using terminal 10A. The initial state in Figure 9 is the same as the initial state in Figure 3. The processes of T500 to T520 are the same as the processes of T100 to T120 in Figure 3. Also, the process of T522 is the same as the process of T122 in Figure 3, except that it does not include method information.
[0112] At T524, application 38A generates the SSID "hash(PKA1)" by hashing the acquired public key PKA1 with a hash function. Here, "hash(PKA1)" refers to the string obtained by hashing the public key PKA1 with a hash function. Then, at T526, application 38A broadcasts a Probe Request containing the generated SSID "hash(PKA1)" (S118 in Figure 8).
[0113] When printer 100A receives a Probe Request from terminal 10A at T526, it performs the following steps. First, printer 100A determines whether the SSID included in the Probe Request matches the SSID of the wireless network in which it operates as the master station. In this case, printer 100A is not operating as the master station, so it determines that they do not match. Next, printer 100A hashes the stored public key PKA1 using a hash function. The hash function used here is the same as the hash function used by terminal 10A at T524. Then, printer 100A determines whether the hashed string matches the SSID included in the Probe Request. In this case, they match, so printer 100A transitions to the DPP response state at T528.
[0114] The processing of T530 to T556 is the same as the processing of T130 to T156 in Figure 3. After that, the same processing as in Figure 4 is performed and the public key of printer 100A is updated.
[0115] (Effects of the second embodiment) In the second embodiment, as in the first embodiment, the public key can be managed securely. In particular, in the second embodiment, it is not necessary to press the first predetermined button to change the state of printer 100A from a DPP non-responsive state to a DPP responsive state. Therefore, the number of operations that the user must perform is reduced, improving user convenience. The SSID "hash(PKA1)" is an example of "related information". The processing at S118 in Figure 8 is an example of processing performed by the "Probe request transmission unit".
[0116] The specific examples of the technology disclosed herein have been described in detail above, but these are merely illustrative and do not limit the scope of the claims. The technology described in the claims includes various modifications and changes to the specific examples illustrated above. Modifications of the above embodiments are listed below.
[0117] (Modification 1) In the above embodiment, for example, DPP processing was performed between terminal 10A and printer 100A to establish a Wi-Fi connection between printer 100A and AP6. In the modification, DPP processing may be performed between terminal 10A and printer 100A to establish a Wi-Fi connection between terminal 10A and AP6. In this modification, printer 100A may act as Configurator, terminal 10A may act as Enrollee, and printer 100A may send terminal CO to terminal 10A. In this modification, terminal CO is an example of "first connection information". In another modification, DPP processing may be performed between terminal 10A and printer 100A to establish a Wi-Fi connection between terminal 10A and printer 100A. In this modification, terminal 10A or printer 100A is an example of "external device". In another variation, terminal 10A may, instead of sending printer CO including printer SC to printer 100A, send printer CO including AP6's SSID and password to printer 100A. In this variation, printer CO including AP6's SSID and password is an example of "first connection information".
[0118] (Modification 2) The "identification information" is not limited to the printer's serial number, but can be any information that identifies the printer, such as the printer's MAC address. Also, the means of obtaining the serial number is not limited to scanning a barcode, but for example, the user may manually enter the serial number into the terminal. In this modification, receiving manual input of the serial number from the user is one example of the process performed by the "acquisition unit".
[0119] (Modification 3) Printer 100A may, for example, generate a new public key PKA2 after sending a Result to terminal 10A, without receiving a public key update request from terminal 10A (see T164 in Figure 4). In this modification, the process in S52 of Figure 2 can be omitted. Generally speaking, the "second update request transmission unit" can be omitted.
[0120] (Modification 4) The application 38A does not need to display the notification screen SC3 on the display unit 14A. In this case, the public key update request does not need to include a password. In this modification, the process at S50 in Figure 2 can be omitted. Generally speaking, the "first display control unit" can be omitted, and the "second update request" does not need to include a "password".
[0121] (Modification 5) The server 200 does not need to store support information in the printer table 240. In this case, the application 38A may send a public key update request to the printer regardless of whether the printer supports DPP or not. If a public key update request is sent to a printer that does not support DPP, the printer may respond to the request with an error. In this modification, the processing from S34 to S40 in Figure 2 can be omitted. Generally speaking, the "support information receiving unit" can be omitted.
[0122] (Modification 6) The application may send a public key transmission request to the server 200 regardless of whether the device on which the application is installed supports DPP. In this modification, the process at S10 in Figure 2 can be omitted. In particular, if the device does not support DPP, the application may attempt to perform the DPP process. In this case, since the device does not support DPP, the DPP process will fail. In this case, the application may display an error indicating that the DPP process failed without performing a non-DPP process. In this modification, the "second connection information communication unit" can be omitted.
[0123] (Modification 7) If the response received from the server 200 in S14 of Figure 2 does not contain a public key, the application 38A may display an error indicating that DPP processing cannot be performed without performing non-DPP processing. In this modification, the "second connection information communication unit" can be omitted.
[0124] (Modification 8) If authentication according to the Auth Req fails in printer 100A, application 38A may display an error indicating that the DPP process has failed without performing non-DPP processing. In this modification, the "second connection information communication unit" can be omitted.
[0125] (Modification 9) In the above embodiment, each process in Figures 2 to 9 was implemented by software such as the OS program 36A and the application 38A, but at least one of these processes may be implemented by hardware such as a logic circuit.
[0126] The technical elements described herein or in the drawings demonstrate technical usefulness individually or in various combinations, and are not limited to the combinations described in the claims at the time of filing. Furthermore, the technologies illustrated herein or in the drawings can achieve multiple objectives simultaneously, and achieving even one of these objectives constitutes technical usefulness in itself.
[0127] Even if, in the claims of this patent application, each claim depends on only some of the claims, it is not limited to the claim being dependent only on those specific claims. To the extent that it is not technically contradictory, each claim may be dependent on other claims that were not dependent at the time of filing. That is, the technologies of each claim can be combined as follows: (Item 1) A computer program for a first communication device, The first communication device is, A Wi-Fi interface for performing Wi-Fi communication in accordance with Wi-Fi standards, Computers and, Equipped with, The aforementioned computer program comprises the following components of the computer, namely: An acquisition unit that acquires specific identification information to identify a second communication device, An identification information transmission unit that transmits the aforementioned specific identification information to a server different from the second communication device, wherein the server is configured to store, for each of one or more communication devices, an identification information that identifies the communication device and a bootstrapping key stored in the communication device in association with the identification information transmission unit, A first key receiving unit receives a first bootstrapping key associated with the specific identification information from the server in response to the transmission of the specific identification information to the server, When the first bootstrapping key is received from the server, the authentication request transmission unit transmits to the second communication device via the Wi-Fi interface an authentication request that utilizes the first bootstrapping key and conforms to the first method of the Wi-Fi standard. An authentication response receiving unit receives an authentication response in accordance with the first method from the second communication device via the Wi-Fi interface in response to the authentication request being transmitted to the second communication device. When the authentication response is received from the second communication device, the first connection information communication unit performs communication of first connection information in accordance with the first method with the second communication device via the Wi-Fi interface, wherein the first connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and an external device, A second key receiving unit receives a second bootstrapping key, which is different from the first bootstrapping key, from the second communication device via the Wi-Fi interface after the first connection information communication has been performed. A first update request transmission unit transmits a first update request to the server via the Wi-Fi interface when the second bootstrapping key is received from the second communication device, the first update request being a signal requesting the server to store the second bootstrapping key in place of the first bootstrapping key in association with the specific identification information, A computer program that functions as such. (Item 2) The aforementioned computer program further uses the computer, A second update request transmission unit transmits a second update request to the second communication device via the Wi-Fi interface after the first connection information communication has been performed, wherein the second update request is a signal requesting the second communication device to store the second bootstrapping key in place of the first bootstrapping key, and the second update request transmission unit functions as such. The computer program according to item 1, wherein the second key receiving unit receives the second bootstrapping key from the second communication device in response to the transmission of the second update request to the second communication device. (Item 3) The aforementioned computer program further uses the computer, After the communication of the first connection information is performed, the first display control unit is configured to display a password input screen on the display unit of the first communication device. The second update request transmission unit transmits the second update request, which includes the password entered on the password input screen, to the second communication device. The second key receiving unit receives the second bootstrapping key from the second communication device when the second update request is transmitted to the second communication device and the password authentication is successful in the second communication device. The computer program described in item 2, wherein the second update request is sent to the second communication device and the second communication device fails to authenticate the password, and the second bootstrapping key is not received. (Item 4) The server is configured to store, in association with each of the multiple communication devices, including one or more communication devices, identification information of the communication device and support information indicating whether or not the communication device supports the first method. The aforementioned computer program further uses the computer, In response to the transmission of the aforementioned specific identification information to the server, the unit functions as a support information receiving unit that receives specific support information associated with the aforementioned specific identification information from the server. The second update request transmission unit transmits the second update request to the second communication device when the specific support information indicates that it supports the first method. The computer program described in item 2 or 3, which does not send the second update request if the specific support information indicates that it does not support the first method. (Item 5) The aforementioned specific identification information is the serial number of the second communication device, The acquisition unit is a computer program according to any one of items 1 to 4, which acquires the serial number when the barcode, which is attached to the second communication device and obtained by encoding the serial number, is read. (Item 6) The server is configured to store, for each of the one or more communication devices, identification information that identifies the communication device and method information that indicates a method for transitioning the state of the communication device from a state where authentication responses cannot be sent to a state where authentication responses can be sent, in association with each of these. The aforementioned computer program further uses the computer, A method information receiving unit receives specific method information associated with the specific identification information from the server in response to the transmission of the specific identification information to the server. A second display control unit causes the display unit of the first communication device to display a method screen representing the method indicated by the specific method information when the method information is received from the server, A computer program described in any one of items 1 through 5 that functions as such. (Item 7) The identification information transmission unit transmits the specific identification information to the server when the specific identification information has been acquired and the first communication device supports the first method. A computer program according to any one of items 1 to 6, wherein the specific identification information is not transmitted if the specific identification information is obtained and the first communication device does not support the first method. (Item 8) The aforementioned computer program further uses the computer, A computer program according to item 7, which functions as the second connection information communication unit, which, when the specific identification information described above is obtained and the first communication device does not support the first method, communicates second connection information to the second communication device via the Wi-Fi interface in accordance with a second method different from the first method, wherein the second connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and the external device. (Item 9) The first key receiving unit receives the first bootstrapping key from the server in response to the transmission of the specific identification information to the server, when the server has associated and stored the specific identification information with the first bootstrapping key. If the server does not associate and store the specific identification information with the bootstrapping key of the second communication device, then even if the specific identification information is transmitted to the server, the bootstrapping key will not be received from the server. The aforementioned computer program further uses the computer, If a bootstrapping key is not received from the server, a second connection information communication unit performs communication of second connection information with the second communication device via the Wi-Fi interface according to a second method different from the first method, wherein the second connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and the external device, the second connection information communication unit A computer program described in any one of items 1 through 8 that functions as such. (Item 10) When the first connection information communication unit receives the authentication response from the second communication device indicating that authentication in response to the authentication request has been successful, it performs the first connection information communication with the second communication device. The aforementioned computer program further uses the computer, A second connection information communication unit, which, when the communication device receives the authentication response indicating that the authentication has failed, performs communication of second connection information with the second communication device according to a second method different from the first method, wherein the second connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and the external device, A computer program described in any one of items 1 through 9 that functions as such. (Item 11) The aforementioned computer program further uses the computer, A computer program according to items 1 to 10, which causes the Probe request transmission unit to function as a Probe request transmission unit that transmits a Probe request including relevant information related to the specific identification information via the Wi-Fi interface, wherein the Probe request is a signal to transition the state of the second communication device identified by the specific identification information related to the relevant information from a state in which the authentication response cannot be transmitted to a state in which the authentication response can be transmitted. (Item 12) A first communication device, A Wi-Fi interface for performing Wi-Fi communication in accordance with Wi-Fi standards, An acquisition unit that acquires specific identification information to identify a second communication device, An identification information transmission unit that transmits the aforementioned specific identification information to a server different from the second communication device, wherein the server is configured to store, for each of one or more communication devices, an identification information that identifies the communication device and a bootstrapping key stored in the communication device in association with the identification information transmission unit, A first key receiving unit receives a first bootstrapping key associated with the specific identification information from the server in response to the transmission of the specific identification information to the server, When the first bootstrapping key is received from the server, the authentication request transmission unit transmits to the second communication device via the Wi-Fi interface an authentication request that utilizes the first bootstrapping key and conforms to the first method of the Wi-Fi standard. An authentication response receiving unit receives an authentication response in accordance with the first method from the second communication device via the Wi-Fi interface in response to the authentication request being transmitted to the second communication device. When the authentication response is received, a first connection information communication unit performs communication of first connection information in accordance with the first method with the second communication device via the Wi-Fi interface, wherein the first connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and an external device, the first connection information communication unit, A second key receiving unit receives a second bootstrapping key, which is different from the first bootstrapping key, from the second communication device via the Wi-Fi interface after the first connection information communication has been performed. A first update request transmission unit transmits a first update request to the server via the Wi-Fi interface when the second bootstrapping key is received from the second communication device, the first update request being a signal requesting the server to store the second bootstrapping key in place of the first bootstrapping key in association with the specific identification information, A first communication device equipped with the following: (Item 13) A method performed by a first communication device, The first communication device is, It is equipped with a Wi-Fi interface for performing Wi-Fi communication in accordance with Wi-Fi standards. The aforementioned method, An acquisition step to acquire specific identification information to identify a second communication device, An identification information transmission step of transmitting the aforementioned specific identification information to a server different from the second communication device, wherein the server is configured to store, for each of one or more communication devices, an identification information that identifies the communication device and a bootstrapping key stored in the communication device in association with each other, the identification information transmission step, A first key receiving step, in response to the transmission of the specific identification information to the server, receiving a first bootstrapping key associated with the specific identification information from the server; When the first bootstrapping key is received from the server, the authentication request transmission step includes transmitting an authentication request using the first bootstrapping key, which conforms to the first method of the Wi-Fi standard, to the second communication device via the Wi-Fi interface; In response to the transmission of the authentication request to the second communication device, the authentication response receiving step involves receiving an authentication response in accordance with the first method from the second communication device via the Wi-Fi interface, When the authentication response is received, a first connection information communication step is performed, which involves communicating first connection information in accordance with the first method with the second communication device via the Wi-Fi interface, wherein the first connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and an external device. A second key reception step is performed, after the first connection information communication is completed, in which a second bootstrapping key different from the first bootstrapping key is received from the second communication device via the Wi-Fi interface, A first update request transmission step, in which, when the second bootstrapping key is received from the second communication device, a first update request including the specific identification information and the second bootstrapping key is transmitted to the server via the Wi-Fi interface, wherein the first update request is a signal requesting the server to store the second bootstrapping key in place of the first bootstrapping key in association with the specific identification information; A method that includes [something]. [Explanation of Symbols]
[0128] 2: Communication system, 6: AP, 10A, 10B: Terminal, 12A, 12B, 112A, 112B: Operation unit, 14A, 14B: Display unit, 16A, 16B, 116A, 116B: Wi-Fi I / F, 18A, 18B: Camera, 30A, 30B, 130A, 130B, 230: Control unit, 32A, 32B, 132A, 132B, 232: CPU, 34A, 34B, 134A, 134B, 234: Memory, 36A, 36B: OS program, 38A, 38B: Application, 100A, 100B: Printer, 118A, 118B: Print execution unit, 136A, 136B, 236: Program, 200: Server, 216: Communication I / F, 240: Printer table
Claims
1. A computer program for a first communication device, The first communication device is A Wi-Fi interface for performing Wi-Fi communication in accordance with the Wi-Fi standard, Computers and, Equipped with, The aforementioned computer program comprises the following components of the computer, namely: An acquisition unit that acquires specific identification information to identify a second communication device, An identification information transmission unit that transmits the aforementioned specific identification information to a server different from the second communication device, wherein the server is configured to store, for each of one or more communication devices, an identification information that identifies the communication device and a bootstrapping key stored in the communication device in association with the identification information transmission unit, A first key receiving unit receives a first bootstrapping key associated with the specific identification information from the server in response to the transmission of the specific identification information to the server, When the first bootstrapping key is received from the server, the authentication request transmission unit transmits the authentication request, which utilizes the first bootstrapping key and conforms to the first method of the Wi-Fi standard, to the second communication device via the Wi-Fi interface. An authentication response receiving unit receives an authentication response in accordance with the first method from the second communication device via the Wi-Fi interface in response to the authentication request being transmitted to the second communication device. When the authentication response is received from the second communication device, the first connection information communication unit performs communication of first connection information in accordance with the first method with the second communication device via the Wi-Fi interface, wherein the first connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and an external device, After the first connection information communication is performed, a second key receiving unit receives a second bootstrapping key, which is different from the first bootstrapping key, from the second communication device via the Wi-Fi interface. A first update request transmission unit transmits a first update request to the server via the Wi-Fi interface when the second bootstrapping key is received from the second communication device, the first update request transmission unit being a signal requesting the server to store the second bootstrapping key in place of the first bootstrapping key in association with the specific identification information, A computer program that functions as such.
2. The aforementioned computer program further uses the computer, A second update request transmission unit transmits a second update request to the second communication device via the Wi-Fi interface after the first connection information communication has been performed, wherein the second update request is a signal requesting the second communication device to store the second bootstrapping key in place of the first bootstrapping key, and the second update request transmission unit functions as such. The computer program according to claim 1, wherein the second key receiving unit receives the second bootstrapping key from the second communication device in response to the transmission of the second update request to the second communication device.
3. The aforementioned computer program further uses the computer, After the communication of the first connection information is performed, the first display control unit is configured to display a password input screen on the display unit of the first communication device. The second update request transmission unit transmits the second update request, which includes the password entered on the password input screen, to the second communication device. The second key receiving unit receives the second bootstrapping key from the second communication device when the second update request is transmitted to the second communication device and the password authentication is successful in the second communication device. The computer program according to claim 2, wherein if the second update request is transmitted to the second communication device and authentication of the password fails in the second communication device, the second bootstrapping key is not received.
4. The server is configured to store, for each of the multiple communication devices, including one or more communication devices, identification information of the communication device and support information indicating whether or not the communication device supports the first method, in association with each of these devices. The aforementioned computer program further uses the computer, In response to the transmission of the aforementioned specific identification information to the server, the unit functions as a support information receiving unit that receives specific support information associated with the aforementioned specific identification information from the server. The second update request transmission unit transmits the second update request to the second communication device when the specific support information indicates that it supports the first method. The computer program according to claim 2, wherein if the specific support information indicates that the first method is not supported, the second update request is not sent.
5. The aforementioned specific identification information is the serial number of the second communication device, The acquisition unit is a barcode affixed to the second communication device, and the computer program according to claim 1 acquires the serial number in response to the reading of the barcode obtained by encoding the serial number.
6. The server is configured to store, for each of the one or more communication devices, identification information that identifies the communication device and method information that indicates a method for transitioning the state of the communication device from a state where authentication responses cannot be sent to a state where authentication responses can be sent, in association with each of these. The aforementioned computer program further uses the computer, A method information receiving unit receives specific method information associated with the specific identification information from the server in response to the transmission of the specific identification information to the server. When the method information is received from the server, a second display control unit causes the display unit of the first communication device to display a method screen representing the method indicated by the specific method information, A computer program according to claim 1, which functions as such.
7. The identification information transmission unit transmits the specific identification information to the server when the specific identification information has been acquired and the first communication device supports the first method. The computer program according to claim 1, wherein the specific identification information is not transmitted if the specific identification information is obtained and the first communication device does not support the first method.
8. The aforementioned computer program further uses the computer, A computer program according to claim 7, wherein, when the specific identification information described above is obtained and the first communication device does not support the first method, a second connection information communication unit performs communication of second connection information in accordance with a second method different from the first method via the Wi-Fi interface with the second communication device, the second connection information being information for establishing a Wi-Fi connection between the first communication device or the second communication device and the external device.
9. The first key receiving unit receives the first bootstrapping key from the server in response to the transmission of the specific identification information to the server, when the server has stored the specific identification information in association with the first bootstrapping key. If the server does not associate and store the specific identification information with the bootstrapping key of the second communication device, then even if the specific identification information is transmitted to the server, the bootstrapping key will not be received from the server. The aforementioned computer program further uses the computer, If a bootstrapping key is not received from the server, a second connection information communication unit performs communication of second connection information with the second communication device via the Wi-Fi interface according to a second method different from the first method, wherein the second connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and the external device, the second connection information communication unit A computer program according to claim 1, which functions as such.
10. When the first connection information communication unit receives the authentication response from the second communication device indicating that authentication in response to the authentication request has been successful, it performs the first connection information communication with the second communication device. The aforementioned computer program further uses the computer, A second connection information communication unit, which, when the second communication device receives the authentication response indicating that the authentication has failed, communicates second connection information to the second communication device in accordance with a second method different from the first method, wherein the second connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and the external device, A computer program according to claim 1, which functions as such.
11. The aforementioned computer program further uses the computer, A computer program according to claim 1, comprising a Probe request transmission unit that transmits a Probe request via the Wi-Fi interface, wherein the Probe request is a signal that causes the state of the second communication device, identified by the specific identification information related to the associated information, to transition from a state where the authentication response cannot be transmitted to a state where the authentication response can be transmitted.
12. A first communication device, A Wi-Fi interface for performing Wi-Fi communication in accordance with the Wi-Fi standard, An acquisition unit that acquires specific identification information to identify a second communication device, An identification information transmission unit that transmits the aforementioned specific identification information to a server different from the second communication device, wherein the server is configured to store, for each of one or more communication devices, an identification information that identifies the communication device and a bootstrapping key stored in the communication device in association with the identification information transmission unit, A first key receiving unit receives a first bootstrapping key associated with the specific identification information from the server in response to the transmission of the specific identification information to the server, When the first bootstrapping key is received from the server, the authentication request transmission unit transmits the authentication request, which utilizes the first bootstrapping key and conforms to the first method of the Wi-Fi standard, to the second communication device via the Wi-Fi interface. An authentication response receiving unit receives an authentication response in accordance with the first method from the second communication device via the Wi-Fi interface in response to the authentication request being transmitted to the second communication device. When the authentication response is received, the first connection information communication unit performs communication of first connection information in accordance with the first method with the second communication device via the Wi-Fi interface, wherein the first connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and an external device. After the first connection information communication is performed, a second key receiving unit receives a second bootstrapping key, which is different from the first bootstrapping key, from the second communication device via the Wi-Fi interface. A first update request transmission unit transmits a first update request to the server via the Wi-Fi interface when the second bootstrapping key is received from the second communication device, the first update request transmission unit being a signal requesting the server to store the second bootstrapping key in place of the first bootstrapping key in association with the specific identification information, A first communication device comprising the following:
13. A method performed by a first communication device, The first communication device is It is equipped with a Wi-Fi interface for performing Wi-Fi communication in accordance with the Wi-Fi standard, The aforementioned method, An acquisition step to acquire specific identification information to identify a second communication device, An identification information transmission step of transmitting the aforementioned specific identification information to a server different from the second communication device, wherein the server is configured to store, for each of one or more communication devices, an identification information that identifies the communication device and a bootstrapping key stored in the communication device in association with each other, the identification information transmission step, A first key receiving step, in response to the transmission of the specific identification information to the server, receiving a first bootstrapping key associated with the specific identification information from the server, When the first bootstrapping key is received from the server, the authentication request transmission step involves transmitting an authentication request using the first bootstrapping key, which conforms to the first method of the Wi-Fi standard, to the second communication device via the Wi-Fi interface. In response to the transmission of the authentication request to the second communication device, the authentication response receiving step involves receiving an authentication response in accordance with the first method from the second communication device via the Wi-Fi interface, A first connection information communication step, in which, when the authentication response is received, the first connection information communication step is performed with the second communication device via the Wi-Fi interface to communicate first connection information according to the first method, wherein the first connection information is information for establishing a Wi-Fi connection between the first communication device or the second communication device and an external device. After the first connection information communication is performed, a second key reception step is performed, in which a second bootstrapping key different from the first bootstrapping key is received from the second communication device via the Wi-Fi interface, A first update request transmission step, in which, when the second bootstrapping key is received from the second communication device, a first update request including the specific identification information and the second bootstrapping key is transmitted to the server via the Wi-Fi interface, wherein the first update request is a signal requesting the server to store the second bootstrapping key in place of the first bootstrapping key in association with the specific identification information; A method that includes [something].
Citation Information
Patent Citations
Authentication system and authentication program
JP2014078157A
Hosted device provisioning protocol with servers and a networked initiator
US20190332774A1
Hosted Device Provisioning Protocol with Servers and a Networked Responder
US20210194681A1