WO2014195200A1 - Licensing real time software - Google Patents

Licensing real time software Download PDF

Info

Publication number
WO2014195200A1
WO2014195200A1 PCT/EP2014/061037 EP2014061037W WO2014195200A1 WO 2014195200 A1 WO2014195200 A1 WO 2014195200A1 EP 2014061037 W EP2014061037 W EP 2014061037W WO 2014195200 A1 WO2014195200 A1 WO 2014195200A1
Authority
WO
WIPO (PCT)
Prior art keywords
real time
license
component
decrypted
media
Prior art date
Application number
PCT/EP2014/061037
Other languages
French (fr)
Inventor
Luqman MUNAWAR
Simon Douglas Round
Original Assignee
Abb Technology Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Abb Technology Ag filed Critical Abb Technology Ag
Publication of WO2014195200A1 publication Critical patent/WO2014195200A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Definitions

  • the present invention relates to licensing methods for components of real time systems to enable as well as to disable these components for use and real time systems for employing such methods.
  • devices are managed through licenses, i.e. the hardware resources and components may be enabled as well as to disabled for use
  • the licenses are typically encrypted to provide efficient protection of
  • Such a real time system is for example a controller for
  • a power converter drives for example an electrical machine in motor or generator mode.
  • machine may thus be a motor of a locomotive or of any other
  • the present invention provides a licensing method for at least one component of a real time system to enable as well as to disable this component for use, comprising the steps of running the real time system, providing an encrypted license storage for storing at least one encrypted license for enabling at least one component of the real time system, providing a real time license media for storing at least one decrypted real time license of the at least one component of the real time system, decrypting the at least one encrypted license in the license storage to generate at least one decrypted real time license, providing the at least one decrypted real time license to the real time license media, and activating the at least one component of the real time system upon successful verification of the at least one decrypted real time license in the real time license media.
  • the present invention also provides a real time system comprising at least one component to be enabled as well as to disabled by a license, whereby the real time system is adapted to perform the above method.
  • the present invention further provides a method for providing a
  • the basic idea of the invention is to provide the encrypted license storage for storing at least one encrypted license and the real time license media for storing at least one decrypted real time license separately. Accordingly, the handling of the license is separated into two steps.
  • the first step comprises the handling of the encrypted license including decryption. This step is performed independently from the verification of the license, so that it can be executed e.g. as a background task which can be run if computational power is available. Computational power might be available if the computation power is not needed by the real time system for time critical operations.
  • the handling of the encrypted license can even be performed separate from the real time system, so that no resources of the real time system are required for the handling of the at least one encrypted license in the encrypted license storage and for generation of the decrypted real time license.
  • the second step refers to the mere verification of the availability of a valid license, which is done using the real time license media. Verification of the decrypted real time license requires only few resources, since time consuming operations are performed separately in the encrypted license storage. Accordingly, the component can be easily enabled for using merely the decrypted real time license from the real time license media.
  • the decryption of the encrypted license can be done at any time.
  • the provisioning of the decrypted real time license to the real time license media can be done at any time. If the decrypted real time license is not yet available when the component is started, enabling the component at that time will fail, but can be performed again at a later time.
  • the real time system may comprise any kind of data processing device.
  • the real time system may be a real time control system, i.e. for control of power electronics converters.
  • a typical use case for such a real time control system is the control of a motor of a locomotive.
  • the component may be any component in hardware and/or software, which can be enabled for use, either individually or in combination with another component.
  • the encrypted license storage may be any kind of storage suitable for storing the encrypted licenses.
  • the encrypted license storage may be part of the real time system, or part of a separate device. Handling of the encrypted licenses in the encrypted license storage can be done by the real time system, or by any other data processing device.
  • the encrypted license storage may comprise multiple individual storages, which together form the encrypted license storage.
  • the real time license media may comprise any kind of physical media.
  • the real time license media may be a part of the real time system of it may be located separately, i.e. the real time license media can be part of the real time system or of a separate device.
  • the real time license media may comprise a storage area in a memory of the real time system, which may be a RAM of the real time system.
  • the real time license media may be stored in non-volatile memory or based on a hardware combination of I/O lines.
  • the real time license media can be logically generated at run-time or be delivered with the real time system.
  • the license i.e. the encrypted license in the license storage as well as the decrypted real time license, may be an individual license for a single component, or a license for multiple components, which may be different kinds of components or identical components.
  • the multiple components can be components of a single real time system or of different real time systems.
  • the programming tool may enable the use of methods like drag & drop to add the graphical functional block to the model of the component.
  • the graphical functional block is also referred to as feature control block (FCB).
  • FCB feature control block
  • the feature control block is preferably inserted into the overall control model of the real time system or a subsystem thereof before the component for which licensing is required can be activated.
  • the user cannot disable the license checking functionality from the graphical model, i.e. from the FCB.
  • the behavior of the component can be easily checked, e.g. in a debugging and/or development phase, without the need for the license.
  • licensing can be easily enabled for real time systems.
  • non-graphical information can be used inside the model, e.g. menus, pop-ups, a text file during build or equipping the source code directly with license checks.
  • the component may transmit licensing information to the real time license media, so that the license subset can be generated individually for each component.
  • the required license for this component can be easily handled in the encrypted license storage as well as in the real time license media.
  • the license can be associated to an identifier, which enables quick and easy access to the license.
  • the component performs a registration procedure, so that the at least one license subset is generated with void contents.
  • the step of requesting an initial decrypted real time license preferably comprises requesting the decrypted real time license from the encrypted license storage, so that the decrypted real time license can be stored in the real time license media.
  • the license subset preferably contains a void license, which may be a dummy license or simply an empty data field. Further preferred, the license subset is generated by the FCB.
  • the modification of the updating time period is suitable in a real time system, where interference with the real time system, i.e. with a control task executed on the real time system, has to be avoided.
  • the updating time period is modified depending on available resources of the real time system.
  • the step of activating the at least one component of the real time system upon successful verification of its decrypted real time license in the real time license media comprises updating the decrypted real time license in the real time license media from the encrypted license storage upon detection of an updating event.
  • An event-driven updating mechanism is beneficial in a real time system, since no resources have to be permanently allocated.
  • the event may be any kind of event suitable for updating the decrypted real time license in the real time license media.
  • the event is an update event indicating that an update of information in the real time license media is available.
  • the event is any kind of system event of the real time system.
  • the event is an event indicating activation of a component.
  • the step of providing the at least one decrypted real time license to the real time license media comprises providing a meta-information derived from the decrypted real time license, and the step of activating the at least one component of the real time system upon successful verification of its decrypted real time license in the real time license media comprises activating the at least one component of the real time system upon successful verification of the meta-information.
  • the meta-information further facilitates the handling of licenses, since the amount of information stored in the real time license media can be small.
  • the check of the decrypted real time license can be reduced to comparison of a single piece of information, e.g. a single bit.
  • the meta-information is either true or false depending on the availability of the encrypted license. This causes the component to either run or not upon activation.
  • decrypting the at least one encrypted license in the license storage to generate the at least one decrypted real time license comprises decrypting the at least one encrypted license in a background task. This facilitates operation of the real time system, since normal operation of the real time system can continue without restrictions. Decryption of the encrypted license is not time critical.
  • the step of providing the at least one decrypted real time license to the real time license media comprises providing the at least one decrypted real time license to a lookup table
  • the step of activating the at least one component of the real time system upon successful verification of the at least one decrypted real time license in the real time license media comprises activating the at least one component of the real time system upon successful look-up of the at least one decrypted real time license in the real time license media.
  • the look-up table is a simple and efficient means for providing the decrypted real time license.
  • a concurrent look-up of the decrypted real time license in the real time license media can be performed.
  • the functional block comprises instructions for generating a license subset in the real time license media. Accordingly, the FCB already contains all functionality for initializing the real time license media independent from its hardware.
  • FIG. 2 shows a schematic diagram of graphical licensing system in accordance with the first embodiment during an initialization phase
  • FIG. 3 shows a schematic diagram of graphical licensing system in accordance with the first embodiment during a run time phase
  • Fig. 4 shows a schematic diagram of an arrangement comprising a real time system with multiple components and a license table together with a separate license storage according to a second embodiment
  • FIG. 5 shows a schematic diagram of an arrangement comprising two real time systems with multiple components and a license table each together with a separate license storage according to a third embodiment.
  • Fig. 1 shows a real time system 10 according to a first embodiment.
  • the real time system 10 in this embodiment is a data processing device for real time control, e.g. for control of power electronics converters.
  • a converter can be used in a locomotive, in a converter substation or in industrial applications driving an electric machine or being driven by an electric machine.
  • the real time system 10 further comprises a real time license media 14, which is a look-up table in this embodiment.
  • the real time license media 14 comprises a RAM as physical media, where decrypted real time licenses are stored.
  • the real time license media 14 is physically provided in a memory of the real time system 10, i.e. as part of the real time system 10.
  • the RAM in this embodiment is part of the main memory of the real time system 10.
  • the real time system 10 also comprises an encrypted license storage 16 for storing encrypted licenses.
  • the encrypted license storage 16 in this embodiment is part of the real time system 10. Accordingly, handling of the encrypted licenses in the encrypted license storage 16 is done by the real time system 10.
  • the encrypted license storage 16 is physically provided in the memory of the real time system 10.
  • the RAM in this embodiment is part of the main memory of the real time system 10.
  • the encrypted license storage 16 in this embodiment comprises multiple individual storages 18, which together form the encrypted license storage 16. Licenses stored in the encrypted license storage 16 are either individual licenses for enabling a single component 12, or licenses for enabling multiple components 12 of the real time system 10 at the same time. [0041] Below is described a licensing method for enabling as well as disabling the components 12 of the real time system 10.
  • an initialization phase is performed. During this initialization phase the real time license media 14 is initialized. Furthermore, a license subset is generated in the real time license media 14 for each component 12 with void content.
  • a component 12 sends a respective register message to the real time license media 14 containing a license identification, which is indicated by a vector (x1 , y1 , z1 ) in Fig. 1. This causes the generation of the license subset, which is provided with a license identifier denoted L3 in this example.
  • a check license message is sent from the real time license media 14 to the encrypted license storage 16.
  • the check license message contains also the vector (x1 , y1 , z1 ) as license identification.
  • the encrypted license is decrypted in the encrypted license storage 16, and meta-information derived from the decrypted real time license is generated in the encrypted license storage 16.
  • the decryption is performed in a background task of the real time system 10.
  • the meta-information in this embodiment contains a Boolean type flag indicating "yes” or "no", depending on whether the license identified by the vector (x1 , y1 , z1) indicating the license
  • This meta-information for the license L3 is provided from the encrypted license storage 16 to the real time license media 14 and stored there together with license identifier L3 in the license subset. In case no license is available for a component 12 for which a license subset has been generated, the license subset contains a void license.
  • a request of the license for each component 12 is subsequently performed by sending a license request for using the respective license identifier, which is indicated by way of example with the message "L3 ?", to the real time license media 14.
  • a look-up of the meta-information, which is "no" for indicating that the license L3 is not valid, is performed in the real time license media 14. Accordingly, the respective component 12 is not executed.
  • the meta-information in the real time license media 14 is "yes", which is returned to the component 12, so that the component 12 can be executed based on a valid license. Accordingly, a successful verification of the decrypted real time license in the real time license media 14 is performed.
  • the real time license media 14 is regularly updated as described below and provides the meta-information of respective license identifiers L1 , L2, LN upon request, as already described above.
  • an update is performed after lapse of an updating time period.
  • the updating time period is continuously modified depending on available resources of the real time system 10. Additional updates of the real time license media 14 are performed upon detection of an updating event.
  • the event in this embodiment is an update event indicating that an update of information in the real time license media 14 is available.
  • the update comprises updating all decrypted run time licenses, i.e. adding decrypted run time licenses for newly available encrypted licenses in the license storage 16 and removing decrypted run time licenses for encrypted licenses removed from the encrypted license storage 16 or invalidated.
  • the meta-information is generated and transferred to the real time license media 14 as already described in detail above.
  • the meta-information for this license identifier L1 is changed to "no", when the update is performed, so that the component 12 is not further usable.
  • the above method is based on a method for providing the component 12 with enabled licensing functionality.
  • FIGS 2 and 3 show a graphical licensing system 20 according to the first embodiment.
  • the graphical licensing system 20 provides a model 22 of the real time system 10 comprising the component 12, for which licensing functionality is to be enabled.
  • a graphical functional block 24 which is denoted feature control block (FCB) in this embodiment, is connected to the component 12 in the model 22.
  • FCB feature control block
  • the graphical functional block 24 is added using a programming tool for graphically programmed functions, where drag & drop is used to add the graphical functional block 24 to the model 22.
  • the graphical functional block 24 is preferably inserted into the model 22 before the component 12 for which licensing is required can be activated.
  • the component 12 When the real time system 10 is generated, e.g. by performing a compiling and a building step, the component 12 is automatically provided with enabled licensing functionality due to the added graphical functional block 24.
  • the graphical functional block 24 comprises instructions for verification a decrypted real time license of the component 12 and for providing a verification result to the component 12, as already described in detail above.
  • an activation block for activation of the component 12 based on the verification result is automatically added to the component 12.
  • An interface 32 is provided between the graphical functional block 24 and the real time license media 14.
  • the graphical functional block 24 comprises instructions for
  • the license subset comprises the license identifier L1 , L2, ... LN, which are associated to the respective license, as already described above.
  • the initialization as described above is shown for the graphical functional block 24 in Fig. 2. This comprises sending a register message from the graphical functional block 24 containing the license identification (x1 , y1 , z1 ) and receiving the respective meta-information for the license identified by the license identification (x1 , y1 ,z1 ). Accordingly, the license subset is generated upon request by the FCB.
  • This meta-information is forwarded to the component 12, which is enabled for used or disabled depending on the meta-information.
  • a license check is performed by merely using the license identifier L1 , L2, ... LN.
  • the received meta- information is provided to the respective component 12, which is activated or deactivated depending on the meta-information as described above.
  • Fig. 4 shows an arrangement 30 comprising a real time system 10 with multiple components 12 and a real time license media 14 together with a separate encrypted license storage 16 according to a second
  • FIG. 5 shows an arrangement 30 comprising two real time systems 10 together with a separate encrypted license storage 16 according to a third embodiment.
  • Each real time system 10 comprises one or multiple components 12 and a real time license media 14. Accordingly, encrypted licenses from the encrypted license storage 16 are used in both real time systems 10 for enabling as well as disabling components 12 thereof.

Abstract

The present invention provides a licensing method for at least one component of a real time system (10) to enable/disable this component for use, comprising the steps of running the real time system (10), providing an encrypted license storage (16) for storing at least one encrypted license for enabling at least one component (12) of the real time system (10), providing a real time license media (14) for storing at least one decrypted real time license of the at least one component (12) of the real time system (10), decrypting the at least one encrypted license in the license storage (16) to generate at least one decrypted real time license, providing the at least one decrypted real time license to the real time license media (14), and activating the at least one component (12) of the real time system (10) upon successful verification of the at least one decrypted real time license in the real time license media (14). The present invention also provides a real time system (10) comprising at least on component (12) to be enabled/disabled by a license, whereby the real time system (10) is adapted to perform the above method. Still further, the invention provides a method for providing a component (12) of a real time system (10) with enabled licensing functionality.

Description

Description
LICENSING REAL TIME SOFTWARE
Technical Field
[0001] The present invention relates to licensing methods for components of real time systems to enable as well as to disable these components for use and real time systems for employing such methods.
Background Art
[0002] Licensing of components on data processing devices is nowadays
very common. This includes methods for configuring software over the internet or in a network, and allowing the functionality of the
software to be enabled or disabled. In addition to a general license, extended classes of features and functionalities can be enabled through a license. The same principles refer to licensing of hardware, where hardware resources and components in data processing
devices are managed through licenses, i.e. the hardware resources and components may be enabled as well as to disabled for use
depending on a valid license.
[0003] The licenses are typically encrypted to provide efficient protection of
the component against illegal use. Accordingly, verification of a
license is time consuming and requires additional computational power depending on the protection of the license. This may cause problems in real time systems, which are e.g. used in the area of control. Such a real time system is for example a controller for
controlling a power converter, where control cycles in the range of microseconds are required. A power converter drives for example an electrical machine in motor or generator mode. The electrical
machine may thus be a motor of a locomotive or of any other
application in which electrical machines are used for driving
mechanical loads as well as in power generation. Hence, available computational power is limited due to the real time operation, and handling of the licenses cannot be properly executed with available resources. Furthermore, in embedded systems, system design
generally provides only minimum spare computational power in order to keep the system small and cheap.
Disclosure of Invention
[0004] It is an object of the present invention to provide a licensing method
for at least one component of a real time system to enable as well as to disable this component for use within a real-time system and a real time system for performing the licensing method without interfering with the real-time behavior of the real time system in a simple and reliable way. It is a further object to provide the licensing method for at least one component of a real time system to enable as well as to disable this component for use within a real-time system and the real time system for performing the licensing method during operation in a simple and reliable way. It is a still further object of the present
invention to implement licensing of components of a real time system in a simple and efficient way.
[0005] These objects are achieved by the independent claims. Advantageous embodiments are given in the dependent claims.
[0006] In particular, the present invention provides a licensing method for at least one component of a real time system to enable as well as to disable this component for use, comprising the steps of running the real time system, providing an encrypted license storage for storing at least one encrypted license for enabling at least one component of the real time system, providing a real time license media for storing at least one decrypted real time license of the at least one component of the real time system, decrypting the at least one encrypted license in the license storage to generate at least one decrypted real time license, providing the at least one decrypted real time license to the real time license media, and activating the at least one component of the real time system upon successful verification of the at least one decrypted real time license in the real time license media.
[0007] The present invention also provides a real time system comprising at least one component to be enabled as well as to disabled by a license, whereby the real time system is adapted to perform the above method.
[0008] The present invention further provides a method for providing a
component of a real time system with enabled licensing functionality, comprising the steps of adding a graphical functional block to a model of the component in the real time system, connecting the graphical functional block to the component, and generating the real time system including the graphical functional block, wherein the graphical functional block comprises instructions for verification of at least one decrypted real time license of the component in a real time license media of the real time system, and for providing a verification result to the component, and the step of connecting the graphical functional block to the component comprises adding an activation block for activation based on the
verification result to the component.
[0009] The basic idea of the invention is to provide the encrypted license storage for storing at least one encrypted license and the real time license media for storing at least one decrypted real time license separately. Accordingly, the handling of the license is separated into two steps. The first step comprises the handling of the encrypted license including decryption. This step is performed independently from the verification of the license, so that it can be executed e.g. as a background task which can be run if computational power is available. Computational power might be available if the computation power is not needed by the real time system for time critical operations. The handling of the encrypted license can even be performed separate from the real time system, so that no resources of the real time system are required for the handling of the at least one encrypted license in the encrypted license storage and for generation of the decrypted real time license. The second step refers to the mere verification of the availability of a valid license, which is done using the real time license media. Verification of the decrypted real time license requires only few resources, since time consuming operations are performed separately in the encrypted license storage. Accordingly, the component can be easily enabled for using merely the decrypted real time license from the real time license media.
[0010] It is apparent that the different method steps can be performed in different orders. As already stated above, the decryption of the encrypted license can be done at any time. Also the provisioning of the decrypted real time license to the real time license media can be done at any time. If the decrypted real time license is not yet available when the component is started, enabling the component at that time will fail, but can be performed again at a later time.
[001 1] The real time system may comprise any kind of data processing device. In particular, the real time system may be a real time control system, i.e. for control of power electronics converters. A typical use case for such a real time control system is the control of a motor of a locomotive.
[0012] The component may be any component in hardware and/or software, which can be enabled for use, either individually or in combination with another component.
[0013] The encrypted license storage may be any kind of storage suitable for storing the encrypted licenses. The encrypted license storage may be part of the real time system, or part of a separate device. Handling of the encrypted licenses in the encrypted license storage can be done by the real time system, or by any other data processing device. The encrypted license storage may comprise multiple individual storages, which together form the encrypted license storage.
[0014] The real time license media may comprise any kind of physical media. The real time license media may be a part of the real time system of it may be located separately, i.e. the real time license media can be part of the real time system or of a separate device. The real time license media may comprise a storage area in a memory of the real time system, which may be a RAM of the real time system. Alternatively, the real time license media may be stored in non-volatile memory or based on a hardware combination of I/O lines. The real time license media can be logically generated at run-time or be delivered with the real time system.
[0015] The license, i.e. the encrypted license in the license storage as well as the decrypted real time license, may be an individual license for a single component, or a license for multiple components, which may be different kinds of components or identical components. The multiple components can be components of a single real time system or of different real time systems.
[0016] The respective method for providing a component enables using a
programming tool for graphically programmed functions. The programming tool may enable the use of methods like drag & drop to add the graphical functional block to the model of the component. The graphical functional block is also referred to as feature control block (FCB). The feature control block is preferably inserted into the overall control model of the real time system or a subsystem thereof before the component for which licensing is required can be activated. Preferably, the user cannot disable the license checking functionality from the graphical model, i.e. from the FCB. By removing the functional block, the behavior of the component can be easily checked, e.g. in a debugging and/or development phase, without the need for the license. With this method, licensing can be easily enabled for real time systems.
[0017] Alternatively, non-graphical information can be used inside the model, e.g. menus, pop-ups, a text file during build or equipping the source code directly with license checks.
[0018] According to a modified embodiment of the invention the method
comprises the additional step of deactivating the at least one component of the real time system upon unsuccessful verification of the at least one decrypted real time license in the real time license media. Components, which are no longer enabled by a valid license, can be deactivated during runtime without the need for restarting the entire real time system or an additional initialization thereof. Licenses, which are e.g. limited in time or number of use, can easily be implemented. Also, licenses can easily be transferred between different real time systems depending on dynamic requirements.
[0019] According to a modified embodiment of the invention the method
comprises the additional steps of generating at least one license subset in the real time license media, and requesting an initial decrypted real time license to be associated to the at least one license subset. These two steps form an initialization phase, where the real time system is setup according to the requirements of the component. The component may transmit licensing information to the real time license media, so that the license subset can be generated individually for each component. When the information is further transmitted to the encrypted license storage, the required license for this component can be easily handled in the encrypted license storage as well as in the real time license media. For example, the license can be associated to an identifier, which enables quick and easy access to the license. Preferably, the component performs a registration procedure, so that the at least one license subset is generated with void contents. The step of requesting an initial decrypted real time license preferably comprises requesting the decrypted real time license from the encrypted license storage, so that the decrypted real time license can be stored in the real time license media. In case no license is available for a component for which a license subset has been generated, the license subset preferably contains a void license, which may be a dummy license or simply an empty data field. Further preferred, the license subset is generated by the FCB.
[0020] According to a modified embodiment of the invention the method
comprises the additional step of updating the decrypted real time license in the real time license media from the encrypted license storage after lapse of an updating time period. Preferably, the update is performed
periodically, further preferred within a periodically repeating update window. The time window enables the periodic update in particular within a real time system, since resources may not be available on a strictly periodic basis. The update reduces the risk of manipulations of the real time license media, since any manipulation of the real time license media is automatically invalidated by the updated information. Further preferred, updating comprises updating all decrypted run time licenses, i.e. adding decrypted run time licenses for newly available encrypted licenses and removing decrypted run time licenses for encrypted licenses removed from the encrypted license storage or simply invalidated. Accordingly, decrypted run time licenses in the real time license media may be automatically removed when the license becomes invalid or is removed.
[0021] According to a modified embodiment of the invention the method
comprises the additional step of modifying the updating time period. The modification of the updating time period is suitable in a real time system, where interference with the real time system, i.e. with a control task executed on the real time system, has to be avoided. Preferably, the updating time period is modified depending on available resources of the real time system.
[0022] According to a modified embodiment of the invention the step of activating the at least one component of the real time system upon successful verification of its decrypted real time license in the real time license media comprises updating the decrypted real time license in the real time license media from the encrypted license storage upon detection of an updating event. An event-driven updating mechanism is beneficial in a real time system, since no resources have to be permanently allocated. The event may be any kind of event suitable for updating the decrypted real time license in the real time license media. Preferably, the event is an update event indicating that an update of information in the real time license media is available. In an alternative embodiment, the event is any kind of system event of the real time system. Further preferred, the event is an event indicating activation of a component.
[0023] According to a modified embodiment of the invention the step of providing the at least one decrypted real time license to the real time license media comprises providing a meta-information derived from the decrypted real time license, and the step of activating the at least one component of the real time system upon successful verification of its decrypted real time license in the real time license media comprises activating the at least one component of the real time system upon successful verification of the meta-information. The meta-information further facilitates the handling of licenses, since the amount of information stored in the real time license media can be small. With a given identification of the license, the check of the decrypted real time license can be reduced to comparison of a single piece of information, e.g. a single bit. Preferably, the meta-information is either true or false depending on the availability of the encrypted license. This causes the component to either run or not upon activation.
[0024] According to a modified embodiment of the invention the step of
decrypting the at least one encrypted license in the license storage to generate the at least one decrypted real time license comprises decrypting the at least one encrypted license in a background task. This facilitates operation of the real time system, since normal operation of the real time system can continue without restrictions. Decryption of the encrypted license is not time critical.
[0025] According to a modified embodiment of the invention the step of providing the at least one decrypted real time license to the real time license media comprises providing the at least one decrypted real time license to a lookup table, and the step of activating the at least one component of the real time system upon successful verification of the at least one decrypted real time license in the real time license media comprises activating the at least one component of the real time system upon successful look-up of the at least one decrypted real time license in the real time license media. The look-up table is a simple and efficient means for providing the decrypted real time license. Preferably, a concurrent look-up of the decrypted real time license in the real time license media can be performed.
[0026] According to a modified embodiment of the invention the graphical
functional block comprises instructions for generating a license subset in the real time license media. Accordingly, the FCB already contains all functionality for initializing the real time license media independent from its hardware.
[0027] According to a modified embodiment of the invention the method
comprises the additional step of including a library containing the graphical function block to the model. With the use of the library, functionality for license handling can easily be added with only small effort.
[0028] According to a modified embodiment of the invention the method
comprises the additional step of providing an interface for connecting the graphical functional block to a real time license media located in a subsystem of the real time system. Hence, the physical and logical location of the functional block and the real time license media can be freely chosen. Access to the real time license media can be easily implemented using the interface.
Brief Description of Drawings
[0029] These and other aspects of the invention will be apparent from and
elucidated with reference to the embodiments described hereinafter.
[0030] In the drawings:
[0031] Fig. 1 shows a schematic diagram of a real time system comprising multiple components, a license table, and a license storage according to a first embodiment,
[0032] Fig. 2 shows a schematic diagram of graphical licensing system in accordance with the first embodiment during an initialization phase,
[0033] Fig. 3 shows a schematic diagram of graphical licensing system in accordance with the first embodiment during a run time phase,
[0034] Fig. 4 shows a schematic diagram of an arrangement comprising a real time system with multiple components and a license table together with a separate license storage according to a second embodiment, and
[0035] Fig. 5 shows a schematic diagram of an arrangement comprising two real time systems with multiple components and a license table each together with a separate license storage according to a third embodiment. Detailed Description of the Invention
[0036] Fig. 1 shows a real time system 10 according to a first embodiment. The real time system 10 in this embodiment is a data processing device for real time control, e.g. for control of power electronics converters. Such a converter can be used in a locomotive, in a converter substation or in industrial applications driving an electric machine or being driven by an electric machine.
[0037] The real time system 10 comprises a licensing system 1 1 with multiple components 12 corresponding to subsystems of the real time system 10. The components 12 are different hardware and software components, which can be individually enabled for use.
[0038] The real time system 10 further comprises a real time license media 14, which is a look-up table in this embodiment. The real time license media 14 comprises a RAM as physical media, where decrypted real time licenses are stored. The real time license media 14 is physically provided in a memory of the real time system 10, i.e. as part of the real time system 10. The RAM in this embodiment is part of the main memory of the real time system 10.
[0039] The real time system 10 also comprises an encrypted license storage 16 for storing encrypted licenses. The encrypted license storage 16 in this embodiment is part of the real time system 10. Accordingly, handling of the encrypted licenses in the encrypted license storage 16 is done by the real time system 10. The encrypted license storage 16 is physically provided in the memory of the real time system 10. The RAM in this embodiment is part of the main memory of the real time system 10.
[0040] The encrypted license storage 16 in this embodiment comprises multiple individual storages 18, which together form the encrypted license storage 16. Licenses stored in the encrypted license storage 16 are either individual licenses for enabling a single component 12, or licenses for enabling multiple components 12 of the real time system 10 at the same time. [0041] Below is described a licensing method for enabling as well as disabling the components 12 of the real time system 10.
[0042] During operation of the real time system 10, first an initialization phase is performed. During this initialization phase the real time license media 14 is initialized. Furthermore, a license subset is generated in the real time license media 14 for each component 12 with void content. The
component 12 sends a respective register message to the real time license media 14 containing a license identification, which is indicated by a vector (x1 , y1 , z1 ) in Fig. 1. This causes the generation of the license subset, which is provided with a license identifier denoted L3 in this example.
[0043] Subsequently to the register message to the real time license media 14, a check license message is sent from the real time license media 14 to the encrypted license storage 16. The check license message contains also the vector (x1 , y1 , z1 ) as license identification. The encrypted license is decrypted in the encrypted license storage 16, and meta-information derived from the decrypted real time license is generated in the encrypted license storage 16. The decryption is performed in a background task of the real time system 10. The meta-information in this embodiment contains a Boolean type flag indicating "yes" or "no", depending on whether the license identified by the vector (x1 , y1 , z1) indicating the license
identification is valid or not.
[0044] This meta-information for the license L3 is provided from the encrypted license storage 16 to the real time license media 14 and stored there together with license identifier L3 in the license subset. In case no license is available for a component 12 for which a license subset has been generated, the license subset contains a void license.
[0045] A request of the license for each component 12 is subsequently performed by sending a license request for using the respective license identifier, which is indicated by way of example with the message "L3 ?", to the real time license media 14. A look-up of the meta-information, which is "no" for indicating that the license L3 is not valid, is performed in the real time license media 14. Accordingly, the respective component 12 is not executed.
[0046] In case the license for the component 12 identified by license identifier L1 is requested, the meta-information in the real time license media 14 is "yes", which is returned to the component 12, so that the component 12 can be executed based on a valid license. Accordingly, a successful verification of the decrypted real time license in the real time license media 14 is performed.
[0047] Subsequent to the initialization phase, a normal operation phase is
performed. In this normal operation phase, the real time license media 14 is regularly updated as described below and provides the meta-information of respective license identifiers L1 , L2, LN upon request, as already described above.
[0048] To update the decrypted real time licenses in the real time license media 14, an update is performed after lapse of an updating time period. In this embodiment, the updating time period is continuously modified depending on available resources of the real time system 10. Additional updates of the real time license media 14 are performed upon detection of an updating event. The event in this embodiment is an update event indicating that an update of information in the real time license media 14 is available.
[0049] The update comprises updating all decrypted run time licenses, i.e. adding decrypted run time licenses for newly available encrypted licenses in the license storage 16 and removing decrypted run time licenses for encrypted licenses removed from the encrypted license storage 16 or invalidated. For each decrypted real time license, the meta-information is generated and transferred to the real time license media 14 as already described in detail above.
[0050] After changing or invalidating the underlying license in the encrypted
license storage 16, the meta-information for this license identifier L1 is changed to "no", when the update is performed, so that the component 12 is not further usable. [0051] The above method is based on a method for providing the component 12 with enabled licensing functionality.
[0052] Figures 2 and 3 show a graphical licensing system 20 according to the first embodiment. The graphical licensing system 20 provides a model 22 of the real time system 10 comprising the component 12, for which licensing functionality is to be enabled. In the model 22, a graphical functional block 24, which is denoted feature control block (FCB) in this embodiment, is connected to the component 12 in the model 22. The graphical functional block 24 is added using a programming tool for graphically programmed functions, where drag & drop is used to add the graphical functional block 24 to the model 22. The graphical functional block 24 is preferably inserted into the model 22 before the component 12 for which licensing is required can be activated.
[0053] When the real time system 10 is generated, e.g. by performing a compiling and a building step, the component 12 is automatically provided with enabled licensing functionality due to the added graphical functional block 24. The graphical functional block 24 comprises instructions for verification a decrypted real time license of the component 12 and for providing a verification result to the component 12, as already described in detail above. When the graphical functional block 24 is added to the component 12, an activation block for activation of the component 12 based on the verification result is automatically added to the component 12. An interface 32 is provided between the graphical functional block 24 and the real time license media 14.
[0054] In detail, the graphical functional block 24 comprises instructions for
generating the license subset. The license subset comprises the license identifier L1 , L2, ... LN, which are associated to the respective license, as already described above.
[0055] The initialization as described above is shown for the graphical functional block 24 in Fig. 2. This comprises sending a register message from the graphical functional block 24 containing the license identification (x1 , y1 , z1 ) and receiving the respective meta-information for the license identified by the license identification (x1 , y1 ,z1 ). Accordingly, the license subset is generated upon request by the FCB.
[0056] This meta-information is forwarded to the component 12, which is enabled for used or disabled depending on the meta-information.
[0057] In normal operation, which is shown in Fig. 3, a license check is performed by merely using the license identifier L1 , L2, ... LN. The received meta- information is provided to the respective component 12, which is activated or deactivated depending on the meta-information as described above.
[0058] Fig. 4 shows an arrangement 30 comprising a real time system 10 with multiple components 12 and a real time license media 14 together with a separate encrypted license storage 16 according to a second
embodiment. Apart from this separation of the encrypted license storage 16 from the real time system 10, the behavior of the arrangement 30 is as described before in respect to the real time system 10 of the first embodiment.
[0059] Fig. 5 shows an arrangement 30 comprising two real time systems 10 together with a separate encrypted license storage 16 according to a third embodiment. Each real time system 10 comprises one or multiple components 12 and a real time license media 14. Accordingly, encrypted licenses from the encrypted license storage 16 are used in both real time systems 10 for enabling as well as disabling components 12 thereof.
[0060] While the invention has been illustrated and described in detail in the
drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive; the invention is not limited to the disclosed embodiments. Other variations to be disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. Any reference signs in the claims should not be construed as limiting scope. Reference signs list
10 real time systenn
1 1 licensing system
12 component
14 real time license media
16 license storage
18 individual storage
20 graphical licensing system
22 model
24 graphical functional block, feature control block
30 arrangement
32 interface

Claims

Claims
1. Licensing method for at least one component of a real time system (10) to
enable as well as to disable this component for use, comprising the steps of running the real time system (10),
providing an encrypted license storage (16) for storing at least one encrypted license for enabling at least one component (12) of the real time system (10),
providing a real time license media (14) for storing at least one decrypted real time license of the at least one component (12) of the real time system (10),
decrypting the at least one encrypted license in the license storage (16) to generate at least one decrypted real time license,
providing the at least one decrypted real time license to the real time license media (14), and
activating the at least one component (12) of the real time system (10) upon successful verification of the at least one decrypted real time license in the real time license media (14).
2. Licensing method according to preceding claim 1 , comprising the additional step of
deactivating the at least one component (12) of the real time system (10) upon unsuccessful verification of the at least one decrypted real time license in the real time license media (14).
3. Licensing method according to preceding claims 1 or 2, comprising the
additional steps of
generating at least one license subset in the real time license media (14), and
requesting an initial decrypted real time license to be associated to the at least one license subset.
4. Licensing method according to any of preceding claims 1 to 3, comprising the additional step of
updating the decrypted real time license in the real time license media (14) from the encrypted license storage (16) after lapse of an updating time period.
5. Licensing method according to preceding claim 4, comprising the additional step of
modifying the updating time period.
6. Licensing method according to any of preceding claims 1 to 5, wherein
the step of activating the at least one component (12) of the real time system (10) upon successful verification of its decrypted real time license in the real time license media (14) comprises
updating the decrypted real time license in the real time license media (14) from the encrypted license storage (16) upon detection of an updating event.
7. Licensing method according to any of preceding claims 1 to 6, wherein
the step of providing the at least one decrypted real time license to the real time license media (14) comprises providing a meta-information derived from the decrypted real time license, and
the step of activating the at least one component (12) of the real time system (10) upon successful verification of its decrypted real time license in the real time license media (14) comprises activating the at least one component (12) of the real time system (10) upon successful verification of the meta-information.
8. Licensing method according to any of preceding claims 1 to 7, wherein
the step of decrypting the at least one encrypted license in the license storage (16) to generate the at least one decrypted real time license comprises decrypting the at least one encrypted license in a background task.
9. Licensing method according to any of preceding claims 1 to 8, wherein the step of providing the at least one decrypted real time license to the real time license media (14) comprises providing the at least one decrypted real time license to a look-up table, and
the step of activating the at least one component (12) of the real time system (10) upon successful verification of the at least one decrypted real time license in the real time license media (14) comprises activating the at least one component (12) of the real time system (10) upon successful look-up of the at least one decrypted real time license in the real time license media (14).
10. Real time system (10) comprising at least one component (12) to be enabled as well as to be disabled by a license, whereby the real time system (10) is adapted to perform the method according to any of previous method claims 1 to 9.
1 1. Method for providing a component (12) of a real time system (10) with enabled licensing functionality, comprising the steps of
adding a graphical functional block (24) to a model (22) of the component
(12) in the real time system (10),
connecting the graphical functional block (24) to the component (12), and generating the real time system (10) including the graphical functional block
(24),
wherein the graphical functional block (24) comprises instructions for verification of at least one decrypted real time license of the component (12) in a real time license media (14) of the real time system (10), and for providing a verification result to the component (12), and
the step of connecting the graphical functional block (24) to the component (12) comprises adding an activation block for activation based on the verification result to the component (12).
12. Method according to preceding claim 1 1 , wherein
wherein the graphical functional block (24) comprises instructions for generating a license subset in the real time license media (14).
13. Method according to any of preceding claims 1 1 or 12, comprising the additional step of
including a library containing the graphical function block (24) to the model (22).
14. Method according to any of preceding claims 1 1 to 13, comprising the
additional step of
providing an interface (32) for connecting the graphical functional block (24) to a real time license media (14) located in a sub-system of the real time system (10).
PCT/EP2014/061037 2013-06-03 2014-05-28 Licensing real time software WO2014195200A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13170314 2013-06-03
EP13170314.2 2013-06-03

Publications (1)

Publication Number Publication Date
WO2014195200A1 true WO2014195200A1 (en) 2014-12-11

Family

ID=48607061

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2014/061037 WO2014195200A1 (en) 2013-06-03 2014-05-28 Licensing real time software

Country Status (1)

Country Link
WO (1) WO2014195200A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745879A (en) * 1991-05-08 1998-04-28 Digital Equipment Corporation Method and system for managing execution of licensed programs
US5917912A (en) * 1995-02-13 1999-06-29 Intertrust Technologies Corporation System and methods for secure transaction management and electronic rights protection
US20020013772A1 (en) * 1999-03-27 2002-01-31 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out / checking in the digital license to / from the portable device or the like

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745879A (en) * 1991-05-08 1998-04-28 Digital Equipment Corporation Method and system for managing execution of licensed programs
US5917912A (en) * 1995-02-13 1999-06-29 Intertrust Technologies Corporation System and methods for secure transaction management and electronic rights protection
US20020013772A1 (en) * 1999-03-27 2002-01-31 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out / checking in the digital license to / from the portable device or the like

Similar Documents

Publication Publication Date Title
US11568088B2 (en) Method, processor and device for checking the integrity of user data
US10338949B2 (en) Virtual trusted platform module function implementation method and management device
US20150121536A1 (en) Methods and apparatus for protecting software from unauthorized copying
US20160275019A1 (en) Method and apparatus for protecting dynamic libraries
US9594915B2 (en) Information processing apparatus
US10565130B2 (en) Technologies for a memory encryption engine for multiple processor usages
CN103917949A (en) Component update using management engine
CN110785759A (en) Remote authentication for multi-core processors
CN109684030B (en) Virtual machine memory key generation device and method, encryption method and SoC system
WO2008031731A1 (en) System and method for securely restoring a program context from a shared memory
RU2013147876A (en) PROTECTED REPAIR DATA PACKAGE
TWI625672B (en) Updatable integrated-circuit radio
CN108804913B (en) Application program running method and device
US10613993B2 (en) Method for protecting a program code, corresponding system and processor
WO2015114644A1 (en) Persistent pointers for programs running on nvram based computers
US8972745B2 (en) Secure data handling in a computer system
WO2014195200A1 (en) Licensing real time software
US10936211B2 (en) Optimized storage protection
Martorell et al. Partial Updates of AUTOSAR Embedded Applications--To What Extent?
EP3460705A1 (en) Distributed deployment of unique firmware
CN114579145A (en) Software deployment method and device, computer equipment and storage medium
KR101696900B1 (en) Apparatus for encrypting and decrypting execution codes of embedded system and embedded system with information leakage prevention function using thereof
US11418505B2 (en) Information processing apparatus, system and method
US9836295B1 (en) Method and system for secure automated deployment of emulated computer system
WO2013109139A1 (en) System for enabling node-locked application to operate in cloud computing environment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14726620

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14726620

Country of ref document: EP

Kind code of ref document: A1