Sequence numbering mechanism to ensure execution order...

Data processing: software development – installation – and managem – Software program development tool – Testing or debugging

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06490720

ABSTRACT:

BACKGROUND AND SUMMARY OF THE INVENTION
The present invention describes a mechanism for the protection of the correct execution-order of interdependent (interrelated) software applications. In particular, the present invention relates to software license protection for the shielded and timely execution of software applications through the use of tamper-resistant external devices, such as smart cards, USB tokens or other forms for tamper-resistant environments. The present invention also finds its applications in any traditional smart card security application area, such as e-payment, digital rights management (DRM), multi-media protection, authentication, biometry, public-key infrastructure (PKI), encryption-schemes, as an integrated part of special-purpose secure operating systems for tamper-resistant external devices, and the like. The present invention relates to International Application No. PCT/NO96/00171 designating the United States, now U.S. Pat. No. 6,266,416 (Sigbjormsen et al.), which is incorporated by reference herein. This patent describes a system for software license protection through the partial execution of a software application in a tamper-resistant external device.
In multi-processing computer environments, such as for example that provided by a dual-processor environment consisting of an (untrusted) host computer and a (trusted) external, tamper-resistant device such as a smart card or other token, software applications residing on the host computer are sometimes required to make more than one finction call to applications residing on the external device. Software applications which execute on external devices as described herein are also referred to as “applets.” Generally speaking, the path of execution of a software application, whether that be a host application or an external device/smart card applet, is critical for the correct functioning of the application. It is important that the execution path is not tampered with.
As a trivial example, an application which converts Celsius temperature degrees into Fahrenheit would need to perform the equation F=9/5*C+32. The multiplication of the Celsius degree by 9/5 must be carried out before the addition by 32. According to the prior art, correct execution order is ensured by letting the function in its entirety be executed in a tamper-proof environment, as an applet, allowing just one function-call entry from the host application to the applet. Since the applet resides on the tamper-resistant smart card, it may not be tampered with, and since the applet has just one entry-point, there is no way the addition operation can possibly be performed before the multiplication operation. Functional atomicity, integrity and correct execution order has been ensured.
If the function F=9*C/5+32 nonetheless was to be split into three applets, as illustrated in
FIG. 1
; applet
1
as i=9*C, applet
2
as i=i/5 and applet
3
as F=i+32, each with a separate function entry point, then, according to the prior art, no mechanism allows the external device to discover and hinder an adversary from modifying the host application by reversing applet function calls towards the external device, e.g., calling applet
3
before applet
1
, or by removing one or several calls, to thereby break the integrity of the compound smart card application.
FIG. 2
shows a scenario where the adversary has removed the call to applet
2
, causing the external device to return a corrupt result. Thus, a tamper-proof device does not in general suffice to maintain the correct execution order and overall applet integrity.
A first objective of the present invention is to provide an integrity protection mechanism that allows a smart card application to be split into more than one sub-applications in a safe manner, enforcing correct execution order and application integrity, and to allow the execution environment of the external device to discover any attempts to process applets in an illegal order or manner. This facility opens up new technological possibilities. A second objective of the present invention is to facilitate, for the purposes of software license protection and other application areas indicated above, the selection of software application components suitable and not suitable for execution on the tamper-resistant device, in an unconstrained manner, thereby providing an efficient and highly user-friendly tool for optimization of application security and performance.


REFERENCES:
patent: 4558176 (1985-12-01), Arnold et al.
patent: 5625785 (1997-04-01), Miura et al.
patent: 5651068 (1997-07-01), Klemba et al.
patent: 5825877 (1998-10-01), Dan et al.
patent: 5826080 (1998-10-01), Dworzecki
patent: 5841869 (1998-11-01), Merkling et al.
patent: 5933640 (1999-08-01), Dion
patent: 6038646 (2000-03-01), Sproull
patent: 6061449 (2000-05-01), Candelore et al.
patent: 6112987 (2000-09-01), Lambert et al.
patent: 6117185 (2000-09-01), Schmidt
patent: 6126328 (2000-10-01), Mallory et al.
patent: 6223287 (2001-04-01), Douglas et al.
patent: 6282656 (2001-08-01), Wang
patent: 6292569 (2001-09-01), Shear et al.
patent: WO 97/03398 (1997-01-01), None

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Sequence numbering mechanism to ensure execution order... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Sequence numbering mechanism to ensure execution order..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Sequence numbering mechanism to ensure execution order... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2944749

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.