IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0658253
(2000-09-08)
|
발명자
/ 주소 |
- Nusser, Stefan
- Lotspiech, Jeffrey B.
- Rettig, Paul R.
|
출원인 / 주소 |
- International Business Machines Corporation
|
대리인 / 주소 |
Fleit, Kain, Gibbons, Gutman, Dongini &
|
인용정보 |
피인용 횟수 :
3 인용 특허 :
62 |
초록
▼
An external module loads into an entity's memory and is transformed by two functions. These are namely, the STOMP function and the UNSTOMP function. One or both of these functions is based on the actual code that is found in a legitimate version of the external module. The STOMP-UNSTOMP pair produce
An external module loads into an entity's memory and is transformed by two functions. These are namely, the STOMP function and the UNSTOMP function. One or both of these functions is based on the actual code that is found in a legitimate version of the external module. The STOMP-UNSTOMP pair produces an external module that works differently if even a single byte of code in the external module has been changed by an attacker. The STOMP transforms the external module and makes it temporarily unusable whilst conversely, the UNSTOMP repairs the damage and makes it workable again. Thus, if the module is not authentic, the pairing between the STOMP and UNSTOMP is broken. Therefore, a patched module from a hacker remains unusable since the STOMP and UNSTOMP transformations do not produce a working external module. Because of the STOMP and UNSTOMP technique, an application is secure because if an external module is free from tampering then the application executes normally. In the event that an illicitly patched external module is loaded then the application fails. In either case, no audio, video or information content is illegally copied because of the disablement of the external module by the STOMP-UNSTOMP procedure.
대표청구항
▼
1. A method for authenticating an external module comprising the steps of:providing data K that can be created by using two different schemes, at least one scheme of the two different schemes being based on the integrity of a module to be verified; providing an authentication token for said module w
1. A method for authenticating an external module comprising the steps of:providing data K that can be created by using two different schemes, at least one scheme of the two different schemes being based on the integrity of a module to be verified; providing an authentication token for said module which produces data K in both schemes, an executable external module being representative of said module; at a computer system, using data K as created by one scheme of the two different schemes to disrupt said executable external module; and at the computer system, using data K as created by the other scheme of the two different schemes to restore the executable external module from the disrupted executable external module thereby authenticating said executable external module. 2. The method as defined in claim 1, wherein one or more of the schemes is based on RSA encryption.3. The method as defined in claim 1, wherein one or more of the schemes is based on digital signets.4. The method as defined in claim 1, further comprising the step of:embedding a public component of one or more of the schemes in a verification code of the executable external module. 5. The method as defined in claim 1, further comprising the step of:conveying private components of all schemes to a module authentication authority. 6. The method as defined in claim 5, wherein the providing an authentication token step is automated by providing developers of the module access to a Web site which allows them to submit the hash of their module and to retrieve the authentication token.7. The method as defined in claim 1, wherein the authentication token is embeddedin the executable external module as long as the executable external module itself remains functional. 8. The method as defined in claim 7, where the embedding is realized by adding anadditional data section to a DLL in Portable Executable (PE) format. 9. The method as defined in claim 1, wherein the authentication token is external to the executable external module.10. The method as defined in claim 1, wherein said at least one scheme depending on code integrity is independent of a location of the executable external module in memory.11. The method as defined in claim 10, wherein location independence is achieved by locating and reading the executable external module's image on a disk.12. The method as defined in claim 10, wherein location independence is achieved by using a canonical hash.13. The method as defined in claim 1, whereinthe using data K as created by one scheme to disrupt said executable external module, and the using data restore the executable external module from the disrupted executable external module, are performed at run time of the executable external module at the computer system.14. A method for secure authentication of external modules on an entity comprising the steps of:storing an executable external module in memory at a computer system; STOMPing, at the computer system, the executable external module by decrypting a number of pseudo-random bytes that are part of an authentication token using a public security code of a public and private component pair security code; and XORing the decrypted pseudo-random bytes with the executable external module thereby disrupting the executable external module into an unusable state; and UNSTOMPing, at the computer system, the executable external module in the unusable state by performing a signet extrication process to generate extrication data by using the hash of the executable external module in the unusable state; using the extrication data to generate another stream of pseudo-random bytes; and XORing the another stream of pseudo-random bytes with the executable external module in the unusable state thereby restoring, from the executable external module in the unusable state, the executable external module back to a usable state in the event there has been no illicit patching of the executable external module, and maintaining the executable external module in an unusable state in the event that the executable external module has been illicitly patched such that an application or program that is accessing the executable external module in the unusable state fails to operate. 15. The method as defined in claim 14, wherein the public and private components ofthe security code comprise security codes selected from a group of security codes of: a signet pair and an RSA pair. 16. The method as defined in claim 14, further comprising the step of:re-authenticating, at the computer system, the executable external module by periodically performing the STOMP and UNSTOMPing process multiple times while interacting with the executable external module at the computer system. 17. The method as defined in claim 14, further comprising the step of:performing run time checks of the executable external module to make sure that function calls to the executable external module are not intercepted by an attacker. 18. A computer readable medium comprising instructions for secure authentication ofexecutable external modules at a computer system comprising the instructions of: storing an executable external module in memory at a computer system; STOMPing, at the computer system, the executable external module by decrypting a number of pseudo-random bytes that are part of an authentication token using a public security code of a public and private component pair security code; and XORing the decrypted pseudo-random bytes with the external module thereby disrupting the executable external module into an unusable state; and UNSTOMPing, at the computer system, the executable external module in the unusable state by performing a signet extrication process to generate extrication data by using the hash of the executable external module in the unusable state; using the extrication data to generate another stream of pseudo-random bytes; and XORing the another stream of pseudo-random bytes with the executable external module in the unusable state thereby restoring, from the executable external module in the unusable state, the executable external module back to a usable state in the event there has been no illicit patching of the executable external module, and maintaining the executable external module in an unusable state in the event that the executable external module has been illicitly patched such that an application or program that is accessing the executable external module in the unusable state fails to operate.19. The computer readable medium as defined in claim 18 wherein the public andprivate components of the security code comprise security codes selected from a group of security codes of: a signet pair and an RSA pair. 20. A computer system for secure authentication of executable external modules, comprising:a loader unit for loading an executable external module into memory; a decryption unit for decrypting a number of pseudo-random bytes that are part of an authentication token using a public security code of a public and private component pair security code; and a processor, communicatively coupled with the memory and the decryption unit, for XORing the decrypted pseudo-random bytes with the executable external module thereby disrupting the executable external module into an unusable state; performing a signet extrication process to generate extrication data by using the hash of the executable external module in the unusable state; using the extrication data to generate another stream of pseudo-random bytes; and XORing the another stream of pseudo-random bytes with the executable external module in the unusable state thereby restoring, from the executable external module in the unusable state, the executable external module back to a usable state in the event there has been no illicit patching of the executable external module, and maintaining the executable external module in an unusable state in the event that the executable external module has been illicitly patched such that an application or program that is accessing the executable external module in the unusable state fails to operate.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.