Protecting Digital Goods Using Oblivious Checking
AssigneeMecrosoft Corporation
InventorsMariusz Jakubowski, Ramarathnam Venkatesan
Life of this patent
Estimating the term…
Abstract
Oblivious checking of a digital good is performed by identifying a plurality of key instructions within a function of a digital good. Each key instruction is an instruction that possibly modifies a register or a flag. An extra instruction is then inserted into the function for each of the key instructions. The extra instructions each correspond to one of the key instructions and modify a register in a deterministic fashion based on the corresponding key instruction. A set of inputs to the function are then identified that result in different valid computation paths in the function being taken. A checksum for the function is then generated by using a mapping function which maps the contents of the register to the set of inputs.
Claims20
A method implemented at least in part by a device, the method comprising:
- generating a checksum value for a segment of a digital good based at least in part on both a set of inputs to the segment and the content of a register that results from applying the set of inputs to the segment and modification of the content of the register by instructions in the segment;
- comparing the generated checksum value to a stored checksum value corresponding to the segment;
- and
- determining that the digital good has been tampered with if the generated checksum value does not match the stored checksum value.
A device comprising:
- a processor;
- and
- a memory, coupled to the processor, to store instructions that, when executed by the processor, cause the processor to:
- generate a checksum value for a segment of a digital good based at least in part on both a set of inputs to the segment and the content of a register that results from applying the set of inputs to the segment and modification of the content of the register by instructions in the segment;
- compare the generated checksum value to a stored checksum value corresponding to the segment;
- and
- determine that the digital good has been tampered with if the generated checksum value does not match the stored checksum value.
A system comprising:
- means for inserting, into a segment of a digital good, a plurality of instructions that modify content of a register;
- means for identifying a set of inputs to the segment;
- and
- means for determining a checksum value for the segment based at least in part on modifications made to the content of the register by the plurality of instructions when the plurality of instructions are executed with the set of inputs to the segment.
Dependencies are inferred from the claim text.