WO2007122266A2 - Protected execution of a service provider's data processing application for a user by means of a trustworthy execution environment - Google Patents

Protected execution of a service provider's data processing application for a user by means of a trustworthy execution environment Download PDF

Info

Publication number
WO2007122266A2
WO2007122266A2 PCT/EP2007/054117 EP2007054117W WO2007122266A2 WO 2007122266 A2 WO2007122266 A2 WO 2007122266A2 EP 2007054117 W EP2007054117 W EP 2007054117W WO 2007122266 A2 WO2007122266 A2 WO 2007122266A2
Authority
WO
WIPO (PCT)
Prior art keywords
execution
data
data processing
processing application
execution container
Prior art date
Application number
PCT/EP2007/054117
Other languages
German (de)
French (fr)
Other versions
WO2007122266A3 (en
Inventor
Peter LANDGENDÖRFER
Michael Maaser
Original Assignee
Ihp Gmbh - Innovations For High Performance Microelectronics / Institut Für Innovative Mikroelektronik
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 Ihp Gmbh - Innovations For High Performance Microelectronics / Institut Für Innovative Mikroelektronik filed Critical Ihp Gmbh - Innovations For High Performance Microelectronics / Institut Für Innovative Mikroelektronik
Priority to EP07728572A priority Critical patent/EP2014048A2/en
Publication of WO2007122266A2 publication Critical patent/WO2007122266A2/en
Publication of WO2007122266A3 publication Critical patent/WO2007122266A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles

Definitions

  • the invention relates to an execution container for a data processing application of a service provider.
  • Wireless access networks to remote telecommunications networks are becoming increasingly equipped for data processing applications in which selected information or advertisements are sent to a user terminal in accordance with their current location.
  • Network operators or service providers who operate a corresponding location-sensitive data processing application in this way can track the behavior of a user without his consent.
  • US Patent Application Publication No. 2004/0181683 A1 also discusses a "trusted agent” approach, in which an "international security, trust and privacy framework work" allows a user to provide the service provider of a data processing application with several profiles for which the service provider - Beiter then generated according to personalized user output data.
  • the personal data of the user is protected by the fact that the service provider does not know which of the profiles is correct. It is also suggested to distribute the correct user input data to multiple profiles.
  • a disadvantage of this concept is that the generation of useful user output data by the service provider is made more difficult if the user's personal data belonging to different user profiles belong together are distributed. However, if all the relevant information is included in a profile, then the probability is high that the correct user input data can be determined, at least when the user makes more use of the service provider's data processing application. Furthermore, guessing the correct user input data is simplified by generally sending all the wrong profiles together with the correct profile from the user terminal together.
  • an agent created by the service provider protects the user terminal.
  • the agent is installed by a system administrator and monitors security settings on the terminal when used outside of a site assigned to the customer's employer.
  • said agent is provided by an Internet Service Provider (ISP) and monitors, for example, children's internet use for filtering dangerous information.
  • ISP Internet Service Provider
  • a "Privacy Preserving Trust Agent” which negotiates the use of data with the ISP, but does not itself provide any data protection.
  • Usage policy can only be determined later. But then the data to be protected has already been abused.
  • the technical problem underlying the present invention is therefore to provide a device for executing a data processing application of a service provider for a user with an improved protection of user input data.
  • an execution container for a data processing application of a service provider contains:
  • At least one execution environment configured to instantiate and execute the data processing application that processes user input data to generate user output data in the form of executable program data, and to exchange the user input data and the user output data with the data processing application;
  • a communication interface connected to the execution environment and configured to receive user input data and forward it to the execution environment, and output user output data sent from the execution environment to outside the execution container;
  • a security control unit connected to the communication interface and configured to prevent such data communication of the data processing application from any communication execution endpoint external to the execution environment whose communication path bypasses the execution environment; and an access control unit connected to the communication interface and arranged to prevent such data communication of the execution environment with any relative to the execution container external communication endpoint, which is not defined as permissible by a first security agreement.
  • the device according to the invention has the advantage that the data processing application of the service provider can not be executed by the service provider itself, but by a trusted execution entity. This can be done on the equipment of the service provider, the service user or a third party.
  • the device according to the invention is referred to in the context of the present application as an execution container.
  • the service provider does not receive user input data.
  • the data processing application exchanges user input data with the execution environment.
  • the user input data made available to the data processing application can not be sent uncontrollably to the outside, that is, for example, to the service provider of the data processing application.
  • the access control unit prevents data from the execution environment from being sent to external communication endpoints that are not permitted by a first security agreement.
  • the first security agreement is concluded between the provider of the data processing application and the user.
  • the security agreement is in the form of a file for the execution container.
  • the access control unit uses the first security agreement to monitor and, if necessary, prevent the data communication of the execution environment with external communication endpoints.
  • the safety control unit provided in the embodiment container ensures that only the execution environment, but not the data processing application itself, can communicate with communication endpoints that are relative to the execution environment are arranged externally.
  • the security control unit actively prevents any data communication of the data processing application whose communication path bypasses the execution environment. This means that the security control unit in particular prevents direct, uncontrolled communication between data processing applications that are embedded in different execution environments within the execution container. In an embodiment described in more detail below also include so-called. Covert channel attacks on the security of the execution container.
  • the execution environment provides the necessary infrastructure, such as access to the processor, etc.
  • a security agreement is understood to be a regulation which is present in file form and defines which data communication may be sent to which communication endpoints. Furthermore, the security agreement may contain information about what data a data processing application (DVA) may receive from the user as well as what data the user may receive from the DVA. If in the present application in the context of the invention of "security” is spoken, the term in the sense of the aforementioned “privacy protection” as protection against unauthorized disclosure and recovery of personal data to understand. What personal data is defines a respective security agreement, so it varies from individual case to case.
  • DVA data processing application
  • executable program data in the context of the present application, for example in the form of at least one executable file or at least one script. Examples of data processing applications will be discussed later in the description of preferred embodiments.
  • Permitted data communication in particular under permitted user input data, is to be understood as user input data which are defined in the security agreement on the basis of verifiable criteria.
  • a permissible keitskriterium can be, for example, a threshold value associated with a position determination of a user terminal measurement accuracy.
  • Another admissibility criterion may stipulate, for example, that address data, either in the form of the residence of a user or in the form of a network address of a user terminal of this user, are not made available to the execution container.
  • eligibility criteria for user output data as well as a permissible recipient of the user output data with respect to the respective data processing application can be defined.
  • the first security agreement between the service provider and the user accordingly regulates the data flow between the user and the execution container on the one hand and the execution container and the authorized recipient (s) of the user output data.
  • the user output data to be sent can also be sent differentiated according to the recipients.
  • the transmission to the service provider may be limited to billing data, while other user output data may be transmitted to the user himself, for example, to provide him with the service provider's service associated with the data processing application.
  • the first security agreement is implemented in the execution container. This means that the execution container always has access to and adheres to the associated first security agreement during execution of the data processing application.
  • the execution container has a memory for user input data that is external to the execution environment and that is accessible via the communication interface with the execution environment. is connected.
  • the security control unit is designed to prevent a direct access of the data processing application to the memory.
  • memory accesses can not be performed by the application itself without involving the execution environment in such an operation. This can however ensure that the data processing application does not access the memory in an inadmissible way.
  • a further development of this exemplary embodiment provides for designing the execution environment in such a way that external user input data relative to the execution container can be read via the communication interface and a local copy of the external user input data can be stored in the memory. Access to external user input data is in this embodiment solely by the execution environment.
  • the data processing application receives no access rights to external user input data in this exemplary embodiment.
  • the execution container includes a negotiation unit and a negotiation interface.
  • the negotiation unit is designed to negotiate the first security agreement between a service provider and a user via the negotiation interface in accordance with a predefined negotiation protocol.
  • the first security agreement includes the following information:
  • the execution container has a negotiation unit and a negotiation interface, and the negotiation The unit is designed to negotiate a second security agreement between the execution container and a service user via the negotiation interface in accordance with a predefined negotiation protocol, wherein it contains the following information:
  • the second security agreement provides a tool that allows the execution container and the user to determine how the user input data defined in the first security agreement is made available to the execution container.
  • the second security agreement In addition to sending the user input data from a user terminal to the execution container, in practice it often makes sense to allow the execution container access to user input data, for example, if this is frequently updated data.
  • user input data can either be sent by the user to the execution container and stored in this or be picked up by an access of the execution container user-stored user input data from the execution container itself.
  • the transmission step may also occur in connection with the implementation of the data processing application in the execution container in certain data processing applications. In general, however, it will be performed by the execution container in connection with the execution of the data processing application.
  • security control unit and the access control unit of the execution container are integrated into a single unit in one embodiment.
  • This integrated unit like the safety The control unit and the access control unit itself, in the presence of a distributed execution container also be distributed over these multiple execution container.
  • the security control unit is designed to also exercise its functions as a function of contents of the first or second security agreement or depending on contents of both security agreements.
  • Particularly preferred embodiments provide protocols for negotiating the security agreements.
  • a step of negotiating the first security agreement between the service provider and the user is provided according to a predefined privacy negotiation protocol. This step is performed before the step of receiving the first security agreement at the execution container.
  • the privacy negotiation protocol may define formats of offer and counter offer messages that may be exchanged between the user and the service provider.
  • the privacy negotiation protocol may define security preferences formats to be filled by the user or service provider with their respective security preferences. The respective security preferences are then exchanged between the user and the service provider with the predefined security preferences format by sending corresponding messages according to the negotiation protocol. This allows the sender and recipient to automatically negotiate the security agreement.
  • users and service providers define at least one set of respective security preferences as well as non-negotiable minimum preferences and negotiable additional preferences.
  • a negotiation strategy prior to the negotiation according to a negotiation strategy format predefined in the privacy negotiation protocol, it is even possible to carry out the negotiation fully automatically.
  • each party may define that the negotiation will be terminated if a non-negotiable minimum from the other side is not accepted.
  • a negotiation strategy may provide that instead of aborting a negotiable additional preference, a counter offer or a new offer of its own with a changed value of the negotiable additional preference is created.
  • the execution container may then insert a further verification step prior to implementing the security agreement, including checking the signatures of a received security agreement. This ensures that only genuine security agreements between the service provider and the user are implemented, further increasing the trustworthiness of the execution container. It goes without saying that signatures of the first security agreement can also be attached to the negotiation protocol without a negotiation between the user and the service provider in order to ensure the authenticity of the security agreement.
  • the execution environment is designed so that data that is no longer needed can not be retrieved later from a third party. This may, in a particularly preferred embodiment, e.g. be achieved by causing a deletion in the memory of stored user input data and user output data of the data processing application after completion of the execution of the data processing application,
  • the execution environment is designed such that access to the third-party program data is not possible. This may e.g. be achieved by causing the instantiation of the execution of the data processing application to eliminate the instantiated executable program data of the data processing application.
  • the security control unit or the access control unit is adapted to check the presence of a criterion for termination of the validity of the first security agreement, and at Presence of such a criterion to cause a deletion in the memory of stored user input data and user output data of the data processing application.
  • a criterion for terminating the validity of the first security agreement may be determined by a timeout in the first security agreement itself.
  • the first security agreement may also be used as a termination criterion for its validity to expire if a violation of the eligibility criteria defined in the security agreement is established.
  • the user input data and user output data stored in the execution container are preferably deleted. This ensures that this data is not made available to anyone.
  • provision can advantageously be made, alternatively or additionally, for the data processing application implemented in the execution container to be deleted if a criterion for terminating the validity of the first security agreement exists.
  • the execution container of the present invention forms a service model.
  • the execution container can be operated, for example, by the service user, by the service provider, but also by a third party.
  • a plurality of execution environments may be provided for data processing applications.
  • DVA can be instantiated and active.
  • a preferred execution container accordingly contains a plurality of execution environments.
  • the execution environments are configured to prevent any communication between different computing applications in relatively external execution environments within the execution container. It is thus ensured that the data processing applications instantiated in an execution container can not influence one another or can mutually access one another.
  • Data communication with external data processing applications relative to the execution container in external execution environments may be facilitated in a preferred embodiment without compromising security that the execution environment of the execution container is configured to respond to a command received from the data processing application via the communication interface To send a literal selected from a set of given literals to a communication endpoint external to the execution container.
  • a set of predefined literals that can be exchanged with external execution environments is provided. Of course, this exchange must be permitted under the first security agreement.
  • predefined literals ie, predefined commands and messages allowed in the communication between the data processing application and an external execution environment, enables dedicated communication which, at the same time, can easily be checked for eligibility based on its predefined patterns at runtime.
  • the data processing application does not send a literal itself, but the broadcast is made by the execution environment. This ensures that the data processing application does not automatically contact external communication endpoints.
  • the predefined literals will be used by a suitably manipulated data processing application to "throw out" inadmissible information from the execution container, thus proposing the total number of literals, the number of times that literals are made, or the duration of an execution
  • the execution environment is configured to send at most a maximum number T of data bits via predefined literals.
  • the maximum number T is defined by
  • n is the number of literals transferred
  • L is the total number of predefined literals
  • f is the frequency of transmission of literals
  • t is the length of a session in which literals are sent.
  • Another possible attack on the security of the execution container is to create transmission channels that are not provided by the execution container for information transmission.
  • Such channels may be formed, for example, by the data processing application selectively generating varying processor utilization, with certain processor utilization states being able to represent particular bit values or symbol values having a higher number of bits. for a duration of one second as bit value "1", while a lower average CPU load could be agreed as bit value "0" for one second during the duration of one second CPU utilization can be read by known technical means
  • the execution environment is configured to charge a processor usable by the execution container for a non-predetermined time pattern that is independent of an actual load of the data processing This will prevent the data processing application from gaining control of processor utilization alone. Similar measures are for the utilization of a memory conceivable. The time pattern must be random, ie controlled by a random number generator.
  • a distributed execution container which includes a first and a second execution container according to the invention described above ,
  • the distributed execution container may also contain more than two individual execution containers.
  • the two execution containers are connected via a data transmission channel for the exchange of data.
  • the execution container is designed to identify itself to the respective other execution container with the aid of a suitable authentication mechanism.
  • the communication interfaces of the execution container are designed to exchange data in encrypted form via the data transmission channel.
  • the execution environment may include an application environment such as a Java runtime environment or a .NET runtime environment.
  • DVAs represent compiled code and provide a suitable execution speed. It should be noted, however, that the application environment is to be adapted according to the invention. For this purpose, appropriate additions to the known application environments are required.
  • Fig. 1 shows a simplified structure of an embodiment container according to an embodiment of the invention
  • Fig. 2 shows the structure of a distributed execution container according to another embodiment of the invention
  • Fig. 3 shows the flow of negotiation over a security agreement for use in an embodiment of the invention.
  • Fig. 1 shows a simplified structure of an execution container 100 according to an embodiment of the invention.
  • the container contains a number of execution environments as fixed components.
  • execution container 100 includes two execution environments 102 and 104.
  • Other embodiments may include only one or more than two execution environments.
  • the execution environments 102 and 104 provide an infrastructure that includes all means for instantiating and executing a data processing application in the form of executable program files, scripts, or the like.
  • the execution environment is realized in the present embodiment by an application environment. Examples of known application environments are the Java runtime environment or the .NET Common Language Runtime (CLR).
  • the application environments 102 and 104 are basically the same. Compared to known runtime environments, they must be for a Implementation of the present invention, as will become apparent from the following description in detail.
  • Each execution environment of the execution container 100 is designed to instantiate and execute a data processing application 106 or 108 in the form of executable program data.
  • a data processing application is provided to the execution container by a service provider in the form of a platform independent bytecode adapted to the application environment in which the execution container operates.
  • the data processing application can be transmitted, for example, in the form of Java byte code or in the form of a program file present in .NET Intermediate Language (CIL). This is compiled code that is capable of ensuring the execution speed required for most data processing applications.
  • execution environments 102 and 104, as well as 100 are embodied in the Java runtime environment.
  • the data processing applications 106 and 108 may be different types of data processing applications.
  • a rough distinction of data processing applications can be made in data delivery services, data control services and goods delivery services.
  • An example of a data delivery service is, for example, a navigation service. Such services communicate primarily with the respective user.
  • a navigation service requires, for example, a map stored in a memory 110 which is connected to the execution container 100, and a current position of a mobile receiving device from the user. Communication with the service provider is not required. It is conceivable, however, that the service provider is communicated to what extent use was made of the data processing application in order to enable the service provider to charge the user for the services rendered.
  • Data control services are, for example, remote control services for remotely controllable devices. An example of such a service is the ability to have a panoramic camera controlled by a remote user. In such a service, it is necessary for control signals from the user to reach the service provider via the execution container 100 in order to be able to control the camera.
  • Goods delivery services are well-known forms of online shops or, for example, printing services. These services actually require the user to provide private information, such as a delivery address or files to be printed.
  • the execution environment 102 or 104 associated with a respective data processing application is configured to exchange user input data and user output data with the data processing application 106 or 108. It is essential that all data exchange of the data processing application takes place via the assigned execution environment. Different computing applications executing in different execution environments of execution container 100 may not communicate with each other. This is ensured by the non-existence of shared memory and the structure of the communication interface 112 described in more detail below.
  • the communication interface 1 12 comprises a safety control unit 1 14, which in the present embodiment is designed in a distributed structure with two subunits 114.1 and 14.2. For the sake of simplicity, both subunits are also referred to below as a safety control unit.
  • the safety control units 1 14.1 and 114.2 are connected to a respectively assigned execution environment 102 or 104 and monitor the data communication of the data processing application 106 or 108.
  • the security control unit 114 is configured to prevent any communication of the associated data processing application, if it is to occur with a communication endpoint external to the associated execution environment and if the data communication bypasses the associated execution environment.
  • the security control unit 14 therefore ensures that all data communication of the data processing applications 106 and 108 with an external communication endpoint is via the associated execution environment. This means that the execution environment always has control over the appropriate data communication and can ensure that provided user input data is not improperly communicated externally.
  • the security control units 114.1 and 114.2 contained in the security control unit 114 access first security agreements 118 and 120 which are present in the execution container 100 in file form and constitute an agreement between the provider of the respective data processing application 106 or 108 and the respective user.
  • the execution container 100 Since a data processing application can be executed for a large number of users, the execution container 100 has a corresponding number of first security agreements, whereby the first security agreement assigned to each user is used.
  • the format of the first security agreement must be rich enough to allow for convenient handling, and on the other hand, it needs to be scarce enough to ensure that malicious code can not be integrated that can search user-related data and send it using legitimate messages.
  • the format of the security of the first security agreement is defined such that the communication interface 1 12 of the execution container 100 can check whether a respective message is permissible or not. It is advantageous to use a code in the first security agreement, which allows only the transmission of predefined messages, so-called literals.
  • the security control unit 114 may make a simple comparison of character strings to check whether a message is allowed or not.
  • the security control unit 114 therefore checks the incoming and outgoing messages sent to it for their admissibility according to the respective security agreement.
  • the security control unit 114 is designed to prevent such data communication of a respective execution environment with any communication endpoint external to the execution container. not defined by the corresponding first security agreement 118 or 120 as admissible.
  • the communication interface 1 12 also contains an access control unit 16.
  • the access control unit 16 accesses second security agreements 1 19 and 121, which are present in the execution container 100 in file form and form an agreement between the respective user and the execution container. Since execution containers can be used by a large number of users, the execution container 100 has a corresponding number of second security agreements, wherein the second security agreement assigned to each user is used for each user.
  • the access control unit 116 monitors the accesses to the memory 110 using the second security agreement.
  • Permitted messages are forwarded externally via a data access layer 122.
  • the interface 122 controls the read-only accesses to the memory 1 10.
  • 122 controls allowed communication with literals as well as communication with other containers.
  • an external application environment 124 which houses a data processing application (not shown here).
  • this may be the control of the panoramic camera mentioned above.
  • the associated first security agreement 118 includes a number of control commands that may be exchanged between the execution environment 102 in the execution container 100 and the external application environment 124. Such literals can be easily checked by the access control unit 14 for their permissibility.
  • the communication interface 112 thus ensures, in cooperation with the security control unit 14 and the data access layer 122, that only those messages are exchanged with external communication endpoints that are expressly declared permissible in the first security agreement and at the same time ensure that they are only addressed to the predefined recipients / communication endpoints are sent in the security agreement.
  • the execution container 100 may accommodate a variety of different computing applications and may also serve a large number of users of different computing applications. Accordingly, the permissible data may change frequently according to the stored first security agreements.
  • the communication interface 1 12 therefore forms a kind of rule machine that monitors and controls the communication of the execution environments with other communication endpoints according to the predetermined first security agreements.
  • the frequency of messages to be sent can also be limited by the security agreements or by predefined rules of the execution container. It is also possible to send orthogonal messages in unspecified order. This prevents information from being illegally encoded in messages.
  • An execution container 100 may also be operated by a service provider. In this case, it is important that the security rules that the execution container 100 dictates can not be changed by the owner of the execution container.
  • the safety rules of the embodiment container 100 according to the invention are fixed and are monitored by the means described above. Additional protection can be provided by the execution container is designed not to instantiate itself if it is not the absolutely first component that is started eg in a Java Virtual Machine (JVM), or if a foreign security manager is already installed or the JVM has been modified.
  • the execution container is adapted to compare secure hash codes of all running modules within the current process with a set of saved hash codes to check whether the current code corresponds to the original code of the provider of the execution container. Such a hash check also ensures that classes such as Java classes in a JVM that access external resources are safe.
  • the safety control unit 14 may be designed in such a way that different Java class loaders are provided for different execution environments. Objects in different execution environments will not have access to instances of other execution environments in this way. Only the execution container or Java classes provided within the same execution environment can access. The security control unit 1 14 ensures that access to classes in other execution environments is not possible. Likewise, there is no shared access of different execution environments to the same memory.
  • the execution container 100 ensures a secure and complete elimination of data and the data processing application when the corresponding data processing application is no longer needed, or when the first security agreement is no longer valid.
  • the application environments needed to execute byte code that is, the Java Runtime Environment (JRE) and the .NET Common Language Runtime (CLR), include a concept called garbage collection. It then ensures that data that is no longer needed is deleted.
  • the data processing applications themselves are eliminated in the same way when they are no longer needed.
  • a class Definition can be cleared by a class debugger, which can be implemented, for example, in Java by its own class loader for the execution container This class loader solves the loading of a class as well as its removal when it is no longer needed becomes.
  • Fig. 2 shows the structure of a distributed execution container according to another embodiment of the invention.
  • the structure of a distributed execution container 200 illustrated in FIG. 2 is based on the structure of the execution container 100 shown in FIG. 1. Therefore, corresponding elements of the distributed execution container 200 in FIG. 2 are provided with reference numerals that are different from the elements of FIG in the first digit, where instead of a "1" a "2" is included.
  • the execution container 200 contains two partial execution containers 200.1 and 200.2.
  • the structure of execution container 200.1 with the exception of the features described below, corresponds exactly to the structure of execution container 100 of FIG. 1.
  • communication interface 212.1 of sub-execution container 200.1 and communication interface 212.2 of the sub-execution container 200.2 channel ports 226.1 to 232.1 or 226.2 to 232.2 provided.
  • Corresponding execution environments 202.1 and 202.2 as well as 204.1 and 204.2 communicate with each other in pairs via corresponding channels. The number of channel ports is not fixed.
  • the sub-execution containers 200.1 and 200.2 are provided on spatially separate hardware that communicate with each other.
  • the sub-execution container 200.1 may be installed on a stationary server while the second sub-execution container 200.2 is installed on a PDA.
  • the communication interfaces 212.1 and 212.2 are designed to channel-specifically encrypt the data communication running on each channel.
  • both parts can access the same user input data if this is covered by the respective first security agreement, even if the data is physically located only on one of the two sub-execution containers.
  • the data communication with execution environments also runs outside the execution container 200.
  • the required messages may be requested from each of the two sub-execution containers and are first delivered to the sub-execution container that can establish the data connection with the external execution environment 224. They are transmitted internally encrypted.
  • the distributed structure of execution container 200 is therefore transparent to an internal data processing application.
  • FIG. 3 illustrates a negotiation step between a user and a service provider for establishing a security agreement.
  • a proposal 302 to be negotiated which is submitted by either the user or the service provider, is checked for acceptance by the other party, ie the user 304 or the service provider 306. If the security agreement can not be accepted according to the security preference 304.1 available to the user or the security preference 306.1 available to the service provider, an amendment to the agreement proposal is made in accordance with the respective security preference and submitted as a counterproposal. This is then checked by the other side for acceptance. This mechanism is repeated until there is a mutually acceptable agreement, which is then signed by both parties and sent to the execution container as a completed and signed security agreement 308.
  • Not shown in Fig. 3 is a termination of the negotiation, which according to predetermined criteria, such as the duration of Negotiation or non-acceptance of required minimum preferences by the other party is made.

Abstract

The invention relates to an execution container for a service provider's data processing application. Said execution container comprises at least one execution environment, a communication interface that is connected to the execution environment, and a security control unit which is connected to the communication interface and is configured so as to prevent the data processing application from communicating data with any communication terminal external to the execution environment if the data communication path circumvents the execution environment. An access control unit is also provided which is connected to the communication interface and is configured so as to prevent the execution environment from communicating data with any communication terminal which is external to the execution container and is not defined as authorized through a first security agreement.

Description

Geschütztes Ausführen einer Datenverarbeitungsanwendung eines Diensteanbieters für einen Nutzer durch eine vertrauenswürdige AusführungsumgebungProtecting a data processing application of a service provider for a user by a trusted execution environment
Die Erfindung betrifft einen Ausführungscontainer für eine Datenverarbeitungsanwendung eines Diensteanbieters.The invention relates to an execution container for a data processing application of a service provider.
Der Schutz persönlicher Daten vor unbefugter Weitergabe und Verwertung durch Dritte ist ein wesentliches Anliegen von Nutzern von Datenfernübertragungs- netzwerken wie beispielsweise dem Internet. Im Englischen Ausdruck wird dieses Anliegen knapper als „privacy protection" formuliert.The protection of personal data against unauthorized disclosure and use by third parties is a major concern of users of remote data transmission networks such as the Internet. In the English expression this concern is formulated more scarce than "privacy protection".
Drahtlose Zugangsnetzwerke zu Datenfernübertragungsnetzwerken werden zunehmend für Datenverarbeitungsanwendungen ausgerüstet, in denen einem Nutzer-Endgerät entsprechend seinem aktuellen Aufenthaltsort ausgewählte Informationen oder Werbung zugesandt werden. Netzwerkbetreiber oder Diensteanbieter, die eine entsprechende ortsempfindliche Datenverarbeitungsanwendung betreiben, können auf diese Weise das Verhalten eines Nutzers ohne dessen Zustimmung verfolgen. Wireless access networks to remote telecommunications networks are becoming increasingly equipped for data processing applications in which selected information or advertisements are sent to a user terminal in accordance with their current location. Network operators or service providers who operate a corresponding location-sensitive data processing application in this way can track the behavior of a user without his consent.
Es ist bekannt, einem Nutzer die Möglichkeit einzuräumen, zu erklären, in welchem Umfang er seine personenbezogene Daten (wie etwa seinen aktuellen Aufenthaltsort oder seine Endgerätekennung etc.) einem Diensteanbieter zur Verfügung stellen möchte. Derartige Daten werden im Rahmen dieser Patentan- meidung unter dem allgemeinen Begriff Nutzereingabedaten zusammengefasst.It is known to give a user the opportunity to explain to what extent he wishes to provide his personal data (such as his current whereabouts or his terminal identifier, etc.) to a service provider. In the context of this patent ap- proach, such data are summarized under the general term user input data.
Andere Ansätze zum Schutz dieser Daten wollen es einem Nutzer erlauben, Regeln aufzustellen, die angeben, wer Zugriff auf Information über den Aufenthaltsort eines Nutzer-Endgerätes haben darf und unter welchen Umständen dieser Zugriff erlaubt ist. Alternativ wurde vorgeschlagen, eine absichtliche Stö- rung der Positionsbestimmung vorzunehmen, um ihre Genauigkeit zu verringern und auf diese Weise den Aufenthaltsort eines Nutzer-Endgerätes geheim zu halten. Allen genannten Ansätzen fehlt ein Mittel zur Durchsetzung des Schutzes der personenbezogenen Daten.Other approaches to protecting this data may allow a user to establish rules specifying who may have access to information about the whereabouts of a user's terminal and under what circumstances that access is permitted. Alternatively, it has been proposed to intentionally disturb the position determination in order to reduce its accuracy and thus to keep the location of a user terminal secret. All these approaches lack a means to enforce the protection of personal data.
Aus den Schriften US 2003/158960 A1 und US 2004/0181683 A1 sind Schutz- mechanismen zum Schutz personenbezogener Daten bekannt. Nachteil der dort beschriebenen Schutzmechanismen ist jedoch, dass die personenbezogenen Daten dem Diensteanbieter einer Datenverarbeitungsanwendung zur Verfügung gestellt werden. Dies ermöglicht weiterhin ein unerwünschtes Kopieren, Abspeichern und Verbreiten dieser Daten.The documents US 2003/158960 A1 and US 2004/0181683 A1 disclose protective mechanisms for the protection of personal data. Disadvantage of the protection mechanisms described therein, however, is that the personal data is provided to the service provider of a data processing application. This further allows unwanted copying, saving and distribution of this data.
In der schon genannten US 2004/0181683 A1 ist weiterhin ein Ansatz eines „trusted agent" diskutiert. Ein dort vorgesehenes „international security, trust and privacy frame work" erlaubt es einem Nutzer, dem Diensteanbieter einer Datenverarbeitungsanwendung mehrere Profile bereitzustellen, für die der Dienstean- beiter dann entsprechend personalisierte Nutzerausgabedaten generiert. Die personenbezogenen Daten des Nutzers werden dadurch geschützt, dass der Diensteanbieter nicht weiß, welches der Profile korrekt ist. Es wird auch vorgeschlagen, die korrekten Nutzereingabedaten auf mehrere Profile zu verteilen.US Patent Application Publication No. 2004/0181683 A1 also discusses a "trusted agent" approach, in which an "international security, trust and privacy framework work" allows a user to provide the service provider of a data processing application with several profiles for which the service provider - Beiter then generated according to personalized user output data. The personal data of the user is protected by the fact that the service provider does not know which of the profiles is correct. It is also suggested to distribute the correct user input data to multiple profiles.
Nachteilig bei diesem Konzept ist es, dass die Erzeugung sinnvoller Nutzerausgabedaten durch den Diensteanbieter erschwert wird, wenn zusammengehören- de personenbezogene Daten des Nutzers auf unterschiedliche Nutzerprofile verteilt sind. Sind jedoch alle relevanten Informationen in einem Profil enthalten, ist die Wahrscheinlichkeit groß, dass die korrekten Nutzereingabedaten ermittelt werden können, zumindest dann, wenn der Nutzer die Datenverarbeitungsanwendung des Diensteanbieters häufiger in Anspruch nimmt. Weiterhin wird das Erraten der korrekten Nutzereingabedaten dadurch vereinfacht, dass in der Regel alle falschen Profile zusammen mit dem richtigen Profil vom Nutzer-Endgerät aus zusammen versandt werden.A disadvantage of this concept is that the generation of useful user output data by the service provider is made more difficult if the user's personal data belonging to different user profiles belong together are distributed. However, if all the relevant information is included in a profile, then the probability is high that the correct user input data can be determined, at least when the user makes more use of the service provider's data processing application. Furthermore, guessing the correct user input data is simplified by generally sending all the wrong profiles together with the correct profile from the user terminal together.
Auch wenn, wie in der US 2004/0816831 A1 vorgeschlagen, eine vertrauenswürdige dritte Instanz die falschen und richtigen Nutzerprofile erstellt, kann der so erhöhte Schutz des Nutzers dadurch unterlaufen werden, dass diese vertrauenswürdige dritte Instanz ausgeforscht wird. Ausserdem fehlt auch diesem Ansatz die Möglichkeit das Kopieren und Speichern der Daten zu verhindern.Even if, as proposed in US 2004/0816831 A1, a trustworthy third party creates the wrong and correct user profiles, the so increased protection of the user can be undermined by the fact that this trusted third party is being explored. In addition, this approach lacks the ability to prevent the copying and saving of data.
Aus dem Dokument Crane, Stephen: Privacy Preserving Trust Agents, HP Technical Reports, HPL-2004-197, online verfügbar unter: http://www.hpl.hp.com/techreports/2004/HPL-2004-197.html, ist es bekannt, dass ein vom Diensteanbieter erstellter Agent das Nutzer-Endgerät schützt. In den in diesem Dokument beschriebenen Szenarien wird der Agent von einem Systemadministrator installiert und überwacht Sicherheitseinstellungen auf dem Endgerät, wenn dieses außerhalb eines Geländes genutzt wird, das dem Arbeitgeber des Kunden zugeordnet ist. In einem anderen Szenario wird der genannte Agent von einem Internet-Serviceprovider (ISP) zur Verfügung gestellt und überwacht beispielsweise die Internetnutzung von Kindern zur Filterung von gefährlichen Informationen.From the document Crane, Stephen: Privacy Preserving Trust Agents, HP Technical Reports, HPL-2004-197, available online at: http://www.hpl.hp.com/techreports/2004/HPL-2004-197.html, It is known that an agent created by the service provider protects the user terminal. In the scenarios described in this document, the agent is installed by a system administrator and monitors security settings on the terminal when used outside of a site assigned to the customer's employer. In another scenario, said agent is provided by an Internet Service Provider (ISP) and monitors, for example, children's internet use for filtering dangerous information.
In diesem Zusammenhang wird die Nutzung eines „Privacy Preserving Trust Agent" beschrieben. Dieser verhandelt über eine Nutzung von Daten mit dem ISP. Er bietet selbst jedoch noch keinen Datenschutz. In diesem Dokument werden folgende Datenschutz-Konzepte diskutiert:In this context, the use of a "Privacy Preserving Trust Agent" is described, which negotiates the use of data with the ISP, but does not itself provide any data protection.
- Weitergabe der Daten an eine vertrauenswürdige dritte Instanz, die die Daten dann an den ISP weitergibt. Hierbei ist jedoch kein tatsächlicher Schutz der Daten erkennbar. - A -- Passing the data on to a trusted third party, which then passes the data on to the ISP. However, no actual protection of the data is recognizable. - A -
- Weitergabe der Daten an den ISP mit einer Nutzungsvorschrift („Nutzungspo- licy"). Unklar ist, wie die Durchsetzung dieser Nutzungspolicy erzwungen werden kann. Es ist anzunehmen, dass eine Verletzung der Regeln dieser- Disclosure of the data to the ISP with a usage rule ("Usage Policy") It is unclear how the enforcement of this usage policy can be enforced
Nutzungspolicy erst im nachhinein feststellbar ist. Dann jedoch wurden die zu schützenden Daten bereits missbraucht.Usage policy can only be determined later. But then the data to be protected has already been abused.
Das der vorliegenden Erfindung zugrunde liegende technische Problem ist es daher, eine Vorrichtung zum Ausführen einer Datenverarbeitungsanwendung eines Diensteanbieters für einen Nutzer mit einem verbesserten Schutz von Nutzereingabedaten bereitzustellen.The technical problem underlying the present invention is therefore to provide a device for executing a data processing application of a service provider for a user with an improved protection of user input data.
Erfindungsgemäß wird das technische Problem durch einen Ausführungscontainer für eine Datenverarbeitungsanwendung eines Diensteanbieters gelöst. Der Ausführungscontainer enthält:According to the invention, the technical problem is solved by an execution container for a data processing application of a service provider. The execution container contains:
mindestens eine Ausführungsumgebung, die ausgebildet ist, die Datenverarbeitungsanwendung, welche Nutzereingabedaten zur Erzeugung von Nutzerausgabedaten verarbeitet, in Form ausführbarer Programmdaten zu instanzieren und auszuführen, sowie die Nutzereingabedaten und die Nutzerausgabedaten mit der Datenverarbeitungsanwendung auszutauschen;at least one execution environment configured to instantiate and execute the data processing application that processes user input data to generate user output data in the form of executable program data, and to exchange the user input data and the user output data with the data processing application;
eine mit der Ausführungsumgebung verbundene Kommunikationsschnittstelle, die ausgebildet ist, Nutzereingabedaten zu empfangen und an die Ausführungsumgebung weiterzuleiten sowie von der Ausführungsumgebung ausgesandte Nutzerausgabedaten nach außerhalb des Ausführungscontainers auszugeben;a communication interface connected to the execution environment and configured to receive user input data and forward it to the execution environment, and output user output data sent from the execution environment to outside the execution container;
eine mit der Kommunikationsschnittstelle verbundene Sicherheitssteue- rungseinheit, die ausgebildet ist, solche Datenkommunikation der Daten- Verarbeitungsanwendung mit jeglichem relativ zur Ausführungsumgebung externen Kommunikationsendpunkt zu verhindern, deren Kommunikationspfad die Ausführungsumgebung umgeht; und eine mit der Kommunikationsschnittstelle verbundene Zugriffssteuerungseinheit, die ausgebildet ist, solche Datenkommunikation der Ausführungsumgebung mit jeglichem relativ zum Ausführungscontainer externen Kommunikationsendpunkt zu verhindern, der nicht durch eine erste Sicherheits- Vereinbarung als zulässig definiert ist.a security control unit connected to the communication interface and configured to prevent such data communication of the data processing application from any communication execution endpoint external to the execution environment whose communication path bypasses the execution environment; and an access control unit connected to the communication interface and arranged to prevent such data communication of the execution environment with any relative to the execution container external communication endpoint, which is not defined as permissible by a first security agreement.
Die erfindungsgemäße Vorrichtung hat den Vorteil, dass die Datenverarbeitungsanwendung des Diensteanbieters nicht durch den Diensteanbieter selbst, sondern durch eine vertrauenswürdige Ausführungsinstanz ausgeführt werden kann. Diese kann auf dem Equipment des Dienstanbieters, des Dienstnutzers oder einer dritten Partei ausgeführt werden. Die erfindungsgemäße Vorrichtung wird im Rahmen der vorliegenden Anmeldung als Ausführungscontainer bezeichnet.The device according to the invention has the advantage that the data processing application of the service provider can not be executed by the service provider itself, but by a trusted execution entity. This can be done on the equipment of the service provider, the service user or a third party. The device according to the invention is referred to in the context of the present application as an execution container.
Bei dem erfindungsgemäßen Ausführungscontainer ist sichergestellt, dass der Diensteanbieter Nutzereingabedaten nicht zur Verfügung gestellt bekommt. Zwar tauscht die Datenverarbeitungsanwendung Nutzereingabedaten mit der Ausfüh- rungsumgebung aus. Doch ist bei dem erfindungsgemäßen Ausführungscontainer sichergestellt, dass die der Datenverarbeitungsanwendung zur Verfügung gestellten Nutzereingabedaten nicht unkontrolliert nach außen, also beispielsweise an den Diensteanbieter der Datenverarbeitungsanwendung, gesendet werden können. Die Zugriffssteuerungseinheit verhindert, dass Daten von der Ausfüh- rungsumgebung an externe Kommunikationsendpunkte gesandt werden, die nicht durch eine erste Sicherheitsvereinbarung als zulässig definiert sind. Typischerweise ist die erste Sicherheitsvereinbarung dabei zwischen dem Anbieter der Datenverarbeitungsanwendung und dem Nutzer abgeschlossen. Die Sicherheitsvereinbarung liegt dem Ausführungscontainer in Form einer Datei vor. Die Zugriffssteuerungseinheit verwendet die erste Sicherheitsvereinbarung, um die Datenkommunikation der Ausführungsumgebung mit externen Kommunikationsendpunkten zu überwachen und erforderlichenfalls zu verhindern.In the execution container according to the invention, it is ensured that the service provider does not receive user input data. Although the data processing application exchanges user input data with the execution environment. However, in the embodiment container according to the invention, it is ensured that the user input data made available to the data processing application can not be sent uncontrollably to the outside, that is, for example, to the service provider of the data processing application. The access control unit prevents data from the execution environment from being sent to external communication endpoints that are not permitted by a first security agreement. Typically, the first security agreement is concluded between the provider of the data processing application and the user. The security agreement is in the form of a file for the execution container. The access control unit uses the first security agreement to monitor and, if necessary, prevent the data communication of the execution environment with external communication endpoints.
Weiterhin ist durch die im erfindungsgemäßen Ausführungscontainer vorgesehene Sicherheitssteuerungseinheit sichergestellt, dass allein die Ausführungsum- gebung, nicht jedoch die Datenverarbeitungsanwendung selbst mit Kommunikationsendpunkten kommunizieren kann, die relativ zur Ausführungsumgebung extern angeordnet sind. Die Sicherheitssteuerungseinheit verhindert aktiv jegliche Datenkommunikation der Datenverarbeitungsanwendung, deren Kommunikationspfad die Ausführungsumgebung umgeht. Das bedeutet, dass die Sicherheitssteuerungseinheit insbesondere direkte, unkontrollierte Kommunikation zwischen Datenverarbeitungsanwendungen verhindert, die in unterschiedliche Ausführungsumgebungen innerhalb des Ausführungscontainers eingebettet sind. In einem weiter unten näher beschriebenen Ausführungsbeispiel zählen hierzu auch sog. Covert-channel-Angriffe auf die Sicherheit des Ausführungscontainers.Furthermore, the safety control unit provided in the embodiment container ensures that only the execution environment, but not the data processing application itself, can communicate with communication endpoints that are relative to the execution environment are arranged externally. The security control unit actively prevents any data communication of the data processing application whose communication path bypasses the execution environment. This means that the security control unit in particular prevents direct, uncontrolled communication between data processing applications that are embedded in different execution environments within the execution container. In an embodiment described in more detail below also include so-called. Covert channel attacks on the security of the execution container.
Bei dem erfindungsgemäßen Ausführungscontainer sorgt die Ausführungsumge- bung für die notwendige Infrastruktur wie beispielsweise Zugriff zum Prozessor etc.In the embodiment container according to the invention, the execution environment provides the necessary infrastructure, such as access to the processor, etc.
Als Sicherheitsvereinbarung wird im vorliegenden Zusammenhang eine Regelung verstanden, die in Dateiform vorliegt und definiert, welche Datenkommunikation an welche Kommunikationsendpunkte gesendet werden darf. Weiterhin kann die Sicherheitsvereinbarung Information darüber enthalten, welche Daten eine Datenverarbeitungsanwendung (DVA) vom Nutzer erhalten darf sowie welche Daten der Nutzer von der DVA erhalten darf. Wenn in der vorliegenden Anmeldung im Zusammenhang mit der Erfindung von „Sicherheit" gesprochen wird, ist der Begriff im Sinne der eingangs genannten „privacy protection" als Schutz vor unbefugter Weitergabe und Verwertung persönlicher Daten zu verstehen. Was persönliche Daten sind, definiert eine jeweilige Sicherheitsvereinbarung, ist also von Einzelfall zu Einzelfall unterschiedlich.In the present context, a security agreement is understood to be a regulation which is present in file form and defines which data communication may be sent to which communication endpoints. Furthermore, the security agreement may contain information about what data a data processing application (DVA) may receive from the user as well as what data the user may receive from the DVA. If in the present application in the context of the invention of "security" is spoken, the term in the sense of the aforementioned "privacy protection" as protection against unauthorized disclosure and recovery of personal data to understand. What personal data is defines a respective security agreement, so it varies from individual case to case.
Als Datenverarbeitungsanwendung sind im Rahmen der vorliegenden Anmeldung ausführbare Programmdaten beispielsweise in Form mindestens einer ausführbaren Datei oder mindestens eines Skriptes. Beispiele von Datenverarbeitungsanwendungen werden später im Rahmen der Beschreibung bevorzugter Ausführungsbeispiele erläutert.As a data processing application executable program data in the context of the present application, for example in the form of at least one executable file or at least one script. Examples of data processing applications will be discussed later in the description of preferred embodiments.
Unter zulässiger Datenkommunikation, insbesondere unter zulässigen Nutzereingabedaten sind solche Nutzereingabedaten zu verstehen, die in der Sicher- heitsvereinbarung anhand nachprüfbarer Kriterien definiert werden. Ein Zulässig- keitskriterium kann beispielsweise ein Schwellwert einer mit einer Positionsbestimmung eines Nutzer-Endgeräts verbundenen Messgenauigkeit sein. Ein anderes Zulässigkeitskriterium kann beispielsweise vorschreiben, dass Adressdaten, entweder in Form des Wohnortes eines Nutzers oder in Form einer Netzwerkad- resse eines Nutzer-Endgerätes dieses Nutzers dem Ausführungscontainer nicht zur Verfügung gestellt werden. In entsprechender weise lassen sich auch Zuläs- sigkeitskriterien für Nutzerausgabedaten sowie ein zulässiger Empfänger der Nutzerausgabedaten in Bezug auf die jeweilige Datenverarbeitungsanwendung definieren.Permitted data communication, in particular under permitted user input data, is to be understood as user input data which are defined in the security agreement on the basis of verifiable criteria. A permissible keitskriterium can be, for example, a threshold value associated with a position determination of a user terminal measurement accuracy. Another admissibility criterion may stipulate, for example, that address data, either in the form of the residence of a user or in the form of a network address of a user terminal of this user, are not made available to the execution container. In a corresponding manner, eligibility criteria for user output data as well as a permissible recipient of the user output data with respect to the respective data processing application can be defined.
Die erste Sicherheitsvereinbarung zwischen dem Diensteanbieter und dem Nutzer regelt demnach den Datenfluss zwischen dem Nutzer und dem Ausführungscontainer einerseits sowie dem Ausführungscontainer und dem oder den zulässigen Empfängern der Nutzerausgabedaten. Dabei können die auszusendenden Nutzerausgabedaten auch entsprechend den Empfängern differenziert ausge- sendet werden. Beispielsweise kann die Übersendung an den Diensteanbieter auf Abrechnungsdaten beschränkt werden, während andere Nutzerausgabedaten beispielsweise an den Nutzer selbst übersandt werden, um ihm den mit der Datenverarbeitungsanwendung verbundenen Service des Diensteanbieters zu erbringen.The first security agreement between the service provider and the user accordingly regulates the data flow between the user and the execution container on the one hand and the execution container and the authorized recipient (s) of the user output data. In this case, the user output data to be sent can also be sent differentiated according to the recipients. For example, the transmission to the service provider may be limited to billing data, while other user output data may be transmitted to the user himself, for example, to provide him with the service provider's service associated with the data processing application.
Die erste Sicherheitsvereinbarung wird im Ausführungscontainer implementiert. Das bedeutet, dass der Ausführungscontainer bei der Ausführung der Datenverarbeitungsanwendung stets Zugriff auf die damit verbundene erste Sicherheitsvereinbarung hat und diese einhält.The first security agreement is implemented in the execution container. This means that the execution container always has access to and adheres to the associated first security agreement during execution of the data processing application.
Nachfolgend werden Ausführungsbeispiele des erfindungsgemäßen Ausfüh- rungscontainers beschrieben. Dabei können verschiedene Ausführungsbeispiele miteinander kombiniert werden, soweit dies durch die jeweilige Beschreibung nicht ausdrücklich ausgeschlossen ist.Embodiments of the embodiment of the invention container will be described below. In this case, different embodiments can be combined with each other, as far as this is not expressly excluded by the respective description.
Bei einem bevorzugten Ausführungsbeispiels des Ausführungscontainers hat dieser einen relativ zur Ausführungsumgebung externen Speicher für Nutzerein- gabedaten, der über die Kommunikationsschnittstelle mit der Ausführungsumge- bung verbunden ist. In diesem Ausführungsbeispiel ist die Sicherheitssteue- rungseinheit ausgebildet, einen direkten Zugriff der Datenverarbeitungsanwendung auf den Speicher zu verhindern. Speicherzugriffe können also nicht von der Anwendung selbst durchgeführt werden, ohne die Ausführungsumgebung in eine solche Operation einzubinden. Damit kann jedoch sichergestellt werden, dass die Datenverarbeitungsanwendung nicht in unzulässiger Weise auf den Speicher zugreift.In a preferred embodiment of the execution container, the latter has a memory for user input data that is external to the execution environment and that is accessible via the communication interface with the execution environment. is connected. In this embodiment, the security control unit is designed to prevent a direct access of the data processing application to the memory. Thus, memory accesses can not be performed by the application itself without involving the execution environment in such an operation. This can however ensure that the data processing application does not access the memory in an inadmissible way.
Eine Weiterbildung dieses Ausführungsbeispiels sieht vor, die Ausführungsumgebung so auszubilden, dass über die Kommunikationsschnittstelle auf relativ zum Ausführungscontainer externe Nutzereingabedaten lesend zugegriffen werden kann und eine lokale Kopie der externen Nutzereingabedaten im Speicher abgelegt werden kann. Ein Zugriff auf externe Nutzereingabedaten erfolgt bei diesem Ausführungsbeispiel allein durch die Ausführungsumgebung. Die Datenverarbeitungsanwendung erhält in diesem Ausführungsbeispiel keine Zugriffs- rechte auf externe Nutzereingabedaten.A further development of this exemplary embodiment provides for designing the execution environment in such a way that external user input data relative to the execution container can be read via the communication interface and a local copy of the external user input data can be stored in the memory. Access to external user input data is in this embodiment solely by the execution environment. The data processing application receives no access rights to external user input data in this exemplary embodiment.
Bei einem weiteren Ausführungsbeispiel enthält der Ausführungscontainer eine Verhandlungseinheit und eine Verhandlungsschnittstelle. Die Verhandlungseinheit ist ausgebildet, über die Verhandlungsschnittstelle entsprechend einem vordefinierten Verhandlungsprotokoll die erste Sicherheitsvereinbarung zwischen einem Diensteanbieter und einem Nutzer auszuhandeln. In einem Ausführungsbeispiel enthält die erste Sicherheitsvereinbarung folgende Angaben:In another embodiment, the execution container includes a negotiation unit and a negotiation interface. The negotiation unit is designed to negotiate the first security agreement between a service provider and a user via the negotiation interface in accordance with a predefined negotiation protocol. In one embodiment, the first security agreement includes the following information:
Literale, die z. B.: zu Steuerungszwecken nach außen kommuniziert werden dürfenLiterals, the z. B .: may be communicated to the outside for control purposes
Zulässige KommunikationsendpunktePermitted communication endpoints
- Nutzereingabedaten, die vom Ausführungscontainer an die DVA weitergeleitet werden dürfen.- User input data that may be forwarded from the execution container to the DVA.
Bei einem weiteren Ausführungsbeispiel hat der Ausführungscontainer eine Verhandlungseinheit und eine Verhandlungsschnittstelle, und die Verhandlungs- einheit ist ausgebildet, über die Verhandlungsschnittstelle entsprechend einem vordefinierten Verhandlungsprotokoll eine zweite Sicherheitsvereinbarung zwischen dem Ausführungscontainer und einem Dienstnutzer auszuhandeln, wobei diese folgende Angaben enthält:In another embodiment, the execution container has a negotiation unit and a negotiation interface, and the negotiation The unit is designed to negotiate a second security agreement between the execution container and a service user via the negotiation interface in accordance with a predefined negotiation protocol, wherein it contains the following information:
- eine Adresse mindestens eines relativ zum Ausführungscontainer externen Datenspeichers, auf den ein Lesezugriff des Ausführungscontainers zulässig ist, oderan address of at least one data store external to the execution container to which read access of the execution container is permitted, or
Nutzereingabedaten, auf die ein Lesezugriff des Ausführungscontainers zulässig ist.User input data that is allowed read access by the execution container.
Mit der zweiten Sicherheitsvereinbarung wird ein Werkzeug zur Verfügung gestellt, dass es dem Ausführungscontainer und dem Nutzer ermöglicht festzulegen, auf welche Weise die in der ersten Sicherheitsvereinbarung definierten Nutzereingabedaten dem Ausführungscontainer zur Verfügung gestellt werden. Neben dem Senden der Nutzereingabedaten von einem Nutzerendgerät zum Ausführungscontainer ist es in der Praxis häufig sinnvoll, dem Ausführungscontainer Zugriff auf Nutzereingabedaten zu gestatten, beispielsweise wenn es sich hierbei um häufig aktualisierte Daten handelt.The second security agreement provides a tool that allows the execution container and the user to determine how the user input data defined in the first security agreement is made available to the execution container. In addition to sending the user input data from a user terminal to the execution container, in practice it often makes sense to allow the execution container access to user input data, for example, if this is frequently updated data.
Dementsprechend können Nutzereingabedaten entweder vom Nutzer an den Ausführungscontainer übersandt und in diesem abgespeichert oder durch einen Zugriff des Ausführungscontainers auf nutzerseitig abgespeicherte Nutzereingabedaten vom Ausführungscontainer selbst abgeholt werden. Der Übersendeschritt kann bei bestimmten Datenverarbeitungsanwendungen auch schon im Zusammenhang mit dem Implementieren der Datenverarbeitungsanwendung im Ausführungscontainer erfolgen. In der Regel wird er jedoch im zeitlichen Zusam- menhang mit der Ausführung der Datenverarbeitungsanwendung durch den Ausführungscontainer durchgeführt werden.Accordingly, user input data can either be sent by the user to the execution container and stored in this or be picked up by an access of the execution container user-stored user input data from the execution container itself. The transmission step may also occur in connection with the implementation of the data processing application in the execution container in certain data processing applications. In general, however, it will be performed by the execution container in connection with the execution of the data processing application.
Es wird angemerkt, dass die Sicherheitssteuerungseinheit und die Zugriffssteuerungseinheit des Ausführungscontainers in einem Ausführungsbeispiel in einer einzigen Einheit integriert sind. Diese integrierte Einheit kann, wie die Sicher- heitssteuerungseinheit und die Zugriffssteuerungseinheit selbst, bei Vorliegen eines verteilten Ausführungscontainers auch über diese mehreren Ausführungscontainer verteilt sein.It is noted that the security control unit and the access control unit of the execution container are integrated into a single unit in one embodiment. This integrated unit, like the safety The control unit and the access control unit itself, in the presence of a distributed execution container also be distributed over these multiple execution container.
Die Sicherheitssteuerungseinheit ist in einem weiteren Ausführungsbeispiel ausgebildet, ihre genannten Funktionen ebenfalls in Abhängigkeit von Inhalten der ersten oder zweiten Sicherheitsvereinbarung oder in Abhängigkeit von Inhalten beider genannter Sicherheitsvereinbarungen auszuüben.In another embodiment, the security control unit is designed to also exercise its functions as a function of contents of the first or second security agreement or depending on contents of both security agreements.
Besonders bevorzugte Ausführungsbeispiele sehen Protokolle zur Aushandlung der Sicherheitsvereinbarungen vor. In einem Ausführungsbeispiel ist demnach ein Schritt des Verhandeins der ersten Sicherheitsvereinbarung zwischen dem Diensteanbieter und dem Nutzer gemäß einem vordefinierten Privacy-Verhand- lungsprotokoll vorgesehen. Dieser Schritt wird vor dem Schritt des Empfangens der ersten Sicherheitsvereinbarung beim Ausführungscontainer durchgeführt. Das Privacy-Verhandlungsprotokoll kann beispielsweise Formate von Angebots- und Gegenangebotsnachrichten definieren, die zwischen dem Nutzer und dem Diensteanbieter ausgetauscht werden können. Weiterhin kann das Privacy-Verhandlungsprotokoll Sicherheitspräferenzen-Formate definieren, die durch den Nutzer oder den Diensteanbieter mit ihren jeweiligen Sicherheitspräferenzen zu füllen sind. Die jeweiligen Sicherheitspräferenzen werden zwischen Nutzer und Diensteanbieter dann mit dem vordefinierten Sicherheitspräferenzen-Format durch Übersenden entsprechender Nachrichten gemäß dem Verhandlungsprotokoll ausgetauscht. Dies ermöglicht auf Seiten des Senders und Empfängers ein automatisches Durchführen der Verhandlung der Sicherheitsvereinbarung.Particularly preferred embodiments provide protocols for negotiating the security agreements. In one embodiment, therefore, a step of negotiating the first security agreement between the service provider and the user is provided according to a predefined privacy negotiation protocol. This step is performed before the step of receiving the first security agreement at the execution container. For example, the privacy negotiation protocol may define formats of offer and counter offer messages that may be exchanged between the user and the service provider. Furthermore, the privacy negotiation protocol may define security preferences formats to be filled by the user or service provider with their respective security preferences. The respective security preferences are then exchanged between the user and the service provider with the predefined security preferences format by sending corresponding messages according to the negotiation protocol. This allows the sender and recipient to automatically negotiate the security agreement.
In einer bevorzugten Ausführungsform definieren Nutzer und Diensteanbieter mindestens einen Satz jeweiliger Sicherheitspräferenzen sowie nichtverhandel- bare Mindestpräferenzen und verhandelbare Zusatzpräferenzen. Durch Definieren einer jeweiligen Verhandlungsstrategie vor der Verhandlung gemäß einem im Privacy-Verhandlungsprotokoll vordefinierten Verhandlungsstrategieformat wird es sogar möglich, die Verhandlung voll automatisch durchzuführen. In einer Verhandlungsstrategie kann eine jeweilige Partei beispielsweise definieren, dass die Verhandlung abgebrochen wird, wenn eine nichtverhandelbare Mindestpräfe- renz von der Gegenseite nicht akzeptiert wird. Weiterhin kann eine Verhandlungsstrategie vorsehen, dass anstelle eines Abbruchs bei einer verhandelbaren Zusatzpräferenz ein Gegenangebot oder ein eigenes neues Angebot mit einem veränderten Wert der verhandelbaren Zusatzpräferenz erstellt wird.In a preferred embodiment, users and service providers define at least one set of respective security preferences as well as non-negotiable minimum preferences and negotiable additional preferences. By defining a negotiation strategy prior to the negotiation according to a negotiation strategy format predefined in the privacy negotiation protocol, it is even possible to carry out the negotiation fully automatically. For example, in a negotiation strategy, each party may define that the negotiation will be terminated if a non-negotiable minimum from the other side is not accepted. Furthermore, a negotiation strategy may provide that instead of aborting a negotiable additional preference, a counter offer or a new offer of its own with a changed value of the negotiable additional preference is created.
Kommt es zu einer Einigung zwischen den Verhandlungsparteien, wird dies vorzugsweise durch Signieren des aktuellen Angebots bzw. Gegenangebots quittiert. Der Ausführungscontainer kann dann vor dem Implementieren der Sicherheitsvereinbarung einen weiteren Prüfschritt einschieben, der das Prüfen der Signaturen einer empfangenen Sicherheitsvereinbarung beinhaltet. Auf diese Weise wird sichergestellt, dass nur echte Sicherheitsvereinbarungen zwischen dem Diensteanbieter und dem Nutzer implementiert werden, was die Vertrauenswürdigkeit des Ausführungscontainers weiter erhöht. Es versteht sich, dass Signaturen der ersten Sicherheitsvereinbarung auch ohne Durchführung einer Verhandlung zwischen dem Nutzer und dem Diensteanbieter nach dem Verhand- lungsprotokoll beigefügt werden können, um die Echtheit der Sicherheitsvereinbarung sicherzustellen.If there is an agreement between the negotiating parties, this is preferably acknowledged by signing the current offer or counter offer. The execution container may then insert a further verification step prior to implementing the security agreement, including checking the signatures of a received security agreement. This ensures that only genuine security agreements between the service provider and the user are implemented, further increasing the trustworthiness of the execution container. It goes without saying that signatures of the first security agreement can also be attached to the negotiation protocol without a negotiation between the user and the service provider in order to ensure the authenticity of the security agreement.
Die Ausführungsumgebung ist so ausgebildet, dass nicht mehr benötigte Daten nicht nachträglich von dritter Seite aus gelesen werden können. Dieses kann bei einem besonders bevorzugten Ausführungsbeispiel z.B. erreicht werden indem nach Abschluss der Ausführung der Datenverarbeitungsanwendung eine Löschung im Speicher abgelegter Nutzereingabedaten und Nutzerausgabedaten der Datenverarbeitungsanwendung zu veranlasst wird,The execution environment is designed so that data that is no longer needed can not be retrieved later from a third party. This may, in a particularly preferred embodiment, e.g. be achieved by causing a deletion in the memory of stored user input data and user output data of the data processing application after completion of the execution of the data processing application,
Bei einem weiteren Ausführungsbeispiel ist die Ausführungsumgebung ausgebildet, dass ein Zugriff auf die Programmdaten von dritter Seite nicht möglich ist. Dieses kann z.B. dadurch erreicht werden, dass nach Abschluss der Ausführung der Datenverarbeitungsanwendung eine Beseitigung der instanzierten ausführbaren Programmdaten der Datenverarbeitungsanwendung zu veranlasst wird.In another embodiment, the execution environment is designed such that access to the third-party program data is not possible. This may e.g. be achieved by causing the instantiation of the execution of the data processing application to eliminate the instantiated executable program data of the data processing application.
Bei einem weiteren Ausführungsbeispiel ist die Sicherheitssteuerungseinheit oder die Zugriffssteuerungseinheit ausgebildet, das Vorliegen eines Kriteriums für eine Beendigung der Gültigkeit der ersten Sicherheitsvereinbarung zu prüfen, und bei Vorliegen eines solchen Kriteriums eine Löschung im Speicher abgelegter Nutzereingabedaten und Nutzerausgabedaten der Datenverarbeitungsanwendung zu veranlassen.In a further embodiment, the security control unit or the access control unit is adapted to check the presence of a criterion for termination of the validity of the first security agreement, and at Presence of such a criterion to cause a deletion in the memory of stored user input data and user output data of the data processing application.
Auf diese Weise kann zugunsten sowohl des Diensteanbieters als auch des Nutzers sichergestellt werden, dass die Datenverarbeitungsanwendung nur während der Dauer der Gültigkeit der ersten Sicherheitsvereinbarung ausgeführt wird. Ein Kriterium für die Beendigung der Gültigkeit der ersten Sicherheitsvereinbarung kann beispielsweise durch einen Zeitablauf in der ersten Sicherheitsvereinbarung selbst festgelegt werden. Die erste Sicherheitsvereinbarung kann ebenso als Beendigungskriterium für ihre Gültigkeit festlegen, dass die Gültigkeit bei Feststellung einer Verletzung der in der Sicherheitsvereinbarung definierten Zulässigkeitskriterien endet.In this way, it can be ensured for the benefit of both the service provider and the user that the data processing application is executed only during the period of validity of the first security agreement. For example, a criterion for terminating the validity of the first security agreement may be determined by a timeout in the first security agreement itself. The first security agreement may also be used as a termination criterion for its validity to expire if a violation of the eligibility criteria defined in the security agreement is established.
Bevorzugt werden also bei Vorliegen eines Kriteriums für die Beendigung der ersten Sicherheitsvereinbarung im Ausführungscontainer abgespeicherte Nutzer- eingabedaten und Nutzerausgabedaten gelöscht. Auf diese Weise wird sichergestellt, dass diese Daten niemandem zugänglich gemacht werden. Zum Schutz des Diensteanbieters kann vorteilhafterweise alternativ oder zusätzlich vorgesehen werden, dass bei Vorliegen eines Kriteriums für die Beendigung der Gültigkeit der ersten Sicherheitsvereinbarung die im Ausführungscontainer implemen- tierte Datenverarbeitungsanwendung gelöscht wird.Thus, if a criterion for terminating the first security agreement is stored, the user input data and user output data stored in the execution container are preferably deleted. This ensures that this data is not made available to anyone. For the purpose of protecting the service provider, provision can advantageously be made, alternatively or additionally, for the data processing application implemented in the execution container to be deleted if a criterion for terminating the validity of the first security agreement exists.
Es kann dann vorgesehen werden, eine Nachricht an den Nutzer und den Serviceanbieter zu erzeugen und auszusenden, die entweder über das Vorliegen für die Beendigung der Gültigkeit der ersten Sicherheitsvereinbarung oder über das Löschen der im Ausführungscontainer abgespeicherten Nutzereingabedaten, Nutzerausgabedaten und/oder Nutzerdatenverarbeitungsanwendung berichtet.It may then be provided to generate and send a message to the user and the service provider reporting either on the existence of the termination of the validity of the first security agreement or on the deletion of the user input data, user output data and / or user data processing application stored in the execution container.
Der Ausführungscontainer der vorliegenden Erfindung bildet ein Servicemodell. Der Ausführungscontainer kann beispielsweise vom Dienstnutzer, vom Dienstanbieter aber auch von einer dritten Partei betrieben werden. Innerhalb eines Ausführungscontainers kann eine Mehrzahl von Ausführungsumgebungen für Daten- Verarbeitungsanwendungen bereitgestellt werden. In jeder dieser Ausführungs- umgebungen darf aber nur jeweils eine DVA instanziiert und aktiv sein. So kann sichergestellt werden, dass sowohl für den Nutzer als auch für den Anbieter der Datenverarbeitungsanwendung Sicherheit vor zweckfremder Ausbeutung der ausgetauschten Daten bzw. Datenverarbeitungskapazitäten besteht. Ein bevor- zugter Ausführungscontainer enthält dementsprechend eine Mehrzahl Ausführungsumgebungen. Zur Wahrung der Sicherheit sind die Ausführungsumgebungen ausgebildet, jegliche Kommunikation zwischen unterschiedlichen Datenverarbeitungsanwendungen in relativ zueinander externen Ausführungsumgebungen innerhalb des Ausführungscontainers zu verhindern. Es ist also sicherge- stellt, dass die in einem Ausführungscontainer instanziierten Datenverarbeitungsanwendungen einander nicht beeinflussen oder wechselseitig aufeinander zugreifen können.The execution container of the present invention forms a service model. The execution container can be operated, for example, by the service user, by the service provider, but also by a third party. Within an execution container, a plurality of execution environments may be provided for data processing applications. In each of these embodiments But only one DVA can be instantiated and active. Thus, it can be ensured that there is security for the user as well as for the provider of the data processing application against misuse of the exchanged data or data processing capacities. A preferred execution container accordingly contains a plurality of execution environments. To maintain security, the execution environments are configured to prevent any communication between different computing applications in relatively external execution environments within the execution container. It is thus ensured that the data processing applications instantiated in an execution container can not influence one another or can mutually access one another.
Die Datenkommunikation mit relativ zum Ausführungscontainer externen Datenverarbeitungsanwendungen in externen Ausführungsumgebungen kann in einem bevorzugten Ausführungsbeispiel dadurch ohne Beeinträchtigung der Sicherheit erleichtert werden, dass die Ausführungsumgebung des Ausführungscontainers ausgebildet ist, auf ein von der Datenverarbeitungsanwendung her empfangenes Kommando hin über die Kommunikationsschnittstelle ein im Kommando angegebenes und aus einem Satz vorgegebener Literale ausgewähltes Literal an einen relativ zum Ausführungscontainer externen Kommunikationsendpunkt zu senden. Bei diesem Ausführungsbeispiel wird für eine Datenverarbeitungsanwendung ein Satz vordefinierter Literale zur Verfügung gestellt, die mit externen Ausführungsumgebungen ausgetauscht werden können. Selbstverständlich muss dieser Austausch im Rahmen der ersten Sicherheitsvereinbarung zulässig sein. Die Verwendung vordefinierter Literale, d. h., vordefinierter Befehle und Nachrichten, die in der Kommunikation zwischen der Datenverarbeitungsanwendung und einer externen Ausführungsumgebung erlaubt sind, ermöglicht eine zweckgebundene Kommunikation, die zugleich aufgrund ihrer vordefinierten Muster zur Laufzeit leicht auf ihre Zulässigkeit geprüft werden kann. Zu beachten ist, dass bei diesem Ausführungsbeispiel die Datenverarbeitungsanwendung ein Literal nicht selbst aussendet, sondern die Aussendung durch die Ausführungsumgebung erfolgt. Dadurch bleibt sichergestellt, dass die Datenverarbeitungsanwendung nicht selbstständig mit externen Kommunikationsendpunkten in Verbindung tritt. Es ist jedoch denkbar, dass mit Hilfe der vordefinierten Literale von einer entsprechend manipulierten Datenverarbeitungsanwendung versucht wird, nichtzulässige Information aus dem Ausführungscontainer „herauszuschleusen". Daher wird vorgeschlagen, die Gesamtanzahl an Literalen, die Häufigkeit der Aussen- düng von Literalen oder die Dauer einer Ausführung der Datenverarbeitungsanwendung, die Literale verwendet, zu begrenzen. Bei einem bevorzugten Ausführungsbeispiel ist die Ausführungsumgebung deshalb ausgebildet, über vordefinierte Literale höchstens eine Maximalzahl T von Datenbits zu senden. Die Maximalzahl T ist definiert durchData communication with external data processing applications relative to the execution container in external execution environments may be facilitated in a preferred embodiment without compromising security that the execution environment of the execution container is configured to respond to a command received from the data processing application via the communication interface To send a literal selected from a set of given literals to a communication endpoint external to the execution container. In this embodiment, for a data processing application, a set of predefined literals that can be exchanged with external execution environments is provided. Of course, this exchange must be permitted under the first security agreement. The use of predefined literals, ie, predefined commands and messages allowed in the communication between the data processing application and an external execution environment, enables dedicated communication which, at the same time, can easily be checked for eligibility based on its predefined patterns at runtime. It should be noted that in this embodiment, the data processing application does not send a literal itself, but the broadcast is made by the execution environment. This ensures that the data processing application does not automatically contact external communication endpoints. However, it is conceivable that the predefined literals will be used by a suitably manipulated data processing application to "throw out" inadmissible information from the execution container, thus proposing the total number of literals, the number of times that literals are made, or the duration of an execution In a preferred embodiment, therefore, the execution environment is configured to send at most a maximum number T of data bits via predefined literals. The maximum number T is defined by
Figure imgf000016_0001
L
Figure imgf000016_0001
L
wobei n die Anzahl übertragener Literale, L die Gesamtanzahl vordefinierter Literale ist, f die Frequenz der Übersendung von Literalen und t die Zeitdauer einer Sitzung, in der Literale übersandt werden.where n is the number of literals transferred, L is the total number of predefined literals, f is the frequency of transmission of literals, and t is the length of a session in which literals are sent.
Ein anderer möglicher Angriff auf die Sicherheit des Ausführungscontainers besteht darin, Übertragungskanäle zu erzeugen, die vom Ausführungscontainer nicht zur Informationsübertragung vorgesehen sind. Solche Kanäle werden im Englischen als „Covert Channels" bezeichnet. Ein solcher versteckter Kanal könnte beispielsweise dadurch gebildet werden, dass die Datenverarbeitungsanwendung gezielt variierende Prozessorauslastung erzeugt, wobei bestimmte Prozessorauslastungszustände bestimmte Bitwerte oder Symbolwerte mit höherer Bitanzahl repräsentieren können. Beispielsweise könnte eine Prozessorlast von 100 % für die Dauer 1 Sekunde als Bitwert „1" vereinbart sein, während eine geringere durchschnittliche CPU-Last während der Dauer einer Sekunde als Bitwert „0" vereinbart sein könnte. Die CPU-Auslastung ist mit bekannten techni- sehen Mitteln auslesbar. Ähnliches gilt für die Speicherverwendung. Bei einem bevorzugten Ausführungsbeispiel ist daher die Ausführungsumgebung ausgebildet, einen durch den Ausführungscontainer nutzbaren Prozessor nach einem nicht vorbestimmten Zeitmuster zu belasten, das unabhängig von einer tatsächlichen Belastung durch die Datenverarbeitungsanwendung ist. Auf diese Weise kann verhindert werden, dass die Datenverarbeitungsanwendung allein die Kontrolle über die Auslastung des Prozessors erhält. Ähnliche Maßnahmen sind für die Auslastung eines Speichers denkbar. Das Zeitmuster muss zufällig, also durch einen Zufallsgenerator gesteuert sein.Another possible attack on the security of the execution container is to create transmission channels that are not provided by the execution container for information transmission. Such channels may be formed, for example, by the data processing application selectively generating varying processor utilization, with certain processor utilization states being able to represent particular bit values or symbol values having a higher number of bits. for a duration of one second as bit value "1", while a lower average CPU load could be agreed as bit value "0" for one second during the duration of one second CPU utilization can be read by known technical means In a preferred embodiment, therefore, the execution environment is configured to charge a processor usable by the execution container for a non-predetermined time pattern that is independent of an actual load of the data processing This will prevent the data processing application from gaining control of processor utilization alone. Similar measures are for the utilization of a memory conceivable. The time pattern must be random, ie controlled by a random number generator.
Um auch auf mobilen Endgeräten mit begrenzten Ressourcen, wie Rechenleistung und Batteriekapazität, Datenverarbeitungsanwendungen eines Dienstean- bieters mit dem durch die vorliegende Erfindung geschaffenen Sicherheitsstand ausführen zu können, wird ein verteilter Ausführungscontainer vorgeschlagen, der einen ersten und einen zweiten Ausführungscontainer gemäß der vorstehend beschriebenen Erfindung enthält. Selbstverständlich kann der verteilte Ausführungscontainer auch mehr als zwei einzelne Ausführungscontainer enthalten. Die nachfolgende Beschreibung konzentriert sich der Einfachheit halber ohne Beschränkung der Allgemeinheit der Anwendbarkeit des Konzepts des verteilten Ausführungscontainers auf den Fall, dass dieser aus zwei Ausführungscontainern besteht. Dabei sind die zwei Ausführungscontainer über einen Datenübertragungskanal zum Austausch von Daten verbunden. Der Ausführungscontainer ist ausgebildet, sich gegenüber dem jeweils anderen Ausführungscontainer mit Hilfe eines geeigneten Authentisierungsmechanismus zu identifizieren. Weiterhin sind die Kommunikationsschnittstellen der Ausführungscontainer ausgebildet, Daten in verschlüsselter Form über den Datenübertragungskanal auszutauschen.In order to be able to execute on mobile terminals with limited resources, such as computing power and battery capacity, data processing applications of a service provider with the security created by the present invention, a distributed execution container is proposed, which includes a first and a second execution container according to the invention described above , Of course, the distributed execution container may also contain more than two individual execution containers. For the sake of simplicity, the following description will focus on the case where it consists of two execution containers, without restricting the generality of the applicability of the concept of the distributed execution container. The two execution containers are connected via a data transmission channel for the exchange of data. The execution container is designed to identify itself to the respective other execution container with the aid of a suitable authentication mechanism. Furthermore, the communication interfaces of the execution container are designed to exchange data in encrypted form via the data transmission channel.
Zur Bereitstellung einer Ausführungsumgebung gibt es grundsätzlich zwei Optio- nen. Zum einen könnte eine interpretierte Sprache verwendet werden und die hierfür erforderlichen Interpretationsmittel könnten im Ausführungscontainer vorgesehen sein. Eine Datenverarbeitungsanwendung würde in diesem Fall in Form eines Programms in der vorgesehenen Sprache von einem entsprechenden Diensteanbieter bereitgestellt. Durch Vorsehen von Interpretationsmitteln für unterschiedliche Programmiersprachen, könnte bei Verwendung dieses Konzeptes die Flexibilität des Ausführungscontainers erhöht werden. Dies hat jedoch zur Folge, dass der Ausführungscontainer unnötig hohe Datenmengen bereitstellen muss und stellt für Hardware mit begrenzter Kapazität wie beispielsweise PDAs keine praktikable Lösung dar. Bevorzugt ist daher eine zweite Option, nämlich die Verwendung eines Plattform-unabhängigen Byte-Codes bei den Datenverarbeitungsanwendungen. Entsprechend kann die Ausführungsumgebung eine Anwendungsumgebung wie beispielsweise eine Java-Laufzeitumgebung oder eine .NET-Laufzeitumgebung bilden. Beide alternative und bekannte Anwendungsumgebungen bieten die Leistungsfähigkeit und Effektivität, die benötigt wird, um komplexe Dienstleistungen und Datenverarbeitungsanwendungen zu implementieren. Die DVA stellen kompilierten Code dar und liefern eine geeignete Ausfüh- rungsgeschwindigkeit. Zu beachten ist jedoch, dass die Anwendungsumgebung entsprechend der Erfindung anzupassen ist. Hierfür sind entsprechende Ergänzungen der bekannten Anwendungsumgebungen erforderlich.There are basically two options for providing an execution environment. On the one hand, an interpreted language could be used and the necessary interpretation means could be provided in the execution container. A data processing application in this case would be provided in the form of a program in the intended language by a corresponding service provider. By providing interpretation means for different programming languages, the flexibility of the execution container could be increased using this concept. However, this results in the execution container having to provide unnecessarily large amounts of data and is not a viable solution for limited-capacity hardware such as PDAs. Therefore, a second option is preferred, namely the use of a platform-independent byte code in the data processing applications. Accordingly, the execution environment may include an application environment such as a Java runtime environment or a .NET runtime environment. Both alternative and known application environments provide the performance and effectiveness needed to implement complex services and data processing applications. The DVAs represent compiled code and provide a suitable execution speed. It should be noted, however, that the application environment is to be adapted according to the invention. For this purpose, appropriate additions to the known application environments are required.
Nachfolgend werden weitere Ausführungsbeispiele des erfindungsgemäßen Verfahrens und der Vorrichtung unter Heranziehung der Figuren beschrieben.Hereinafter, further embodiments of the method and the device according to the invention will be described with reference to the figures.
Fig. 1 zeigt eine vereinfachte Struktur eines Ausführungscontainers nach einem Ausführungsbeispiel der Erfindung;Fig. 1 shows a simplified structure of an embodiment container according to an embodiment of the invention;
Fig. 2 zeigt die Struktur eines verteilten Ausführungscontainers nach einem weiteren Ausführungsbeispiel der Erfindung;Fig. 2 shows the structure of a distributed execution container according to another embodiment of the invention;
Fig. 3 zeigt den Ablauf einer Verhandlung über eine Sicherheitsvereinbarung zur Verwendung in einem Ausführungsbeispiel der Erfindung.Fig. 3 shows the flow of negotiation over a security agreement for use in an embodiment of the invention.
Fig. 1 zeigt eine vereinfachte Struktur eines Ausführungscontainers 100 nach einem Ausführungsbeispiel der Erfindung. Der Container enthält als feste Bestandteile eine Anzahl Ausführungsumgebungen. Für das vorliegende Beispiel wird angenommen, dass der Ausführungscontainer 100 zwei Ausführungsumge- bungen 102 und 104 enthält. Andere Ausführungsbeispiele können nur einen oder mehr als zwei Ausführungsumgebungen enthalten. Die Ausführungsumgebungen 102 und 104 stellen eine Infrastruktur bereit, die alle Mittel zum Instanzie- ren und Ausführen einer Datenverarbeitungsanwendung in Form von ausführbaren Programmdateien, Skripten o. ä. beinhaltet. Die Ausführungsumgebung wird im vorliegenden Ausführungsbeispiel durch eine Anwendungsumgebung realisiert. Beispiele bekannter Anwendungsumgebungen sind die Java- Laufzeitumgebung oder die sogenannte .NET Common Language Runtime (CLR). Die Anwendungsumgebungen 102 und 104 sind grundsätzlich gleich ausgebildet. Gegenüber bekannten Laufzeitumgebungen müssen sie für eine Implementierung der vorliegenden Erfindung angepasst werden, wie es sich aus der nachfolgenden Beschreibung im Einzelnen ergibt.Fig. 1 shows a simplified structure of an execution container 100 according to an embodiment of the invention. The container contains a number of execution environments as fixed components. For the present example, it is assumed that execution container 100 includes two execution environments 102 and 104. Other embodiments may include only one or more than two execution environments. The execution environments 102 and 104 provide an infrastructure that includes all means for instantiating and executing a data processing application in the form of executable program files, scripts, or the like. The execution environment is realized in the present embodiment by an application environment. Examples of known application environments are the Java runtime environment or the .NET Common Language Runtime (CLR). The application environments 102 and 104 are basically the same. Compared to known runtime environments, they must be for a Implementation of the present invention, as will become apparent from the following description in detail.
Jede Ausführungsumgebung des Ausführungscontainers 100 ist ausgebildet, eine Datenverarbeitungsanwendung 106 bzw. 108 in Form ausführbarer Pro- grammdaten zu instanzieren und auszuführen. Eine Datenverarbeitungsanwendung wird dem Ausführungscontainer von einem Diensteanbieter in Form eines Plattform-unabhängigen Byte-Codes, der an die Anwendungsumgebung, in der der Ausführungscontainer arbeitet, angepasst ist, zur Verfügung gestellt. Die Datenverarbeitungsanwendung kann beispielsweise in Form von Java-Byte-Code oder in Form einer in .NET Intermediate Language (CIL) vorliegenden Programmdatei übermittelt werden. Hierbei handelt es sich um kompilierten Code, der in der Lage ist, eine für die meisten Datenverarbeitungsanwendungen erforderliche Ausführungsgeschwindigkeit sicherzustellen.Each execution environment of the execution container 100 is designed to instantiate and execute a data processing application 106 or 108 in the form of executable program data. A data processing application is provided to the execution container by a service provider in the form of a platform independent bytecode adapted to the application environment in which the execution container operates. The data processing application can be transmitted, for example, in the form of Java byte code or in the form of a program file present in .NET Intermediate Language (CIL). This is compiled code that is capable of ensuring the execution speed required for most data processing applications.
In der nachfolgenden Beschreibung wird ohne Einschränkung der Allgemeinheit angenommen, dass die Ausführungsumgebungen 102 und 104, wie auch 100 in der Java-Laufzeitumgebung ausgebildet sind.In the following description, it is assumed without limitation that the execution environments 102 and 104, as well as 100, are embodied in the Java runtime environment.
Bei den Datenverarbeitungsanwendungen 106 und 108 kann es sich um unterschiedliche Typen von Datenverarbeitungsanwendungen handeln. Eine grobe Unterscheidung von Datenverarbeitungsanwendungen kann in Datenlieferdiens- te, Datensteuerdienste und Warenlieferdienste vorgenommen werden. Ein Beispiel für einen Datenlieferdienst ist beispielsweise ein Navigationsdienst. Derartige Dienste kommunizieren in erster Linie mit dem jeweiligen Nutzer. Ein Navigationsdienst benötigt beispielsweise eine in einem Speicher 1 10, der mit dem Ausführungscontainer 100 verbunden ist, abgespeicherte Karte sowie vom Nut- zer eine aktuelle Position eines mobilen Empfangsgerätes. Eine Kommunikation mit dem Diensteanbieter ist nicht erforderlich. Denkbar ist jedoch, dass dem Diensteanbieter kommuniziert wird, in welchem Umfang von der Datenverarbeitungsanwendung Gebrauch gemacht wurde, um dem Diensteanbieter gegenüber dem Nutzer eine Abrechnung der erbrachten Leistungen zu ermöglichen. Datensteuerdienste sind beispielsweise Fernsteuerdienste für fernsteuerbare Geräte. Ein Beispiel eines solchen Dienstes ist die Möglichkeit, eine Panoramakamera durch einen entfernten Nutzer steuern zu lassen. Bei einem solchen Dienst ist es erforderlich, dass Steuersignale vom Nutzer aus über den Ausfüh- rungscontainer 100 zum Diensteanbieter gelangen, um die Kamera steuern zu können.The data processing applications 106 and 108 may be different types of data processing applications. A rough distinction of data processing applications can be made in data delivery services, data control services and goods delivery services. An example of a data delivery service is, for example, a navigation service. Such services communicate primarily with the respective user. A navigation service requires, for example, a map stored in a memory 110 which is connected to the execution container 100, and a current position of a mobile receiving device from the user. Communication with the service provider is not required. It is conceivable, however, that the service provider is communicated to what extent use was made of the data processing application in order to enable the service provider to charge the user for the services rendered. Data control services are, for example, remote control services for remotely controllable devices. An example of such a service is the ability to have a panoramic camera controlled by a remote user. In such a service, it is necessary for control signals from the user to reach the service provider via the execution container 100 in order to be able to control the camera.
Warenlieferdienste sind bekannte Formen von Online-Shops oder beispielsweise Druckdiensten. Bei diesen Diensten ist es tatsächlich erforderlich, dass der Nutzer private Daten, wie beispielsweise eine Lieferadresse oder auszudruckende Dateien, zur Verfügung stellt.Goods delivery services are well-known forms of online shops or, for example, printing services. These services actually require the user to provide private information, such as a delivery address or files to be printed.
Die einer jeweiligen Datenverarbeitungsanwendung zugeordnete Ausführungsumgebung 102 bzw. 104 ist ausgebildet, Nutzereingabedaten und Nutzerausgabedaten mit der Datenverarbeitungsanwendung 106 bzw. 108 auszutauschen. Wesentlich ist, dass aller Datenaustausch der Datenverarbeitungsanwendung über die zugeordnete Ausführungsumgebung erfolgt. Unterschiedliche Datenverarbeitungsanwendungen, die in unterschiedlichen Ausführungsumgebungen des Ausführungscontainers 100 ausgeführt werden, können nicht miteinander kommunizieren. Dies wird durch die Nichtexistenz von gemeinsamem Speicher und die Struktur der nachfolgend näher beschriebenen Kommunikationsschnittstelle 112 sichergestellt.The execution environment 102 or 104 associated with a respective data processing application is configured to exchange user input data and user output data with the data processing application 106 or 108. It is essential that all data exchange of the data processing application takes place via the assigned execution environment. Different computing applications executing in different execution environments of execution container 100 may not communicate with each other. This is ensured by the non-existence of shared memory and the structure of the communication interface 112 described in more detail below.
Die Kommunikationsschnittstelle 1 12 umfasst eine Sicherheitssteuerungseinheit 1 14, die im vorliegenden Ausführungsbeispiel in einer verteilten Struktur mit zwei Untereinheiten 114.1 und 1 14.2 ausgeführt ist. Beide Untereinheiten werden der Einfachheit halber nachfolgend ebenfalls als Sicherheitssteuerungseinheit be- zeichnet. Die Sicherheitssteuerungseinheiten 1 14.1 und 114.2 sind mit einer jeweils zugeordneten Ausführungsumgebung 102 bzw. 104 verbunden und ü- berwachen die Datenkommunikation der Datenverarbeitungsanwendung 106 bzw. 108.The communication interface 1 12 comprises a safety control unit 1 14, which in the present embodiment is designed in a distributed structure with two subunits 114.1 and 14.2. For the sake of simplicity, both subunits are also referred to below as a safety control unit. The safety control units 1 14.1 and 114.2 are connected to a respectively assigned execution environment 102 or 104 and monitor the data communication of the data processing application 106 or 108.
Insbesondere ist die Sicherheitssteuerungseinheit 114 ausgebildet, jegliche Kommunikation der zugeordneten Datenverarbeitungsanwendung zu verhindern, wenn diese mit einem relativ zur zugeordneten Ausführungsumgebung externen Kommunikationsendpunkt erfolgen soll und wenn die Datenkommunikation die zugeordnete Ausführungsumgebung umgeht. Die Sicherheitssteuerungseinheit 1 14 stellt daher sicher, dass alle Datenkommunikation der Datenverarbeitungs- anwendungen 106 und 108 mit einem externen Kommunikationsendpunkt über die zugeordnete Ausführungsumgebung erfolgt. Das bedeutet, dass die Ausführungsumgebung stets die Kontrolle über die entsprechende Datenkommunikation hat und sicherstellen kann, dass zur Verfügung gestellte Nutzereingabedaten nicht in unzulässiger Weise nach extern kommuniziert werden. Die in der Sicher- heitssteuerungseinheit 1 14 enthaltenen Sicherheitssteuerungseinheiten 114.1 und 114.2 greifen auf erste Sicherheitsvereinbarungen 118 und 120 zu, die im Ausführungscontainer 100 in Dateiform vorliegen und eine Vereinbarung zwischen dem Anbieter der jeweiligen Datenverarbeitungsanwendung 106 bzw. 108 und dem jeweiligen Nutzer darstellen. Da eine Datenverarbeitungsanwendung für eine große Anzahl Nutzer ausgeführt werden kann, verfügt der Ausführungscontainer 100 über eine entsprechende Anzahl von ersten Sicherheitsvereinbarungen, wobei für jeden Nutzer die ihm zugeordnete erste Sicherheitsvereinbarung verwendet wird. Das Format der ersten Sicherheitsvereinbarung muss einerseits reichhaltig genug sein, um eine komfortable Handhabung zu ermöglichen, und muss andererseits knapp genug sein, um sicherzustellen, dass kein bösartiger Code integriert werden kann, der nutzerbezogene Daten ausforschen und unter Verwendung erlaubter Nachrichten versenden kann. Weiterhin ist das Format der Sicherheit der ersten Sicherheitsvereinbarung so definiert, dass die Kommunikationsschnittstelle 1 12 des Ausführungscontainers 100 prüfen kann, ob eine jewei- lige Nachricht zulässig ist oder nicht. Vorteilhaft ist die Verwendung eines Codes in der ersten Sicherheitsvereinbarung, der nur das Aussenden vordefinierter Nachrichten, so genannter Literale ermöglicht. In diesem Fall kann die Sicherheitssteuerungseinheit 114 einen einfachen Vergleich von Zeichenketten vornehmen, um zu prüfen, ob eine Nachricht zulässig ist oder nicht. Die Sicherheits- Steuerungseinheit 114 prüft demnach die ihr zugeleiteten eingehenden und ausgehenden Nachrichten auf ihre Zulässigkeit entsprechend der jeweiligen Sicherheitsvereinbarung. Die Sicherheitssteuerungseinheit 114 ist ausgebildet, solche Datenkommunikation einer jeweiligen Ausführungsumgebung mit jeglichem relativ zum Ausführungscontainer externen Kommunikationsendpunkt zu verhin- dern, die nicht durch die entsprechende erste Sicherheitsvereinbarung 118 bzw. 120 als zulässig definiert ist.In particular, the security control unit 114 is configured to prevent any communication of the associated data processing application, if it is to occur with a communication endpoint external to the associated execution environment and if the data communication bypasses the associated execution environment. The security control unit 14 therefore ensures that all data communication of the data processing applications 106 and 108 with an external communication endpoint is via the associated execution environment. This means that the execution environment always has control over the appropriate data communication and can ensure that provided user input data is not improperly communicated externally. The security control units 114.1 and 114.2 contained in the security control unit 114 access first security agreements 118 and 120 which are present in the execution container 100 in file form and constitute an agreement between the provider of the respective data processing application 106 or 108 and the respective user. Since a data processing application can be executed for a large number of users, the execution container 100 has a corresponding number of first security agreements, whereby the first security agreement assigned to each user is used. On the one hand, the format of the first security agreement must be rich enough to allow for convenient handling, and on the other hand, it needs to be scarce enough to ensure that malicious code can not be integrated that can search user-related data and send it using legitimate messages. Furthermore, the format of the security of the first security agreement is defined such that the communication interface 1 12 of the execution container 100 can check whether a respective message is permissible or not. It is advantageous to use a code in the first security agreement, which allows only the transmission of predefined messages, so-called literals. In this case, the security control unit 114 may make a simple comparison of character strings to check whether a message is allowed or not. The security control unit 114 therefore checks the incoming and outgoing messages sent to it for their admissibility according to the respective security agreement. The security control unit 114 is designed to prevent such data communication of a respective execution environment with any communication endpoint external to the execution container. not defined by the corresponding first security agreement 118 or 120 as admissible.
Die Kommunikationsschnittstelle 1 12 enthält weiterhin eine Zugriffssteuerungseinheit 1 16. Die Zugriffssteuerungseinheit 1 16 greift auf zweite Sicherheitsver- einbarungen 1 19 und 121 zu, die im Ausführungscontainer 100 in Dateiform vorliegen und eine Vereinbarung zwischen dem jeweiligen Nutzer und dem Ausführungscontainer bilden. Da Ausführungscontainer von einer großen Anzahl Nutzer genutzt werden kann, verfügt der Ausführungscontainer 100 über eine entsprechende Anzahl von zweiten Sicherheitsvereinbarungen, wobei für jeden Nutzer die ihm zugeordnete zweite Sicherheitsvereinbarung verwendet wird. Die Zugriffssteuerungseinheit 116 überwacht die Zugriffe auf den Speicher 1 10 unter Anwendung der zweiten Sicherheitsvereinbarung.The communication interface 1 12 also contains an access control unit 16. The access control unit 16 accesses second security agreements 1 19 and 121, which are present in the execution container 100 in file form and form an agreement between the respective user and the execution container. Since execution containers can be used by a large number of users, the execution container 100 has a corresponding number of second security agreements, wherein the second security agreement assigned to each user is used for each user. The access control unit 116 monitors the accesses to the memory 110 using the second security agreement.
Zulässige Nachrichten werden über eine Datenzugriffsschicht 122 nach extern weitergeleitet. Die Schnittstelle 122 steuert die ausschließlich lesenden Zugriffe auf den Speicher 1 10. Außerdem steuert 122 die zulässige Kommunikation mit Literalen sowie die Kommunikation mit anderen Containern.Permitted messages are forwarded externally via a data access layer 122. The interface 122 controls the read-only accesses to the memory 1 10. In addition, 122 controls allowed communication with literals as well as communication with other containers.
Für manche Anwendungen ist es jedoch sinnvoll, eine vereinfachte Kommunikation der Ausführungsumgebung mit relativ zum Ausführungscontainer 100 externen Anwendung zu ermöglichen. In Fig. 1 ist eine externe Anwendungsumge- bung 124 dargestellt, die eine hier nicht näher dargestellte Datenverarbeitungsanwendung beherbergt. Beispielsweise kann es sich hierbei um die Steuerung der oben erwähnten Panoramakamera handeln. In diesem Fall enthält die zugeordnete erste Sicherheitsvereinbarung 118 eine Anzahl Steuerbefehle, die zwischen der Ausführungsumgebung 102 im Ausführungscontainer 100 und der externen Anwendungsumgebung 124 ausgetauscht werden dürfen. Solche Literale können von der Zugriffssteuerungseinheit 1 14 in einfacher Weise auf ihre Zulässigkeit überprüft werden.For some applications, however, it makes sense to allow simplified communication of the execution environment with external application relative to the execution container. 1, an external application environment 124 is shown, which houses a data processing application (not shown here). For example, this may be the control of the panoramic camera mentioned above. In this case, the associated first security agreement 118 includes a number of control commands that may be exchanged between the execution environment 102 in the execution container 100 and the external application environment 124. Such literals can be easily checked by the access control unit 14 for their permissibility.
Es können, müssen jedoch nicht, alle Nutzerausgabedaten auf ihre Zulässigkeit geprüft werden. In einem Ausführungsbeispiel werden bestimmte Datentypen von der Prüfung ausgenommen. In diesem Ausführungsbeispiel kann beispielsweise festgelegt sein, dass Daten, die zur Steuerung einer graphischen Nutzerschnittstelle dienen, nicht dem Prüfschritt unterworfen werden. Es kann festgelegt werden, dass diese Daten jedoch nur an denjenigen Teil des Containers gesendet werden dürfen, der auf dem Endgerät des Dienstnutzers ausgeführt wird, wo sie ungeprüft angezeigt werden können.It may, but is not necessary, to check all user output data for its admissibility. In one embodiment, certain types of data are excluded from the exam. For example, in this embodiment be determined that data that serve to control a graphical user interface, are not subject to the test step. It can be determined, however, that this data may only be sent to that part of the container which is executed on the terminal of the service user, where it can be displayed unchecked.
Die Kommunikationsschnittstelle 112 stellt also im Zusammenwirken mit der Sicherheitssteuerungseinheit 1 14 und der Datenzugriffschicht 122 sicher, dass nur diejenigen Nachrichten mit externen Kommunikationsendpunkten ausgetauscht werden, die ausdrücklich in der ersten Sicherheitsvereinbarung als zuläs- sig deklariert sind und sorgt gleichzeitig dafür, dass sie nur an die in der Sicherheitsvereinbarung vordefinierten Empfänger/Kommunikationsendpunkte versandt werden. Zu beachten ist, dass der Ausführungscontainer 100 eine Vielzahl unterschiedlicher Datenverarbeitungsanwendungen beherbergen kann und ebenso eine große Zahl von Nutzern unterschiedlicher Datenverarbeitungsanwendungen betreuen kann. Dementsprechend können sich die zulässigen Daten entsprechend den abgespeicherten ersten Sicherheitsvereinbarungen häufig ändern. Die Kommunikationsschnittstelle 1 12 bildet daher eine Art Regelmaschine, die nach den vorgegebenen ersten Sicherheitsvereinbarungen die Kommunikation der Ausführungsumgebungen mit anderen Kommunikationsendpunkten überwacht und steuert.The communication interface 112 thus ensures, in cooperation with the security control unit 14 and the data access layer 122, that only those messages are exchanged with external communication endpoints that are expressly declared permissible in the first security agreement and at the same time ensure that they are only addressed to the predefined recipients / communication endpoints are sent in the security agreement. It should be appreciated that the execution container 100 may accommodate a variety of different computing applications and may also serve a large number of users of different computing applications. Accordingly, the permissible data may change frequently according to the stored first security agreements. The communication interface 1 12 therefore forms a kind of rule machine that monitors and controls the communication of the execution environments with other communication endpoints according to the predetermined first security agreements.
Auch die Häufigkeit zu sendender Nachrichten kann durch die Sicherheitsvereinbarungen oder durch vordefinierte Regeln des Ausführungscontainers begrenzt werden. Möglich ist auch, orthogonale Nachrichten in unspezifischer Reihenfolge zu senden. Auf diese Weise wird verhindert, dass in Nachrichten in unerlaubter Weise weitere Informationen codiert werden.The frequency of messages to be sent can also be limited by the security agreements or by predefined rules of the execution container. It is also possible to send orthogonal messages in unspecified order. This prevents information from being illegally encoded in messages.
Ein Ausführungscontainer 100 kann auch von einem Diensteanbieter betrieben werden. In diesem Fall ist es wichtig, dass die Sicherheitsregeln, die der Ausführungscontainer 100 vorschreibt, nicht vom Betreiber des Ausführungscontainers verändert werden können. Die Sicherheitsregeln des erfindungsgemäßen Aus- führungscontainers 100 sind fest und werden durch die vorstehend beschriebenen Mittel überwacht. Eine zusätzliche Absicherung kann dadurch erfolgen, dass der Ausführungscontainer ausgebildet ist, sich nicht zu instanzieren, wenn er nicht die absolut erste Komponente ist, die z.B. in einer Java Virtual Machine (JVM) gestartet wird, oder wenn bereits ein fremder Sicherheitsmanager installiert ist oder die JVM modifiziert worden ist. Vorzugsweise ist der Ausführungs- Container ausgebildet, sichere Hash-Codes aller laufenden Module innerhalb des aktuellen Prozesses mit einem Satz gesicherter Hash-Codes zu vergleichen, um zu überprüfen, ob der aktuelle Code dem original Code des Anbieters des Ausführungscontainers entspricht. Eine solche Hash-Überprüfung stellt auch sicher, dass Klassen z.B. Java-Klassen in einer JVM, die auf externe Ressourcen zugreifen, sicher sind.An execution container 100 may also be operated by a service provider. In this case, it is important that the security rules that the execution container 100 dictates can not be changed by the owner of the execution container. The safety rules of the embodiment container 100 according to the invention are fixed and are monitored by the means described above. Additional protection can be provided by the execution container is designed not to instantiate itself if it is not the absolutely first component that is started eg in a Java Virtual Machine (JVM), or if a foreign security manager is already installed or the JVM has been modified. Preferably, the execution container is adapted to compare secure hash codes of all running modules within the current process with a set of saved hash codes to check whether the current code corresponds to the original code of the provider of the execution container. Such a hash check also ensures that classes such as Java classes in a JVM that access external resources are safe.
Um einen Zugriff unterschiedlicher Datenverarbeitungsanwendungen in unterschiedlichen Ausführungsumgebungen aufeinander zu verhindern, kann die Sicherheitssteuerungseinheit 1 14 in der Form ausgebildet sein, dass für unterschiedliche Ausführungsumgebungen unterschiedliche Java-Klassenlader vorge- sehen sind. Objekte in unterschiedlichen Ausführungsumgebungen haben auf diese Weise keinen Zugriff auf Instanzen anderer Ausführungsumgebungen. Allein der Ausführungscontainer oder solche Java-Klassen, die innerhalb derselben Ausführungsumgebung vorgesehen sind, können zugreifen. Durch die Sicherheitssteuerungseinheit 1 14 ist sichergestellt, dass ein Zugriff auf Klassen in anderen Ausführungsumgebungen nicht ermöglicht wird. Ebenso gibt es auch keinen gemeinsamen Zugriff unterschiedlicher Ausführungsumgebungen auf den selben Speicher.In order to prevent access of different data processing applications to one another in different execution environments, the safety control unit 14 may be designed in such a way that different Java class loaders are provided for different execution environments. Objects in different execution environments will not have access to instances of other execution environments in this way. Only the execution container or Java classes provided within the same execution environment can access. The security control unit 1 14 ensures that access to classes in other execution environments is not possible. Likewise, there is no shared access of different execution environments to the same memory.
Der Ausführungscontainer 100 sorgt für eine sichere und vollständige Beseitigung von Daten und der Datenverarbeitungsanwendung, wenn die entsprechen- de Datenverarbeitungsanwendung nicht mehr benötigt wird, oder wenn die erste Sicherheitsvereinbarung nicht mehr gültig ist. Die Anwendungsumgebungen, die für die Ausführung von Byte-Code benötigt werden, d.h., die Java- Laufzeitumgebung (Java Runtime Environment, JRE) und die .NET Common Language Runtime (CLR) beinhalten ein als Garbage Collection bezeichnetes Konzept. Danach wird sichergestellt, dass Daten, die nicht mehr benötigt werden, gelöscht werden. Die Datenverarbeitungsanwendungen selbst werden auf dieselbe Weise beseitigt, wenn sie nicht mehr benötigt werden. Eine Klassen- Definition kann durch eine Klassenbeseitigung gelöscht werden, was z.B: in Java durch einen eigenen Klassenlader („Class Loader") für den Ausführungscontainer implementiert werden kann. Dieser „Class Loader" besorgt das Laden einer Klasse wie auch ihre Beseitigung, wenn sie nicht mehr benötigt wird.The execution container 100 ensures a secure and complete elimination of data and the data processing application when the corresponding data processing application is no longer needed, or when the first security agreement is no longer valid. The application environments needed to execute byte code, that is, the Java Runtime Environment (JRE) and the .NET Common Language Runtime (CLR), include a concept called garbage collection. It then ensures that data that is no longer needed is deleted. The data processing applications themselves are eliminated in the same way when they are no longer needed. A class Definition can be cleared by a class debugger, which can be implemented, for example, in Java by its own class loader for the execution container This class loader solves the loading of a class as well as its removal when it is no longer needed becomes.
Fig. 2 zeigt die Struktur eines verteilten Ausführungscontainers nach einem weiteren Ausführungsbeispiel der Erfindung. Die in Fig. 2 dargestellte Struktur eines verteilten Ausführungscontainers 200 basiert auf der Struktur des in Fig. 1 dargestellten Ausführungscontainers 100. Daher sind entsprechende Elemente des verteilten Ausführungscontainers 200 in Fig. 2 mit Bezugszeichen versehen, die sich von den Elementen der Fig. 1 lediglich in der ersten Ziffer unterscheiden, wo statt einer „1 " eine „2" enthalten ist. Der Ausführungscontainer 200 enthält im vorliegenden Ausführungsbeispiel zwei Teil-Ausführungscontainer 200.1 und 200.2. Die Struktur des Ausführungscontainers 200.1 entspricht mit Ausnahme der nachfolgend beschriebenen Merkmale exakt der Struktur des Ausführungs- Containers 100 der Fig. 1. Zusätzlich zu den oben beschriebenen Funktionseinheiten sind in der Kommunikationsschnittstelle 212.1 des Teil-Ausführungscontainers 200.1 und in der Kommunikationsschnittstelle 212.2 des Teil-Ausführungscontainers 200.2 Kanalports 226.1 bis 232.1 bzw. 226.2 bis 232.2 vorgesehen. Über entsprechende Kanäle kommunizieren korrespondierende Ausfüh- rungsumgebungen 202.1 und 202.2 sowie 204.1 und 204.2 jeweils paarweise miteinander. Die Anzahl der Kanalports ist nicht fix. Die Teil- Ausführungscontainer 200.1 und 200.2 sind auf räumlich getrennter Hardware vorgesehen, die miteinander kommunizieren. Beispielsweise kann der Teil- Ausführungscontainer 200.1 auf einem ortsfesten Server installiert sein, während der zweite Teil-Ausführungscontainer 200.2 auf einem PDA installiert ist. Die Kommunikationsschnittstellen 212.1 und 212.2 sind ausgebildet, die auf jedem Kanal ablaufende Datenkommunikation kanalspezifisch zu verschlüsseln. Auf diese Weise ist sichergestellt, dass die zwischen den kommunizierenden Ausführungsumgebungen 202.1 und 202.2, die gemeinsam jeweils zugeordnete Teile 206.1 und 206.2 einer Datenverarbeitungsanwendung ausführen, ohne Zugriffsmöglichkeit für Dritte miteinander kommunizieren. Auf diese Weise ist es möglich, die Rechenlast einer Datenverarbeitungsanwendung auf mehrere Geräte mit begrenzten Ressourcen zu verteilen. Auf diese Weise wird es möglich, verbesserte Ressourcen und mehr Rechenleistung zu verwenden. Die Teil-Ausführungscontainer identifizieren sich wechselseitig mit Hilfe geeigneter Authentisierungsmechanismen, um sicherzustellen, dass der Gesamt-Ausführungscontainer 200 eine sichere Ausführungsumgebung darstellt.Fig. 2 shows the structure of a distributed execution container according to another embodiment of the invention. The structure of a distributed execution container 200 illustrated in FIG. 2 is based on the structure of the execution container 100 shown in FIG. 1. Therefore, corresponding elements of the distributed execution container 200 in FIG. 2 are provided with reference numerals that are different from the elements of FIG in the first digit, where instead of a "1" a "2" is included. In the present exemplary embodiment, the execution container 200 contains two partial execution containers 200.1 and 200.2. The structure of execution container 200.1, with the exception of the features described below, corresponds exactly to the structure of execution container 100 of FIG. 1. In addition to the functional units described above, communication interface 212.1 of sub-execution container 200.1 and communication interface 212.2 of the sub-execution container 200.2 channel ports 226.1 to 232.1 or 226.2 to 232.2 provided. Corresponding execution environments 202.1 and 202.2 as well as 204.1 and 204.2 communicate with each other in pairs via corresponding channels. The number of channel ports is not fixed. The sub-execution containers 200.1 and 200.2 are provided on spatially separate hardware that communicate with each other. For example, the sub-execution container 200.1 may be installed on a stationary server while the second sub-execution container 200.2 is installed on a PDA. The communication interfaces 212.1 and 212.2 are designed to channel-specifically encrypt the data communication running on each channel. In this way, it is ensured that the parts 206.1 and 206.2 that communicate between the communicating execution environments 202.1 and 202.2, which jointly execute parts 206.1 and 206.2 of a data processing application, communicate with each other without accessibility for third parties. In this way, it is possible to distribute the computational burden of a data processing application on multiple devices with limited resources. This makes it possible to use improved resources and more processing power. The sub-execution containers mutually identify themselves using appropriate authentication mechanisms to ensure that the overall execution container 200 is a secure execution environment.
Durch die Verbindung der Teil-Ausführungscontainer 200.1 und 200.2 miteinander können beide Teile auf dieselben Nutzereingabedaten zugreifen, wenn dies durch die jeweilige erste Sicherheitsvereinbarung abgedeckt ist, selbst wenn die Daten physikalisch nur an einem der beiden Teil-Ausführungscontainer angesiedelt sind. In ähnlicher Weise läuft auch die Datenkommunikation mit Ausführungsumgebungen außerhalb des Ausführungscontainers 200. Die erforderlichen Nachrichten können von jedem der beiden Teil-Ausführungscontainer angefordert werden und werden zunächst zu demjenigen Teil-Ausführungscontainer geliefert, der die Datenverbindung mit der externen Ausführungsumgebung 224 herstellen kann. Dabei werden sie intern verschlüsselt übertragen. Die verteilte Struktur des Ausführungscontainers 200 ist für eine interne Datenverarbeitungsanwendung demnach transparent.By connecting the sub-execution containers 200.1 and 200.2 with each other, both parts can access the same user input data if this is covered by the respective first security agreement, even if the data is physically located only on one of the two sub-execution containers. Similarly, the data communication with execution environments also runs outside the execution container 200. The required messages may be requested from each of the two sub-execution containers and are first delivered to the sub-execution container that can establish the data connection with the external execution environment 224. They are transmitted internally encrypted. The distributed structure of execution container 200 is therefore transparent to an internal data processing application.
Fig. 3 veranschaulicht einen Verhandlungsschritt zwischen einem Nutzer und einem Diensteanbieter zur Erstellung einer Sicherheitsvereinbarung. Ein zu verhandelnder Vorschlag 302, der entweder vom Nutzer oder vom Diensteanbieter unterbreitet wird, wird von der Gegenseite, also dem Nutzer 304 oder dem Diensteanbieter 306 auf Akzeptanz geprüft. Kann die Sicherheitsvereinbarung nach der beim Nutzer vorliegenden Sicherheitspräferenz 304.1 oder der beim Diensteanbieter vorliegenden Sicherheitspräferenz 306.1 nicht akzeptiert werden, wird entsprechend der jeweiligen Sicherheitspräferenz eine Änderung am Vereinbarungsvorschlag vorgenommen und als Gegenvorschlag unterbreitet. Dieser wird dann von der Gegenseite auf Akzeptanz geprüft. Dieser Mechanismus wird wiederholt, bis eine für beide Seiten akzeptable Vereinbarung vorliegt, die dann von beiden Seiten signiert und als fertige und signierte Sicherheitsvereinbarung 308 an den Ausführungscontainer geleitet wird. Nicht dargestellt ist in Fig. 3 ein Abbruch der Verhandlung, der nach vorbestimmten Kriterien, etwa der Dauer der Verhandlung oder der Nichtannahme von geforderten Mindestpräferenzen durch die Gegenseite vorgenommen wird. 3 illustrates a negotiation step between a user and a service provider for establishing a security agreement. A proposal 302 to be negotiated, which is submitted by either the user or the service provider, is checked for acceptance by the other party, ie the user 304 or the service provider 306. If the security agreement can not be accepted according to the security preference 304.1 available to the user or the security preference 306.1 available to the service provider, an amendment to the agreement proposal is made in accordance with the respective security preference and submitted as a counterproposal. This is then checked by the other side for acceptance. This mechanism is repeated until there is a mutually acceptable agreement, which is then signed by both parties and sent to the execution container as a completed and signed security agreement 308. Not shown in Fig. 3 is a termination of the negotiation, which according to predetermined criteria, such as the duration of Negotiation or non-acceptance of required minimum preferences by the other party is made.

Claims

Patentaπsprüche Patentaπsprüche
1. Ausführungscontainer für eine Datenverarbeitungsanwendung eines Diensteanbieters, mit1. execution container for a data processing application of a service provider, with
mindestens einer Ausführungsumgebung, die ausgebildet ist, die Datenver- arbeitungsanwendung, welche Nutzereingabedaten zur Erzeugung vonat least one execution environment that is configured, the data processing application, which user input data for generating
Nutzerausgabedaten verarbeitet, in Form ausführbarer Programmdaten zu instanzieren und auszuführen, sowie die Nutzereingabedaten und die Nutzerausgabedaten mit der Datenverarbeitungsanwendung auszutauschen;Processing user output data, instantiating and executing in the form of executable program data, as well as exchanging the user input data and the user output data with the data processing application;
einer mit der Ausführungsumgebung verbundenen Kommunikationsschnitt- stelle, die ausgebildet ist, Nutzereingabedaten zu empfangen und an diea communication interface connected to the execution environment and configured to receive user input data and to
Ausführungsumgebung weiterzuleiten sowie von der Ausführungsumgebung ausgesandte Nutzerausgabedaten nach außerhalb des Ausführungscontainers auszugeben;Forward the execution environment and output user output data sent by the execution environment to outside of the execution container;
einer mit der Kommunikationsschnittstelle verbundenen Sicherheitssteue- rungseinheit, die ausgebildet ist, solche Datenkommunikation der Datenverarbeitungsanwendung mit jeglichem relativ zur Ausführungsumgebung externen Kommunikationsendpunkt zu verhindern, deren Kommunikationspfad die Ausführungsumgebung umgeht; unda security control unit connected to the communication interface and configured to prevent such data communication of the data processing application from any communication endpoint external to the execution environment whose communication path bypasses the execution environment; and
einer mit der Kommunikationsschnittstelle verbundenen Zugriffssteue- rungseinheit, die ausgebildet ist, solche Datenkommunikation der Ausführungsumgebung mit jeglichem relativ zum Ausführungscontainer externen Kommunikationsendpunkt zu verhindern, der nicht durch eine erste Sicherheitsvereinbarung als zulässig definiert ist.an access control unit connected to the communication interface and arranged to prevent such data communication of the execution environment with any relative to the execution container external communication endpoint, which is not defined as permissible by a first security agreement.
2. Ausführungscontainer nach Anspruch 1 , mit einem relativ zur Ausführungs- Umgebung externen Speicher für Nutzereingabedaten, der über die Kommunikationsschnittstelle mit der Ausführungsumgebung verbunden ist, bei dem die Sicherheitssteuerungseinheit ausgebildet ist, einen direkten Zugriff der Datenverarbeitungsanwendung auf den Speicher zu verhindern. 2. Execution container according to claim 1, with a relative to the execution environment external memory for user input data, which is connected via the communication interface with the execution environment, wherein the security control unit is designed to prevent direct access of the data processing application to the memory.
3. Ausführungscontainer nach Anspruch 2, bei dem die Ausführungsumgebung ausgebildet ist, über die Kommunikationsschnittstelle auf relativ zum Ausführungscontainer externe Nutzereingabedaten lesend zuzugreifen und eine lokale Kopie der externen Nutzereingabedaten im Speicher abzulegen.3. execution container according to claim 2, wherein the execution environment is adapted to read via the communication interface relative to the execution container external user input data and store a local copy of the external user input data in the memory.
4. Ausführungscontainer nach einem der vorstehenden Ansprüche, bei dem der Ausführungscontainer eine Verhandlungseinheit und eine Verhandlungsschnittstelle enthält, und bei dem die Verhandlungseinheit ausgebildet ist, über die Verhandlungsschnittstelle entsprechend einem vordefinierten Verhandlungsprotokoll die erste Sicherheitsvereinbarung zwischen einem dem Ausführungscontainer und einem Dienstnutzer auszuhandeln.4. The execution container according to claim 1, wherein the execution container includes a negotiation unit and a negotiation interface, and wherein the negotiation unit is configured to negotiate the first security agreement between an execution container and a service user through the negotiation interface according to a predefined negotiation protocol.
5. Ausführungscontainer nach einem der vorstehenden Ansprüche, bei dem der Ausführungscontainer eine Verhandlungseinheit und eine Verhandlungsschnittstelle enthält, und bei dem die Verhandlungseinheit ausgebildet ist, über die Verhandlungsschnittstelle entsprechend einem vordefinierten Verhandlungsprotokoll eine zweite Sicherheitsvereinbarung zwischen dem5. The execution container according to claim 1, wherein the execution container includes a negotiation unit and a negotiation interface, and in which the negotiation unit is configured, via the negotiation interface according to a predefined negotiation protocol, a second security agreement between the negotiation interface
Ausführungscontainer und einem Dienstanbieter oder einem Dienstnutzer auszuhandeln, wobei diese folgende Angaben enthält:To negotiate execution containers and a service provider or service user, including:
eine Adresse mindestens eines relativ zum Ausführungscontainer externen Datenspeichers, auf den ein Lesezugriff des Ausführungscontainers zuläs- sig ist, oderan address of at least one data memory external to the execution container, to which a read access of the execution container is admissible, or
Nutzereingabedaten, auf die ein Lesezugriff des Ausführungscontainers zulässig ist.User input data that is allowed read access by the execution container.
6. Ausführungscontainer nach Anspruch 2 oder 3, bei dem die Ausführungsumgebung ausgebildet ist, von der Datenverarbeitungsanwendung erhalte- ne Nutzerausgabedaten im Speicher abzulegen.6. Execution container according to claim 2 or 3, in which the execution environment is designed to store user output data received from the data processing application in the memory.
7. Ausführungscontainer nach Anspruch 2, bei dem die Ausführungsumgebung ausgebildet ist, nach Abschluss der Ausführung der Datenverarbeitungsanwendung eine Löschung im Speicher abgelegter Nutzereingabeda- ten und Nutzerausgabedaten der Datenverarbeitungsanwendung zu veranlassen.7. execution container according to claim 2, wherein the execution environment is formed, after completion of the execution of the data processing application, a deletion in the memory stored user input data and user output data of the data processing application.
8. Ausführungscontainer nach einem der vorstehenden Ansprüche, bei dem die Ausführungsumgebung ausgebildet ist, nach Abschluss der Ausführung der Datenverarbeitungsanwendung eine Beseitigung der instanziierten ausführbaren Programmdaten der Datenverarbeitungsanwendung zu veranlassen.8. Execution container according to one of the preceding claims, wherein the execution environment is adapted, after completion of the execution of the data processing application to cause an elimination of the instantiated executable program data of the data processing application.
9. Ausführungscontainer nach einem der vorstehenden Ansprüche, bei dem die Sicherheitssteuerungseinheit ausgebildet ist, das Vorliegen eines Krite- riums für eine Beendigung der Gültigkeit der ersten Sicherheitsvereinbarung zu prüfen, und bei Vorliegen eines solchen Kriteriums eine Löschung im Speicher abgelegter Nutzereingabedaten und Nutzerausgabedaten der Datenverarbeitungsanwendung zu veranlassen.9. The execution container according to claim 1, wherein the security control unit is configured to check the presence of a criterion for terminating the validity of the first security agreement, and, in the presence of such a criterion, deletion of stored user input data and user output data from the data processing application cause.
10. Ausführungscontainer nach einem der vorstehenden Ansprüche, bei dem die erste Sicherheitsvereinbarung Informationen über bezüglich der Datenverarbeitungsanwendung zulässige Kommunikationsendpunkte, Nachrichtentypen oder Datenzugriffe enthält.10. Execution container according to one of the preceding claims, in which the first security agreement contains information about communication end points, message types or data accesses permissible with respect to the data processing application.
1 1. Ausführungscontainer nach einem der vorstehenden Ansprüche, mit einer Mehrzahl Ausführungsumgebungen, wobei die Ausführungsumgebungen ausgebildet sind, jegliche Kommunikation zwischen unterschiedlichen Datenverarbeitungsanwendungen in relativ zu einander externen Ausführungsumgebungen innerhalb des Ausführungscontainers zu verhindern.1 1. An execution container according to one of the preceding claims, with a plurality of execution environments, wherein the execution environments are adapted to prevent any communication between different data processing applications in relative to each other external execution environments within the execution container.
12. Ausführungscontainer nach einem der vorstehenden Ansprüche, bei dem die Ausführungsumgebung ausgebildet ist, auf ein von der Datenverarbei- tungsanwendung her empfangenes Kommando hin über die Kommunikationsschnittstelle ein im Kommando angegebenes, aus einem Satz vordefinierter Literale ausgewähltes Literal an einen relativ zum Ausführungscontainer externen Kommunikationsendpunkt zu senden. 12. execution container according to one of the preceding claims, wherein the execution environment is formed on a received from the data processing application forth command out via the communication interface a specified in the command, selected from a set of predefined literals literal to a relative to the execution container external communication endpoint send.
13. Ausführungscontainer nach Anspruch 12, bei dem die Ausführungsumgebung ausgebildet ist, über vordefinierte Literale höchstens eine Maximalzahl T Datenbits zu senden, die definiert ist durch13. Execution container according to claim 12, wherein the execution environment is adapted to send via predefined literals at most a maximum number T data bits, which is defined by
T = n x log2 L = f * t *log2 LT = nx log 2 L = f * t * log 2 L
wobei n die Anzahl übertragener Literale, L die Gesamtanzahl vordefinierterwhere n is the number of literals transferred, L is the total number of predefined ones
Literale ist, f die Frequenz der Übersendung von Literalen und t die Zeitdauer einer Sitzung, in der Literale übersandt werden.Literale is, f the frequency of the transmission of literals and t the duration of a session in which literals are transmitted.
14. Ausführungscontainer nach einem der vorstehenden Ansprüche, mit mindestens einem Prozessor, bei dem die Ausführungsumgebung ausgebildet ist, eine Prozessorlast nach einem zufälligen Zeitmuster zu variieren, das unabhängig von einer tatsächlichen Belastung durch die Datenverarbeitungsanwendung ist.The execution container of any one of the preceding claims, comprising at least one processor wherein the execution environment is adapted to vary a processor load according to a random time pattern that is independent of an actual load by the data processing application.
15. Verteilter Ausführungscontainer, mit einem ersten und einem zweiten Ausführungscontainer nach einem der vorstehenden Ansprüche, wobei der ers- te und der zweite Ausführungscontainer über einen Datenübertragungskanal zum Austausch von Daten verbunden sind und wobei die Ausführungsumgebung jedes Ausführungscontainers ausgebildet ist, sich gegenüber der jeweils anderen Ausführungsumgebung durch geeignete Authentisie- rungsmechanismen zu identifizieren, und wobei die Kommunikations- Schnittstellen der Ausführungscontainer ausgebildet sind, Daten in verschlüsselter Form über den Datenübertragungskanal auszutauschen.15. A distributed execution container, comprising first and second execution containers as claimed in any one of the preceding claims, wherein the first and second execution containers are connected via a communication channel for exchanging data and wherein the execution environment of each execution container is formed, opposite each other Identifying execution environment by suitable authentication mechanisms, and wherein the communication interfaces of the execution container are adapted to exchange data in encrypted form over the communication channel.
16. Ausführungscontainer nach einem der vorstehenden Ansprüche, bei dem die Ausführungsumgebung durch eine Anwendungsumgebung, insbesondere eine Java-Laufzeit-Umgebung oder eine .NET-Laufzeitumgebung ge- bildet wird.16. Execution container according to one of the preceding claims, in which the execution environment is formed by an application environment, in particular a Java runtime environment or a .NET runtime environment.
17. Ausführungscontainer nach einem der vorstehenden Ansprüche, bei dem die ausführbaren Programmdaten in Form von Bytecode vorliegen. 17. Execution container according to one of the preceding claims, in which the executable program data are in the form of bytecode.
18. Datenträger mit ausführbaren Programmdaten, die bei Ausführung einen Ausführungscontainer für eine Datenverarbeitungsanwendung eines Diensteanbieters entsprechend einem der vorstehenden Ansprüche bilden. 18. Data carriers with executable program data which, when executed, form an execution container for a data processing application of a service provider according to one of the preceding claims.
PCT/EP2007/054117 2006-04-26 2007-04-26 Protected execution of a service provider's data processing application for a user by means of a trustworthy execution environment WO2007122266A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP07728572A EP2014048A2 (en) 2006-04-26 2007-04-26 Protected execution of a service provider's data processing application for a user by means of a trustworthy execution environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200610020093 DE102006020093A1 (en) 2006-04-26 2006-04-26 Protecting a data processing application of a service provider for a user by a trusted execution environment
DE102006020093.4 2006-04-26

Publications (2)

Publication Number Publication Date
WO2007122266A2 true WO2007122266A2 (en) 2007-11-01
WO2007122266A3 WO2007122266A3 (en) 2008-01-17

Family

ID=38325467

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/054117 WO2007122266A2 (en) 2006-04-26 2007-04-26 Protected execution of a service provider's data processing application for a user by means of a trustworthy execution environment

Country Status (3)

Country Link
EP (1) EP2014048A2 (en)
DE (1) DE102006020093A1 (en)
WO (1) WO2007122266A2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158960A1 (en) * 2000-05-22 2003-08-21 Engberg Stephan J. System and method for establishing a privacy communication path
US20040025016A1 (en) * 2002-06-17 2004-02-05 Digitalnet Government Solutions, Llc Trusted computer system
US20040268356A1 (en) * 1999-11-19 2004-12-30 White Peter Duncan Separation kernel with memory allocation, remote procedure call and exception handling mechanisms

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098172A (en) * 1997-09-12 2000-08-01 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with proxy reflection
WO2002080457A1 (en) * 2001-03-29 2002-10-10 Sphere Software Corporation Layering enterprise application services using semantic firewalls
DE10253676B4 (en) * 2002-11-18 2008-03-27 Siemens Ag Method and device for the remote transmission of sensitive data
EP1569410B1 (en) * 2004-02-26 2015-07-08 BlackBerry Limited Method and system for automatically configuring access control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268356A1 (en) * 1999-11-19 2004-12-30 White Peter Duncan Separation kernel with memory allocation, remote procedure call and exception handling mechanisms
US20030158960A1 (en) * 2000-05-22 2003-08-21 Engberg Stephan J. System and method for establishing a privacy communication path
US20040025016A1 (en) * 2002-06-17 2004-02-05 Digitalnet Government Solutions, Llc Trusted computer system

Also Published As

Publication number Publication date
DE102006020093A1 (en) 2007-10-31
WO2007122266A3 (en) 2008-01-17
EP2014048A2 (en) 2009-01-14

Similar Documents

Publication Publication Date Title
DE602004011689T2 (en) Method and system for handling the transmission of content in communication networks
EP3125492B1 (en) Method and system for generating a secure communication channel for terminals
DE19740547B4 (en) Apparatus and method for ensuring secure communication between a requesting entity and a serving entity
DE60102934T2 (en) PROCEDURE AND SYSTEM FOR MEETING-BASED AUTHORIZATION AND ACCESS CONTROL FOR NETWORKED APPLICATION OBJECTS
DE60312235T2 (en) METHOD AND SYSTEM FOR INHIBITING PREVENTION AND DEFLECTION
EP2561461A1 (en) Method for reading an attribute from an id token
WO2007045395A1 (en) Device and method for carrying out cryptographic operations in a server-client computer network system
DE102007030622A1 (en) Method and application for linking between systems based on hardware security units
DE60212969T3 (en) METHOD AND DEVICE FOR FOLLOWING THE STATUS OF AN OPERATING MEANS IN A SYSTEM FOR MANAGING THE USE OF THE OPERATING MEANS
DE112011102224T5 (en) Identity mediation between client and server applications
DE10146361B4 (en) Distributed system
DE60311146T2 (en) Method for trusted communication between two units
WO2013017394A1 (en) Access control for data or applications of a network
DE102017212474A1 (en) Method and communication system for checking connection parameters of a cryptographically protected communication connection during connection establishment
EP2014048A2 (en) Protected execution of a service provider's data processing application for a user by means of a trustworthy execution environment
EP3618348B1 (en) Distributed database system, industry automation system and method for operating a distributed database system
DE102005062061B4 (en) Method and apparatus for mobile radio network-based access to content provided in a public data network and requiring a release
EP2186285B1 (en) Method and device for authenticating transmitted user data
DE60205206T2 (en) Method for securing the download of active data to a communication device
EP4107640B1 (en) Method and systems for transferring software artefacts from a source network to a destination network
DE102005050336B4 (en) Method and arrangement for operating a security gateway
DE202022101783U1 (en) Intelligent management system for securely connecting multiple mobile payment applications against security breaches
DE10102979C2 (en) Process for securing computers connected to a network for the purpose of checking network connections
DE102020006075A1 (en) Procedure for securing stored user data
WO2021197822A1 (en) Method for handling an anomaly in data, in particular in a motor vehicle

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

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007728572

Country of ref document: EP