Claims
- 1. A method for authenticating a software library, comprising:
inserting an encrypted checksum into a software library; and in response to loading the software library:
calculating a checksum of the software library; requesting the encrypted checksum from the library; decrypting the encrypted checksum; and checking whether or not the decrypted checksum agrees with the calculated checksum.
- 2. The method of claim 1 wherein the software library performs normally if the decrypted checksum agrees with the calculated checksum, and performs abnormally if the decrypted checksum does not agree with the calculated checksum.
- 3. The method of claim 1 wherein the encrypted checksum is encrypted using a private key.
- 4. The method of claim 1 wherein said decrypting uses a public key.
- 5. The method of claim 1 wherein said calculating skips at least one portion of the software library in computing the calculated checksum.
- 6. The method of claim 5 wherein each of the at least one portion of the software library is preceded by a characteristic sequence of bits.
- 7. The method of claim 5 wherein each of the at least one portion of the software library is followed by a characteristic sequence of bits.
- 8. The method of claim 7 wherein each of the at least one portion of the software library is also preceded by a characteristic sequence of bits.
- 9. The method of claim 5 wherein the location of the at least one portion of the software library is known.
- 10. The method of claim 1 wherein the software library is a dynamically linked library (DLL).
- 11. The method of claim 10 wherein the DLL is used to decode protected electronic content.
- 12. The method of claim 1 wherein said calculating, requesting, decrypting and checking are performed by a caller application calling the software library.
- 13. The method of claim 12 wherein the caller application is a document viewer.
- 14. The method of claim 12 wherein the caller application is a web browser.
- 15. The method of claim 12 wherein the caller application is a mail client.
- 16. The method of claim 12 wherein the caller application is an instant messenger.
- 17. A method for controlling use of a software library, comprising:
identifying a caller application that is calling a software library; calculating a checksum of the caller application; retrieving an encrypted checksum from the caller application; decrypting the encrypted checksum; and checking whether or not the decrypted checksum agrees with the calculated checksum.
- 18. The method of claim 17 wherein the software library runs if the decrypted checksum agrees with the calculated checksum, and aborts if the decrypted checksum does not agree with the calculated checksum.
- 19. The method of claim 17 wherein the encrypted checksum is encrypted using a private key.
- 20. The method of claim 17 wherein said decrypting uses a public key.
- 21. The method of claim 17 wherein said calculating skips at least one portion of the caller application in computing the calculated checksum.
- 22. The method of claim 21 wherein each of the at least one portion of the caller application is preceded by a characteristic sequence of bits.
- 23. The method of claim 21 wherein each of the at least one portion of the caller application is followed by a characteristic sequence of bits.
- 24. The method of claim 23 wherein each of the at least one portion of the caller application is also preceded by a characteristic sequence of bits.
- 25. The method of claim 21 wherein the location of the at least one portion of the caller application is known.
- 26. The method of claim 17 wherein the software library is a dynamically linked library (DLL).
- 27. The method of claim 26 wherein the DLL is used to decode protected electronic content.
- 28. The method of claim 17 wherein said calculating, retrieving, decrypting and checking are performed by the software library.
- 29. The method of claim 28 wherein the caller application is a document viewer.
- 30. The method of claim 28 wherein the caller application is a web browser.
- 31. The method of claim 28 wherein the caller application is a mail client.
- 32. The method of claim 28 wherein the caller application is an instant messenger.
- 33. A system for authenticating a software library, comprising:
a data processor inserting an encrypted checksum into a software library; a checksum calculator calculating a checksum of the software library; an interface for obtaining the encrypted checksum from the library upon request; a decoder decrypting the encrypted checksum; and a comparator determining whether or not the decrypted checksum agrees with the calculated checksum.
- 34. The system of claim 33 wherein the software library performs normally if the decrypted checksum agrees with the calculated checksum, and performs abnormally if the decrypted checksum does not agree with the calculated checksum.
- 35. The system of claim 33 wherein the encrypted checksum is encrypted using a private key.
- 36. The system of claim 33 wherein said decoder uses a public key.
- 37. The system of claim 33 wherein said checksum calculator skips at least one portion of the software library in computing the calculated checksum.
- 38. The system of claim 37 wherein each of the at least one portion of the software library is preceded by a characteristic sequence of bits.
- 39. The system of claim 37 wherein each of the at least one portion of the software library is followed by a characteristic sequence of bits.
- 40. The system of claim 39 wherein each of the at least one portion of the software library is also preceded by a characteristic sequence of bits.
- 41. The system of claim 37 wherein the location of the at least one portion of the software library is known.
- 42. The system of claim 33 wherein the software library is a dynamically linked library (DLL).
- 43. The system of claim 42 wherein the DLL is used to decode protected electronic content.
- 44. The system of claim 33 further comprising a caller application including said checksum calculator, decoder and comparator.
- 45. The system of claim 44 wherein the caller application is a document viewer.
- 46. The system of claim 44 wherein the caller application is a web browser.
- 47. The system of claim 44 wherein the caller application is a mail client.
- 48. The system of claim 44 wherein the caller application is an instant messenger.
- 49. A system for controlling use of a software library, comprising:
a system processor identifying a caller application that is calling a software library; an interface for obtaining an encrypted checksum from the caller application; a decoder decrypting the encrypted checksum; a checksum calculator calculating a checksum of the caller application; and a comparator determining whether or not the decrypted checksum agrees with the calculated checksum.
- 50. The system of claim 49 wherein the software library runs if the decrypted checksum agrees with the calculated checksum, and aborts if the decrypted checksum does not agree with the calculated checksum.
- 51. The system of claim 49 wherein the encrypted checksum is encrypted using a private key.
- 52. The system of claim 49 wherein said decoder uses a public key.
- 53. The system of claim 49 wherein said checksum calculator skips at least one portion of the caller application in computing the calculated checksum.
- 54. The system of claim 53 wherein each of the at least one portion of the caller application is preceded by a characteristic sequence of bits.
- 55. The system of claim 53 wherein each of the at least one portion of the caller application is followed by a characteristic sequence of bits.
- 56. The system of claim 55 wherein each of the at least one portion of the caller application is also preceded by a characteristic sequence of bits.
- 57. The system of claim 53 wherein the location of the at least one portion of the caller application is known.
- 58. The system of claim 49 wherein the software library is a dynamically linked library (DLL).
- 59. The system of claim 58 wherein the DLL is used to decode protected electronic content.
- 60. The system of claim 49 wherein said checksum calculator, decoder and comparator are included within the software library.
- 61. The system of claim 60 wherein the caller application is a document viewer.
- 62. The system of claim 60 wherein the caller application is a web browser.
- 63. The system of claim 60 wherein the caller application is a mail client.
- 64. The system of claim 60 wherein the caller application is an instant messenger.
CROSS REFERENCES TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of assignee's pending application U.S. Ser. No. 09/774,936, filed on Jan. 29, 2001, entitled “Method and System for Copy Protection of Data Content,” which is a continuation-in-part of U.S. Ser. No. 09/397,331, filed on Sep. 14, 1999, entitled “Method and System for Copyright Protection of Digital Images Transmitted over Networks,” which is a continuation-in-part of U.S. Ser. No. 09/313,067, filed on May 17, 1999, entitled “Methods and Apparatus for Preventing Reuse of Text, Images and Software Transmitted via Networks.”, in each of which is incorporated by reference herein.
Continuation in Parts (3)
|
Number |
Date |
Country |
Parent |
09774936 |
Jan 2001 |
US |
Child |
10202550 |
Jul 2002 |
US |
Parent |
09397331 |
Sep 1999 |
US |
Child |
09774936 |
Jan 2001 |
US |
Parent |
09313067 |
May 1999 |
US |
Child |
09397331 |
Sep 1999 |
US |