The present invention relates to a technique of converting a message added with an electronic signature.
When a plurality of computers exchanges a message through a network, an electronic signature (digital signature) is used for ensuring validity of the message. An electronic signature is signature information encrypted using a public key cryptosystem to prove a sender of the message and to prove that the message is not altered.
Further, an XML document described in XML (Extensible Markup Language) is used as a standard data format for exchanging a message between a plurality of computers. XML is one of markup languages, and recommended by a standardization body W3C (World Wide Web Consortium). W3C recommends the XML signature that prescribes a method of affixing a signature to any digital data including an XML document W3C, “XML-Signature Syntax and Processing”, [online], Feb. 12, 2002 [browsed on Jul. 27, 2003], Internet <See URL: http://www.w3.org/TR/xmldsig-core/>.
When a computer sends a message added with an electronic signature, sometimes the message passes through another computer than a computer of the last receiver. Namely, first, a sender computer sends a message added with an electronic signature to a relay computer. Receiving the message added with the electronic signature from the sender computer, the relay computer transfers the message to a last receiver computer. Here, sometimes, the relay computer modifies the message added with the electronic signature before transferring the message to the last receiver computer. In that case, the last receiver computer can not verify the validity of the electronic signature added by the sender computer. In other words, the last receiver computer can not verify that the message has been sent from the sender computer and has not been altered.
Thus, the conventional XML signature technique requires that a sender computer grasps a message part that may be altered by a relay computer and excludes that message part from an object of its signature. Further, in the case where a message is added with an electronic signature, a relay computer can not alter the message added with the electronic signature while keeping the validity of the electronic signature.
The present invention has been made taking the above situation into consideration. An object of the present invention is to make it possible to alter a message, for example by adding or deleting data, while keeping validity of an electronic signature.
To attain the above object, the present invention inserts message conversion information at one part other than a signature object part of a message to generate a converted message.
For example, a processing unit of an information processing apparatus executes: an acquisition step in which a message given with an electronic signature is acquired from an external system; a specifying step in which an electronic signature object part of said message is specified based on information relating to the electronic signature, with said information being described in said message; a read step in which conversion information for converting said message according to predetermined rules is read from said storage unit of the information processing apparatus; and a generation step in which said conversion information is inserted into one part of said message except for the electronic signature object part specified in said specifying step to generate a converted message into which said conversion information has been inserted.
According to the present invention, it is possible to modify (for example, adds or delete data to or from) a message given with an electronic signature, while keeping validity of the electronic signature.
Now, a first embodiment of the present invention will be described.
The present embodiment will be described taking an example of message exchange using SOAP (Simple Object Access Protocol). SOAP is a protocol based on XML and used for accessing data existing in another apparatus. Namely, in message exchange according to SOAP, a lower protocol such as HTTP is used to send or receive an SOAP message which is an XML document described in XML. However, the present invention is not limited to an SOAP message, and a message of another format may be used. For example, the present invention can be applied to a message of another structured document (such as an HTML document, an SGML document, or the like) other than an XML document. Further, in the present embodiment, description will be given taking an example of an XML signature. However, the present invention is not limited to an XML signature, and can use another electronic signature.
The computer A 10 sends an SOAP message (hereinafter, referred to as a message) added with an XML signature to the computer C through the computer B 20. The computer A 10 comprises a signing unit 11 which adds a signature to a message, a storage unit 12 which stores a message, i.e., an XML document, and a communication processing unit 13 which sends or receives a message to and from another apparatus through the network 40. It is assumed that a message stored in the storage unit 12 has been stored in advance into the storage unit 12 through an input device (not shown).
The computer B 20 adds or deletes information to or from a message received from the computer A 10 and then transfers (relays) the message to the computer C 30. The computer B20 comprises a conversion information insertion unit 21 which inserts the below-mentioned conversion information into a message received from the computer A 10, a storage unit 22 which stores the conversion information, and a communication processing unit 23 which sends or receives a message to and from another apparatus through the network 40. The conversion information is information used for instructing addition or deletion of information to or from a received message and will be described later referring to
The computer C 30 receives a message that is sent from the computer A 10 through the computer B 20. The computer C 30 comprises a signature verification unit 31 which verifies validity of an XML signature added to a received message, a conversion information application unit 32 which applies conversion information inserted by the computer B 20 to a message, a display unit 33 which outputs error information to an output device, and a communication processing unit 34 which sends or receives a message to or from another apparatus through the network 40.
As each of the above-described computer A 10, computer B 20 and computer C 30, can be used, for example, a general purpose computer system as shown in
For example, each function of the computer A 10, the computer B 20 or the computer C 30 is realized when the CPU 901 of the computer A 10 executes a program for the computer A 10, the CPU 901 of the computer B 20 a program for the computer B 20, or the CPU 901 of the computer C 30 a program for the computer C 30. Further, as the storage unit 12 of the computer A 10, is used the memory 902 or the external storage 903 of the computer A 10. And, as the storage unit 22 of the computer B 20, is used the memory 902 or the external storage 903 of the computer B 20. The computers A and B may not have an input device 902 or an output device. Further, the computer C may not have an input device.
Next, an outline of processing in the message conversion system as a whole will be described.
The conversion information insertion unit 21 of the computer B 20 receives the message added with the XML signature from the computer A 10 through the communication processing unit 23, and inserts conversion information into the message (S303). Then, the conversion information insertion unit 21 sends the message with the inserted conversion rules to the computer C 30 through the communication processing unit 23 (S304).
The signature verification unit 31 of the computer C 30 receives the message with the inserted conversion information from the computer B 20 through the communication processing unit 34. Then, with respect to the received message, the signature verification unit 31 verifies whether the XML signature added by the computer A 10 is valid or not (S305). In the case where the XML signature is valid, then, based on the conversion information, the conversion information application unit 32 modifies (for example, adds or deletes data to or from) the message added with the XML signature (S306).
Next, will be described a message added with an XML signature.
As shown in the figure, the message has an Envelope element (line numbers 02-29) as a route element. The Envelope element servers as an envelope that encloses a whole SOAP message, and has a Header element (line numbers 02-22) and a Body element (line numbers 23-28) as child elements.
The Header element is an element for describing information relating to message management, and can be omitted. In the example shown in
In the example shown in
The Body element is an element for describing contents of the message to be sent, and an indispensable component of the Envelope element. In the example shown in
The storage unit 12 of the computer A 10 stores the message before addition of the XML signature. Namely, the storage unit 12 of the computer A 10 stores the message without the Header element (line number 02-22) shown in
Next, will be described the conversion information stored in the storage unit 22 of the computer B 20. The conversion information describes a modification operation such as addition or deletion of information to or from a message added with an XML signature, clearly and uniquely according to a predetermined definition method and rules.
The Location element (line number 03) describes a node as an object of an operation. The object of the operation is described in a path (i.e., a character string indicating a location of an element) expressed from the route element of the message through the node as the object of the operation, using “/” as a delimiter. In the example of the Location element shown in
When the operation type described in the Type element is “AppendChild” (addition of a child element), the Content element (line numbers 04-06) describes a child element to be added. The child element described in the Content element is added to the tail (the end) of the element that the Location element describes as the operation object. The example of the conversion information of
In the present embodiment, the conversion information is described according to the above-described definition method and rules. However, the present invention is not limited to this. The conversion information can be described using other definition method and rules as far as the definition method and rules can clearly and uniquely describe an operation on a message which is sent and received between a plurality of computers.
Next, processing in the computer B 20 will be described.
Then, the conversion information insertion unit 21 reads the conversion information (See
Thus, the computer B 10 adds the conversion information to the message added with the XML signature, at a place other than the element as the object of the XML signature. As a result, the computer B 20 can add the conversion information to the message received from the computer A 10 without changing the element as the object of the XML signature. In other words, the computer B 20 can modify (for example, add or delete information in) the message while keeping the validity of the XML signature added by the computer A 10.
Next, will be described processing in the computer C 30.
In the case where the result of the comparison between the decoded result and the signature object part is not correct, namely, the validity of the XML signature can not be verified (S803: NO), the display unit 33 outputs error information to the output device 905 to the effect that the XML signature is not valid (S804). Here, it should be remembered that, in the present embodiment, addition of the conversion information by the conversion information insertion unit 21 of the computer B 20 is performed by inserting the conversion information into an element other than the signature object, and thus, the signature object, i.e., the News element has not been modified in any way. Thus, in the case where the conversion information insertion unit 21 has added the conversion information, the validity of the XML signature is kept and the signature verification unit 31 succeeds in verification of the XML signature.
In the case where the result of the comparison between the decoded result and the signature object part is correct, namely, the validity of the XML signature can be verified (S803: YES), the conversion information application unit 32 applies the conversion information that has been inserted in the received message to the signature object part (S805). In other words, the conversion information application unit 32 acquires the conversion information (the ModificationInfo element) included in the received message, and converts the message according to the conversion information described in the element concerned.
For example, in the case of the message shown in
Thus, the computer C 30 verifies the validity of the XML signature and thereafter converts the received message based on the conversion information. As a result, the computer C 30 can receive the message to which the conversion information of the computer B 20 has been inserted, while keeping the validity of the XML signature added by the computer A 10. Further, the computer C can apply (reflect) the modification operation described in the conversion information to the received message to obtain data affected by the conversion information of the computer B 20.
Hereinabove, the first embodiment of the present invention has been described. According to the present embodiment, the computer B 20 can add the conversion information (relating to, for example, addition or deletion of information to or from) to a message while keeping the validity of the XML signature of the computer A 10. Further, the computer C 30 can verify the validity of the XML signature by the computer A 10 and thereafter acquire the message reflecting the conversion information added by the computer B 20.
Next, will be described a second embodiment of the present invention.
The computer B 20 is similar to the computer B 20 of the first embodiment, and adds or deletes information to or from a message received from the computer A 10 and then transfers (relays) the message to the computer C 30. The computer B 20 comprises an input receiving unit 24 which receives input of data from an input device 904, a conversion information generation unit 25 which generates conversion information from the inputted data, a conversion information insertion unit 21 and a communication processing unit 23. The computer B 20 in the present embodiment differs from the computer B 20 (See
The computer C 30 is similar to the computer C 30 in the first embodiment and receives a message sent from the computer A 10 through the computer B 20. The computer C 30 comprises a signature verification unit 31, a conversion information application unit 32, a display unit 33 which displays a content of a message and error information, a communication processing unit 34, and a valid signature list 35 which stores a valid element of an XML signature. The computer C 30 in the present embodiment differs from the computer C 30 (See
As each of the above-described computer A 10, computer B 20 and computer C 30, can be used, for example, a general purpose computer system as shown in
Next, will be described an input screen that the input receiving unit 24 of the computer B outputs to the output device 905.
In the case of the message shown in
Further, the input receiving unit 24 displays an input box 115 in the conversion information input part 11B. In the input box 115, a user of the computer B 20 inputs information that he wishes to add using the input device 904. The send button 11C is a button that the user pushes after he finishes the input. When the send button is pushed, the conversion information generation unit 25 generates conversion information based on the input screen.
Next, will be described processing in the computer B 20.
Then, the input receiving unit 24 receives input from the user (S1203). Namely, the input receiving unit 24 receives a character string that the user inputs in the input box 115 through the input device 904. Or, the input receiving unit 24 receives a deletion instruction that the user inputs in the deletion check box 112 or 114 through the input device 904. Receiving a push of the send button by the user after finishing the input into the input screen, the input receiving unit 24 delivers the information inputted by the user in the input screen is delivered to the conversion information generation unit 25.
Then, the conversion information generation unit 25 generates conversion information based on the information received by the input receiving unit 24 (S1204). For example, in the following, will be described processing in the input receiving unit 24 in the case where information “The opponent of the semifinal is the Δ □ team.” is inputted in the input box 115. In this case, the conversion information generation unit 25 generates conversion information for adding the above-mentioned information inputted in the input box 115 as related information to the received message.
First, the conversion information generation unit 25 generates a ModificationInfo element that indicates conversion information, and generates a Type element, Location element and Content element as child elements of the ModificationInfo element. Then conversion information generation unit 25 judges that the operation is addition of a child element, since the information is inputted in the input box 115, and sets “AppendChild” in the Type element. Then, in the Location element, the conversion information generation unit 25 sets a child element (i.e., a News element) of the Body element of the message. In detail, using a path, the conversion information generation unit 25 sets “/Envelope/Body/News” in the Location element. Then, the conversion information generation unit 25 adds a RelatedInfo element as a child element to the Content element. And, as a content of the RelatedInfo element, the conversion generation unit 25 sets the information (“The opponent of the semifinal is the Δ □ team.”) inputted in the input box 115. The conversion information generated by the conversion information generation unit 25 is same as the conversion information shown in
Further, in the case where, for example, the check mark “√” indicating a deletion instruction has been inputted in a deletion check box 112 or 114 of the input screen (See
As described above, the conversion generation unit 25 generates conversion information from information inputted in the input screen shown in
From the message received from the computer A 10, the conversion information insertion unit 21 specifies the element as the object of the XML signature (S1205). Then, the conversion information insertion unit 21 inserts the conversion information at a part other than the XML signature object element (S1206). Here, the specifying of the element as the signature object and the insertion of the conversion information (S1205 and S1206) by the conversion information insertion unit 21 are similar to the processing (
Next, will be described the valid signature list of the computer C 30.
The valid signature list is a list of nodes, each of which is given with a valid XML signature which, for example, has not been altered. Further, the valid signature list holds information on nodes, each of which is given with a valid signature.
Next, will be described processing in the computer C 30.
Next, the conversion information application unit 32 applies the conversion information which has been inserted in the received message to the signature object part (S1406). This processing is similar to the processing of the first embodiment (
For example, in the case where “AppendChild” is set in the Type element of the conversion information, a new child element will be added. Accordingly, the element set in the Location element and the upper node to that element are deleted from the valid signature list. Further, in the case where “Delete” is set in the Type element of the conversion information, the node set in the Location element and the upper node to that node are deleted from the valid signature list.
In the case of the message shown in
After the conversion information application unit 32 updates the valid signature list, the display unit 33 outputs the message reflecting the conversion information to the output device 905 (S1408). Namely, the display unit 33 refers to the message (See
Further, in the title text box 161, the display unit 33 displays the content (a text node) of the Headline element of the message shown in
Further, as the Text element, the display unit 33 displays a content text box 163 and signature information 164. Similarly to the Headline element, the display unit 33 displays the content (a text node) of the Text element of the message shown in
Further, as the RelatedInfo element, the display unit 33 displays an input box 164 and signature information 166. In the input box 165, the display unit 33 displays the content (a text node) of the RelatedInfo element of the message shown in
Further, the display unit 33 reads the updated valid signature list from the storage unit 35. Since the element node and the text node of the RelatedInfo element do not exist in the valid signature list, the display unit 33 displays “No signature” in the signature information 166.
Hereinabove, the second embodiment of the present invention has been described. According to the present embodiment, it is possible to obtain effects similar to the first embodiment.
The computer B 20 of the present embodiment receives input of information from the user through the input screen and generates the conversion information. As a result, the computer B 20 can display a message received from the computer A 10 and provide a user interface (an input screen) through which a conversion instruction to that message can be inputted. And, the user of the computer B 20 can input an instruction of conversion such as addition or deletion of any information while confirming the received message. And, the computer B 20 automatically generates the conversion information based on the information inputted by the user through the input screen. As a result, it is possible to reduce a workload at generation of conversion information.
Further, the computer C 30 of the present embodiment displays a message reflecting (applying) the conversion information together with signature information on the output device 905. As a result, the user of the computer C 30 can easily judge which part of the displayed message has a valid XML signature.
The present invention is not limited to the above-described first and second embodiments and can be varied variously within the scope of the invention.
For example, the above embodiments have been described taking the examples where a message is exchanged through a network. However, the present invention can be applied to other uses, for example, circulation of a structured document such as an XML document through a workflow.
Number | Date | Country | Kind |
---|---|---|---|
2003-403970 | Dec 2003 | JP | national |
2004-192538 | Jun 2004 | JP | national |
This application is a continuation of U.S. application Ser. No. 10/937,731, filed Sep. 10, 2004, now allowed, the entirety of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 10937731 | Sep 2004 | US |
Child | 12754816 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10796175 | Mar 2004 | US |
Child | 10937731 | US |