+

WO1997004394A1 - Systeme d'authentification, de protection et de securite pour logiciel informatique - Google Patents

Systeme d'authentification, de protection et de securite pour logiciel informatique Download PDF

Info

Publication number
WO1997004394A1
WO1997004394A1 PCT/AU1996/000440 AU9600440W WO9704394A1 WO 1997004394 A1 WO1997004394 A1 WO 1997004394A1 AU 9600440 W AU9600440 W AU 9600440W WO 9704394 A1 WO9704394 A1 WO 9704394A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
software
executable
wherem
entry process
Prior art date
Application number
PCT/AU1996/000440
Other languages
English (en)
Inventor
Christopher Nathan Drake
Original Assignee
Christopher Nathan Drake
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AUPN4186A external-priority patent/AUPN418695A0/en
Priority claimed from AUPN9866A external-priority patent/AUPN986696A0/en
Application filed by Christopher Nathan Drake filed Critical Christopher Nathan Drake
Publication of WO1997004394A1 publication Critical patent/WO1997004394A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Definitions

  • the present mvention relates to a computer program havmg enhanced security features, and also to a system and method for enhancing the security features of a computer program
  • the present mvention relates to such a program, and the system and method for creatmg the program, havmg mcreased security features to prevent ID-Data (as defined hereafter) eavesdroppmg and/or theft and/or to ensure authenticity
  • ID-Data will be used to refer to the abovementioned identification, authentication or similar data, excluding ID-Data which is valid only for a smgle use, or which is designed to expire at regular intervals of less than two mmutes
  • Viruses, Termmate-and-stay-reside ⁇ t programs (TSRs), co-resident software, multithreaded operatmg system processes, Trojan Horses, Worms, Hackers, Spoof programs, key-press password capturers, macro-recorders, sniffers, and the like can be effective at stealing ID-Data and are examples of (a) rogue software or (b) people capable of subverting secu ⁇ ty software or (c) software which can be configured for illegitimate purposes.
  • the term rogue software will be used to refer to software or subversions such as the abovementioned (a) (b) and (c), used for the purpose of stealing ID-Data.
  • rogue software when used herein also includes software or other means used to tamper with other software.
  • tampering is defined hereafter.
  • rogue software There are many ways to introduce rogue software into a computer system. Viruses spread automatically by introducing themselves. Trojan-Horses are usually introduced by tricking users into allowing them to execute (such as by masquerading as a new or well-known computer game or other product).
  • Rogue software once introduced, can steal ID-Data as mentioned hereinbefore. It may monitor keyboard (for example: by recording every key, as the user presses each one, in order to steal a password as it is being typed in), serial-port, mouse, screen, or other devices to steal ID-Data directly from them. It may monitor other software, applications, the operating system, or disks to steal ID- Data from there also. Once stolen, this ID-Data may be stored locally (for example: in memory or on- disk) or transmitted to remote locations (for example: by modem or network) or used immediately to perform illegal operations.
  • eavesdropping will be used to refer to the monitoring of a computer to record ID-Data.
  • a key press recorder could secretly, and unbeknown to the computer user, record all the keys pressed by the user into a hidden systems file.
  • the information recorded could mclude a user's password and other sensitive information which an organisation would obviously wish to protect.
  • rogue software may remove, disable, or compromise existing computer software security features by modifying the memory, disk, or other image of said computer software.
  • Rogue software may also utilise tampering techniques to alter existing computer software in order to steal ID- Data from it, or may attach itself to existmg computer software (as is the case with many con ⁇ uter viruses).
  • tampering will be used to refer to die abovementioned modification of computer software. Tampering may take place either locally (within a users PC) or remotely (for example: at one ofthe points which a computer program passes through as it is being download).
  • counterfeit software can be substituted for legitimate software.
  • the counterfeit will appear real to a computer user, but actuaUy acts to subvert security, such as by stealing ID-Data.
  • Sometimes called "Spoof" programs or Trojan Horses, counterfeit software of this type may invoke the original legitimate software after having stolen ID-Data, so as not to arouse a users suspicion.
  • This invention describes a process which substantially enhances the security of computer software (hereafter refe ⁇ ed to as the improved process) and a method by which to apply said improved process (hereafter referred to as the applicator).
  • the improved process consists of including computer code to automatically detect tampering of said computer software, and computer code to prevent the theft of ID-Data by replacing existmg vulnerable (to rogue software eavesdropping or attack) software or operating system code with secure equivalents which utilise anti-spy techniques (as described later in this document).
  • the improved process also consists of including computer code to prevent de- compilation, reverse-engineering, and disassembly by the inclusion of obfuscating code inserts, and the use of executable encryption.
  • the improved process also consists of includmg code to prevent execution-tracing and debugging by the use of code designed to detect and prevent these operations.
  • the improved process consists of, or also includes, human-recognisable audio-visual components which permit the authenticity of said computer software to be easily verified by the user on each invocation using techniques described later in this document.
  • Fig.1 illustrates the standard operation of a computer system known in the prior art
  • Fig.2 illustrates the known operation of a rogue or "spoof program
  • Fig.3 illustrates apphcation code updated with the prefe ⁇ ed embodiment
  • Fig.4 illustrates the known operation of a rogue eavesdropping program
  • Fig.5 illustrates the interaction of the components ofthe updated application
  • Fig.6 illustrates the general structure of the prefe ⁇ ed embodiment ofthe applicator
  • Fig.7 illustrates a standard layout for a program to be executed on a computer system
  • Fig.8 illustrates the standard layout of an EXE header under the MS-DOS operating system.
  • Fig.9 illustrates a standard layout of an EXE program under MS-DOS
  • Fig.10 illustrates an altered executable form constructed in accordance with the specific embodiment
  • Fig.11 illustrates a first stage of execution ofthe new.exe executable
  • Fig.12 illustrates a second stage of execution ofthe new.exe executable file
  • Fig.13 illustrates a third stage of execution ofthe new.exe executable file.
  • the present invention has general applicability to many different operating systems including Microsoft DOS (Trade Mark), Apple Macintosh Operating Svstem, Unix OTrade Mark) etc.
  • Microsoft DOS Trade Mark
  • Apple Macintosh Operating Svstem Unix OTrade Mark
  • Security is provided by (a) hampering examination of software-code or operatmg system code or parts thereof through the use ofthe encryption or partial encryption of said code, (b) preventing the disassembly of said code mrough the inclusion of dummy instructions and prefixes and additional code to mislead and hamper disassembly (ie: obfuscating inserts), (c) preventing the computerised tracing of the execution of said code (for example: with code debugging tools) through the use of instructions to detect, mislead, and hamper tracing, (d) preventing tampering of said code through the use of scanning to locate alterations, either or both on-disk and in memory either once at the start of execution, or continuously upon certain events, or (e) preventing ID-Data theft through the inclusion of secure input output routines (for example: routines to bypass the standard operating system keyboard calls and use custom-written higher-security routines as
  • Fig.1 there is illustrated the standard scenario for "running" a given executable program 16, under the control of a computer operating system 17 on a computer IS.
  • die executable program 16 is subjected to modification, as will be described hereinafter, to ensure its integrity and improve its security.
  • Aspect 1 Preventing eavesdropping.
  • replacement routines may communicate directly with the hardware ofthe computer (for example, they may communicate with the keyboard circuitry instead of using the system-supplied (and hence possibly insecure) application interface keyboard-entry function-calls.) while disabling system interrupts which would permit rogue software to eavesdrop.
  • Said replacement routines are coded to store ID-Data retrieved in a secure manner. ID-Data is not stored in full in plaintext (ie: unencrypted) in system or apphcation buffers.
  • Aspect 2 Preventing disassembly and examination. As hereinbefore described, it is desirable to hamper disassembly (or de-compilation or reverse engineering) to protect software against eavesdroppmg and tampering, and to hinder examination of said software which might lead to secret security problems or mistakes being disclosed.
  • Obfuscating inserts can successfully prevent automatic disassembly.
  • Obfuscation is achieved by foUowing unconditional jump instructions (for example, Intel IMP or CLC/JNC combmation or CALL (without a retum expected) or any flow-of-control altering instruction which is known not to return to the usual place) with one or more dummy op-code bytes which wiU cause subsequent op ⁇ codes to be erroneously disassembled (for example, the Intel OxEA prefix wiU cause disassembly of the subsequent 4 op-codes to be inconect, displaying them as the offset to the JMP instruction indicated by the OxEA prefix instead ofthe instructions they actuaUy represent).
  • unconditional jump instructions for example, Intel IMP or CLC/JNC combmation or CALL (without a retum expected) or any flow-of-control altering instruction which is known not to return to the usual place
  • wiU cause subsequent op ⁇ codes to be
  • Dummy instructions may also be mcluded to hamper disassembly by deliberately misleading a disassembler into believing a particular flow of control wiU occur, when in fact it wiU not.
  • Flow of control can be designed to occur based upon CPU flag values determined from instructions executed a long time ago. Together with tracing prevention, this makes manual disassembly nearly impossible.
  • the majority ofthe executable portions ofthe software can be encrypted for extemal storage.
  • the decryption taking place in-memory after the software is loaded from extemal sources, under the control of a decryption 'header" which prevents its own tampering and disassembly etc. This makes manual and automatic disassembly nearly impossible, since the decryption should be designed to fail if tampering or tracing is detected.
  • the software can scan the memory image of itself one or more times, or continuously, to ensure that unexpected alterations do not occur.
  • Certain modifications to the extemal copy of software are reflected in subtle changes to the environment in which the modified software will be executed (for example: the size ofthe code, if altered, will be reflected in the initial code-size value supplied to the executing program being inco ⁇ ect ). Additionally, certain modification to the operatmg system and environment of said software can also be monitored (for example: certain interrupt vector table pointers in Intel-processor appUcations) to detect unexpected changes by rogue software. These changes can also be detected to prevent tampering.
  • the five aspects described herein may be combined to provide substantiaUy stronger security than any aspect taken on its own.
  • the precalculated check- data as derived during tamper-detection described hereinbefore may actuaUy be one part ofthe decryption-key which is required to successfuUy decrypt the remaining executable software.
  • prevention-of-tracing and environment characteristics are additional portions of said decryption-key, it makes tiie determination of said decryption-key by any person or computer program other than tiie secure original an extremely difficult, if not impossible, task.
  • Standard Intel x86 interrupts 1 and 3 are used by debuggers to facilitate code tracing. By utilising these interrupts (which are not normally used by normal applications) in security-enhanced software, it hampers debugging, since buih-in debugging functions are now not automatically available.
  • Disabling the keyboard wiU hamper debuggers, since tracing instructions are usually issued from the keyboard. Similarly, disabling other places from where tracing instructions are usuaUy issued (eg: serial ports, printer ports, and mouse) or displayed (eg: screen) wiU also hamper tracing.
  • tracing instructions are usuaUy issued (eg: serial ports, printer ports, and mouse) or displayed (eg: screen) wiU also hamper tracing.
  • System interrupts can be re-vectored for use witiiin tiie secure software to perform tasks not usuaUy performed by those interrupts. Debuggers usually rely upon system interrupts also, so to do this would usuaUy disable or destroy a debugger being used to trace the software. Disabling interrupts and performing timing-sensitive instructions between them will further hamper debugging.
  • tracing software instructions are usuaUy executed one-at-a-time in order for the user to understand tiieir operation. Many system interrupts must occur regularly (eg: timer and memory re-fresh operations), so debuggers usuaUy do not disable interrupts even when they encounter an interrupt-disabling instruction. If timers and the like are re-vectored in two separate stages, any timer (etc) interrupt occurring mbetween tiie two stages wiU fail, and usuaUy crash the computer.
  • interrupts can be disabled or enabled using obscure means (with flag-altering instructions for example) to hamper tracing.
  • the program stack is usually used by the debugger either during the tracing operations or at other times. This is easily detected, and by using the area ofthe stack which will be destroyed by unexpected stack-use for code or critical data, software can be designed to self- destruct in this situation.
  • Scanning the command environment and the execution instruction can detect the execution of software by unusual means. Searching for "DEBUG" in tiie command line, or scanning memory for known debuggers for example wiU detect tracing. Additionally, by detecting which operating system process initiated the load ofthe software, unexpected processes (eg: debuggers) can be detected.
  • Monitoring system buffers eg: the keyboard memory buffer
  • hardware eg: the keyboard circuity and intemal buffers
  • debuggers which usuaUy rely in part on system functions in order to operate.
  • Code checksums and operating-system checks can be designed to detect debug-breakpoint instruction inserts or other modifications. Using the result ofthe checksum for some obscure purpose (eg decryption, or (much later) control-flow changes) will further hamper tracmg
  • Aspect 5 Ensuring authenticity.
  • a method of providing for a secure entry of ID-Data m a computer system compnsmg activating a visual display or animation and/or audio feedback (hereinafter called an audio/visual component) as part of said secure entry of ID-Data so as to hamper emulation of said secure entry process
  • tiie animation m cludes feedback portions as part ofthe ID-Data entry process
  • the animation is repeatable and vaned m accordance with the mformation entered
  • the animation preferably compnses 2 5D or 3D animation and mcludes animation of any ID-Data mput
  • the animation is designed to tax the computer resources utilised and thereby makmg any forgery thereof more difficult
  • the user interface for the acquiring of ID- Data is secured whereby the duplication ofthe interface is rendered mathematically complex such that cipher-code breakmg techniques are required to produce a counterfeit look-ahke interface
  • the authentication interface ie ID-Data entry screen - for example a logon screen or a screen for ente ⁇ ng credit card details
  • the application program allows for a higher degree of secu ⁇ ty and authenticity even m insecure environments such as the Intemet or home software applications
  • a rogue's "spoof program 22 is inserted between application software 16 and the user 23
  • the apphcation 16 normaUy has a portion 24 devoted to ID-Data entry and ve ⁇ fication or the entry of commercially sensitive mformation (including passwords etc) to the application m addition to the apphcation code 25
  • the spoof program 22 is designed to exactly reflect the presented user interface of ID-Data entry code 24 to the user
  • the user 23 is then fooled mto utilising the masquerading spoof program 22 as if it was the apphcation 16
  • the user can be tricked mto divulging secret mformation to the spoof program 22
  • An example may mclude a classic "login spoof wherein the spoof program 22 prints the login prompt (ie: ID-Data entry) message on the screen and the user mistakes the login prompt for a legitimate one,
  • rogue attack 40 there is iUustrated a relatively new form of rogue attack 40.
  • This form of attack proceeds similarity to the spoof attack of Fig.2, with tiie foUowing difference.
  • a rogue program 41 is inserted which secretly eavesdrops on ID-Data entry code 24, or on appUcation code 25, or on operating system 17, or on hardware 18 or elsewhere in order to steal sensitive information directly from tiie legitimate appUcation. Smce the legitimate appUcation is stiU actuaUy executing, the users suspicion is not aroused, since rogue program 41 is generaUy invisible to the user 23.
  • executable program 16 may have been tampered with (as hereinbefore described) to reduce its security, aUeviating the necessity for tiie presence of rogue program 41.
  • FIG.5 there is iUustrated in detail the structure of an appUcation 50 constructed in accordance with the preferred embodiment running on computer hardware 18.
  • Fig.5 is similar to Fig.4 with tiie important difference that user 23 now communicates directly with secure drivers 51 which are part ofthe secure ID-Data entry program code 31 which is utilised by the security-enhanced (eg: tamper protected) application code 52. It can be seen that the user 23 no longer communicates with the operatmg system 17 or the unprotected computer hardware 18, thus the rogue program 41 can no longer eavesdrop on ID-Data.
  • secure drivers 51 which are part ofthe secure ID-Data entry program code 31 which is utilised by the security-enhanced (eg: tamper protected) application code 52.
  • Fig.3 there is iUustrated, in more general terms than Fig.5, the structure of an apphcation 30 constructed in accordance with the prefe ⁇ ed embodiment wherein secure ID-Data entry program code 31 is provided which is extremely difficult to replicate, eavesdrop upon or subvert.
  • the secured ID- Data entry program code 31 can be created, utilising a number of different techniques.
  • the executable portion ofthe secured ID-Data entry code can be protected agamst tracing, disassembly, tampering, viewing, reverse engineering, keyboard entry theft, eavesdropping, hot patching and other attacks by transforming the secured ID-Data entry program code 31 from its normal executable form 16 (Fig.2) to a corresponding secured form of executable (as hereinbefore described - refer aspects 1 to 4).
  • These techniques are preferably appUed to the appUcation code 16 in general or less preferably SpecificaUy limited to the ID-Data entry portions 24 tiiereof.
  • secure ID-Data entry program code 31 is itself created.
  • This code 31 preferably comprises a complex graphical user interface series of screens and animation designed to make duplication by a rogue thereof extremely difficult.
  • the complex user interface should include facilities to disable any frame buffer recording devices, the disablement occurring before each frame is displayed. Also, where a multi ⁇ tasking operating system is in use, or where context switching is enabled, switching out ofthe interface screen is preferably disabled or ID-Data entry procedures encrypted or terminated when the interface screen is swapped out.
  • the images presented which form part ofthe ID-Data entry screens comprise complex 3D animation sequences having a high degree of complexity and extensive use of screen colours and screen resolution in addition to visual design so as to make copying tiiereof extremely difficult.
  • the complex computer graphics can be created utilising standard techniques.
  • Suitable 3D animation can mclude the introduction of shadows, the lighting of pseudo-3D animated objects, transparent or translucent objects, shiny, reflective, or mi ⁇ ored objects, gravitational effects in animated objects, single-image-random-dot- stereogram bitmaps or backdrops, translucent threads, effects, such as diffraction pattems, screen masks, backdrops, colour palette "animation", complex animated objects resistant to simple hidden- surface removal techniques known to those skilled in the art and directed to hindering duplication
  • Thwarting attempts at compression ofthe ID-Data entry screens This can be achieved by having animation which has low visual entropy and having many graphical elements which are altered from frame to frame in a manner which is highly discernible to the human viewer.
  • animation which has low visual entropy and having many graphical elements which are altered from frame to frame in a manner which is highly discernible to the human viewer.
  • complex 3D computer imagery having low entropy or redundancy wiU require large amounts of storage space for a rogue attempt at duplication based on recording the screen output and therefore be more readily discernible to the user should this form of attack be mounted.
  • the animation is further preferably designed to thwart a successful replay attack which is based on providing only a subset (limited number of frames) ofthe screen animation to a viewer. This can be achieved, for example, by the inclusion of several animated spheres which "bounce" around the screen and change colours in a manner that is recognisable to the viewing user but which is not readily repeatable.
  • a replay of only a subset of tiie screen animations to the viewer wiU be highly evident in this case when, upon looping, the user is alerted to a problem when the animation "skips" or "jumps" and does not operate in a previously smooth manner. This makes it difficult for a rogue spoof program to copy the animation without including aU parts of it.
  • the graphics presented can be customised to the input data entered.
  • the information entered by a user can be rendered and or animated by the secure ID-Data entry program code 31 (Fig.3).
  • the animation can be created letter by letter.
  • each letter could be rendered differently depending on those characters previously typed.
  • tiie letter "I” might appear as a large "barbers-pole” which spirals and changes colour, speed, size, and or position and is slightly transparent, thereby aUowing the animated seen which is a backdrop to the character to be discerned through the character itself.
  • the letter "I” would only appear as the specific animated barbers pole that is does if tiie previous letters entered were "C", "H", and "R” respectively.
  • a similarly effective animation technique is to produce only one graphical object after entry of each portion of ID-Data, sudi as a computer-generated human's face, but have the features of said face be determined by a hash or cryptographic function based upon the users input. For example, after entry ofthe ID-Data "CHRIS" (in tiiis example, the individual characters may not, themselves, be based on the abovementioned generation procedure) , a teenage girl's face with long blonde hair and blue eyes may be displayed. If the "S” was instead a "D", the face would be entirely different.
  • the ID-Data used for producing an object for display should not be ID-Data which is designed not to appear on-screen when entered (eg: a password), since the display of a conesponding object would give a rogue information on which to base guesses ofthe secret ID-Data.
  • the rogue programming the co ⁇ esponding spoof program shall have to crack the cryptographic scheme in order to get the selection of character animation correct for any generalised attack.
  • a rogue will have to determine the algorithm for producing the face, since human beings are adept at recognising faces, and will immediately notice if the face displayed on the screen is incorrect.
  • Such a technique allows for a mathematically secure, visual method to guarantee the authenticity ofthe software which generates the screen feedback.
  • the user of the software is instructed to note their own particular animation sequence and to immediately discontinuing utilisation ofthe appUcation 30 should that sequence ever change.
  • the user may also be instructed to contact a trusted person, such as the supplier or operator of tiie appUcation to confirm tiiat tiie animation sequence they witness is the authentic sequence intended by said supplier.
  • the particular animation presented for a particular appUcation 30 can be further customised for each appUcation so as to be distinct (such as by the inco ⁇ oration ofthe applications name as part ofthe animated image).
  • animated scene timing can be utilised, providing anti-looping and frame removal detection is stiU catered for.
  • the animated scene timing aUows for a user to detect unexpected i ⁇ egularities in a frequently presented animated interface.
  • some deUberate regularity such as the rhythmic convergence of some parts ofthe animation in one particular spot
  • a rogue programming a spoof program shall also have to duphcate the preferably complex timing events necessary to accomplish tins convergence.
  • the regular nature ofthe scene timing should be high enough so that tiie user expects to see certain events and thereby making it difficult for a rogue spoof program to copy the animation without including aU parts of it.
  • aU ID-Data is immediately encrypted which makes recovery ofthe ID-Data by a rogue through analysis ofthe computer program memory difficult.
  • public- key cryptographic methods eg: Elliptic-curve, RSA or Diffie-Hellman cryptography
  • ti e cryptographic code to decrypt any sensitive mformation should rt be stolen in its encrypted form. Prohibiting all or most interrupts when data is to be entered and encrypting or hashing the sensitive information immediately so that it is only stored partially, or in an encrypted form, before re-enabling interrupts is one example of achieving this objective.
  • analysis of a user's personal characteristics can be mcluded as part of the interface. This can include attempts at recognition of a user's typing style (duration of keypresses, delays between subsequent keys, choice of redundant keys, mouse usage characteristics, etc) or by additional authentication techniques, including smartcards, biometric inputs such as finger prints detectors etc.
  • the graphical animation routines can be "watermarked” by the secure ID-Data entry program code in that "hidden” mformation may be inco ⁇ orated into the scene (for example "salted- checksums") to aUow careful analysis ofthe ou ⁇ ut of secure ID-Data entry program code 31 to distinguish between original graphics animation and counterfeit animation.
  • the hidden information may be encoded in the least-significant bit of pixel data at selected locations ofthe animation.
  • the user determinable sequence of animation can also extend to tiie provided audio animation .
  • audio and other feedback techniques including music and speaking tones can be played in response to particular key stroke combinations.
  • the security ofthe appUcation 30 can, once again, be substantiaUy increased.
  • the change in voice intonation will be readily "learnt" by a user and thereby further inhibit a rogue's ability to duplicate the same sequence of sounds or voices .
  • the encoding ofthe voice system should be in an encrypted form.
  • a notification message is preferably sent to a prosecuting body or the like where the appUcation 30 is currently, or later becomes connected to a network such as the Intemet, or by other means (eg: via Modem or by including coded information in pubUc or other files).
  • a secure means of activation can be inco ⁇ orated into the chart appUcation 30.
  • the host and cUent intercommunication can issue chaUenge and response code authentication and verification utilising cryptographic systems such as public-key encryption and/or other standard means of overcoming data replay attacks and other threats designed to trick the secure client appUcation 30 into activation.
  • the standard executable 16 normally comprises a header section 71, a code section 72, and a data section 73.
  • the header section 71 normaUy stores a standard set of mformation required by the computer operatmg system 17 (Fig.l) for running ofthe executable 16. This can include relocation data, code size etc.
  • the code section 72 is normally provided for storing the "algorithmic" portion ofthe code.
  • the data section 73 normally is utilised to store the data, such as constants, or overlays 92 utilised by the code section 72.
  • Fig.6 the prefe ⁇ ed embodiment of an applicator program 60 is shown which takes as its input the executable program 16 and performs an obfuscating step 61, a ciphering step 62 and an anti-key press and authentication step 63 (described hereafter) which perform various transformations on the executable program 16 to produce a new executable program 30.
  • the obfuscating step 61 modifies the header 71 (Fig. 7) ofthe executable 16 in addition to inserting loading code which wiU be described hereinafter.
  • the cipher step 62 encrypts tiie existing executable 16 and calculates check data (eg: a checksum) for the encrypted executable.
  • the anti-key press and authentication step 63 replaces various insecure system caUs wrth safe equivalent code and preferably inserts code to graphicaUy represent the integrity of said executable program.
  • the newly formed executable 30 (new.exe) can be then stored on disk and the appUcator program 60 completed, tiie new executable 30 replacing tiie old executable program 16.
  • the replaced executable 30 executes the obfuscating code, previously inserted by appUcator 60.
  • the obfuscating code initiaUy decrypts the executable program and vaUdates the stored check-data before re-executing the decrypted executable.
  • FIG.9 there is shown the structure 90 of an executable ".EXE" program in
  • MS-DOS as normally stored on disk.
  • the structure 90 mcludes a header 71, otherwise known in MS-DOS terminology as the program segment prefix (PSP).
  • PSP program segment prefix
  • This is normally foUowed by a relocation table 91 which contains a Ust of pointers to variables within a code area 72 which must be updated wrth an offset address when the program is loaded into a particular area of memory.
  • the operation ofthe relocation table is weU known to those skiUed in the art of systems prograrnming.
  • the next portion of structure 90 is tiie code area 72 which contains the machine instructions for operation on tiie x86 microprocessor.
  • This is foUowed by a program data area 73 which contams the data for code area 72.
  • overlays 92 which contain code which can be utihsed in a known manner.
  • Fig.8 there is shown the structure of EXE file header 71 in more detail.
  • the table of Fig.8 being reproduced from page 750 ofthe above mentioned Tischer reference.
  • the header 71 mcludes a number of fields including, for example, a pointer 81 to the start of the code 72 (Fig. 7) and a pointer 82 to the relocation table 91 (Fig.9).
  • the appUcator program 60 (Fig. 6) proceeds by means ofthe foUowing steps:
  • the executable program 16 is opened for reading and a determination made of its size.
  • the relocation table 91 is then read into the memory of tiie appUcator program 60.
  • tiie relocation table 91 consists of a series ofthe pointers to positions within code segment 72 which are required to be updated when loading the program.exe file into memory for execution.
  • the relocation table is sorted 93 by address before being written out to the new.exe executable file at position 102.
  • the relocation table 91 consists of a series of pointers into code area
  • code portion 95 Upon finding code portion 94, the code portion 95, also denoted part A is encrypted and copied across to form new code portion 103. Code portion 94 is then encrypted and copied to an area 105 of new.exe 30. The netsafe 1 code 104 is then inserted by appUcator 60. Code portion 96, also denoted part C is encrypted and copied across to form code portion 106. Data portion 73 and overlay portion 92 are copied into new.exe 30 as shown. A second portion of obfuscating code, denoted "netsafe 2" 107, the contents of which will be described hereinafter, is then inserted after overlays 92 and before code portion part B 105.
  • netsafe 2 A second portion of obfuscating code
  • header 101 is then updated to reflect the altered layout ofnew.exe executable 30. AdditionaUy, the initial address 109 of execution stored in header 101 is altered to be the start of netsafe 1 portion 104.
  • code portions 103, 106 and 105 are subjected to encryption or encipherment in accordance wrth step 62 of Fig.6.
  • the encryption scheme utilised can be subjected to substantial variation.
  • the DES standard encryption scheme was utilised This scheme reUes on a fifty-six bit key for encryption and decryption and is weU known in tiie art.
  • a number of different methods can be utilised to store the key.
  • the prefe ⁇ ed method is to spread portions ofthe key to different positions within the executable 30.
  • bits ofthe key can be stored within the netsafe 1 code 104 and netsafe 2 code 107.
  • bits ofthe key can be stored within header portion 101.
  • bits ofthe key can be stored in tiie condition codes which are a consequence of execution of various instructions within netsafe 1 area 104 and netsafe 2 area 107 and/or tiie operating system 17 (Fig.5), with the overaU requirement being that the key can be later extracted using a predetermmed algorithm.
  • the next step is to patch tiie address ofthe start of code area 72 and netsafe 2 code area 107 into the required locations within netsafe 1 area 104.
  • the netsafe 1 area is then written to the file containing new.exe executable 30.
  • netsafe 2 area 107 is responsible for loading code portion 105 over tiie top of netsafe 1 area 104. Therefore, it is necessary to write the relevant addresses ofthe start and end of code portion 94 to the required position within netsafe 2 area 107.
  • netsafe 2 area 107 is also responsible for decrypting the encrypted portions of codes 103, 104, 105, 106, and 107 and hence tiie netsafe 2 area 107 must also store this combined code size for later use on decryption .
  • netsafe code areas 104 and 107 contain code to decrypt the encrypted areas ofthe new.exe 30, to repatch code portion 105 back to its original position, and to replace potentiaUy insecure routines or eas ⁇ y spoofed screens normaUy utilised by the apphcation (eg: unsafe keyboard drivers) wrth an altemative safe form of routine.
  • the executable Upon execution of tiie new.exe executable 30, the executable starts at the start of netsafe 1, area 104 (Fig.11), as this address has been previously patched into position 109 (fig.10) of header 101 (Fig.10). The netsafe 1 area 104 then performs the followmg steps (Al) to (AIO):
  • the first step is to disable aU the interrupts apart from those necessary for continued operation ofthe computer device 18 (Fig. 1) (for example, memory refresh cannot be disabled).
  • the disabling of interrupts mcludes the disabling ofthe keyboard interrupt in order to stop amateur "code snoopers" from determinmg the operation ofthe code area 104.
  • interrupt trap addresses are then altered in a two stage process.
  • the first stage resets a first part ofthe SEG:OFF address format and occurs at this point with a second stage occurring at a later time as will be further described herein below.
  • any code snooper will be further confused as said trap addresses wiU initiaUy be garbage.
  • Fig. 11 there is shown the standard format ofthe executable new.exe 30 when executing in memory.
  • an executing program under the MS-DOS system will include a stack 111 and work space 112.
  • a memory allocation (MaUoc) call is then done to set aside an area 113 for the loading in of tiie netsafe 2 code 107 of Fig.10.
  • the disk copy ofnew.exe 30 (having the format shown in Fig.10) is tiien opened by the netsafe 1 code 115 and an encrypted copy of netsafe 2 code 107 (Fig.10) is then loaded in from the disk file, decrypted and stored in memory area 113.
  • the relocatable pointers of he code contained within the netsafe 2 code 113 are then updated to reflect tiie position ofthe executable in memory.
  • the code area netsafe 2, 113 then performs the followmg steps (Bl) to (B4):
  • the netsafe 2 area 113 includes a number of keyboard routines which are preferably stored in an encrypted format. Therefore, the next step is to apply the decryption to any ofthe encrypted areas of netsafe 2 code area 113. After decryption, the netsafe 2 area 113 is checksummed and the result is tested against a prestored checksum to ensure tiie integrity of netsafe 2 area 113. (B3) The disk copy ofthe new.exe is then again read in and checked agamst prestored check data to ensure that it has not been changed. Additionally, an attempt is made to read past the end of file ofthe disk copy ofnew.exe 30 (Fig.10) to ensure that no extension (eg: viral) has occu ⁇ ed.
  • no extension eg: viral
  • keyboard routines 51 wrth the keyboard hardware being inte ⁇ ogated directly by keyboard routines 51 to retum mformation to the calling program.
  • Keyboard routines 51 m clude a copy ofthe co ⁇ ect interrupt vector addresses for each keyboard routine and each time they are called, a check is made ofthe interrupt table to ensure that it has not been altered.
  • keyboard routines 51 protect the keyboard hardware by issuing controller reset or similar commands to flush the keyboard data out ofthe circuitry after said data is retrieved to prevent hardware eavesdroppmg, or routines 51 utilise the protected mechanisms ofthe central processor to protect said hardware from eavesdroppmg.
  • interrupt 21h an MS-DOS standard
  • This interrupt is also revectored to a co ⁇ esponding area of routines 51.
  • the termination code of keyboard routine area 51 restores the correct interrupt pointers in interrupt table 131 to point to the MS-DOS operating system 17, and clears the no-longer-needed program and data from memory before returning to the DOS operatmg system by calling the real interrupt 21.
  • Claims 1,2, and 3 are independent.
  • the invention in claim 1 covers any high security software protecting ID-Data by utihsing anti-spy techniques, and tamper-protecting itself.
  • Claim 2 is for a metiiod of producing high security software, such as, but not Umited to, that in claim 1.
  • Claim 3 is for a new process of graphically representing the authenticity of high security software, such as, but not Umited to, that in claim 1 or produced by claim. 2.
  • Claims 4, 5, 6, 7, 8, and 9 add prefe ⁇ ed components to the high-security enforcing functions of the software in claim 1.
  • Claim 10 adds a tracing-prevention prefe ⁇ ed component to claim. 9
  • counterfeiting i.e.: hampering the possibility that a fake copy of said interface can be successfully presented to a user to fool said user into entering information into the fake interface
  • an interface against malicious (or otherwise) tampering, examination, emulation, and eavesdropping i.e.: hampering the possibility that a fake copy of said interface can be successfully presented to a user to fool said user into entering information into the fake interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention se rapporte à une méthode d'authentification graphique et à un procédé d'amélioration de la sécurité pour logiciel informatique, et à une méthode d'utilisation de l'authentification et de la sécurité. Le procédé assure une protection contre certaines intrusions sur logiciel exécutables par des personnes ou un autre logiciel sur l'ordinateur. On protège ainsi le logiciel contre les intrusions clandestines (surveillance du logiciel, des applications, du système d'exploitation, de disques, du clavier ou d'autres dispositifs visant à enregistrer (dérober) une identification, une authentification ou des données sensibles tels que les mots de passe, des identités d'utilisateurs, des numéros de cartes de crédit et des dates d'expiration, des numéros de compte en banque et des numéros d'identification personnels (PIN), de données de carte à mémoire, des informations biométriques telles que les données liées à une empreinte retiniène ou digitale, ou bien encore des clés de chiffrement). La protection est également assurée contre les tentatives locales et à distance de fraude (modification du logiciel pour éliminer, désactiver ou compromettre des fonctions de sécurité) d'examen (visite du programme exécutable généralement dans le but de porter atteinte à la sécurité du programme), d'observation (suivi pas à pas du fonctionnement d'un programme exécutable), et de perturbation délibérée (substitution de logiciel falsifié pour émuler l'interface du logiciel authentique afin de déjouer la sécurité. Ces tentatives relèvent de la filouterie informatique, qui peut revêtir différentes formes (par exemple Cheveaux de Troie, pirates, virus, programmes résidents, logiel co-resident, systèmes d'exploitation multitransactionnels, programmes écrasant les données en mémoire, programmes espions, dispositifs de capture de mots de passe par manipulation de touches, enregistreurs de macros, programmes de surveillance et autres types de logiciels ou programmes de contournement). Les moyens de protection exécutables comprennent le chiffrement, le masquage, l'anti-intrusion, l'antifraude et l'autovérification, l'autocontrôle de durée de l'exécution et l'authentification audiovisuelle (fonctions à base de mathématiques, de chiffrement et de graphiques permettant à l'utilisateur de reconnaître immédiatement l'authenticité et l'intégrité du logiciel). La figure décrit les nombreux éléments proposés et leur interaction.
PCT/AU1996/000440 1995-07-14 1996-07-12 Systeme d'authentification, de protection et de securite pour logiciel informatique WO1997004394A1 (fr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
AUPN4186A AUPN418695A0 (en) 1995-07-14 1995-07-14 Computer security system
AUPN4186 1995-07-14
AUPN9866 1996-05-15
AUPN9866A AUPN986696A0 (en) 1996-05-15 1996-05-15 Interface authentication system

Publications (1)

Publication Number Publication Date
WO1997004394A1 true WO1997004394A1 (fr) 1997-02-06

Family

ID=25644994

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU1996/000440 WO1997004394A1 (fr) 1995-07-14 1996-07-12 Systeme d'authentification, de protection et de securite pour logiciel informatique

Country Status (1)

Country Link
WO (1) WO1997004394A1 (fr)

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999001815A1 (fr) * 1997-06-09 1999-01-14 Intertrust, Incorporated Techniques d'obscurcissement pour augmenter la securite de logiciels
EP0949574A2 (fr) * 1998-03-25 1999-10-13 Arachnid, Incorporated Structures de segments multimedia personnalisées
WO1999056196A1 (fr) * 1998-04-30 1999-11-04 Bindview Development Corporation Securite informatique
EP1000482A1 (fr) * 1997-08-06 2000-05-17 Intel Corporation Ensemble de cellules fournissant une memoire secrete non permanente au moyen d'un cycle de mutation
EP1010291A1 (fr) * 1997-09-05 2000-06-21 Intel Corporation Lecteur inviolable pour contenu crypte
EP1018236A1 (fr) * 1997-09-05 2000-07-12 Intel Corporation Dispositif a module inviolable et procedes
EP1020049A1 (fr) * 1997-09-05 2000-07-19 Intel Corporation Procedes et appareil garantissant l'inviolabilite
WO2000065444A1 (fr) * 1999-04-28 2000-11-02 Thomas Probert Techniques de codage d'information en code machine
WO2000065442A1 (fr) * 1999-04-23 2000-11-02 Giesecke & Devrient Gmbh Protection d'une unite centrale d'ordinateur contre des manipulations exterieures
WO2000072112A2 (fr) * 1999-05-12 2000-11-30 Fraunhofer Crcg, Inc. Dissimulation d'un code executable
WO2000077597A1 (fr) * 1999-06-09 2000-12-21 Cloakware Corporation Codage de logiciel infalsifiable
US6237137B1 (en) 1997-10-15 2001-05-22 Dell Usa, L.P. Method and system for preventing unauthorized access to a computer program
US6256737B1 (en) 1999-03-09 2001-07-03 Bionetrix Systems Corporation System, method and computer program product for allowing access to enterprise resources using biometric devices
US6334189B1 (en) 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
WO2001099034A2 (fr) * 2000-06-21 2001-12-27 Aladdin Knowledge Systems; Ltd. Systeme pour l'obscurcissement de code informatique lors du desassemblage
US6480959B1 (en) 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US6643775B1 (en) 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
GB2391341A (en) * 2002-07-31 2004-02-04 Hewlett Packard Co A method of validating the rights of a user to participate in an interactive computer environment
US6728219B1 (en) 1999-11-15 2004-04-27 Networks Associates Technology, Inc. Graphical user interface system and method for visually gauging network performance
US6779114B1 (en) 1999-08-19 2004-08-17 Cloakware Corporation Tamper resistant software-control flow encoding
US7140005B2 (en) * 1998-12-21 2006-11-21 Intel Corporation Method and apparatus to test an instruction sequence
US7240363B1 (en) * 1999-10-06 2007-07-03 Ellingson Robert E System and method for thwarting identity theft and other identity misrepresentations
US7260845B2 (en) * 2001-01-09 2007-08-21 Gabriel Kedma Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems
US7305562B1 (en) 1999-03-09 2007-12-04 Citibank, N.A. System, method and computer program product for an authentication management infrastructure
US7383569B1 (en) 1998-03-02 2008-06-03 Computer Associates Think, Inc. Method and agent for the protection against the unauthorized use of computer resources
WO2007147495A3 (fr) * 2006-06-21 2008-08-28 Wibu Systems Ag Procédé et système pour la détection d'intrusion
US7421586B2 (en) 1999-05-12 2008-09-02 Fraunhofer Gesselschaft Protecting mobile code against malicious hosts
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7441263B1 (en) 2000-03-23 2008-10-21 Citibank, N.A. System, method and computer program product for providing unified authentication services for online applications
US7770016B2 (en) 1999-07-29 2010-08-03 Intertrust Technologies Corporation Systems and methods for watermarking software and other media
US7877613B2 (en) 2002-09-04 2011-01-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Protecting mobile code against malicious hosts
US7950048B2 (en) * 2000-03-29 2011-05-24 Microsoft Corporation Methods and arrangements for limiting access to computer controlled functions and devices
US8016189B2 (en) 1996-12-04 2011-09-13 Otomaku Properties Ltd., L.L.C. Electronic transaction systems and methods therefor
US8136148B1 (en) 2008-04-09 2012-03-13 Bank Of America Corporation Reusable authentication experience tool
FR2986124A1 (fr) * 2012-01-25 2013-07-26 Ercom Engineering Reseaux Comm Procede d'authentification d'un dispositif comprenant un processeur et une carte a puce par generation d'un motif
EP3185194A1 (fr) * 2015-12-24 2017-06-28 Gemalto Sa Procédé et système pour améliorer la sécurité d'une transaction
US9843447B1 (en) 1999-09-09 2017-12-12 Secure Axcess Llc Authenticating electronic content
US10237073B2 (en) 2015-01-19 2019-03-19 InAuth, Inc. Systems and methods for trusted path secure communication
CN110162937A (zh) * 2018-02-09 2019-08-23 黄冈职业技术学院 基于网络通讯实现计算机软件保护的方法
CN113343234A (zh) * 2021-06-10 2021-09-03 支付宝(杭州)信息技术有限公司 对代码安全性进行可信检查的方法及装置
US11880832B2 (en) 2015-12-24 2024-01-23 Thales Dis France Sas Method and system for enhancing the security of a transaction

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2600184A1 (fr) * 1986-06-17 1987-12-18 Vo Quang Tuyen Procede de protection d'un logiciel informatique et cle electronique pour la mise en oeuvre de ce procede
WO1988003287A1 (fr) * 1986-10-24 1988-05-05 Harcom Security Systems Corporation Systeme de securite pour ordinateur
EP0326700A2 (fr) * 1988-02-01 1989-08-09 International Business Machines Corporation Mécanisme de voie de sécurité pour des environnements de terminal virtuel
US4864494A (en) * 1986-03-21 1989-09-05 Computerized Data Ssytems For Mfg., Inc. Software usage authorization system with key for decrypting/re-encrypting/re-transmitting moving target security codes from protected software
WO1992014209A1 (fr) * 1991-02-05 1992-08-20 Toven Technologies Inc. Appareil de chiffrement pour un ordinateur
EP0568438A1 (fr) * 1992-04-27 1993-11-03 Gemplus Card International Procédé de sécurisation de programmes exécutables contre l'utilisation par une personne non habilitée et système sécurisé pour la mise en oeuvre du procédé

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864494A (en) * 1986-03-21 1989-09-05 Computerized Data Ssytems For Mfg., Inc. Software usage authorization system with key for decrypting/re-encrypting/re-transmitting moving target security codes from protected software
FR2600184A1 (fr) * 1986-06-17 1987-12-18 Vo Quang Tuyen Procede de protection d'un logiciel informatique et cle electronique pour la mise en oeuvre de ce procede
WO1988003287A1 (fr) * 1986-10-24 1988-05-05 Harcom Security Systems Corporation Systeme de securite pour ordinateur
EP0326700A2 (fr) * 1988-02-01 1989-08-09 International Business Machines Corporation Mécanisme de voie de sécurité pour des environnements de terminal virtuel
WO1992014209A1 (fr) * 1991-02-05 1992-08-20 Toven Technologies Inc. Appareil de chiffrement pour un ordinateur
EP0568438A1 (fr) * 1992-04-27 1993-11-03 Gemplus Card International Procédé de sécurisation de programmes exécutables contre l'utilisation par une personne non habilitée et système sécurisé pour la mise en oeuvre du procédé

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE COMPUTER, Vol. 28, No. 1, January 1995, LOMAS et al., "To Whom am I Speaking", pp. 50-54. *
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, Vol. 21, No. 3, March 1995, ILGUN et al., "State Transition Analysis: A Rule-Based Intrusion Detection Approach", pp. 181-199. *

Cited By (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225089B2 (en) 1996-12-04 2012-07-17 Otomaku Properties Ltd., L.L.C. Electronic transaction systems utilizing a PEAD and a private key
US8016189B2 (en) 1996-12-04 2011-09-13 Otomaku Properties Ltd., L.L.C. Electronic transaction systems and methods therefor
US6668325B1 (en) 1997-06-09 2003-12-23 Intertrust Technologies Obfuscation techniques for enhancing software security
WO1999001815A1 (fr) * 1997-06-09 1999-01-14 Intertrust, Incorporated Techniques d'obscurcissement pour augmenter la securite de logiciels
EP1000482A4 (fr) * 1997-08-06 2001-11-14 Intel Corp Ensemble de cellules fournissant une memoire secrete non permanente au moyen d'un cycle de mutation
EP1000482A1 (fr) * 1997-08-06 2000-05-17 Intel Corporation Ensemble de cellules fournissant une memoire secrete non permanente au moyen d'un cycle de mutation
EP2131524A2 (fr) 1997-09-05 2009-12-09 Intel Corporation Procédés inviolables et appareil
EP1020049A1 (fr) * 1997-09-05 2000-07-19 Intel Corporation Procedes et appareil garantissant l'inviolabilite
EP1020049A4 (fr) * 1997-09-05 2000-10-11 Intel Corp Procedes et appareil garantissant l'inviolabilite
EP1018236A4 (fr) * 1997-09-05 2000-10-11 Intel Corp Dispositif a module inviolable et procedes
JP2001516908A (ja) * 1997-09-05 2001-10-02 インテル・コーポレーション 不正な侵入を防ぐ方法および装置
EP1018236A1 (fr) * 1997-09-05 2000-07-12 Intel Corporation Dispositif a module inviolable et procedes
EP1010291A1 (fr) * 1997-09-05 2000-06-21 Intel Corporation Lecteur inviolable pour contenu crypte
EP2131524A3 (fr) * 1997-09-05 2010-02-17 Intel Corporation Procédés inviolables et appareil
EP1010291A4 (fr) * 1997-09-05 2002-01-02 Intel Corp Lecteur inviolable pour contenu crypte
US6237137B1 (en) 1997-10-15 2001-05-22 Dell Usa, L.P. Method and system for preventing unauthorized access to a computer program
DE19847677C2 (de) * 1997-10-15 2003-08-14 Dell Usa Lp Computer, Verfahren und Gerät zum Verhindern eines unautorisierten Zugriffs auf ein Computerprogramm
US6334189B1 (en) 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US6480959B1 (en) 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US6643775B1 (en) 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
US7383569B1 (en) 1998-03-02 2008-06-03 Computer Associates Think, Inc. Method and agent for the protection against the unauthorized use of computer resources
US6191780B1 (en) 1998-03-25 2001-02-20 Arachnid, Inc. Customizable multimedia segment structures
EP0949574A3 (fr) * 1998-03-25 2000-03-01 Arachnid, Incorporated Structures de segments multimedia personnalisées
EP0949574A2 (fr) * 1998-03-25 1999-10-13 Arachnid, Incorporated Structures de segments multimedia personnalisées
WO1999056196A1 (fr) * 1998-04-30 1999-11-04 Bindview Development Corporation Securite informatique
US7140005B2 (en) * 1998-12-21 2006-11-21 Intel Corporation Method and apparatus to test an instruction sequence
US6256737B1 (en) 1999-03-09 2001-07-03 Bionetrix Systems Corporation System, method and computer program product for allowing access to enterprise resources using biometric devices
US9398013B2 (en) 1999-03-09 2016-07-19 Citibank, N.A. System, method and computer program product for an authentication management infrastructure
US7305562B1 (en) 1999-03-09 2007-12-04 Citibank, N.A. System, method and computer program product for an authentication management infrastructure
US6959391B1 (en) 1999-04-23 2005-10-25 Giesecke & Devrient Gmbh Protection of the core part of computer against external manipulation
WO2000065442A1 (fr) * 1999-04-23 2000-11-02 Giesecke & Devrient Gmbh Protection d'une unite centrale d'ordinateur contre des manipulations exterieures
US6782478B1 (en) 1999-04-28 2004-08-24 Thomas Probert Techniques for encoding information in computer code
WO2000065444A1 (fr) * 1999-04-28 2000-11-02 Thomas Probert Techniques de codage d'information en code machine
WO2000072112A3 (fr) * 1999-05-12 2001-04-05 Fraunhofer Crcg Inc Dissimulation d'un code executable
US7421586B2 (en) 1999-05-12 2008-09-02 Fraunhofer Gesselschaft Protecting mobile code against malicious hosts
WO2000072112A2 (fr) * 1999-05-12 2000-11-30 Fraunhofer Crcg, Inc. Dissimulation d'un code executable
WO2000077597A1 (fr) * 1999-06-09 2000-12-21 Cloakware Corporation Codage de logiciel infalsifiable
US6842862B2 (en) 1999-06-09 2005-01-11 Cloakware Corporation Tamper resistant software encoding
US6594761B1 (en) 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
US7770016B2 (en) 1999-07-29 2010-08-03 Intertrust Technologies Corporation Systems and methods for watermarking software and other media
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6779114B1 (en) 1999-08-19 2004-08-17 Cloakware Corporation Tamper resistant software-control flow encoding
US10355863B2 (en) 1999-09-09 2019-07-16 Secure Axcess Llc System and method for authenticating electronic content
US9843447B1 (en) 1999-09-09 2017-12-12 Secure Axcess Llc Authenticating electronic content
US7240363B1 (en) * 1999-10-06 2007-07-03 Ellingson Robert E System and method for thwarting identity theft and other identity misrepresentations
US6810017B1 (en) 1999-11-15 2004-10-26 Networks Associates Technology Inc. Graphical user interface system and method for organized network analysis
US6728219B1 (en) 1999-11-15 2004-04-27 Networks Associates Technology, Inc. Graphical user interface system and method for visually gauging network performance
US9009798B2 (en) 2000-03-23 2015-04-14 Citibank, N.A. System, method and computer program product for providing unified authentication services for online applications
US9438633B1 (en) 2000-03-23 2016-09-06 Citibank, N.A. System, method and computer program product for providing unified authentication services for online applications
US7441263B1 (en) 2000-03-23 2008-10-21 Citibank, N.A. System, method and computer program product for providing unified authentication services for online applications
US7950048B2 (en) * 2000-03-29 2011-05-24 Microsoft Corporation Methods and arrangements for limiting access to computer controlled functions and devices
WO2001099034A3 (fr) * 2000-06-21 2003-05-08 Aladdin Knowledge Systems Systeme pour l'obscurcissement de code informatique lors du desassemblage
WO2001099034A2 (fr) * 2000-06-21 2001-12-27 Aladdin Knowledge Systems; Ltd. Systeme pour l'obscurcissement de code informatique lors du desassemblage
US7065652B1 (en) 2000-06-21 2006-06-20 Aladdin Knowledge Systems, Ltd. System for obfuscating computer code upon disassembly
USRE43624E1 (en) * 2001-01-09 2012-08-28 Xiloprem Tre Limited Liability Company Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems
US7260845B2 (en) * 2001-01-09 2007-08-21 Gabriel Kedma Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems
GB2392276A (en) * 2002-07-31 2004-02-25 Hewlett Packard Development Co A method of validating the rights of a user to participate in an interactive computer environment
GB2392276B (en) * 2002-07-31 2004-10-27 Hewlett Packard Development Co A method of validating performance of a participant in an interactive computing environment
GB2391341A (en) * 2002-07-31 2004-02-04 Hewlett Packard Co A method of validating the rights of a user to participate in an interactive computer environment
US7877613B2 (en) 2002-09-04 2011-01-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Protecting mobile code against malicious hosts
US8490191B2 (en) 2006-06-21 2013-07-16 Wibu-Systems Ag Method and system for intrusion detection
WO2007147495A3 (fr) * 2006-06-21 2008-08-28 Wibu Systems Ag Procédé et système pour la détection d'intrusion
US8595809B2 (en) 2008-04-09 2013-11-26 Bank Of America Corporation Reusable authentication experience tool
US8136148B1 (en) 2008-04-09 2012-03-13 Bank Of America Corporation Reusable authentication experience tool
WO2013110571A1 (fr) * 2012-01-25 2013-08-01 Ercom Engineering Reseaux Communications Procede d'authentification d'un dispositif comprenant un processeur et une carte a puce par generation d'un motif
FR2986124A1 (fr) * 2012-01-25 2013-07-26 Ercom Engineering Reseaux Comm Procede d'authentification d'un dispositif comprenant un processeur et une carte a puce par generation d'un motif
US10848317B2 (en) 2015-01-19 2020-11-24 InAuth, Inc. Systems and methods for trusted path secure communication
US11818274B1 (en) 2015-01-19 2023-11-14 Accertify, Inc. Systems and methods for trusted path secure communication
US10237073B2 (en) 2015-01-19 2019-03-19 InAuth, Inc. Systems and methods for trusted path secure communication
US11171790B2 (en) 2015-01-19 2021-11-09 Accertify, Inc. Systems and methods for trusted path secure communication
WO2017108977A1 (fr) * 2015-12-24 2017-06-29 Gemalto Sa Procédé et système pour améliorer la sécurité d'une transaction
US11157912B2 (en) 2015-12-24 2021-10-26 Thales Dis France Sa Method and system for enhancing the security of a transaction
EP3185194A1 (fr) * 2015-12-24 2017-06-28 Gemalto Sa Procédé et système pour améliorer la sécurité d'une transaction
US11880832B2 (en) 2015-12-24 2024-01-23 Thales Dis France Sas Method and system for enhancing the security of a transaction
CN110162937A (zh) * 2018-02-09 2019-08-23 黄冈职业技术学院 基于网络通讯实现计算机软件保护的方法
CN110162937B (zh) * 2018-02-09 2024-02-02 黄冈职业技术学院 基于网络通讯实现计算机软件保护的方法
CN113343234A (zh) * 2021-06-10 2021-09-03 支付宝(杭州)信息技术有限公司 对代码安全性进行可信检查的方法及装置

Similar Documents

Publication Publication Date Title
US6006328A (en) Computer software authentication, protection, and security system
WO1997004394A1 (fr) Systeme d'authentification, de protection et de securite pour logiciel informatique
AU2009200459B2 (en) Systems and Methods for the Prevention Of Unauthorized Use and Manipulation of Digital Content Related Applications
US8261359B2 (en) Systems and methods for preventing unauthorized use of digital content
Naumovich et al. Preventing piracy, reverse engineering, and tampering
Nagra et al. Surreptitious software: obfuscation, watermarking, and tamperproofing for software protection
CA2783822C (fr) Systeme de messagerie steganographique utilisant des parties invariantes de code
EP2267626B1 (fr) Système et procédé de gestion de droits numériques
CA2447451C (fr) Procede et un systeme de securite de l'information
AU2002305490A1 (en) Systems and methods for the prevention of unauthorized use and manipulation of digital content
US20100017615A1 (en) Digital data authentication
JPH08166879A (ja) 提供用ソフトウェアの安全性強化方法及び装置
CN103856481B (zh) 使用在线认证和经加密代码执行的代码保护方法和系统
GB2404537A (en) Controlling access to data using software wrappers
CN108027853B (zh) 多用户强认证令牌
US20050091516A1 (en) Secure attention instruction central processing unit and system architecture
AU725098B2 (en) Computer software authentication, protection, and security system
CN112905961A (zh) 一种用于计算机软件保护的网络通讯方法
Spalka et al. Trojan horse attacks on software for electronic signatures
AU2002219852B2 (en) Systems and methods for preventing unauthorized use of digital content
EP1637959A2 (fr) Systèmes et procédés pour empêcher lýutilisation non autorisée de contenus numériques
Poddubnyi et al. Possibilities of Using Watermarks to Protect Software Code.
AU2010202883B2 (en) Systems and Methods for Preventing Unauthorized Use of Digital Content
AU2008200472A1 (en) Systems and methods for preventing unauthorized use of digital content related applications
Oputeh et al. Overcoming Trial Version Software Cracking Using a Hybridized Self-Modifying Technique

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载