TECHNICAL FIELD

This disclosure relates generally to device security. More specifically, this disclosure relates to systems and method for anti-rollback.

BACKGROUND

Certain networked computing devices, such as smartphones, tablets and wearables (for example, smart watches) have proven to be effective platforms for the provision of time-based application services (such as wireless communication service contracts, or short term “rentals” in which items of digital content are accessible for a specified period of time). In many cases, the time-based application services employ a decentralized timekeeping architecture, in which the determination of gating times (e.g., the expiration of a rental) is keyed off of a real time clock (RTC) on the device. Often, a device's RTC is accessible to many other applications on the device (including malware and viruses) through the device's operating system framework. As such, malicious actors can “roll back” the values output by RTC to postpone or avoid reaching a gating time.

Thus, improving the reliability and trustworthiness of device RTC values as timekeepers for time-based application services remains a source of technical challenges and opportunities for improvement in the operation of certain networked computing devices.

SUMMARY

This disclosure provides a system and method for anti-rollback.

In a first embodiment, a method for providing an anti-rollback secure timer service is provided. The method includes determining, at a device that includes a processor providing a trusted execution environment (TEE), a trusted memory, and a real time clock (RTC) accessible through an operating system of the device, an initial reference time value, by a secure timer application running in the TEE, the initial reference time value determined based on an initial value of the RTC obtained during booting of the device and a time delta value. The method further includes determining an updated reference time value based on the initial reference time value, a second value of the RTC, and a previously stored old reference time value. The method further includes determining an updated time delta value based on the second value of the RTC and the updated reference time value, and storing the updated time delta value and the updated reference time value in the trusted memory.

In a second embodiment, an apparatus is provided. The apparatus includes a processor providing a trusted execution environment (TEE), a real-time clock (RTC) accessible through an operating system of the apparatus and a memory. Further, processor is configured to determine, by a secure timer application running in the TEE, an initial reference time value, the initial reference time value determined based on an initial value of the RTC obtained during booting of the device and a time delta value. The processor also is configured to determine an updated reference time value based on the initial reference time value and a second value of the RTC, and a previously stored old reference time value. The processor is further configured to determine an updated time delta value based on the second value of the RTC and the updated reference time value, and store the updated time delta value and the updated reference time value in the trusted memory.

In a third embodiment, a non-transitory computer-readable medium includes program code, which when executed by a device, causes the device to determine, at the device, the device including a processor providing a trusted execution environment (TEE), a trusted memory, and a real time clock (RTC) accessible through an operating system of the device, an initial reference time value, by a secure timer application running in the TEE, the initial reference time value determined based on an initial value of the RTC obtained during booting of the device, and a time delta value. The program code, when executed by the processor, further causes the device to determine an updated reference time value based on the initial reference time value, a second value of the RTC, and a previously stored old reference time value, determine an updated time delta value based on the second value of the RTC and the updated reference time value, and store the updated time delta value and the updated reference time value in the trusted memory.

Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.

Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The term “couple” and its derivatives refer to any direct or indirect communication between two or more elements, whether or not those elements are in physical contact with one another. The terms “transmit,” “receive,” and “communicate,” as well as derivatives thereof, encompass both direct and indirect communication. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and/or. The phrase “associated with,” as well as derivatives thereof, means to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, have a relationship to or with, or the like. The term “controller” means any device, system or part thereof that controls at least one operation. Such a controller may be implemented in hardware or a combination of hardware and software and/or firmware. The functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. The phrase “at least one of,” when used with a list of items, means that different combinations of one or more of the listed items may be used, and only one item in the list may be needed. For example, “at least one of: A, B, and C” includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C.

Moreover, various functions described below can be implemented or supported by one or more computer programs, each of which is formed from computer readable program code and embodied in a computer readable medium. The terms “application” and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer readable program code. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory. A “non-transitory” computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable memory device.

Definitions for other certain words and phrases are provided throughout this patent document. Those of ordinary skill in the art should understand that in many if not most instances, such definitions apply to prior as well as future uses of such defined words and phrases.

