WO2010009896A1 - Computer system with automatic access regulation of an application and access control to an application and corresponding access regulation and control method - Google Patents

Computer system with automatic access regulation of an application and access control to an application and corresponding access regulation and control method Download PDF

Info

Publication number
WO2010009896A1
WO2010009896A1 PCT/EP2009/005389 EP2009005389W WO2010009896A1 WO 2010009896 A1 WO2010009896 A1 WO 2010009896A1 EP 2009005389 W EP2009005389 W EP 2009005389W WO 2010009896 A1 WO2010009896 A1 WO 2010009896A1
Authority
WO
WIPO (PCT)
Prior art keywords
license
component
user
application
input data
Prior art date
Application number
PCT/EP2009/005389
Other languages
German (de)
French (fr)
Inventor
Mathias Dalheimer
Franz-Josef Pfreundt
Original Assignee
Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V.
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 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V. filed Critical Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V.
Publication of WO2010009896A1 publication Critical patent/WO2010009896A1/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]
    • 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]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering

Definitions

  • the present invention relates to a computer arrangement (hereinafter alternatively referred to as a computer network) with automated access control of and with automated access control to one or more application (s).
  • the present invention also relates to a corresponding access control and access control method.
  • a license of a computer of its own organization (user computer) and / or of a user within its own organization for accessing an application program or an application which is (s) on another computer, in particular on a resource computer, which is provided by another organization within the computer network, is understood. Licenses thus allow access to remotely installed applications.
  • the user uses licenses that are available outside of their own organization, ie the resource provider or a corresponding resource calculator.
  • the user brings own licenses to the resource provider or to the resource calculator.
  • a software or application is provided with a so-called node-lock license, ie the application is bound to a fixed computer and can only be used there.
  • This license form only permits on-site use, ie in
  • a second technical realization of licensing is the so-called floating license:
  • a central server is set up at the licensee and configured with the number of licenses or other specifications.
  • the application e.g., simulation or calculation software
  • queries at this central server whether a free license is currently available. If this is the case, this license can be used for the task currently being processed. If no free license is available, the task will not be processed.
  • a third form of licensing is known as "Named User”: In this case, access to an application is only permitted to certain users, whereby the application is often linked to the local user name.
  • a node-lock license is only available to resource providers who provide a fixed number of licenses for use in the grid.
  • a user can not submit his own license here.
  • the use of a floating license is possible in principle.
  • the license can either be at job start are obtained from a user or resource server license server, but with some limitations:
  • the license server must be reachable from the location of the calculation so that the license can be released when starting the job. Depending on the configuration of the network environment of the resource provider, this is not possible and can not be checked before starting the computing job.
  • the corresponding license server To start the calculation job, the corresponding license server must actually hold a license. If a job does not find a license, it will quit without performing the calculation. Under certain circumstances, the user thus loses the time that the job has been waiting in a batch queue. You may also be charged for reserving resources.
  • the object of the present invention to provide a computer arrangement for the automated access control and / or access control of applications, in which simple, fast, on exactly defined manner and with a high degree of protection against the evasion of access control or access control, the control of access to one or more applications by user computer connected to the computer arrangement or by users working on the computer arrangement is possible. It is also an object of the present invention to provide a corresponding automated access control and access control method.
  • a computer arrangement according to the invention with automated access control from an access control to an application has a user component, a license server component designed for bidirectional data exchange with the user component, and a resource component designed for bidirectional data exchange with the user component, which controls an application that is designed as part of an application or on which an application is installed.
  • a license descriptor can be generated on the basis of the user component on the basis of first input data for the application and / or of hardware features of the user component.
  • This license descriptor can then be transmitted to the license server component and can be checked by the latter as to whether the user component, a user and / or the first input data are authorized to access the application.
  • the license server component can then generate a license token which allows access to the application and can be transmitted to the user component.
  • the user component then enables the license token (or licensing information based thereon) and second input data for the application to be transmitted to the resource component.
  • the license token (or license information) is / are then represented by the resource component te and / or the application verifiable to whether the access authorization of the user component, the user and / or the second input data is given to the application. If this is the case, then the application can be the second transmitted
  • Use input data for example, perform calculations with these input data and return the results of these calculations back to the user component.
  • the first input data will be identical to the second input data (these data are therefore usually also referred to below as simplified input data without further specification).
  • the user first generates a license descriptor based on the first input data for the application, then transmits it to the license server component and then receives the license token generated on the basis of the first input data and transmitted back.
  • the user can then exchange the first input data (for example, if he determines that additional calculations are still necessary) with other input data (second input data) suitable for the application and then, together with the license token (of such an exchange in this case admits) to which the actual calculations carry out the resource component.
  • the computer arrangement according to the invention can be used in particular in the field of simulation of technical systems:
  • simulation of such systems eg in the simulation of medical X-ray systems or also therapy systems, for example radiation therapy systems
  • the virtual imaging of the corresponding technical system is often necessary.
  • systems require a large number of calculations (eg Monte Carlo simulation calculations or the like), which, so that the user does not have to wait too long for the calculation results, must be distributed over several individual resource components.
  • Hardware elements or be designed as software and hardware elements.
  • this is e.g. not limiting to the effect that the client must be designed as software and the server as hardware (for example, a client can be realized as a pure software solution, but it can also be a computer system with appropriately installed components, etc. ).
  • the individual components that is to say the user component (s), the resource component (s) and the license server component will each be installed on separate, separate individual computers (or designed as corresponding individual computers).
  • a user component and a resource component can be installed on a common user and resource computer.
  • the license server component and a resource component on a common license server and resource computer.
  • the license server component is on a license ver formed separately from the user and resource calculator.
  • at least one user component is then formed separately from the license server and resource computer on a separate individual computer, which is then connected via a network (for example the Internet) to the common license server and resource computer.
  • user component user computer, user, licensee, client, user client and user client;
  • License server component License server, license server, licensor and manufacturer of an application or software
  • resource component resource calculator, resource provider, resource provider, and calculation backend
  • the license tokens are advantageously generated as needed and stored in the respective files, ie, they can be transferred to other computers. It is, as will be described below, no fear of misuse. They are the following Implementation scenarios can be realized:
  • the license token is linked to an input file for an application.
  • the license preferably refers to the use of the application with exactly this input file (as described above, it is however also possible to obtain the license for use of the application with other, optionally exchanged or supplemented input data).
  • batch programs can be used as input files.
  • the inventive system can also be used for the dynamic allocation of floating licenses.
  • the license is not tied to an input file, but to the local hardware. For example, a user of a pre-processing tool for a simulation program for a
  • FIG. 1 shows a computer arrangement according to the invention, in which the user component, the license ver component and the resource component are each realized as separate individual computers (and therefore also be so called) in overview;
  • Figure 2 is an example of a license descriptor
  • FIG. 3 shows the architecture of a concretely implemented license service in a computer network according to the invention
  • FIG. 4 shows a concrete implementation of a license descriptor.
  • FIG. 1 shows an example of the basic structure of a computer network according to the invention with automated access control and access control.
  • the network has a user computer 1 embodied as a PC IPC (which forms the user component), which is designed for bidirectional data exchange with a license server 2 (which forms the license server component) designed as a PC 2PC (arrows above).
  • the user computer 1 is also designed for bidirectional data exchange with a resource calculator 3 designed as a PC 3PC, which forms the resource component (arrows at the bottom of the picture).
  • An application 4 is installed on the resource calculator, here a simulation program which performs simulation calculations on the basis of input data.
  • input data 5 are stored, which are designed so that the application 4 can be made with them to start a simulation calculation and to transmit the corresponding simulation results.
  • the user computer 1 From this input data 5, the user computer 1 generates a license descriptor 7. In the present case, this is done by the user computer 1 calculating a cryptographic code in the form of a hash code from the input data 5. This calculated code is then used together with user identification data that identifies the user's computer 1 and a user acting on it
  • the user computer 1 based on hardware features 6 of the user computer and / or information about the user Ia (for example, based on a CPU identification number of the CPU of the user's computer or a MAC address of the user computer) a cryptographic code in the form of a
  • this cryptographic code can then be combined with user identification data for the license descriptor.
  • data are added to the license descriptor which are necessary in order to enable the license server 2 to determine whether access authorization of the user computer (or of the user) to the application 4 is given for the corresponding input data 5.
  • the license descriptor 7 is then sent to the license server
  • the license server 2 which checks the above-described access authorization. If an appropriate access authorization is given (which the license server 2 can check, for example, on the basis of a previously stored table with user computer or customer data and data for the application 4), then the license server 2 cryptographically encrypts the license descriptor 7 with a secret key of a public key infra - Structure (for example, an X.509-based public key infrastructure) and forms by means of this encryption from the optionally suitably adapted or supplemented license descriptor 7 a license token 8. Since an appropriate access to the application 4 is given, is this license token 8 then transferred from the license server 2 back to the user computer 1.
  • a public key infra - Structure for example, an X.509-based public key infrastructure
  • the input data 5 'to be used for starting the simulation calculations by means of the application 4 is then based on the license token 8 License information 8 'connected and transmitted to the resource calculator 3.
  • the user of the user computer 1 provides those input data for starting the simulation process of the application 4, from which the hash code of the license descriptor was also calculated.
  • the license token 8 transmitted by the user computer 1 to the resource computer 3 is then checked by the application 4 in the resource computer 3 to determine whether access authorization of the input data 5 of the user computer 1 to the application 4 is given.
  • the license token 8 is first decrypted by the application by means of the public key of the above-mentioned public-key infrastructure (which has been made available by the license server and has already been stored in the resource computer 3) and then checked accordingly.
  • the resource calculator or by the application itself
  • This calculated in the resource calculator 3 hash code is then with the hash Code, which was transmitted in the license descriptor 7 first from the user computer 1 to the license server 2 and then in the encrypted license descriptor, ie in the license token 8, from the license server 2 via the user computer 1 to the resource computer 3. Only if these two hash codes match (and after successful decryption and verification of the license token 8 with the public key), the application 4 starts with the transmitted input data 5 their simulation calculation. The output data 9 (simulation results) calculated by the application from the input data 5 are then transmitted from the resource computer 3 to the user computer 1.
  • the bidirectional data transmission between the units 1, 2 and 3 takes place in the context of the computer network according to the invention via the Internet.
  • a local computer network intranet within an organization
  • the license descriptor 7 is also possible for the license descriptor 7 to be generated by the user computer 1 with a duration desired by the user for the license for the application 4.
  • the license descriptor 7 is then transmitted with this information to the license server 2, which determines whether a desired license period is possible (this can be done for example on the basis of a user account of a user 1 on the license server 2).
  • the license token 8 is then generated by the license server 2 with a correspondingly determined license duration.
  • the license duration is defined in such a way that ultimately a time window is transmitted to the resource computer 3, during which the application 4 can perform simulation calculations on the basis of the input data 5.
  • a secure implementation must be v.
  • A. Provide protection against tampering or prevent the reuse of keys for other calculations. This can be achieved, for example, simply by using an X.509-based Public Key Infrastructure (PKI):
  • PKI Public Key Infrastructure
  • the licensee creates a license descriptor for the input data by sending a cryptographic hash of the input data to the licensor.
  • the licensee also adds a descriptor to the request with further personal data (user identification data).
  • the licensor can then decide, for example, whether the licensee is already known and whether he can be granted the access rights. It may also be possible to transmit information on the type of license granted here.
  • the licensee 1 then transmits his data together with the license token 8 to a resource provider 3. Although he has installed, for example, the software of the licensor, but may have. even no license for it.
  • the job is started normally via a batch system.
  • the application now checks the license token with the help of the licensor's public key and thus has secured a precondition for the validity of the license. (Here it is checked whether the license token was actually issued by the license server, - the check whether the license subsequently also applies to this input data is carried out as described below.) Then it calculates the cryptographic hash of the input and compares it with the signed hash from the license token. This is possible because the license descriptor is transmitted with the user-generated hash to the license server, where it is adopted in the license token and then transmitted to the user and the resource computer. If these match, then there is a valid license for this input data and the calculation can start.
  • the license server thus checks whether the user Ia is allowed to use the application. In doing so, a license token dependent, for example, on the application data / input data is created. The user computer must check this license token to verify the existence of a license token ensure correct license for the given input data. The reason for this is that the resource calculator and the license server do not have any knowledge of each other, ie no communication to the outside must be made at the time the job starts.
  • the license check can be done purely with locally available data. Thus, in the present case, several conditions must be met for a license to be valid for the input data (test procedure performed by the application and / or the resource calculator):
  • the token refers to the input data (here: the hash codes match) and
  • CPU of the resource computer may be executed) are fulfilled.
  • This step may e.g. can also be integrated directly into the licensing preprocessing tools.
  • a kind of "archive" for the submission to a resource provider can be created, which contains not only the input data but also the license for the application. The licensee then only has to send this archive to the resource provider.
  • this licensing process has the advantage that the application checking the license from the input data itself. It is not necessary to maintain a permanent application license or to maintain a corresponding network configuration for each customer's license server. In the case of a failed job (eg due to computer failures), the provider can also independently restart the job without having to wait for a license.
  • the hash represents an identification of the user's computer, eg a combination of CPU ID, MAC address, etc.
  • the following deployment scenario is conceivable: The user would like to have a valid license for one week on his notebook, eg to be able to work independently of the network during a customer visit. He starts the license client on the notebook, whereupon he calculates a cryptographic hash from the hardware components of the notebook. Together with other data, such as the desired license period, a license descriptor is created, which can then be signed by the license server. This license token can then be saved in a file.
  • the license token is first checked for validity and then the current cryptographic hash is calculated from the hardware. If the two hashes match, the license conditions described in the license descriptor apply.
  • Network may require a user to return their license after use. Since it is generally not possible to communicate with the resource calculator on which the calculation is running, the return can only be indirect. To do this, the license will be issued for a longer time than the job really needed. After the calculation has expired, the application logs the used computing time.
  • This logging can be included as an additional field in the license token and provided with the signature of the application binaries. Together with the output data of the application, the license token is transferred back to the user. There, the license client can restore the changed license token. Send back to the license server.
  • the license server checks the signature for the computation time. If the signature is correct, the unused computation time is transferred back to the user's account.
  • the licensing service consists of the already mentioned components User Client (on User Computer 1), License Server 2 and License Checker (part of Resource Calculator 3).
  • a messaging service is required for the communication.
  • the underlying application consists of a user component and a calculation backend and the license is to be bound to an input file.
  • the components are displayed individually, followed by the communication protocol. An overview of the components used is given in FIG. 3.
  • the user client The user client:
  • the user client is a software component that can be integrated directly into the end-user application.
  • the purpose of the user client is to request a license key from the license server for a given input record.
  • the input data set is first characterized by a hash.
  • further information regarding the application must be compiled, eg how many CPUs are used should be.
  • An example of a license descriptor is shown in Figure 4. The internal flow of the user's client looks like this:
  • Clients are charged a specific cryptographic hash from the input data.
  • the license descriptor is compiled. To determine the identity of the user, the license descriptor is provided with a digital signature.
  • the license descriptor is packaged with the signature in a request and sent to the license server.
  • the server's response contains an encrypted license token.
  • the client asks the server again for the decryption key. With this the client decrypts the license token.
  • the license token is stored in a file and made available to the user.
  • the license server If unused computation times are to be reversed, the modified license token is sent back to the license server after the computation has been completed. If an error occurs, the user will be notified.
  • the license server :
  • the license server is a daemon that constantly waits for and answers incoming license requests.
  • a valid license token is created by providing the license descriptor with the signature of the server from the user's client. The internal process looks like this:
  • the received license descriptor is opened and the identity of the user is checked by means of his digital signature.
  • the request is authenticated, i. It is clear to whom the license request is to be assigned.
  • the user must be authorized, i. Based on a customer database, etc., it is decided whether the user may even request this license. Details of the requested license terms (for example number of CPUs, calculation modules) can be checked. This functionality is encapsulated in a separate license management plugin.
  • the license descriptor is signed with the secret key of the license server.
  • the server assigns a symmetric key for this request and encrypts the license token with it.
  • the license token will now be returned.
  • the server is waiting for the client's request for the key. If this request comes in, the server knows that the license token has arrived at the client. The server responds with the key to unlock the license. The license server's answer adds a signature to the license descriptor if the license is valid. This license token certifies the validity of a license under the terms specified in the license descriptor.
  • the license client wants to return a signed license token after the end of the calculation job, it will be evaluated with regard to the used computing time.
  • This component is integrated directly into the calculation bucket. Your job is to check the validity of a license token. For this the following steps are carried out:
  • the license token is opened and the signature of the license server is checked for validity.
  • the hash of the input data is calculated and compared with the value in the license descriptor. If all checks are successful, the license for this input record is valid.
  • the license examiner only has to know the public key of the license server. It is not necessary to establish network connections to the license server - the license descriptor can be checked locally. After the calculation has expired, the license examiner can document and sign the used up processing time in the license token. The token can then be copied back to the user with the results.
  • the license server and the user client exchange only compact messages, it is not necessary to exchange larger amounts of data. It is therefore possible to handle the communication via a messaging queue.
  • Several physical license servers can be linked to a logical one to increase the reliability.
  • only the messaging queue needs to be made accessible via the Internet so that no direct attacks on the license servers are possible.
  • the key encrypts the license token symmetrically. After the client has received the encrypted license token, he asks the license server for the corresponding key again. He specifies a transaction number that was transmitted by the server in the same data package as the license token. If the request for the key has been received by the server with the correct transaction number, then the license can be finally calculated.
  • the message with the key of the server can also be lost.
  • the client can display to the user a message with the transaction number - with this the user can then contact the licensor and request the activation key.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

The invention relates to a computer system with automatic access regulation of an application and access control to an application, comprising a user computer (1), a licensing server (2) designed for bidirectionally exchanging data with the user computer and a resource computer (3) designed for bidirectionally exchanging data with the user computer, in which an application (4) can be installed and/or is installed. A licence descriptor (7) can be generated on the user computer based on first input data (5) for the application and/or on hardware characteristics (6) of the user computer. Said license descriptor can be transmitted to the license server and can be checked by the license server if access authorisation to the user computer and/or the first input data (5) is input into the application. If said access authorisation exists, the license server can generate a license token (8) allowing access to the application and can be transmitted to the user computer. The license token or the license information (8') based on said token and the second input data (5') for the application can be transmitted by the user computer to the resource computer that can check the license token or the licence information by the resource computer and/or the application as to whether the user computer and/or the second input data (5') can access the application.

Description

FRAUNHOFER-GESELLSCHAFT...e.V. 099PCT 0872FRAUNHOFER SOCIETY ... E.V. 099PCT 0872
Rechneranordnung mit automatisierter Zugriffssteuerung von einer und Zugriffskontrolle auf eine Applikation sowie entsprechendes Zugriffssteuerungs- undComputer arrangement with automated access control of one and access control to an application and corresponding access control and
ZugriffskontrollverfahrenAccess control method
Die vorliegende Erfindung bezieht sich auf eine Rechneranordnung (nachfolgend alternativ auch als Rechnernetzwerk bezeichnet) mit automatisierter Zugriffssteuerung von und mit automatisierter Zugriffskontrolle auf eine oder mehrere Applikation (en) . Die vorliegende Erfindung bezieht sich darüber hinaus auf ein entsprechendes Zugriffssteuerungs- und Zugriffskontrollverfahren.The present invention relates to a computer arrangement (hereinafter alternatively referred to as a computer network) with automated access control of and with automated access control to one or more application (s). The present invention also relates to a corresponding access control and access control method.
Heutige Rechnernetzwerke überschreiten, insbesondere beim sog. Grid-Computing, die Grenzen von einzelnen Organisationen bei der Benutzung von Rechenressourcen. Die Nutzung von reiner Rechenzeit und von Speicherplatz findet heutzutage häufig nicht mehr nur in- nerhalb einer einzelnen Organisation, sondern auch bei anderen Organisationen, also durch die eigene Organisation bei Dritten statt. Hierdurch treten Fragestellungen zu Tage, wie die Zugriffssteuerung und die Zugriffskontrolle auf Applikationen bei fremden Orga- nisationen bzw. Dritten automatisch ermöglicht werden kann. Es ist insbesondere zu klären, in wiefern Lizenzen in einem solchen Rechnernetzwerk bzw. im Grid- Umfeld benutzt werden können. Unter einer Lizenz wird hierbei eine Erlaubnis eines Rechners der eigenen Or- ganisation (Anwenderrechner) und/oder eines Anwenders innerhalb der eigenen Organisation zum Zugriff auf ein Anwendungsprogramm bzw. eine Applikation, welche (s) auf einem anderen Rechner, insbesondere auf einem Ressourcenrechner, der von einer anderen Orga- nisation innerhalb des Rechnernetzwerkes zur Verfügung gestellt wird, installiert ist, verstanden. Lizenzen erlauben somit den Zugriff auf entfernt installierte Applikationen.Today's computer networks, especially in so-called grid computing, exceed the limits of individual organizations in the use of computational resources. The use of pure computation time and storage space is nowadays no longer found only within a single organization, but also in other organizations, ie by the own organization with third instead. As a result, questions arise as to how the access control and the access control can be automatically made available to applications by external organizations or third parties. In particular, it must be clarified to what extent licenses can be used in such a computer network or in the grid environment. In this case, a license of a computer of its own organization (user computer) and / or of a user within its own organization for accessing an application program or an application which is (s) on another computer, in particular on a resource computer, which is provided by another organization within the computer network, is understood. Licenses thus allow access to remotely installed applications.
Grundsätzlich sind zwei Szenarien denkbar:Basically, two scenarios are conceivable:
1. Der Anwender nutzt Lizenzen, die außerhalb der eigenen Organisation, also beim Ressourcenprovider bzw. auf einem entsprechenden Ressourcen- rechner, vorhanden sind.1. The user uses licenses that are available outside of their own organization, ie the resource provider or a corresponding resource calculator.
2. Der Anwender bringt eigene Lizenzen mit zum Ressourcenprovider bzw. zum Ressourcenrechner.2. The user brings own licenses to the resource provider or to the resource calculator.
Die gegenwärtig im Stand der Technik verwendeten automatisierten Zugriffssteuerungs- und Zugriffskontrollverfahren sehen dabei verschiedene Lizenzierungsmodelle vor, deren Realisierungen wie folgt zusammen gefasst werden können: 1. Eine Software bzw. Applikation wird mit einer sog. Node-Lock-Lizenz versehen, d.h. die Applikation wird an einen festen Rechner gebunden und kann nur dort benutzt werden. Diese Lizenzform erlaubt lediglich eine Nutzung vor Ort, d.h. inThe automated access control and access control methods currently used in the prior art provide different licensing models, the implementations of which can be summarized as follows: 1. A software or application is provided with a so-called node-lock license, ie the application is bound to a fixed computer and can only be used there. This license form only permits on-site use, ie in
Bezug auf Grid-Computing kann ein Anwender lediglich vorinstallierte Lizenzen verwenden. Eine Mitnahme einer eigenen Lizenz zum Ressourcenprovider ist somit nicht möglich.With respect to grid computing, a user can only use preinstalled licenses. It is therefore not possible to bring your own license to the resource provider.
2. Eine zweite technische Realisierung der Lizenzierung stellt die sog. Floating-Lizenz dar: Ein zentraler Server wird beim Lizenznehmer eingerichtet und mit der Anzahl der Lizenzen bzw. an- deren Vorgaben konfiguriert. So fragt bei jeder auszuführenden Aufgabe (beispielsweise: Berechnungsjob) die Applikation (z.B. Simulations- oder Berechnungssoftware) bei diesem Zentralserver an, ob momentan eine freie Lizenz verfügbar ist. Ist dies der Fall, kann diese Lizenz für die aktuell abzuarbeitende Aufgabe benutzt werden. Ist keine freie Lizenz verfügbar, so wird die Aufgabe nicht abgearbeitet.2. A second technical realization of licensing is the so-called floating license: A central server is set up at the licensee and configured with the number of licenses or other specifications. Thus, for each task to be performed (for example: calculation job), the application (e.g., simulation or calculation software) queries at this central server whether a free license is currently available. If this is the case, this license can be used for the task currently being processed. If no free license is available, the task will not be processed.
3. Eine dritte Lizenzierungsform ist unter dem Namen „Named User" bekannt: Hierbei wird der Zugriff auf eine Applikation nur bestimmten Benutzern gestattet. Dabei wird die Applikation oft an den lokalen Benutzernamen gekoppelt.3. A third form of licensing is known as "Named User": In this case, access to an application is only permitted to certain users, whereby the application is often linked to the local user name.
Offensichtlich ist eine Node-Lock-Lizenz nur für Ressourcenanbieter möglich, die eine feste Anzahl von Lizenzen für die Nutzung im Grid bereitstellen. Ein Anwender kann hier nicht seine eigene Lizenz übermit- teln. Eine Nutzung einer Floating-Lizenz ist prinzipiell möglich. Die Lizenz kann beim Jobstart entweder von einem Lizenzserver des Anwenders oder des Ressourcenbetreibers abgerufen werden, unterliegt jedoch einigen Einschränkungen:Obviously, a node-lock license is only available to resource providers who provide a fixed number of licenses for use in the grid. A user can not submit his own license here. The use of a floating license is possible in principle. The license can either be at job start are obtained from a user or resource server license server, but with some limitations:
1. Der Lizenzserver muss vom Ort der Berechnung aus erreichbar sein, damit beim Jobstart die Lizenz freigegeben werden kann. Dies ist je nach Konfiguration der Netzwerkumgebung des Ressourcenproviders nicht gegeben und vor Beginn des Rechen- jobs auch nicht unbedingt überprüfbar.1. The license server must be reachable from the location of the calculation so that the license can be released when starting the job. Depending on the configuration of the network environment of the resource provider, this is not possible and can not be checked before starting the computing job.
2. Zum Start des Rechenjobs muss der entsprechende Lizenzserver auch tatsächlich eine Lizenz vorhalten. Sollte ein Job keine Lizenz vorfinden, so wird er sich beenden, ohne die Berechnung durchzuführen. Unter Umständen verliert der Anwender so diejenige Zeit, die der Job in einer Batchqueue gewartet hat. Eventuell fallen auch Kosten für die Reservierung der Ressourcen an.2. To start the calculation job, the corresponding license server must actually hold a license. If a job does not find a license, it will quit without performing the calculation. Under certain circumstances, the user thus loses the time that the job has been waiting in a batch queue. You may also be charged for reserving resources.
Im Falle einer "Named User" -Lizenz muss die Identität eines Benutzers überprüft werden. Dabei ergibt sich im Grid-Umfeld jedoch das Problem der Delegation: Der lokale Benutzer ist nicht notwendigerweise auch der Benutzer, der den Job abgeschickt hat. Im Prinzip wäre es möglich, den ursprünglichen Benutzer über sein Zertifikat beim Abschicken eines Jobs zu ermitteln - diese Funktionalität ist jedoch in keiner Grid- Middleware vorgesehen und daher nicht einfach zu imp- lementieren.In the case of a "Named User" license, the identity of a user must be checked. In the grid environment, however, there is the problem of delegation: the local user is not necessarily the user who sent the job. In principle, it would be possible to identify the original user via his certificate when sending a job - however, this functionality is not provided in any grid middleware and therefore not easy to implement.
Ausgehend vom Stand der Technik ist es daher die Aufgabe der vorliegenden Erfindung, eine Rechneranordnung für die automatisierte Zugriffssteuerung und/oder Zugriffskontrolle von Applikationen zur Verfügung zu stellen, in welcher einfach, schnell, auf genau definierte Art und Weise und mit einem hohen Schutz gegen die Umgehung der Zugriffssteuerung bzw. Zugriffskontrolle die Steuerung des Zugriffs auf eine oder mehrere Applikationen durch an die Rechneranord- nung angeschlossene Anwenderrechner bzw. durch an der Rechneranordnung tätige Anwender möglich ist. Aufgabe der vorliegenden Erfindung ist es darüber hinaus, ein entsprechendes automatisiertes Zugriffssteuerungsund Zugriffskontrollverfahren zur Verfügung zu stel- len.Starting from the prior art, it is therefore the object of the present invention to provide a computer arrangement for the automated access control and / or access control of applications, in which simple, fast, on exactly defined manner and with a high degree of protection against the evasion of access control or access control, the control of access to one or more applications by user computer connected to the computer arrangement or by users working on the computer arrangement is possible. It is also an object of the present invention to provide a corresponding automated access control and access control method.
Diese Aufgabe wird durch die Rechneranordnung gemäß Patentanspruch 1 sowie durch das Zugriffssteuerungsund Zugriffskontrollverfahren gemäß Patentanspruch 18 gelöst. Vorteilhafte Ausgestaltungsformen der erfindungsgemäßen Rechneranordnung bzw. des erfindungsgemäßen Verfahrens lassen sich dabei den jeweiligen abhängigen Ansprüchen entnehmen. Vorteilhafte Verwendungen einer solchen Anordnung oder eines solchen Verfahrens sind in den Verwendungsansprüchen beschrieben.This object is achieved by the computer arrangement according to claim 1 and by the access control and access control method according to claim 18. Advantageous embodiments of the computer arrangement according to the invention and of the method according to the invention can be found in the respective dependent claims. Advantageous uses of such an arrangement or method are described in the use claims.
Nachfolgend wird die vorliegende Erfindung zunächst allgemein beschrieben und dann anhand eines allgemein gehaltenen Ausführungsbeispiels vorgestellt. Dem schließt sich ein spezielles Ausführungsbeispiel, in dem eine konkrete Implementierung bzw. Ausgestaltung eines erfindungsgemäßen Rechnernetzwerkes bzw. Zugriffssteuerungs- und Zugriffskontrollverfahrens beschrieben ist, an.Hereinafter, the present invention will first be described generally and then presented by means of a generally held embodiment. This is followed by a specific embodiment in which a concrete implementation or design of a computer network or access control and access control method according to the invention is described.
Die konkrete Kombination der einzelnen Merkmale, wie sie in dem allgemeinen und dem speziellen Ausführungsbeispiel beschrieben ist, ist für die Ausführung der Erfindung nicht unbedingt notwendig, d.h. im Rahmen der vorliegenden Erfindung können einzelne Merk- male der gezeigten Kombination gemäß den unabhängigen Patentansprüchen auch in anderen Kombinationen verwirklicht werden bzw. realisiert sein.The concrete combination of the individual features, as described in the general and the specific exemplary embodiment, is not absolutely necessary for the execution of the invention, that is to say that in the context of the present invention individual features can be used. male of the combination shown according to the independent claims are also realized or realized in other combinations.
Eine erfindungsgemäße Rechneranordnung mit automatisierter Zugriffssteuerung von einer und Zugriffskontrolle auf eine Applikation weist eine Anwenderkomponente, eine zum bidirektionalen Datenaustausch mit der Anwenderkomponente ausgebildete Lizenzserverkom- ponente und eine zum bidirektionalen Datenaustausch mit der Anwenderkomponente ausgebildete Ressourcenkomponente, die eine Applikation steuert, die als Teil einer Applikation ausgebildet ist oder auf der eine Applikation installiert ist, auf. Selbstver- ständlich sind dabei in der Regel jeweils mehrere Anwenderkomponenten entsprechend mit der Lizenzserverkomponente und der (oder auch den mehreren) Ressourcenkomponente (n) verbunden. Erfindungsgemäß ist auf Basis von der Anwenderkomponente auf Basis von ersten Eingabedaten für die Applikation und/oder von Hardware-Merkmalen der Anwenderkomponente ein Lizenzdeskriptor generierbar. Dieser Lizenzdeskriptor ist dann an die Lizenzserverkomponente übermittelbar und durch letztere dahingehend überprüfbar, ob eine Zugriffsberechtigung der Anwenderkomponente, eines Anwenders und/oder der ersten Eingabedaten auf die Applikation gegeben ist. Bei Vorliegen einer solchen Zugriffsberechtigung ist dann von der Lizenzserverkomponente ein den Zugriff auf die Applikation ermög- lichender Lizenztoken generierbar und an die Anwenderkomponente übermittelbar. Durch die Anwenderkomponente sind dann der Lizenztoken (oder auf diesem basierende Lizenzinformationen) sowie zweite Eingabedaten für die Applikation an die Ressourcenkomponente übermittelbar. Der Lizenztoken (oder die Lizenzinformationen) ist/sind dann durch die Ressourcenkomponen- te und/oder die Applikation dahingehend überprüfbar, ob die Zugriffsberechtigung der Anwenderkomponente, des Anwenders und/oder der zweiten Eingabedaten auf die Applikation gegeben ist. Ist dies der Fall, dann kann die Applikation die ihr übermittelten zweitenA computer arrangement according to the invention with automated access control from an access control to an application has a user component, a license server component designed for bidirectional data exchange with the user component, and a resource component designed for bidirectional data exchange with the user component, which controls an application that is designed as part of an application or on which an application is installed. Of course, in each case several user components are connected respectively to the license server component and the (or also the several) resource component (s). According to the invention, a license descriptor can be generated on the basis of the user component on the basis of first input data for the application and / or of hardware features of the user component. This license descriptor can then be transmitted to the license server component and can be checked by the latter as to whether the user component, a user and / or the first input data are authorized to access the application. In the case of such an access authorization, the license server component can then generate a license token which allows access to the application and can be transmitted to the user component. The user component then enables the license token (or licensing information based thereon) and second input data for the application to be transmitted to the resource component. The license token (or license information) is / are then represented by the resource component te and / or the application verifiable to whether the access authorization of the user component, the user and / or the second input data is given to the application. If this is the case, then the application can be the second transmitted
Eingabedaten verwenden, also beispielsweise mit diesen Eingabedaten Berechnungen durchführen und die Ergebnisse dieser Berechnungen an die Anwenderkomponente zurück übermitteln.Use input data, for example, perform calculations with these input data and return the results of these calculations back to the user component.
In der Regel werden dabei die ersten Eingabedaten mit den zweiten Eingabedaten identisch sein (diese Daten werden daher nachfolgend meist auch vereinfacht als Eingabedaten ohne weitere Spezifikation bezeichnet) . Es ist jedoch auch denkbar, dass der Anwender zunächst basierend auf ersten Eingabedaten für die Applikation einen Lizenzdeskriptor generiert, diesen dann an die Lizenzserverkomponente übermittelt und den dann auf Basis der ersten Eingabedaten generier- ten und zurück übermittelten Lizenztoken empfängt.As a rule, the first input data will be identical to the second input data (these data are therefore usually also referred to below as simplified input data without further specification). However, it is also conceivable that the user first generates a license descriptor based on the first input data for the application, then transmits it to the license server component and then receives the license token generated on the basis of the first input data and transmitted back.
Der Anwender kann dann die ersten Eingabedaten (beispielsweise wenn er feststellt, dass noch zusätzliche Berechnungen notwendig sind) durch andere für die Applikation geeignete Eingabedaten (zweite Eingabeda- ten) austauschen und diese dann, zusammen mit dem Lizenztoken (der einen solchen Austausch in diesem Falle zulässt) an die die eigentlichen Berechnungen durchführende Ressourcenkomponente übermitteln.The user can then exchange the first input data (for example, if he determines that additional calculations are still necessary) with other input data (second input data) suitable for the application and then, together with the license token (of such an exchange in this case admits) to which the actual calculations carry out the resource component.
Die erfindungsgemäße Rechneranordnung kann insbesondere im Bereich der Simulation von technischen Systemen eingesetzt werden: Bei der Simulation solcher Systeme (z.B. bei der Simulation von medizinischen Röntgensystemen oder auch Therapiesystemen, bei- spielsweise Strahlentherapiesystemen) sind häufig bei der virtuellen Abbildung des entsprechenden techni- sehen Systems in einem Rechnersystem eine Vielzahl von Berechnungen (z.B. Monte Carlo-Simulationsrech- nungen oder ähnliches) notwendig, die, damit der Anwender nicht zu lange auf die Rechenergebnisse warten muss, auf mehrere einzelne Ressourcenkomponenten verteilt werden müssen.The computer arrangement according to the invention can be used in particular in the field of simulation of technical systems: In the simulation of such systems (eg in the simulation of medical X-ray systems or also therapy systems, for example radiation therapy systems), the virtual imaging of the corresponding technical system is often necessary. In a computer system, systems require a large number of calculations (eg Monte Carlo simulation calculations or the like), which, so that the user does not have to wait too long for the calculation results, must be distributed over several individual resource components.
Wie dem Fachmann unmittelbar klar ist, können die einzelnen Komponenten je nach konkreter Systemanfor- derung sowohl als Software-Elemente, als auch alsAs is immediately clear to the person skilled in the art, the individual components can be used both as software elements and as a function of the specific system requirement
Hardware-Elemente, oder als Software- und Hardware- Elemente ausgebildet sein. Wird von einem Client oder von einem Server gesprochen, so ist dies z.B. nicht einschränkend dahingehend zu verstehen, dass der Client als Software ausgebildet sein muss und der Server als Hardware (so kann beispielsweise ein Client als reine Software-Lösung realisiert sein, es kann sich dabei jedoch auch um ein Rechnersystem mit entsprechend installierten Komponenten handeln, usw. ) .Hardware elements, or be designed as software and hardware elements. When talking about a client or a server, this is e.g. not limiting to the effect that the client must be designed as software and the server as hardware (for example, a client can be realized as a pure software solution, but it can also be a computer system with appropriately installed components, etc. ).
In der Regel werden die einzelnen Komponenten, also die Anwenderkomponente (n) , die Ressourcenkomponente (n) und die Lizenzserverkomponente jeweils auf ge- trennten, separaten Einzelrechnern installiert sein (bzw. als entsprechende Einzelrechner ausgebildet sein) . Es ist jedoch alternativ dazu auch möglich, mehr als eine Komponente auf ein und demselben Einzelrechner (z.B. PC) auszubilden: So können bei- spielsweise eine Anwenderkomponente und eine Ressourcenkomponente auf einem gemeinsamen Anwender- und Ressourcenrechner installiert sein. Ebenso ist es denkbar, die Lizenzserverkomponente und eine Ressourcenkomponente auf einem gemeinsamen Lizenzserver- und Ressourcenrechner auszubilden. Im ersten Fall ist dann die Lizenzserverkomponente auf einem Lizenzser- ver getrennt vom Anwender- und Ressourcenrechner ausgebildet. Im zweiten Fall ist dann mindestens eine Anwenderkomponente getrennt vom Lizenzserver- und Ressourcenrechner auf einem separaten Einzelrechner ausgebildet, der dann über ein Netzwerk (beispielsweise das Internet) mit dem gemeinsamen Lizenzserverund Ressourcenrechner verbunden ist.As a rule, the individual components, that is to say the user component (s), the resource component (s) and the license server component will each be installed on separate, separate individual computers (or designed as corresponding individual computers). However, it is alternatively also possible to design more than one component on the same individual computer (eg PC): For example, a user component and a resource component can be installed on a common user and resource computer. Likewise, it is conceivable to form the license server component and a resource component on a common license server and resource computer. In the first case, the license server component is on a license ver formed separately from the user and resource calculator. In the second case, at least one user component is then formed separately from the license server and resource computer on a separate individual computer, which is then connected via a network (for example the Internet) to the common license server and resource computer.
Im Rahmen der weiteren Beschreibung der Erfindung werden daher nachfolgend die folgenden Synonyme verwendet (jede Nummer bezeichnet synonym verwendete Ausdrücke) :In the further description of the invention, therefore, the following synonyms are used below (each number denotes synonymously used expressions):
1. Rechneranordnung, Rechnernetzwerk, Grid-Umgebung und Grid-Umfeld;1. Computer arrangement, computer network, grid environment and grid environment;
2. Anwenderkomponente, Anwenderrechner, Anwender, Lizenznehmer, Client, Anwenderclient und Benutzerclient;2. user component, user computer, user, licensee, client, user client and user client;
3. Lizenzserverkomponente, Lizenzserver, Lizenzgeber und Hersteller einer Applikation bzw. Software ;3. License server component, license server, licensor and manufacturer of an application or software;
4. Ressourcenkomponente, Ressourcenrechner, Ressourcenprovider, Ressourcenanbieter und Berech- nungsbackend;4. resource component, resource calculator, resource provider, resource provider, and calculation backend;
5. Lizenztoken, Token und Lizenz.5. License Token, Token and License.
Bei der vorliegenden Erfindung werden die Lizenztoken somit vorteilhafterweise je nach Bedarf erzeugt und in den entsprechenden Dateien gespeichert, d.h. sie können auf andere Rechner transferiert werden. Dabei ist, wie nachfolgend noch beschrieben wird, kein Missbrauch zu befürchten. Es sind die folgenden Einsatzszenarien realisierbar:Thus, in the present invention, the license tokens are advantageously generated as needed and stored in the respective files, ie, they can be transferred to other computers. It is, as will be described below, no fear of misuse. They are the following Implementation scenarios can be realized:
1. Der Lizenztoken wird an eine Eingabedatei für eine Applikation gekoppelt. Die Lizenz bezieht sich dabei bevorzugt auf die Verwendung der Applikation mit genau dieser Eingabedatei (wie vorbeschrieben, ist es jedoch auch möglich, die Lizenz auf Verwendung der Applikation mit anderen, gegebenenfalls ausgetauschten oder ergänz - ten Eingabedaten zu beziehen) . Beispielsweise können Batch- Programme als Eingabedatei verwendet werden.1. The license token is linked to an input file for an application. The license preferably refers to the use of the application with exactly this input file (as described above, it is however also possible to obtain the license for use of the application with other, optionally exchanged or supplemented input data). For example, batch programs can be used as input files.
2. Daneben (oder auch zusätzlich) kann das erfin- dungsgemäße System auch zur dynamischen Zuweisung von Floating-Lizenzen verwendet werden. Dabei wird die Lizenz nicht an eine Eingabedatei, sondern an die lokale Hardware gebunden. So kann beispielsweise ein Benutzer eines Pre-Processing Tools für ein Simulationsprogramm für eine2. In addition (or additionally), the inventive system can also be used for the dynamic allocation of floating licenses. The license is not tied to an input file, but to the local hardware. For example, a user of a pre-processing tool for a simulation program for a
Dienstreise eine Lizenz für sein Notebook erstellen, welche dann an die Hardware des Notebooks (CPU-ID, MAC-Adresse etc.) gebunden ist.Business trip to create a license for his notebook, which is then bound to the hardware of the notebook (CPU ID, MAC address, etc.).
Im Folgenden wird die vorliegende Erfindung zunächst anhand der Verknüpfung von Lizenzen mit den Eingabedaten beschrieben. Danach werden kurz die notwendigen Anpassungen für Hardware-gebundene Lizenzen beschrieben. Es folgt ein spezielles Ausführungsbeispiel mit einem konkreten Systementwurf sowie mit einer konkreten Umsetzung.In the following, the present invention will first be described on the basis of the linking of licenses with the input data. Afterwards the necessary adjustments for hardware-bound licenses will be briefly described. This is followed by a specific embodiment with a concrete system design and with a concrete implementation.
Es zeigen:Show it:
Figur 1 eine erfindungsgemäße Rechneranordnung, bei der die Anwenderkomponente, die Lizenzser- verkomponente und die Ressourcenkomponente jeweils als separate Einzelrechner realisiert sind (und daher auch so bezeichnet werden) in Übersicht;FIG. 1 shows a computer arrangement according to the invention, in which the user component, the license ver component and the resource component are each realized as separate individual computers (and therefore also be so called) in overview;
Figur 2 ein Beispiel für einen Lizenzdeskriptor;Figure 2 is an example of a license descriptor;
Figur 3 die Architektur eines konkret implementierten Lizenzdienstes in einem erfindungsgemä- ßen Rechnernetzwerk;FIG. 3 shows the architecture of a concretely implemented license service in a computer network according to the invention;
Figur 4 eine konkrete Implementierung eines Lizenzdeskriptors .FIG. 4 shows a concrete implementation of a license descriptor.
Figur 1 zeigt ein Beispiel für den grundlegenden Aufbau eines erfindungsgemäßen Rechnernetzwerkes mit automatisierter Zugriffssteuerung und Zugriffskontrolle. Das Netzwerk weist einen als PC IPC ausgebildeten Anwenderrechner 1 auf (der die Anwenderkompo- nente bildet) , der zum bidirektionalen Datenaustausch mit einem als PC 2PC ausgebildeten Lizenzserver 2 (der die Lizenzserverkomponente bildet) ausgebildet ist (Pfeile oben) . Darüber hinaus ist der Anwenderrechner 1 auch zum bidirektionalen Datenaustausch mit einem als PC 3PC ausgebildeten Ressourcenrechner 3, der die Ressourcenkomponente bildet, ausgebildet (Pfeile unten im Bild) . Auf dem Ressourcenrechner ist eine Applikation 4 installiert, hier ein Simulationsprogramm, welches auf Basis von Eingabedaten Simula- tionsrechnungen durchführt.Figure 1 shows an example of the basic structure of a computer network according to the invention with automated access control and access control. The network has a user computer 1 embodied as a PC IPC (which forms the user component), which is designed for bidirectional data exchange with a license server 2 (which forms the license server component) designed as a PC 2PC (arrows above). In addition, the user computer 1 is also designed for bidirectional data exchange with a resource calculator 3 designed as a PC 3PC, which forms the resource component (arrows at the bottom of the picture). An application 4 is installed on the resource calculator, here a simulation program which performs simulation calculations on the basis of input data.
In Figur 1 ist lediglich ein Anwenderrechner 1 gezeigt, es ist jedoch selbstverständlich auch möglich, eine Vielzahl entsprechend ausgebildeter Anwender- rechner jeweils zum bidirektionalen Datenaustausch mit dem Lizenzserver zu verbinden. Darüber hinaus ist es ebenso möglich, eine Vielzahl von Ressourcenrechnern 3 statt des lediglich einen gezeigten Ressourcenrechners zur Verfügung zu stellen, mit denen dann die Anwenderrechner jeweils zum bidirektionalen Da- tenaustausch verbindbar sind. Ein Anwenderrechner kann dabei mit mehreren Ressourcenrechnern verbunden werden oder umgekehrt .In Figure 1, only a user computer 1 is shown, but it is of course also possible to connect a plurality of appropriately trained user computer respectively for bidirectional data exchange with the license server. In addition, it is It is also possible to provide a multiplicity of resource computers 3 instead of the resource computer shown only one, with which the user computers can then be connected in each case for bidirectional data exchange. A user computer can be connected to several resource computers or vice versa.
Im Anwenderrechner 1 sind Eingabedaten 5 gespeichert, die so ausgebildet sind, dass die Applikation 4 mit ihnen zum Start einer Simulationsrechnung und zum Übermitteln der entsprechenden Simulationsergebnisse veranlasst werden kann. Aus diesen Eingabedaten 5 generiert der Anwenderrechner 1 einen Lizenzdeskriptor 7. Dies geschieht im vorliegenden Fall dadurch, dass der Anwenderrechner 1 aus den Eingabedaten 5 einen kryptographischen Code in Form eines Hash-Codes berechnet. Dieser berechnete Code wird dann zusammen mit Anwenderidentifikationsdaten, die der Identifika- tion des Anwenderrechners 1 und eines an ihm tätigenIn the user computer 1 input data 5 are stored, which are designed so that the application 4 can be made with them to start a simulation calculation and to transmit the corresponding simulation results. From this input data 5, the user computer 1 generates a license descriptor 7. In the present case, this is done by the user computer 1 calculating a cryptographic code in the form of a hash code from the input data 5. This calculated code is then used together with user identification data that identifies the user's computer 1 and a user acting on it
Anwenders Ia dienen, zu dem Lizenzdeskriptor zusammen gefasst .User Ia, summarized to the license descriptor.
Alternativ oder kumulativ dazu ist es jedoch auch möglich, dass der Anwenderrechner 1 basierend auf Hardware-Merkmalen 6 des Anwenderrechners und/oder Informationen über den Anwender Ia (beispielsweise auf Basis einer CPU- Identifikationsnummer der CPU des Anwenderrechners oder einer MAC-Adresse des Anwender- rechners) einen kryptographischen Code in Form einesAlternatively or cumulatively, however, it is also possible that the user computer 1 based on hardware features 6 of the user computer and / or information about the user Ia (for example, based on a CPU identification number of the CPU of the user's computer or a MAC address of the user computer) a cryptographic code in the form of a
Hash-Codes berechnet. Ebenso wie vorbeschrieben, kann dann dieser kryptographische Code mit Anwenderidentifikationsdaten zum Lizenzdeskriptor zusammengefasst werden. Zudem werden dem Lizenzdeskriptor Daten hinzugefügt, die notwendig sind, um dem Lizenzserver 2 zu ermöglichen, festzustellen, ob für die entsprechenden Einga- bedaten 5 eine Zugriffsberechtigung des Anwenderrechners (bzw. des Anwenders) auf die Applikation 4 gegeben ist.Calculated hash codes. As described above, this cryptographic code can then be combined with user identification data for the license descriptor. In addition, data are added to the license descriptor which are necessary in order to enable the license server 2 to determine whether access authorization of the user computer (or of the user) to the application 4 is given for the corresponding input data 5.
Im vorliegenden Fall wird lediglich der aus den Ein- gabedaten 5 berechnete Hash-Code vom AnwenderrechnerIn the present case, only the hash code calculated from the input data 5 is processed by the user computer
1 an den Lizenzserver 2 übermittelt. Es ist jedoch auch möglich, zusätzlich zu diesem Hash-Code auch die Eingabedaten 5 selbst an den Lizenzserver 2 zu übermitteln (so dass diese dann für weitere Prüfungen etc. verwendet werden können) .1 transmitted to the license server 2. However, it is also possible to transmit the input data 5 itself to the license server 2 in addition to this hash code (so that these can then be used for further checks, etc.).
Der Lizenzdeskriptor 7 wird dann an den LizenzserverThe license descriptor 7 is then sent to the license server
2 übermittelt, der die vorbeschriebene Zugriffsberechtigung überprüft. Ist eine entsprechende Zugriffsberechtigung gegeben (was der Lizenzserver 2 z.B. anhand einer vorab gespeicherten Tabelle mit Anwenderrechner- oder Kundendaten und Daten zur der Applikation 4 überprüfen kann) , so verschlüsselt der Lizenzserver 2 den Lizenzdeskriptor 7 kryptographisch mit einem geheimen Schlüssel einer Public-Key-Infra- struktur (beispielsweise einer X.509-basierten Public -Key- Infrastruktur) und bildet mittels dieser Verschlüsselung aus dem gegebenenfalls geeignet ange- passten oder ergänzten Lizenzdeskriptor 7 einen Li- zenztoken 8. Da eine entsprechende Zugriffsberechtigung auf die Applikation 4 gegeben ist, wird dieser Lizenztoken 8 anschließend vom Lizenzserver 2 zurück an den Anwenderrechner 1 übertragen. Im Anwenderrechner 1 werden dann die zum Start der Simulationsrech- nungen mittels der Applikation 4 zu verwendenden Eingabedaten 5' mit auf dem Lizenztoken 8 basierenden LizenzInformationen 8' verbunden und an den Ressourcenrechner 3 übermittelt. Im vorliegenden Fall werden vom Anwender des Anwenderrechners 1 diejenigen Eingabedaten zum Start des Simulationsvorganges der Appli- kation 4 vorgesehen, aus denen auch der Hash-Code des Lizenzdeskriptors berechnet wurde. Die Daten 5 entsprechen also den Daten 5' (Datengleichheit ist in der Figur durch 5' =5 gekennzeichnet) . Auch wird der Lizenztoken 8 selbst als diejenige Lizenzinformation 8' verwendet, die an den Ressourcenrechner 3 übertragen wird. Dies ist durch 8 '=8 gekennzeichnet.2, which checks the above-described access authorization. If an appropriate access authorization is given (which the license server 2 can check, for example, on the basis of a previously stored table with user computer or customer data and data for the application 4), then the license server 2 cryptographically encrypts the license descriptor 7 with a secret key of a public key infra - Structure (for example, an X.509-based public key infrastructure) and forms by means of this encryption from the optionally suitably adapted or supplemented license descriptor 7 a license token 8. Since an appropriate access to the application 4 is given, is this license token 8 then transferred from the license server 2 back to the user computer 1. In the user computer 1, the input data 5 'to be used for starting the simulation calculations by means of the application 4 is then based on the license token 8 License information 8 'connected and transmitted to the resource calculator 3. In the present case, the user of the user computer 1 provides those input data for starting the simulation process of the application 4, from which the hash code of the license descriptor was also calculated. The data 5 thus correspond to the data 5 '(data equality is indicated by 5' = 5 in the figure). Also, the license token 8 itself is used as the license information 8 'transmitted to the resource calculator 3. This is indicated by 8 '= 8.
Der vom Anwenderrechner 1 an den Ressourcenrechner 3 übermittelte Lizenztoken 8 wird dann durch die Appli- kation 4 im Ressourcenrechner 3 dahingehend überprüft, ob eine Zugriffsberechtigung der Eingabedaten 5 des Anwenderrechners 1 auf die Applikation 4 gegeben ist. Hierzu wird der Lizenztoken 8 durch die Applikation mittels des öffentlichen Schlüssels der oben erwähnten Public-Key-Infrastruktur (der vom Lizenzserver zur Verfügung gestellt wird und bereits im Ressourcenrechner 3 abgespeichert wurde) zunächst entschlüsselt und dann entsprechend geprüft. Zusätzlich wird durch den Ressourcenrechner (oder auch durch die Applikation selbst) ein kryptographischer Code in Form eines Hash-Codes auf dieselbe Art und Weise aus den Eingabedaten 5 berechnet wie im Anwenderrechner 1. Dieser im Ressourcenrechner 3 berechnete Hash-Code wird dann mit dem Hash-Code verglichen, der im Lizenzdeskriptor 7 zunächst vom Anwenderrechner 1 an den Lizenzserver 2 und dann im verschlüsselten Lizenzdeskriptor, also im Lizenztoken 8, vom Lizenzserver 2 über den Anwenderrechner 1 an den Ressourcenrechner 3 übermittelt wurde. Nur wenn diese beiden Hash-Codes übereinstimmen (und nach erfolgreicher Entschlüsselung und Überprüfung des Lizenztokens 8 mit dem öffentlichen Schlüssel) , startet die Applikation 4 mit den übermittelten Eingabedaten 5 ihre Simulationsrechnung. Die durch die Applikation aus den Eingabedaten 5 berechneten Ausgabedaten 9 (Simu- lationsergebnisse) werden dann vom Ressourcenrechner 3 an den Anwenderrechner 1 übertragen.The license token 8 transmitted by the user computer 1 to the resource computer 3 is then checked by the application 4 in the resource computer 3 to determine whether access authorization of the input data 5 of the user computer 1 to the application 4 is given. For this purpose, the license token 8 is first decrypted by the application by means of the public key of the above-mentioned public-key infrastructure (which has been made available by the license server and has already been stored in the resource computer 3) and then checked accordingly. In addition, by the resource calculator (or by the application itself) a cryptographic code in the form of a hash code calculated in the same manner from the input data 5 as in the user computer 1. This calculated in the resource calculator 3 hash code is then with the hash Code, which was transmitted in the license descriptor 7 first from the user computer 1 to the license server 2 and then in the encrypted license descriptor, ie in the license token 8, from the license server 2 via the user computer 1 to the resource computer 3. Only if these two hash codes match (and after successful decryption and verification of the license token 8 with the public key), the application 4 starts with the transmitted input data 5 their simulation calculation. The output data 9 (simulation results) calculated by the application from the input data 5 are then transmitted from the resource computer 3 to the user computer 1.
Im beschriebenen Fall geschieht die bidirektionale Datenübertragung zwischen den Einheiten 1, 2 und 3 im Rahmen des erfindungsgemäßen Rechnernetzwerkes über das Internet. Es kann jedoch selbstverständlich auch ein lokales Rechnernetzwerk (Intranet innerhalb einer Organisation) eingesetzt werden.In the case described, the bidirectional data transmission between the units 1, 2 and 3 takes place in the context of the computer network according to the invention via the Internet. Of course, a local computer network (intranet within an organization) can also be used.
Im Rahmen des beschriebenen Ausführungsbeispiels ist es auch möglich, dass der Lizenzdeskriptor 7 vom Anwenderrechner 1 mit einer vom Anwender gewünschten Dauer für die Lizenz für die Applikation 4 generiert wird. Der Lizenzdeskriptor 7 wird dann mit dieser Information an den Lizenzserver 2 übertragen, der feststellt, ob eine gewünschte Lizenzdauer möglich ist (dies kann beispielsweise anhand eines Anwenderkontos eines Anwenders 1 auf dem Lizenzserver 2 geschehen) . Der Lizenztoken 8 wird dann vom Lizenzser- ver 2 mit einer entsprechend festgesetzten Lizenzdauer generiert. Die Lizenzdauer ist dabei so definiert, dass mit ihr dem Ressourcenrechner 3 letztendlich ein Zeitfenster übermittelt wird, während dessen die Applikation 4 auf Basis der Eingabedaten 5 Simulations- rechnungen durchführen kann.Within the scope of the exemplary embodiment described, it is also possible for the license descriptor 7 to be generated by the user computer 1 with a duration desired by the user for the license for the application 4. The license descriptor 7 is then transmitted with this information to the license server 2, which determines whether a desired license period is possible (this can be done for example on the basis of a user account of a user 1 on the license server 2). The license token 8 is then generated by the license server 2 with a correspondingly determined license duration. The license duration is defined in such a way that ultimately a time window is transmitted to the resource computer 3, during which the application 4 can perform simulation calculations on the basis of the input data 5.
Darüber hinaus ist es auch möglich, nach Durchführung der Simulationsrechnungen durch die Applikation 4 dem Lizenztoken 8 die Zeitdauer, die die Simulationsrech- nungen auf dem Ressourcenrechner 3 benötigt haben, hinzuzufügen und den entsprechend ergänzten Lizenzto- ken 8 zusammen mit den Ausgabedaten 9 zurück an den Anwenderrechner 1 zu übertragen.In addition, it is also possible, after execution of the simulation calculations by the application 4, to add to the license token 8 the time duration which the simulation calculations on the resource computer 3 required and to supplement the correspondingly supplemented license token. ken 8 together with the output data 9 back to the user computer 1 to transfer.
Wenn somit der Anwender 1 seine Eingabedatei 5 für einen Rechenjob an einen externen RessourcenproviderThus, when the user 1 sends his input file 5 for a computational job to an external resource provider
4 übertragen möchte, muss er beim Hersteller der Software bzw. beim Lizenzserver einen Lizenztoken 8 für seine Eingabedaten erstellen lassen. Der Hersteller sichert über diesen Mechanismus zu, dass für die- se Berechnung eine Lizenzvereinbarung existiert. Der Lizenztoken 8 wird dann zusammen mit den Eingabedaten4, he must have the manufacturer of the software or the license server create a license token 8 for his input data. The manufacturer assures through this mechanism that a license agreement exists for this calculation. The license token 8 is then combined with the input data
5 an den Ressourcenprovider 3 weitergeleitet. Beim Start der Applikation 4 kann diese dann den Lizenztoken prüfen und die Berechnungen ausführen.5 forwarded to the resource provider 3. When the application 4 is started, it can then check the license token and carry out the calculations.
Eine sichere Implementierung muss v.a. Schutz vor Manipulationen bieten bzw. die Wiederverwendung von Schlüsseln für andere Berechnungen verhindern. Dies kann beispielsweise einfach durch die Verwendung ei- ner X.509-basierten Public-Key-Infrastruktur (PKI) erreicht werden: Der Lizenznehmer erstellt einen Lizenzdeskriptor für die Eingabedaten, indem er einen kryptographischen Hash der Eingabedaten zum Lizenzgeber schickt. Gleichzeitig fügt der Lizenznehmer der Anfrage auch einen Deskriptor mit weiteren Daten zur eigenen Person (Anwenderidentifikationsdaten) bei . Auf dieser Basis kann der Lizenzgeber dann beispielsweise entscheiden, ob der Lizenznehmer bereits bekannt ist und ob ihm die Zugriffsberechtigung gegeben werden kann. Eventuell können hier auch Angaben zur Art der gewährleisteten Lizenz übertragen werden.A secure implementation must be v. A. Provide protection against tampering or prevent the reuse of keys for other calculations. This can be achieved, for example, simply by using an X.509-based Public Key Infrastructure (PKI): The licensee creates a license descriptor for the input data by sending a cryptographic hash of the input data to the licensor. At the same time, the licensee also adds a descriptor to the request with further personal data (user identification data). On this basis, the licensor can then decide, for example, whether the licensee is already known and whether he can be granted the access rights. It may also be possible to transmit information on the type of license granted here.
Ein Beispiel für einen solchen Lizenzdeskriptor 7 ist in Figur 2 gegeben. Die entsprechenden Angaben müssen natürlich beim Lizenzgeber verarbeitet werden können. Sollte die Prüfung der Kundenanfrage den Anforderungen des Lizenzgebers genügen, so unterzeichnet er den Lizenzdeskriptor 7 mit seinem geheimen X.509- Schlüssel und schickt diesen als Lizenztoken 8 zum Lizenznehmer 1 zurück.An example of such a license descriptor 7 is given in FIG. The corresponding information must of course be able to be processed by the licensor. If the customer request check satisfies the requirements of the licensor, he signs the license descriptor 7 with his secret X.509 key and returns it as a license token 8 to the licensee 1.
Der Lizenznehmer 1 überträgt dann seine Daten zusammen mit dem Lizenztoken 8 zu einem Ressourcenanbieter 3. Dieser hat zwar beispielsweise die Software des Lizenzgebers installiert, besitzt jedoch u.U. selbst keine Lizenz dafür.The licensee 1 then transmits his data together with the license token 8 to a resource provider 3. Although he has installed, for example, the software of the licensor, but may have. even no license for it.
Der Job wird ganz normal über ein Batchsystem gestartet. Die Applikation prüft nun mit Hilfe des öffent- liehen Schlüssels des Lizenzgebers den Lizenztoken und hat damit eine Vorbedingung für die Gültigkeit der Lizenz abgesichert. (Hier wird geprüft, ob der Lizenztoken tatsächlich vom Lizenzserver ausgestellt wurde,- die Prüfung, ob die Lizenz im Anschluss auch für diese Eingabedaten gilt, wird wie nachfolgend beschrieben durchgeführt.) Dann berechnet sie den kryp- tographischen Hash der Eingabe und vergleicht ihn mit dem signierten Hash aus dem Lizenztoken. Dies ist möglich, da der Lizenzdeskriptor mit dem von Anwender generierten Hash an den Lizenzserver übermittelt wird, dort in den Lizenztoken übernommen wird und anschließend an den Anwender- und den Ressourcenrechner übermittelt wird. Sollten diese übereinstimmen, dann liegt eine gültige Lizenz für diese Eingabedaten vor und die Berechnung kann starten.The job is started normally via a batch system. The application now checks the license token with the help of the licensor's public key and thus has secured a precondition for the validity of the license. (Here it is checked whether the license token was actually issued by the license server, - the check whether the license subsequently also applies to this input data is carried out as described below.) Then it calculates the cryptographic hash of the input and compares it with the signed hash from the license token. This is possible because the license descriptor is transmitted with the user-generated hash to the license server, where it is adopted in the license token and then transmitted to the user and the resource computer. If these match, then there is a valid license for this input data and the calculation can start.
Der Lizenzserver prüft somit, ob der Anwender Ia die Applikation benutzen darf. Dabei wird ein beispielsweise von den Applikationsdaten/Eingabedaten abhängi- ger Lizenztoken erstellt. Der Anwenderrechner muss diesen Lizenztoken prüfen, um das Vorliegen einer korrekten Lizenz für die gegebenen Eingabedaten sicherzustellen. Der Grund hierfür ist, dass der Ressourcenrechner und der Lizenzserver keine Kenntnis voneinander haben, d.h. es muss zum Zeitpunkt des Re- chenjobstarts keine Kommunikation nach außen erfolgen: Die Lizenzprüfung kann rein mit lokal vorhandenen Daten erfolgen. Im vorliegenden Fall müssen somit mehrere Bedingungen zutreffen, damit eine Lizenz für die Eingabedaten gültig ist (Prüfverfahren, das durch die Applikation und/oder den Ressourcenrechner durchgeführt wird) :The license server thus checks whether the user Ia is allowed to use the application. In doing so, a license token dependent, for example, on the application data / input data is created. The user computer must check this license token to verify the existence of a license token ensure correct license for the given input data. The reason for this is that the resource calculator and the license server do not have any knowledge of each other, ie no communication to the outside must be made at the time the job starts. The license check can be done purely with locally available data. Thus, in the present case, several conditions must be met for a license to be valid for the input data (test procedure performed by the application and / or the resource calculator):
1. korrekte Signatur des Lizenztokens (der Token selbst ist unmodifiziert) ;1. correct signature of the license token (the token itself is unmodified);
2. der Token bezieht sich auf die Eingabedaten (hier: die Hash-Codes stimmen überein) und2. the token refers to the input data (here: the hash codes match) and
3. eventuell im Lizenztoken kodierte Einschränkun- gen (z.B. dass die Berechnungen nur auf einer3. restrictions possibly encoded in the license token (for example, that the computations are limited to one
CPU des Ressourcenrechners ausgeführt werden dürfen) sind erfüllt.CPU of the resource computer may be executed) are fulfilled.
Es ist somit für den Lizenzgeber sehr einfach, anwen- derindividuelle Lizenztoken in einem automatisierten Verfahren zu generieren. Dieser Schritt kann z.B. auch direkt in die Preprocessing-Tools der Lizenzgeber integriert werden. Es kann eine Art "Archiv" für die Submission zu einem Ressourcenprovider erstellt werden, welches neben den Eingabedaten auch die Lizenz für die Applikation beinhaltet. Der Lizenznehmer muss dann nur dieses Archiv zum Ressourcenprovider schicken.It is thus very easy for the licensor to generate user-specific license tokens in an automated process. This step may e.g. can also be integrated directly into the licensing preprocessing tools. A kind of "archive" for the submission to a resource provider can be created, which contains not only the input data but also the license for the application. The licensee then only has to send this archive to the resource provider.
Aus Sicht der Ressourcenprovider bietet dieses Lizenzierungsverfahren den Vorteil, dass die Applikation aus den Eingabedaten selbst die Lizenz prüft. Es ist nicht nötig, eine permanente Applikationslizenz vorzuhalten oder eine entsprechende Netzwerkkonfiguration für den Lizenzserver jedes Kunden zu pflegen. Im Falle eines fehlgeschlagenen Jobs (z.B. durch Rechnerausfälle) kann der Provider auch selbstständig den Job neu starten, ohne auf eine Lizenz warten zu müssen.From the point of view of resource providers, this licensing process has the advantage that the application checking the license from the input data itself. It is not necessary to maintain a permanent application license or to maintain a corresponding network configuration for each customer's license server. In the case of a failed job (eg due to computer failures), the provider can also independently restart the job without having to wait for a license.
Der Anwender hat bei dieser Lösung den zusätzlichen Schritt der Lizenzgenerierung zu tragen, der jedoch komplett in Software abgewickelt werden kann. In Bezug auf das Handling der Eingabedaten empfiehlt es sich, innerhalb der Preprocessing-Tools eine Archiv- datei zu generieren, um den Transfer zum Ressourcenprovider einfach zu halten.In this solution, the user has to take the additional step of generating the license, which, however, can be handled completely in software. In terms of handling the input data, it is recommended to generate an archive file within the preprocessing tools to make the transfer to the resource provider easy.
In Ergänzung zum Binden der Lizenztoken an eine Eingabedatei ist es auch möglich, die Lizenz an andere Gegebenheiten zu binden. Das Verfahren bleibt dabei unverändert - lediglich die Generierung des Hashes wird verändert: Im bisher beschriebenen Abschnitt wird der Hash aus den Eingabedaten berechnet. Für den Nutzer eines interaktiven Preprocessing-Tools ist dies natürlich keine Option, da womöglich noch keinerlei Eingabedaten existieren. Statt eines Hashes auf die Eingabedaten ist es hier jedoch möglich, die Benutzerumgebung durch einen Hash zu charakterisieren. Zusammen mit weiteren Daten kann daraus ein Li- zenzdeskriptor gebildet werden, welcher dann wie üblich zum Anfordern einer Lizenz (Lizenztoken) benutzt werden kann.In addition to binding the license token to an input file, it is also possible to bind the license to other circumstances. The method remains unchanged - only the generation of the hash is changed: In the section described so far, the hash is calculated from the input data. Of course, this is not an option for the user of an interactive preprocessing tool, as there may not be any input data yet. Instead of a hash on the input data, however, it is possible here to characterize the user environment with a hash. Together with other data, a license descriptor can be formed from this, which can then be used as usual to request a license (license token).
Der Hash stellt dabei eine Identifikation des Rech- ners des Benutzers dar, z.B. eine Kombination aus CPU-ID, MAC-Adresse etc. Folgendes Einsatzszenario ist dabei denkbar: Der Benutzer möchte eine für eine Woche gültige Lizenz auf seinem Notebook haben, z.B. um während eines Kundenbesuches unabhängig vom Netzwerk arbeiten zu können. Er startet den Lizenzclient auf dem Notebook, woraufhin dieser einen kryp- tographischen Hash aus den Hardware-Komponenten des Notebooks berechnet. Zusammen mit weiteren Daten, wie z.B. der gewünschten Lizenzdauer, entsteht ein Lizenzdeskriptor, der dann durch den Lizenzserver sig- niert werden kann. Dieser Lizenztoken kann dann in einer Datei abgespeichert werden.The hash represents an identification of the user's computer, eg a combination of CPU ID, MAC address, etc. The following deployment scenario is conceivable: The user would like to have a valid license for one week on his notebook, eg to be able to work independently of the network during a customer visit. He starts the license client on the notebook, whereupon he calculates a cryptographic hash from the hardware components of the notebook. Together with other data, such as the desired license period, a license descriptor is created, which can then be signed by the license server. This license token can then be saved in a file.
Bei dem Starten der Applikation wird dann der Lizenztoken zunächst auf seine Gültigkeit geprüft und dann der aktuell kryptographische Hash aus der Hardware berechnet. Stimmen die beiden Hashes überein, so gelten die in dem Lizenzdeskriptor beschriebenen Lizenz - bedingungen .When the application is started, the license token is first checked for validity and then the current cryptographic hash is calculated from the hardware. If the two hashes match, the license conditions described in the license descriptor apply.
In Anlehnung an Floating-Lizenzen in einem lokalenBased on floating licenses in a local
Netzwerk kann es nötig sein, dass ein Benutzer seine Lizenz nach der Benutzung zurückgibt. Da es im Allgemeinen nicht möglich ist, mit dem Ressourcenrechner zu kommunizieren, auf dem die Berechnung läuft, kann die Rückgabe nur indirekt erfolgen. Dazu wird die Lizenz für eine längere Zeit ausgestellt, als der Job wirklich benötigt. Nach Ablauf der Rechnung protokolliert die Applikation die in Anspruch genommene Rechenzeit .Network may require a user to return their license after use. Since it is generally not possible to communicate with the resource calculator on which the calculation is running, the return can only be indirect. To do this, the license will be issued for a longer time than the job really needed. After the calculation has expired, the application logs the used computing time.
Diese Protokollierung kann als weiteres Feld in den Lizenztoken mit aufgenommen und mit der Signatur des Applikationsbinaries versehen werden. Zusammen mit den Ausgabedaten der Applikation wird der Lizenztoken wieder zurück zum Benutzer übertragen. Dort kann der Lizenzclient den veränderten Lizenztoken wieder zu- rück an den Lizenzserver schicken.This logging can be included as an additional field in the license token and provided with the signature of the application binaries. Together with the output data of the application, the license token is transferred back to the user. There, the license client can restore the changed license token. Send back to the license server.
Der Lizenzserver prüft seinerseits die Signatur in Bezug auf die Rechenzeit. Falls die Signatur in Ord- nung ist, wird die unbenutzte Rechenzeit zurück auf das Konto des Benutzers transferiert.The license server, in turn, checks the signature for the computation time. If the signature is correct, the unused computation time is transferred back to the user's account.
Nachfolgend wird eine konkrete Implementierung eines erfindungsgemäßen Rechnernetzwerkes beschrieben:A concrete implementation of a computer network according to the invention is described below:
Der Lizenzierungsdienst besteht aus den bereits genannten Komponenten Benutzerclient (auf Anwenderrechner 1) , Lizenzserver 2 und Lizenzprüfer (Teil des Ressourcenrechners 3) . Darüber hinaus wird zur Kommuni- kation noch ein Messaging-Dienst benötigt. Für die folgende Diskussion der Komponenten wird davon ausgegangen, dass die zugrunde liegende Applikation aus einer Benutzerkomponente und einem Berechnungsbackend besteht und die Lizenz an eine Eingabedatei gebunden werden soll. Dabei werden zunächst die Komponenten einzeln dargestellt, anschließend das Kommunikations- protokoll. Einen Überblick über die verwendeten Komponenten gibt Figur 3.The licensing service consists of the already mentioned components User Client (on User Computer 1), License Server 2 and License Checker (part of Resource Calculator 3). In addition, a messaging service is required for the communication. For the following discussion of the components, it is assumed that the underlying application consists of a user component and a calculation backend and the license is to be bound to an input file. First, the components are displayed individually, followed by the communication protocol. An overview of the components used is given in FIG. 3.
Der Benutzerclient:The user client:
Der Benutzerclient ist eine Softwarekomponente, welche direkt in die Endanwender-Applikation integriert werden kann. Die Aufgabe des Benutzerclients ist es, für einen gegebenen Eingabedatensatz einen Lizenz - Schlüssel vom Lizenzserver anzufordern.The user client is a software component that can be integrated directly into the end-user application. The purpose of the user client is to request a license key from the license server for a given input record.
Dazu wird der Eingabedatensatz zunächst durch einen Hash charakterisiert. Neben einem Hash müssen auch weitere Informationen bezüglich der Anwendung zusammengestellt werden, z.B. wie viele CPUs verwendet werden sollen. Ein Beispiel eines Lizenzdeskriptors zeigt Figur 4. Der interne Ablauf des Benutzerclients sieht so aus:For this purpose, the input data set is first characterized by a hash. In addition to a hash, further information regarding the application must be compiled, eg how many CPUs are used should be. An example of a license descriptor is shown in Figure 4. The internal flow of the user's client looks like this:
1. In Abhängigkeit von der Konfiguration des1. Depending on the configuration of the
Clients wird ein bestimmter kryptographischer Hash aus den Eingabedaten berechnet.Clients are charged a specific cryptographic hash from the input data.
2. Der Lizenzdeskriptor wird zusammengestellt. Um die Identität des Benutzers feststellen zu können, wird der Lizenzdeskriptor mit einer digitalen Signatur versehen.2. The license descriptor is compiled. To determine the identity of the user, the license descriptor is provided with a digital signature.
3. Der Lizenzdeskriptor wird mit der Signatur in eine Anfrage verpackt und zum Lizenzserver geschickt .3. The license descriptor is packaged with the signature in a request and sent to the license server.
4. Die Antwort des Servers enthält einen verschlüsselten Lizenztoken. Der Client fragt den Server nochmals nach dem Entschlüsselungskey. Mit diesem entschlüsselt der Client den Lizenztoken.4. The server's response contains an encrypted license token. The client asks the server again for the decryption key. With this the client decrypts the license token.
5. Der Lizenztoken wird in einer Datei gespeichert und dem Benutzer zugänglich gemacht.5. The license token is stored in a file and made available to the user.
Falls unbenutzte Rechenzeiten wieder zurückgebucht werden sollen, wird der modifizierte Lizenztoken nach Abschluss der Berechnung wieder zum Lizenzserver übermittelt. Sollte hierbei ein Fehler auftreten, wird der Benutzer benachrichtigt. Der Lizenzserver:If unused computation times are to be reversed, the modified license token is sent back to the license server after the computation has been completed. If an error occurs, the user will be notified. The license server:
Der Lizenzserver ist ein Dämon, der permanent auf eingehende Lizenzanfragen wartet und diese beantwor- tet. Ein gültiger Lizenztoken wird erzeugt, indem der Lizenzdeskriptor vom Benutzerclient mit der Signatur des Servers versehen wird. Der interne Ablauf sieht so aus :The license server is a daemon that constantly waits for and answers incoming license requests. A valid license token is created by providing the license descriptor with the signature of the server from the user's client. The internal process looks like this:
1. Der empfangene Lizenzdeskriptor wird geöffnet und die Identität des Benutzers anhand seiner digitalen Unterschrift überprüft. Damit ist die Anfrage authentifiziert, d.h. es ist klar, wem die Lizenzanfrage zuzuordnen ist.1. The received license descriptor is opened and the identity of the user is checked by means of his digital signature. Thus, the request is authenticated, i. It is clear to whom the license request is to be assigned.
2. Dann muss der Anwender autorisiert werden, d.h. aufgrund einer Kundendatenbank etc. wird entschieden, ob der Anwender diese Lizenz überhaupt anfragen darf. Dabei können Details der ange- fragten license-terms (z.B. Anzahl der CPUs, Berechnungsmodule) überprüft werden. Diese Funktionalität ist in einem separaten Lizenzmanagement-Plugin gekapselt.2. Then the user must be authorized, i. Based on a customer database, etc., it is decided whether the user may even request this license. Details of the requested license terms (for example number of CPUs, calculation modules) can be checked. This functionality is encapsulated in a separate license management plugin.
3. Schließlich wird der Lizenzdeskriptor mit dem geheimen Schlüssel des Lizenzservers signiert. Der Server vergibt für diese Anfrage einen symmetrischen Key und verschlüsselt den Lizenztoken damit. Der Lizenztoken wird nun zurückgeschickt.3. Finally, the license descriptor is signed with the secret key of the license server. The server assigns a symmetric key for this request and encrypts the license token with it. The license token will now be returned.
4. Der Server wartet auf die Nachfrage des Clients nach dem Key. Falls diese Anfrage eingeht, weiß der Server, dass der Lizenztoken beim Client angekommen ist. Der Server antwortet mit dem Key, um die Lizenz freizuschalten. Die Antwort des Lizenzservers fügt dem Lizenzdeskriptor also eine Signatur hinzu, wenn die Lizenz gültig ist. Dieser Lizenztoken bezeugt die Gültigkeit einer Lizenz zu den Bedingungen, die im Lizenzdeskriptor genannt sind.4. The server is waiting for the client's request for the key. If this request comes in, the server knows that the license token has arrived at the client. The server responds with the key to unlock the license. The license server's answer adds a signature to the license descriptor if the license is valid. This license token certifies the validity of a license under the terms specified in the license descriptor.
Wenn der Lizenzclient nach Ende des Rechenjobs einen unterschriebenen Lizenztoken zurückgeben will, so wird dieser im Hinblick auf die verbrauchte Rechen- zeit ausgewertet.If the license client wants to return a signed license token after the end of the calculation job, it will be evaluated with regard to the used computing time.
Der Lizenzprüfer:The license examiner:
Diese Komponente wird direkt in das Berechnungsba- ckend integriert. Ihre Aufgabe ist es, die Gültigkeit eines Lizenztokens zu überprüfen. Dazu werden folgende Schritte durchgeführt:This component is integrated directly into the calculation bucket. Your job is to check the validity of a license token. For this the following steps are carried out:
1. Der Lizenztoken wird geöffnet und die Signatur des Lizenzservers auf ihre Gültigkeit überprüft.1. The license token is opened and the signature of the license server is checked for validity.
2. Die license-terms des Deskriptors werden geprüft und die entsprechenden Module des Berechnungsba- ckends freigegeben.2. The license terms of the descriptor are checked and the corresponding modules of the calculation block end are released.
3. Der Hash der Eingabedaten wird berechnet und mit dem Wert im Lizenzdeskriptor verglichen. Wenn bis hierher alle Prüfungen erfolgreich sind, ist die Lizenz für diesen Eingabedatensatz gültig.3. The hash of the input data is calculated and compared with the value in the license descriptor. If all checks are successful, the license for this input record is valid.
Wichtig hierbei ist, dass der Lizenzprüfer lediglich den öffentlichen Schlüssel des Lizenzservers kennen muss. Es ist nicht erforderlich, Netzwerkverbindungen zum Lizenzserver aufzubauen - die Prüfung des Lizenz- deskriptors kann lokal erfolgen. Nach Ablauf der Berechnung kann der Lizenzprüfer die verbrauchte Rechenzeit im Lizenztoken dokumentieren und signieren. Der Token kann dann mit den Ergebnissen zurück zum Anwender kopiert werden.It is important that the license examiner only has to know the public key of the license server. It is not necessary to establish network connections to the license server - the license descriptor can be checked locally. After the calculation has expired, the license examiner can document and sign the used up processing time in the license token. The token can then be copied back to the user with the results.
Der Lizenzserver und der Benutzerclient tauschen lediglich kompakte Nachrichten aus, es ist nicht erforderlich, größere Datenmengen auszutauschen. Es ist daher möglich, die Kommunikation über eine Messaging- Queue abzuwickeln. Dabei können mehrere physikalische Lizenzserver zu einem logischen verknüpft werden, um die Ausfallsicherheit zu erhöhen. Darüber hinaus muss lediglich die Messaging-Queue über das Internet zugänglich gemacht werden, sodass keine direkten An- griffe auf die Lizenzserver möglich sind.The license server and the user client exchange only compact messages, it is not necessary to exchange larger amounts of data. It is therefore possible to handle the communication via a messaging queue. Several physical license servers can be linked to a logical one to increase the reliability. In addition, only the messaging queue needs to be made accessible via the Internet so that no direct attacks on the license servers are possible.
Das Protokoll:The protocol:
Unter der Voraussetzung, dass die Nachrichtenüber- mittlung zwischen Lizenzclient und Lizenzserver fehlerfrei und zuverlässig funktioniert, kann man ein sehr einfaches Protokoll realisieren. Das Protokoll muss jedoch auch bei fehlerhaften Netzwerkverbindungen funktionieren.Provided that messaging between the license client and the license server works correctly and reliably, you can implement a very simple protocol. However, the protocol must also work in case of faulty network connections.
Bei genauerer Betrachtung stellte sich heraus, dass der Austausch des Lizenztokens auf das Problem der byzantinischen Generäle zurückgeführt werden kann: Wie können zwei Parteien eine konsistente Sicht auf die Übertragung der Lizenztoken haben? Dieses Problem ist nicht generell lösbar. Zur Veranschaulichung kann man sich vorstellen, was passiert, wenn einzelne Nachrichten verloren gehen: Angenommen, der Client fragt eine Lizenz beim Server an. Er erhält die Li- zenz, allerdings antwortet er nicht mehr darauf. Der Server kann nun nicht entscheiden, ob der Client die Lizenz erhalten hat oder ob die Lizenz nie beim Client angekommen ist.Closer inspection revealed that the exchange of the license token can be traced back to the problem of Byzantine generals: how can two parties have a consistent view of the transfer of the license token? This problem is not generally solvable. To illustrate this, one can imagine what happens when individual messages get lost: Suppose the client requests a license from the server. He gets the license, but he does not answer. The server can not decide now whether the client the License or whether the license has never arrived at the client.
Um dennoch die Übertragung des Lizenztokens sicher zu machen, wurde eine zusätzliche Komponente (derHowever, to ensure the transfer of the license token, an additional component (the
Schlüssel bzw. Key) in das Protokoll eingefügt. Der Key verschlüsselt den Lizenztoken symmetrisch. Nachdem der Client den verschlüsselten Lizenztoken erhalten hat, fragt er nochmals beim Lizenzserver nach dem zugehörigen Key. Dabei gibt er eine Transaktionsnummer an, die im gleichen Datenpaket wie der Lizenztoken vom Server übermittelt wurde. Wenn die Anfrage nach dem Key beim Server mit der korrekten Transaktionsnummer empfangen wurde, dann kann die Lizenz end- gültig berechnet werden.Key or key) in the protocol. The key encrypts the license token symmetrically. After the client has received the encrypted license token, he asks the license server for the corresponding key again. He specifies a transaction number that was transmitted by the server in the same data package as the license token. If the request for the key has been received by the server with the correct transaction number, then the license can be finally calculated.
Die Nachricht mit dem Key des Servers kann allerdings auch verloren gehen. In diesem Fall kann der Client dem Benutzer eine Nachricht anzeigen mit der Transak- tionsnummer - mit dieser kann sich der Benutzer dann an den Lizenzgeber wenden und den Freischaltkey anfragen.However, the message with the key of the server can also be lost. In this case, the client can display to the user a message with the transaction number - with this the user can then contact the licensor and request the activation key.
Zusammenfassend lässt sich sagen, dass dieser Fall zwar nicht ausgeschlossen werden kann, insgesamt jedoch recht unwahrscheinlich ist. Es ist nicht damit zu rechnen, dass der Benutzer oft beim Lizenzgeber nach einem Freischaltkey nachfragen muss.In summary, although this case can not be ruled out, it is unlikely overall. It is not to be expected that the user often has to ask the licensor for an activation key.
ή ή

Claims

Patentansprüche claims
1. Rechneranordnung mit automatisierter Zugriffssteuerung von einer und Zugriffskontrolle auf eine Applikation, aufweisend1. Computer arrangement with automated access control of one and access control to an application, comprising
mindestens eine Anwenderkomponente (1) , eine zum bidirektionalen Datenaustausch mit der Anwenderkomponente ausgebildete Lizenzserverkomponente ( 2 ) und mindestens eine zum bidirektionalen Datenaustausch mit der Anwenderkomponente ausgebildete Ressourcenkomponente (3), wobei die Ressourcenkomponente (3) eine Applikation (4) steuert und/oder umfasst, wobei von der Anwenderkomponente auf Basis von ersten Eingabedaten (5) für die Applikation, von Hardwaremerkmalen (6) der Anwenderkomponente und/oder von Informationen über einen auf die Anwenderkomponente zugriffsberechtigten Anwender (Ia) ein Lizenzdeskriptor (7) generierbar ist, wobei dieser Lizenzdeskriptor an die Lizenzserverkomponente übermittelbar und durch die Lizenzserverkomponente dahingehend überprüfbar ist, ob eine Zugriffsberechtigung der ersten Eingabedaten (5) , der Anwenderkomponente und/oder des Anwenders auf die Applikation gegeben ist,at least one user component (1), a license server component (2) designed for bidirectional data exchange with the user component and at least one resource component (3) designed for bidirectional data exchange with the user component, the resource component (3) controlling and / or comprising an application (4) in which a license descriptor (7) can be generated by the user component on the basis of first input data (5) for the application, hardware features (6) of the user component and / or information about a user (Ia) entitled to access the user component, this license descriptor can be transmitted to the license server component and can be checked by the license server component as to whether access authorization of the first input data (5), the user component and / or the user to the application is given;
wobei bei Vorliegen dieser Zugriffsberechtigung von der Lizenzserverkomponente ein den Zugriff auf die Applikation ermöglichender Lizenztokenwherein, if this access authorization is available from the license server component, a license token enabling access to the application
(8) generierbar und an die Anwenderkomponente übermittelbar ist, wobei durch die Anwenderkomponente der Lizenztoken oder auf diesem basierende Lizenzinformationen (8') sowie zweite Eingabedaten (5') für die Applikation an die Ressourcenkomponente übermit- telbar sind und(8) can be generated and transmitted to the user component, wherein by the user component of the license token or license information based thereon (8 ') as well as second input data (5') for the application to the resource component can be transmitted and
wobei der Lizenztoken oder die Lizenzinformationen durch die Ressourcenkomponente und/oder die Applikation dahingehend überprüfbar ist/sind, ob die Zugriffsberechtigung der zweiten Eingabeda- ten (5'), der Anwenderkomponente und/oder deswherein the license token or the license information can be checked by the resource component and / or the application to determine whether the access authorization of the second input data (5 '), the user component and / or the
Anwenders auf die Applikation gegeben ist.User is given to the application.
2. Rechneranordnung nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass der Lizenzdeskriptor durch die Lizenzserverkomponente dahingehend überprüfbar ist, ob für die ersten Eingabedaten (5) eine Zugriffsberechtigung der Anwenderkomponente und/oder des Anwenders auf die Applikation gegeben ist2. Computer arrangement according to the preceding claim, characterized in that the license descriptor can be checked by the license server component to determine whether access authorization of the user component and / or the user to the application is given for the first input data (5)
und/oder dass der Lizenztoken oder die Lizenzinformationen durch die Ressourcenkomponente und/oder die Applikation dahingehend überprüfbar ist/sind, ob für die übermittelten zweiten Eingabedaten (5') die Zugriffsberechtigung der Anwenderkomponente und/oder des Anwenders auf die Applikation gegeben ist.and / or that the license token or the license information can be checked by the resource component and / or the application to determine whether the access authorization of the user component and / or of the user to the application is given for the transmitted second input data (5 ').
3. Rechneranordnung nach einem der vorhergehenden Ansprüche ,3. Computer arrangement according to one of the preceding claims,
dadurch gekennzeichnet, dass der Lizenzdeskriptor einen aus den ersten Eingabedaten (5) , den Hardwaremerkmalen (6) und/oder den Informationen über den zugriffsberechtigten Anwender berechneten kryptographischen Code, insbesondere einen Hash-Code, umfasstcharacterized in that the license descriptor comprises a cryptographic code, in particular a hash code, calculated from the first input data (5), the hardware features (6) and / or the information about the authorized user
und/oder dass der Lizenzdeskriptor Anwenderidentifikati- onsdaten zur Identifikation der Anwenderkomponente und/oder des zugriffsberechtigten Anwen- ders umfasst.and / or that the license descriptor comprises user identification data for identifying the user component and / or the authorized user.
4. Rechneranordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Lizenzdeskriptor auf Basis von Hardwareei- genschaften und/oder hardwaregestützten Merkmalen der Anwenderkomponente, insbesondere eines Dongles, und/oder von elektronischen Ausweisen des Anwenders, insbesondere einer Smartcard, generierbar ist.4. Computer arrangement according to one of the preceding claims, characterized in that the license descriptor based on hardware properties and / or hardware-based features of the user component, in particular a dongle, and / or electronic ID cards of the user, in particular a smart card can be generated.
5. Rechneranordnung nach einem der vorhergehenden Ansprüche ,5. Computer arrangement according to one of the preceding claims,
dadurch gekennzeichnet, dasscharacterized in that
der Lizenztoken von der Lizenzserverkomponente zumindest teilweise in kryptographisch ver- schlüsselter Form, insbesondere in mit einem geheimen Schlüssel einer Public-Key-Infrastruktur verschlüsselter Form, generierbar ist, wobei der Lizenztoken bevorzugt mittels digitaler Signatur zumindest des Lizenzdeskriptors oder eines Teils desselben generierbar ist.the license token of the license server component at least partially in cryptographically encrypted form, in particular in a secret key of a public-key infrastructure encrypted form, can be generated, the license token preferably by digital signature at least the license descriptor or a part thereof can be generated.
ά ά
6. Rechneranordnung nach einem der vorhergehenden Ansprüche ,6. Computer arrangement according to one of the preceding claims,
dadurch gekennzeichnet, dass der Lizenztoken oder die Lizenzinformationen durch die Ressourcenkomponente und/oder die Applikation auf Basis von kryptographischen Eigenschaften des Lizenztokens, insbesondere auf Basis einer eineindeutigen Signatur und/oder auf Basis eines von der LizenzServerkomponente zur Verfügung gestellten öffentlichen Schlüssels entschlüsselbar und/oder dahingehend überprüfbar ist/sind, ob die Zugriffsberechtigung auf die Applikation gegeben ist und/oder ob der Lizenztoken nicht modifiziert wurde. characterized in that the license token or the license information can be decrypted by the resource component and / or the application on the basis of cryptographic properties of the license token, in particular on the basis of a unique signature and / or on the basis of a provided by the license server component public key and / or to that effect is / are verifiable, whether the access authorization is given to the application and / or whether the license token has not been modified.
7. Rechneranordnung nach einem der beiden vorhergehenden Ansprüche, dadurch gekennzeichnet, dass7. Computer arrangement according to one of the two preceding claims, characterized in that
als kryptographische Infrastruktur eine Public- Key- Infrastruktur, insbesondere eine X.509 ba- sierte Public-Key-Infrastruktur einsetzbar ist und/oder realisiert ist.a public-key infrastructure, in particular an X.509-based public-key infrastructure, can be used and / or realized as a cryptographic infrastructure.
8. Rechneranordnung nach einem der vorhergehenden Ansprüche und nach Anspruch 3 , dadurch gekennzeichnet, dass mittels der Ressourcenkomponente und/oder der8. Computer arrangement according to one of the preceding claims and according to claim 3, characterized in that by means of the resource component and / or the
Applikation ein kryptographischer Code, insbesondere ein Hash-Code, aus den zweiten Eingabedaten (5') und/oder aus von der Anwenderkompo- nente an die Ressourcenkomponente übermittelten Hardwaremerkmalen und/oder Informationen über den Anwender berechenbar und mit dem kryp- tographischer Code, insbesondere dem Hash-Code, der ersten Eingabedaten (5) , der Hardwaremerkmale (6) und/oder der Informationen über den zugriffsberechtigten Anwender des an den Lizenz - Serverkomponente übermittelten Lizenzdeskriptors, der mit dem Lizenztoken über die Anwenderkomponente an die Ressourcenkomponente übermittelt wurde, vergleichbar ist.Application, a cryptographic code, in particular a hash code, from the second input data (5 ') and / or from the user component to the resource component transmitted hardware features and / or information about the user can be calculated and with the kryp- tographic code, in particular the hash code, the first input data (5), the hardware features (6) and / or the information about the authorized user of the license descriptor transmitted to the license server component, which communicates with the license token via the user component to the resource component was comparable.
9. Rechneranordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass9. Computer arrangement according to one of the preceding claims, characterized in that
die ersten Eingabedaten (5) durch einen kryp- tographischen Code, insbesondere einen Hash- Code, repräsentiert sind und dieser mit dem und/oder gebunden an den Lizenzdeskriptor von der Anwenderkomponente an die Lizenzserverkomponente übermittelbar ist und/oderthe first input data (5) are represented by a cryptographic code, in particular a hash code, and this can be communicated with and / or bound to the license descriptor by the user component to the license server component and / or
dass die zweiten Eingabedaten (5') oder Teile derselben zusammen mit dem und/oder gebunden an den Lizenztoken von der Anwenderkomponente an die Ressourcenkomponente übermittelbar sind.in that the second input data (5 ') or parts thereof together with and / or bound to the license token can be transmitted from the user component to the resource component.
10. Rechneranordnung nach einem der vorhergehenden Ansprüche ,10. Computer arrangement according to one of the preceding claims,
dadurch gekennzeichnet, dasscharacterized in that
der Lizenzdeskriptor mit einer von einem auf die Anwenderkomponente zugriffsberechtigten Anwender gewünschten Lizenzdauer generierbar ist und/oder dass der Lizenztoken mit einer durch die Lizenz- serverkomponente bevorzugt auf Basis der gewünschten Lizenzdauer festgesetzten Lizenzdauer generierbar ist, wobei eine Lizenzdauer ein Zeitfenster definiert, während dessen eine Zugriffsberechtigung auf die Applikation gegeben ist.the license descriptor can be generated with a license duration desired by a user who is authorized to access the user component, and / or the license token can be generated with a license period determined by the license server component, preferably on the basis of the desired license duration, wherein a license duration defines a time window during which an access authorization to the application is given.
11. Rechneranordnung nach einem der vorhergehenden Ansprüche , dadurch gekennzeichnet, dass11. Computer arrangement according to one of the preceding claims, characterized in that
durch die Ressourcenkomponente aus den zweiten Eingabedaten (5') mittels der Applikation Ausgabedaten (9) berechenbar und an die Anwenderkomponente übermittelbar sind. can be calculated by the resource component from the second input data (5 ') by means of the application output data (9) and transmitted to the user component.
12. Rechneranordnung nach einem der vorhergehenden Ansprüche,12. Computer arrangement according to one of the preceding claims,
dadurch gekennzeichnet, dasscharacterized in that
die ersten Eingabedaten (5) und die zweiten Eingabedaten (5') identisch sind. the first input data (5) and the second input data (5 ') are identical.
13. Rechneranordnung nach dem vorhergehenden Anspruch,13. Computer arrangement according to the preceding claim,
dadurch gekennzeichnet, dasscharacterized in that
der Lizenzdeskriptor einen aus den Eingabedaten berechneten kryptographischen Code, insbesondere einen kryptographischen Hash-Code, umfasst, dass der Lizenzdeskriptor samt diesem Code von der Anwenderkomponente an die Lizenzserverkomponente übermittelbar ist, dass bei Vorliegen der Zugriffsberechtigung der Lizenzdeskriptor samtthe license descriptor comprises a cryptographic code calculated from the input data, in particular a cryptographic hash code, in that the license descriptor together with this code can be transmitted by the user component to the license server component, that the license descriptor together with
ύ Code in der LizenzServerkomponente kryp- tographisch signierbar und als Lizentoken mit eingebundenem, verschlüsselten kryptographisehen Code von der Lizenzserverkomponente an die An- Wenderkomponente und von dieser zusammen mit denύ Code in the license server component cryptographically signable and as a license token with integrated, encrypted cryptographic code from the license server component to the user component and from there together with the
Eingabedaten an die Ressourcenkomponente übertragbar ist, dass von der Ressourcenkomponente und/oder der Applikation die kryptographisehe Signatur des Lizenzservers überprüfbar ist und aus den von der Anwenderkomponente an die Ressourcenkomponente übertragenen Eingabedaten auf dieselbe Art und Weise wie beim in dem Lizenzdeskriptor enthaltenen Code ein kryptographi- scher Code berechenbar ist, dass der aus dem Li- zenztoken stammende Code mit dem von der Ressourcenkomponente und/oder der Applikation berechneten Code vergleichbar ist und dass bei übereinstimmenden Codes die Zugriffsberechtigung der Eingabedaten, der Anwenderkomponente und/oder des Anwenders auf die Applikation erteilbar ist, wobei bevorzugt auch gegebenenfalls im Lizenztoken codierte und/oder enthaltene Einschränkungen, insbesondere eine Lizenzdauer, bei der Erteilung berücksichtigbar sind. Input data to the resource component is transferable, that from the resource component and / or the application, the cryptographic signature of the license server is verifiable and from the input from the user component to the resource component input data in the same manner as the code contained in the license descriptor a cryptographic That the code originating from the license token can be compared with the code calculated by the resource component and / or the application, and that in the case of matching codes, the access authorization of the input data, the user component and / or the user can be granted to the application, wherein preferably also in the license token coded and / or contained restrictions, in particular a license period, are considered in the grant.
14. Rechneranordnung nach einem der vorhergehenden14. Computer arrangement according to one of the preceding
Ansprüche, dadurch gekennzeichnet, dass nach einer durch die Applikation mit den zweiten Eingabedaten (5') durchgeführten Operation die Zeitdauer dieser Operation von der Ressourcenkomponente und/oder der Applikation dem Lizenztoken hinzufügbar und der Lizenztoken anschließend, gegebenenfalls zusammen mit Ausgabedaten (9) der Operation, von der Ressourcenkomponente an die Anwenderkomponente übertragbar ist.Claims, characterized in that after an operation performed by the application with the second input data (5 '), the time duration of this operation is added by the resource component and / or the application to the license token and the license token, optionally together with output data (9) of the operation , from the resource component can be transferred to the user component.
15. Rechneranordnung nach einem der vorhergehenden Ansprüche , dadurch gekennzeichnet, dass15. Computer arrangement according to one of the preceding claims, characterized in that
mindestens zwei der drei Komponenten, also derat least two of the three components, ie the
Anwenderkomponente, der LizenzServerkomponente und der Ressourcenkomponente, auf zwei voneinander getrennten, unterschiedlichen Rechnern ausbildbar sind und/oder ausgebildet sind und/oder als zwei voneinander getrennte, unterschiedlicheUser component, the license server component and the resource component, on two separate, different computers can be formed and / or formed and / or as two separate, different
Rechner ausbildbar sind und/oder ausgebildet sind.Calculator can be formed and / or trained.
16. Rechneranordnung nach dem vorhergehenden Anspruch,16. Computer arrangement according to the preceding claim,
gekennzeichnet durchmarked by
drei voneinander getrennte Rechner, wobei die Anwenderkomponente auf einem Anwenderrechner (IPC) , die Lizenzserverkomponente getrennt davon auf einem Lizenzserver (2PC) und die Ressourcen- komponente getrennt vom Anwenderrechner (IPC) und vom Lizenserver (2PC) auf einem Ressourcenrechner (3PC) ausbildbar ist und/oder ausgebildet ist, und/oder wobei die drei Komponenten entsprechend als drei unterschiedliche Rechner ausbildbar sind und/oder ausgebildet sind oderthree separate computers, wherein the user component on a user's computer (IPC), the license server component separately on a license server (2PC) and the resource component separately from the user computer (IPC) and the license server (2PC) on a resource calculator (3PC) can be formed and / or is embodied, and / or wherein the three components can be designed and / or formed correspondingly as three different computers or
durch zwei voneinander getrennte Rechner, wobei die Anwenderkomponente und die Ressourcenkomponente auf einem gemeinsamen Anwender- und Res- sourcenrechner und die Lizenzserverkomponente getrennt davon auf einem Lizenzserver ausbildbar ist und/oder ausgebildet ist, und/oder wobei die drei Komponenten entsprechend als zwei unterschiedliche Rechner ausbildbar sind und/oder ausgebildet sindby two separate computers, wherein the user component and the resource component can be formed on a common user and resource computer and the license server component separately on a license server is and / or is formed, and / or wherein the three components are formed as two different computers and / or formed accordingly
oder durch zwei voneinander getrennte Rechner, wobei die Lizenzserverkomponente und die Ressourcenkomponente auf einem gemeinsamen Lizenzserverund Ressourcenrechner und die Anwenderkomponente getrennt davon auf einem Anwenderrechner ausbildbar ist und/oder ausgebildet ist, und/oder wobei die drei Komponenten entsprechend als zwei unterschiedliche Rechner ausbildbar sind und/oder ausgebildet sind. or by two separate computers, wherein the license server component and the resource component on a common license server and resource computer and the user component separately on a user computer can be formed and / or formed, and / or wherein the three components are formed as two different computers and / or or are trained.
17. Rechneranordnung nach einem der vorhergehenden Ansprüche , dadurch gekennzeichnet, dass17. Computer arrangement according to one of the preceding claims, characterized in that
die Rechneranordnung mindestens zwei über ein lokales und/oder ein globales Netzwerk, insbe- sondere das Internet, verbundene Rechner, insbesondere PCs, umfasst.the computer arrangement comprises at least two computers connected via a local and / or global network, in particular the Internet, in particular PCs.
18. Zugriffssteuerungs- und Zugriffskontrollverfahren für eine Applikation in einer Rechneranordnung,18. Access control and access control method for an application in a computer arrangement,
wobei mindestens eine Anwenderkomponente (1) und eine Lizenzserverkomponente (2) zum bidirektionalen Datenaustausch miteinander eingerichtet werden,wherein at least one user component (1) and a license server component (2) are set up for bidirectional data exchange with each other,
wobei mindestens eine Ressourcenkomponente (3) , die eine Applikation (4) steuert und/oder umfasst, zum bidirektionalen Datenaustausch mit der Anwenderkomponente ausgebildet wird, wobei von der Anwenderkomponente auf Basis von ersten Eingabedaten (5) für die Applikation, von Hardwaremerkmalen (6) der Anwenderkomponente und/oder von Informationen über einen auf diewherein at least one resource component (3) that controls and / or includes an application (4) for bidirectional data exchange with the user component is formed, wherein of the user component based on first input data (5) for the application, of hardware features (6) of the user component and / or information about a on the
Anwenderkomponente zugriffsberechtigten Anwender (Ia) ein Lizenzdeskriptor (7) generiert wird, wobei dieser Lizenzdeskriptor an die Lizenzserverkomponente übermittelt und durch die Lizenz - Serverkomponente dahingehend überprüft wird, ob eine Zugriffsberechtigung der ersten Eingabedaten (5) , der Anwenderkomponente und/oder des Anwenders auf die Applikation gegeben ist, wobei bei Vorliegen dieser Zugriffsberechtigung von der Lizenzserverkomponente ein den Zugriff auf die Applikation ermöglichender Lizenztoken (8) generiert und an die Anwenderkomponente übermittelt wird, wobei durch die Anwenderkomponente der Lizenzto- ken oder auf diesem basierende Lizenzinformationen (8') sowie zweite Eingabedaten (5') für die Applikation an die Ressourcenkomponente übermittelt werden, und wobei der Lizenztoken oder die Lizenzinformatio- nen durch die Ressourcenkomponente und/oder dieUser component (ia) a license descriptor (7) is generated, this license descriptor is transmitted to the license server component and is checked by the license server component to determine whether an access authorization of the first input data (5), the user component and / or the user to the Given that this access authorization by the license server component, a license token (8) enabling access to the application is generated and transmitted to the user component, whereby by the user component of the license tokens or license information based on this (8 ') and second Input data (5 ') for the application to the resource component, and wherein the license token or license information is provided by the resource component and / or the
Applikation dahingehend überprüft wird/werden, ob die Zugriffsberechtigung der zweiten Eingabedaten (5'), der Anwenderkomponente und/oder des Anwenders auf die Applikation gegeben ist. Application is checked to see whether the access authorization of the second input data (5 '), the user component and / or the user is given to the application.
19. Zugriffssteuerungs- und Zugriffskontrollverfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass das Verfahren mit einer Rechneranordnung nach einem der Ansprüche 1 bis 17 durchgeführt wird.19. Access control and access control method according to the preceding claim, characterized in that the method is carried out with a computer arrangement according to one of claims 1 to 17.
20. Verwendung einer Rechneranordnung und/oder eines Zugriffssteuerungs- und Zugriffskontrollverfah- rens nach einem der vorhergehenden Ansprüchen für Applikationen, bei denen eine Zugriffskontrolle auf Basis von Anwenderinformationen und/oder Eingabedaten unabhängig von einer Net- werkverbindung zu einem Lizenzserver stattfinden soll, zur Durchführung von Simulationsrechnungen, insbesondere von Simulationsrechnungen in einer ein komplexes technisches System wie beispielsweise eine Anlage zur Energieerzeugung, ein medizinisches Röntgen- und/oder Bestrahlungssystem oder ein Fluidtransportsystem virtuell abbildenden Simulationsumgebung mit einem auf und/oder durch die Ressourcenkomponente ausgebildeten und/oder angesteuerten Simulationsprogramm als Applikation und/oder zum Management von Zugriffsmöglichkeiten in vir- tualisierten Umgebungen, insbesondere in VMWare- Umgebungen oder Xen-basierten Umgebungen. 20. Use of a computer arrangement and / or an access control and access control method according to one of the preceding claims for applications in which an access control on the basis of user information and / or input data is to take place independently of a network connection to a license server, for performing Simulation calculations, in particular simulation simulations in a simulation environment virtually simulating a complex technical system such as a plant for energy generation, a medical X-ray and / or irradiation system or a fluid transport system with a simulation program as an application formed on and / or by the resource component and / or controlled; / or to manage accessibility in virtualized environments, especially in VMWare environments or Xen-based environments.
PCT/EP2009/005389 2008-07-24 2009-07-24 Computer system with automatic access regulation of an application and access control to an application and corresponding access regulation and control method WO2010009896A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102008034492A DE102008034492A1 (en) 2008-07-24 2008-07-24 Computer arrangement with automated access control from one and access control to an application, as well as appropriate access control and access control procedures
DE102008034492.3 2008-07-24

Publications (1)

Publication Number Publication Date
WO2010009896A1 true WO2010009896A1 (en) 2010-01-28

Family

ID=41259446

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2009/005389 WO2010009896A1 (en) 2008-07-24 2009-07-24 Computer system with automatic access regulation of an application and access control to an application and corresponding access regulation and control method

Country Status (2)

Country Link
DE (1) DE102008034492A1 (en)
WO (1) WO2010009896A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3062255A1 (en) * 2015-02-25 2016-08-31 Siemens Aktiengesellschaft Licensing of software products
US20210319896A1 (en) * 2020-04-14 2021-10-14 Drägerwerk AG & Co. KGaA System, medical devices, network components, devices, processes and computer programs for medical devices and for network components

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204897A (en) * 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
WO2004086264A1 (en) * 2003-03-21 2004-10-07 Deutsche Telekom Ag Method and communication system for releasing a data processing unit
US20060004668A1 (en) * 2004-07-01 2006-01-05 Hamnen Jan H Method of distributing electronic license keys
EP1626323A2 (en) * 2004-08-11 2006-02-15 Andreas Hopp access control and copy protection

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834752B1 (en) * 2006-02-17 2008-06-05 삼성전자주식회사 Apparatus and method for transferring content license

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204897A (en) * 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
WO2004086264A1 (en) * 2003-03-21 2004-10-07 Deutsche Telekom Ag Method and communication system for releasing a data processing unit
US20060004668A1 (en) * 2004-07-01 2006-01-05 Hamnen Jan H Method of distributing electronic license keys
EP1626323A2 (en) * 2004-08-11 2006-02-15 Andreas Hopp access control and copy protection

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3062255A1 (en) * 2015-02-25 2016-08-31 Siemens Aktiengesellschaft Licensing of software products
US20210319896A1 (en) * 2020-04-14 2021-10-14 Drägerwerk AG & Co. KGaA System, medical devices, network components, devices, processes and computer programs for medical devices and for network components

Also Published As

Publication number Publication date
DE102008034492A1 (en) 2010-01-28

Similar Documents

Publication Publication Date Title
DE112011101729B4 (en) Management of resource access
DE102007033615B4 (en) Method and apparatus for converting authentication tokens to enable interactions between applications
DE102011089580B3 (en) Method for reading e.g. attribute stored in passport, for electronic-commerce application, involves examining whether attribute of security assertion markup language response fulfills criterion as premiss for contribution of service
EP2159653B1 (en) Method for assigning access authorisation to a computer-based object in an automation system, computer program and automation system
DE112011100182T5 (en) Transaction check for data security devices
DE102011084728B4 (en) Method for starting an external application and bidirectional communication between a browser and an external application without browser extensions
DE112013007160T5 (en) Development environment system, development environment device, development environment deployment process, and program
DE112018005203T5 (en) Authentication using delegated identities
DE112010004135T5 (en) Backup asynchronous client-server transactions
EP3245607B1 (en) Method for reading attributes from an id token
EP2454704A1 (en) Method for reading attributes from an id token
EP3763089B1 (en) Method and control system for controlling and/or supervising of devices
EP3743844B1 (en) Blockchain-based identity system
DE602005003631T2 (en) Exclusion of password detection for attribute certificate output
DE102011077218A1 (en) Access to data stored in a cloud
DE112021002747T5 (en) SECURE RECOVERY OF SECRET KEYS
WO2018162109A1 (en) Security unit, in particular a security unit for an iot device, and method for running one or more applications for a secure data exchange with one or more servers which provide web services
EP3767513B1 (en) Method for secure execution of a remote signature, and security system
DE202020005753U1 (en) Managing user identities in a multi-tenant managed service
WO2010009896A1 (en) Computer system with automatic access regulation of an application and access control to an application and corresponding access regulation and control method
EP3244331B1 (en) Method for reading attributes from an id token
EP3298526B1 (en) Method for reading attributes from an id token
DE102021130811A1 (en) BLOCKCHAIN SELECTIVE WORLD-STATE DATABASE
EP2923264B1 (en) Method and system for application installation in a security element
EP3244332A1 (en) Method for reading attributes from an id token

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: 09777426

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09777426

Country of ref document: EP

Kind code of ref document: A1