Information processing system and information processing method
Granted 15 May 2018 · 1 office action
Current assignee: FUJIFILM Business Innovation Corp. · originally Xerox
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Toshiyuki Maezawa · Examiner: Joseph P Hirl · AU 2435 · TC 2400
Life of the application
9 dated eventsAbstract
An information processing system includes a first apparatus and a second apparatus. The first apparatus includes a first transmission unit that transmits, to the second apparatus, feature information for generating an electronic signature that is added to a program; a first reception unit that receives an electronic signature transmitted from the second apparatus in accordance with the feature information transmitted from the first transmission unit; and a first addition unit that adds the electronic signature received by the first reception unit to the program. The second apparatus includes a second reception unit that receives the feature information transmitted from the first transmission unit; a generation unit that generates an electronic signature from the feature information received by the second reception unit; and a second transmission unit that transmits the electronic signature generated by the generation unit to the first apparatus.
Description
14 parts›CROSS-REFERENCE TO RELATED APPLICATIONS
This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2015-166711 filed Aug. 26, 2015.
›Technical Field
The present invention relates to an information processing system and an information processing method.
›SUMMARY
According to an aspect of the invention, there is provided an information processing system including a first apparatus and a second apparatus. The first apparatus includes a first transmission unit that transmits, to the second apparatus, feature information for generating an electronic signature that is added to a program; a first reception unit that receives an electronic signature transmitted from the second apparatus in accordance with the feature information transmitted from the first transmission unit; and a first addition unit that adds the electronic signature received by the first reception unit to the program. The second apparatus includes a second reception unit that receives the feature information transmitted from the first transmission unit; a generation unit that generates an electronic signature from the feature information received by the second reception unit; and a second transmission unit that transmits the electronic signature generated by the generation unit to the first apparatus.
›BRIEF DESCRIPTION OF THE DRAWINGS
An exemplary embodiment of the present invention will be described in detail based on the following figures, wherein:
FIG. 1 is a diagram illustrating apparatuses included in an information processing system according to an exemplary embodiment of the present invention;
FIG. 2 is a diagram illustrating a hardware configuration of a requesting apparatus;
FIG. 3 is a functional block diagram of the requesting apparatus;
FIG. 4 is a diagram illustrating a hardware configuration of a management apparatus;
FIG. 5 is a diagram illustrating an example of a signature management table;
FIG. 6 is a functional block diagram of the management apparatus;
FIG. 7 is a diagram illustrating an example of a screen displayed by the requesting apparatus;
FIG. 8 is a flowchart illustrating a flow of a process performed by a controller;
FIG. 9 is a flowchart illustrating a flow of a process performed by another controller;
FIG. 10 is a sequence chart in a case of adding a level-1 electronic signature to a plug-in;
FIG. 11 is a sequence chart in a case of adding a level-2 electronic signature to a plug-in;
FIG. 12 is a sequence chart in a case of adding a level-3 electronic signature to a plug-in;
FIG. 13 is a diagram illustrating an example of a screen displayed by an image forming apparatus;
FIG. 14 is a flowchart illustrating a flow of a process performed by the image forming apparatus;
FIG. 15 is a flowchart illustrating a flow of a process performed by the controller according to a modification;
FIG. 16 is a flowchart illustrating a flow of a process performed by the other controller according to a modification; and
FIG. 17 is a flowchart illustrating a flow of a process performed by the other controller according to a modification.
›DETAILED DESCRIPTION · 1 of 2
Exemplary Embodiment
Overall Configuration
FIG. 1 is a diagram illustrating apparatuses included in an information processing system 1 according to an exemplary embodiment of the present invention. A communication line 2 is part of a communication network, such as the Internet, a public circuit network, or the like. A requesting apparatus 10 , which is an example of a first apparatus according to the exemplary embodiment of the present invention, is a computer apparatus and is placed in a company (first vendor) that develops and sells a plug-in, which is an example of a program, installed on an apparatus manufactured and sold by a second vendor described below. The requesting apparatus 10 is connected to the communication line 2 and performs communication via the communication line 2 . Although the requesting apparatus 10 according to this exemplary embodiment is a desktop computer apparatus, the requesting apparatus 10 may be any other computer apparatus that performs data communication, such as a laptop computer apparatus, for example.
A management apparatus 20 , which is an example of a second apparatus according to the exemplary embodiment of the present invention, is an apparatus that generates an electronic signature to be added to the plug-in described above. The management apparatus 20 is placed in a company (second vendor) that manufactures and sells the apparatus on which the above-described plug-in is installable. In this exemplary embodiment, the apparatus on which the plug-in is installable is an image forming apparatus 30 having a copy function, a facsimile function, and so on; however, the apparatus may be another apparatus as long as functions of the other apparatus are enhanced when the plug-in is installed. The management apparatus 20 is connected to the communication line 2 and communicates with the requesting apparatus 10 via the communication line 2 .
Configuration of Requesting Apparatus 10
FIG. 2 is a diagram illustrating an example of a hardware configuration of the requesting apparatus 10 . A display 103 includes a display device. The display 103 displays various screens or the like for operating the requesting apparatus 10 . An operation unit 104 includes an input device, such as a keyboard or a mouse, for operating the requesting apparatus 10 . A communication unit 105 has a function of a communication interface for communication via the communication line 2 .
A memory 102 includes a device (hard disk device, for example) that keeps storing data, and stores an operating system program, an application program, the plug-in developed by the first vendor, and so on. In this exemplary embodiment, the memory 102 stores an application program (hereinafter referred to as “signature-adding application”) that implements a function of communicating with the management apparatus 20 , a function of adding an electronic signature to the plug-in, and so on. A controller 101 includes a central processing unit (CPU) and a random access memory (RAM). The CPU executes the operation system program or the application program stored in the memory 102 .
Functional Configuration of Requesting Apparatus 10
FIG. 3 is a functional block diagram illustrating a configuration of functions relating to the exemplary embodiment of the present invention among functions implemented by executing the signature-adding application. A generation unit 1001 generates a hash value of the plug-in stored in the memory 102 using a hash function. The hash value is an example of feature information according to the exemplary embodiment of the present invention. A transmission/reception unit 1002 transmits information to the management apparatus 20 . Examples of information that the transmission/reception unit 1002 transmits to the management apparatus 20 include the hash value generated by the generation unit 1001 , the plug-in stored in the memory 102 , level information indicating the level of an electronic signature that is added to the plug-in, and the result of evaluation of the plug-in using an evaluation script. The transmission/reception unit 1002 receives information transmitted from the management apparatus 20 . Examples of information that the transmission/reception unit 1002 receives from the management apparatus 20 include an electronic signature and the plug-in to which an electronic signature is added. The transmission/reception unit 1002 is an example of a first transmission unit and a first reception unit according to the exemplary embodiment of the present invention. An addition unit 1003 adds the electronic signature received by the transmission/reception unit 1002 to the plug-in stored in the memory 102 . The addition unit 1003 is an example of a first addition unit according to the exemplary embodiment of the present invention. A control unit 1004 controls the units described above.
Configuration of Management Apparatus 20
FIG. 4 is a block diagram illustrating an example of a hardware configuration of the management apparatus 20 . A communication unit 205 functions as a communication interface for performing communication via the communication line 2 . A memory 202 includes a device (hard disk device, for example) that keeps storing data, and stores an operating system program and an application program. In this exemplary embodiment, the memory 202 stores an application program for generating an electronic signature. The memory 202 stores a developer number and a signature management table TB 1 . The developer number is a unique number that the second vendor assigns to the first vendor.
The signature management table TB 1 is a table that stores information about generated electronic signatures as a log. FIG. 5 is a diagram illustrating an example of the signature management table TB 1 . As illustrated, the signature management table TB 1 includes a developer number field, a plug-in identifier field, a hash value field, and a level information field. The developer number field stores the developer number assigned to the first vendor that has developed the plug-in to which an electronic signature generated by the management apparatus 20 is added. The plug-in identifier field stores a plug-in identifier for uniquely identifying the plug-in to which an electronic signature generated by the management apparatus 20 is added. The hash value field stores a hash value of the plug-in to which the electronic signature generated by the management apparatus 20 is added. The level information field stores level information indicating the level of the electronic signature. In this exemplary embodiment, the level of an electronic signature represents the specifics guaranteed by the second vendor for the plug-in. For example, in a case where level information indicates level 1, it is guaranteed that the second vendor has authorized the first vendor as a development company of the plug-in. In a case where level information indicates level 2, it is guaranteed that the plug-in does not perform an unauthorized operation in addition to the guarantee of level 1. In a case where level information indicates level 3, it is guaranteed that the plug-in satisfies quality criteria of the second vendor in addition to the guarantee of level 2.
›DETAILED DESCRIPTION · 2 of 2
A controller 201 includes a CPU and a RAM and executes the operating system program and the application program stored in the memory 202 .
Functional Configuration of Management Apparatus 20
FIG. 6 is a functional block diagram illustrating a configuration of functions relating to the exemplary embodiment of the present invention among functions implemented by the management apparatus 20 . A transmission/reception unit 2001 receives various types of information transmitted from the requesting apparatus 10 and transmits various types of information to the requesting apparatus 10 . The transmission/reception unit 2001 is an example of a second transmission unit and a second reception unit according to the exemplary embodiment of the present invention. A generation unit 2002 generates a hash value of a plug-in received by the transmission/reception unit 2001 using a hash function. A signature creation unit 2003 creates an electronic signature for the plug-in received by the transmission/reception unit 2001 . The signature creation unit 2003 is an example of a generation unit according to the exemplary embodiment of the present invention. An addition unit 2004 adds the electronic signature generated by the signature creation unit 2003 to the plug-in received by the transmission/reception unit 2001 . The addition unit 2004 is an example of a second addition unit according to the exemplary embodiment of the present invention. A signature management unit 2005 stores information about the electronic signature created by the signature creation unit 2003 in the signature management table TB 1 as a log. The signature management unit 2005 is an example of a storage controller according to the exemplary embodiment of the present invention. A developer management unit 2006 permits the requesting apparatus 10 to use the management apparatus 20 in a case where a developer number that the transmission/reception unit 2001 has received from the requesting apparatus 10 is stored in the memory 202 .
›Example of Operation in Exemplary Embodiment · 1 of 7
Now, regarding an example of an operation in this exemplary embodiment, an example of an operation in a case of adding a level-1 electronic signature to a plug-in is described first. FIG. 7 is a diagram illustrating an example of a screen displayed on the display 103 of the requesting apparatus 10 that executes the signature-adding application. FIG. 8 is a flowchart illustrating a flow of a process performed by the controller 101 . FIG. 9 is a flowchart illustrating a flow of a process performed by the controller 201 . FIG. 10 is a sequence chart in the case of adding a level-1 electronic signature to a plug-in.
In the case of adding a level-1 electronic signature to a developed plug-in, an operator of the requesting apparatus 10 selects a level-1 radio button RB 1 on the screen illustrated in FIG. 7 , inputs a developer number into a text box TX 1 , and specifies a plug-in to which a level-1 electronic signature is added in a text box TX 2 . When the operator performs an operation of clicking a transmit button B 3 thereafter, the control unit 1004 sends the developer number input into the text box TX 1 to the transmission/reception unit 1002 first (step SA 1 ). The transmission/reception unit 1002 transmits the developer number sent from the control unit 1004 to the management apparatus 20 (step S 1 , step SA 2 ).
The transmission/reception unit 2001 of the management apparatus 20 receives the developer number transmitted by the requesting apparatus 10 (step S 20 ) and sends the received developer number to the developer management unit 2006 (step SA 3 ). The developer management unit 2006 checks if the developer number sent from the transmission/reception unit 2001 is stored in the memory 202 (step S 21 , step SA 4 ). If the developer number sent from the transmission/reception unit 2001 is stored in the memory 202 (Yes in step S 21 ), the developer management unit 2006 sends to the transmission/reception unit 2001 a notification that use of the management apparatus 20 is permitted (step SA 5 ). The transmission/reception unit 2001 transmits the notification sent from the developer management unit 2006 to the requesting apparatus 10 (step S 22 , step SA 6 ).
The transmission/reception unit 1002 receives the notification sent from the transmission/reception unit 2001 and sends the received notification to the control unit 1004 (step SA 7 ). If the notification sent from the transmission/reception unit 1002 is a notification that use of the management apparatus 20 is permitted (Yes in step S 2 ), the control unit 1004 determines the electronic signature level specified on the screen illustrated in FIG. 7 (step S 3 ).
If the radio button RB 1 is selected on the screen illustrated in FIG. 7 (level 1 in step S 3 ), the control unit 1004 sends the plug-in specified in the text box TX 2 to the generation unit 1001 (step SA 8 ). The generation unit 1001 generates a hash value from the plug-in sent from the control unit 1004 (step S 4 , step SA 9 ) and sends the generated hash value to the control unit 1004 (step SA 10 ). The control unit 1004 sends the hash value sent from the generation unit 1001 , level information indicating the electronic signature level (level 1) specified by using the radio button RB 1 , and a plug-in identifier for uniquely identifying the plug-in to the transmission/reception unit 1002 (step SA 11 ). The transmission/reception unit 1002 transmits the hash value, level information, and plug-in identifier sent from the control unit 1004 to the management apparatus 20 (step S 5 , step SA 12 ).
The transmission/reception unit 2001 receives the hash value, level information, and plug-in identifier transmitted by the requesting apparatus 10 (step S 23 ) and determines the received level information (step S 24 ). If the received level information indicates level 1, the transmission/reception unit 2001 sends the received hash value, level information, and plug-in identifier to the signature creation unit 2003 (step SA 13 ). If the level information sent from the transmission/reception unit 2001 indicates level 1 (level 1 in step S 24 ), the signature creation unit 2003 encrypts the hash value and level information sent from the transmission/reception unit 2001 using a signature generation key (private key) to thereby generate a level-1 electronic signature (step S 25 , step SA 14 ).
Next, the signature creation unit 2003 sends the developer number received by the transmission/reception unit 2001 in step SA 2 and the plug-in identifier, hash value, and level information sent from the transmission/reception unit 2001 to the signature management unit 2005 (step SA 15 ). The signature management unit 2005 records the developer number, plug-in identifier, hash value, and level information sent from the signature creation unit 2003 to the signature management table TB 1 in the memory 202 in association with one another as a log (step S 26 , step SA 16 ). The signature creation unit 2003 sends the generated electronic signature to the transmission/reception unit 2001 (step SA 17 ). The transmission/reception unit 2001 transmits the electronic signature sent from the signature creation unit 2003 to the requesting apparatus 10 (step S 27 , step SA 18 ).
The transmission/reception unit 1002 receives the electronic signature sent from the transmission/reception unit 2001 (step S 6 ) and sends the received electronic signature to the control unit 1004 (step SA 19 ). The control unit 1004 sends the electronic signature sent from the transmission/reception unit 1002 to the addition unit 1003 (step SA 20 ). The addition unit 1003 adds the electronic signature sent from the control unit 1004 to the plug-in specified in the text box TX 2 (step S 7 , step SA 21 ). When the addition unit 1003 creates the plug-in to which the electronic signature is added, the addition unit 1003 sends to the control unit 1004 a notification that generation of the plug-in to which the electronic signature is added is completed (step SA 22 ). When the control unit 1004 receives the notification sent from the addition unit 1003 , the control unit 1004 reports on the display 103 that generation of the plug-in to which the electronic signature is added is completed (step S 8 , step SA 23 ).
›Example of Operation in Exemplary Embodiment · 2 of 7
Now, an example of an operation in a case of adding a level-2 electronic signature to a plug-in is described. FIG. 11 is a sequence chart in the case of adding a level-2 electronic signature to a plug-in.
In the case of adding a level-2 electronic signature to a developed plug-in, the operator of the requesting apparatus 10 selects a level-2 radio button RB 2 on the screen illustrated in FIG. 7 , inputs a developer number into the text box TX 1 , and specifies a plug-in to which a level-2 electronic signature is added in the text box TX 2 . When the operator performs an operation of clicking the transmit button B 3 thereafter, the control unit 1004 sends the developer number input into the text box TX 1 to the transmission/reception unit 1002 first (step SB 1 ). The transmission/reception unit 1002 transmits the developer number sent from the control unit 1004 to the management apparatus 20 (step S 1 , step SB 2 ).
The transmission/reception unit 2001 of the management apparatus 20 receives the developer number transmitted by the requesting apparatus 10 (step S 20 ) and sends the received developer number to the developer management unit 2006 (step SB 3 ). The developer management unit 2006 checks if the developer number sent from the transmission/reception unit 2001 is stored in the memory 202 (step S 21 , step SB 4 ). If the developer number sent from the transmission/reception unit 2001 is stored in the memory 202 (Yes in step S 21 ), the developer management unit 2006 sends to the transmission/reception unit 2001 a notification that use of the management apparatus 20 is permitted (step SB 5 ). The transmission/reception unit 2001 transmits the notification sent from the developer management unit 2006 to the requesting apparatus 10 (step S 22 , step SB 6 ).
The transmission/reception unit 1002 receives the notification sent from the transmission/reception unit 2001 and sends the received notification to the control unit 1004 (step SB 7 ). If the notification sent from the transmission/reception unit 1002 is a notification that use of the management apparatus 20 is permitted (Yes in step S 2 ), the control unit 1004 determines the electronic signature level specified on the screen illustrated in FIG. 7 (step S 3 ).
If the radio button RB 2 is selected on the screen illustrated in FIG. 7 (level 2 in step S 3 ), the control unit 1004 sends the plug-in specified in the text box TX 2 , level information indicating the electronic signature level (level 2) specified by using the radio button RB 2 , and a plug-in identifier for uniquely identifying the plug-in to the transmission/reception unit 1002 (step SB 8 ). The transmission/reception unit 1002 transmits the plug-in, level information, and plug-in identifier sent from the control unit 1004 to the management apparatus 20 (step S 9 , step SB 9 ).
The transmission/reception unit 2001 receives the plug-in, level information, and plug-in identifier transmitted by the requesting apparatus 10 (step S 23 ) and determines the received level information (step S 24 ). If the received level information indicates level 2 (level 2 in step S 24 ), the transmission/reception unit 2001 sends the received plug-in, level information, and plug-in identifier to the signature creation unit 2003 (step SB 10 ).
If the sent level information indicates level 2 (level 2 in step S 24 ), the signature creation unit 2003 verifies the plug-in sent from the transmission/reception unit 2001 (step S 28 , step SB 11 ). Specifically, the signature creation unit 2003 performs a process of analyzing and verifying the received plug-in by determining whether the plug-in satisfies conditions specified by the second vendor. For example, the second vendor specifies conditions that the image forming apparatus 30 on which a plug-in is installed does not perform an operation of externally transmitting information stored in the image forming apparatus 30 via communication, an operation of changing the configuration of the image forming apparatus 30 , or the like, and the signature creation unit 2003 analyzes the plug-in by determining whether the plug-in performs these operations.
If the plug-in is determined to satisfy the specified conditions as a result of verification (Yes in step S 29 ), the signature creation unit 2003 sends the plug-in to the generation unit 2002 (step SB 12 ). The generation unit 2002 generates a hash value of the plug-in sent from the signature creation unit 2003 (step S 30 , step SB 13 ) and sends the generated hash value to the signature creation unit 2003 (step SB 14 ). If the level information sent from the transmission/reception unit 2001 indicates level 2, the signature creation unit 2003 encrypts the level information and the hash value sent from the generation unit 2002 using the signature generation key (private key) to thereby generate an electronic signature (step S 31 , step SB 15 ).
Next, the signature creation unit 2003 sends the developer number received by the transmission/reception unit 2001 in step SB 2 , the plug-in identifier sent from the transmission/reception unit 2001 , the hash value sent from the generation unit 2002 , and the level information sent from the transmission/reception unit 2001 to the signature management unit 2005 (step SB 16 ). The signature management unit 2005 records the developer number, plug-in identifier, hash value, and level information sent from the signature creation unit 2003 to the signature management table TB 1 in the memory 202 in association with one another as a log (step S 32 , step SB 17 ).
Next, if the level information sent from the transmission/reception unit 2001 indicates level 2, the signature creation unit 2003 sends the plug-in sent from the transmission/reception unit 2001 and the generated electronic signature to the addition unit 2004 (step SB 18 ). When the addition unit 2004 receives the plug-in and electronic signature sent from the signature creation unit 2003 , the addition unit 2004 adds the received electronic signature to the received plug-in (step S 33 , step SB 19 ). Next, the addition unit 2004 sends the plug-in to which the electronic signature is added to the transmission/reception unit 2001 (step SB 20 ). The transmission/reception unit 2001 transmits the plug-in sent form the addition unit 2004 to the requesting apparatus 10 (step S 34 , step SB 21 ).
›Example of Operation in Exemplary Embodiment · 3 of 7
The transmission/reception unit 1002 receives the plug-in sent from the transmission/reception unit 2001 and sends the received plug-in to the control unit 1004 (step SB 22 ). When the control unit 1004 receives the plug-in to which the electronic signature is added from the transmission/reception unit 1002 (Yes in step S 10 ), the control unit 1004 stores the plug-in sent from the transmission/reception unit 1002 in the memory 102 (step S 11 , step SB 23 ) and reports on the display 103 that generation of the plug-in to which the electronic signature is added is completed (step S 8 , step SB 24 ).
Now, an example of an operation in a case of adding a level-3 electronic signature to a plug-in is described. FIG. 12 is a sequence chart in the case of adding a level-3 electronic signature to a plug-in.
In the case of adding a level-3 electronic signature to a developed plug-in, the operator of the requesting apparatus 10 selects a level-3 radio button RB 3 on the screen illustrated in FIG. 7 , inputs a developer number into the text box TX 1 , specifies a plug-in to which a level-3 electronic signature is added in the text box TX 2 , and specifies the result of evaluation of the plug-in using an evaluation script provided by the second vendor in a text box TX 3 . When the operator performs an operation of clicking the transmit button B 3 thereafter, the control unit 1004 sends the developer number input into the text box TX 1 to the transmission/reception unit 1002 first (step SC 1 ). The transmission/reception unit 1002 transmits the developer number sent from the control unit 1004 to the management apparatus 20 (step S 1 , step SC 2 ).
The transmission/reception unit 2001 of the management apparatus 20 receives the developer number transmitted by the requesting apparatus 10 (step S 20 ) and sends the received developer number to the developer management unit 2006 (step SC 3 ). The developer management unit 2006 checks if the developer number sent from the transmission/reception unit 2001 is stored in the memory 202 (step S 21 , step SC 4 ). If the developer number sent from the transmission/reception unit 2001 is stored in the memory 202 (Yes in step S 21 ), the developer management unit 2006 sends to the transmission/reception unit 2001 a notification that use of the management apparatus 20 is permitted (step SC 5 ). The transmission/reception unit 2001 transmits the notification sent from the developer management unit 2006 to the requesting apparatus 10 (step S 22 , step SC 6 ).
The transmission/reception unit 1002 receives the notification sent from the transmission/reception unit 2001 and sends the received notification to the control unit 1004 (step SC 7 ). If the notification sent from the transmission/reception unit 1002 is a notification that use of the management apparatus 20 is permitted (Yes in step S 2 ), the control unit 1004 determines the electronic signature level specified on the screen illustrated in FIG. 7 (step S 3 ).
If the radio button RB 3 is selected on the screen illustrated in FIG. 7 (level 3 in step S 3 ), the control unit 1004 sends the plug-in specified in the text box TX 2 , the result of evaluation specified in the text box TX 3 , level information indicating the electronic signature level (level 3) specified by using the radio button RB 3 , and a plug-in identifier for uniquely identifying the plug-in to the transmission/reception unit 1002 (step SC 8 ). The transmission/reception unit 1002 transmits the plug-in, result of evaluation, level information, and plug-in identifier sent from the control unit 1004 to the management apparatus 20 (step S 12 , step SC 9 ).
The transmission/reception unit 2001 receives the plug-in, result of evaluation, level information, and plug-in identifier transmitted by the requesting apparatus 10 (step S 23 ) and determines the received level information (step S 24 ). If the received level information indicates level 3, the transmission/reception unit 2001 sends the received plug-in, result of evaluation, level information, and plug-in identifier to the signature creation unit 2003 (step SC 10 ).
If the sent level information indicates level 3 (level 3 in step S 24 ), the signature creation unit 2003 verifies the plug-in sent from the transmission/reception unit 2001 (step S 35 , step SC 11 ). If the plug-in is determined to satisfy the specified conditions as a result of verification (Yes in step S 36 ), the signature creation unit 2003 verifies the result of evaluation sent from the transmission/reception unit 2001 (step S 37 , step SC 12 ). Specifically, the signature creation unit 2003 verifies whether the content of the result of evaluation satisfies criteria specified in advance by the second vendor.
If the content of the result of evaluation satisfies the criteria specified in advance by the second vendor (Yes in step S 38 ), the signature creation unit 2003 sends the plug-in to the generation unit 2002 (step SC 13 ). The generation unit 2002 generates a hash value of the plug-in sent from the signature creation unit 2003 (step S 39 , step SC 14 ) and sends the generated hash value to the signature creation unit 2003 (step SC 15 ). If the level information sent from the transmission/reception unit 2001 indicates level 3, the signature creation unit 2003 encrypts the level information and the hash value sent from the generation unit 2002 using the signature generation key (private key) to thereby generate an electronic signature (step S 40 , step SC 16 ).
Next, the signature creation unit 2003 sends the developer number received by the transmission/reception unit 2001 in step SC 2 , the plug-in identifier sent from the transmission/reception unit 2001 , the hash value sent from the generation unit 2002 , and the level information sent from the transmission/reception unit 2001 to the signature management unit 2005 (step SC 17 ). The signature management unit 2005 records the developer number, plug-in identifier, hash value, and level information sent from the signature creation unit 2003 to the signature management table TB 1 in the memory 202 in association with one another as a log (step S 41 , step SC 18 ).
›Example of Operation in Exemplary Embodiment · 4 of 7
Next, if the level information sent from the transmission/reception unit 2001 indicates level 3, the signature creation unit 2003 sends the plug-in sent from the transmission/reception unit 2001 and the generated electronic signature to the addition unit 2004 (step SC 19 ). When the addition unit 2004 receives the plug-in and electronic signature sent from the signature creation unit 2003 , the addition unit 2004 adds the received electronic signature to the received plug-in (step S 42 , step SC 20 ). Next, the addition unit 2004 sends the plug-in to which the electronic signature is added to the transmission/reception unit 2001 (step SC 21 ). The transmission/reception unit 2001 transmits the plug-in sent form the addition unit 2004 to the requesting apparatus 10 (step S 43 , step SC 22 ).
The transmission/reception unit 1002 receives the plug-in sent from the transmission/reception unit 2001 and sends the received plug-in to the control unit 1004 (step SC 23 ). When the control unit 1004 receives the plug-in to which the electronic signature is added from the transmission/reception unit 1002 (Yes in step S 13 ), the control unit 1004 stores the plug-in sent from the transmission/reception unit 1002 in the memory 102 (step S 14 , step SC 24 ) and reports on the display 103 that generation of the plug-in to which the electronic signature is added is completed (step S 8 , step SC 25 ).
If determination in step S 21 results in No or if the developer number sent from the transmission/reception unit 2001 is not stored in the memory 202 (No in step S 21 ), the developer management unit 2006 sends to the transmission/reception unit 2001 a notification that use of the management apparatus 20 is not permitted (step S 44 ). The transmission/reception unit 2001 transmits the notification sent from the developer management unit 2006 to the requesting apparatus 10 (step S 44 ). If the plug-in is determined not to satisfy the conditions as a result of verification of the plug-in (No in step S 29 , No in step S 36 ) or if the content of the result of evaluation does not satisfy the criteria specified in advance by the second vendor (No in step S 38 ), the signature creation unit 2003 sends to the transmission/reception unit 2001 a notification that generation of an electronic signature is rejected. The transmission/reception unit 2001 transmits the notification to the requesting apparatus 10 (step S 45 ).
When the transmission/reception unit 1002 receives the notification that use of the management apparatus 20 is not permitted (No in step S 2 ), the control unit 1004 reports on the display 103 that use of the management apparatus 20 is not permitted (step S 15 ). When the transmission/reception unit 1002 receives the notification that generation of an electronic signature is rejected (No in step S 10 , No in step S 13 ), the control unit 1004 reports on the display 103 that generation of an electronic signature is rejected (step S 16 ).
Now, an example of an operation performed when a plug-in is installed on the image forming apparatus 30 is described. In the image forming apparatus 30 , an electronic signature level of a plug-in that is permitted to be installed is set. For example, a screen illustrated in FIG. 13 is displayed on a touch panel included in the image forming apparatus 30 , on which the user is prompted to select an electronic signature level of a plug-in for which the user permits installation. For example, in a case of permitting installation of a plug-in that is guaranteed to perform no unauthorized operation and prohibiting installation of a plug-in that is not guaranteed to perform no unauthorized operation, the user checks a checkbox CK 3 and a checkbox CK 4 , unchecks a checkbox CK 1 and a checkbox CK 2 , and taps an OK button B 5 , as illustrated in FIG. 13 .
When the user performs an operation for installing a plug-in, the image forming apparatus 30 performs a process illustrated in FIG. 14 . Specifically, the image forming apparatus 30 downloads the plug-in in response to the user operation, thereafter decrypts the electronic signature added to the plug-in by using a public key, and obtains the hash value and level information included in the electronic signature (step S 60 ).
Next, the image forming apparatus 30 calculates a hash value of the plug-in and determines whether the calculated hash value matches the hash value obtained as a result of decryption above (step S 61 ). If the hash values match each other, the image forming apparatus 30 compares the electronic signature level of a plug-in for which installation is permitted as a result of setting described above with the level information obtained by decrypting the electronic signature and determines whether installation is permitted (step S 62 ). For example, in a case where installation is permitted for a plug-in to which a level-2 electronic signature or a level-3 electronic signature is added as described above, if the level information obtained as a result of decryption processing described above indicates level 2 or level 3, the image forming apparatus 30 installs the downloaded plug-in (step S 63 ).
When installation of the plug-in is completed, the image forming apparatus 30 activates the installed plug-in (step S 64 ) and determines whether the plug-in is successfully activated (step S 65 ). If the installed plug-in is successfully activated (Yes in step S 65 ), the image forming apparatus 30 terminates the plug-in (step S 66 ) and reports on the touch panel that installation is successfully completed (step S 67 ).
If the hash values do not match each other (No in step S 61 ) or if the electronic signature level of the downloaded plug-in does not correspond to the set level (No in step S 62 ), the image forming apparatus 30 reports on the touch panel that the downloaded plug-in has not been installed (step S 69 ). If the installed plug-in is not successfully activated (No in step S 65 ), the image forming apparatus 30 uninstalls the installed plug-in (step S 68 ) and reports on the touch panel that the downloaded plug-in has not been installed (step S 69 ).
›Example of Operation in Exemplary Embodiment · 5 of 7
Note that in the image forming apparatus 30 , a list of installed plug-ins may be displayed on the touch panel in response to a user operation, and the level of an electronic signature that is added to each plug-in may be indicated in the displayed list.
Modifications
Although an exemplary embodiment of the present invention is described above, exemplary embodiments of the present invention are not limited to the above-described exemplary embodiment and may be implemented in other various forms. For example, the above-described exemplary embodiment may be modified as follows to thereby implement exemplary embodiments of the present invention. Note that any of the above-described exemplary embodiment and the following modifications may be combined.
In the above-described exemplary embodiment, the controller 201 verifies a plug-in and an evaluation result; however, a verifier of the second vendor instead of the controller 201 may verify a plug-in and an evaluation result. In this case, the verifier inputs the result of verification into the management apparatus 20 , and the controller 201 performs determination in steps S 29 , S 36 , and S 38 on the basis of the input verification result.
In the above-described exemplary embodiment, the same signature generation key is used for different electronic signature levels; however, a different pair of a signature generation key and a public key may be used for each level. For example, in a case of generating a level-1 electronic signature, a hash value may be encrypted using a signature generation key corresponding to level 1 to thereby generate an electronic signature. In a case of generating a level-2 electronic signature, a hash value may be encrypted using a signature generation key corresponding to level 2 to thereby generate an electronic signature. In a case of generating a level-3 electronic signature, a hash value may be encrypted using a signature generation key corresponding to level 3 to thereby generate an electronic signature.
The image forming apparatus 30 may obtain public keys that correspond to the respective levels and, when a plug-in is downloaded, attempt to decrypt the electronic signature by using a corresponding one of the public keys that have been obtained. If the electronic signature is successfully decrypted, the image forming apparatus 30 identifies a level that corresponds to the public key used in the successful decryption and determines that the electronic signature of the identified level is added to the plug-in.
In exemplary embodiments of the present invention, regarding the electronic signature level, a level between level 1 and level 2 (for example, level 1.5) may be provided. FIG. 15 is a flowchart illustrating a flow of a process after it has been determined in step S 3 that the operator of the requesting apparatus 10 sets the electronic signature level to 1.5. FIG. 16 is a flowchart illustrating a flow of a process after it has been determined in step S 24 that the electronic signature level is 1.5.
If it is determined in step S 3 that the operator of the requesting apparatus 10 sets the electronic signature level to 1.5, the control unit 1004 sends a plug-in specified in the text box TX 2 to the generation unit 1001 . The generation unit 1001 generates a hash value from the plug-in sent from the control unit 1004 (step S 80 ) and sends the generated hash value to the control unit 1004 . Next, the control unit 1004 analyzes the plug-in and generates a list of application programming interfaces (APIs) used by the plug-in (step S 81 ). When generation of the API list is completed, the control unit 1004 sends the hash value sent from the generation unit 1001 , level information indicating the electronic signature level (level 1.5) specified by using the radio button RB 1 , a plug-in identifier for uniquely identifying the plug-in, and the API list to the transmission/reception unit 1002 (step S 82 , step SA 11 ). The transmission/reception unit 1002 transmits the hash value, level information, plug-in identifier, and API list sent from the control unit 1004 to the management apparatus 20 (step S 5 , step SA 12 ).
The transmission/reception unit 2001 receives the hash value, level information, plug-in identifier, and API list transmitted by the requesting apparatus 10 and determines the received level information. If the received level information indicates level 1.5, the transmission/reception unit 2001 sends the received hash value, level information, plug-in identifier and API list to the signature creation unit 2003 . If the level information sent from the transmission/reception unit 2001 indicates level 1.5, the signature creation unit 2003 determines whether a predetermined API, use of which is prohibited by the second vendor, is included in the API list (step S 90 ).
If a predetermined API, use of which is prohibited by the second vendor, is not included in the API list (No in step S 90 ), the signature creation unit 2003 encrypts the hash value and level information sent from the transmission/reception unit 2001 using the signature generation key (private key) to thereby generate a level-1.5 electronic signature (step S 91 ).
Next, the signature creation unit 2003 sends the developer number received by the transmission/reception unit 2001 in step SA 2 and the plug-in identifier, hash value, and level information sent from the transmission/reception unit 2001 to the signature management unit 2005 . The signature management unit 2005 records the developer number, plug-in identifier, hash value, and level information sent from the signature creation unit 2003 to the signature management table TB 1 in the memory 202 in association with one another as a log (step S 92 ). The signature creation unit 2003 sends the generated electronic signature to the transmission/reception unit 2001 . The transmission/reception unit 2001 transmits the electronic signature sent from the signature creation unit 2003 to the requesting apparatus 10 (step S 93 ).
›Example of Operation in Exemplary Embodiment · 6 of 7
If a predetermined API, use of which is prohibited by the second vendor, is included in the API list (Yes in step S 90 ), the signature creation unit 2003 sends to the transmission/reception unit 2001 a notification that generation of an electronic signature is rejected. The transmission/reception unit 2001 transmits the notification to the requesting apparatus 10 (step S 94 ).
The transmission/reception unit 1002 receives the electronic signature sent from the transmission/reception unit 2001 and sends the received electronic signature to the control unit 1004 . When the control unit 1004 receives the electronic signature sent from the transmission/reception unit 1002 (Yes in step S 83 ), the control unit 1004 sends the electronic signature sent from the transmission/reception unit 1002 to the addition unit 1003 . The addition unit 1003 adds the electronic signature sent from the control unit 1004 to the plug-in specified in the text box TX 2 (step S 84 ). When the addition unit 1003 generates the plug-in to which the electronic signature is added, the addition unit 1003 sends to the control unit 1004 a notification that generation of the plug-in to which the electronic signature is added is completed. When the control unit 1004 receives the notification sent from the addition unit 1003 , the control unit 1004 reports on the display 103 that generation of the plug-in to which the electronic signature is added is completed (step S 85 ).
When the transmission/reception unit 2001 receives a notification that generation of an electronic signature is rejected from the transmission/reception unit 1002 (No in step S 83 ), the transmission/reception unit 2001 reports on the display 103 that generation of an electronic signature is rejected (step S 86 ).
In the above-described exemplary embodiment, the operator of the requesting apparatus 10 sets the electronic signature level; however, the management apparatus 20 may automatically set the electronic signature level. In this modification, the requesting apparatus 10 transmits the hash value and plug-in identifier of a plug-in and a list of APIs used by the plug-in to the management apparatus 20 . In this modification, upon storing information in the signature management table TB 1 , the management apparatus 20 obtains a list of APIs used by the plug-in from the requesting apparatus 10 and stores the obtained list in the signature management table TB 1 .
FIG. 17 is a flowchart illustrating a flow of a process in which the management apparatus 20 automatically sets the electronic signature level. If a plug-in identifier transmitted from the requesting apparatus 10 is included in the signature management table TB 1 (Yes in step S 100 ), the controller 201 determines whether the hash value of the plug-in transmitted from the requesting apparatus 10 is the same as a hash value stored in the signature management table TB 1 in association with the received plug-in (step S 101 ). If the received hash value is the same as the hash value stored in the signature management table TB 1 (Yes in step S 101 ), the controller 201 sets the electronic signature level to level 1 (step S 102 ). When the controller 201 determines the level and completes the process illustrated in FIG. 17 , the flow proceeds to step S 25 , and the controller 201 generates an electronic signature.
If the received hash value is different from the hash value stored in the signature management table TB 1 (No in step S 101 ), the controller 201 compares the API list stored in the signature management table TB 1 with the received API list and determines whether APIs used by the plug-in change (step S 103 ). If APIs used by the plug-in do not change (No in step S 103 ), the controller 201 uses the received API list and determines whether an apparatus on which the plug-in is installed performs communication via the communication line 2 (step S 104 ). If an apparatus on which the plug-in is installed does not perform communication via the communication line 2 (No in step S 104 ), the controller 201 sets the electronic signature level to level 2 (step S 105 ). When the controller 201 determines the level and completes the process illustrated in FIG. 17 , the controller 201 requests the requesting apparatus 10 to transmit the plug-in. When the controller 201 receives the plug-in transmitted from the requesting apparatus 10 in response to the request, the flow proceeds to step S 28 , and the controller 201 generates an electronic signature.
If determination in step S 103 or S 104 results in Yes, the controller 201 determines the type of contract with the first vendor on the basis of the developer number. In this modification, the first vendor makes a contract with the second vendor upon development of a plug-in, and the second vendor sets a contract type for the first vendor in accordance with the content of the contract. The contract type is an example of information that indicates the reliability level of the first vendor, which is a developer developing a program. For example, in a case where electronic signatures of level 1 to level 3 are generated and the second vendor evaluates a plug-in, the contract type is set to “premium”. In a case where only a level-1 electronic signature is generated, the contract type is set to “basic”.
If the contract type is “premium” (Yes in step S 106 ), the controller 201 sets the electronic signature level to level 3 (step S 107 ). When the controller 201 determines the level and completes the process illustrated in FIG. 17 , the controller 201 requests the requesting apparatus 10 to transmit the plug-in. When the controller 201 receives the plug-in transmitted from the requesting apparatus 10 in response to the request, the controller 201 evaluates the received plug-in using a predetermined evaluation script. When the controller 201 completes evaluation using the evaluation script, the flow proceeds to step S 35 , and the controller 201 generates a level-3 electronic signature.
›Example of Operation in Exemplary Embodiment · 7 of 7
If the contract type is “basic” (No in step S 106 ), the controller 201 sets the electronic signature level to level 3 (step S 108 ). When the controller 201 determines the level and completes the process illustrated in FIG. 17 , the controller 201 requests the requesting apparatus 10 to transmit the plug-in and the result of evaluation of the plug-in using an evaluation script. When the controller 201 receives the plug-in and the result of evaluation transmitted from the requesting apparatus 10 in response to the request, the flow proceeds to step S 35 , and the controller 201 generates a level-3 electronic signature.
If determination in step S 100 results in No, the controller 201 uses the received API list and determines whether an apparatus on which the plug-in is installed performs communication via the communication line 2 (step S 109 ). If an apparatus on which the plug-in is stalled does not perform communication via the communication line 2 (No in step S 109 ), the flow proceeds to step S 105 . If determination in step S 109 results in Yes, the flow proceeds to step S 108 .
The above-described modification is configured so that the electronic signature level is set to level 2 in a case where the plug-in does not involve communication, and is set to level 3 in a case where the plug-in involves communication; however, exemplary embodiments of the present invention are not limited to such a configuration. For example, for the image forming apparatus 30 on which a plug-in is installed, the electronic signature level may be automatically set in accordance with a function that affects security among functions used by the plug-in. Specifically, in a case where the plug-in uses a function of accessing information stored in a memory included in the image forming apparatus 30 , the electronic signature level may be set to level 3.
In the above-described exemplary embodiment, the requesting apparatus 10 transmits a developer number to the management apparatus 20 . After the requesting apparatus 10 has received from the management apparatus 20 a notification that use of the management apparatus 20 is permitted, the requesting apparatus 10 transmits to the management apparatus 20 various types of information for generating an electronic signature in accordance with the electronic signature level. However, various types of information for generating an electronic signature may be transmitted all together at the time of transmitting a developer number. In such a configuration, after the management apparatus 20 has permitted use of the management apparatus 20 on the basis of the developer number, the management apparatus 20 generates an electronic signature by using various types of information that have been transmitted, and transmits to the requesting apparatus 10 the generated electronic signature or the plug-in to which the generated electronic signature is added.
In the above-described exemplary embodiment, in a case where the electronic signature level is level 2 or level 3, the plug-in to which an electronic signature is added is transmitted from the management apparatus 20 to the requesting apparatus 10 . However, the management apparatus 20 may transmit a generated electronic signature to the requesting apparatus 10 , and the requesting apparatus 10 may add the received electronic signature to the plug-in.
In exemplary embodiments of the present invention, the image forming apparatus 30 on which a plug-in is installed may, at a timing corresponding to the level of an electronic signature added to the installed plug-in, verify the electronic signature. For example, in a case where the level of an electronic signature is level 1, the electronic signature may be verified only at the timing when the plug-in is installed. In a case where the level of an electronic signature is level 2, the electronic signature may be verified at the timing when the image forming apparatus 30 is turned on in addition to the timing in the case of level 1. In a case where the level of an electronic signature is level 3, the electronic signature may be verified when the plug-in is activated or when an external apparatus gives an instruction in addition to the timings in the case of level 2.
A program for each apparatus in exemplary embodiments of the present invention, which is stored in a computer-readable recording medium, such as a magnetic recording medium (magnetic tape, magnetic disk (hard disk drive (HDD), flexible disk (FD), or the like), an optical recording medium (optical disc or the like), a magneto-optical recording medium, a semiconductor memory, or the like, may be provided and installed. Alternatively, the program may be downloaded via a communication line and installed.
The foregoing description of the exemplary embodiment of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiment was chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Claims as granted
5 claimsLog in to read the claims of this application.
Log in to unlockClassifications
5 codes- G06F3/12
- G06F21/56
- G06K15/00
- G06F21/64
- H04L1/00
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock