IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0208768
(2011-08-12)
|
등록번호 |
US-8352747
(2013-01-08)
|
발명자
/ 주소 |
- Horne, William G.
- Matheson, Lesley R.
- Sheehan, Casey
- Tarjan, Robert E.
|
출원인 / 주소 |
- Intertrust Technologies Corporation
|
대리인 / 주소 |
Finnegan, Henderson, Farabow, Garrett & Dunner, LLP
|
인용정보 |
피인용 횟수 :
9 인용 특허 :
53 |
초록
▼
Software self-checking mechanisms are described for improving software tamper resistance and/or reliability. Redundant tests are performed to detect modifications to a program while it is running. Modifications are recorded or reported. Embodiments of the software self-checking mechanisms can be imp
Software self-checking mechanisms are described for improving software tamper resistance and/or reliability. Redundant tests are performed to detect modifications to a program while it is running. Modifications are recorded or reported. Embodiments of the software self-checking mechanisms can be implemented such that they are relatively stealthy and robust, and so that they are compatible with copy-specific static watermarking and other tamper-resistance techniques.
대표청구항
▼
1. A method of creating a self-checking software program on a non-transitory computer-readable medium, the method comprising: creating a plurality of self-checking code sequences operable to calculate a function of a portion of the program, each self-checking code sequence having an interval start f
1. A method of creating a self-checking software program on a non-transitory computer-readable medium, the method comprising: creating a plurality of self-checking code sequences operable to calculate a function of a portion of the program, each self-checking code sequence having an interval start field and an interval end field;inserting the plurality of self-checking code sequences into the program source code;inserting a plurality of correctors, each having a corrector value field, into the program executable;assigning the self-checking code sequences to portions of the program, each of the portions containing at least one corrector;locating the self-checking code sequences and setting the interval start field and the interval end field to values corresponding to the start of the portion of the program and the end of the portion of the program, respectively;locating the correctors and setting the corrector value field of each such that the function calculated by the self-checking code sequence results in a predefined value when the portion of the program has not been improperly modified; andwriting the self-checking software program onto a non-transitory computer-readable medium. 2. The method of claim 1, further comprising: inserting watermark values into the program. 3. The method of claim 1, wherein the self-checking code sequences are further operable to trigger a tamper response mechanism when an improper modification of the program is detected. 4. The method of claim 1, wherein the self-checking code sequences are assigned to overlapping portions of the program in a relatively random fashion. 5. The method of claim 4, wherein the self-checking code sequences are assigned to overlapping portions of the program such that a graph representing the assignment of self-checking code sequences to overlapping portions of the program is strongly connected. 6. The method of claim 1, wherein the function that each self-checking code sequence is operable to calculate comprises a hash function. 7. The method of claim 6, wherein the hash function is invertible. 8. The method of claim 6, wherein the hash function is relatively lightweight. 9. A self-checking software program, stored on a non-transitory computer-readable medium, created by a method comprising: creating a plurality of self-checking code sequences operable to calculate a function of a portion of the program, each self-checking code sequence having an interval start field and an interval end field;inserting the plurality of self-checking code sequences into the program source code;inserting a plurality of correctors, each having a corrector value field, into the program executable;assigning the self-checking code sequences to portions of the program, each of the portions containing at least one corrector; andlocating the self-checking code sequences and setting the interval start field and the interval end field to values corresponding to the start of the portion of the program and the end of the portion of the program, respectively; andlocating the correctors and setting the corrector value field of each such that the function calculated by the self-checking code sequence results in a predefined value when the portion of the program has not been improperly modified. 10. The self-checking software program of claim 9, created by a method further comprising: inserting watermark values into the program. 11. The self-checking software program of claim 9, wherein the self-checking code sequences are further operable to trigger a tamper response mechanism when an improper modification of the program is detected. 12. The self-checking software program of claim 9, wherein the self-checking code sequences are assigned to overlapping portions of the program in a relatively random fashion. 13. The self-checking software program of claim 12, wherein the self-checking code sequences are assigned to overlapping portions of the program such that a graph representing the assignment of self-checking code sequences to overlapping portions of the program is strongly connected. 14. The self-checking software program of claim 9, wherein the function that each self-checking code sequence is operable to calculate comprises a hash function. 15. A system configured to create a self-checking software program comprising: a processor; anda first non-transitory computer-readable storage medium communicatively coupled to the processor storing instructions that, when executed by the processor, cause the processor to: create a plurality of self-checking code sequences operable to calculate a function of a portion of the program, each self-checking code sequence having an interval start field and an interval end field;insert the plurality of self-checking code sequences into the program source code;insert a plurality of correctors, each having a corrector value field into the program executable;assign the self-checking code sequences to portions of the program, each of the portions containing at least one corrector;locate the self-checking code sequences and set the interval start field and the interval end field to values corresponding to the start of the portion of the program and the end of the portion of the program, respectively;locate the correctors and set the corrector value field of each such that the function calculated by the self-checking code sequence results in a predefined value when the portion of the program has not been improperly modified; andwrite the self-checking software program onto a second non-transitory computer-readable medium. 16. The system of claim 15, wherein the instructions are further configured to cause the processor to insert a plurality of watermark values into the program. 17. The system of claim 15, wherein the self-checking code sequences are further operable to trigger a tamper response mechanism when an improper modification of the program is detected. 18. The system of claim 15, wherein the self-checking code sequences are assigned to overlapping portions of the program in a relatively random fashion. 19. The system of claim 18, wherein the self-checking code sequences are assigned to overlapping portions of the program such that a graph representing the assignment of self-checking code sequences to overlapping portions of the program is strongly connected. 20. The system of claim 15, wherein the function that each self-checking code sequence is operable to calculate comprises a hash function.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.