IP Library Granted Patent US 9,058,484
Granted Patent B2
US 9,058,484 · App. 13/697,161 · Granted Jun 16, 2015

Method for checking whether program instructions have been executed by a portable end device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,058,484
App. No.
13/697,161
Granted
Jun 16, 2015
Kind
B2
Abstract

A method and a system for checking whether program instructions have been executed by an end device, wherein, the end device calls for program instructions and the program instructions are stored in executable form in a trustworthy entity, in particular a chip card. Subsequently, the program instructions are variably modified in the trustworthy entity such that the modified program instructions vary upon each execution of the method. Through execution of the instructions in the end device there is obtained a check value which is in turn transferred to the trustworthy entity and verified in the trustworthy entity.

Claims (30)

1. A method for checking whether program instructions have been executed by an end device, comprising the steps:

calling for the program instructions by the end device, the program instructions being stored in executable form in a trustworthy entity;

variably modifying the executable program instructions by the trustworthy entity such that the modified program instructions vary upon each execution of the method;

transferring the modified program instructions from the trustworthy entity to the end device;

executing the modified program instructions by the end device, there being obtained by the executing of the modified program instructions a check value;

transferring the obtained check value from the end device to the trustworthy entity; and

verifying the obtained check value in the trustworthy entity to check whether the called for program instructions have been executed in the end device.

2. The method according to claim 1 , wherein directly before or during the calling step the program instructions are transferred from the end device to the trustworthy entity.

3. The method according to claim 1 , wherein the program instructions are considered executed by an end device when the check value obtained in the trustworthy entity corresponds to an expected value in the trustworthy entity.

4. The method according to claim 1 , wherein at least portions of the program instructions are called for, and wherein different portions of the program instructions are called for upon each execution of the method.

5. The method according to claim 1 , wherein the program instructions are variably modified through incorporating of at least one check instruction executable in the end device.

6. The method according to claim 1 , wherein the program instructions are variably modified through either or both incorporating of a value, and incorporating a different number of idle instructions.

7. The method according to claim 1 , wherein the variably modifying is effected through randomizing of portions of the program instructions.

8. The method according to claim 1 , wherein the program instructions are variably modified such that after the executing of the modified program instructions in the end device, the transfer of the obtained check value is effected in cryptographically encrypted form, the trustworthy entity being able to decrypt the obtained check value.

9. The method according to claim 1 , wherein the trustworthy entity authorizes an action as soon as the program instructions are considered executed.

10. The method according to claim 1 , wherein the program instructions are the start program instructions of the end device, and the calling for the start program instructions is effected either or both during the boot and after the boot of the end device.

11. The method according to claim 1 , wherein the obtained check value is a hash value of at least portions of the modified program instructions.

12. The method according to any of the preceding claims, wherein the end device is a mobile radio end device, and the trustworthy entity is a Subscriber Identification Module (SIM), and wherein the transferring is effected via an existing communication connection of the Subscriber Identification Module and the mobile radio end device.

13. A system for executing the method recited in claim 1 , the system comprising:

a trustworthy entity, comprising:

a storage device storing program instructions to be executed in the end device;

means for variably modifying the program instructions such that the modified program instructions vary upon each execution of the method according to the preceding claims;

means for transferring the modified program instructions; and

means for verifying the obtained check value for the purpose of checking whether the program instructions have been executed by the end device; and

an end device, comprising:

means for executing the modified program instructions, there being obtained by the executing of the modified program instructions a check value;

means for calling for program instructions from the trustworthy entity; and

means for transferring the obtained check value to the trustworthy entity.

14. The system according to claim 13 , wherein the trustworthy entity comprises means for computing and storing a hash value of the modified program instructions, said hash value being useable to verify the obtained check value.

15. The system according to claim 13 , wherein the trustworthy entity comprises a random number generator, and the variable modifying is effected through incorporating of a generated random number.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: GIESECKE & DEVRIENT GMBH
To: GIESECKE+DEVRIENT MOBILE SECURITY GMBH
Reel/Frame 044559/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2012
From: BAUER, SVEN
To: GIESECKE & DEVRIENT GMBH
Reel/Frame 029272/0123 →