Computer-implemented method for improving data security in a computing device

DE102023207909A1Pending Publication Date: 2025-02-20CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE102023207909
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-08-17
Publication Date
2025-02-20

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The invention relates to a computer-implemented method for improving data security in a computing device (10), wherein the computing device (10) includes a computer system (12) with a processor (16) for executing machine instructions (18) and a physical memory (20) with access for the processor (16), wherein the computer system (12) is designed as an implementation of a computer architecture that is suitable for switching between a Trusted Execution Environment (22) for executing a trusted computing process (24) and a Rich Execution Environment (26) for executing a client computing process (28) corresponding to the trusted computing process (24), wherein access of the Rich Execution Environment (26) to the Trusted Execution Environment (22) is restricted and / or secured, wherein the Rich Execution Environment (26) and the Trusted Execution Environment (24) each switch between a user mode (30),in which the execution of one or more selected machine instructions (18) for accessing the physical memory (20) is restricted and / or secured, and a kernel mode (32) in which the execution of the machine instructions (18) is unrestricted and / or unsecured, are switchable, wherein the Rich Execution Environment (26) and the Trusted Execution Environment (24) jointly utilize a shared memory (34) of the physical memory (20), wherein the shared memory (34) provides a communication channel (36) including related process data (38) for communication between the client computing process (28) and the trusted computing process (24).
Need to check novelty before this filing date? Find Prior Art

Description

Technical field

[0001] The invention relates to a computer-implemented method for improving data security in a computing device. The invention further relates to a computing device, a computer program, and a computer-readable storage medium. background

[0002] In recent years, on ARM ® Electronic devices based on ARM technology have flooded the market. These products have become deeply integrated into everyday life, inevitably storing or processing sensitive personal data. To protect this data, the ARM-based technology was developed. ® TrustZone ® TrustZone-based Trusted Execution Environment (TEE) was proposed and is continuously being expanded. Nowadays, as consumers place greater emphasis on information security, the application scenarios for TrustZone-based TEEs are increasing. ® TEE based on standard, ARM-based ®Its use was limited to IoT-based devices such as smartphones and tablets. TEE has begun to be deployed in various types of IoT and embedded devices, including drones and electronic vehicle equipment.

[0003] The ones on TrustZone ®The TEE-based system is isolated from the Rich Execution Environment (REE), preventing attackers in the REE from directly accessing TEE resources. Regular applications run in the REE, while trusted applications (TAs) run in the TEE. The only way an REE process can access TEE resources is by calling TAs. Each TA has a corresponding client application (CA) in the REE. To access TEE resources, a CA process must establish its own communication channel to exchange data with the corresponding TA. This channel is typically established based on shared memory that both the REE and TEE can access. However, the communication channel may be insecure if the REE OS kernel is not trusted. Many researchers have successfully exploited this type of vulnerability.Even without kernel privilege, attackers in userspace can deceive the transaction authentication numbers (TAs) to process deliberately crafted data in the forged memory addresses. Even worse, the REE-OS kernel, due to the presence of the Physmap mechanism, has free access to physical addresses. Therefore, data in these communication channels can easily be stolen or tampered with by the untrusted REE-OS kernel (e.g., through a man-in-the-middle attack).

[0004] To protect the communication channel between the TEE and the REE, researchers have proposed several software defense measures. However, these software defense measures may either not be secure enough or require too much processing power. The ARM ®The FPGA-embedded SoC, which benefits from a special architecture combining hardware and software, has been widely used in drones, electronic vehicle equipment, machine vision systems, and other IoT devices. Like smartphones and tablets, these security-sensitive devices also require a TrustZone-based solution. ® TEE-based to protect confidential data. Since both the software and hardware are in the ARM ® The fact that the FPGA embedded SoC can be freely programmed gives researchers more options to implement a secure and efficient combined hardware and software execution for the TEE. Brief description of the invention

[0005] The object of the invention is to improve data security in a computing device.

[0006] The object of the invention is achieved by the subject matter of the independent claims. Advantageous embodiments of the invention are the subject matter of the dependent claims.

[0007] According to one aspect, the invention provides a computer-implemented method for improving data security in a computing device, wherein the computing device includes a computer system with a processor for executing machine instructions and a physical memory accessible by the processor, wherein the computer system is designed as an implementation of a computer architecture suitable for switching between a Trusted Execution Environment for executing a trusted computing process and a Rich Execution Environment for executing a client computing process corresponding to the trusted computing process, wherein access of the Rich Execution Environment to the Trusted Execution Environment is restricted and / or secured, and wherein the Rich Execution Environment and the Trusted Execution Environment each switch between a user mode,in which the execution of one or more selected machine instructions for accessing physical memory is restricted and / or secured, and a kernel mode in which the execution of the machine instructions is unrestricted and / or unsecured, wherein the Rich Execution Environment and the Trusted Execution Environment jointly use a shared physical memory, wherein the shared memory provides a communication channel that includes related process data for communication between the client computing process and the trusted computing process, wherein the method comprises the following: a) by the computing device, providing a limited memory, wherein access to the limited memory is restricted and / or secured with respect to the processor; b) by the computer system, upon receiving a machine instruction to switch from user mode to kernel mode within the Rich Execution Environment, triggering the computing device to perform the following: α) Transferring the related process data from the shared memory to the restricted memory by deleting the related process data in the shared memory; and c) by the computing device, performing step α).

[0008] One advantage of this method is that, as soon as the computer system switches from user mode to kernel mode within the Rich Execution Environment (RIEA), sensitive data that could potentially be accessed in the kernel mode of the RIEA is deleted from the shared memory. This prevents this sensitive data from being read and / or manipulated in the kernel mode of the RIEA, thus increasing the data security of the computing device.

[0009] Preferably the method further comprises the following: d) by the computer system, upon receiving a machine instruction to switch from the kernel mode of the Trusted Execution Environment to the kernel mode of the Rich Execution Environment, triggering the computing device so that it performs step α); and e) by the calculating device, performing step α).

[0010] One advantage of this method is that both switching methods to the kernel mode of the Rich Execution Environment can be secured. Thus, even when switching from the kernel mode of the Trusted Execution Environment to the kernel mode of the Rich Execution Environment, confidential data that might be accessible in the kernel mode of the Rich Execution Environment is deleted from the shared memory. This prevents this confidential data from being read and / or manipulated in the kernel mode of the Rich Execution Environment. This increases the data security of the computing device.

[0011] Preferably the method further comprises the following: f) Storing a physical location to locate the communication channel in the physical memory and deleting the related process data in the shared memory by locating the communication channel in the physical memory based on the physical location.

[0012] One advantage of this method is that the physical location of the communication channel can be stored. An attack could involve moving confidential data located at a first physical location to a second physical location within shared memory, thus preventing the deletion of confidential data in the shared memory by deleting the data at the first physical location. Therefore, the physical location can be stored elsewhere than within the computer system. For example, the physical location can be stored in restricted memory. This ensures that the confidential data is properly deleted, thereby increasing the data security of the computing device.

[0013] Preferably the method further comprises the following: g) by the computer system, upon receiving a machine instruction to switch from kernel mode to user mode within the rich execution environment, triggering the computing device so that it performs the following: β) Transferring the related process data from the restricted memory to the shared memory communication channel by identifying the client computing process in the rich execution environment; and h) by the calculating device, performing step β).

[0014] One advantage of this method is that the confidential data can be stored again in the shared memory as soon as the computer system switches to user mode within the Rich Execution Environment (RIEA). In user mode, access to the confidential data may be restricted. Therefore, the client processing unit can resume its operation as it did before the computer system switched to kernel mode within the RIEA. This increases the reliability of the computing device.

[0015] Preferably the method further comprises the following: i) by the computer system, upon receiving a machine instruction to switch from the kernel mode of the Rich Execution Environment to the kernel mode of the Trusted Execution Environment, triggering the computing device so that it performs the following: β) Transferring the related process data from the restricted memory to the shared memory communication channel by identifying the client computing process in the rich execution environment; and j) by the calculating device, performing step β).

[0016] One advantage of this method is that confidential data can be stored again in shared memory once the computer system switches to kernel mode of the Trusted Execution Environment (TEO). Access to the confidential data is possible in kernel mode because the TEO is trusted. It may also be possible to switch from kernel mode to user mode of the TEO. This allows the trusted computing process to resume operation as it did before the computer system switched to kernel mode. This increases the reliability of the computing device.

[0017] Preferably the method further comprises the following: k) Storing a process identifier to identify the client computing process in the Rich Execution Environment and identifying the client computing process in the Rich Execution Environment based on the process identifier.

[0018] One advantage of this method is that a process identifier of the client computing process can be stored. An attack could involve redirecting confidential data, intended for transfer from restricted memory to a primary communication channel, to a secondary communication channel in shared memory. Therefore, the process identifier can be stored elsewhere than within the computer system. For example, the process identifier can be stored in restricted memory. This ensures that the confidential data is re-transmitted to the correct communication channel between the correct client / trusted computing processes. This increases the data security of the computing device.

[0019] Preferably the method further comprises the following: l) Monitoring the integrity of a machine instruction for triggering the computing device so that it transfers the related process data into or out of the restricted memory, preferably by calculating a hash of the machine instruction, and transferring the related process data into or out of the restricted memory based on the monitored integrity.

[0020] One advantage of this method is that the integrity of the machine instruction triggering the computing device to transfer the related process data to or from the restricted memory can be monitored. This monitoring can be performed from a location other than the computer system. Therefore, the computing device cannot be deceived by manipulating the machine instructions that trigger the data transfer. This increases the data security of the computing device.

[0021] According to a further aspect, the invention provides a computing device, including a computer system with a processor for executing machine instructions and physical memory with access for the processor, wherein the computer system is designed as an implementation of a computer architecture that is suitable for switching between a Trusted Execution Environment for executing a trusted computing process and a Rich Execution Environment for executing a client computing process corresponding to the trusted computing process, wherein access of the Rich Execution Environment to the Trusted Execution Environment is restricted and / or secured, wherein the Rich Execution Environment and the Trusted Execution Environment each switch between a user mode in which the execution of one or more selected machine instructions for accessing the physical memory is restricted and / or secured.and a kernel mode in which the execution of machine instructions is unrestricted and / or unsecured, wherein the Rich Execution Environment and the Trusted Execution Environment jointly use a shared physical memory, wherein the shared memory provides a communication channel that includes related process data for communication between the client computing process and the trusted computing process, wherein the computing device provides restricted memory, wherein access to the restricted memory with respect to the processor is restricted and / or secured, and wherein the computing device is capable of executing the method according to one of the preceding embodiments.

[0022] Preferably, the hardware of the computing device is suitable for performing one, several, or all of the following steps: a) Transferring the related process data from the shared memory to the restricted memory by deleting the related process data in the shared memory; and / or β) Transferring the related process data from the restricted memory to the shared memory communication channel by identifying the client computing process in the rich execution environment; and / or f) Storing a physical location to locate the communication channel in the physical memory and deleting the related process data in the shared memory by locating the communication channel in the physical memory based on the physical location; and / or k) Storing a process identifier to identify the client computing process in the rich execution environment and identifying the client computing process in the rich execution environment based on the process identifier; and / or l) Monitoring the integrity of a machine instruction for triggering the computing device so that it transfers the related process data into or out of the restricted memory, preferably by calculating a hash of the machine instruction, and transferring the related process data into or out of the restricted memory based on the monitored integrity.

[0023] One advantage of this computing device is that modules relevant to data security can be implemented in hardware. This prevents the computing device from being fooled by a software-based attack, thus increasing the data security of the computing system.

[0024] Preferably, the computing device includes a field-programmable gate array that provides the limited memory.

[0025] Preferably, the Field-Programmable Gate Array is suitable for performing one, several or all of the steps α), β), f), k) and / or I).

[0026] One advantage of this computing device is that modules relevant to data security can be implemented separately from the computer system. This prevents the computing device from being deceived by an attack originating from the computer system, thereby increasing the data security of the computing system.

[0027] Preferably, the software of the computing device is suitable for triggering the computing device so that it performs step α) and / or β).

[0028] One advantage of this computing device is that modules can be implemented in software. This may eliminate the need to modify the existing computer architecture of the device; instead, the existing architecture can be used efficiently, for example, by employing one or more hook functions. This increases the efficiency of the computing device.

[0029] Preferably, the computer system is suitable for triggering the Field-Programmable Gate Array so that it performs step a) and / or β).

[0030] One advantage of this computing device is that modules can be implemented within the computer system. Hardware modules are implemented within the Field-Programmable Gate Array (FGA), while software modules are implemented separately within the computer system. Furthermore, the hardware-based and software-based modules can be configured to communicate or interact with each other. This allows for the creation of a secure, efficient, and / or reliable computing device.

[0031] Preferably, the computer system is designed as an implementation of a RISC instruction set architecture (RISC - Reduced Instruction Set Computer).

[0032] The features and advantages mentioned in relation to the method can also be applied to the computing device, and the features and advantages mentioned in relation to the computing device can also be applied to the method.

[0033] According to another aspect, the invention provides a computer program that includes instructions which, when the program is executed by the computing device according to one of the preceding embodiments, cause the computing device to execute the method according to one of the preceding embodiments.

[0034] According to another aspect, the invention provides a computer-readable storage medium in which the computer program is stored.

[0035] Embodiments of the invention preferably have the following advantages and effects: The communication channel on TrustZone ® To protect TEE-based systems, preferred embodiments of the invention propose a “PumpChannel”, preferably a hardware- and software-cooperative implementation in an ARM-based system. ® -FPGA embedded SoC.

[0036] "PumpChannel" consists of a hardware pump and software hooks that can pull confidential data from and push it into the communication channel. When a CPU core enters REE user mode or TEE mode into REE kernel mode, the data is pumped from the communication channel into the memory owned by "PumpChannel." Data is also pumped from the memory owned by "PumpChannel" into the communication channel when a CPU core enters TEE mode or returns from REE kernel mode to REE user mode. Therefore, the malicious REE kernel cannot steal or unilaterally modify confidential data in the communication channel.

[0037] “PumpChannel” is preferably a hardware- and software-cooperative implementation to handle TEE communication in an ARM-based environment. ®To protect the FPGA embedded SoC, it preferably provides a secure communication mechanism for the TEE that can prevent the untrusted REE kernel from accessing the communication channel. To ensure the integrity of all hooks, the "PumpChannel" preferably has a hardware hook integrity monitor that can continuously check whether the code segment of each hook has been modified.

[0038] Since the "PumpChannel" can avoid security vulnerabilities caused by the use of secret keys, its communication memory can be more secure than existing encryption defenses. Furthermore, because the "PumpChannel" preferably uses hardware to monitor the code integrity of the hooks in real time, its code memory can be more secure than existing solutions. Additionally, the "PumpChannel" preferably uses a combined hardware and software implementation to protect the TEE communication channel, which has a lower overhead than existing encryption solutions.

[0039] The safety of vehicle systems has increasingly become a focus of the automotive industry. On the other hand, this is also true in ARM. ®FPGA-embedded SoCs are widely used in vehicle systems. Therefore, manufacturers of systems within a vehicle may be interested in the "PumpChannel" technology. Secondly, the "PumpChannel" hardware module implemented in the FPGA can contribute to the CPU's safety function. This idea is not limited to the ARM-based SoC. ® PumpChannel is not only used in FPGA-embedded SoCs, but also provides a more secure execution approach for processor designers. Therefore, processor manufacturers are also potential users of PumpChannel. Brief description of the drawings

[0040] Embodiments of the invention will now be described in more detail with reference to the accompanying drawings, wherein Fig. 1 shows an embodiment of a computing device; Fig. 2 shows an embodiment of a method for improving data security in the computing device; and Fig. Figure 3 shows a flowchart of the procedure. Detailed description of the drawings

[0041] Fig. Figure 1 shows an embodiment of a computing device 10.

[0042] The computing device 10 includes a computer system 12 and a field-programmable gate array 14.

[0043] The computer system 12 includes a processor 16 for executing machine instructions 18 and a physical memory 20 which the processor 16 has access to.

[0044] Computer system 12 is designed as an implementation of a computer architecture capable of switching between a Trusted Execution Environment 22 for executing a trusted computing process 24 and a Rich Execution Environment 26 for executing a client computing process 28 corresponding to the trusted computing process 24. Access from the Rich Execution Environment 26 to the Trusted Execution Environment 22 is restricted and / or secured. In other words, access from the Rich Execution Environment 26 to the Trusted Execution Environment 22 may not be possible. An example of such a computer system 12 is ARM. ® Cortex ® -A53 with the TrustZone ® including computer architecture.

[0045] In computer system 12, the Rich Execution Environment 26 and the Trusted Execution Environment 22 can each be switched between a user mode 30, in which the execution of one or more selected machine instructions 18 for accessing physical memory 20 is restricted and / or secured, and a kernel mode 32, in which the execution of the machine instructions 18 is unrestricted and / or unsecured. In other words, in user mode 30, the execution of the machine instructions 18 may not be possible.

[0046] The physical memory 20 includes a shared memory 34, which is used jointly by the Rich Execution Environment 26 and the Trusted Execution Environment 22. The shared memory 34 provides a communication channel 36, including related process data 38, for communication between the client computing process 28 and the trusted computing process 24.

[0047] The computing device 10 further includes a restricted memory 40, wherein access to the restricted memory 40 with respect to the processor 16 is restricted and / or secured. In other words, access by the processor 16 to the restricted memory 40 may not be possible. In the embodiment as described in Fig. As shown in Figure 1, the restricted memory 40 is enclosed in the Field-Programmable Gate Array 14.

[0048] Fig. Figure 2 shows an embodiment of a method for improving data security in the computing device 10.

[0049] In step S11, the procedure includes the following: - by the computing device 10, providing the restricted memory 40, wherein access to the restricted memory 40 is restricted and / or secured with respect to the processor 16.

[0050] In step S12, the procedure includes the following: - by the computer system 12, upon receiving a machine instruction 18 to switch from user mode 30 to kernel mode 32 within the Rich Execution Environment 26, triggering the computing device 10 so that it executes the following: a) Transferring the related process data 38 from the shared memory 34 to the restricted memory 40 by deleting the related process data 38 in the shared memory 34; and - by the calculating device 10, execution of step α).

[0051] In step S13, the procedure includes the following: - by the computer system 12, upon receiving a machine instruction 18 to switch from kernel mode 32 of the Trusted Execution Environment 22 to kernel mode 32 of the Rich Execution Environment 26, triggering the computing device 10 so that step α) is executed; and - by the calculating device 10, execution of step α).

[0052] In step S14, the procedure includes the following: - by the computer system 12, upon receiving a machine instruction 18 to switch from kernel mode 32 to user mode 30 within the Rich Execution Environment 26, triggering the computing device 10 so that it executes the following: β) Transferring the related process data 38 from the restricted memory 40 to the communication channel 36 of the shared memory 34 by identifying the client computing process 28; and - by the calculating device 10, execution of step β).

[0053] In step S15, the procedure includes the following: - by the computer system 12, upon receiving a machine instruction 18 to switch from kernel mode 32 of the Rich Execution Environment 26 to kernel mode 32 of the Trusted Execution Environment 22, triggering the computing device 10 so that it executes step β); and - by the calculating device 10, execution of step β).

[0054] It will be revisited Fig. 1. Referenced: The procedure according to Fig. 2 is implemented in the computing device 10 in the software 42 and the hardware 44.

[0055] For this purpose, the computer system 12 and the field-programmable gate array 14 are connected via a bus 45 for communication between the software 42 and the hardware 44.

[0056] The computer system 12 includes a first trigger module 46 and a second trigger module 48, each containing one or more machine instructions 18 implemented in the software 42 in the processor 16. The one or more machine instructions 18 can, for example, each be implemented as a hook function.

[0057] The Field-Programmable Gate Array 14 includes a transfer module 50 (pump machine), which is implemented in the hardware 44 of the Field-Programmable Gate Array 14. The transfer module 50 is capable of executing steps α) and β) and includes the restricted memory 40 (pump channel memory).

[0058] The first trigger module 46 (Mode Switch Hooks) and the second trigger module 48 (Environment Switch Hooks) are configured to trigger the transfer module 50. Upon receiving a machine instruction 18 from the processor 16 to switch from user mode 30 to kernel mode 32 or vice versa, the first trigger module 46 triggers the transfer module 50. Upon receiving a machine instruction 18 from the processor 16 to switch from the Rich Execution Environment 26 to the Trusted Execution Environment 22 or vice versa, the second trigger module 46 triggers the transfer module 50.

[0059] The Field-Programmable Gate Array 14, as described in Fig. Figure 1 further includes a channel module 52 (Channel Mapper) and an integrity module 54 (Hook Integrity Monitor), which are implemented in the hardware 44 in the Field-Programmable Gate Array 14.

[0060] Channel module 52 is suitable for storing a physical location 56 for locating communication channel 36 in physical memory 20. Physical location 56 can, for example, be a physical address of communication channel 36 in physical memory 20.

[0061] The channel module 52 is also suitable for storing a process identifier 58 to identify the client computing process 28 in the rich execution environment 26. The process identifier 58 can, for example, be a PID of the client computing process 28 in the rich execution environment 26.

[0062] The transfer module 50 communicates with the channel module 52 to delete the related process data 38 in the shared memory 34 according to step α) by locating the communication channel 36 in the physical memory 20 based on the physical location 56 stored in the channel module 52. The deletion can be performed, for example, by overwriting the related process data 38 with zeros.

[0063] The transfer module 50 communicates with the channel module 52 to identify the client computing process 28 in the rich execution environment 26 according to step β) by identifying the client computing process 28 in the rich execution environment 26 based on the process identifier 58, which is stored in the channel module 52.

[0064] The integrity module 54 is suitable for monitoring the integrity of the first trigger module 46 and the second trigger module 48. For example, the integrity module 54 can calculate a hash of the first trigger module 46, the second trigger module 48, and / or one or more of the machine instructions 18 therein. Furthermore, the integrity module 54 can continuously or periodically check the integrity of the first trigger module 46 and the second trigger module 48. For example, if the integrity module 54 determines that the first trigger module 46 and / or the second trigger module 48 have been modified, the integrity module 54 can correct these modifications, preferably immediately or in real time.

[0065] The transfer module 50 communicates with the integrity module 54 to execute step α) and / or β) based on the integrity monitored by the integrity module 54.

[0066] Preferred embodiments of the invention can be described as follows: Hardware modules from "PumpChannel": - Channel module 52 (Channel Mapper): This module stores the current pid of the legitimate client application (CA) and the physical addresses of the corresponding communication channel 36. The purpose of storing the current pid is to ensure that the authorized CA process can only access its own communication channel 36. -Transfer module 50 (Pump Machine): It pumps the related process data 38 (confidential data) according to information from the client computing process 28 and address information stored in the channel module 52 (Channel Mapper) into or out of the communication channel 36. - Limited memory 40 (PumpChannel Memory): this memory is implemented based on the FPGA's block RAM and is used to temporarily store confidential data pumped from communication channel 36. - Integrity module 54 (Hook Integrity Monitor): It can monitor whether the code segment of each trigger module 46, 48 (each hook function) has been modified.

[0067] PumpChannel software modules: - First trigger module 46 (Mode Switch Hooks): It includes two hooks, namely a user-kernel hook and a kernel-user hook. The mode switch from user mode 30 to kernel mode 32 of each CPU core is activated by the user-kernel hook. The kernel-user hook activates the opposite mode switch. The two hooks trigger the transfer module 50 (Pump Machine), causing it to pump data into or out of communication channel 36. - Second trigger module 48 (Environment Switch Hooks): It includes two hooks, a REE-TEE hook and a TEE-REE hook. The environment switch from the Rich Execution Environment 26 (REE) to the Trusted Execution Environment 22 (TEE) is activated by the REE-TEE hook. The opposite environment switch is activated by the TEE-REE hook. The transfer module 50 (Pump Machine) can be triggered by the two hooks to pump data into or out of communication channel 36.

[0068] Fig. Figure 3 shows a flowchart of the procedure.

[0069] The computing device 10 is divided into four states, which are the user mode 30 of the Rich Execution Environment 26, the kernel mode 32 of the Rich Execution Environment 26, the kernel mode 32 of the Trusted Execution Environment 22 and the user mode 30 of the Trusted Execution Environment 22.

[0070] The first trigger module 46 (Mode Switch Hooks) is located in the middle of the user mode 30 of the Rich Execution Environment 26 (REE) and the kernel mode 32 of the Rich Execution Environment 26 (REE) to turn on the switches of these two states.

[0071] The second trigger module 48 (Environment Switch Hooks) is located in the middle of kernel mode 32 of the Rich Execution Environment 26 (REE) and kernel mode 32 of the Trusted Execution Environment 22 (TEE) to turn on the switch between the TEE 22 and the REE 26.

[0072] Both the data flow (solid arrow) and the control flow (dashed arrow) of the entire execution have six steps that involve a data page (in black): REE-26 user mode 30 → REE-26 kernel mode 32; When the computer system 12 switches from REE-26 user mode 30 to REE-26 kernel mode 32, steps {A}, {1} and {2} are executed. {A}: The first trigger module 46 (user kernel hook) sends a pump_out signal to the transfer module 50 (pump machine). The pump_out signal can trigger the transfer module 50 (pump machine) to pump the related process data 38. {1}: When the transfer module 50 (Pump Machine) receives the pump_out signal, it pumps the related process data 38 (confidential data) from all communication channels 36 and stores it in the restricted memory 40 (PumpChannel Memory). {2}: After step {1} is completed, the transfer module 50 (Pump Machine) resets the related communication data 38 of all communication channels 36 to zero. REE-26 kernel mode 32 → REE-26 user mode 30: Steps {C} and [6} run when the computer system 12 switches from REE-26 kernel mode 32 to REE-26 user mode 30. {C}: The first trigger module 50 (kernel user hook) sends a signal pump_in and a signal current → pid to the transfer module 50 (pump machine). The pump_in signal can trigger the transfer module 50 (pump machine) so that it pumps the related process data 38. {6}: When the transfer module 50 (Pump Machine) receives the signal pump_in and the signal current → pid, it pumps the related process data 38 (confidential data) of the current client computing process 28 from the restricted memory 40 (PumpChannel Memory) into the communication channel 36 of the current client computing process 28. REE-26 kernel mode 32 → TEE-22 kernel mode 32: When the REE-26 kernel mode 32 switches to the TEE-22 kernel mode 32, steps {B} and {3} will occur. {B}: As in step {C} (kernel user hook), the second trigger module 48 (REE-TEE hook) sends the pump_in signal and the current → pid signal to the transfer module 50 (pump machine). {3}: When the signal pump_in and the signal current → pid are received by the transfer module 50 (Pump Machine), the related process data 38 (confidential data) of the current client computing process 28 are pumped by the transfer module 50 (Pump Machine) from the restricted memory 40 (PumpChannel Memory) into the communication channel 36 of the current client computing process 28. TEE-22 kernel mode 32 → REE-26 kernel mode 32: When computer system 12 switches from TEE-22 kernel mode 32 to REE-26 kernel mode 32, steps {D}, {4} and {5} are executed. {D}: The second trigger module 48 (TEE-REE-Hook) sends the signal pump_out to the transfer module 50 (Pump Machine). {4}: When the pump_out signal reaches the transfer module 50 (Pump Machine), the related process data 38 (confidential data) from all communication channels 36 is pumped by the transfer module 50 (Pump Machine) and stored in the restricted memory 40 (PumpChannel Memory). {5}: After step {4}, the transfer module 50 (Pump Machine) sets the physical location 56 (addresses) of all communication channels 36 to zero. (Hook) integrity: Steps {E} and {F} are intended to ensure the integrity of the first trigger module 46 and the second trigger module 48 (all hooks) in the execution of the “PumpChannel”. {E}: The integrity module 54 (Hook Integrity Monitor) cyclically checks the static code segment of the first trigger module 46 (Mode Switch Hooks) and calculates the hash value. If it is detected that the code segment of the first trigger module 46 (Mode Switch Hooks) has been modified, the integrity module 54 (Hook Integrity Monitor) corrects this immediately. {F}: Like step {E}, the integrity module 54 (Hook Integrity Monitor) cyclically checks the static code segment of the second trigger module 48 (Environment Switch Hooks) and corrects it in real time.

[0073] The invention also provides a computer program (not shown) containing instructions which, when executed by the described computing device 10, cause the computing device 10 to perform the described method. The invention further provides a computer-readable storage medium (not shown) in which the computer program is stored. Reference sign 10 Calculating device 12 computer systems 14 field-programmable gate array 16 processor 18 Machine command 20 physical storage 22 Trusted Execution Environment 24 trusted computing processes 26 Rich Execution Environment 28 Client computing process 30 User mode 32 Kernel mode 34 shared storage 36 Communication channel 38 related process data 40 limited storage 42 Software 44 Hardware 45 Bus 46 first trigger module 48 second trigger module 50 Transfer module 52-channel module 54 Integrity Module 56 physical location 58 Process identifier

Claims

[1] A computer-implemented method for improving data security in a computing device (10), wherein the computing device (10) includes a computer system (12) having a processor (16) for executing machine instructions (18) and a physical memory (20) with access for the processor (16), wherein the computer system (12) is designed as an implementation of a computer architecture suitable for switching between a Trusted Execution Environment (22) for executing a trusted computing process (24) and a Rich Execution Environment (26) for executing a client computing process (28) corresponding to the trusted computing process (24), wherein access of the Rich Execution Environment (26) to the Trusted Execution Environment (22) is restricted and / or secured, wherein the Rich Execution Environment (26) and the Trusted Execution Environment (24) are each switchable between a user mode (30),in which the execution of one or more selected machine instructions (18) for accessing the physical memory (20) is restricted and / or secured, and a kernel mode (32) in which the execution of the machine instructions (18) is unrestricted and / or unsecured, wherein the Rich Execution Environment (26) and the Trusted Execution Environment (24) jointly use a shared memory (34) of the physical memory (20), wherein the shared memory (34) provides a communication channel (36) including related process data (38) for communication between the client computing process (28) and the trusted computing process (24), the method comprising: a) by the computing device (10), providing a restricted memory (40), wherein access to the restricted memory (40) is restricted and / or secured with respect to the processor (16); b) by the computer system (12), upon receipt of a machine command (18) to switch from user mode (30) to kernel mode (32) within the Rich Execution Environment (26), triggering the computing device (10) to perform the following: α) transferring the related process data (38) from the shared memory (34) to the restricted memory (40) by deleting the related process data (38) in the shared memory (34); and c) by the computing device (10), executing step α). [2] The method of claim 1, further comprising: d) by the computer system (12), upon receipt of a machine command (18) to switch from the kernel mode (32) of the Trusted Execution Environment (22) to the kernel mode (32) of the Rich Execution Environment (26), triggering the computing device (10) to execute step α); and e) by the computing device (10), carrying out step α). [3] Method according to one of the preceding claims, further comprising: f) storing a physical location (56) for locating the communication channel (36) in the physical memory (20) and deleting the related process data (38) in the shared memory (34) by locating the communication channel (36) in the physical memory (20) based on the physical location (56). [4] Method according to one of the preceding claims, further comprising: g) by the computer system (12), upon receipt of a machine command (18) to switch from kernel mode (32) to user mode (30) within the Rich Execution Environment (26), triggering the computing device (10) to perform the following: β) transferring the related process data (38) from the restricted memory (40) to the communication channel (36) of the shared memory (34) by identifying the client computing process (28) in the rich execution environment (26); and h) by the computing device (10), executing step β). [5] Method according to one of the preceding claims, further comprising: i) by the computer system (12), upon receipt of a machine instruction (18) to switch from the kernel mode (32) of the Rich Execution Environment (26) to the kernel mode (32) of the Trusted Execution Environment (22), triggering the computing device (10) to perform the following: β) transferring the related process data (38) from the restricted memory (40) to the communication channel (36) of the shared memory (34) by identifying the client computing process (28) in the rich execution environment (26); and j) by the computing device (10), executing step β). [6] The method of claim 4 or 5, further comprising: k) storing a process identifier (58) for identifying the client computing process (28) in the rich execution environment (26) and identifying the client computing process (28) in the rich execution environment (26) based on the process identifier (58). [7] Method according to one of the preceding claims, further comprising: I) monitoring an integrity of a machine instruction (18) to trigger the computing device (10) to transfer the related process data (38) to or from the restricted memory (40), preferably by calculating a hash of the machine instruction (18), and transferring the related process data (38) to or from the restricted memory (40) based on the monitored integrity. [8] Computing device (10) including a computer system (12) with a processor (16) for executing machine instructions (18) and a physical memory (20) with access for the processor (16), wherein the computer system (12) is designed as an implementation of a computer architecture suitable for switching between a Trusted Execution Environment (22) for executing a trusted computing process (24) and a Rich Execution Environment (26) for executing a client computing process (28) corresponding to the trusted computing process (24), wherein access of the Rich Execution Environment (26) to the Trusted Execution Environment (22) is restricted and / or secured, wherein the Rich Execution Environment (26) and the Trusted Execution Environment (22) are each switchable between a user mode (30),in which the execution of one or more selected machine instructions (18) for accessing the physical memory (20) is restricted and / or secured, and a kernel mode (32) in which the execution of the machine instructions (18) is unrestricted and / or unsecured, wherein the Rich Execution Environment (26) and the Trusted Execution Environment (22) jointly use a shared memory (34) of the physical memory (20), wherein the shared memory (34) provides a communication channel (36) including related process data (38) for communication between the client computing process (28) and the trusted computing process (24), , characterized byin that the computing device (10) provides a restricted memory (40), wherein access to the restricted memory (40) is restricted and / or secured with respect to the processor (16), and wherein the computing device (10) is suitable for carrying out the method according to one of the preceding claims. [9] Computing device (10) according to claim 8, characterized by that the hardware (44) of the computing device (10) is suitable for performing one, several or all of the following steps: α) transferring the related process data (38) from the shared memory (34) to the restricted memory (40) by deleting the related process data (38) in the shared memory (34); and / or β) transferring the related process data (38) from the restricted memory (40) to the communication channel (36) of the shared memory (34) by identifying the client computing process (28) in the rich execution environment (26); and / or f) storing a physical location (56) for locating the communication channel (36) in the physical memory (20) and deleting the related process data (38) in the shared memory (34) by locating the communication channel (36) in the physical memory (20) based on the physical location (56); and / or k) storing a process identifier (58) for identifying the client computing process (28) in the Rich Execution Environment (26) and identifying the client computing process (28) in the Rich Execution Environment (26) based on the process identifier (58); and / or I) monitoring an integrity of a machine instruction (18) to trigger the computing device (10) to transfer the related process data (38) to or from the restricted memory (40), preferably by calculating a hash of the machine instruction (18), and transferring the related process data to or from the restricted memory (40) based on the monitored integrity. [10] Computing device (10) according to claim 8 or 9, characterized by that the computing device (10) includes a field-programmable gate array (14) that provides the restricted memory (40). [11] Computing device (10) according to claim 9 and 10, characterized by that the field-programmable gate array (14) is suitable for carrying out one, several or all of the steps α), β), f), k) and / or l). [12] Computing device (10) according to one of claims 8 to 11, characterized bythat the software (42) of the computing device (10) is suitable for triggering the computing device (10) so that it carries out step α) and / or β). [13] Computing device (10) according to claims 11 and 12, characterized by that the computer system (12) is suitable for triggering the field-programmable gate array (14) so that it carries out step α) and / or β). [14] A computer program comprising instructions which, when the program is executed by a computing device (10) according to any one of claims 8 to 13, cause the computing device (10) to carry out the method according to any one of claims 1 to 7. [15] A computer-readable storage medium in which the computer program according to claim 14 is stored.