Communication device, method for controlling the communication device, and program
The communication device dynamically generates public keys during setup to enhance security in wireless communication protocols, addressing proximity-based authentication vulnerabilities.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CANON KK
- Filing Date
- 2026-02-06
- Publication Date
- 2026-05-13
AI Technical Summary
Existing wireless communication protocols like DPP rely on proximity-based authentication using public keys, which can be compromised, leading to unintended setup processes and security risks.
A communication device generates a first public key for initial authentication, followed by a second public key for secure communication, enhancing security by dynamically changing keys during setup.
This approach ensures secure and appropriate generation of public and private key pairs, preventing unauthorized access and unintended setup processes.
Smart Images

Figure 2026077674000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a communication device that communicates with an external device, a control method for the communication device, and a program.
Background Art
[0002] In recent years, cases where digital cameras, printers, mobile phones, smartphones, etc. are equipped with a wireless communication function and these communication devices are connected to a wireless network for use have been increasing.
[0003] To connect a communication device to a wireless network, it is necessary to set various communication parameters such as an encryption method, an encryption key, an authentication method, an authentication key, etc. As a technology for facilitating the setting of these communication parameters, a standard (Wi-Fi Device Provisioning Protocol, hereinafter referred to as DPP) for setting communication parameters using a QR code (registered trademark) or the like has been formulated.
[0004] Patent Document 1 discloses a mechanism in which a configurator provides information necessary for an enrollie to connect to an access point with respect to an enrollie.
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0006] In the setting of communication parameters using DPP, the configurator analyzes an image of a QR code (registered trademark) provided by the enrollie, decrypts the encoded information, and acquires BootStrapping Information embedded as QR code information.
[0007] The enloader, which receives communication parameters, uses the authentication public key (also called the BootStrapping Key) contained in the BootStrapping Information to verify the legitimacy of the configurator providing the communication parameters. In DPP communication, the configurator sends a hash of its authentication public key to the enloader, and the enloader authenticates the configurator by verifying that the received hash matches the hash of its own public key. If authentication is successful, the configurator sends the information necessary to connect to the access point to the enloader. As a result, the enloader receives the information necessary to connect to the access point from the configurator and can use that information to connect to the access point.
[0008] Thus, in DPP, the enloader authenticates the configurator using the hash value of the authentication public key (BootStrapping Key). Therefore, a user who knows the enloader's public key can establish direct communication with the enloader to share parameters by running the configurator using that public key.
[0009] In other words, DPP uses the condition that the configurator and the enloader are in sufficient proximity, such as when the configurator can physically read the QR code containing the enloader's authentication public key, as a criterion for configurator authentication.
[0010] By the way, if a public key and private key pair pre-stored in the factory default settings is used as the public key for authentication in DPP, and that public key and private key pair is also used in other authentication processes, there is a possibility that a third party could easily obtain that public key through a different channel. In that case, there is a risk that a third party who knows those public keys could perform a setup that was not intended by the enroller. Also, in the case of a device that has been set up using DPP in the past, the public key that was previously stored will be shared with a specific user. Therefore, there is a risk that the user who performed the setup in the past may mistakenly perform an unintended setup process again.
[0011] The present invention has been made in view of at least one of the above-mentioned problems. One aspect of the present invention aims to provide a mechanism for appropriately generating a public key-private key pair used when sharing communication parameters using a configurator in a communication device that functions as an enroller. Another aspect of the present invention aims to enhance security when sharing communication parameters. [Means for solving the problem]
[0012] To achieve at least one of the above objectives, a communication device as one aspect of the present invention is a communication device comprising: providing means that, upon receiving a first start instruction for wireless setup processing, provides first information including a first public key for use in communication using the Device Provisioning Protocol; first receiving means that, after the first information has been provided, receives a first authentication request from an external device including information generated using the first public key; transmitting means that, upon successful decryption of encrypted data included in the first authentication request using a first secret key paired with the first public key, transmits a first authentication response to the external device as a response to the first authentication request; and second receiving means that, after the first authentication response has been transmitted to the external device, receives configuration information including communication parameters from the external device, wherein the providing means, upon receiving a second start instruction for wireless setup processing after receiving the first start instruction, provides second information including a second public key different from the first public key for use in communication using the Device Provisioning Protocol. [Effects of the Invention]
[0013] One aspect of the present invention is that it becomes possible to provide a mechanism for appropriately generating public and private key pairs used when sharing communication parameters. Another aspect of the present invention is that it becomes possible to enhance security when sharing communication parameters. [Brief explanation of the drawing]
[0014] [Figure 1] This is a diagram showing an example of a communication system. [Figure 2] This figure shows an example of the hardware configuration of the communication device 102. [Figure 3] This figure shows an example of the software configuration of the communication device 102. [Figure 4] This figure shows an example of the hardware configuration of the communication device 101. [Figure 5]This is a diagram showing an example of the software configuration of the communication device 101. [Figure 6] This is a sequence diagram showing an example of the wireless setup process. [Figure 7] This is a flowchart showing an example of the control executed by the communication device 102. [Figure 8] This is an example of a screen displayed on the operation unit 211 of the communication device 102. [Figure 9] This is a flowchart showing an example of the startup control executed by the communication device 102 according to the second embodiment. [Figure 10] This is a flowchart showing an example of the control executed by the communication device 102 according to the second embodiment. [Figure 11] This is an example of a screen displayed on the operation unit 211 of the communication device 102 according to the second embodiment.
Embodiments for Carrying Out the Invention
[0015] Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of the features described in the embodiments are essential for the solution means of the invention.
[0016] <First Embodiment> First, the configuration of the communication system according to the first embodiment will be described using FIG. 1. The communication system of this embodiment is composed of communication devices 101 and 102 and an access point 103. Each device has a wireless LAN (Local Area Network) communication function. The communication devices 101 and 102 operate as stations (STAs) participating in the wireless network 104 provided by the access point 103 or the like. Also, the access point 103 operates as an access point (AP) that constructs a wireless network.
[0017] The communication devices 101 and 102 and the access point 103 all comply with at least one wireless communication standard of the IEEE 802.11 series standards, namely IEEE 802.11a / b / g / n / ac / ax / be. Note that IEEE is an abbreviation for Institute of Electrical and Electronics Engineers.
[0018] In addition, the communication device 101 operates as a configurator compliant with the Wi-Fi Device Provisioning Protocol (DPP) standard and operates as a providing device that provides communication parameters to other devices. Also, the communication devices 102 and the access point 103 operate as enrollors compliant with the DPP standard and operate as receiving devices that receive communication parameters from other devices. In this way, by sharing communication parameters with the communication devices 102 and the access point 103, the communication device 101 can communicate in the wireless network 104 constructed by each communication device and the access point 103. Note that the communication device 101 may or may not be connected to the wireless network 104 constructed by the access point 103. DPP is an example of a predetermined wireless setup standard.
[0019] In this embodiment, specific examples of the communication device 101 that functions as a configurator include mobile terminals such as smartphones and tablet devices, wearable terminals such as smartwatches and smart glasses, and PCs. However, it is not limited to these. The communication device 101 can be any electronic device that can connect to a wireless network and has a camera that captures images of the surroundings. Also, in this embodiment, a specific example of the communication device 102 that functions as an enrollee is assumed to be an MFP (Multi-Function Peripheral) having multiple functions such as printing, scanning, and copying. However, it is not limited to this. It may also be a single-function printer with a printing function, or a single-function scanner with a scanning function. It may also be an electronic device such as a digital camera, signage device, or medical device. The communication device 102 can be any device that can connect to a wireless network and has output means that outputs a QR code that can be read by an external device. In this embodiment, as an example, the communication device 102 will be described as outputting a QR code by displaying the QR code on its own operation unit 211.
[0020] Furthermore, at least one of the communication devices 101, 102, and access point 103 may support standards such as Wi-Fi Direct® and Wi-Fi Aware® in addition to the DPP standard.
[0021] In this embodiment, the communication device 102, which functions as an enroller, provides the communication device 101 with a two-dimensional code containing a public key (BootStrapping Key) for authentication to perform DPP communication. This two-dimensional code is, for example, a two-dimensional code conforming to the QR code (registered trademark) standard. Hereafter, a QR code will be used as an example of a two-dimensional code in the description.
[0022] In this case, when setting communication parameters using DPP, the communication device 101, which is the configurator, performs image analysis of the QR code (registered trademark) provided by the communication device 102, which is the enloader. By performing image analysis, the encoded information is decoded and the BootStrapping Information embedded as QR code information is obtained. The enloader, which receives the communication parameters, uses the authentication public key (BootStrapping Key) contained in the BootStrapping Information to verify the legitimacy of the configurator providing the communication parameters. In DPP communication, the configurator sends a hash of the authentication public key to the enloader, and the enloader authenticates the configurator by verifying that the received hash of the public key is the hash of its own public key. If the configurator successfully authenticates, it sends configuration information, including the communication parameters necessary to connect to the access point, to the enloader. As a result, the enloader receives the information necessary to connect to the access point from the configurator and can use that information to connect to the access point.
[0023] Thus, in DPP, the enloader authenticates the configurator using the hash value of the authentication public key (BootStrapping Key). Therefore, a user who knows the enloader's public key can establish DPP communication to share parameters with the enloader by running the configurator using that public key.
[0024] In other words, DPP uses the fact that the configurator and the enloader are in sufficient proximity, such as when the configurator can physically read the QR code containing the enloader's authentication public key, as one of the criteria for configurator authentication.
[0025] By the way, if a public key and private key pair pre-stored in the factory default settings is used as the public key for authentication in DPP, and that public key and private key pair is also used in other authentication processes, there is a possibility that a third party could easily obtain that public key through a different channel. In that case, there is a risk that a third party who knows those public keys could perform a setup that was not intended by the enroller. Also, in the case of a device that has been set up using DPP in the past, the public key that was previously stored will be shared with a specific user. Therefore, there is a risk that the user who performed the setup in the past may mistakenly perform an unintended setup process again.
[0026] In light of this, this embodiment provides a mechanism for appropriately generating the public key and private key pair to be used when performing wireless setup processing based on DPP in the communication device 102, which functions as an enroller. This will be explained in detail below.
[0027] <Hardware configuration of communication device 102> Next, the hardware configuration of the communication device 102 will be explained using Figure 2. Figure 2 is a block diagram showing the hardware configuration of the communication device 102. The communication device 102 has a reading function to read images on a sheet, a copying function to print the read images onto the sheet, and a file transmission function that can send files to an external communication device. It also has a printing function to print printed images generated based on print data received from an external source onto the sheet. Furthermore, the communication device 102 has a user authentication function that allows only users who have entered authentication information and logged into the communication device 102 to use the copy and scan functions.
[0028] The control unit 201, including the CPU 202, controls the operation of the entire communication device 102. The CPU (Central Processing Unit) 202 reads control programs stored in the ROM (Read Only Memory) 204 or storage 205 and performs various controls such as print control and read control. The ROM 204 stores boot programs and control programs that can be executed by the CPU 202. The RAM (Random Access Memory) 203 is the main memory of the CPU 202 and is used as a work area or a temporary storage area for deploying various control programs. The storage 205 stores print data, image data, various programs, various setting information, and the OS. In this embodiment, an auxiliary storage device such as an HDD (Hard Disk Drive) is assumed as the storage 205, but non-volatile memory such as an SSD (Solid State Drive) may be used instead of an HDD.
[0029] When the communication device 102 is started, the CPU 202 executes the boot program stored in the ROM 204. This boot program reads the OS program stored in the storage 205 and loads it onto the RAM 203. After executing the boot program, the CPU 202 then executes the OS program loaded onto the RAM 203 to control the communication device 102. The CPU 202 also loads various data and programs onto the RAM 203 and performs the control shown in the flowchart described later. In this way, the hardware such as the CPU 202, ROM 204, and RAM 203 constitute what is known as a computer.
[0030] In this embodiment, the communication device 102 uses one CPU 202 to execute each process shown in the flowchart described later, but other configurations are also possible. For example, multiple CPUs, RAM, ROM, and storage can work together to execute each process shown in the flowchart described later. In addition, some processes, such as sending and receiving data, are realized in cooperation with hardware circuits provided by the communication interface. Furthermore, processes such as generating printed images can be configured to be realized in cooperation with dedicated hardware circuits (not shown). Actual printing and scanning processes are realized in cooperation with the hardware configuration described later.
[0031] The control unit interface 210 connects the control unit 211 and the control unit 201. The control unit 211 is equipped with a liquid crystal display with touch panel functionality and various hard keys. This control unit 211 functions as a display unit that shows information to the user and displays QR codes compliant with the DPP standard, as well as a reception unit that receives user instructions.
[0032] The TPM (Trusted Platform Module) 225 is a storage means equipped with tamper resistance to prevent external reading of stored data, for the purpose of processing and storing confidential information. In this embodiment, it stores private keys and public keys used in DPP, as well as certificates used for communication with other external services. The TPM 225 and CPU 202 work together to perform data encryption and decryption using certificates and keys, key pair generation, hash value calculation, digital signature generation, and verification processes.
[0033] The scanner interface 208 connects the scanner 209 and the control unit 201. The scanner 209 reads documents placed on the document glass or ADF and generates scanned images. The generated scanned images are stored in the storage 205 or RAM 203. The scanned images generated by the scanner 209 are transmitted to external devices such as the communication device 101 via a network such as the wireless network 104, or used for printing images onto sheets.
[0034] The printer interface 206 connects the printer 207 and the control unit 201. The communication device 102 transfers the print image and control commands for controlling the printer 207 to the printer 207 via the printer interface 206. This print image is generated based on a print job received via a network such as the wireless network 104, or based on a scanned image.
[0035] The printer 207 receives the print image and control commands via the control unit 201 and prints the print image onto a sheet fed from a sheet holding unit (not shown). The printing method of the printing unit 420 may be electrophotographic or inkjet. The printed material (sheet) that has been printed by the printing unit 420 is ejected into a paper output tray (not shown).
[0036] Next, we will describe the wireless communication interface (I / F212) for wireless communication with the outside world. The wireless communication interface (I / F212) is a communication interface that has an antenna and circuitry for communication to perform wireless communication compliant with the aforementioned IEEE 802.11 series standards. This communication interface also supports the transmission and reception of frames as defined in the DPP standard. The CPU 202 of the communication device 102 works in cooperation with the wireless communication interface (I / F212) to perform wireless transmission and reception for DPP, which will be described later. The communication device 102 also exchanges content data such as print jobs and scanned data with other communication devices via the wireless communication interface (I / F212).
[0037] <Software configuration of communication device 102> Figure 3 is a block diagram showing an example of the software configuration of the communication device 102. Each software module is stored as a program in the storage 205 of the communication device 102, and is read into the RAM 203 as needed and executed by the CPU 202. In Figure 5, due to space limitations, an excerpt of the software configuration related to communication control, which is a feature of the present invention, is shown as an example. That is, in Figure 3, modules related to printing, scanning, and copying processes are omitted as appropriate.
[0038] The display control unit 220 generates operation screens for the scan function and copy function, as well as setting screens including QR codes (as described later in Figure 8) and other setting screens for the operation unit 211. The display control unit 220 also works in cooperation with the operation unit 211 to display the generated operation screens and setting screens on the touch panel display of the operation unit 211.
[0039] The setup processing unit 221, acting as an enloader, provides various controls for performing wireless setup processing in accordance with the DPP standard. These are described in detail below. The processing unit 221 works in cooperation with the wireless communication control unit 223 and the wireless communication interface 212 to send and receive wireless communication frames for DPP. The wireless communication control unit 223 also provides control functions as a so-called wireless slave device, such as sending and receiving wireless communication frames to and from an external access point after the setup process is complete and the connection to the external access point is established. Through this wireless communication, the communication device 102 can exchange content data such as print jobs and scanned data with other communication devices.
[0040] Returning to the explanation of the wireless setup process in accordance with the DPP standard, the processing unit 221 works in cooperation with the TPM 225 to generate a public key to be used in DPP and a private key that is its counterpart. The generated public and private keys are managed by the TPM 225. The processing unit 221 functions as a network service that waits in a standby state for an authentication request in accordance with the DPP standard to arrive from the configurator (e.g., communication device 101). The authentication request sent by the configurator is encrypted data that includes the hash value of the configurator's bootstrap key using the enroller's public key, the configurator's protocol key, Nonce, etc.
[0041] The processing unit 221 works in cooperation with the TPM 225 to attempt to decrypt the encrypted data included in the authentication request using the secret key used by DPP. If the decryption is successful, it sends a DPP authentication response containing the protocol key to the configurator based on the information obtained from the decryption. The configurator derives a value called "I-auth" from the data included in the authentication response and authenticates the enloader by comparing it with the "I-auth" it has previously stored. If authentication is successful, the communication device 102, which is the enloader, and the configurator can exchange configuration information based on the DPP standard using a common encryption key generated based on the protocol key. The processing unit 221 attempts to connect to an external access point such as access point 103 based on the configuration information received from the configurator.
[0042] Configuration information includes the SSID (Service Set Identifier), encryption method, encryption key, authentication method, and channel information necessary for connecting to the access point. It also includes values such as AKM (Authentication and Key Management Type), which indicates which authentication protocol and key exchange algorithm will be used during communication.
[0043] Furthermore, when the setup process in accordance with the DPP standard is completed or canceled, the processing unit 221 performs a termination process for the setup process. In the termination process, controls are made to discard the private and public keys generated for DPP, and to stop the network service that is waiting for authentication requests.
[0044] The wireless communication control unit 223 works in cooperation with the wireless communication interface 212 to exchange wireless frames with external access points and DPP configurators.
[0045] The two-dimensional code generation unit 222 works in cooperation with the processing unit 221 and the TPM 225 to generate a QR code image used for DPP BootStrapping. The generation unit 222 generates a QR code image that contains at least identification information indicating that it is data containing DPP information and the public key used by DPP. The QR code image may also be configured to include the MAC address of the wireless communication interface and channel information indicating the wireless channel that awaits authentication requests. The QR code image generated by the generation unit 222 is stored in the setting storage unit 224. The display control unit 220 reads the QR code image generated by the generation unit and displays the setting screen, which will be described later, on the operation unit 211. In this embodiment, the public key is provided to an external device by displaying a QR code containing the public key used by DPP on the operation unit 211. That is, the touch panel display of the operation unit 211 functions as a means of providing the public key to an external device.
[0046] The setting storage unit 224 stores the aforementioned QR code image and various operation settings for the communication device 102. These operation settings include whether or not to enable the user authentication function. In this embodiment, as an example, the setting to enable the user authentication function is assumed to be stored in the setting storage unit 224.
[0047] The user authentication unit 226 includes an account management function for users who use the communication device 102, and a login function that allows users who have successfully authenticated to log in to the communication device.
[0048] If the user authentication function is enabled, the authentication unit 226 works in cooperation with the display control unit 220 to display a login screen on the operation unit 211. The user enters user account information such as user ID and password via the login screen (not shown) and performs the login operation. Upon detecting the login operation, the authentication unit 226 authenticates the user based on the entered account information. If the user authentication is successful, the corresponding user is logged into the device.
[0049] The account management function manages not only user accounts but also user privileges. In this embodiment, we will explain using an example where at least one user with administrator privileges who can change the operating settings of the communication device 102, such as network settings, and one user with general privileges are managed.
[0050] A user with general privileges is a user who can use general functions provided by the communication device 102, such as copy and scan functions, but is prohibited from changing network settings. In this embodiment, in order to prevent network settings from being changed unintentionally by the administrator, display control is implemented so that the screen related to the setup process in accordance with the DPP standard is displayed only when a user with administrator privileges is logged in. Details will be described later.
[0051] <Hardware configuration of communication device 101> Next, the hardware configuration of the communication device 101, which functions as a configurator, will be explained using Figure 4. Figure 4 is a block diagram showing the hardware configuration of the communication device 101. The control unit 410, which includes the CPU 411, controls the operation of the entire communication device 101. Each piece of hardware and interface constituting the control unit 410 is connected via a system bus for communication. The CPU 411 reads control programs stored in the ROM 412 or storage 414 and performs various controls. The ROM 412 stores control programs that can be executed by the CPU 411. The RAM 413 is the main memory accessed by the CPU 411 and is used as a work area or a temporary storage area for deploying various control programs. The storage 414 is a non-volatile flash memory with a larger capacity compared to the RAM 413. The storage 414 stores functions as a configurator and control programs that read two-dimensional code images and decode the information contained in the two-dimensional code. When the communication device 101 is started up, the CPU 411 executes the boot program stored in the ROM 412. This boot program reads the OS program stored in storage 414 and loads it onto RAM 413. After executing the boot program, CPU 411 then executes the OS program loaded onto RAM 413 and controls the communication device 102. CPU 411 also loads various data onto RAM 413 and reads and writes it. In this way, the hardware such as CPU 411, ROM 412, RAM 413, and storage 414 constitute what is known as a computer.
[0052] It should be noted that the communication device 102 is assumed to have a single CPU 411 that performs the DPP-related control described later. However, other configurations are also possible. For example, multiple processors and memories can work together to execute each process shown in the flowchart described later. In addition, some processes, such as data transmission and reception, are realized in cooperation with hardware circuits provided by the wireless communication interface.
[0053] The operation unit I / F 415 connects the operation unit 416 and the control unit 410. The operation unit 416 is equipped with a touch panel display that detects user touch operations and presents the operation screen to the user. The operation unit 416 functions as a display unit for displaying information and a reception unit for receiving user instructions. In addition, the user can input desired operation instructions to the communication device 101 by performing touch operations on the operation unit 416 using an object such as a finger.
[0054] The camera interface 417 connects the control unit 410 and the camera 418. The camera 418 is a camera that takes still images and videos. Image data obtained by taking pictures with the camera 418 is temporarily stored in the RAM 413 or stored in the storage 414.
[0055] The wireless communication interface (I / F423) is a communication interface that has an antenna and circuitry for communication to perform wireless communication compliant with the aforementioned IEEE 802.11 series standards. This communication interface also supports the transmission and reception of frames as defined by the DPP standard. The CPU 202 of the communication device 102 works in cooperation with the wireless communication interface (I / F423) to perform wireless communication transmission and reception for DPP, as described later. Furthermore, the communication device 102 exchanges content data, such as print jobs and scan data, with other devices such as the communication device 101 via the wireless communication interface (I / F423).
[0056] The TPM435, like the TPM225, is a tamper-resistant storage device. In this embodiment, it stores private and public keys used in DPP, as well as certificates used for communication with other external services. The TPM435 and CPU411 work together to perform data encryption and decryption using certificates and keys, key pair generation, hash value calculation, digital signature generation, and verification processes.
[0057] <Software configuration of communication device 101> Next, the software configuration of the communication device 101 will be explained using Figure 5. Figure 5 is a block diagram showing the software configuration of the communication device 101. Each software module is stored as a program in the storage 414 of the communication device 102, and is read into the RAM 413 as needed and executed by the CPU 411. In Figure 5, due to space limitations, only an excerpt of the software configuration related to communication control, which is a feature of the present invention, is shown as an example.
[0058] The display control unit 430 works in cooperation with the operation unit 416 to provide various setting screens and operation screens. Specifically, it displays a screen for reading a two-dimensional code and a selection screen that allows the user to select configuration information to be provided to the enroller.
[0059] The wireless communication control unit 433 works in cooperation with the wireless communication interface 423 to exchange wireless frames with external access points and DPP enloaders.
[0060] The setup processing unit 431, acting as a configurator, provides various controls for performing wireless setup processing in accordance with DPP. The processing unit 431 works in cooperation with the camera control unit 436 and the two-dimensional code interpretation unit 432 to read the QR code on the enloader and obtain BootStrapping information such as the public key. The processing unit 431 requests the two-dimensional code interpretation unit 432 to read the QR code. Upon receiving the request, the interpretation unit 432 works in cooperation with the camera control unit 436 and the camera 418 to control the reading of the QR code. The image captured by the camera control unit 436 is stored in the RAM 413. The interpretation unit 432 analyzes the image and attempts to decode the information contained in the QR code. If the decoding of the information is successful, the interpretation unit 432 notifies the processing unit 431 of the decoded information as the interpretation result. If decoding is unsuccessful, the image capture and analysis of the image are repeated for a predetermined time (e.g., 10 seconds). If the information cannot be decoded after a predetermined time has elapsed, the interpretation unit 432 notifies the processing unit 431 of the interpretation result, indicating an error.
[0061] Upon receiving the interpretation result, the processing unit 431 determines whether or not the interpretation result includes BootStrapping information. If it determines that BootStrapping information is included, the processing unit 431 works with the TPM 435 to generate the aforementioned authentication request based on the public key and other elements that constitute the BootStrapping information. If it does not include BootStrapping information, it works with the display control unit 430 to notify the user of a configuration error.
[0062] The processing unit 431, in cooperation with the wireless communication control unit 433, sends an authentication request to the enloader. The destination of the wireless frame indicating the authentication request is determined based on the enloader's MAC address and wireless channel information included in the Bootstrapping information. Subsequently, the processing unit 431 receives the aforementioned authentication response and performs authentication processing using "I-auth". If authentication is successful, the processing unit 431 displays a settings screen that accepts the selection of external access points to be included in the configuration information. This screen displays a list of access point discovery results obtained by the wireless communication control unit 433 by searching for surrounding access points. The user selects the external access point to which the enloader should participate from the list of discovery results. Based on this selection, the SSID of the external access point to be included in the configuration information is determined. Authentication information such as passkeys may be manually entered by the user. Alternatively, in cooperation with the OS, the system may check whether the communication device 101 has previously connected to the external access point and use the authentication information such as passkeys used for previous connections. In this case, the OS identifies the passkey of an external access point that has been used for connection in the past, based on the connection history information stored in the configuration memory unit 434.
[0063] Furthermore, the OS of the communication device 102 can be configured to work in conjunction with the communication device 102 to tentatively select the external access point to which it is currently connected as a candidate for inclusion in the configuration information. In this case, the external access point that the user is currently using will be tentatively selected as a candidate, potentially saving the user the trouble of selecting from a list.
[0064] Finally, the processing unit 431 transmits configuration information for connecting to the selected external access point via the wireless communication control unit 433 to the enloader, which is the peer device that successfully completed the authentication process. The configuration information includes the SSID, encryption method, encryption key, authentication method, and channel information that identify the external access point. The enloader receives the configuration information transmitted through this process. Upon receiving the information, the enloader joins the network provided by the external access point based on the configuration information.
[0065] <Connection Sequence> Next, we will explain the setup process using Figure 6. Figure 6 is a sequence diagram showing an example of the process that communication device 101 performs when it shares communication parameters with communication device 102 or access point 103.
[0066] In this embodiment, the communication device 101 acts as a configurator compliant with the DPP standard, providing communication parameters to the communication device 102 or access point 103, which is an enloader compliant with the DPP standard.
[0067] The communication device 102 detects a user operation to initiate wireless setup (sequence 401, hereafter referred to as S601, etc.). When the communication device 102 detects a user operation to initiate wireless setup of the communication device 102, it displays a QR code image containing BootStrapping information on the operation unit 211 and waits for an authentication request (S602).
[0068] Meanwhile, the communication device 101, which functions as a configurator, also detects a user operation to initiate wireless setup (S603). Upon detecting the user operation to initiate wireless setup, the OS of the communication device 101 starts the operation of the setup processing unit 431. Subsequently, the processing unit 431 of the communication device 101 works in cooperation with the camera control unit 436 to activate the camera 418 and transition to a state where it can capture images of the surroundings (S604).
[0069] Next, the camera control unit 436 of the communication device 101 captures image data including the QR code displayed by the communication device 102 in S602. The two-dimensional code interpretation unit 432 analyzes the captured image data, decodes information from the QR code, and obtains Bootstrapping information (S605). This information includes at least the public key used for authentication of the communication device 102. The interpretation unit 432 notifies the processing unit 431 of the acquired information as an analysis result.
[0070] Next, the processing unit 431 of the communication device 101 generates an authentication request using the public key for authentication obtained as an analysis result and sends it to the communication device 102 (S606). The setup processing unit 221 of the communication device 102 works in cooperation with the TPM 225 to determine, based on the information contained in the received authentication request, whether the communication device 101 is the device that photographed the QR code displayed in S602 (S607). Specifically, the processing unit 221 works in cooperation with the TPM 225 to attempt to decrypt the encrypted data contained in the authentication request using the secret key used in DPP. If the decryption is successful, the communication device 101 determines that it is the device that photographed the QR code and proceeds with the processing from S608 onwards. If the decryption is not successful, it determines that it is not the device that photographed the QR code displayed in S602 and terminates the setup process with an error.
[0071] Determining whether the decryption was performed correctly involves comparing the hash of the public key obtained by decrypting the authentication request with the hash of the public key (BootStrapping Key) used by DPP stored in the TPM225. In other words, a device that knows the authentication key contained in the QR code is considered to be the device that scanned the QR code.
[0072] Next, the sequence from S608 onwards will be explained. The processing unit 221 of the communication device 102 generates an authentication response. The processing unit 221, in cooperation with the wireless communication control unit 223, transmits the generated authentication response to the communication device 101, which is the configurator (S608). Having transmitted the authentication response to the communication device 101, the communication device 102 waits for the communication device 101 to transmit an authentication confirmation.
[0073] Upon receiving the authentication response sent in S608, the setup processing unit 431 of the communication device 101 works in cooperation with the TPM 435 to perform authentication processing on the communication device 102 based on the contents of the authentication response (S609). If authentication is successful, the setup processing unit 431 works in cooperation with the TPM 435 to generate a common encryption key based on the protocol key included in the authentication response.
[0074] If communication device 101 successfully authenticates communication device 102, it sends an authentication confirmation to communication device 102 (S610). Upon receiving the authentication confirmation from communication device 101, communication device 102 performs authentication processing on communication device 101 based on the contents of the authentication confirmation. If authentication is successful, the processing unit 221 of communication device 102 generates a common encryption key based on the protocol key. Through the processing described in the sequence above, a common encryption key is shared between the configurator and the enroller, enabling secure communication.
[0075] Upon successful authentication, the processing unit 221 of the communication device 102 sends a configuration request to the communication device 101, which is the configurator (S611). After sending the configuration request, the communication device 102 waits for a configuration response to be sent from the communication device 101.
[0076] Upon receiving the configuration request transmitted in S611, the processing unit 431 of the communication device 101 cooperates with the wireless communication control unit 433 to transmit configuration information for connecting to an external access point to the communication device 102 (S612). Upon receiving the configuration response, the communication device 102 attempts to connect to the external access point using the configuration information contained in the configuration response. For example, if it receives configuration information for connecting to access point 103, the processing unit 431 attempts to connect to access point 103. If the connection is successful, the communication device 101 can join the wireless network 104 provided by access point 103.
[0077] In this embodiment, the example described is when the communication device 101 provides configuration information to the communication device 102 for connecting to an external access point. The same process is performed when the communication device 101 provides configuration information to the access point 103. The difference from the series of processes described in Figure 6 is that the configuration information is used to configure the operation of the access point 103. Therefore, when the communication device 102, acting as a configurator, sets up the access point, it prompts the user to input information such as the SSID, passkey, and encryption method to be used for operation as information to set up the access point. The communication device 101 generates configuration information including the input information and transmits it to the access point 103. The access point 103, having received the configuration information, can construct the wireless network 104 using the configuration information received from the communication device 101.
[0078] Next, we will explain how to appropriately generate the public and private key pairs used when performing wireless setup processing based on DPP in the communication device 102, which functions as an enroller. The specific process will be explained using the flowchart shown in Figure 7 and the screen shown in Figure 8. Figure 7 is an example of a flowchart executed by the CPU 202 of the communication device 102, and Figure 8 is an example of a screen displayed on the operation unit 211 of the communication device 102.
[0079] Each operation (step) shown in the flowchart of Figure 7 is realized by the CPU 202 calling and executing the program for each control module stored in ROM 204 or storage 205 from RAM 203. Data transmission and reception processing is performed in cooperation with the wireless communication interface 212. In cases where it is necessary to clarify the subject of the processing, the software module executed by the CPU 202 will be described as the subject. The processing in Figure 7 shows the process that is repeatedly performed when the communication device 102 is powered on and operating in normal mode.
[0080] In S701, the CPU 202 determines whether or not it has received an instruction to start the wireless setup process in accordance with DPP. If it has received an instruction to start the wireless setup process in accordance with DPP, it proceeds to S702; otherwise, it proceeds to S712. The start instruction will be explained using Figure 8. Figure 8 is an example of a screen displayed on the operation unit 211, and shows an example of a screen displayed after a start instruction has been given.
[0081] Key 801 is used to start the wireless setup process if it has not yet begun. Key 802 is used to terminate, or cancel, the wireless setup process. If the wireless setup process has not been started, the QR code shown in area 803, the message shown in area 804, and key 802 will not be displayed.
[0082] In other words, if the wireless setup process has not been started, key 801 will be displayed as unselected. A user instruction to select key 801 is an example of an instruction to start the process in this embodiment. If the wireless setup process has not been started, a message such as "Selecting the start key will start the setup process" may be displayed.
[0083] Let's return to the explanation of Figure 7. First, we will explain the process that is different from the wireless setup process performed by the communication device 102. In S712, the CPU 202 determines whether or not it has received any other instructions. If it has received any other instructions, it proceeds to S713; otherwise, it proceeds to S714. The other instructions here refer to instructions other than the wireless setup process start instruction mentioned above and the shutdown instruction described later.
[0084] In S713, the CPU 202 performs other processing. For example, if a copy instruction is received via a copy screen (not shown) displayed on the operation unit 211, the CPU 202 performs the copy process in cooperation with the scanner 209 and printer 207. The CPU 202 works with the scanner 209 to read the document and obtain image data. Subsequently, the CPU 202 works with the printer 207 to print the print image based on the image data onto a sheet and eject it to the output tray (not shown). Also, if a file transmission instruction is received via a file transmission function screen (not shown), the CPU 202 works with the scanner 209 to read the document and transmits the obtained image data to the destination specified by the user. Other instructions also include, for example, print instructions included in a print job. The wireless communication control unit 223, which will be described in detail, receives print jobs via the wireless communication interface 212. The received print job is passed to a print module (not shown). The print module analyzes the print job and generates a print image. The printing module prints the generated image onto a sheet in cooperation with printer 207 and ejects it to an output tray (not shown in the diagram).
[0085] Next, in S714, CPU202 determines whether or not it has received a shutdown command. If it has received a shutdown command, it proceeds to S715; otherwise, it returns to S701 and waits for further instructions.
[0086] In S715, the CPU 202 executes a shutdown process, transitioning the power state of the communication device 101 to the shutdown state. Once the transition to the shutdown state is complete, the series of controls ends.
[0087] Next, we will explain what happens when an instruction for wireless setup processing is received. In S702, the user authentication unit 226 determines whether the user logged into the communication device 102 is a user with administrator privileges when the instruction in S701 is given. If it determines that the user is a user with administrator privileges, it proceeds to S703; if it determines that the user is not a user with administrator privileges, it proceeds to S711. In S711, the display control unit 220 notifies an error (not shown). Once the notification is complete, the CPU 202 returns to processing S701 and waits for further instructions. By allowing only users with administrator privileges to initiate the wireless setup processing in this way, it is possible to prevent wireless setup processing from being performed unintentionally by the administrator.
[0088] In S703, the setup processing unit 221 works with the TPM225 to generate a public key to be used in DPP and a corresponding private key. The generated public and private keys are managed by the TPM225.
[0089] Next, in S704, the processing unit 221 requests the two-dimensional code generation unit 222 to generate a QR code that stores the BootStrapping information, including the public key, generated in S703. Upon receiving the request, the generation unit 222 generates a QR code image containing the BootStrapping information, stores the QR code image in the setting storage unit 224, and notifies the processing unit 221 that the generation is complete. Upon receiving the notification, the processing unit 221 works in cooperation with the display control unit 220 to display a setting screen including the QR code illustrated in Figure 8 on the operation unit 211.
[0090] The settings screen displayed on S704 shows a QR code image generated by S704, as shown in area 803. Additionally, the settings screen displays a message prompting the user to scan the QR code with a device that supports Wi-Fi Easy Connect®, as shown in area 804.
[0091] Next, in S705, the processing unit 221 begins waiting for authentication requests. More specifically, it begins operating as a network service, waiting in a standby state for authentication requests that conform to the DPP standard.
[0092] In S706, the processing unit 221 determines whether or not it has received an authentication request. If it has received an authentication request, it proceeds to S708; otherwise, it proceeds to S707. The following explanation will use the case where an authentication request is received from the communication device 101 that read the QR code displayed in S704 as an example.
[0093] In S707, the processing unit 221 determines whether the conditions for canceling the setup are met. If it determines that the conditions for canceling the setup are met, it proceeds to S709. If it determines that the conditions for canceling the setup are not met, it returns to processing S706 and continues to wait for the authentication request to be received.
[0094] The conditions for canceling the setup will be explained in detail. When the processing unit 221 detects that the termination key 802 shown in Figure 8 has been pressed, it determines that the conditions for canceling the setup have been met. The processing unit 221 also determines that the conditions for canceling the setup have been met when it receives a notification from the user authentication unit indicating that the user has logged out. Furthermore, the processing unit 221 monitors whether a certain amount of time (for example, 15 minutes) has elapsed since the settings screen was displayed on S704. If it determines that a certain amount of time has elapsed, it determines that the conditions for canceling the setup have been met. This determination process allows the setup process to be appropriately canceled if it has been started for some reason but left unattended, or if an operation or event occurs that can be considered as the user canceling the setup.
[0095] In S708, the processing unit 221 performs authentication processing based on the authentication request. Subsequently, it processes the reception of the setting request and configuration information and attempts to connect to the external access point corresponding to the configuration information. Once the connection is complete, the process proceeds to S708. The processing unit 221 uses the SSID and wireless channel information contained in the configuration information to identify the external access point to connect to. This process is performed in cooperation with the wireless communication control unit 223. Next, the processing unit 221, in cooperation with the wireless communication control unit 223, connects to the identified external access point.
[0096] Although omitted for brevity, if the authentication process fails, the processing unit 221 returns an error response in response to the authentication request and proceeds to S708 without executing any further processing. This process allows the system to reject authentication requests even if they are made by configurators who have not obtained the correct public key.
[0097] In S709, the CPU 202 stops displaying the QR code image. Specifically, the processing unit 221 works in cooperation with the display control unit 220 to switch the screen displayed on the operation unit 211 to a screen that does not include the QR code image. For example, if the setup is successful, a completion screen is displayed to indicate that the setup is complete. Also, for example, if the setup is canceled, a failure screen is displayed to indicate that the setup failed. The failure screen may also display the reason for the cancellation. If the setup is canceled due to user logout, etc., a login screen waiting for the user to log in may be displayed instead of the failure screen.
[0098] In S710, the processing unit 221, in cooperation with the TPM 225, deletes the public and private key pair generated in S703. Subsequently, the processing unit 221 stops listening for authentication requests. More specifically, it stops operating as a network service that waits for authentication requests in accordance with the DPP standard.
[0099] Through the series of processes described above, when performing a wireless setup process in accordance with DPP, a new private key and public key pair will always be generated and used for DPP. Furthermore, this private key and public key pair will be appropriately deleted upon completion or cancellation of the wireless setup.
[0100] Furthermore, according to this embodiment, the display of the QR code for BootStrapping and the initiation of the wireless setup process in accordance with DPP can be restricted to users with administrator privileges. Therefore, the possibility of a third party obtaining the public key for DPP through an alternative route can be reduced. In addition, since a new public key and private key pair is generated each time a setup is performed, it is possible to prevent setup from being performed using a public key that has been used in a previous setup.
[0101] <Modified form of the first embodiment> In this embodiment, a QR code image is displayed on the operation unit 211 as an example of providing BootStrapping information, including the DPP public key, to an external party, but the system is not limited to this. The communication device 102 may control the printer 207 to print the QR code image onto a sheet and output the QR code. In this case, the configurator only needs to read the QR code image printed on the sheet instead of the displayed QR code image. Furthermore, the system can also be configured to provide BootStrapping information to an external party using short-range wireless communication or the like. For example, the system can be configured to provide BootStrapping information to an external party using a communication method such as NFC (Near Field Communication) that complies with standards such as ISO / IEC 18092 and ISO / IEC 21481. Alternatively, the system can be configured to provide BootStrapping information to an external party using a communication method such as Bluetooth® or Bluetooth Low Energy®. The period for providing BootStrapping information to an external party using NFC or Bluetooth Low Energy should be configured in the same way as the period for which the QR code is displayed.
[0102] Furthermore, the timing for generating and destroying private and public key pairs for DPP is not limited to the timing explained in Figure 7.
[0103] The public and private key pair should be generated as needed when certain conditions are met, so that it is used on a one-time basis during a series of wireless setup processes in accordance with DPP. For example, when the key pair of S710 is deleted, a key pair to be used in subsequent DPP operations may be generated. Alternatively, it is possible to modify the system to discard only the private key or only the public key. If the private key is discarded, the derivation process based on the authentication request cannot be performed, resulting in the same effect as discarding the pair. If the public key is discarded, the hash comparison during authentication cannot be performed, resulting in the same effect as discarding the pair.
[0104] Furthermore, "destruction" in this embodiment is not limited to the physical deletion of data. Disposal also includes not using the key for encryption, decryption, signing, or providing BootStrapping information to external parties. In other words, it is sufficient to configure the system so that a different public and private key pair is used in subsequent setups, and the previously used public and private keys are not reused.
[0105] The timing of QR code image generation can also be changed. For example, it can be configured to generate a QR code image corresponding to a new public key when a new key pair is generated. Thus, starting or ending the setup process is just one example of when certain conditions are met.
[0106] In this embodiment, we have provided an example in which a network service that waits for authentication requests is started in S705 and stopped in S710, but we are not limited to this.
[0107] When the communication device 102 is operating in normal mode, the network service itself can be kept running at all times. In this case, the network service should not be stopped at the S710 timing. Instead, at the S710 timing, the public and private key pair used in DPP should be discarded, and a new public and private key pair should be generated.
[0108] Furthermore, while this embodiment exemplifies a case where an error notification is issued when a user with general privileges but no administrator privileges attempts to start the DPP setup, it is not limited to this. For example, if a user with general privileges but no administrator privileges is logged in, key 801 may be displayed in a grayed-out state, preventing them from issuing a start command.
[0109] <Second Embodiment> In the second embodiment, with an emphasis on security, an example was given in which the public and private key pair is generated and destroyed as appropriate so that it is used only once during a series of wireless setup processes in accordance with DPP.
[0110] Incidentally, by utilizing the DPP device authentication mechanism, once authentication is performed between the configurator and the enrollment, communication becomes possible using a shared key. It is conceivable that communication parameters can be exchanged between these devices to build a direct wireless communication network such as Wi-Fi Direct (registered trademark). It is also conceivable that the communication mechanism in DPP can be used to identify a communication partner and build a direct wireless communication network such as Wi-Fi Direct with that partner. In this case, direct wireless communication is expected to be used for purposes such as exchanging print jobs and scan data with communication device 101, etc.
[0111] Therefore, the system is configured so that users without administrator privileges can also display the QR code for DPP, and the network service that awaits authentication requests is kept running at all times.
[0112] In this situation, problems can arise if the system is configured to discard previously used public and private keys and generate new ones simply because a DPP authentication request and subsequent wireless network configuration processing have taken place. For example, a party that previously established Wi-Fi Direct communication triggered by DPP may try to establish Wi-Fi Direct communication again, triggered by DPP authentication, using the previously used public key. If the public and private keys have been replaced with new ones in this case, authentication will fail, and reconnection will not be possible.
[0113] In light of the above-mentioned problems, the second embodiment provides a mechanism to dynamically switch between either generating and using a key pair on a one-time basis based on the operation settings, or not updating the key pair in order to directly use DPP as a trigger for wireless communication. This will be explained in detail below. Figures 9 and 10 are examples of flowcharts executed by the CPU 202 of the communication device 102, and Figure 11 is an example of a screen displayed on the operation unit 211 of the communication device 102.
[0114] Each operation (step) shown in the flowcharts of Figures 9 and 10 is realized by the CPU 202 calling and executing the program for implementing each control module stored in ROM 204 or storage 205 from RAM 203. Data transmission and reception processing is performed in cooperation with the wireless communication interface 212. In cases where it is necessary to clarify the subject of the processing, the software module executed by the CPU 202 will be described as the subject. The processing in Figure 9 shows the DPP-related control that is executed when the communication device 102 is powered on and the startup process is performed. Figure 10 shows the processing that is repeatedly performed when the communication device 102 is powered on and operating in normal mode.
[0115] In S901, the CPU 202 refers to the settings stored in the setting memory unit 224 and determines whether an operation setting has been made to allow direct wireless communication with a mobile terminal using a connect sequence. If an operation setting that allows it has been made, the process proceeds to S902; otherwise, the process proceeds to S904.
[0116] The operation settings will be explained using Figure 11. Figure 11 is an example of a settings screen displayed on the operation unit 211 in the second embodiment, and is an example of a settings screen for receiving operation settings related to DPP. This settings screen is configured so that only users with administrator privileges can access it.
[0117] Keys 1101 and 1102 are keys for switching the setting whether or not to allow direct wireless communication with a mobile terminal using a connect sequence. In this embodiment, the case where the setting to allow is enabled is shown as an example. Users with administrator privileges can set whether or not to allow direct wireless communication with a mobile terminal using a connect sequence via this screen. When key 1101 is selected, the setting storage unit 224 stores an operation setting that allows direct wireless communication with a mobile terminal using a connect sequence. When key 1102 is selected, the setting storage unit 224 stores an operation setting that does not allow direct wireless communication with a mobile terminal using a connect sequence.
[0118] In S902, the setup processing unit 221 uses the previously generated private and public keys for DPP managed by the TPM225 to start a network service that listens for DPP authentication requests and begins listening for authentication requests.
[0119] Next, in S903, the CPU 202 decides to perform the operation shown in Figure 10, which will be described later, in normal mode. On the other hand, in S904, the CPU 202 decides to perform the operation shown in Figure 6, which was explained in the first embodiment, in normal mode.
[0120] When transitioning to normal mode, CPU202 dynamically switches between performing the process shown in Figure 6 or the process shown in Figure 10, based on the operating mode determined in the startup process shown in Figure 9.
[0121] Next, we will explain the operation shown in Figure 10. The process in S1001 is the same as the process in S701. The difference from the first embodiment is that the administrator privilege check process in S702 and the key generation process in S703 are omitted, and the process proceeds to S1004.
[0122] In S1004, the setup processing unit 221 displays a settings screen that includes a QR code image containing BootStrapping information, including a previously generated public key. The QR code image may be generated at this time, or one that was previously generated when the public key was generated may be used.
[0123] In S1006, the processing unit 221 determines whether or not it has received the authentication request. This process is the same as the process in S706. If the authentication request has been received, the process proceeds to S1021; otherwise, the process proceeds to S1023.
[0124] In S1021, the processing unit 221 determines whether or not it has received a configuration request from the configurator that made the authentication request. If a configuration request has been received, the process proceeds to S1022; otherwise, the process proceeds to S1023.
[0125] In S1022, the processing unit 221 attempts to connect to the external access point based on the configuration request received from the configurator. Once the connection is complete, the process returns to S1001.
[0126] In S1023, the processing unit 221 determines whether or not it has received a P2P (Peer to Peer) connection request from the configurator. If it has received a P2P connection request, it proceeds to S1024; if it has not received a P2P connection request, it proceeds to S1026.
[0127] In S1024, the processing unit 221 establishes direct wireless communication with the configurator that sent the P2P connection request. Direct wireless communication can employ, for example, wireless communication compliant with the Wi-Fi Direct standard. In this embodiment, it is assumed that the configurator becomes the Wi-Fi Direct master station and the communication device 102, which is the enloader, becomes the Wi-Fi Direct slave station, but it is not limited to this.
[0128] The communication device 102, which is an enroller, may also act as the master station.
[0129] In S1025, the CPU 202 receives various requests from the communication device using the established direct wireless communication. Subsequently, it executes processing corresponding to the received requests. For example, if it receives a print job including a print request, it executes processing to print an image onto a sheet based on the print job. Or, for example, if it receives a scan request, it reads the document placed on the document glass to generate image data and executes processing to send data based on the generated image data to the requesting communication device. Once the coordination processing with the communication device performing direct wireless communication is complete, the process proceeds to S1001 and waits for other requests.
[0130] In S1026, the processing unit 221 determines whether the conditions for terminating the setup process are met. If it determines that the conditions for terminating the setup process are met, the process proceeds to S1027. If it does not determine that the conditions for terminating the setup process are met, the process proceeds to S1001 and waits for other requests or instructions.
[0131] In S1027, the processing unit 221 works in cooperation with the display control unit 220 to stop the display of the QR code. This process is the same as the process in S709. Once the process is complete, the system returns to S1001 and waits for other requests or instructions.
[0132] The processing in S1012 to S1015 is the same as the processing in S712 to S715 of the first embodiment. However, it differs from the first embodiment in that it proceeds to S1006 if other processing is performed or if a shutdown instruction has not been received.
[0133] As a result of the process described above, if the setting storage unit 224 is configured to allow direct wireless communication with a mobile terminal using a connect sequence, direct wireless communication with the configurator triggered by DPP can be established at any time.
[0134] Furthermore, P2P connection requests may be received as configuration information corresponding to configuration requests. In this case, the configurator includes "p2p" as an attribute of the Wi-Fi Technology object in the configuration information. The configuration information then includes parameters for direct wireless communication as communication parameters. When the communication device 102 receives configuration information that includes "p2p" as an attribute of the Wi-Fi Technology object, it should configure the operation of direct wireless communication based on the communication parameters included in the configuration information.
[0135] <Other Embodiments> The present invention can also be realized by supplying a program that implements one or more of the functions of each of the embodiments described above to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC or FPGA) that implements one or more functions. [Explanation of Symbols]
[0136] 101 Communication device 102 Communication equipment 103 Access Point 202 CPU
Claims
1. A communication device, A providing means that, upon receiving a first instruction to start the wireless setup process, provides first information including a first public key for use in communication using the Device Provisioning Protocol, After the first information is provided, a first receiving means receives a first authentication request from an external device, which includes information generated using the first public key. A transmission means that, upon successful decryption of the encrypted data included in the first authentication request using the first secret key paired with the first public key, transmits a first authentication response to the external device as a response to the first authentication request. A second receiving means receives configuration information including communication parameters from the external device after the first authentication response has been transmitted to the external device, It has, The communication device is characterized in that, after receiving the first start instruction, it receives a second start instruction for wireless setup processing and then provides second information including a second public key different from the first public key for use in communication using the Device Provisioning Protocol.
2. After the second information is provided, the first receiving means receives a second authentication request from the external device, which includes information generated using the second public key. If the transmission means successfully decrypts the encrypted data included in the second authentication request using the second secret key paired with the second public key, it transmits a second authentication response to the external device as a response to the second authentication request. The communication device according to claim 1, characterized in that the second receiving means receives configuration information including communication parameters from the external device after the second authentication response has been transmitted to the external device.
3. The communication device according to claim 1, characterized in that the providing means provides the second information when it receives the second start instruction after the second receiving means has completed connecting to the access point using the configuration information it has received.
4. The communication device according to claim 1, characterized in that the second public key is generated after the second receiving means has completed connecting to the access point using the configuration information received, but before the second start instruction is received.
5. The communication device according to claim 1, characterized in that the providing means displays a two-dimensional code containing the first information or the second information.
6. The communication device according to claim 1, characterized in that the providing means provides the first information and the second information by short-range wireless communication.
7. The communication device according to claim 6, characterized in that the aforementioned short-range wireless communication is NFC or Bluetooth.
8. The communication device according to claim 1, characterized in that the first information and the second information include information indicating a wireless channel on which the communication device awaits authentication requests.
9. The communication device according to claim 1, characterized in that the first information and the second information include information indicating the MAC address of the wireless communication interface.
10. The communication device according to claim 1, characterized in that if the decryption using the first secret key fails, an error response is sent to the first authentication request.
11. The communication device according to claim 1, further comprising connection means for connecting to an external access point using the aforementioned configuration information.
12. The communication device according to claim 1, characterized in that the conditions for terminating the wireless setup process include at least one of detection of termination operation, detection of logout, or elapsed time.
13. The communication device according to claim 12, characterized in that the predetermined time is measured from the time the first information is provided.
14. The communication device according to claim 1, characterized in that the providing means provides the first information or the second information when it receives the first start instruction from a user having administrator privileges.
15. A method for controlling a communication device, Upon receiving a first instruction to start the wireless setup process, first information including a first public key for use in communication using the Device Provisioning Protocol is provided. After the first information is provided, the external device receives a first authentication request containing information generated using the first public key. If the encrypted data included in the first authentication request is successfully decrypted using the first private key paired with the first public key, the first authentication response is sent to the external device as a response to the first authentication request. After the first authentication response is transmitted to the external device, configuration information including communication parameters is received from the external device. A control method characterized in that, after receiving the first start instruction, when receiving a second start instruction for wireless setup processing, it provides second information including a second public key different from the first public key for use in communication using the Device Provisioning Protocol.
16. A program for causing a computer to execute the control method of the communication device described in claim 15.