Method for Payment-Based Execution of a Function of a Field Device to be Performed, Corresponding Field Device and Service Unit
20210312408 · 2021-10-07
Inventors
Cpc classification
G05B2219/24154
PHYSICS
International classification
Abstract
A method for execution of a function of a field device includes: selecting a function to be performed from a selection list of functions available to a process control system, and communicating the selected function to a service unit; paying a payment amount specified for the function and confirming the payment to the service unit; determining a derived time value of a service unit and an enable code, and transmitting the enable code to the process control system; forwarding the enable code to the field device; determining a derived time value of the field device, and checking the enable code using the derived time value to determine whether the enable code is generated by the service unit, and determining the function from the enable code; and executing an executable code corresponding to the function in the event the enable code is verified as being generated by the service unit.
Claims
1. A method for payment-based execution of a function of a field device to be performed, wherein the field device has an identifier and is connected to a process control system via a first communication channel, the process control system is connected to a service unit via a second communication channel, the field device and the service unit each have at least one time-counting device, and the time-counting devices are synchronized with one another and each provide a time value of the field device and a time value of the service unit, the method comprising: a selection step, wherein the process control system selects the function to be performed on the field device from a selection list of executable functions of the field device available to the process control system, and the process control system communicates the selected function to the service unit; a payment step, wherein a payment amount specified for the function to be performed is paid by a payment service and the payment of the payment amount is confirmed by the payment service to the service unit by transmission of confirmation information; a request step, wherein the service unit determines a derived time value of the service unit, which is dependent on the current time value of the service unit, and an enable code, which is dependent on the function to be performed, and transmits the enable code to the process control system; a forwarding step, wherein the process control system forwards the enable code to the field device; a checking step, wherein the field device determines a derived time value of the field device which is dependent on the current time value of the field device, and checks the enable code using the derived time value of the field device to determine whether the enable code is generated by the service unit, and the field device determines the function to be performed from the enable code; and an execution step, wherein the field device executes an executable code corresponding to the function to be performed in the event that the enable code received by the field device is verified as being generated by the service unit.
2. The method according to claim 1, wherein a plurality of selection lists of executable functions of a plurality of field devices are stored on the service unit; wherein, in the selection step, the process control system requests from the service unit the selection list of executable functions of the field device with the identifier SN; wherein the service unit makes the requested selection list of executable functions of the field device with the identifier SN available to the process control system; and wherein the function to be performed on the field device is selected in the process control system from the selection list of executable functions.
3. The method according to claim 1, wherein the selection list of executable functions of the field device with the identifier SN is stored in the field device together with a corresponding description of each individual executable function, wherein the selection list of executable functions of the field device is stored in the service unit; wherein the request step, the service unit compiles the enable code from the current derived time value of the service unit and from information about the selected functions of the field device; wherein the checking step, the field device determines a transmitted derived time value of the service unit from the transmitted enable code and determines the current derived time value of the field device and, if the transmitted derived time value of the service unit matches the current derived time value of the field device, verifies the transmitted enable code as having been generated by the service unit; and wherein in the execution step, the field device executes the corresponding executable code of the function to be executed in accordance with the description stored in the field device for the transmitted function to be executed.
4. The method according to claim 3, wherein the current derived time value on the service unit and the current derived time value on the field device are determined in additional dependence on field device-specific information for the function to be performed; and wherein the selection list of executable functions of the field device with the identifier SN includes the field device-specific information for the executable functions or the field device-specific information for the executable functions is determined in each case from the description of the executable functions and the field device identifier SN of the field device.
5. The method according to claim 3, wherein the executable code of the function to be performed is itself stored as a description of the function to be performed in the field device; or wherein the executable code of the function to be performed is generated from the description of the function to be performed in the field device, and the description comprises at least one of the following: type of function, time period of executability of the function, prevalence of executability of the function, frequency of executability of the function, resolution of the output value of the function.
6. The method according to claim 1, wherein, in the request step, the service unit determines the executable code corresponding to the function to be performed from the information about the function to be performed, the service unit determines a hash value from the executable code, and the service unit determines the enable code from the executable code and the hash value from the executable code, wherein at least the hash value or the executable code is encrypted by the service unit with the current derived time value of the service unit as symmetric key.
7. The method according to claim 6, wherein the current derived time value on the service unit and the current derived time value on the field device are determined in additional dependence on the field device identifier SN of the field device.
8. The method according to claim 6, wherein the enable code on the service unit is composed of the executable code and of the hash value encrypted with the current derived time value of the service unit as a symmetric key.
9. The method according to claim 8, wherein, in the checking step, the field device decrypts the encrypted part of the received enable code using the current derived time value of the field device as the corresponding symmetric key; and wherein the field device compares the hash value obtained from the decryption and determined on the service unit with a hash value determined by the field device from the executable code received with the enable code and, if the hash values match, the field device verifies the transmitted enable code as being generated by the service unit and executes the received executable code in the execution step.
10. The method according to claim 6, wherein the enable code on the service unit is compiled from the value pair encrypted with the current derived time value of the service unit as a symmetric key from the executable code and the hash value from the executable code.
11. The method according to claim 10, wherein, in the checking step, the field device decrypts the received enable code using the current derived time value of the field device as the corresponding symmetric key; that wherein the field device compares the hash value obtained from the decryption and determined on the service unit with a hash value determined by the field device from the executable code received with the enable code and, if the hash values match, the field device verifies the transmitted enable code as being generated by the service unit and executes the received executable code in the execution step.
12. The method according to claim 1, wherein the derived time value dependent on the current time value of the service unit is calculated by the service unit and the derived time value dependent on the current time value of the field device is calculated by the field device, both with a cryptographic hash function using a secret key agreed upon between the field device and the service unit.
13. The method according to claim 1, wherein in the event that, in the checking step, a generation of the transmitted enable code by the field device using the current derived time value of the field device cannot be verified by the service unit, the field device uses at least one preceding time value and the preceding time value derived therefrom for verification and/or the field device uses at least one future time value and the future time value derived therefrom for verification of the generation of the transmitted enable code by the service unit, and if verification of the generation of the transmitted enable code by the service unit with a past or future derived time value is successful, the verification is evaluated as valid.
14. The method according to claim 13, wherein the time deviation between the current derived time value and the past or future derived time value leading to successful verification is used to correct the time-counting device of the field device for the purpose of synchronization with the time-counting device of the service unit.
15. The method according to claim 1, wherein the process control system informs the service unit in the selection step not only of the selected function but also of a future validity time, in that the service unit calculates a future current time value from the current time value of its time-counting device and the time difference to the future validity time, and uses this future current time value for determining the enable code as the current time value.
16. The method according to claim 1, wherein the payment service is implemented on the process control system or on the service unit or as a separate instance that communicates with the process control system and/or with the service unit.
17. A field device with a computing unit for executing a function of the field device to be performed, with a communication interface for exchanging data with a process control system, wherein the field device has at least one time-counting device which provides a time value of the field device; and wherein the computing unit is programmed such that the field device can execute a method relating to the field device having the following steps: a forwarding step, wherein the field device receives an enable code from the process control system, the enable code which is dependent on the function to be performed; a checking step, wherein the field device determines a derived time value of the field device which is dependent on a current time value of the field device, and checks the enable code using the derived time value of the field device to determine whether the enable code is generated by a service unit, and the field device determines the function to be performed from the enable code; and an execution step, wherein the field device executes an executable code corresponding to the function to be performed in the event that the enable code received by the field device is verified as being generated by the service unit.
18. A service unit with a computing unit and with a time-counting device, wherein the time-counting device provides a time value of the service unit; and wherein the computing unit is programmed such that the service unit can execute a method having the following steps: a payment step, wherein payment of a payment amount specified for the function to be performed is confirmed by the payment service to the service unit by transmission of confirmation information; a request step, wherein the service unit determines a derived time value of the service unit, which is dependent on the current time value of the service unit, and an enable code, which is dependent on the function to be performed, and transmits the enable code to the process control system.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0041] In detail, there is now a plurality of possibilities for designing and further developing the method according to the invention, the field device according to the invention and the system according to the invention. For this, reference is made to the following description of embodiments in conjunction with the drawings.
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
DETAILED DESCRIPTION
[0048] In each of
[0049] The method for the payment-based execution of a function FLi of the field device F to be performed, illustrated below in particular with reference to
[0050] For this, the process control system PCS is connected to a service unit S via a second communication channel 5. The service unit S is a database system of the supplier of the field device F. The service unit S also has a computing unit 6 that is programmed accordingly to implement the functionality described below. The second communication channel 5 is internet-based. The field device F and the service unit S each have a time counting device 7, 8, wherein the time counting devices 7, 8 are synchronized with each other and each provide a time value CLF of the field device F and a time value CLS of the service unit S.
[0051] The basic principle of all the methods 1 illustrated in
[0052] In a selection step 9, the process control system PCS selects the function FLi(SN) to be executed on the field device F from a selection list of executable functions FL(SN) of the field device F available to the process control system PCS. The process control system PCS then communicates the selected function FLi(SN) to the service unit S. The selection of the function FL(SN) to be performed is made according to the needs of the operator of the system to which the field device F belongs. For this reason, it makes sense that the selection step 9 is applicably localized in the process control system PCS.
[0053] In a payment step 10, a payment amount predetermined for the function FLi(SN) to be performed is paid by a payment service PAY, and the payment of the payment amount is confirmed by the payment service PAY to the service unit S by transmitting confirmation information PAID(FLi(SN)). In
[0054] In a request step 11, the service unit S determines a derived time value CLS′ of the service unit S dependent on the current time value CLS of the service unit S and an enable code FC dependent on the function FLi(SN) to be performed. The service unit S transmits the enable code FC to the process control system PCS.
[0055] In a forwarding step 12, the process control system PCS then forwards the enable code FC to the field device F.
[0056] In a checking step 13, the field device F determines a derived time value CLF′ of the field device F that depends on the current time value CLF of the field device F, and the field device F checks the enable code FC using the derived time value CLF′ of the field device F to determine whether the enable code FC is generated by the service unit S (this is indicated in FIG. 2 by the pseudo code “Orig(FC, CLF′)?=S”). Furthermore, the field device F determines the function FLi(SN) to be performed from the enable code FC.
[0057] In an execution step 14, in case the enable code FC received by the field device F is verified as generated by the service unit S, the field device F executes an executable code FLi(SN)CD corresponding to the function FLi(SN) to be performed (this is indicated in
[0058] The advantage of the method described here with reference to
[0059] The method according to
[0060]
[0061] In the request step 11, the service unit S compiles the enable code FC=[FLi(SN); CLS′] from the current derived time value CLS′ of the service unit S and from information about the selected functions FLi(SN) of the field device F. In the checking step 13, the field device F determines a transmitted derived time value CLS′ of the service unit S and the current derived time value CLF′ of the field device F from the transmitted enable code FC. If the transmitted derived time value CLS′ of the service unit S matches the current derived time value CLF′ of the field device F, the transmitted enable code FC is verified as having been generated by the service unit S.
[0062] In execution step 14, the field device F executes the corresponding executable code FLi(SN)CD of the function FLi(SN) to be executed according to the description stored in the field device F for the transmitted function FLi(SN) to be executed.
[0063] The list of functions FL(SN) executable on the field device F stored in the field device F indicates two different possibilities for implementing the descriptions of the corresponding functions. One variation is characterized in that the executable code FL1(SN)CD, FLi(SN)CD of the function FL1(SN), FLi(SN) to be performed, itself is stored in the field device F as a description of the function FLi(SN) to be performed. In the other variation, the executable code FLi(SN)CD of the function FLi(SN) to be performed is generated from the description p1, p2, p3 of the function FLi(SN) to be performed in the field device F. In this case, the description p1, p2, p3 includes at least one of the following: type of function, time period of executability of the function, prevalence of executability of the function, frequency of executability of the function, resolution of the output value of the function. It is considered advantageous in this variation of the method 1 that the enable code transmits the selected function FLi to be performed without encryption, so that the process control system PCS has a possibility to check whether the selected function FLi(SN) to be performed transmitted to the field device corresponds to the function actually selected beforehand.
[0064] The embodiment of the method 1 according to
[0065] The methods 1 illustrated in
[0066] In addition, it is implemented in the presented methods that the current derived time value CLS′ on the service unit S and the current derived time value CLF′ on the field device F are determined in additional dependence on a unique identifier of the field device F, wherein here the field device identifier SN of the field device F is used as unique identifier of the field device F.
[0067] It is also conceivable to use the unique identifier of the field device F as the symmetric key instead of the derived time value CLS′ of the service unit S, since this is present both in the service unit S and in the field device F. However, the method would then be vulnerable to replay attacks by the process control system PCS.
[0068] The embodiment of method 1 shown in
FC=[FLi(SN)CD;EC.sub.CLS′(Hash.sub.S(FLi(SN)CD))].
[0069] This variation of the method 1 also has the advantage that the enable code contains an unencrypted reference to the function FLi(SN) to be performed, in this case in the form of the corresponding executable code. In any case, the process control system also has the possibility, in this case, to check the enable code FC transmitted to the field device F to see whether it contains the function FLi(SN) actually selected.
[0070] In the checking step 13, the field device F decrypts the encrypted part EC.sub.CLS′(Hash.sub.S(FLi(SN)CD)) of the received enable code FC with the current derived time value CLF′ of the field device F as the corresponding symmetric key DC.sub.CLF′(EC.sub.CLS′). The field device F then compares the hash value Hash.sub.S(FLi(SN)CD) obtained from the decryption and determined on the service unit S with a hash value Hash.sub.F(FLi(SN)CD) determined by the field device F from the executable code FLi(SN)CD received with the enable code FC. If the hash values Hash.sub.S, Hash.sub.F match, the field device F verifies the transmitted enable code FC as having been generated by the service unit S. In this case, the field device F executes the received executable code FLi(SN)CD from (do(FLi(SN)CD)) in the execution step 14.
[0071] The variation of the method 1 shown in
FC=EC.sub.CLS′[FLi(SN)CD,Hash.sub.S(FLi(SN)CD)].
[0072] In the checking step 13, the field device F decrypts the received enable code FC using the current derived time value CLF′ of the field device F as the corresponding symmetric key DCCLF′(FC). The field device F compares the hash value Hash.sub.S(FLi(SN)CD) obtained from the decryption and determined on the service unit S with a hash value Hash.sub.F(FLi(SN)CD) determined by the field device F from the executable code FLi(SN)CD received with the enable code (FC). If the hash values Hash.sub.S, Hash.sub.F match, the field device F verifies the transmitted enable code FC as having been generated by the service unit S. In this case, the field device F in turn executes the received executable code FLi(SN)CD in the execution step 14.
[0073] In the embodiments of the method 1 shown in
[0074] In the embodiments shown in
[0075] This procedure also offers the advantage that the time deviation between the current derived time value CLF′ and the past or future derived time value CLF′ leading to successful verification is used to correct the time counting device 7 of the field device F for synchronization with the time counting device 8 of the service unit S.