US20080114698A1 - Systems and methods using cryptography to protect secure computing environments - Google Patents
Systems and methods using cryptography to protect secure computing environments Download PDFInfo
- Publication number
- US20080114698A1 US20080114698A1 US11/978,962 US97896207A US2008114698A1 US 20080114698 A1 US20080114698 A1 US 20080114698A1 US 97896207 A US97896207 A US 97896207A US 2008114698 A1 US2008114698 A1 US 2008114698A1
- Authority
- US
- United States
- Prior art keywords
- digital signature
- load module
- electronic appliance
- computer
- different
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title abstract description 40
- 238000012545 processing Methods 0.000 claims description 116
- 230000009471 action Effects 0.000 claims description 2
- 238000012360 testing method Methods 0.000 abstract description 15
- 238000012795 verification Methods 0.000 abstract description 15
- 230000006870 function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 241000700605 Viruses Species 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 230000004224 protection Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000002950 deficient Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 230000001010 compromised effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- UPLPHRJJTCUQAY-WIRWPRASSA-N 2,3-thioepoxy madol Chemical compound C([C@@H]1CC2)[C@@H]3S[C@@H]3C[C@]1(C)[C@@H]1[C@@H]2[C@@H]2CC[C@](C)(O)[C@@]2(C)CC1 UPLPHRJJTCUQAY-WIRWPRASSA-N 0.000 description 2
- 238000013474 audit trail Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000007789 sealing Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 241001275954 Cortinarius caperatus Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000779 depleting effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000011179 visual inspection Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/24—Credit schemes, i.e. "pay after"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00137—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to contents recorded on or reproduced from a record carrier to authorised users
- G11B20/00159—Parental control systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00188—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised devices recording or reproducing contents to/from a record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
- G11B20/00485—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier
- G11B20/00557—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein further management data is encrypted, e.g. sector headers, TOC or the lead-in or lead-out areas
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0071—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a purchase action
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00731—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction
- G11B20/00746—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number
- G11B20/00753—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number wherein the usage restriction limits the number of copies that can be made, e.g. CGMS, SCMS, or CCI flags
- G11B20/00768—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number wherein the usage restriction limits the number of copies that can be made, e.g. CGMS, SCMS, or CCI flags wherein copy control information is used, e.g. for indicating whether a content may be copied freely, no more, once, or never, by setting CGMS, SCMS, or CCI flags
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/19—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
- G11B27/28—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
- G11B27/32—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
- G11B27/327—Table of contents
- G11B27/329—Table of contents on a disc [VTOC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40104—Security; Encryption; Content protection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40117—Interconnection of audio or video/imaging devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00166—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software
- G11B20/00173—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software wherein the origin of the content is checked, e.g. determining whether the content has originally been retrieved from a legal disc copy or another trusted source
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00188—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised devices recording or reproducing contents to/from a record carrier
- G11B20/00195—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised devices recording or reproducing contents to/from a record carrier using a device identifier associated with the player or recorder, e.g. serial numbers of playback apparatuses or MAC addresses
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
- G11B20/00485—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier
- G11B20/00543—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein external data is encrypted, e.g. for secure communication with an external device or for encrypting content on a separate record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00681—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which prevent a specific kind of data access
- G11B20/00688—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which prevent a specific kind of data access said measures preventing that a usable copy of recorded data can be made on another medium
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/21—Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
- G11B2220/215—Recordable discs
- G11B2220/216—Rewritable discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/21—Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
- G11B2220/215—Recordable discs
- G11B2220/218—Write-once discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2537—Optical discs
- G11B2220/2562—DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2537—Optical discs
- G11B2220/2562—DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
- G11B2220/2575—DVD-RAMs
Definitions
- This invention relates to computer security, and more particularly to secure and/or protected computer execution environments. Still more specifically, the present invention relates to computer security techniques based at least in part on cryptography, that protect a computer processing environment against potentially harmful computer executables, programs and/or data; and to techniques for certifying load modules such as executable computer programs or fragments thereof as being authorized for use by a protected or secure processing environment.
- Terrorists can also try to attack us through our computers. We cannot afford to have harmful computer programs destroy the computers driving the greater San Francisco metropolitan air traffic controller network, the New York Stock Exchange, the life support systems of a major hospital, or the Northern Virginia metropolitan area fire and paramedic emergency dispatch service.
- electronic networks are an obvious path for spreading computer viruses.
- a university student used the Internet (a network of computer networks connected to millions of computers worldwide) to infect thousands of university and business computers with a self-replicating “worm” virus that took over the infected computers and caused them to execute the computer virus instead of performing the tasks they were supposed to perform.
- This computer virus outbreak (which resulted in a criminal prosecution) caused widespread panic throughout the electronic community.
- Computer viruses are by no means the only computer security risk made even more significant by increased computer connectivity.
- JavaTM developed by Sun Microsystems of Mountain View, Calif.
- Java was designed to allow computers to interactively and dynamically download computer program code fragments (called “applets”) over an electronic network such as the internet, and execute the downloaded code fragments locally.
- apps computer program code fragments
- Java's “download and execute” capability is valuable because it allows certain tasks to be performed locally on local equipment using local resources.
- a user's computer could run a particularly computationally or data-intensive routine—relieving the provider's computer from having to run the task and/or eliminating the need to transmit large amounts of data over the communications path.
- Java's “download and execute” capability has great potential, it raises significant computer security concerns.
- Java applets could be written to damage hardware, software or information on the recipient computer, make the computer unstable by depleting its resources, and/or access confidential information on the computer and send it to someone else without first getting the computer owner's permission. People have expended lots of time and effort trying to solve Java's security problems.
- Sun Microsystems has developed a Java interpreter providing certain built-in security features such as:
- the Ginter et al. specification describes a “virtual distribution environment” comprehensively providing overall systems and wide arrays of methods, techniques, structures and arrangements that enable secure, efficient electronic commerce and rights management, including on the Internet or other “Information Super Highway.”
- the Ginter et al. patent disclosure describes, among other things, techniques for providing a secure, tamper resistant execution spaces within a “protected processing environment” for computer programs and data.
- the protected processing environment described in Ginter et al. may be hardware-based, software-based, or a hybrid. It can execute computer code the Ginter et al. disclosure refers to as “load modules.” See, for example, Ginter et al. FIG. 23 and corresponding text.
- load modules which can be transmitted from remote locations within secure cryptographic wrappers or “containers”—are used to perform the basic operations of the “virtual distribution environment.”
- Load modules may contain algorithms, data, cryptographic keys, shared secrets, and/or other information that permits a load module to interact with other system components (e.g., other load modules and/or computer programs operating in the same or different protected processing environment). For a load module to operate and interact as intended, it must execute without unauthorized modification and its contents may need to be protected from disclosure.
- bogus load module is one of the strongest possible forms of attack (by a protected processing environment user or anyone else) on the virtual distribution environment disclosed in the Ginter et al. patent specification. Because load modules have access to internal protected data structures within protected processing environments and also (at least to an extent) control the results brought about by those protected processing environments, bogus load modules can (putting aside for the moment additional possible local protections such as addressing and/or ring protection and also putting aside system level fraud and other security related checks) perform almost any action possible in the virtual distribution environment without being subject to intended electronic controls.
- Especially likely attacks may range from straightforward changes to protected data (for example, adding budget, billing for nothing instead of the desired amount, etc.) to wholesale compromise (for example, using a load module to expose a protected processing environment's cryptographic keys). For at least these reasons, the methods for validating the origin and soundness of a load module are critically important.
- the Ginter et al. patent specification discloses important techniques for securing protected processing environments against inauthentic load modules introduced by the computer owner, user, or any other party, including for example:
- the present invention provides improved techniques for protecting secure computation and/or execution spaces (as one important but non-limiting example, the protected processing environments as disclosed in Ginter et al) from unauthorized (and potentially harmful) load modules or other “executables” or associated data.
- these techniques build upon, enhance and/or extend in certain respects, the load module security techniques, arrangements and systems provided in the Ginter et al. specification.
- one or more trusted verifying authorities validate load modules or other executables by analyzing and/or testing them.
- a verifying authority digitally “signs” and “certifies” those load modules or other executables it has verified (using a public key based digital signature and/or certificate based thereon, for example).
- Protected execution spaces such as protected processing environments can be programmed or otherwise conditioned to accept only those load modules or other executables bearing a digital signature/certificate of an accredited (or particular) verifying authority. Tamper resistant barriers may be used to protect this programming or other conditioning. The assurance levels described below are a measure or assessment of the effectiveness with which this programming or other conditioning is protected.
- a web of trust may stand behind a verifying authority.
- a verifying authority may be an independent organization that can be trusted by all electronic value chain participants not to collaborate with any particular participant to the disadvantage of other participants.
- a given load module or other executable may be independently certified by any number of authorized verifying authority participants. If a load module or other executable is signed, for example, by five different verifying authority participants, a user will have (potentially) a higher likelihood of finding one that they trust.
- General commercial users may insist on several different certifiers, and government users, large corporations, and international trading partners may each have their own unique “web of trust” requirements. This “web of trust” prevents value chain participants from conspiring to defraud other value chain participants.
- each load module or other executable has specifications associated with it describing the executable, its operations, content, and functions. Such specifications could be represented by any combination of specifications, formal mathematical descriptions that can be verified in an automated or other well-defined manner, or any other forms of description that can be processed, verified, and/or tested in an automated or other well-defined manner.
- the load module or other executable is preferably constructed using a programming language (e.g., languages such as Java and Python) and/or design/implementation methodology (e.g., Gypsy, FDM) that can facilitate automated analysis, validation, verification, inspection, and/or testing.
- a programming language e.g., languages such as Java and Python
- design/implementation methodology e.g., Gypsy, FDM
- a verifying authority analyzes, validates, verifies, inspects, and/or tests the load module or other executable, and compares its results with the specifications associated with the load module or other executable.
- a verifying authority may digitally sign or certify only those load modules or other executables having proper specifications—and may include the specifications as part of the material being signed or certified.
- a verifying authority may instead, or in addition, selectively be given the responsibility for analyzing the load module and generating a specification for it. Such a specification could be reviewed by the load module's originator and/or any potential users of the load module.
- a verifying authority may selectively be given the authority to generate an additional specification for the load module, for example by translating a formal mathematical specification to other kinds of specifications.
- This authority could be granted, for example, by a load module originator wishing to have a more accessible, but verified (certified), description of the load module for purposes of informing other potential users of the load module.
- a verifying authority may selectively be empowered to modify the specifications to make it accurate—but may refuse to sign or certify load modules or other executables that are harmful or dangerous irrespective of the accuracy of their associated specifications.
- the specifications may in some instances be viewable by ultimate users or other value chain participants—providing a high degree of assurance that load modules or other executables are not subverting the system and/or the legitimate interest of any participant in an electronic value chain the system supports.
- an execution environment protects itself by deciding—based on digital signatures, for example—which load modules or other executables it is willing to execute.
- a digital signature allows the execution environment to test both the authenticity and the integrity of the load module or other executables, as well permitting a user of such executables to determine their correctness with respect to their associated specifications or other description of their behavior, if such descriptions are included in the verification process.
- a hierarchy of assurance levels may be provided for different protected processing environment security levels.
- Load modules or other executables can be provided with digital signatures associated with particular assurance levels. Appliances assigned to particular assurance levels can protect themselves from executing load modules or other executables associated with different assurance levels. Different digital signatures and/or certificates may be used to distinguish between load modules or other executables intended for different assurance levels.
- This strict assurance level hierarchy provides a framework to help ensure that a more trusted environment can protect itself from load modules or other executables exposed to environments with different work factors (e.g., less trusted or tamper resistant environments). This can be used to provide a high degree of security compartmentalization that helps protect the remainder of the system should parts of the system become compromised.
- protected processing environments or other secure execution spaces that are more impervious to tampering may use an assurance level that isolates it from protected processing environments or other secure execution spaces that are relatively more susceptible to tampering (such as those constructed solely by software executing on a general purpose digital computer in a non-secure location).
- a verifying authority may digitally sign load modules or other executables with a digital signature that indicates or implies assurance level.
- a verifying authority can use digital signature techniques to distinguish between assurance levels.
- each different digital signature may be encrypted using a different verification key and/or fundamentally different encryption, one-way hash and/or other techniques.
- a protected processing environment or other secure execution space protects itself by executing only those load modules or other executables that have been digitally signed for its corresponding assurance level.
- the present invention may use a verifying authority and the digital signatures it provides to compartmentalize the different electronic appliances depending on their level of security (e.g., work factor or relative tamper resistance).
- a verifying authority and the digital signatures it provides isolate appliances with significantly different work factors—preventing the security of high work factor appliances from collapsing into the security of low work factor appliances due to free exchange of load modules or other executables.
- Encryption can be used in combination with the assurance level scheme discussed above to ensure that load modules or other executables can be executed only in specific environments or types of environments.
- the secure way to ensure that a load module or other executable can't execute in a particular environment is to ensure that the environment doesn't have the key(s) necessary to decrypt it.
- Encryption can rely on multiple public keys and/or algorithms to transport basic key(s). Such encryption protects the load module or other executable from disclosure to environments (or assurance levels of environments) other than the one it is intended to execute in.
- a verifying authority can digitally sign a load module or other executable with several different digital signatures and/or signature schemes.
- a protected processing environment or other secure execution space may require a load module or other executable to present multiple digital signatures before accepting it.
- An attacker would have to “break” each (all) of the several digital signatures and/or signature schemes to create an unauthorized load module or other executable that would be accepted by the protected processing environment or other secure execution space.
- Different protected processing environments might examine different subsets of the multiple digital signatures—so that compromising one protected processing environment (secure execution space) will not compromise all of them.
- a protected processing environment or other secure execution space might verify only one of the several digital signatures (for example, chosen at random each time an executable is used)—thereby speeding up the digital signature verification while still maintaining a high degree of security.
- FIG. 1 illustrates how defective or bogus load modules can wreak havoc in the electronic community
- FIG. 2 shows an example verification authority that protects the electronic community from unauthorized load modules
- FIG. 3 shows how a protected processing environment can distinguish between load modules that have been approved by a verifying authority and those that have not been approved;
- FIG. 4 shows an example process a verifying authority may perform to authenticate load modules
- FIG. 5 shows how a verifying authority can create a certifying digital signature
- FIG. 6 shows how a protected processing environment can securely authenticate a verifying authority's digital signature to guarantee the integrity of the corresponding load module
- FIG. 7 shows how several different digital signatures can be applied to the same load module
- FIG. 8 shows how a load module can be distributed with multiple digital signatures
- FIG. 8A shows how key management can be used to compartmentalize protected processing environments
- FIG. 9 shows how a load module can be segmented and each segment protected with a different digital signature
- FIGS. 10A-10C show how different assurance level electronic appliances can be provided with different cryptographic keys for authenticating verifying authority digital signatures
- FIGS. 11A-11C show how a verifying authority can use different digital signatures to designate the same or different load modules as being appropriate for execution by different assurance level electronic appliances;
- FIGS. 12, 13 and 13 A show how assurance level digital signatures can be used to isolate electronic appliances or appliance types based on work factor and/or tamper resistance to reduce overall security risks
- FIG. 14 shows example overall steps that may be performed within an electronic system (such as, for example, a virtual distribution environment) to test, certify, distribute and use executables.
- an electronic system such as, for example, a virtual distribution environment
- FIG. 1 shows how defective, bogus and/or unauthorized computer information can wreak havoc within an electronic system 50 .
- provider 52 is authorized to produce and distribute “load modules” 54 for use by different users or consumers 56 .
- FIG. 1 shows “load module” 54 as a complicated looking machine part for purposes of illustration only; the load module preferably comprises one or more computer instructions and/or data elements used to assist, allow, prohibit, direct, control or facilitate at least one task performed at least in part by an electronic appliance such as a computer.
- load module 54 may comprise all or part of an executable computer program and/or associated data (“executable”), and may constitute a sequence of instructions or steps that bring about a certain result within a computer or other computation element.
- FIG. 1 shows a number of electronic appliances 61 such as, for example, a set top box or home media player 58 , a personal computer 60 , and a multi-media player 62 .
- Each of appliances 58 , 60 , 62 may include a secure execution space.
- a secure execution space is a “protected processing environment” 108 of the type shown in Ginter et al. (see FIGS. 6-12 ) and described in associated text.
- Protected processing environments 108 provide a secure execution environment in which appliances 58 , 60 , 62 may securely execute load modules 54 to perform useful tasks. For example:
- FIG. 1 also shows an unauthorized and/or disreputable load module provider 64 .
- Unauthorized provider 64 knows how to make load modules that look a lot like the load modules produced by authorized load module provider 52 —but are defective or even destructive. Unless precautions are taken, the unauthorized load module 54 d made by unauthorized producer 64 will be able to run on protected processing environments 108 within appliances 58 , 60 and 62 , and may cause serious harm to users 56 and/or to the integrity of system 50 . For example:
- FIG. 2 shows how a verifying authority 100 can prevent the problems shown in FIG. 1 .
- authorized provider 52 submits load modules 54 to verifying authority 100 .
- Verifying authority 100 carefully analyzes the load modules 54 (see 102 ), testing them to make sure they do what they are supposed to do and do not compromise or harm system 50 . If a load module 54 passes the tests verifying authority 100 subjects it to, a verifying authority may affix a digital “seal of approval” (see 104 ) to the load module.
- FIG. 3 illustrates how an electronic protected processing environment 108 can use and rely on a verifying authority's digital seal of approval 106 .
- the protected processing environment 108 can distinguish between authorized and unauthorized load modules 54 by examining the load module to see whether it bears the seal of verifying authority 100 .
- Protected processing environment 108 will execute the load module 54 a with its processor 110 only if the load module bears a verifying authority's seal 106 .
- Protected processing environment 108 discards and does not use any load module 54 that does not bear this seal 106 . In this way, protected processing environment 108 securely protects itself against unauthorized load modules 54 such as, for example, the defective load module 54 d made by disreputable load module provider 64 .
- FIG. 4 shows the analysis and digital signing steps 102 , 104 performed by verifying authority 100 in this example.
- Provider 54 may provide, with each load module 54 , associated specifications 110 identifying the load module and describing the functions the load module performs.
- these specifications 110 are illustrated as a manufacturing tag, but preferably comprises a data file associated with and/or attached to the load module 54 .
- Verifying authority 100 uses an analyzing tool(s) 112 to analyze and test load module 54 and determine whether it performs as specified by its associated specifications 110 —that is, whether the specifications are both accurate and complete.
- FIG. 4 illustrates an analysis tool 112 as a magnifying glass; verifying authority 100 may not rely on visual inspection only, but instead preferably uses one or more computer-based software testing techniques and/or tools to verify that the load module performs as expected, matches specifications 110 , is not a “virus,” and includes no significant detectable “bugs” or other harmful functionality. See for example Pressman, Software Engineering: A Practitioner's Approach (3d Ed., McGraw-Hill 1992) at chapters 18 and 19 (“Software Testing Techniques”) (pages 595-661) and the various books and papers referenced there.
- testing can show only the presence of bugs, not their absence,” such testing (in addition to ensuring that the load module 54 satisfies its specifications 110 ) can provide added degrees of assurance that the load module isn't harmful and will work as it is supposed to.
- Verifying authority 100 is preferably a trusted, independent third party such as an impartial, well respected independent testing laboratory. Therefore, all participants in an electronic transaction involving load module 54 can trust a verifying authority 100 as performing its testing and analysis functions competently and completely objectively and impartially. As described above, there may be several different verifying authorities 100 that together provide a “web of trust”. Several different verifying authorities may each verify and digitally sign the same load module—increasing the likelihood that a particular value chain participant will trust one of them and decreasing the likelihood of collusion or fraud. Electronic value chain participants may rely upon different verifying authorities 100 to certify different types of load modules.
- one verifying authority 100 trusted by and known to financial participants might verify load modules relating to financial aspects of a transaction (e.g., billing), whereas another verifying authority 100 ′ trusted by and known to participants involved in using the “information exhaust” provided by an electronic transaction might be used to verify load modules relating to usage metering aspects of the same transaction.
- a transaction e.g., billing
- another verifying authority 100 ′ trusted by and known to participants involved in using the “information exhaust” provided by an electronic transaction might be used to verify load modules relating to usage metering aspects of the same transaction.
- FIG. 4 illustrates the digital sealing process as being performed by a stamp 114 —but in the preferred embodiment the digital sealing process is actually performed by creating a “digital signature” using a well known process. See Schneier, Applied Cryptography (2d Ed. John Wiley & Sons 1996) at Chapter 20 (pages 483-502). This digital signature, certificate or seal creation process is illustrated in FIG. 5 .
- load module 54 (along with specifications 110 if desired) is processed to yield a “message digest” 116 using a conventional one-way hash function selected to provide an appropriate resistance to algorithmic attack. See, for example, the transformation processes discussed in the Schneier text at Chapter 18, pages 429-455.
- a one-way hash function 115 provides a “fingerprint” (message digest 116 ) that is unique to load module 54 .
- the one-way hash function transforms the contents of load module 54 into message digest 116 based on a mathematical function.
- This one-way hash mathematical function has the characteristic that it is easy to calculate message digest 116 from load module 54 , but it is hard (computationally infeasible) to calculate load module 54 starting from message digest 116 and it is also hard (computationally infeasible) to find another load module 54 ′ that will transform to the same message digest 116 .
- There are many potential candidate functions e.g., MD5, SHA), families of functions (e.g., MD5, or SHA with different internal constants), and keyed functions (e.g., message authentication codes based on block ciphers such as DES) that may be employed as one-way hash functions in this scheme.
- Different functions may have different cryptographic strengths and weaknesses so that techniques which may be developed to defeat one of them are not necessarily applicable to others.
- Message digest 116 may then be encrypted using asymmetric key cryptography.
- FIG. 5 illustrates this encryption operation using the metaphor of a strong box 118 .
- the message digest 116 is placed into strong box 118 , and the strongbox is locked with a lock 120 having two key slots opened by different (“asymmetrical”) keys.
- a first key 122 (sometimes called the “private” key) is used to lock the lock.
- a second (different) key 124 (sometimes called the “public” key) must be used to open the lock once the lock has been locked with the first key.
- the encryption algorithm and key length is selected so that it is computationally infeasible to calculate first key 122 given access to second key 124 , the public key encryption algorithm, the clear text message digest 116 , and the encrypted digital signature 106 .
- the first key is owned by verifying authority 100 and is kept highly secure (for example, using standard physical and procedural measures typically employed to keep an important private key secret while preventing it from being lost).
- message digest 116 is locked into strong box 118 using the first key 122 the strong box can be opened only by using the corresponding second key 124 .
- other items e.g., further identification information, a time/date stamp, etc. can also be placed within strong box 106 .
- FIG. 6 shows how a protected processing environment 108 “authenticates” the digital signature 106 created by the FIG. 5 process.
- Second key 124 and the one-way hash algorithm are first securely provided to the protected processing environment.
- a secure key exchange protocol can be used as described in connection with FIG. 64 of the Ginter et al. patent specification.
- Public key cryptography allows second key 124 to be made public without compromising first key 122 .
- protected processing environment 108 preferably keeps the second key 124 (and, if desired, also the one-way hash algorithm and/or its associated key) secret to further increase security.
- Second key 124 secret also requires a multi-disciplinary attack: an attacker must both (A) extract the secret from protected processing environment 108 , and (B) attack the algorithm. It may be substantially less likely that a single attacker may have expertise in each of these two specialized disciplines.
- maintaining the “public” key within a tamper-resistant environment forecloses the significant threat that the owner of protected processing environment 108 may himself attack the environment.
- the owner could replace the appropriate “public” key 124 with his own substitute public key, the owner could force the protected processing environment 108 to execute load modules 54 of his own design—thereby compromising the interests of others in enforcing their own controls within the owner's protected processing environment. For example, the owner could turn off the control that required him to pay for watching or prohibited him from copying content. Since protected processing environment 108 can support a “virtual business presence” by parties other than the owner, it is important for the protected processing environment to be protected against attacks from the owner.
- the load module 54 and its associated digital signature 106 is then delivered to the protected processing environment 108 .
- Protected processing environment 115 applies the same one way hash transformation on load module 54 that a verifying authority 100 applied. Since protected processing environment 108 starts with the same load module 54 and uses the same one-way hash function 115 , it should generate the same message digest 116 ′.
- Protected processing environment 108 then decrypts digital signature 106 using the second key 124 —i.e., it opens strongbox 118 to retrieve the message digest 116 a verifying authority 100 placed in there.
- Protected processing environment 108 compares the version of message digest 116 it obtains from the digital signature 106 with the version of message digest 116 ′ it calculates itself from load module 54 using the one way hash transformation 115 .
- the message digests 116 , 116 ′ should be identical. If they do not match, digital signature 106 is not authentic or load module 54 has been changed—and protected processing environment 108 rejects load module 54 .
- FIG. 7 shows that multiple digital signatures 106 ( 1 ), 106 ( 2 ), . . . 106 (N) can be created for the same load module 54 .
- digital signatures 106 ( 1 ), 106 ( 2 ), . . . 106 (N) can be created for the same load module 54 .
- N can be created for the same load module 54 .
- the public key 124 ( 1 ) corresponding to private key 122 ( 1 ) acts only to decrypt (authenticate) digital signature 106 ( 1 ).
- digital signature 106 ′ can only be decrypted (authenticated) using public key 124 ( 2 ) corresponding to the private 122 ( 2 ).
- Public key 124 ( 1 ) will not “unlock” digital signature 106 ( 2 ) and public key 124 ( 2 ) will not “unlock” digital signature 106 ( 1 ).
- Different digital signatures 106 ( 1 ), 106 (N) can also be made by using different one way hash functions 115 and/or different encryption algorithms.
- a load module 54 may have multiple different types of digital signatures 106 associated with it. Requiring a load module 54 to present, to a protected processing environment 108 , multiple digital signatures 106 generated using fundamentally different techniques decreases the risk that an attacker can successfully manufacture a bogus load module 54 .
- the same load module 54 might be digitally signed using three different private keys 122 , cryptographic algorithms, and/or hash algorithms. If a given load module 54 has multiple distinct digital signatures 106 each computed using a fundamentally different technique, the risk of compromise is substantially lowered. A single algorithmic advance is unlikely to result in simultaneous success against both (or multiple) cryptographic algorithms.
- the two digital signature algorithms in widespread use today are based on distinct mathematical problems (factoring in the case of RSA, discrete logs for DSA).
- MD4/MD5 and SHA have similar internal structures, possibly increasing the likelihood that a successful attack against one would lead to a success against another.
- hash functions can be derived from any number of different block ciphers (e.g., SEAL, IDEA, triple-DES) with different internal structures; one of these might be a good candidate to complement MD5 or SHA.
- Multiple signatures as shown in FIG. 8 impose a cost of additional storage for the signatures 106 in each protected load module 54 , additional code in the protected processing environment 108 to implement additional algorithms, and additional time to verify the digital signatures (as well as to generate them at verification time).
- an appliance 61 might verify only a subset of several signatures associated with a load module 54 (chosen at random) each time the load module is used. This would speed up signature verification while maintaining a high probability of detection. For example, suppose there are one hundred “private” verification keys, and each load module 54 carries one hundred digital signatures.
- each protected processing environment 108 knows only a few (e.g., ten) of these corresponding “public” verification keys randomly selected from the set.
- a successful attack on that particular protected processing environment 108 would permit it to be compromised and would also compromise any other protected processing environment possessing and using precisely that same set of ten keys. However, it would not compromise most other protected processing environments—since they would employ a different subset of the keys used by verifying authority 100 .
- FIG. 8A shows a simplified example of different processing environments 108 ( 1 ), . . . , 108 (N) possessing different subsets of “public” keys used for digital signature authentication—thereby compartmentalizing the protected processing environments based on key management and availability.
- the FIG. 8A illustration shows each protected processing environment 108 having only one “public” key 124 that corresponds to one of the digital signatures 106 used to “sign” load module 54 .
- any number of digital signatures 106 may be used to sign the load module 54 —and different protected processing environment 108 may possess any subset of corresponding “public” keys.
- FIG. 9 shows that a load module 54 may comprise multiple segments 55 ( 1 ), 55 ( 2 ), 55 ( 3 ) signed using different digital signatures 106 .
- a load module 54 may comprise multiple segments 55 ( 1 ), 55 ( 2 ), 55 ( 3 ) signed using different digital signatures 106 .
- segments 55 ( 1 ), 55 ( 2 ), 55 ( 3 ) signed using different digital signatures 106 For example:
- These three signatures 55 ( 1 ), 55 ( 2 ), 55 ( 3 ) could all be affixed by the same verifying authority 100 , or they could be affixed by three different verifying authorities (providing a “web of trust”).
- a load module is verified in its entirety by multiple parties—if a user trusts any of them, she can trust the load module.
- a protected processing environment 108 would need to have all three corresponding “public” keys 124 ( 1 ), 124 ( 2 ), 124 ( 3 ) to authenticate the entire load module 54 —or the different load module segments could be used by different protected processing environments possessing the corresponding different keys 124 ( 1 ), 124 ( 2 ), 124 ( 3 ).
- Different signatures 55 ( 1 ), 55 ( 2 ), 55 ( 3 ) could be calculated using different signature and/or one-way hash algorithms to increase the difficulty of defeating them by cryptanalytic attack.
- Verifying authority 100 can use different digital signing techniques to provide different “assurance levels” for different kinds of electronic appliances 61 having different “work factors” or levels of tamper resistance.
- FIGS. 10A-10C show an example assurance level hierarchy providing three different assurance levels for different electronic appliance types:
- verifying authority 100 digitally signs load modules 54 using different digital signature techniques (for example, different “private” keys 122 ) based on assurance level.
- the digital signatures 106 applied by verifying authority 100 thus securely encode the same (or different) load module 54 for use by appropriate corresponding assurance level electronic appliances 61 .
- Assurance level in this example may be assigned to a particular protected processing environment 108 at initialization (e.g., at the factory in the case of hardware-based secure processing units). Assigning assurance level at initialization time facilitates the use of key management (e.g., secure key exchange protocols) to enforce isolation based on assurance level. For example, since establishment of assurance level is done at initialization time, rather than in the field in this example, the key exchange mechanism can be used to provide new keys (assuming an assurance level has been established correctly).
- key management e.g., secure key exchange protocols
- each secure processing environment and host event processing environment (see Ginter et al., FIG. 10 and associated description) contained within an instance of a PPE 108 may contain multiple instances of a channel, each with independent and different assurance levels.
- the nature of this feature of the invention permits the separation of different channels within a PPE 108 from each other, each channel possibly having identical, shared, or independent sets of load modules for each specific channel limited solely to the resources and services authorized for use by that specific channel. In this way, the security of the entire PPE is enhanced and the effect of security breaches within each channel is compartmentalized solely to that channel.
- FIGS. 11A-11C different digital signatures and/or signature algorithms corresponding to different “assurance levels” may be used to allow a particular execution environment to protect itself from particular load modules 54 that are accessible to other classes or “assurance levels” of electronic appliances. As shown in FIGS. 11 A- 11 C:
- electronic appliances 61 of different assurance levels can communicate with one another and pass load modules 54 between one another—an important feature providing a scaleable virtual distribution environment involving all sorts of different appliances (e.g., personal computers, laptop computers, handheld computers, television sets, media players, set top boxes, internet browser appliances, smart cards, mainframe computers, etc.)
- the present invention uses verifying authority 100 and the digital signatures it provides to compartmentalize the different electronic appliances depending on their level of security (e.g., work factor or relative tamper resistance).
- verifying authority 100 and the digital signatures it provides isolate appliances with significantly different work factors—preventing the security of high work factor appliances from collapsing into the security of low work factor appliances due to free exchange of load modules 54 .
- verifying authority 100 may digitally sign identical copies of load module 54 for use by different classes or “assurance levels” of electronic appliances 61 . If the sharing of a load module 54 between different electronic appliances is regarded as an open communications channel between the protected processing environments 108 of the two appliances, it becomes apparent that there is a high degree of risk in permitting such sharing to occur. In particular, the extra security assurances and precautions of the more trusted environment are collapsed into the those of the less trusted environment because an attacker who compromises a load module within a less trusted environment is then be able to launch the same load module to attack the more trusted environment.
- compartmentalization based on encryption and key management can be used to restrict certain kinds of load modules 54 to execute only on certain types of electronic appliances 61
- a significant application in this context is to compartmentalize the different types of electronic appliances and thereby allow an electronic appliance to protect itself against load modules 54 of different assurance levels.
- FIG. 12 emphasizes this isolation using the illustrative metaphor of desert islands. It shows how the assurance levels can be used to isolate and compartmentalize any number of different types of electronic appliances 61 .
- FIG. 12 emphasizes this isolation using the illustrative metaphor of desert islands. It shows how the assurance levels can be used to isolate and compartmentalize any number of different types of electronic appliances 61 .
- this example shows how the assurance levels can be used to isolate and compartmentalize any number of different types of electronic appliances 61 .
- verifying authority 100 supports all of these various categories of digital signatures, and system 50 uses key management to distribute the appropriate verification keys to different assurance level devices.
- verifying authority 100 may digitally sign a particular load module 54 such that only hardware-only based server(s) 402 ( 3 ) at assurance level XI may authenticate it.
- This compartmentalization prevents any load module executable on hardware-only servers 402 ( 3 ) from executing on any other assurance level appliance (for example, software-only protected processing environment based support service 404 ( 1 )).
- FIG. 13 shows one example hierarchical assurance level arrangement.
- less secure “software only” protected processing environment 108 devices are categorized as assurance level I
- somewhat more secure “software and hardware hybrid” protected processing environment appliances are categorized as assurance level II
- more trusted “hardware only” protected processing environment devices are categorized as assurance level III.
- FIG. 13A shows three example corresponding “desert islands.”
- Desert island I is “inhabited” by personal computers 61 A providing a software-only protected processing environment.
- the software-only protected processing environment based personal computers 60 ( 1 ) “inhabit” desert island I are all of the same assurance level—and thus will each authenticate (and may thus each use) an assurance level I load module 54 a .
- Desert island II is “inhabited” by assurance level II hybrid software and hardware protected processing environment personal computers 61 B. These assurance level II personal computers will each authenticate (and may thus each execute) an assurance level II load module 54 b .
- a desert island III is “inhabited” by assurance level III personal computers 61 C providing hardware-only protected processing environments. These assurance level III devices 61 C may each authenticate and execute an assurance level III load module 54 c.
- the “desert islands” are created by the use of different digital signatures on each of load modules 54 a , 54 b , 54 c .
- all of the appliances 61 may freely communicate with one another (as indicated by the barges—which represent electronic or other communications between the various devices.
- the load modules cannot leave their associated “desert island”—providing isolation between the different assurance level execution environments. More specifically, a particular assurance level appliance 61 thus protects itself from using a load module 54 of a different assurance level.
- Digital signatures (and/or signature algorithms) 106 in this sense create the isolated “desert islands” shown—since they allow execution environments to protect themselves from “off island” load modules 54 of different assurance levels.
- a load module or other executable may be certified for multiple assurance levels. Different digital signatures may be used to certify the same load module or other executable for different respective assurance levels.
- the load module or other executable could also be encrypted differently (e.g. using different keys to encrypt the load module) based on assurance level. If a load module is encrypted differently for different assurance levels, and the keys and/or algorithms that are used to decrypt such load modules are only distributed to environments of the same assurance level, an additional measure of security is provided.
- the risk associated with disclosing the load module or other executable contents (e.g., by decrypting encrypted code before execution) in a lower assurance environment does not compromise the security of higher assurance level systems directly, but it may help the attacker learn how the load module or other executable works and how to encrypt them—which can be important in making bogus load modules or other executables (although not in certifying them—since certification requires keys that would only become available to an attacker who has compromised the keys of a corresponding appropriate assurance level environment).
- FIG. 14 shows an example sequence of steps that may be performed in an overall process provided by these inventions.
- a load module provider 52 may manufacture a load module and associated specifications ( FIG. 14 , block 502 ).
- Provider 52 may then submit the load module and associated specifications to verifying authority 100 for verification ( FIG. 14 , block 504 ).
- Verifying authority 100 may analyze, test, and/or otherwise validate the load module against the specifications ( FIG. 14 , block 506 ), and determine whether the load module satisfies the specifications.
- a verifying authority 100 determines whether it is authorized to generate one or more new specifications for the load module ( FIG. 14 , block 509 ). If it is authorized and this function has been requested (“Y” exit to decision block 509 ), a verifying authority generates specifications and associates them with the load module ( FIG. 14 , block 514 ).
- verifying authority 100 determines whether it is authorized and able to create new specifications corresponding to the actual load module performance, and whether it is desirable to create the conforming specifications ( FIG. 14 , decision block 510 ). If verifying authority 100 decides not to make new specifications (“N” exit to decision block 510 ), verifying authority returns the load module to provider 52 (block 512 ) and the process ends. On the other hand, if verifying authority 100 determines that it is desirable to make new specifications and it is able and authorized to do so, a verifying authority 100 may make new specifications that conform to the load module (“Y” exit to decision block 510 ; block 514 ).
- a verifying authority 100 may then digitally sign the load module 54 to indicate approval ( FIG. 14 , block 516 ).
- This step 516 may involve applying multiple digital signatures and/or a selection of the appropriate digital signatures to use in order to restrict the load module to particular “assurance levels” of electronic appliances as discussed above.
- Verifying authority may then determine the distribution of the load module ( FIG. 14 , block 518 ).
- This “determine distribution” step may involve, for example, determining who the load module should be distributed to (e.g., provider 52 , support services 404 , a load module repository operated by a verifying authority, etc.) and/or what should be distributed (e.g., the load module plus corresponding digital signatures, digital signatures only, digital signatures and associated description, etc.).
- Verifying authority 100 may then distribute the appropriate information to a value chain using the appropriate distribution techniques ( FIG. 14 , block 520 ).
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
Secure computation environments are protected from bogus or rogue load modules, executables and other data elements through use of digital signatures, seals and certificates issued by a verifying authority. A verifying authority—which may be a trusted independent third party—tests the load modules or other executables to verify that their corresponding specifications are accurate and complete, and then digitally signs the load module or other executable based on tamper resistance work factor classification. Secure computation environments with different tamper resistance work factors use different verification digital signature authentication techniques (e.g., different signature algorithms and/or signature verification keys)—allowing one tamper resistance work factor environment to protect itself against load modules from another, different tamper resistance work factor environment. Several dissimilar digital signature algorithms may be used to reduce vulnerability from algorithm compromise, and subsets of multiple digital signatures may be used to reduce the scope of any specific compromise.
Description
- This is a continuation of application Ser. No. 11/842,136, filed Aug. 20, 2007, which is a continuation of application Ser. No. 11/454,072, filed Jun. 14, 2006, which is a continuation of application Ser. No. 09/925,072, filed Aug. 6, 2001, now U.S. Pat. No. 7,120,802, which is a continuation of application Ser. No. 09/678,830, filed Oct. 4, 2000, now U.S. Pat. No. 6,292,569, which is a continuation of application Ser. No. 08/689,754, filed Aug. 12, 1996, now U.S. Pat. No. 6,157,721, all of which are incorporated herein by reference.
- This application is also related to application Ser. No. 08/388,107, filed 13 Feb. 1995, abandoned, which is also incorporated herein by reference.
- This invention relates to computer security, and more particularly to secure and/or protected computer execution environments. Still more specifically, the present invention relates to computer security techniques based at least in part on cryptography, that protect a computer processing environment against potentially harmful computer executables, programs and/or data; and to techniques for certifying load modules such as executable computer programs or fragments thereof as being authorized for use by a protected or secure processing environment.
- Computers have become increasingly central to business, finance and other important aspects of our lives. It is now more important than ever to protect computers from “bad” or harmful computer programs. Unfortunately, since many of our most critical business, financial and governmental tasks now rely heavily on computers, dishonest people have a great incentive to use increasingly sophisticated and ingenious computer attacks.
- Imagine, for example, if a dishonest customer of a major bank could reprogram the bank's computer so it adds to instead of subtracts from the customer's account—or diverts a penny to the customer's account from anyone else's bank deposit in excess of $10,000. If successful, such attacks would not only allow dishonest people to steal, but could also undermine society's confidence in the integrity and reliability of the banking system.
- Terrorists can also try to attack us through our computers. We cannot afford to have harmful computer programs destroy the computers driving the greater San Francisco metropolitan air traffic controller network, the New York Stock Exchange, the life support systems of a major hospital, or the Northern Virginia metropolitan area fire and paramedic emergency dispatch service.
- There are many different kinds of “bad” computer programs, which in general are termed “Trojan horses”—programs that cause a computer to act in a manner not intended by its operator, named after the famous wooden horse of Troy that delivered an attacking army disguised as an attractive gift. One of the most notorious kinds is so-called “computer viruses”—“diseases” that a computer can “catch” from another computer. A computer virus is a computer program that instructs the computer to do harmful or spurious things instead of useful things—and can also replicate itself to spread from one computer to another. Since the computer does whatever its instructions tell it to do, it will carry out the bad intent of a malicious human programmer who wrote the computer virus program—unless the computer is protected from the computer virus program. Special “anti-virus” protection software exists, but it unfortunately is only partially effective—for example, because new viruses can escape detection until they become widely known and recognized, and because sophisticated viruses can escape detection by masquerading as tasks the computer is supposed to be performing.
- Computer security risks of all sorts—including the risks from computer viruses—have increased dramatically as computers have become increasingly connected to one another over the Internet and by other means. Increased computer connectivity provides increased capabilities, but also creates a host of computer security problems that haven't been fully solved. For example, electronic networks are an obvious path for spreading computer viruses. In October 1988, a university student used the Internet (a network of computer networks connected to millions of computers worldwide) to infect thousands of university and business computers with a self-replicating “worm” virus that took over the infected computers and caused them to execute the computer virus instead of performing the tasks they were supposed to perform. This computer virus outbreak (which resulted in a criminal prosecution) caused widespread panic throughout the electronic community.
- Computer viruses are by no means the only computer security risk made even more significant by increased computer connectivity. For example, a significant percentage of the online electronic community has recently become committed to a new “portable” computer language called Java™ developed by Sun Microsystems of Mountain View, Calif. Java was designed to allow computers to interactively and dynamically download computer program code fragments (called “applets”) over an electronic network such as the internet, and execute the downloaded code fragments locally. Java's “download and execute” capability is valuable because it allows certain tasks to be performed locally on local equipment using local resources. For example, a user's computer could run a particularly computationally or data-intensive routine—relieving the provider's computer from having to run the task and/or eliminating the need to transmit large amounts of data over the communications path.
- While Java's “download and execute” capability has great potential, it raises significant computer security concerns. For example, Java applets could be written to damage hardware, software or information on the recipient computer, make the computer unstable by depleting its resources, and/or access confidential information on the computer and send it to someone else without first getting the computer owner's permission. People have expended lots of time and effort trying to solve Java's security problems. To alleviate some of these concerns, Sun Microsystems has developed a Java interpreter providing certain built-in security features such as:
-
- a Java verifier that will not let an applet execute until the verifier verifies the applet doesn't violate certain rules,
- a Java class loader that treats applets originating remotely differently from those originating locally,
- a Java security manager that controls access to resources such as files and network access, and
- promised to come soon—the use of digital signatures for authenticating applets.
- Numerous security flaws have been found despite these techniques. Moreover, a philosophy underlying this overall security design is that a user will have no incentive to compromise the security of her own locally installed Java interpreter—and that any such compromise is inconsequential from a system security standpoint because only the user's own computer (and its contents) are at risk. This philosophy—which is typical of many security system designs—is seriously flawed in many useful electronic commerce contexts for reasons described below in connection with the above-referenced Ginter et al. patent specification.
- The Ginter et al. specification describes a “virtual distribution environment” comprehensively providing overall systems and wide arrays of methods, techniques, structures and arrangements that enable secure, efficient electronic commerce and rights management, including on the Internet or other “Information Super Highway.”
- The Ginter et al. patent disclosure describes, among other things, techniques for providing a secure, tamper resistant execution spaces within a “protected processing environment” for computer programs and data. The protected processing environment described in Ginter et al. may be hardware-based, software-based, or a hybrid. It can execute computer code the Ginter et al. disclosure refers to as “load modules.” See, for example, Ginter et al.
FIG. 23 and corresponding text. These load modules—which can be transmitted from remote locations within secure cryptographic wrappers or “containers”—are used to perform the basic operations of the “virtual distribution environment.” Load modules may contain algorithms, data, cryptographic keys, shared secrets, and/or other information that permits a load module to interact with other system components (e.g., other load modules and/or computer programs operating in the same or different protected processing environment). For a load module to operate and interact as intended, it must execute without unauthorized modification and its contents may need to be protected from disclosure. - Unlike many other computer security scenarios, there may be a significant incentive for an owner of a Ginter et al. type protected processing environment to attack his or her own protected processing environment. For example:
-
- the owner may wish to “turn off” payment mechanisms necessary to ensure that people delivering content and other value receive adequate compensation; or
- the owner may wish to defeat other electronic controls preventing him or her from performing certain tasks (for example, copying content without authorization); or
- the owner may wish to access someone else's confidential information embodied within electronic controls present in the owner's protected processing environment; or
- the owner may wish to change the identity of a payment recipient indicated within controls such that they receive payments themselves, or to interfere with commerce; or
- the owner may wish to defeat the mechanism(s) that disable some or all functions when budget has been exhausted, or audit trails have not been delivered.
- Security experts can often be heard to say that to competently do their job, they must “think like an attacker.” For example, a successful home security system installer must try to put herself in the place of a burglar trying to break in. Only by anticipating how a burglar might try to break into a house can the installer successfully defend the house against burglary. Similarly, computer security experts must try to anticipate the sorts of attacks that might be brought against a presumably secure computer system.
- From this “think like an attacker” viewpoint, introducing a bogus load module is one of the strongest possible forms of attack (by a protected processing environment user or anyone else) on the virtual distribution environment disclosed in the Ginter et al. patent specification. Because load modules have access to internal protected data structures within protected processing environments and also (at least to an extent) control the results brought about by those protected processing environments, bogus load modules can (putting aside for the moment additional possible local protections such as addressing and/or ring protection and also putting aside system level fraud and other security related checks) perform almost any action possible in the virtual distribution environment without being subject to intended electronic controls. Especially likely attacks may range from straightforward changes to protected data (for example, adding budget, billing for nothing instead of the desired amount, etc.) to wholesale compromise (for example, using a load module to expose a protected processing environment's cryptographic keys). For at least these reasons, the methods for validating the origin and soundness of a load module are critically important.
- The Ginter et al. patent specification discloses important techniques for securing protected processing environments against inauthentic load modules introduced by the computer owner, user, or any other party, including for example:
-
- Encrypting and authenticating load modules whenever they are shared between protected processing environments via a communications path outside of a tamper-resistant barrier and/or passed between different virtual distribution environment participants;
- Using digital signatures to determine if load module executable content is intact and was created by a trusted source (i.e., one with a correct certificate for creating load modules);
- Strictly controlling initiation of load module execution by use of encryption keys, digital signatures and/or tags;
- Carefully controlling the process of creating, replacing, updating or deleting load modules; and
- Maintaining shared secrets (e.g., cryptographic keys) within a tamper resistant enclosure that the owner of the electronic appliance cannot easily tamper with.
- Although the Ginter et al. patent specification comprehensively solves a host of load module (and other) security related problems, any computer system—no matter how secure—can be “cracked” if enough time, money and effort is devoted to the project. Therefore, even a very secure system such as that disclosed in Ginter et al. can be improved to provide even greater security and protection against attack.
- The present invention provides improved techniques for protecting secure computation and/or execution spaces (as one important but non-limiting example, the protected processing environments as disclosed in Ginter et al) from unauthorized (and potentially harmful) load modules or other “executables” or associated data. In one particular preferred embodiment, these techniques build upon, enhance and/or extend in certain respects, the load module security techniques, arrangements and systems provided in the Ginter et al. specification.
- In accordance with one aspect provided by the present invention, one or more trusted verifying authorities validate load modules or other executables by analyzing and/or testing them. A verifying authority digitally “signs” and “certifies” those load modules or other executables it has verified (using a public key based digital signature and/or certificate based thereon, for example).
- Protected execution spaces such as protected processing environments can be programmed or otherwise conditioned to accept only those load modules or other executables bearing a digital signature/certificate of an accredited (or particular) verifying authority. Tamper resistant barriers may be used to protect this programming or other conditioning. The assurance levels described below are a measure or assessment of the effectiveness with which this programming or other conditioning is protected.
- A web of trust may stand behind a verifying authority. For example, a verifying authority may be an independent organization that can be trusted by all electronic value chain participants not to collaborate with any particular participant to the disadvantage of other participants. A given load module or other executable may be independently certified by any number of authorized verifying authority participants. If a load module or other executable is signed, for example, by five different verifying authority participants, a user will have (potentially) a higher likelihood of finding one that they trust. General commercial users may insist on several different certifiers, and government users, large corporations, and international trading partners may each have their own unique “web of trust” requirements. This “web of trust” prevents value chain participants from conspiring to defraud other value chain participants.
- In accordance with another aspect provided by this invention, each load module or other executable has specifications associated with it describing the executable, its operations, content, and functions. Such specifications could be represented by any combination of specifications, formal mathematical descriptions that can be verified in an automated or other well-defined manner, or any other forms of description that can be processed, verified, and/or tested in an automated or other well-defined manner. The load module or other executable is preferably constructed using a programming language (e.g., languages such as Java and Python) and/or design/implementation methodology (e.g., Gypsy, FDM) that can facilitate automated analysis, validation, verification, inspection, and/or testing.
- A verifying authority analyzes, validates, verifies, inspects, and/or tests the load module or other executable, and compares its results with the specifications associated with the load module or other executable. A verifying authority may digitally sign or certify only those load modules or other executables having proper specifications—and may include the specifications as part of the material being signed or certified.
- A verifying authority may instead, or in addition, selectively be given the responsibility for analyzing the load module and generating a specification for it. Such a specification could be reviewed by the load module's originator and/or any potential users of the load module.
- A verifying authority may selectively be given the authority to generate an additional specification for the load module, for example by translating a formal mathematical specification to other kinds of specifications. This authority could be granted, for example, by a load module originator wishing to have a more accessible, but verified (certified), description of the load module for purposes of informing other potential users of the load module.
- Additionally, a verifying authority may selectively be empowered to modify the specifications to make it accurate—but may refuse to sign or certify load modules or other executables that are harmful or dangerous irrespective of the accuracy of their associated specifications. The specifications may in some instances be viewable by ultimate users or other value chain participants—providing a high degree of assurance that load modules or other executables are not subverting the system and/or the legitimate interest of any participant in an electronic value chain the system supports.
- In accordance with another aspect provided by the present invention, an execution environment protects itself by deciding—based on digital signatures, for example—which load modules or other executables it is willing to execute. A digital signature allows the execution environment to test both the authenticity and the integrity of the load module or other executables, as well permitting a user of such executables to determine their correctness with respect to their associated specifications or other description of their behavior, if such descriptions are included in the verification process.
- A hierarchy of assurance levels may be provided for different protected processing environment security levels. Load modules or other executables can be provided with digital signatures associated with particular assurance levels. Appliances assigned to particular assurance levels can protect themselves from executing load modules or other executables associated with different assurance levels. Different digital signatures and/or certificates may be used to distinguish between load modules or other executables intended for different assurance levels. This strict assurance level hierarchy provides a framework to help ensure that a more trusted environment can protect itself from load modules or other executables exposed to environments with different work factors (e.g., less trusted or tamper resistant environments). This can be used to provide a high degree of security compartmentalization that helps protect the remainder of the system should parts of the system become compromised.
- For example, protected processing environments or other secure execution spaces that are more impervious to tampering (such as those providing a higher degree of physical security) may use an assurance level that isolates it from protected processing environments or other secure execution spaces that are relatively more susceptible to tampering (such as those constructed solely by software executing on a general purpose digital computer in a non-secure location).
- A verifying authority may digitally sign load modules or other executables with a digital signature that indicates or implies assurance level. A verifying authority can use digital signature techniques to distinguish between assurance levels. As one example, each different digital signature may be encrypted using a different verification key and/or fundamentally different encryption, one-way hash and/or other techniques. A protected processing environment or other secure execution space protects itself by executing only those load modules or other executables that have been digitally signed for its corresponding assurance level.
- The present invention may use a verifying authority and the digital signatures it provides to compartmentalize the different electronic appliances depending on their level of security (e.g., work factor or relative tamper resistance). In particular, a verifying authority and the digital signatures it provides isolate appliances with significantly different work factors—preventing the security of high work factor appliances from collapsing into the security of low work factor appliances due to free exchange of load modules or other executables.
- Encryption can be used in combination with the assurance level scheme discussed above to ensure that load modules or other executables can be executed only in specific environments or types of environments. The secure way to ensure that a load module or other executable can't execute in a particular environment is to ensure that the environment doesn't have the key(s) necessary to decrypt it. Encryption can rely on multiple public keys and/or algorithms to transport basic key(s). Such encryption protects the load module or other executable from disclosure to environments (or assurance levels of environments) other than the one it is intended to execute in.
- In accordance with another aspect provided by this invention, a verifying authority can digitally sign a load module or other executable with several different digital signatures and/or signature schemes. A protected processing environment or other secure execution space may require a load module or other executable to present multiple digital signatures before accepting it. An attacker would have to “break” each (all) of the several digital signatures and/or signature schemes to create an unauthorized load module or other executable that would be accepted by the protected processing environment or other secure execution space. Different protected processing environments (secure execution spaces) might examine different subsets of the multiple digital signatures—so that compromising one protected processing environment (secure execution space) will not compromise all of them. As an optimization, a protected processing environment or other secure execution space might verify only one of the several digital signatures (for example, chosen at random each time an executable is used)—thereby speeding up the digital signature verification while still maintaining a high degree of security.
- These and other features and advantages provided in accordance with this invention may be better and more completely understood by referring to the following detailed description of example preferred embodiments in conjunction with the drawings, of which:
-
FIG. 1 illustrates how defective or bogus load modules can wreak havoc in the electronic community; -
FIG. 2 shows an example verification authority that protects the electronic community from unauthorized load modules; -
FIG. 3 shows how a protected processing environment can distinguish between load modules that have been approved by a verifying authority and those that have not been approved; -
FIG. 4 shows an example process a verifying authority may perform to authenticate load modules; -
FIG. 5 shows how a verifying authority can create a certifying digital signature; -
FIG. 6 shows how a protected processing environment can securely authenticate a verifying authority's digital signature to guarantee the integrity of the corresponding load module; -
FIG. 7 shows how several different digital signatures can be applied to the same load module; -
FIG. 8 shows how a load module can be distributed with multiple digital signatures; -
FIG. 8A shows how key management can be used to compartmentalize protected processing environments; -
FIG. 9 shows how a load module can be segmented and each segment protected with a different digital signature; -
FIGS. 10A-10C show how different assurance level electronic appliances can be provided with different cryptographic keys for authenticating verifying authority digital signatures; -
FIGS. 11A-11C show how a verifying authority can use different digital signatures to designate the same or different load modules as being appropriate for execution by different assurance level electronic appliances; -
FIGS. 12, 13 and 13A show how assurance level digital signatures can be used to isolate electronic appliances or appliance types based on work factor and/or tamper resistance to reduce overall security risks; and -
FIG. 14 shows example overall steps that may be performed within an electronic system (such as, for example, a virtual distribution environment) to test, certify, distribute and use executables. -
FIG. 1 shows how defective, bogus and/or unauthorized computer information can wreak havoc within anelectronic system 50. In this example,provider 52 is authorized to produce and distribute “load modules” 54 for use by different users or consumers 56.FIG. 1 shows “load module” 54 as a complicated looking machine part for purposes of illustration only; the load module preferably comprises one or more computer instructions and/or data elements used to assist, allow, prohibit, direct, control or facilitate at least one task performed at least in part by an electronic appliance such as a computer. For example,load module 54 may comprise all or part of an executable computer program and/or associated data (“executable”), and may constitute a sequence of instructions or steps that bring about a certain result within a computer or other computation element. -
FIG. 1 shows a number of electronic appliances 61 such as, for example, a set top box orhome media player 58, apersonal computer 60, and amulti-media player 62. Each ofappliances FIGS. 6-12 ) and described in associated text. Protectedprocessing environments 108 provide a secure execution environment in whichappliances load modules 54 to perform useful tasks. For example: -
-
Provider 52 might produce aload module 54 a for use by the protectedprocessing environment 108A within set top box orhome media player 58.Load module 54 a could, for example, enable the set top box/home media player 58 to play a movie, concert or other interesting program,charge users 56 a a “pay per view” fee, and ensure that the fee is paid to the appropriate rights holder (for example, the film studio, concert promoter or other organization that produced the program material). -
Provider 52 might produce anotherload module 54 b for delivery topersonal computer 60's protectedprocessing environment 108B. Theload module 54 b might enablepersonal computer 60 to perform a financial transaction, such as, for example, home banking, a stock trade or an income tax payment or reporting. -
Provider 52 could produce aload module 54 c for delivery tomulti-media player 62's protected processing environment 108 c. Thisload module 54 c might allowuser 56 c to view a particular multi-media presentation while preventing the user from making a copy of the presentation—or it could control a portion of a transaction (e.g. a meter that records usage, and is incorporated into a larger transaction involving other load modules associated with interacting with a multi-media piece). (As described in the Ginter et al. specification, load modules associated with the financial portion of a transaction, for example, may often be self contained and independent).
-
-
FIG. 1 also shows an unauthorized and/or disreputableload module provider 64.Unauthorized provider 64 knows how to make load modules that look a lot like the load modules produced by authorizedload module provider 52—but are defective or even destructive. Unless precautions are taken, theunauthorized load module 54 d made byunauthorized producer 64 will be able to run on protectedprocessing environments 108 withinappliances system 50. For example: -
-
unauthorized provider 64 could produce aload module 54 d that is quite similar to authorizedload module 54 a intended to be used by set top box orhome media player 58. Theunauthorized load module 54 d might allow protectedprocessing environment 108A within set top box/home media player 58 to present the very same program material—but divert some or all of the user's payment tounauthorized producer 64—thereby defrauding the rights holders in the program material the users watch. -
Unauthorized provider 64 might produce an unauthorized version ofload module 54 b that could, if run bypersonal computer 60's protected processing environment 108 b, disclose the user 64 b's bank and credit card account numbers tounauthorized provider 64 and/or divert electronic or other funds to the unauthorized provider. -
Unauthorized provider 64 could produce an unauthorized version ofload module 54 c that could damage the protected processing environment 108 c withinmulti media player 62—erasing data it needs for its operation and making it unusable. Alternatively, an unauthorized version ofload module 54 c could defeat the copy protection provided bymulti media player 62's protected processing environment, causing the makers of multi media programs to lose substantial revenues through unauthorized copying—or defeat or alter the part of the transaction provided by the load module (e.g., billing, metering, maintaining an audit trail, etc.)
-
-
FIG. 2 shows how a verifyingauthority 100 can prevent the problems shown inFIG. 1 . In this example, authorizedprovider 52 submitsload modules 54 to verifyingauthority 100. Verifyingauthority 100 carefully analyzes the load modules 54 (see 102), testing them to make sure they do what they are supposed to do and do not compromise orharm system 50. If aload module 54 passes thetests verifying authority 100 subjects it to, a verifying authority may affix a digital “seal of approval” (see 104) to the load module. - Protected
processing environments 108 can use this digital “seal of approval” 106 (which may comprise one or more “digital signatures”) to distinguish between authorized andunauthorized load modules 54.FIG. 3 illustrates how an electronic protectedprocessing environment 108 can use and rely on a verifying authority's digital seal ofapproval 106. In this example, the protectedprocessing environment 108 can distinguish between authorized andunauthorized load modules 54 by examining the load module to see whether it bears the seal of verifyingauthority 100. Protectedprocessing environment 108 will execute theload module 54 a with itsprocessor 110 only if the load module bears a verifying authority'sseal 106. Protectedprocessing environment 108 discards and does not use anyload module 54 that does not bear thisseal 106. In this way, protectedprocessing environment 108 securely protects itself againstunauthorized load modules 54 such as, for example, thedefective load module 54 d made by disreputableload module provider 64. -
FIG. 4 shows the analysis and digital signing steps 102, 104 performed by verifyingauthority 100 in this example.Provider 54 may provide, with eachload module 54, associatedspecifications 110 identifying the load module and describing the functions the load module performs. In this example, thesespecifications 110 are illustrated as a manufacturing tag, but preferably comprises a data file associated with and/or attached to theload module 54. - Verifying
authority 100 uses an analyzing tool(s) 112 to analyze andtest load module 54 and determine whether it performs as specified by its associatedspecifications 110—that is, whether the specifications are both accurate and complete.FIG. 4 illustrates ananalysis tool 112 as a magnifying glass; verifyingauthority 100 may not rely on visual inspection only, but instead preferably uses one or more computer-based software testing techniques and/or tools to verify that the load module performs as expected, matchesspecifications 110, is not a “virus,” and includes no significant detectable “bugs” or other harmful functionality. See for example Pressman, Software Engineering: A Practitioner's Approach (3d Ed., McGraw-Hill 1992) at chapters 18 and 19 (“Software Testing Techniques”) (pages 595-661) and the various books and papers referenced there. Although it has been said that “testing can show only the presence of bugs, not their absence,” such testing (in addition to ensuring that theload module 54 satisfies its specifications 110) can provide added degrees of assurance that the load module isn't harmful and will work as it is supposed to. - Verifying
authority 100 is preferably a trusted, independent third party such as an impartial, well respected independent testing laboratory. Therefore, all participants in an electronic transaction involvingload module 54 can trust a verifyingauthority 100 as performing its testing and analysis functions competently and completely objectively and impartially. As described above, there may be severaldifferent verifying authorities 100 that together provide a “web of trust”. Several different verifying authorities may each verify and digitally sign the same load module—increasing the likelihood that a particular value chain participant will trust one of them and decreasing the likelihood of collusion or fraud. Electronic value chain participants may rely upon different verifyingauthorities 100 to certify different types of load modules. For example, one verifyingauthority 100 trusted by and known to financial participants might verify load modules relating to financial aspects of a transaction (e.g., billing), whereas another verifyingauthority 100′ trusted by and known to participants involved in using the “information exhaust” provided by an electronic transaction might be used to verify load modules relating to usage metering aspects of the same transaction. - Once verifying
authority 100 is satisfied withload module 54, it affixes its digital “seal of approval” 106 to the load module.FIG. 4 illustrates the digital sealing process as being performed by astamp 114—but in the preferred embodiment the digital sealing process is actually performed by creating a “digital signature” using a well known process. See Schneier, Applied Cryptography (2d Ed. John Wiley & Sons 1996) at Chapter 20 (pages 483-502). This digital signature, certificate or seal creation process is illustrated inFIG. 5 . - In the
FIG. 5 process, load module 54 (along withspecifications 110 if desired) is processed to yield a “message digest” 116 using a conventional one-way hash function selected to provide an appropriate resistance to algorithmic attack. See, for example, the transformation processes discussed in the Schneier text at Chapter 18, pages 429-455. A one-way hash function 115 provides a “fingerprint” (message digest 116) that is unique to loadmodule 54. The one-way hash function transforms the contents ofload module 54 into message digest 116 based on a mathematical function. This one-way hash mathematical function has the characteristic that it is easy to calculate message digest 116 fromload module 54, but it is hard (computationally infeasible) to calculateload module 54 starting from message digest 116 and it is also hard (computationally infeasible) to find anotherload module 54′ that will transform to the same message digest 116. There are many potential candidate functions (e.g., MD5, SHA), families of functions (e.g., MD5, or SHA with different internal constants), and keyed functions (e.g., message authentication codes based on block ciphers such as DES) that may be employed as one-way hash functions in this scheme. Different functions may have different cryptographic strengths and weaknesses so that techniques which may be developed to defeat one of them are not necessarily applicable to others. - Message digest 116 may then be encrypted using asymmetric key cryptography.
FIG. 5 illustrates this encryption operation using the metaphor of astrong box 118. The message digest 116 is placed intostrong box 118, and the strongbox is locked with alock 120 having two key slots opened by different (“asymmetrical”) keys. A first key 122 (sometimes called the “private” key) is used to lock the lock. A second (different) key 124 (sometimes called the “public” key) must be used to open the lock once the lock has been locked with the first key. The encryption algorithm and key length is selected so that it is computationally infeasible to calculate first key 122 given access tosecond key 124, the public key encryption algorithm, the clear text message digest 116, and the encrypteddigital signature 106. There are many potential candidate algorithms for this type of asymmetric key cryptography (e.g., RSA, DSA, El Gamal, Elliptic Curve Encryption). Different algorithms may have different cryptographic strengths and weaknesses so that techniques which may be developed to defeat one of them are not necessarily applicable to others. - In this case the first key is owned by verifying
authority 100 and is kept highly secure (for example, using standard physical and procedural measures typically employed to keep an important private key secret while preventing it from being lost). Once message digest 116 is locked intostrong box 118 using thefirst key 122 the strong box can be opened only by using the correspondingsecond key 124. Note that other items (e.g., further identification information, a time/date stamp, etc.) can also be placed withinstrong box 106. -
FIG. 6 shows how a protectedprocessing environment 108 “authenticates” thedigital signature 106 created by theFIG. 5 process.Second key 124 and the one-way hash algorithm are first securely provided to the protected processing environment. For example, a secure key exchange protocol can be used as described in connection withFIG. 64 of the Ginter et al. patent specification. Public key cryptography allows second key 124 to be made public without compromisingfirst key 122. However, in this example, protectedprocessing environment 108 preferably keeps the second key 124 (and, if desired, also the one-way hash algorithm and/or its associated key) secret to further increase security. - Maintaining “public”
verification key 124 as a secret within tamper resistant protectedprocessing environment 108 greatly complicates the job of generating bogusdigital signatures 106. If the attacker does not possesssecond key 124, the difficulty of an algorithmic attack or cryptanalytic attack on the verification digital signature algorithm is significantly increased, and the attacker might be reduced to exhaustive search (brute force) type attacks which would be even less practical because the search trials would require attempting to present abogus load module 54 to protectedprocessing environment 108—which, after a few such attempts is likely to refuse all further attempts. Keeping second key 124 secret also requires a multi-disciplinary attack: an attacker must both (A) extract the secret from protectedprocessing environment 108, and (B) attack the algorithm. It may be substantially less likely that a single attacker may have expertise in each of these two specialized disciplines. - In addition, maintaining the “public” key within a tamper-resistant environment forecloses the significant threat that the owner of protected
processing environment 108 may himself attack the environment. For example, if the owner could replace the appropriate “public” key 124 with his own substitute public key, the owner could force the protectedprocessing environment 108 to executeload modules 54 of his own design—thereby compromising the interests of others in enforcing their own controls within the owner's protected processing environment. For example, the owner could turn off the control that required him to pay for watching or prohibited him from copying content. Since protectedprocessing environment 108 can support a “virtual business presence” by parties other than the owner, it is important for the protected processing environment to be protected against attacks from the owner. - The
load module 54 and its associateddigital signature 106 is then delivered to the protectedprocessing environment 108. (These items can be provided together at the same time, independently, or at different times.) Protectedprocessing environment 115 applies the same one way hash transformation onload module 54 that a verifyingauthority 100 applied. Since protectedprocessing environment 108 starts with thesame load module 54 and uses the same one-way hash function 115, it should generate the same message digest 116′. - Protected
processing environment 108 then decryptsdigital signature 106 using thesecond key 124—i.e., it opensstrongbox 118 to retrieve the message digest 116 a verifyingauthority 100 placed in there. Protectedprocessing environment 108 compares the version of message digest 116 it obtains from thedigital signature 106 with the version of message digest 116′ it calculates itself fromload module 54 using the oneway hash transformation 115. The message digests 116, 116′ should be identical. If they do not match,digital signature 106 is not authentic orload module 54 has been changed—and protectedprocessing environment 108 rejectsload module 54. -
FIG. 7 shows that multiple digital signatures 106(1), 106(2), . . . 106(N) can be created for thesame load module 54. For example: -
- one digital signature 106(1) can be created by encrypting message digest 116 with a “private” key 122(1),
- another (different) digital signature 106(2) can be created by encrypting the message digest 116 with a different “private” key 122(2), possibly employing a different signature algorithm, and
- a still different digital signature 106(N) can be generated by encrypting the message digest using a still different “private” key 122(N), possibly employing a different signature algorithm.
- The public key 124(1) corresponding to private key 122(1) acts only to decrypt (authenticate) digital signature 106(1). Similarly,
digital signature 106′ can only be decrypted (authenticated) using public key 124(2) corresponding to the private 122(2). Public key 124(1) will not “unlock” digital signature 106(2) and public key 124(2) will not “unlock” digital signature 106(1). - Different digital signatures 106(1), 106(N) can also be made by using different one way hash functions 115 and/or different encryption algorithms. As shown in
FIG. 8 , aload module 54 may have multiple different types ofdigital signatures 106 associated with it. Requiring aload module 54 to present, to a protectedprocessing environment 108, multipledigital signatures 106 generated using fundamentally different techniques decreases the risk that an attacker can successfully manufacture abogus load module 54. - For example, as shown in
FIG. 8 , thesame load module 54 might be digitally signed using three differentprivate keys 122, cryptographic algorithms, and/or hash algorithms. If a givenload module 54 has multiple distinctdigital signatures 106 each computed using a fundamentally different technique, the risk of compromise is substantially lowered. A single algorithmic advance is unlikely to result in simultaneous success against both (or multiple) cryptographic algorithms. The two digital signature algorithms in widespread use today (RSA and DSA) are based on distinct mathematical problems (factoring in the case of RSA, discrete logs for DSA). The most currently popular one-way hash functions (MD4/MD5 and SHA) have similar internal structures, possibly increasing the likelihood that a successful attack against one would lead to a success against another. However, hash functions can be derived from any number of different block ciphers (e.g., SEAL, IDEA, triple-DES) with different internal structures; one of these might be a good candidate to complement MD5 or SHA. - Multiple signatures as shown in
FIG. 8 impose a cost of additional storage for thesignatures 106 in each protectedload module 54, additional code in the protectedprocessing environment 108 to implement additional algorithms, and additional time to verify the digital signatures (as well as to generate them at verification time). As an optimization to the use of multiple keys or algorithms, an appliance 61 might verify only a subset of several signatures associated with a load module 54 (chosen at random) each time the load module is used. This would speed up signature verification while maintaining a high probability of detection. For example, suppose there are one hundred “private” verification keys, and eachload module 54 carries one hundred digital signatures. Suppose each protectedprocessing environment 108, on the other hand, knows only a few (e.g., ten) of these corresponding “public” verification keys randomly selected from the set. A successful attack on that particular protectedprocessing environment 108 would permit it to be compromised and would also compromise any other protected processing environment possessing and using precisely that same set of ten keys. However, it would not compromise most other protected processing environments—since they would employ a different subset of the keys used by verifyingauthority 100. -
FIG. 8A shows a simplified example of different processing environments 108(1), . . . , 108(N) possessing different subsets of “public” keys used for digital signature authentication—thereby compartmentalizing the protected processing environments based on key management and availability. TheFIG. 8A illustration shows each protectedprocessing environment 108 having only one “public” key 124 that corresponds to one of thedigital signatures 106 used to “sign”load module 54. As explained above, any number ofdigital signatures 106 may be used to sign theload module 54—and different protectedprocessing environment 108 may possess any subset of corresponding “public” keys. -
FIG. 9 shows that aload module 54 may comprise multiple segments 55(1), 55(2), 55(3) signed using differentdigital signatures 106. For example: -
- a first load module segment 55(1) might be signed using a digital signature 106(1);
- a second load module segment 55(2) might be digitally signed using a second digital signature 106(2); and
- a third load module segment 55(3) might be signed using a third digital signature 106(3).
- These three signatures 55(1), 55(2), 55(3) could all be affixed by the
same verifying authority 100, or they could be affixed by three different verifying authorities (providing a “web of trust”). (In another model, a load module is verified in its entirety by multiple parties—if a user trusts any of them, she can trust the load module.) A protectedprocessing environment 108 would need to have all three corresponding “public” keys 124(1), 124(2), 124(3) to authenticate theentire load module 54—or the different load module segments could be used by different protected processing environments possessing the corresponding different keys 124(1), 124(2), 124(3). Different signatures 55(1), 55(2), 55(3) could be calculated using different signature and/or one-way hash algorithms to increase the difficulty of defeating them by cryptanalytic attack. - Assurance Levels
- Verifying
authority 100 can use different digital signing techniques to provide different “assurance levels” for different kinds of electronic appliances 61 having different “work factors” or levels of tamper resistance.FIGS. 10A-10C show an example assurance level hierarchy providing three different assurance levels for different electronic appliance types: -
- Assurance level I might be used for an electronic appliance(s) 61 whose protected
processing environment 108 is based on software techniques that may be somewhat resistant to tampering. An example of an assurance level Ielectronic appliance 61A might be a general purpose personal computer that executes software to create protectedprocessing environment 108. - An assurance level II
electronic appliance 61B may provide a protectedprocessing environment 108 based on a hybrid of software security techniques and hardware-based security techniques. An example of an assurance level IIelectronic appliance 61B might be a general purpose personal computer equipped with a hardware integrated circuit secure processing unit (“SPU”) that performs some secure processing outside of the SPU (see Ginter et al. patent disclosureFIG. 10 and associated text). Such a hybrid arrangement might be relatively more resistant to tampering than a software-only implementation. - The assurance level III
appliance 61C shown is a general purpose personal computer equipped with a hardware-based secure processing unit 132 providing and completely containing protected processing environment 108 (see Ginter et al.FIGS. 6 and 9 for example). A silicon-based special purpose integrated circuit security chip is relatively more tamper-resistant than implementations relying on software techniques for some or all of their tamper-resistance.
- Assurance level I might be used for an electronic appliance(s) 61 whose protected
- In this example, verifying
authority 100 digitally signsload modules 54 using different digital signature techniques (for example, different “private” keys 122) based on assurance level. Thedigital signatures 106 applied by verifyingauthority 100 thus securely encode the same (or different)load module 54 for use by appropriate corresponding assurance level electronic appliances 61. - Assurance level in this example may be assigned to a particular protected
processing environment 108 at initialization (e.g., at the factory in the case of hardware-based secure processing units). Assigning assurance level at initialization time facilitates the use of key management (e.g., secure key exchange protocols) to enforce isolation based on assurance level. For example, since establishment of assurance level is done at initialization time, rather than in the field in this example, the key exchange mechanism can be used to provide new keys (assuming an assurance level has been established correctly). - Within a protected
processing environment 108, as shown inFIGS. 10A-10C , different assurance levels may be assigned to each separate instance of a channel (see Ginter et al.,FIG. 15 ) contained therein. In this way, each secure processing environment and host event processing environment (see Ginter et al.,FIG. 10 and associated description) contained within an instance of aPPE 108 may contain multiple instances of a channel, each with independent and different assurance levels. The nature of this feature of the invention permits the separation of different channels within aPPE 108 from each other, each channel possibly having identical, shared, or independent sets of load modules for each specific channel limited solely to the resources and services authorized for use by that specific channel. In this way, the security of the entire PPE is enhanced and the effect of security breaches within each channel is compartmentalized solely to that channel. - As shown in
FIG. 11A-11C , different digital signatures and/or signature algorithms corresponding to different “assurance levels” may be used to allow a particular execution environment to protect itself fromparticular load modules 54 that are accessible to other classes or “assurance levels” of electronic appliances. As shown in FIGS. 11A-11C: -
- A protected processing environment(s) of assurance level I protects itself (themselves) by executing
only load modules 54 sealed with an assurance level I digital signature 106(I). Protected processing environment(s) 108 having an associated assurance level I is (are) securely issued a public key 124(I) that can “unlock” the level I digital signature. - Similarly, a protected processing environment(s) of assurance level II protects itself (themselves) by executing only the same (or different)
load module 54 sealed with a “Level II” digital signature 106(II). Such a protectedprocessing environment 108 having an associated corresponding assurance level II possess a public key 124(II) used to “unlock” the level II digital signature. - A protected processing environment(s) 108 of assurance level III protects itself (themselves) by executing
only load modules 54 having a digital signature 106(III) for assurance level III. Such an assurance level III protectedprocessing environment 108 possesses acorresponding assurance level 3 public key 124(III). Key management encryption (not signature) keys can allow this protection to work securely.
- A protected processing environment(s) of assurance level I protects itself (themselves) by executing
- In this example, electronic appliances 61 of different assurance levels can communicate with one another and pass
load modules 54 between one another—an important feature providing a scaleable virtual distribution environment involving all sorts of different appliances (e.g., personal computers, laptop computers, handheld computers, television sets, media players, set top boxes, internet browser appliances, smart cards, mainframe computers, etc.) The present invention uses verifyingauthority 100 and the digital signatures it provides to compartmentalize the different electronic appliances depending on their level of security (e.g., work factor or relative tamper resistance). In particular, verifyingauthority 100 and the digital signatures it provides isolate appliances with significantly different work factors—preventing the security of high work factor appliances from collapsing into the security of low work factor appliances due to free exchange ofload modules 54. - In one example, verifying
authority 100 may digitally sign identical copies ofload module 54 for use by different classes or “assurance levels” of electronic appliances 61. If the sharing of aload module 54 between different electronic appliances is regarded as an open communications channel between the protectedprocessing environments 108 of the two appliances, it becomes apparent that there is a high degree of risk in permitting such sharing to occur. In particular, the extra security assurances and precautions of the more trusted environment are collapsed into the those of the less trusted environment because an attacker who compromises a load module within a less trusted environment is then be able to launch the same load module to attack the more trusted environment. Hence, although compartmentalization based on encryption and key management can be used to restrict certain kinds ofload modules 54 to execute only on certain types of electronic appliances 61, a significant application in this context is to compartmentalize the different types of electronic appliances and thereby allow an electronic appliance to protect itself againstload modules 54 of different assurance levels. -
FIG. 12 emphasizes this isolation using the illustrative metaphor of desert islands. It shows how the assurance levels can be used to isolate and compartmentalize any number of different types of electronic appliances 61. In this example: -
- Personal computer 60(1) providing a software-only protected
processing environment 108 may be at assurance level I; - Media player 400(1) providing a software-only based protected processing environment may be at assurance level II;
- Server 402(1) providing a software-only based protected processing environment may be at assurance level III;
- Support service 404(1) providing a software-only based protected processing environment may be at assurance level IV;
- a Personal computer 60(2) providing a hybrid software and hardware protected
processing environment 108 may be at assurance level V; - Media player 400(2) providing a hybrid software and hardware protected processing environment may be at assurance level VI;
- Server 402(2) providing a software and hardware hybrid protected processing environment may be at assurance level VII;
- Support service 404(2) providing a software and hardware hybrid protected processing environment may be at assurance level VIII; and
- Personal computer 60(3) providing a hardware-only protected
processing environment 108 may be at assurance level IX; - Media player 400(3) providing a hardware-only protected processing environment may be at assurance level X;
- Server 402(3) providing a hardware-only based protected processing environment may be at assurance level XI;
- Support service 404(3) providing a hardware-only based protected processing environment may be at assurance level XII.
- Personal computer 60(1) providing a software-only protected
- In accordance with this feature of the invention, verifying
authority 100 supports all of these various categories of digital signatures, andsystem 50 uses key management to distribute the appropriate verification keys to different assurance level devices. For example, verifyingauthority 100 may digitally sign aparticular load module 54 such that only hardware-only based server(s) 402(3) at assurance level XI may authenticate it. This compartmentalization prevents any load module executable on hardware-only servers 402(3) from executing on any other assurance level appliance (for example, software-only protected processing environment based support service 404(1)). - To simplify key management and distribution, execution environments having significantly similar work factors can be classified in the same assurance level.
FIG. 13 shows one example hierarchical assurance level arrangement. In this example, less secure “software only” protectedprocessing environment 108 devices are categorized as assurance level I, somewhat more secure “software and hardware hybrid” protected processing environment appliances are categorized as assurance level II, and more trusted “hardware only” protected processing environment devices are categorized as assurance level III. - To show this type of isolation,
FIG. 13A shows three example corresponding “desert islands.” Desert island I is “inhabited” bypersonal computers 61A providing a software-only protected processing environment. The software-only protected processing environment based personal computers 60(1) “inhabit” desert island I are all of the same assurance level—and thus will each authenticate (and may thus each use) an assurance level I loadmodule 54 a. Desert island II is “inhabited” by assurance level II hybrid software and hardware protected processing environmentpersonal computers 61B. These assurance level II personal computers will each authenticate (and may thus each execute) an assurance level IIload module 54 b. Similarly, a desert island III is “inhabited” by assurance level IIIpersonal computers 61C providing hardware-only protected processing environments. These assurance level IIIdevices 61C may each authenticate and execute an assurance level IIIload module 54 c. - The “desert islands” are created by the use of different digital signatures on each of
load modules level load modules 54 will be authenticated only byappliances 60 having corresponding assurance levels, the load modules cannot leave their associated “desert island”—providing isolation between the different assurance level execution environments. More specifically, a particular assurance level appliance 61 thus protects itself from using aload module 54 of a different assurance level. Digital signatures (and/or signature algorithms) 106 in this sense create the isolated “desert islands” shown—since they allow execution environments to protect themselves from “off island”load modules 54 of different assurance levels. - A load module or other executable may be certified for multiple assurance levels. Different digital signatures may be used to certify the same load module or other executable for different respective assurance levels. The load module or other executable could also be encrypted differently (e.g. using different keys to encrypt the load module) based on assurance level. If a load module is encrypted differently for different assurance levels, and the keys and/or algorithms that are used to decrypt such load modules are only distributed to environments of the same assurance level, an additional measure of security is provided. The risk associated with disclosing the load module or other executable contents (e.g., by decrypting encrypted code before execution) in a lower assurance environment does not compromise the security of higher assurance level systems directly, but it may help the attacker learn how the load module or other executable works and how to encrypt them—which can be important in making bogus load modules or other executables (although not in certifying them—since certification requires keys that would only become available to an attacker who has compromised the keys of a corresponding appropriate assurance level environment). Commercially, it may be important for administrative ease and consistency to take this risk. In other cases, it will not be (e.g. provider sensitivities, government uses, custom functions, etc.)
-
FIG. 14 shows an example sequence of steps that may be performed in an overall process provided by these inventions. To begin the overall process, aload module provider 52 may manufacture a load module and associated specifications (FIG. 14 , block 502).Provider 52 may then submit the load module and associated specifications to verifyingauthority 100 for verification (FIG. 14 , block 504). Verifyingauthority 100 may analyze, test, and/or otherwise validate the load module against the specifications (FIG. 14 , block 506), and determine whether the load module satisfies the specifications. - If the load module is found to satisfy its specifications, a verifying
authority 100 determines whether it is authorized to generate one or more new specifications for the load module (FIG. 14 , block 509). If it is authorized and this function has been requested (“Y” exit to decision block 509), a verifying authority generates specifications and associates them with the load module (FIG. 14 , block 514). - If the load module fails the test (“N” exit to decision block 508), verifying
authority 100 determines whether it is authorized and able to create new specifications corresponding to the actual load module performance, and whether it is desirable to create the conforming specifications (FIG. 14 , decision block 510). If verifyingauthority 100 decides not to make new specifications (“N” exit to decision block 510), verifying authority returns the load module to provider 52 (block 512) and the process ends. On the other hand, if verifyingauthority 100 determines that it is desirable to make new specifications and it is able and authorized to do so, a verifyingauthority 100 may make new specifications that conform to the load module (“Y” exit to decision block 510; block 514). - A verifying
authority 100 may then digitally sign theload module 54 to indicate approval (FIG. 14 , block 516). Thisstep 516 may involve applying multiple digital signatures and/or a selection of the appropriate digital signatures to use in order to restrict the load module to particular “assurance levels” of electronic appliances as discussed above. Verifying authority may then determine the distribution of the load module (FIG. 14 , block 518). This “determine distribution” step may involve, for example, determining who the load module should be distributed to (e.g.,provider 52,support services 404, a load module repository operated by a verifying authority, etc.) and/or what should be distributed (e.g., the load module plus corresponding digital signatures, digital signatures only, digital signatures and associated description, etc.). Verifyingauthority 100 may then distribute the appropriate information to a value chain using the appropriate distribution techniques (FIG. 14 , block 520).
Claims (21)
1. A computer-readable medium comprising program code, the program code being operable, when executed by an electronic appliance comprising a protected processing environment that is resistant to tampering by users of the electronic appliance, to cause the electronic appliance to perform steps comprising:
receiving a first digital signature associated with a load module;
receiving a second digital signature associated with the load module;
authenticating the first digital signature using a first key; and
conditionally executing the load module based at least in part on a result of the authenticating step.
2. The computer-readable medium of claim 1 , in which the first digital signature is associated with a first part of the load module, and the second digital signature is associated with a second, different, part of the load module, the computer-readable medium further including program code that is operable, when executed by the electronic appliance, to cause the electronic appliance to perform the step of:
authenticating the second digital signature.
3. The computer-readable medium of claim 1 , further including program code that is operable, when executed by the electronic appliance, to cause the electronic appliance to perform steps comprising:
after performing the conditionally executing step, authenticating the second digital signature; and
conditionally executing the load module based, at least in part, on a result of the step of authenticating the second digital signature.
4. The computer-readable medium of claim 3 , in which the first digital signature is associated with a first part of the load module, and the second digital signature is associated with a second, different, part of the load module.
5. The computer-readable medium of claim 1 , further including program code that is operable, when executed by the electronic appliance, to cause the electronic appliance to perform the step of:
randomly selecting the first digital signature for authentication from a set of digital signatures comprising at least the first digital signature and the second digital signature.
6. The computer-readable medium of claim 3 , further including program code that is operable, when executed by the electronic appliance, to cause the electronic appliance to perform the step of:
randomly selecting the second digital signature for authentication from a set of digital signatures comprising at least the first digital signature and the second digital signature.
7. The computer-readable medium of claim 1 , in which the first digital signature is generated by a first entity and the second digital signature is generated by a second entity that is different from the first entity, the computer readable medium further including program code that is operable, when executed by the electronic appliance, to cause the electronic appliance to perform the step of:
authenticating the second digital signature.
8. The computer-readable medium of claim 1 , further including program code that is operable, when executed by the electronic appliance, to cause the electronic appliance to perform steps comprising:
securely receiving the first key, the first key comprising a public key of a first entity; and
securely receiving a public key of a second entity, the public key of the second entity being configured for use in authenticating the second digital signature.
9. The computer-readable medium of claim 1 , further including program code that is operable, when executed by the electronic appliance, to cause the electronic appliance to perform the step of:
authenticating the second digital signature.
10. The computer-readable medium of claim 1 , further including program code that is operable, when executed by the electronic appliance, to cause the electronic appliance to perform the step of:
distributing the load module to a second electronic appliance.
11. The computer-readable medium of claim 1 , further including the load module, the load module being operable, when executed by the electronic appliance, to cause the electronic appliance to perform at least one action selected from the group consisting of:
recording an aspect of usage of a piece of electronic content, preventing a user of the electronic appliance from making a copy of a piece of electronic content, charging a user of the electronic appliance a fee for viewing a piece of electronic content, enabling the electronic appliance to playa piece of electronic content, and enabling the electronic appliance to perform a financial transaction.
12. A system comprising:
an electronic appliance comprising a protected processing environment;
means for receiving a first digital signature associated with a load module;
means for receiving a second digital signature associated with the load module;
means for authenticating the first digital signature using a first key; and
means for conditionally executing the load module based at least in part on a result generated by the means for authenticating the first digital signature;
wherein the protected processing environment is operable to impede tampering by a user of the electronic appliance with at least the means for authenticating the first digital signature and the means for conditionally executing the load module.
13. The system of claim 12 , in which the protected processing environment is operable to maintain the first key as a secret from the user of the electronic appliance.
14. The system of claim 13 , in which the first key comprises a public key.
15. The system of claim 12 , in which the first digital signature is associated with a first part of the load module, and the second digital signature is associated with a second, different, part of the load module, the system further comprising:
means for authenticating the second digital signature;
wherein the means for conditionally executing the load module comprises means for conditionally executing the load module based at least in part on a result generated by the means for authenticating the second digital signature.
16. The system of claim 15 , in which the means for authenticating the second digital signature is configured to make use of a second key that is different from the first key.
17. The system of claim 12 , further comprising:
means for authenticating the second digital signature after executing the load module at least a first time; and
means for conditionally executing the load module at least a second time based, at least in part, on a result generated by the means for authenticating the second digital signature.
18. The system of claim 17 , in which the first digital signature is associated with a first part of the load module, and the second digital signature is associated with a second, different, part of the load module.
19. The system of claim 12 , further comprising:
means for randomly selecting the first digital signature for authentication from a set of digital signatures comprising at least the first digital signature and the second digital signature.
20. The system of claim 17 , further comprising:
means for randomly selecting the second digital signature for authentication from a set of digital signatures comprising at least the first digital signature and the second digital signature.
21-25. (canceled)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/978,962 US20080114698A1 (en) | 1996-08-12 | 2007-10-29 | Systems and methods using cryptography to protect secure computing environments |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/689,754 US6157721A (en) | 1996-08-12 | 1996-08-12 | Systems and methods using cryptography to protect secure computing environments |
US09/678,830 US6292569B1 (en) | 1996-08-12 | 2000-10-04 | Systems and methods using cryptography to protect secure computing environments |
US09/925,072 US7120802B2 (en) | 1996-08-12 | 2001-08-06 | Systems and methods for using cryptography to protect secure computing environments |
US11/454,072 US7925898B2 (en) | 1996-08-12 | 2006-06-14 | Systems and methods using cryptography to protect secure computing environments |
US84213607A | 2007-08-21 | 2007-08-21 | |
US11/978,962 US20080114698A1 (en) | 1996-08-12 | 2007-10-29 | Systems and methods using cryptography to protect secure computing environments |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US84213607A Continuation | 1996-08-12 | 2007-08-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080114698A1 true US20080114698A1 (en) | 2008-05-15 |
Family
ID=24769786
Family Applications (15)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/689,754 Expired - Lifetime US6157721A (en) | 1995-02-13 | 1996-08-12 | Systems and methods using cryptography to protect secure computing environments |
US09/678,830 Expired - Lifetime US6292569B1 (en) | 1995-02-13 | 2000-10-04 | Systems and methods using cryptography to protect secure computing environments |
US09/925,072 Expired - Lifetime US7120802B2 (en) | 1995-02-13 | 2001-08-06 | Systems and methods for using cryptography to protect secure computing environments |
US10/272,905 Abandoned US20030041239A1 (en) | 1996-08-12 | 2002-10-18 | Systems and methods using cryptography to protect secure computing environments |
US11/454,072 Expired - Fee Related US7925898B2 (en) | 1995-02-13 | 2006-06-14 | Systems and methods using cryptography to protect secure computing environments |
US11/781,062 Abandoned US20100023761A1 (en) | 1996-08-12 | 2007-07-20 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US11/894,327 Expired - Fee Related US7734553B2 (en) | 1996-08-12 | 2007-08-20 | Systems and methods using cryptography to protect secure computing environments |
US11/841,446 Abandoned US20080031461A1 (en) | 1996-08-12 | 2007-08-20 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US11/841,555 Abandoned US20080034214A1 (en) | 1996-08-12 | 2007-08-20 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US11/841,600 Expired - Fee Related US7761916B2 (en) | 1996-08-12 | 2007-08-20 | Systems and methods using cryptography to protect secure computing environments |
US11/841,518 Expired - Fee Related US7904707B2 (en) | 1995-02-13 | 2007-08-20 | Systems and methods using cryptography to protect secure computing environments |
US11/894,502 Expired - Fee Related US7581092B2 (en) | 1996-08-12 | 2007-08-20 | Systems and methods using cryptography to protect secure computing environments |
US11/842,138 Abandoned US20080033884A1 (en) | 1996-08-12 | 2007-08-21 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US11/978,962 Abandoned US20080114698A1 (en) | 1996-08-12 | 2007-10-29 | Systems and methods using cryptography to protect secure computing environments |
US13/021,476 Abandoned US20110131422A1 (en) | 1995-02-13 | 2011-02-04 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
Family Applications Before (13)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/689,754 Expired - Lifetime US6157721A (en) | 1995-02-13 | 1996-08-12 | Systems and methods using cryptography to protect secure computing environments |
US09/678,830 Expired - Lifetime US6292569B1 (en) | 1995-02-13 | 2000-10-04 | Systems and methods using cryptography to protect secure computing environments |
US09/925,072 Expired - Lifetime US7120802B2 (en) | 1995-02-13 | 2001-08-06 | Systems and methods for using cryptography to protect secure computing environments |
US10/272,905 Abandoned US20030041239A1 (en) | 1996-08-12 | 2002-10-18 | Systems and methods using cryptography to protect secure computing environments |
US11/454,072 Expired - Fee Related US7925898B2 (en) | 1995-02-13 | 2006-06-14 | Systems and methods using cryptography to protect secure computing environments |
US11/781,062 Abandoned US20100023761A1 (en) | 1996-08-12 | 2007-07-20 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US11/894,327 Expired - Fee Related US7734553B2 (en) | 1996-08-12 | 2007-08-20 | Systems and methods using cryptography to protect secure computing environments |
US11/841,446 Abandoned US20080031461A1 (en) | 1996-08-12 | 2007-08-20 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US11/841,555 Abandoned US20080034214A1 (en) | 1996-08-12 | 2007-08-20 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US11/841,600 Expired - Fee Related US7761916B2 (en) | 1996-08-12 | 2007-08-20 | Systems and methods using cryptography to protect secure computing environments |
US11/841,518 Expired - Fee Related US7904707B2 (en) | 1995-02-13 | 2007-08-20 | Systems and methods using cryptography to protect secure computing environments |
US11/894,502 Expired - Fee Related US7581092B2 (en) | 1996-08-12 | 2007-08-20 | Systems and methods using cryptography to protect secure computing environments |
US11/842,138 Abandoned US20080033884A1 (en) | 1996-08-12 | 2007-08-21 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/021,476 Abandoned US20110131422A1 (en) | 1995-02-13 | 2011-02-04 | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
Country Status (2)
Country | Link |
---|---|
US (15) | US6157721A (en) |
AU (2) | AU3681597A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8127137B2 (en) | 2004-03-18 | 2012-02-28 | Digimarc Corporation | Watermark payload encryption for media including multiple watermarks |
EP2587421A1 (en) * | 2011-10-31 | 2013-05-01 | NCR Corporation | Securely delivering and verifying a mobile boarding pass |
US10943030B2 (en) | 2008-12-15 | 2021-03-09 | Ibailbonding.Com | Securable independent electronic document |
Families Citing this family (417)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6522770B1 (en) | 1999-05-19 | 2003-02-18 | Digimarc Corporation | Management of documents and other objects using optical devices |
US8094949B1 (en) | 1994-10-21 | 2012-01-10 | Digimarc Corporation | Music methods and systems |
JPH08263438A (en) | 1994-11-23 | 1996-10-11 | Xerox Corp | Distribution and use control system of digital work and access control method to digital work |
US6963859B2 (en) * | 1994-11-23 | 2005-11-08 | Contentguard Holdings, Inc. | Content rendering repository |
US7761910B2 (en) * | 1994-12-30 | 2010-07-20 | Power Measurement Ltd. | System and method for assigning an identity to an intelligent electronic device |
SE504085C2 (en) | 1995-02-01 | 1996-11-04 | Greg Benson | Methods and systems for managing data objects in accordance with predetermined conditions for users |
US7165174B1 (en) * | 1995-02-13 | 2007-01-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management |
US20060206397A1 (en) * | 1995-02-13 | 2006-09-14 | Intertrust Technologies Corp. | Cryptographic methods, apparatus and systems for storage media electronic right management in closed and connected appliances |
EP1526472A3 (en) * | 1995-02-13 | 2006-07-26 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US7095854B1 (en) * | 1995-02-13 | 2006-08-22 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6948070B1 (en) * | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6658568B1 (en) | 1995-02-13 | 2003-12-02 | Intertrust Technologies Corporation | Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management |
US20120166807A1 (en) | 1996-08-12 | 2012-06-28 | Intertrust Technologies Corp. | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US5943422A (en) | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
US7133845B1 (en) * | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | System and methods for secure transaction management and electronic rights protection |
US7143290B1 (en) * | 1995-02-13 | 2006-11-28 | Intertrust Technologies Corporation | Trusted and secure techniques, systems and methods for item delivery and execution |
US7124302B2 (en) * | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6157721A (en) * | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US7133846B1 (en) * | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US6549942B1 (en) * | 1995-05-25 | 2003-04-15 | Audiohighway.Com | Enhanced delivery of audio data for portable playback |
US6965682B1 (en) | 1999-05-19 | 2005-11-15 | Digimarc Corp | Data transmission by watermark proxy |
WO1997043761A2 (en) | 1996-05-15 | 1997-11-20 | Intertrust Technologies Corp. | Cryptographic methods, apparatus and systems for storage media electronic rights management in closed and connected appliances |
US7590853B1 (en) * | 1996-08-12 | 2009-09-15 | Intertrust Technologies Corporation | Systems and methods using cryptography to protect secure computing environments |
US7917643B2 (en) | 1996-09-12 | 2011-03-29 | Audible, Inc. | Digital information library and delivery system |
US5926624A (en) | 1996-09-12 | 1999-07-20 | Audible, Inc. | Digital information library and delivery system with logic for generating files targeted to the playback device |
US7058822B2 (en) | 2000-03-30 | 2006-06-06 | Finjan Software, Ltd. | Malicious mobile code runtime monitoring system and methods |
US6141698A (en) * | 1997-01-29 | 2000-10-31 | Network Commerce Inc. | Method and system for injecting new code into existing application code |
GB2321741B (en) * | 1997-02-03 | 2000-10-04 | Certicom Corp | Data card verification system |
US7216043B2 (en) * | 1997-02-12 | 2007-05-08 | Power Measurement Ltd. | Push communications architecture for intelligent electronic devices |
US7062500B1 (en) * | 1997-02-25 | 2006-06-13 | Intertrust Technologies Corp. | Techniques for defining, using and manipulating rights management data structures |
US6233684B1 (en) | 1997-02-28 | 2001-05-15 | Contenaguard Holdings, Inc. | System for controlling the distribution and use of rendered digital works through watermaking |
US8914410B2 (en) | 1999-02-16 | 2014-12-16 | Sonicwall, Inc. | Query interface to policy server |
US6408336B1 (en) | 1997-03-10 | 2002-06-18 | David S. Schneider | Distributed administration of access to information |
US7821926B2 (en) | 1997-03-10 | 2010-10-26 | Sonicwall, Inc. | Generalized policy server |
EP0866611A1 (en) * | 1997-03-21 | 1998-09-23 | CANAL+ Société Anonyme | Broadcast receiving system comprising a computer and a decoder |
EP0988591A1 (en) | 1997-06-09 | 2000-03-29 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
US6424712B2 (en) | 1997-10-17 | 2002-07-23 | Certicom Corp. | Accelerated signature verification on an elliptic curve |
US7268700B1 (en) | 1998-01-27 | 2007-09-11 | Hoffberg Steven M | Mobile communication device |
US6385596B1 (en) | 1998-02-06 | 2002-05-07 | Liquid Audio, Inc. | Secure online music distribution system |
US7809138B2 (en) * | 1999-03-16 | 2010-10-05 | Intertrust Technologies Corporation | Methods and apparatus for persistent control and protection of content |
US6324685B1 (en) * | 1998-03-18 | 2001-11-27 | Becomm Corporation | Applet server that provides applets in various forms |
US20040098584A1 (en) * | 1998-03-25 | 2004-05-20 | Sherman Edward G. | Method and system for embedded, automated, component-level control of computer systems and other complex systems |
US6170014B1 (en) * | 1998-03-25 | 2001-01-02 | Community Learning And Information Network | Computer architecture for managing courseware in a shared use operating environment |
US6253237B1 (en) | 1998-05-20 | 2001-06-26 | Audible, Inc. | Personalized time-shifted programming |
US20040117663A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Method for authentication of digital content used or accessed with secondary devices to reduce unauthorized use or distribution |
US20040117631A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Method for digital rights management including user/publisher connectivity interface |
US20040117628A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Computer readable storage medium for enhancing license compliance of software/digital content including self-activating/self-authenticating software/digital content |
US20040117644A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Method for reducing unauthorized use of software/digital content including self-activating/self-authenticating software/digital content |
US20040117664A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Apparatus for establishing a connectivity platform for digital rights management |
US6044471A (en) | 1998-06-04 | 2000-03-28 | Z4 Technologies, Inc. | Method and apparatus for securing software to reduce unauthorized use |
US6986063B2 (en) * | 1998-06-04 | 2006-01-10 | Z4 Technologies, Inc. | Method for monitoring software using encryption including digital signatures/certificates |
US20040107368A1 (en) * | 1998-06-04 | 2004-06-03 | Z4 Technologies, Inc. | Method for digital rights management including self activating/self authentication software |
US20040225894A1 (en) * | 1998-06-04 | 2004-11-11 | Z4 Technologies, Inc. | Hardware based method for digital rights management including self activating/self authentication software |
WO1999064973A1 (en) * | 1998-06-10 | 1999-12-16 | Auckland Uniservices Limited | Software watermarking techniques |
US7110984B1 (en) * | 1998-08-13 | 2006-09-19 | International Business Machines Corporation | Updating usage conditions in lieu of download digital rights management protected content |
ATE343169T1 (en) * | 1998-08-31 | 2006-11-15 | Irdeto Access Bv | SYSTEM FOR SUPPLYING ENCRYPTED DATA, SYSTEM FOR DECRYPTING ENCRYPTED DATA AND METHOD FOR PROVIDING A COMMUNICATIONS INTERFACE IN SUCH A SYSTEM |
US6820063B1 (en) | 1998-10-26 | 2004-11-16 | Microsoft Corporation | Controlling access to content based on certificates and access predicates |
US7139915B2 (en) | 1998-10-26 | 2006-11-21 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US6609199B1 (en) | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US7194092B1 (en) | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
US7174457B1 (en) * | 1999-03-10 | 2007-02-06 | Microsoft Corporation | System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party |
US6820202B1 (en) * | 1998-11-09 | 2004-11-16 | First Data Corporation | Account authority digital signature (AADS) system |
US6330588B1 (en) * | 1998-12-21 | 2001-12-11 | Philips Electronics North America Corporation | Verification of software agents and agent activities |
US8175977B2 (en) | 1998-12-28 | 2012-05-08 | Audible | License management for digital content |
US7404077B1 (en) * | 1999-01-29 | 2008-07-22 | International Business Machines Corporation | Extension of X.509 certificates to simultaneously support multiple cryptographic algorithms |
WO2000048108A1 (en) | 1999-02-12 | 2000-08-17 | Mack Hicks | System and method for providing certification-related and other services |
CA2363465A1 (en) | 1999-02-26 | 2000-08-31 | Authentidate Holding Corp. | Digital file management and imaging system and method including secure file marking |
US7549056B2 (en) | 1999-03-19 | 2009-06-16 | Broadcom Corporation | System and method for processing and protecting content |
US7058803B2 (en) * | 2002-05-22 | 2006-06-06 | Broadcom Corporation | System and method for protecting transport stream content |
US20020012432A1 (en) * | 1999-03-27 | 2002-01-31 | Microsoft Corporation | Secure video card in computing device having digital rights management (DRM) system |
US6829708B1 (en) * | 1999-03-27 | 2004-12-07 | Microsoft Corporation | Specifying security for an element by assigning a scaled value representative of the relative security thereof |
US7409546B2 (en) * | 1999-10-20 | 2008-08-05 | Tivo Inc. | Cryptographically signed filesystem |
JP2000286836A (en) * | 1999-03-30 | 2000-10-13 | Fujitsu Ltd | Certification device and recording medium |
US6651171B1 (en) * | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
WO2000062189A2 (en) * | 1999-04-12 | 2000-10-19 | Reciprocal, Inc. | System and method for data rights management |
US6959384B1 (en) * | 1999-12-14 | 2005-10-25 | Intertrust Technologies Corporation | Systems and methods for authenticating and protecting the integrity of data streams and other data |
US6785815B1 (en) | 1999-06-08 | 2004-08-31 | Intertrust Technologies Corp. | Methods and systems for encoding and protecting data using digital signature and watermarking techniques |
AU6104800A (en) * | 1999-07-16 | 2001-02-05 | Intertrust Technologies Corp. | Trusted storage systems and methods |
US7152165B1 (en) * | 1999-07-16 | 2006-12-19 | Intertrust Technologies Corp. | Trusted storage systems and methods |
US7430670B1 (en) | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US7243236B1 (en) * | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
US7770016B2 (en) * | 1999-07-29 | 2010-08-03 | Intertrust Technologies Corporation | Systems and methods for watermarking software and other media |
ATE306098T1 (en) | 1999-07-30 | 2005-10-15 | Intertrust Tech Corp | METHODS AND SYSTEMS FOR TRANSACTION RECORD TRANSMISSION USING THRESHOLD AND A MULTI-LEVEL PROTOCOL |
EP1076279A1 (en) * | 1999-08-13 | 2001-02-14 | Hewlett-Packard Company | Computer platforms and their methods of operation |
US7124170B1 (en) | 1999-08-20 | 2006-10-17 | Intertrust Technologies Corp. | Secure processing unit systems and methods |
US7406603B1 (en) | 1999-08-31 | 2008-07-29 | Intertrust Technologies Corp. | Data protection systems and methods |
US20020029200A1 (en) | 1999-09-10 | 2002-03-07 | Charles Dulin | System and method for providing certificate validation and other services |
US9092535B1 (en) | 1999-09-21 | 2015-07-28 | Google Inc. | E-mail embedded textual hyperlink object |
US7840639B1 (en) * | 1999-09-21 | 2010-11-23 | G&H Nevada-Tek | Method and article of manufacture for an automatically executed application program associated with an electronic message |
US6360221B1 (en) | 1999-09-21 | 2002-03-19 | Neostar, Inc. | Method and apparatus for the production, delivery, and receipt of enhanced e-mail |
US6985885B1 (en) | 1999-09-21 | 2006-01-10 | Intertrust Technologies Corp. | Systems and methods for pricing and selling digital goods |
CA2384242A1 (en) | 1999-09-24 | 2001-04-05 | Mary Mckenney | System and method for providing payment services in electronic commerce |
US6683954B1 (en) * | 1999-10-23 | 2004-01-27 | Lockstream Corporation | Key encryption using a client-unique additional key for fraud prevention |
US6430561B1 (en) | 1999-10-29 | 2002-08-06 | International Business Machines Corporation | Security policy for protection of files on a storage device |
US6748538B1 (en) * | 1999-11-03 | 2004-06-08 | Intel Corporation | Integrity scanner |
US6876991B1 (en) | 1999-11-08 | 2005-04-05 | Collaborative Decision Platforms, Llc. | System, method and computer program product for a collaborative decision platform |
US8055894B2 (en) * | 1999-11-09 | 2011-11-08 | Google Inc. | Process and streaming server for encrypting a data stream with bandwidth based variation |
US6449719B1 (en) * | 1999-11-09 | 2002-09-10 | Widevine Technologies, Inc. | Process and streaming server for encrypting a data stream |
US20010010720A1 (en) * | 1999-11-12 | 2001-08-02 | Kimball Bridget D. | Multiple signature authentication in conditional access systems |
US6757824B1 (en) | 1999-12-10 | 2004-06-29 | Microsoft Corporation | Client-side boot domains and boot rules |
DE10048939B4 (en) * | 1999-12-11 | 2010-08-19 | International Business Machines Corp. | Conditional suppression of verification of a cardholder |
US6963971B1 (en) * | 1999-12-18 | 2005-11-08 | George Bush | Method for authenticating electronic documents |
US6832316B1 (en) * | 1999-12-22 | 2004-12-14 | Intertrust Technologies, Corp. | Systems and methods for protecting data secrecy and integrity |
FI111567B (en) * | 1999-12-27 | 2003-08-15 | Nokia Corp | A method for downloading a program module |
US20020114465A1 (en) * | 2000-01-05 | 2002-08-22 | Shen-Orr D. Chaim | Digital content delivery system and method |
WO2001052018A1 (en) * | 2000-01-14 | 2001-07-19 | Microsoft Corporation | Specifying security for an element by assigning a scaled value representative of the relative security thereof |
US6883032B1 (en) * | 2000-02-02 | 2005-04-19 | Lucent Technologies Inc. | Method and system for collecting data on the internet |
JP2001219440A (en) * | 2000-02-09 | 2001-08-14 | Sony Disc Technology Inc | Multi-cavity molding apparatus and its molding method |
US20010037450A1 (en) * | 2000-03-02 | 2001-11-01 | Metlitski Evgueny A. | System and method for process protection |
US6549888B1 (en) * | 2000-03-14 | 2003-04-15 | Agb2, Inc. | Systems and methods for bonding information and services to assure the accuracy of the information and/or performance of services provided by a network server |
US7526560B1 (en) * | 2000-03-30 | 2009-04-28 | Oracle International Corporation | Method and apparatus for sharing a secure connection between a client and multiple server nodes |
US7266681B1 (en) | 2000-04-07 | 2007-09-04 | Intertrust Technologies Corp. | Network communications security agent |
US7085839B1 (en) | 2000-04-07 | 2006-08-01 | Intertrust Technologies Corporation | Network content management |
US7093135B1 (en) * | 2000-05-11 | 2006-08-15 | Cybersoft, Inc. | Software virus detection methods and apparatus |
US7313692B2 (en) | 2000-05-19 | 2007-12-25 | Intertrust Technologies Corp. | Trust management systems and methods |
US7107448B1 (en) | 2000-06-04 | 2006-09-12 | Intertrust Technologies Corporation | Systems and methods for governing content rendering, protection, and management applications |
US20050120217A1 (en) * | 2000-06-05 | 2005-06-02 | Reallegal, Llc | Apparatus, System, and Method for Electronically Signing Electronic Transcripts |
US7213266B1 (en) * | 2000-06-09 | 2007-05-01 | Intertrust Technologies Corp. | Systems and methods for managing and protecting electronic content and applications |
US7050586B1 (en) | 2000-06-19 | 2006-05-23 | Intertrust Technologies Corporation | Systems and methods for retrofitting electronic appliances to accept different content formats |
US7017189B1 (en) * | 2000-06-27 | 2006-03-21 | Microsoft Corporation | System and method for activating a rendering device in a multi-level rights-management architecture |
US7743259B2 (en) | 2000-08-28 | 2010-06-22 | Contentguard Holdings, Inc. | System and method for digital rights management using a standard rendering engine |
US7412605B2 (en) | 2000-08-28 | 2008-08-12 | Contentguard Holdings, Inc. | Method and apparatus for variable encryption of data |
US7165175B1 (en) | 2000-09-06 | 2007-01-16 | Widevine Technologies, Inc. | Apparatus, system and method for selectively encrypting different portions of data sent over a network |
US7072870B2 (en) | 2000-09-08 | 2006-07-04 | Identrus, Llc | System and method for providing authorization and other services |
US7000105B2 (en) | 2000-09-08 | 2006-02-14 | Identrus, Llc | System and method for transparently providing certificate validation and other services within an electronic transaction |
WO2002023798A1 (en) * | 2000-09-14 | 2002-03-21 | Probix, Inc. | System for protecting objects distributed over a network |
KR20030036787A (en) * | 2000-09-14 | 2003-05-09 | 프로빅스, 인크. | System for establishing an audit trail to protect objects distributed over a network |
EP2306259B1 (en) * | 2000-09-21 | 2015-05-27 | BlackBerry Limited | Software code signing system and method |
US7237123B2 (en) * | 2000-09-22 | 2007-06-26 | Ecd Systems, Inc. | Systems and methods for preventing unauthorized use of digital content |
US6971023B1 (en) * | 2000-10-03 | 2005-11-29 | Mcafee, Inc. | Authorizing an additional computer program module for use with a core computer program |
US7343324B2 (en) | 2000-11-03 | 2008-03-11 | Contentguard Holdings Inc. | Method, system, and computer readable medium for automatically publishing content |
KR20010025234A (en) * | 2000-11-09 | 2001-04-06 | 김진삼 | A certification method of credit of a financing card based on fingerprint and a certification system thereof |
US6910128B1 (en) * | 2000-11-21 | 2005-06-21 | International Business Machines Corporation | Method and computer program product for processing signed applets |
US7043473B1 (en) | 2000-11-22 | 2006-05-09 | Widevine Technologies, Inc. | Media tracking system and method |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
GB2376763B (en) * | 2001-06-19 | 2004-12-15 | Hewlett Packard Co | Demonstrating integrity of a compartment of a compartmented operating system |
US7150045B2 (en) * | 2000-12-14 | 2006-12-12 | Widevine Technologies, Inc. | Method and apparatus for protection of electronic media |
US8055899B2 (en) | 2000-12-18 | 2011-11-08 | Digimarc Corporation | Systems and methods using digital watermarking and identifier extraction to provide promotional opportunities |
US7266704B2 (en) | 2000-12-18 | 2007-09-04 | Digimarc Corporation | User-friendly rights management systems and methods |
WO2002051063A1 (en) | 2000-12-21 | 2002-06-27 | Digimarc Corporation | Methods, apparatus and programs for generating and utilizing content signatures |
GB2371636A (en) * | 2000-12-21 | 2002-07-31 | Nokia Oyj | Content Distribution System |
US6912294B2 (en) | 2000-12-29 | 2005-06-28 | Contentguard Holdings, Inc. | Multi-stage watermarking process and system |
JP2002207427A (en) * | 2001-01-10 | 2002-07-26 | Sony Corp | System and method for issuing public key certificate, information processor, information recording medium, and program storage medium |
US8069116B2 (en) | 2001-01-17 | 2011-11-29 | Contentguard Holdings, Inc. | System and method for supplying and managing usage rights associated with an item repository |
EP1357456A3 (en) * | 2001-01-17 | 2005-02-09 | ContentGuard Holdings, Inc. | System and method for digital rights management using a standard rendering engine |
US6754642B2 (en) | 2001-05-31 | 2004-06-22 | Contentguard Holdings, Inc. | Method and apparatus for dynamically assigning usage rights to digital works |
CN101783807B (en) * | 2001-01-17 | 2011-08-10 | 康坦夹德控股股份有限公司 | System and method for digital rights management using a standard rendering engine |
US7774279B2 (en) | 2001-05-31 | 2010-08-10 | Contentguard Holdings, Inc. | Rights offering and granting |
US20020116633A1 (en) * | 2001-01-19 | 2002-08-22 | Takuya Kobayashi | Data processor |
GB2372343A (en) * | 2001-02-17 | 2002-08-21 | Hewlett Packard Co | Determination of a trust value of a digital certificate |
GB2372342A (en) * | 2001-02-17 | 2002-08-21 | Hewlett Packard Co | Determination of a credential attribute value of a digital certificate |
US20020133709A1 (en) | 2001-03-14 | 2002-09-19 | Hoffman Terry George | Optical data transfer system - ODTS; Optically based anti-virus protection system - OBAPS |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
AU2002233609B2 (en) | 2001-03-28 | 2008-05-29 | Nds Limited | Digital rights management system and method |
US7580988B2 (en) * | 2001-04-05 | 2009-08-25 | Intertrust Technologies Corporation | System and methods for managing the distribution of electronic content |
US7136840B2 (en) | 2001-04-20 | 2006-11-14 | Intertrust Technologies Corp. | Systems and methods for conducting transactions and communications using a trusted third party |
US7046819B2 (en) | 2001-04-25 | 2006-05-16 | Digimarc Corporation | Encoded reference signal for digital watermarks |
US7167985B2 (en) * | 2001-04-30 | 2007-01-23 | Identrus, Llc | System and method for providing trusted browser verification |
AU2002305490B2 (en) | 2001-05-09 | 2008-11-06 | Sca Ipla Holdings, Inc. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
ATE242892T1 (en) * | 2001-05-11 | 2003-06-15 | Sospita As | SEQUENCE NUMBERING MECHANISM TO ENSURE THE EXECUTION ORDER INTEGRITY OF INTERDEPENDENT SMART CARD APPLICATIONS |
US20040015958A1 (en) * | 2001-05-15 | 2004-01-22 | Veil Leonard Scott | Method and system for conditional installation and execution of services in a secure computing environment |
US8001053B2 (en) | 2001-05-31 | 2011-08-16 | Contentguard Holdings, Inc. | System and method for rights offering and granting using shared state variables |
US7725401B2 (en) | 2001-05-31 | 2010-05-25 | Contentguard Holdings, Inc. | Method and apparatus for establishing usage rights for digital content to be created in the future |
US8275709B2 (en) | 2001-05-31 | 2012-09-25 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
US6895503B2 (en) | 2001-05-31 | 2005-05-17 | Contentguard Holdings, Inc. | Method and apparatus for hierarchical assignment of rights to documents and documents having such rights |
US8099364B2 (en) | 2001-05-31 | 2012-01-17 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
US6876984B2 (en) | 2001-05-31 | 2005-04-05 | Contentguard Holdings, Inc. | Method and apparatus for establishing usage rights for digital content to be created in the future |
US8275716B2 (en) | 2001-05-31 | 2012-09-25 | Contentguard Holdings, Inc. | Method and system for subscription digital rights management |
US7774280B2 (en) | 2001-06-07 | 2010-08-10 | Contentguard Holdings, Inc. | System and method for managing transfer of rights using shared state variables |
EP1323018A4 (en) | 2001-06-07 | 2004-07-07 | Contentguard Holdings Inc | Protected content distribution system |
WO2002101490A2 (en) | 2001-06-07 | 2002-12-19 | Contentguard Holdings, Inc. | Cryptographic trust zones in digital rights management |
US7581103B2 (en) | 2001-06-13 | 2009-08-25 | Intertrust Technologies Corporation | Software self-checking systems and methods |
US7047562B2 (en) * | 2001-06-21 | 2006-05-16 | Lockheed Martin Corporation | Conditioning of the execution of an executable program upon satisfaction of criteria |
US7979914B2 (en) | 2001-06-25 | 2011-07-12 | Audible, Inc. | Time-based digital content authorization |
US7237121B2 (en) * | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
US20030051172A1 (en) * | 2001-09-13 | 2003-03-13 | Lordemann David A. | Method and system for protecting digital objects distributed over a network |
KR100947152B1 (en) | 2001-11-15 | 2010-03-12 | 소니 주식회사 | System and method for controlling the use and duplication of digital content distributed on removable media |
US7137004B2 (en) * | 2001-11-16 | 2006-11-14 | Microsoft Corporation | Manifest-based trusted agent management in a trusted operating system environment |
US7159240B2 (en) * | 2001-11-16 | 2007-01-02 | Microsoft Corporation | Operating system upgrades in a trusted operating system environment |
US7243230B2 (en) | 2001-11-16 | 2007-07-10 | Microsoft Corporation | Transferring application secrets in a trusted operating system environment |
EP1315066A1 (en) * | 2001-11-21 | 2003-05-28 | BRITISH TELECOMMUNICATIONS public limited company | Computer security system |
WO2003050998A1 (en) * | 2001-12-07 | 2003-06-19 | Ntru Cryptosystems, Inc. | Digital signature and authentication method and apparatus |
US7496757B2 (en) * | 2002-01-14 | 2009-02-24 | International Business Machines Corporation | Software verification system, method and computer program element |
US7328345B2 (en) | 2002-01-29 | 2008-02-05 | Widevine Technologies, Inc. | Method and system for end to end securing of content for video on demand |
US7636860B2 (en) * | 2002-02-13 | 2009-12-22 | Realnetworks, Inc. | Scalable and extensible secure rendering of digital content |
US7698230B1 (en) | 2002-02-15 | 2010-04-13 | ContractPal, Inc. | Transaction architecture utilizing transaction policy statements |
EP1338939A1 (en) * | 2002-02-22 | 2003-08-27 | Hewlett-Packard Company | State validation device for a computer |
US7376624B2 (en) * | 2002-02-27 | 2008-05-20 | Imagineer Software, Inc. | Secure communication and real-time watermarking using mutating identifiers |
JP2003324418A (en) * | 2002-02-27 | 2003-11-14 | Canon Inc | Image processor, data process apparatus and method therefor |
US20060195402A1 (en) * | 2002-02-27 | 2006-08-31 | Imagineer Software, Inc. | Secure data transmission using undiscoverable or black data |
US6996544B2 (en) * | 2002-02-27 | 2006-02-07 | Imagineer Software, Inc. | Multiple party content distribution system and method with rights management features |
US7725404B2 (en) * | 2002-02-27 | 2010-05-25 | Imagineer Software, Inc. | Secure electronic commerce using mutating identifiers |
US7181603B2 (en) * | 2002-03-12 | 2007-02-20 | Intel Corporation | Method of secure function loading |
US7299292B2 (en) * | 2002-03-29 | 2007-11-20 | Widevine Technologies, Inc. | Process and streaming server for encrypting a data stream to a virtual smart card client system |
US6782477B2 (en) * | 2002-04-16 | 2004-08-24 | Song Computer Entertainment America Inc. | Method and system for using tamperproof hardware to provide copy protection and online security |
US7890771B2 (en) | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
US7487365B2 (en) | 2002-04-17 | 2009-02-03 | Microsoft Corporation | Saving and retrieving data based on symmetric key encryption |
US7149899B2 (en) * | 2002-04-25 | 2006-12-12 | Intertrust Technologies Corp. | Establishing a secure channel with a human user |
US7383570B2 (en) | 2002-04-25 | 2008-06-03 | Intertrust Technologies, Corp. | Secure authentication systems and methods |
US7349553B2 (en) * | 2002-04-29 | 2008-03-25 | The Boeing Company | Watermarks for secure distribution of digital data |
US6782349B2 (en) | 2002-05-03 | 2004-08-24 | International Business Machines Corporation | Method and system for updating a root of trust measurement function in a personal computer |
US20030226029A1 (en) * | 2002-05-29 | 2003-12-04 | Porter Allen J.C. | System for protecting security registers and method thereof |
WO2004001540A2 (en) * | 2002-06-21 | 2003-12-31 | Probix, Inc. | Method and system for protecting digital objects distributed over a network using an electronic mail interface |
US7296154B2 (en) * | 2002-06-24 | 2007-11-13 | Microsoft Corporation | Secure media path methods, systems, and architectures |
CA2491447C (en) * | 2002-07-05 | 2008-07-15 | Cyberscan Technology, Inc. | Secure game download |
US7254719B1 (en) | 2002-08-08 | 2007-08-07 | Briceno Marc A | Method and system for protecting software |
US7383579B1 (en) | 2002-08-21 | 2008-06-03 | At&T Delaware Intellectual Property, Inc. | Systems and methods for determining anti-virus protection status |
US7415725B2 (en) | 2002-08-29 | 2008-08-19 | Power Measurement Ltd. | Multi-function intelligent electronic device with secure access |
US7594271B2 (en) * | 2002-09-20 | 2009-09-22 | Widevine Technologies, Inc. | Method and system for real-time tamper evidence gathering for software |
US7769629B1 (en) * | 2002-09-23 | 2010-08-03 | Marketing Technology Concepts, Inc. | System and method for providing hierarchical reporting for online incentive programs |
US7469418B1 (en) | 2002-10-01 | 2008-12-23 | Mirage Networks, Inc. | Deterring network incursion |
US8819285B1 (en) | 2002-10-01 | 2014-08-26 | Trustwave Holdings, Inc. | System and method for managing network communications |
US7506360B1 (en) | 2002-10-01 | 2009-03-17 | Mirage Networks, Inc. | Tracking communication for determining device states |
JP4668619B2 (en) * | 2002-10-28 | 2011-04-13 | ノキア コーポレイション | Device key |
ITMI20022419A1 (en) * | 2002-11-15 | 2004-05-16 | Nuovo Pignone Spa | METHOD AND SYSTEM FOR VERIFYING AN ELECTRONIC INSTRUMENT |
US7797064B2 (en) | 2002-12-13 | 2010-09-14 | Stephen Loomis | Apparatus and method for skipping songs without delay |
US7412532B2 (en) | 2002-12-13 | 2008-08-12 | Aol Llc, A Deleware Limited Liability Company | Multimedia scheduler |
US7493289B2 (en) | 2002-12-13 | 2009-02-17 | Aol Llc | Digital content store system |
US7912920B2 (en) | 2002-12-13 | 2011-03-22 | Stephen Loomis | Stream sourcing content delivery system |
US7587754B2 (en) * | 2002-12-24 | 2009-09-08 | Tripwire, Inc. | Environment integrity assured transactions |
US20040122962A1 (en) * | 2002-12-24 | 2004-06-24 | Difalco Robert A. | Service environment integrity based service selection |
JP4029735B2 (en) * | 2003-01-28 | 2008-01-09 | ヤマハ株式会社 | Song data reproducing apparatus and program |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US8131649B2 (en) | 2003-02-07 | 2012-03-06 | Igware, Inc. | Static-or-dynamic and limited-or-unlimited content rights |
US7779482B1 (en) | 2003-02-07 | 2010-08-17 | iGware Inc | Delivery of license information using a short messaging system protocol in a closed content distribution system |
US7322042B2 (en) * | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
US20100017627A1 (en) | 2003-02-07 | 2010-01-21 | Broadon Communications Corp. | Ensuring authenticity in a closed content distribution system |
US7370319B2 (en) * | 2003-02-11 | 2008-05-06 | V.I. Laboratories, Inc. | System and method for regulating execution of computer software |
US8225290B2 (en) * | 2003-02-11 | 2012-07-17 | V. i. Laboratories, Inc. | Systems and methods for regulating execution of computer software |
US7370212B2 (en) | 2003-02-25 | 2008-05-06 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
US7007170B2 (en) | 2003-03-18 | 2006-02-28 | Widevine Technologies, Inc. | System, method, and apparatus for securely providing content viewable on a secure device |
US7356143B2 (en) | 2003-03-18 | 2008-04-08 | Widevine Technologies, Inc | System, method, and apparatus for securely providing content viewable on a secure device |
JP4470384B2 (en) * | 2003-03-25 | 2010-06-02 | 富士ゼロックス株式会社 | Information processing apparatus, job processing apparatus, instruction data creation apparatus, and signature proxy apparatus |
JP2004288112A (en) * | 2003-03-25 | 2004-10-14 | Fuji Xerox Co Ltd | Information processing device and method |
US7089089B2 (en) * | 2003-03-31 | 2006-08-08 | Power Measurement Ltd. | Methods and apparatus for retrieving energy readings from an energy monitoring device |
US7644290B2 (en) * | 2003-03-31 | 2010-01-05 | Power Measurement Ltd. | System and method for seal tamper detection for intelligent electronic devices |
US10275723B2 (en) * | 2005-09-14 | 2019-04-30 | Oracle International Corporation | Policy enforcement via attestations |
US9781154B1 (en) | 2003-04-01 | 2017-10-03 | Oracle International Corporation | Systems and methods for supporting information security and sub-system operational protocol conformance |
US10063523B2 (en) * | 2005-09-14 | 2018-08-28 | Oracle International Corporation | Crafted identities |
US20040199771A1 (en) * | 2003-04-04 | 2004-10-07 | Widevine Technologies, Inc. | Method for tracing a security breach in highly distributed content |
US7461395B2 (en) * | 2003-05-06 | 2008-12-02 | Oracle International Corporation | Distributed capability-based authorization architecture using roles |
US20040225883A1 (en) * | 2003-05-07 | 2004-11-11 | Weller Michael K. | Method and apparatus providing multiple single levels of security for distributed processing in communication systems |
US8587452B2 (en) * | 2003-05-12 | 2013-11-19 | Power Measurement Ltd. | Time coordinated energy monitoring system utilizing communications links |
US7493499B1 (en) | 2003-05-22 | 2009-02-17 | Copyright Clearance Center, Inc. | Method and apparatus for secure delivery and rights management of digital content |
CA2527668A1 (en) * | 2003-06-02 | 2004-12-16 | Liquid Machines, Inc. | Managing data objects in dynamic, distributed and collaborative contexts |
EP2270622B1 (en) * | 2003-06-05 | 2016-08-24 | Intertrust Technologies Corporation | Interoperable systems and methods for peer-to-peer service orchestration |
AU2004252882A1 (en) * | 2003-06-10 | 2005-01-06 | Mastercard International Incorporated | Systems and methods for conducting secure payment transactions using a formatted data structure |
US20050021977A1 (en) * | 2003-06-25 | 2005-01-27 | Microsoft Corporation | Expression-based access control |
US8468330B1 (en) * | 2003-06-30 | 2013-06-18 | Oracle International Corporation | Methods, systems, and data structures for loading and authenticating a module |
US7324648B1 (en) | 2003-07-08 | 2008-01-29 | Copyright Clearance Center, Inc. | Method and apparatus for secure key delivery for decrypting bulk digital content files at an unsecure site |
US7373330B1 (en) | 2003-07-08 | 2008-05-13 | Copyright Clearance Center, Inc. | Method and apparatus for tracking and controlling e-mail forwarding of encrypted documents |
US8006307B1 (en) | 2003-07-09 | 2011-08-23 | Imophaze Research Co., L.L.C. | Method and apparatus for distributing secure digital content that can be indexed by third party search engines |
US7299500B1 (en) | 2003-07-17 | 2007-11-20 | Copyright Clearance Center, Inc. | Method and apparatus for secure delivery and rights management of digital content at an unsecure site |
US7376834B2 (en) * | 2003-07-18 | 2008-05-20 | Palo Alto Research Center Incorporated | System and method for securely controlling communications |
US8082563B2 (en) * | 2003-07-25 | 2011-12-20 | Home Box Office, Inc. | System and method for content access control through default profiles and metadata pointers |
US20050071656A1 (en) * | 2003-09-25 | 2005-03-31 | Klein Dean A. | Secure processor-based system and method |
US7933950B1 (en) | 2003-10-02 | 2011-04-26 | Tivo Inc. | Secure control of features of a digital device |
US7562230B2 (en) * | 2003-10-14 | 2009-07-14 | Intel Corporation | Data security |
US7281274B2 (en) | 2003-10-16 | 2007-10-09 | Lmp Media Llc | Electronic media distribution system |
US7406174B2 (en) * | 2003-10-21 | 2008-07-29 | Widevine Technologies, Inc. | System and method for n-dimensional encryption |
US20050154906A1 (en) * | 2003-11-05 | 2005-07-14 | Patrick Kriech | BIOS locked application media |
US20050132357A1 (en) * | 2003-12-16 | 2005-06-16 | Microsoft Corporation | Ensuring that a software update may be installed or run only on a specific device or class of devices |
US7568195B2 (en) | 2003-12-16 | 2009-07-28 | Microsoft Corporation | Determining a maximal set of dependent software updates valid for installation |
US7549042B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Applying custom software image updates to non-volatile storage in a failsafe manner |
US7614051B2 (en) * | 2003-12-16 | 2009-11-03 | Microsoft Corporation | Creating file systems within a file in a storage technology-abstracted manner |
US7549148B2 (en) | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Self-describing software image update components |
US7698557B2 (en) * | 2003-12-22 | 2010-04-13 | Guardtime As | System and method for generating a digital certificate |
FR2864398A1 (en) * | 2003-12-23 | 2005-06-24 | France Telecom | Computing device e.g. personal computer, for executing e.g. banking application, has operation profile/virtual machine execution spaces accommodated by processing device that is arranged to be non separable into two parts |
US8074287B2 (en) | 2004-04-30 | 2011-12-06 | Microsoft Corporation | Renewable and individualizable elements of a protected environment |
US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
US7694121B2 (en) * | 2004-06-30 | 2010-04-06 | Microsoft Corporation | System and method for protected operating system boot using state validation |
EP1612636A1 (en) * | 2004-07-01 | 2006-01-04 | Tecnostore AG | Method for archiving data with automatic encryption and decryption |
US7428754B2 (en) * | 2004-08-17 | 2008-09-23 | The Mitre Corporation | System for secure computing using defense-in-depth architecture |
US8284942B2 (en) * | 2004-08-24 | 2012-10-09 | Microsoft Corporation | Persisting private/public key pairs in password-encrypted files for transportation to local cryptographic store |
US7802110B2 (en) * | 2004-08-25 | 2010-09-21 | Microsoft Corporation | System and method for secure execution of program code |
US7590589B2 (en) | 2004-09-10 | 2009-09-15 | Hoffberg Steven M | Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference |
US9609279B2 (en) | 2004-09-24 | 2017-03-28 | Google Inc. | Method and system for providing secure CODECS |
US7690033B2 (en) * | 2004-09-28 | 2010-03-30 | Exobox Technologies Corp. | Electronic computer system secured from unauthorized access to and manipulation of data |
US7752671B2 (en) * | 2004-10-04 | 2010-07-06 | Promisec Ltd. | Method and device for questioning a plurality of computerized devices |
US7015823B1 (en) | 2004-10-15 | 2006-03-21 | Systran Federal Corporation | Tamper resistant circuit boards |
US7711965B2 (en) * | 2004-10-20 | 2010-05-04 | Intel Corporation | Data security |
US7487358B2 (en) * | 2004-11-29 | 2009-02-03 | Signacert, Inc. | Method to control access between network endpoints based on trust scores calculated from information system component analysis |
US7272719B2 (en) * | 2004-11-29 | 2007-09-18 | Signacert, Inc. | Method to control access between network endpoints based on trust scores calculated from information system component analysis |
US9450966B2 (en) * | 2004-11-29 | 2016-09-20 | Kip Sign P1 Lp | Method and apparatus for lifecycle integrity verification of virtual machines |
US7733804B2 (en) * | 2004-11-29 | 2010-06-08 | Signacert, Inc. | Method and apparatus to establish routes based on the trust scores of routers within an IP routing domain |
US8266676B2 (en) * | 2004-11-29 | 2012-09-11 | Harris Corporation | Method to verify the integrity of components on a trusted platform using integrity database services |
US8327131B1 (en) | 2004-11-29 | 2012-12-04 | Harris Corporation | Method and system to issue trust score certificates for networked devices using a trust scoring service |
US20060159424A1 (en) * | 2005-01-19 | 2006-07-20 | Chenming Hu | Tamper-Proof Content-Playback System Offering Excellent Copyright Protection |
US20080015999A1 (en) * | 2005-02-04 | 2008-01-17 | Widevine Technologies, Inc. | Securely ingesting encrypted content into content servers |
US20060212699A1 (en) * | 2005-03-16 | 2006-09-21 | Makofka Douglas S | Method and apparatus for certifying a design of a software computer program |
US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
JP2006303159A (en) * | 2005-04-20 | 2006-11-02 | Fuji Electric Holdings Co Ltd | Spin injection magnetic domain moving element and device using this |
US9436804B2 (en) | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US20060265758A1 (en) | 2005-05-20 | 2006-11-23 | Microsoft Corporation | Extensible media rights |
DE102005030590B4 (en) * | 2005-06-30 | 2011-03-24 | Advanced Micro Devices, Inc., Sunnyvale | Safe patch system |
EP1927060B1 (en) * | 2005-08-09 | 2019-10-09 | Nexsan Technologies Canada Inc. | Data archiving method and system |
US7752436B2 (en) * | 2005-08-09 | 2010-07-06 | Intel Corporation | Exclusive access for secure audio program |
US7958346B2 (en) * | 2005-08-18 | 2011-06-07 | Oracle International Corp. | Multilayered security for systems interacting with configuration items |
US7827596B2 (en) * | 2005-08-25 | 2010-11-02 | International Business Machines Corporation | Authenticating computed results in a public distributed computing environment |
WO2007028407A1 (en) * | 2005-09-06 | 2007-03-15 | Nero Ag | Method for signing a data package and signing apparatus |
US8058973B2 (en) * | 2005-09-13 | 2011-11-15 | Nec (China) Co., Ltd. | Radio frequency identification system and method |
US20070067643A1 (en) * | 2005-09-21 | 2007-03-22 | Widevine Technologies, Inc. | System and method for software tamper detection |
US8065733B2 (en) | 2005-09-23 | 2011-11-22 | Google, Inc. | Method for evolving detectors to detect malign behavior in an artificial immune system |
WO2007038245A2 (en) | 2005-09-23 | 2007-04-05 | Widevine Technologies, Inc. | Method for evolving detectors to detect malign behavior in an artificial immune system |
US7817608B2 (en) * | 2005-09-23 | 2010-10-19 | Widevine Technologies, Inc. | Transitioning to secure IP communications for encoding, encapsulating, and encrypting data |
US8788802B2 (en) * | 2005-09-29 | 2014-07-22 | Qualcomm Incorporated | Constrained cryptographic keys |
US8340289B2 (en) | 2005-09-29 | 2012-12-25 | Research In Motion Limited | System and method for providing an indication of randomness quality of random number data generated by a random data service |
US7797545B2 (en) * | 2005-09-29 | 2010-09-14 | Research In Motion Limited | System and method for registering entities for code signing services |
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
EA200901153A1 (en) | 2005-10-18 | 2010-04-30 | Интертраст Текнолоджиз Корпорейшн | SYSTEMS AND METHODS BASED ON THE DIGITAL RIGHT MANAGEMENT MECHANISM |
US9626667B2 (en) | 2005-10-18 | 2017-04-18 | Intertrust Technologies Corporation | Digital rights management engine systems and methods |
US20070204078A1 (en) * | 2006-02-09 | 2007-08-30 | Intertrust Technologies Corporation | Digital rights management engine systems and methods |
US9189640B2 (en) * | 2005-10-31 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for re-provisioning a server of a data center |
US7673288B1 (en) * | 2005-11-01 | 2010-03-02 | Xilinx, Inc. | Bypassing execution of a software test using a file cache |
JP4835111B2 (en) * | 2005-11-02 | 2011-12-14 | 富士ゼロックス株式会社 | Job processing system and image reading apparatus |
US8689016B2 (en) | 2005-12-02 | 2014-04-01 | Google Inc. | Tamper prevention and detection for video provided over a network to a client |
US20110179477A1 (en) * | 2005-12-09 | 2011-07-21 | Harris Corporation | System including property-based weighted trust score application tokens for access control and related methods |
US20070143295A1 (en) * | 2005-12-16 | 2007-06-21 | Dale Malik | Methods, systems, and computer program products for delivering associated content on a communication network |
US8526612B2 (en) * | 2006-01-06 | 2013-09-03 | Google Inc. | Selective and persistent application level encryption for video provided to a client |
US20070180231A1 (en) * | 2006-01-31 | 2007-08-02 | Widevine Technologies, Inc. | Preventing entitlement management message (EMM) filter attacks |
US8214296B2 (en) * | 2006-02-14 | 2012-07-03 | Microsoft Corporation | Disaggregated secure execution environment |
US20070192824A1 (en) * | 2006-02-14 | 2007-08-16 | Microsoft Corporation | Computer hosting multiple secure execution environments |
JP5190800B2 (en) * | 2006-02-21 | 2013-04-24 | 日本電気株式会社 | Program execution control system, execution control method, and computer program for execution control |
US7987514B2 (en) * | 2006-04-04 | 2011-07-26 | Intertrust Technologies Corp. | Systems and methods for retrofitting electronic appliances to accept different content formats |
WO2007130554A2 (en) | 2006-05-02 | 2007-11-15 | Broadon Communications Corp. | Content management system and method |
WO2008007305A2 (en) * | 2006-07-12 | 2008-01-17 | Koninklijke Philips Electronics N.V. | Method and system for obfuscating a gryptographic function |
GB2440170B8 (en) * | 2006-07-14 | 2014-07-16 | Vodafone Plc | Digital rights management |
US8452988B2 (en) * | 2006-07-24 | 2013-05-28 | Michael Sujue Wang | Secure data storage for protecting digital content |
US8788829B2 (en) * | 2006-08-17 | 2014-07-22 | Aol Inc. | System and method for interapplication communications |
US8510859B2 (en) | 2006-09-26 | 2013-08-13 | Intel Corporation | Methods and arrangements to launch trusted, co-existing environments |
US7624276B2 (en) | 2006-10-16 | 2009-11-24 | Broadon Communications Corp. | Secure device authentication system and method |
US7900243B2 (en) * | 2006-10-19 | 2011-03-01 | Oracle America, Inc. | Method and system for managing execution of an application module |
US7613915B2 (en) | 2006-11-09 | 2009-11-03 | BroadOn Communications Corp | Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed |
US8200961B2 (en) | 2006-11-19 | 2012-06-12 | Igware, Inc. | Securing a flash memory block in a secure device system and method |
GB0625052D0 (en) * | 2006-12-15 | 2007-01-24 | Hewlett Packard Development Co | Evidence of manufacturing processes |
US7934197B2 (en) * | 2006-12-19 | 2011-04-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Maintaining code integrity in a central software development system |
US20080162687A1 (en) * | 2006-12-28 | 2008-07-03 | David Alan Scott | Data acquisition system and method |
CN101226569A (en) * | 2007-01-19 | 2008-07-23 | 国际商业机器公司 | Method and device for checking code module in virtual machine |
CN101246538A (en) * | 2007-02-14 | 2008-08-20 | 日电(中国)有限公司 | Radio frequency recognition system and method |
US8856782B2 (en) | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
WO2008117550A1 (en) * | 2007-03-28 | 2008-10-02 | Nec Corporation | Software ic card system, management server, terminal, service providing server, service providing method, and program |
US8108856B2 (en) | 2007-03-30 | 2012-01-31 | Intel Corporation | Method and apparatus for adaptive integrity measurement of computer software |
JP5186790B2 (en) * | 2007-04-06 | 2013-04-24 | 日本電気株式会社 | Electronic money transaction method and electronic money system |
US11153656B2 (en) | 2020-01-08 | 2021-10-19 | Tailstream Technologies, Llc | Authenticated stream manipulation |
US20080255878A1 (en) * | 2007-04-13 | 2008-10-16 | Kelley Wise | Authenticated Stream Manipulation |
US8266691B2 (en) * | 2007-04-13 | 2012-09-11 | Microsoft Corporation | Renewable integrity rooted system |
US11991416B2 (en) | 2007-04-13 | 2024-05-21 | Tailstream Technologies, Llc | Authenticated stream manipulation |
US8621093B2 (en) | 2007-05-21 | 2013-12-31 | Google Inc. | Non-blocking of head end initiated revocation and delivery of entitlements non-addressable digital media network |
WO2008146476A1 (en) * | 2007-05-24 | 2008-12-04 | Panasonic Corporation | Memory controller, nonvolatile storage device, nonvolatile storage system, and access device |
US8243924B2 (en) | 2007-06-29 | 2012-08-14 | Google Inc. | Progressive download or streaming of digital media securely through a localized container and communication protocol proxy |
JP5385148B2 (en) * | 2007-10-05 | 2014-01-08 | パナソニック株式会社 | Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit |
US8170342B2 (en) | 2007-11-07 | 2012-05-01 | Microsoft Corporation | Image recognition of content |
JP2011507414A (en) * | 2007-12-21 | 2011-03-03 | コクーン データ ホールディングス リミテッド | System and method for protecting data safety |
US7953988B2 (en) * | 2008-01-10 | 2011-05-31 | Oracle America, Inc. | Modular tamper resistant enclosure for secure systems |
AU2009205675B2 (en) | 2008-01-18 | 2014-09-25 | Identrust, Inc. | Binding a digital certificate to multiple trust domains |
US8868464B2 (en) | 2008-02-07 | 2014-10-21 | Google Inc. | Preventing unauthorized modification or skipping of viewing of advertisements within content |
US20100031365A1 (en) * | 2008-07-31 | 2010-02-04 | Balachander Krishnamurthy | Method and apparatus for providing network access privacy |
US9098698B2 (en) | 2008-09-12 | 2015-08-04 | George Mason Research Foundation, Inc. | Methods and apparatus for application isolation |
US20100088745A1 (en) * | 2008-10-06 | 2010-04-08 | Fujitsu Limited | Method for checking the integrity of large data items rapidly |
KR101252549B1 (en) * | 2008-11-21 | 2013-04-08 | 한국전자통신연구원 | Method for safely distributing encoding/decoding programs and a symmetric key and Devices for partitioning and injecting them for safe distribution in a security domain environment |
US8341141B2 (en) | 2008-12-16 | 2012-12-25 | Krislov Clinton A | Method and system for automated document registration |
US8589372B2 (en) | 2008-12-16 | 2013-11-19 | Clinton A. Krislov | Method and system for automated document registration with cloud computing |
US8914351B2 (en) | 2008-12-16 | 2014-12-16 | Clinton A. Krislov | Method and system for secure automated document registration from social media networks |
US9946848B2 (en) | 2009-02-26 | 2018-04-17 | International Business Machines Corporation | Software protection using an installation product having an entitlement file |
US8929303B2 (en) * | 2009-04-06 | 2015-01-06 | Samsung Electronics Co., Ltd. | Control and data channels for advanced relay operation |
KR101590188B1 (en) * | 2009-05-08 | 2016-01-29 | 삼성전자주식회사 | Method for verification of software package integrity in a mobile terminal |
US8914903B1 (en) | 2009-06-03 | 2014-12-16 | Amdocs Software System Limited | System, method, and computer program for validating receipt of digital content by a client device |
US8839422B2 (en) | 2009-06-30 | 2014-09-16 | George Mason Research Foundation, Inc. | Virtual browsing environment |
US9122729B2 (en) * | 2009-07-31 | 2015-09-01 | Cumulus Data Llc | Chain-of-custody for archived data |
US9210140B2 (en) * | 2009-08-19 | 2015-12-08 | Solarflare Communications, Inc. | Remote functionality selection |
US8566688B2 (en) * | 2009-09-01 | 2013-10-22 | Ensequence, Inc. | Method of certifying multiple versions of an application |
US8812854B2 (en) | 2009-10-13 | 2014-08-19 | Google Inc. | Firmware verified boot |
US8924302B2 (en) * | 2009-12-11 | 2014-12-30 | Eoriginal, Inc. | System and method for electronic transmission, storage, retrieval and remote signing of authenticated electronic original documents |
US8875285B2 (en) * | 2010-03-24 | 2014-10-28 | Microsoft Corporation | Executable code validation in a web browser |
US8528046B2 (en) * | 2010-04-19 | 2013-09-03 | Dell Products, Lp | Selective management controller authenticated access control to host mapped resources |
US9930297B2 (en) | 2010-04-30 | 2018-03-27 | Becton, Dickinson And Company | System and method for acquiring images of medication preparations |
US8544103B2 (en) | 2010-05-04 | 2013-09-24 | Intertrust Technologies Corporation | Policy determined accuracy of transmitted information |
US8589702B2 (en) * | 2010-05-28 | 2013-11-19 | Dell Products, Lp | System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system |
US8874896B2 (en) | 2010-06-18 | 2014-10-28 | Intertrust Technologies Corporation | Secure processing systems and methods |
US8782435B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time using control flow signatures |
US10002466B2 (en) * | 2010-07-21 | 2018-06-19 | Verizon Patent And Licensing Inc. | Method and system for providing autonomous car errands |
EP2697929A4 (en) | 2011-04-11 | 2014-09-24 | Intertrust Tech Corp | Information security systems and methods |
US8756582B2 (en) * | 2011-08-22 | 2014-06-17 | International Business Machines Corporation | Tracking a programs calling context using a hybrid code signature |
US20130086376A1 (en) * | 2011-09-29 | 2013-04-04 | Stephen Ricky Haynes | Secure integrated cyberspace security and situational awareness system |
JP6199297B2 (en) * | 2011-10-17 | 2017-09-20 | インタートラスト テクノロジーズ コーポレイション | Systems and methods for protecting and managing genomes and other information |
WO2013082437A1 (en) | 2011-12-02 | 2013-06-06 | Invincia, Inc. | Methods and apparatus for control and detection of malicious content using a sandbox environment |
US8751800B1 (en) | 2011-12-12 | 2014-06-10 | Google Inc. | DRM provider interoperability |
EP2815593A4 (en) | 2012-02-17 | 2015-08-12 | Intertrust Tech Corp | Systems and methods for vehicle policy enforcement |
US9503512B2 (en) | 2012-03-21 | 2016-11-22 | Intertrust Technologies Corporation | Distributed computation systems and methods |
US8627097B2 (en) | 2012-03-27 | 2014-01-07 | Igt | System and method enabling parallel processing of hash functions using authentication checkpoint hashes |
WO2014046974A2 (en) | 2012-09-20 | 2014-03-27 | Case Paul Sr | Case secure computer architecture |
US9626489B2 (en) | 2013-03-13 | 2017-04-18 | Intertrust Technologies Corporation | Object rendering systems and methods |
US9830354B2 (en) | 2013-08-07 | 2017-11-28 | International Business Machines Corporation | Accelerating multiple query processing operations |
US9619499B2 (en) | 2013-08-07 | 2017-04-11 | International Business Machines Corporation | Hardware implementation of a tournament tree sort algorithm |
US8997256B1 (en) | 2014-03-31 | 2015-03-31 | Terbium Labs LLC | Systems and methods for detecting copied computer code using fingerprints |
US9459861B1 (en) | 2014-03-31 | 2016-10-04 | Terbium Labs, Inc. | Systems and methods for detecting copied computer code using fingerprints |
JP2016071422A (en) * | 2014-09-26 | 2016-05-09 | ブラザー工業株式会社 | Software providing system and installation program |
WO2016118216A2 (en) | 2014-11-06 | 2016-07-28 | Intertrust Technologies Corporation | Secure application distribution systems and methods |
US10706182B2 (en) | 2014-12-19 | 2020-07-07 | Private Machines Inc. | Systems and methods for using extended hardware security modules |
US10310813B2 (en) | 2014-12-29 | 2019-06-04 | International Business Machines Corporation | Hardware implementation of a tournament tree sort algorithm using an external memory |
US10108810B2 (en) | 2015-02-13 | 2018-10-23 | Global Integrity, Inc. | System and method for secure document embedding |
US10250587B2 (en) * | 2016-09-30 | 2019-04-02 | Microsoft Technology Licensing, Llc | Detecting malicious usage of certificates |
US11506312B2 (en) | 2016-12-02 | 2022-11-22 | Total Piping Solutions, Inc. | Encapsulation sleeve gasket assembly with detachable inner layer |
US11287076B2 (en) | 2016-12-02 | 2022-03-29 | Total Piping Solutions, Inc. | Encapsulation sleeve gasket assembly with detachable inner layer |
JP7100502B2 (en) * | 2018-06-13 | 2022-07-13 | キヤノン株式会社 | Information processing equipment, its control method, and programs |
US10992513B1 (en) | 2018-10-31 | 2021-04-27 | United Services Automobile Association (Usaa) | Systems and methods for reestablishing communication to resume a process based on inferred intent |
US10936302B2 (en) * | 2019-06-07 | 2021-03-02 | Volvo Car Corporation | Updating sub-systems of a device using blockchain |
TWI774986B (en) * | 2019-09-09 | 2022-08-21 | 新唐科技股份有限公司 | Key storage system and key storage method |
CN111556046A (en) * | 2020-04-24 | 2020-08-18 | 广东纬德信息科技股份有限公司 | Message issuing and uploading method and processing system based on electric power distribution data |
US11558277B2 (en) | 2020-05-08 | 2023-01-17 | Bank Of America Corporation | System for generating and signing cryptographically generated addresses using computing network traffic |
CN112597458B (en) * | 2020-12-22 | 2023-12-01 | 北京八分量信息科技有限公司 | Method, device and related product for identity authentication based on trusted authentication |
US11888759B2 (en) | 2021-06-23 | 2024-01-30 | Bank Of America Corporation | System for executing digital resource transfer using trusted computing |
US12041182B2 (en) | 2022-04-11 | 2024-07-16 | Ford Global Technologies, Llc | Non-reputable vehicle change history |
Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4523264A (en) * | 1984-01-09 | 1985-06-11 | West & Associates, Inc. | Two-piece tube support assembly |
US4672572A (en) * | 1984-05-21 | 1987-06-09 | Gould Inc. | Protector system for computer access and use |
US4799156A (en) * | 1986-10-01 | 1989-01-17 | Strategic Processing Corporation | Interactive market management system |
US4930073A (en) * | 1987-06-26 | 1990-05-29 | International Business Machines Corporation | Method to prevent use of incorrect program version in a computer system |
US5103476A (en) * | 1990-11-07 | 1992-04-07 | Waite David P | Secure system for activating personal computer software at remote locations |
US5111390A (en) * | 1988-08-22 | 1992-05-05 | Unisys Corporation | Software security system for maintaining integrity of compiled object code by restricting users ability to define compilers |
US5224163A (en) * | 1990-09-28 | 1993-06-29 | Digital Equipment Corporation | Method for delegating authorization from one entity to another through the use of session encryption keys |
US5319705A (en) * | 1992-10-21 | 1994-06-07 | International Business Machines Corporation | Method and system for multimedia access control enablement |
US5343527A (en) * | 1993-10-27 | 1994-08-30 | International Business Machines Corporation | Hybrid encryption method and system for protecting reusable software components |
US5421005A (en) * | 1992-12-02 | 1995-05-30 | Fiset; Peter D. | Alternate DRAM refresh controlled by signal period detector |
US5479509A (en) * | 1993-04-06 | 1995-12-26 | Bull Cp8 | Method for signature of an information processing file, and apparatus for implementing it |
US5559884A (en) * | 1994-06-30 | 1996-09-24 | Microsoft Corporation | Method and system for generating and auditing a signature for a computer program |
US5692047A (en) * | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
US5757914A (en) * | 1995-10-26 | 1998-05-26 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
US5982891A (en) * | 1995-02-13 | 1999-11-09 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6157721A (en) * | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US6292568B1 (en) * | 1966-12-16 | 2001-09-18 | Scientific-Atlanta, Inc. | Representing entitlements to service in a conditional access system |
US6330670B1 (en) * | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US6701433B1 (en) * | 1998-03-23 | 2004-03-02 | Novell, Inc. | Method and apparatus for escrowing properties used for accessing executable modules |
US7133846B1 (en) * | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US7152045B2 (en) * | 1994-11-28 | 2006-12-19 | Indivos Corporation | Tokenless identification system for authorization of electronic transactions and electronic transmissions |
US7165174B1 (en) * | 1995-02-13 | 2007-01-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management |
US7405724B2 (en) * | 1996-11-27 | 2008-07-29 | Diebold, Incorporated | Automated banking machine and method |
Family Cites Families (510)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US511390A (en) * | 1893-12-26 | Clutch | ||
US3609697A (en) * | 1968-10-21 | 1971-09-28 | Ibm | Program security device |
US3573747A (en) * | 1969-02-24 | 1971-04-06 | Institutional Networks Corp | Instinet communication system for effectuating the sale or exchange of fungible properties between subscribers |
US3845391A (en) | 1969-07-08 | 1974-10-29 | Audicom Corp | Communication including submerged identification signal |
US3798605A (en) * | 1971-06-30 | 1974-03-19 | Ibm | Centralized verification system |
US3798360A (en) * | 1971-06-30 | 1974-03-19 | Ibm | Step code ciphering system |
US3798359A (en) * | 1971-06-30 | 1974-03-19 | Ibm | Block cipher cryptographic system |
US3796830A (en) * | 1971-11-02 | 1974-03-12 | Ibm | Recirculating block cipher cryptographic system |
GB1414126A (en) * | 1971-11-22 | 1975-11-19 | Key Tronic Ltd | Secutity for computer systems |
US3790700A (en) * | 1971-12-17 | 1974-02-05 | Hughes Aircraft Co | Catv program control system |
US3931504A (en) * | 1972-02-07 | 1976-01-06 | Basic Computing Arts, Inc. | Electronic data processing security system and method |
SE381940B (en) * | 1972-04-11 | 1975-12-22 | Gretag Ag | DEVICE FOR INDIVIDUAL IDENTIFICATION OF A MAJORITY OF INDIVIDUALS |
US3829833A (en) * | 1972-10-24 | 1974-08-13 | Information Identification Co | Code element identification method and apparatus |
US3911397A (en) * | 1972-10-24 | 1975-10-07 | Information Identification Inc | Access control assembly |
GB1494736A (en) * | 1974-01-21 | 1977-12-14 | Chubb Integrated Syst Ltd | Token-control |
US3924065A (en) * | 1974-04-05 | 1975-12-02 | Information Identification Inc | Coherent, fixed BAUD rate FSK communication method and apparatus |
US3946220A (en) * | 1974-06-10 | 1976-03-23 | Transactron, Inc. | Point-of-sale system and apparatus |
US3956615A (en) * | 1974-06-25 | 1976-05-11 | Ibm Corporation | Transaction execution system with secure data storage and communications |
US3970992A (en) * | 1974-06-25 | 1976-07-20 | Ibm Corporation | Transaction terminal with unlimited range of functions |
US3906448A (en) * | 1974-08-01 | 1975-09-16 | Rca Corp | Fault detection facilitating means for card reader of identification card reading system |
US4270182A (en) * | 1974-12-30 | 1981-05-26 | Asija Satya P | Automated information input, storage, and retrieval system |
US3946200A (en) * | 1975-02-24 | 1976-03-23 | Gca Corporation | Proportional temperature controller |
US3958081A (en) * | 1975-02-24 | 1976-05-18 | International Business Machines Corporation | Block cipher system for data security |
US4217588A (en) * | 1975-04-16 | 1980-08-12 | Information Identification Company, Inc. | Object monitoring method and apparatus |
US4209787A (en) * | 1975-04-16 | 1980-06-24 | Gould Inc. | Method for monitoring the location of monitored objects |
US4112421A (en) * | 1975-04-16 | 1978-09-05 | Information Identification Company, Inc. | Method and apparatus for automatically monitoring objects |
US4071911A (en) * | 1975-04-22 | 1978-01-31 | Continental Can Co. Inc. | Machine control system with machine serializing and safety circuits |
US3996449A (en) | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4196310A (en) * | 1976-04-09 | 1980-04-01 | Digital Data, Inc. | Secure SCA broadcasting system including subscriber actuated portable receiving terminals |
JPS533029A (en) * | 1976-06-30 | 1978-01-12 | Toshiba Corp | Electronic computer |
US4048619A (en) * | 1976-09-07 | 1977-09-13 | Digital Data Inc. | Secure two channel sca broadcasting system |
US4141005A (en) | 1976-11-11 | 1979-02-20 | International Business Machines Corporation | Data format converting apparatus for use in a digital data processor |
GB1561482A (en) * | 1976-11-18 | 1980-02-20 | Ibm | Protection of data processing system against unauthorised programmes |
US4104721A (en) | 1976-12-30 | 1978-08-01 | International Business Machines Corporation | Hierarchical security mechanism for dynamically assigning security levels to object programs |
US4120030A (en) * | 1977-03-11 | 1978-10-10 | Kearney & Trecker Corporation | Computer software security system |
US4162483A (en) | 1977-04-01 | 1979-07-24 | Intech Laboratories, Inc. | Bilateral master station-plural satellite station signalling apparatus |
US4200913A (en) * | 1977-04-13 | 1980-04-29 | International Business Machines Corporation | Operator controlled programmable keyboard apparatus |
GB1553027A (en) * | 1977-05-12 | 1979-09-19 | Marconi Co Ltd | Message signal scrambling apparatus |
US4220991A (en) * | 1977-10-08 | 1980-09-02 | Tokyo Electric Co., Ltd. | Electronic cash register with removable memory packs for cashier identification |
US4278837A (en) * | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4168396A (en) * | 1977-10-31 | 1979-09-18 | Best Robert M | Microprocessor for executing enciphered programs |
US4405829A (en) | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
US4259720A (en) * | 1978-01-09 | 1981-03-31 | Interbank Card Association | Security system for electronic funds transfer system |
US4262329A (en) * | 1978-03-27 | 1981-04-14 | Computation Planning, Inc. | Security system for data processing |
US4246638A (en) * | 1978-09-14 | 1981-01-20 | Thomas William J | Method and apparatus for controlling usage of a programmable computing machine |
US4253157A (en) * | 1978-09-29 | 1981-02-24 | Alpex Computer Corp. | Data access system wherein subscriber terminals gain access to a data bank by telephone lines |
US4265371A (en) * | 1978-10-06 | 1981-05-05 | Trafalgar Industries Inc. | Foodstuff vending apparatus employing improved solid-state type control apparatus |
US4232317A (en) * | 1978-11-01 | 1980-11-04 | Freeny Jr Charles C | Quantized hyperbolic and inverse hyperbolic object location system |
US4305131A (en) * | 1979-02-05 | 1981-12-08 | Best Robert M | Dialog between TV movies and human viewers |
FR2448825A1 (en) * | 1979-02-06 | 1980-09-05 | Telediffusion Fse | SYSTEM FOR TRANSMITTING INFORMATION BETWEEN A TRANSMISSION CENTER AND RECEIVING STATIONS, WHICH IS PROVIDED WITH A MEANS OF CONTROLLING ACCESS TO THE INFORMATION TRANSMITTED |
FR2448824A1 (en) * | 1979-02-06 | 1980-09-05 | Telediffusion Fse | VIDEOTEX SYSTEM PROVIDED WITH INFORMATION ACCESS CONTROL MEANS |
US4598288A (en) | 1979-04-16 | 1986-07-01 | Codart, Inc. | Apparatus for controlling the reception of transmitted programs |
US4236217A (en) * | 1979-04-20 | 1980-11-25 | Kennedy Stanley P | Energy utilization or consumption recording arrangement |
US4465901A (en) * | 1979-06-04 | 1984-08-14 | Best Robert M | Crypto microprocessor that executes enciphered programs |
US4309569A (en) * | 1979-09-05 | 1982-01-05 | The Board Of Trustees Of The Leland Stanford Junior University | Method of providing digital signatures |
US4319079A (en) * | 1979-09-13 | 1982-03-09 | Best Robert M | Crypto microprocessor using block cipher |
DE2943436A1 (en) | 1979-10-26 | 1981-05-07 | Wolfram Dr.-Ing. 5100 Aachen Szepanski | Security coding system for documents - has cover coding printed on document and optically scanned for comparison with normal text |
FR2469760A1 (en) | 1979-11-09 | 1981-05-22 | Cii Honeywell Bull | METHOD AND SYSTEM FOR IDENTIFYING PEOPLE REQUESTING ACCESS TO CERTAIN MEDIA |
US4321672A (en) * | 1979-11-26 | 1982-03-23 | Braun Edward L | Financial data processing system |
US4328544A (en) * | 1980-01-04 | 1982-05-04 | International Business Machines Corporation | Electronic point-of-sale system using direct-access storage |
US4375579A (en) * | 1980-01-30 | 1983-03-01 | Wisconsin Alumni Research Foundation | Database encryption and decryption circuit and method using subkeys |
US4306289A (en) * | 1980-02-04 | 1981-12-15 | Western Electric Company, Inc. | Digital computer having code conversion apparatus for an encrypted program |
US4361877A (en) * | 1980-02-05 | 1982-11-30 | Sangamo Weston, Inc. | Billing recorder with non-volatile solid state memory |
US4529870A (en) | 1980-03-10 | 1985-07-16 | David Chaum | Cryptographic identification, financial transaction, and credential device |
JPS56140452A (en) * | 1980-04-01 | 1981-11-02 | Hitachi Ltd | Memory protection system |
AU547877B2 (en) * | 1980-09-26 | 1985-11-07 | B. Lofberg | Method for processing an information signal and means for carrying out the method |
US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
US4513174A (en) * | 1981-03-19 | 1985-04-23 | Standard Microsystems Corporation | Software security method using partial fabrication of proprietary control word decoders and microinstruction memories |
US4446519A (en) * | 1981-05-26 | 1984-05-01 | Corban International, Ltd. | Method and apparatus for providing security for computer software |
US4578530A (en) * | 1981-06-26 | 1986-03-25 | Visa U.S.A., Inc. | End-to-end encryption system and method of operation |
US4433207A (en) * | 1981-09-10 | 1984-02-21 | Best Robert M | Cryptographic decoder for computer programs |
US4471163A (en) * | 1981-10-05 | 1984-09-11 | Donald Thomas C | Software protection system |
US4593353A (en) * | 1981-10-26 | 1986-06-03 | Telecommunications Associates, Inc. | Software protection method and apparatus |
US4670857A (en) * | 1981-10-26 | 1987-06-02 | Rackman Michael I | Cartridge-controlled system whose use is limited to authorized cartridges |
US4442486A (en) * | 1981-11-25 | 1984-04-10 | U.S. Philips Corporation | Protected programmable apparatus |
US4454594A (en) * | 1981-11-25 | 1984-06-12 | U.S. Philips Corporation | Method and apparatus to secure proprietary operation of computer equipment |
US4553252A (en) * | 1981-12-21 | 1985-11-12 | Egendorf Harris H | Counting computer software cartridge |
EP0084441A3 (en) | 1982-01-19 | 1984-08-22 | Tabs Limited | Method and apparatus for the protection of proprietary computer software |
US4458315A (en) * | 1982-02-25 | 1984-07-03 | Penta, Inc. | Apparatus and method for preventing unauthorized use of computer programs |
AU542447B2 (en) * | 1982-02-27 | 1985-02-21 | Fujitsu Limited | System for controlling key storage unit |
FR2523745B1 (en) * | 1982-03-18 | 1987-06-26 | Bull Sa | METHOD AND DEVICE FOR PROTECTING SOFTWARE DELIVERED BY A SUPPLIER TO A USER |
US4593183A (en) * | 1982-05-06 | 1986-06-03 | Tokyo Shibaura Denki Kabushiki Kaisha | Automatic transaction machine |
US4484217A (en) * | 1982-05-11 | 1984-11-20 | Telease, Inc. | Method and system for remote reporting, particularly for pay television billing |
US4494156A (en) * | 1982-05-14 | 1985-01-15 | Media Systems Technology | Selectable format computer disk copier machine |
US4525599A (en) | 1982-05-21 | 1985-06-25 | General Computer Corporation | Software protection methods and apparatus |
US4462076A (en) * | 1982-06-04 | 1984-07-24 | Smith Engineering | Video game cartridge recognition and security system |
US4523271A (en) | 1982-06-22 | 1985-06-11 | Levien Raphael L | Software protection method and apparatus |
US4590552A (en) | 1982-06-30 | 1986-05-20 | Texas Instruments Incorporated | Security bit for designating the security status of information stored in a nonvolatile memory |
US4462078A (en) * | 1982-08-02 | 1984-07-24 | Ron Ross | Computer program protection method |
US4558176A (en) * | 1982-09-20 | 1985-12-10 | Arnold Mark G | Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software |
FR2536880B1 (en) * | 1982-11-30 | 1987-05-07 | Bull Sa | MICROPROCESSOR DESIGNED IN PARTICULAR FOR EXECUTING THE CALCULATION ALGORITHMS OF A PUBLIC KEY ENCRYPTION SYSTEM |
US4562305A (en) | 1982-12-22 | 1985-12-31 | International Business Machines Corporation | Software cryptographic apparatus and method |
US4609985A (en) | 1982-12-30 | 1986-09-02 | Thomson Components-Mostek Corporation | Microcomputer with severable ROM |
US4528643A (en) * | 1983-01-10 | 1985-07-09 | Fpdc, Inc. | System for reproducing information in material objects at a point of sale location |
US4588991A (en) * | 1983-03-07 | 1986-05-13 | Atalla Corporation | File access security method and means |
US4680731A (en) * | 1983-03-17 | 1987-07-14 | Romox Incorporated | Reprogrammable cartridge memory with built-in identification circuitry and programming method |
US4593376A (en) * | 1983-04-21 | 1986-06-03 | Volk Larry N | System for vending program cartridges which have circuitry for inhibiting program usage after preset time interval expires |
US4597058A (en) * | 1983-05-09 | 1986-06-24 | Romox, Inc. | Cartridge programming system |
WO1984004614A1 (en) | 1983-05-13 | 1984-11-22 | Ira Dennis Gale | Data security device |
US4573119A (en) * | 1983-07-11 | 1986-02-25 | Westheimer Thomas O | Computer software protection system |
US4658093A (en) * | 1983-07-11 | 1987-04-14 | Hellman Martin E | Software distribution system |
FR2550638A1 (en) | 1983-08-11 | 1985-02-15 | Christophe Leveque | DEVICE FOR PROTECTING SOFTWARE USED BY A COMPUTER CONNECTED TO AT LEAST ONE PERIPHERAL TERMINAL |
US4926480A (en) | 1983-08-22 | 1990-05-15 | David Chaum | Card-computer moderated systems |
US4621334A (en) | 1983-08-26 | 1986-11-04 | Electronic Signature Lock Corporation | Personal identification apparatus |
US4584641A (en) * | 1983-08-29 | 1986-04-22 | Paul Guglielmino | Copyprotecting system for software protection |
US4562306A (en) * | 1983-09-14 | 1985-12-31 | Chou Wayne W | Method and apparatus for protecting computer software utilizing an active coded hardware device |
US5103392A (en) | 1983-10-05 | 1992-04-07 | Fujitsu Limited | System for storing history of use of programs including user credit data and having access by the proprietor |
US4768087A (en) * | 1983-10-07 | 1988-08-30 | National Information Utilities Corporation | Education utility |
US4652990A (en) * | 1983-10-27 | 1987-03-24 | Remote Systems, Inc. | Protected software access control apparatus and method |
GB2149944A (en) | 1983-11-14 | 1985-06-19 | Softnet Inc | Software distribution |
US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
US4740890A (en) * | 1983-12-22 | 1988-04-26 | Software Concepts, Inc. | Software protection system with trial period usage code and unlimited use unlocking code both recorded on program storage media |
US4584639A (en) * | 1983-12-23 | 1986-04-22 | Key Logic, Inc. | Computer security system |
US4577289A (en) * | 1983-12-30 | 1986-03-18 | International Business Machines Corporation | Hardware key-on-disk system for copy-protecting magnetic storage media |
WO1985003584A1 (en) | 1984-02-03 | 1985-08-15 | Paul Guignard | Security and usage monitoring |
US4621321A (en) | 1984-02-16 | 1986-11-04 | Honeywell Inc. | Secure data processing system architecture |
US4599489A (en) | 1984-02-22 | 1986-07-08 | Gordian Systems, Inc. | Solid state key for controlling access to computer software |
US4609777A (en) | 1984-02-22 | 1986-09-02 | Gordian Systems, Inc. | Solid state key for controlling access to computer software |
US4646234A (en) * | 1984-02-29 | 1987-02-24 | Brigham Young University | Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs |
US4672605A (en) | 1984-03-20 | 1987-06-09 | Applied Spectrum Technologies, Inc. | Data and voice communications system |
US4649515A (en) | 1984-04-30 | 1987-03-10 | Westinghouse Electric Corp. | Methods and apparatus for system fault diagnosis and control |
US4748561A (en) | 1984-05-14 | 1988-05-31 | Mark Brown | Method of protecting computer software |
US4712238A (en) * | 1984-06-08 | 1987-12-08 | M/A-Com Government Systems, Inc. | Selective-subscription descrambling |
US4791565A (en) * | 1984-06-20 | 1988-12-13 | Effective Security Systems, Inc. | Apparatus for controlling the use of computer software |
US4562495A (en) * | 1984-07-02 | 1985-12-31 | Verbatim Corporation | Multiple system disk |
EP0175487A3 (en) * | 1984-08-23 | 1989-03-08 | Btg International Limited | Software protection device |
US4747139A (en) * | 1984-08-27 | 1988-05-24 | Taaffe James L | Software security method and systems |
BE900479A (en) | 1984-08-31 | 1984-12-17 | Smets Raph | Magnetic recording disc for computer data - has sector subjected to different treatment to prevent unauthorised copying |
US4644493A (en) * | 1984-09-14 | 1987-02-17 | International Business Machines Corporation | Implementing a shared higher level of privilege on personal computers for copy protection of software |
US4677552A (en) | 1984-10-05 | 1987-06-30 | Sibley Jr H C | International commodity trade exchange |
US4696034A (en) * | 1984-10-12 | 1987-09-22 | Signal Security Technologies | High security pay television system |
US4677434A (en) * | 1984-10-17 | 1987-06-30 | Lotus Information Network Corp. | Access control system for transmitting data from a central station to a plurality of receiving stations and method therefor |
EP0180460B1 (en) | 1984-10-31 | 1990-09-19 | Sony Corporation | Decoders for pay television systems |
CA1238427A (en) * | 1984-12-18 | 1988-06-21 | Jonathan Oseas | Code protection using cryptography |
JPS61166652A (en) * | 1985-01-19 | 1986-07-28 | Panafacom Ltd | Interruption generating system using exceptional memory protection |
US4713753A (en) * | 1985-02-21 | 1987-12-15 | Honeywell Inc. | Secure data processing system architecture with format control |
US4888798A (en) | 1985-04-19 | 1989-12-19 | Oms, Inc. | Modular software security |
US4700296A (en) | 1985-04-19 | 1987-10-13 | Palmer Jr Roy A | Electronic access control system |
US4688169A (en) * | 1985-05-30 | 1987-08-18 | Joshi Bhagirath S | Computer software security system |
US4685056A (en) * | 1985-06-11 | 1987-08-04 | Pueblo Technologies, Inc. | Computer security device |
US4685055A (en) | 1985-07-01 | 1987-08-04 | Thomas Richard B | Method and system for controlling use of protected software |
US4683968A (en) | 1985-09-03 | 1987-08-04 | Burroughs Corporation | System for preventing software piracy employing multi-encrypted keys and single decryption circuit modules |
US4757533A (en) * | 1985-09-11 | 1988-07-12 | Computer Security Corporation | Security system for microcomputers |
US4727550A (en) * | 1985-09-19 | 1988-02-23 | Chang David B | Radiation source |
GB2182467B (en) * | 1985-10-30 | 1989-10-18 | Ncr Co | Security device for stored sensitive data |
US5208748A (en) | 1985-11-18 | 1993-05-04 | Action Technologies, Inc. | Method and apparatus for structuring and managing human communications by explicitly defining the types of communications permitted between participants |
US5216603A (en) | 1985-11-18 | 1993-06-01 | Action Technologies, Inc. | Method and apparatus for structuring and managing human communications by explicitly defining the types of communications permitted between participants |
LU86203A1 (en) * | 1985-12-11 | 1987-07-24 | Cen Centre Energie Nucleaire | METHOD AND APPARATUS FOR VERIFYING THE AUTHENTICITY OF DOCUMENTS LINKED TO A PERSON AND THE IDENTITY OF THEIR CARRIERS |
DE3601983A1 (en) * | 1986-01-23 | 1987-07-30 | Siemens Ag | METHOD AND DEVICE FOR CONTACTLESS DETERMINATION OF TEMPERATURE DISTRIBUTION IN AN EXAMINATION OBJECT |
US5759101A (en) | 1986-03-10 | 1998-06-02 | Response Reward Systems L.C. | Central and remote evaluation of responses of participatory broadcast audience with automatic crediting and couponing |
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 |
US4893332A (en) * | 1986-05-12 | 1990-01-09 | Aquatrol Corporation | Low-powered remote sensor |
US4823264A (en) | 1986-05-27 | 1989-04-18 | Deming Gilbert R | Electronic funds transfer system |
US4780821A (en) | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
GB8619989D0 (en) | 1986-08-16 | 1986-09-24 | Modray Ltd | Controlling length of time |
US5014234A (en) | 1986-08-25 | 1991-05-07 | Ncr Corporation | System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software |
US4967403A (en) | 1986-08-25 | 1990-10-30 | Sony Corporation | Multi-format optical disk and reading device |
US5010571A (en) | 1986-09-10 | 1991-04-23 | Titan Linkabit Corporation | Metering retrieval of encrypted data stored in customer data retrieval terminal |
US5050213A (en) | 1986-10-14 | 1991-09-17 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US4977594A (en) | 1986-10-14 | 1990-12-11 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US4827508A (en) | 1986-10-14 | 1989-05-02 | Personal Library Software, Inc. | Database usage metering and protection system and method |
US5047928A (en) | 1986-10-24 | 1991-09-10 | Wiedemer John D | Billing system for computer software |
US5155680A (en) | 1986-10-24 | 1992-10-13 | Signal Security Technologies | Billing system for computing software |
US4796181A (en) * | 1986-10-24 | 1989-01-03 | Wiedemer John D | Billing system for computer software |
US4817140A (en) * | 1986-11-05 | 1989-03-28 | International Business Machines Corp. | Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor |
US5109413A (en) | 1986-11-05 | 1992-04-28 | International Business Machines Corporation | Manipulating rights-to-execute in connection with a software copy protection mechanism |
US5146575A (en) | 1986-11-05 | 1992-09-08 | International Business Machines Corp. | Implementing privilege on microprocessor systems for use in software asset protection |
US4858121A (en) | 1986-12-12 | 1989-08-15 | Medical Payment Systems, Incorporated | Medical payment system |
US4796220A (en) * | 1986-12-15 | 1989-01-03 | Pride Software Development Corp. | Method of controlling the copying of software |
US4757914A (en) | 1987-01-27 | 1988-07-19 | Continental Can Company, Inc. | Laminated closure for a plastic container |
US4893248A (en) * | 1987-02-06 | 1990-01-09 | Access Corporation | Monitoring and reporting system for remote terminals |
US4881197A (en) | 1987-02-13 | 1989-11-14 | Addison Fischer | Document composition system using named formats and named fonts |
US5224160A (en) | 1987-02-23 | 1993-06-29 | Siemens Nixdorf Informationssysteme Ag | Process for securing and for checking the integrity of the secured programs |
US4975647A (en) | 1987-06-01 | 1990-12-04 | Nova Biomedical Corporation | Controlling machine operation with respect to consumable accessory units |
US5070400A (en) | 1987-06-30 | 1991-12-03 | Comsat | Pay-tv time purchase scheme |
US4866769A (en) | 1987-08-05 | 1989-09-12 | Ibm Corporation | Hardware assist for protecting PC software |
US5206951A (en) | 1987-08-21 | 1993-04-27 | Wang Laboratories, Inc. | Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types |
US4999806A (en) | 1987-09-04 | 1991-03-12 | Fred Chernow | Software distribution system |
DE3876617T2 (en) | 1987-09-04 | 1993-04-08 | Digital Equipment Corp | CONNECTION CONTROL IN A NETWORK FOR A DIGITAL DATA PROCESSING SYSTEM THAT SUPPLIES MULTIPLE TRANSMISSION PROTOCOLS. |
US5005122A (en) | 1987-09-08 | 1991-04-02 | Digital Equipment Corporation | Arrangement with cooperating management server node and network service node |
DE3888068D1 (en) | 1987-09-30 | 1994-04-07 | Thomson Brandt Gmbh | Method and circuit arrangement for recognizing a signal contained in a video signal. |
US4864616A (en) | 1987-10-15 | 1989-09-05 | Micronyx, Inc. | Cryptographic labeling of electronically stored data |
US5390297A (en) * | 1987-11-10 | 1995-02-14 | Auto-Trol Technology Corporation | System for controlling the number of concurrent copies of a program in a network based on the number of available licenses |
US4975878A (en) | 1988-01-28 | 1990-12-04 | National Semiconductor | Programmable memory data protection scheme |
DE3803982A1 (en) | 1988-02-10 | 1990-01-25 | Igor Groza | Data carrier with duplication prevention |
US5214702A (en) | 1988-02-12 | 1993-05-25 | Fischer Addison M | Public key/signature cryptosystem with enhanced digital signature certification |
US4868877A (en) | 1988-02-12 | 1989-09-19 | Fischer Addison M | Public key/signature cryptosystem with enhanced digital signature certification |
US5005200A (en) | 1988-02-12 | 1991-04-02 | Fischer Addison M | Public key/signature cryptosystem with enhanced digital signature certification |
US4937863A (en) | 1988-03-07 | 1990-06-26 | Digital Equipment Corporation | Software licensing management system |
JP2635087B2 (en) | 1988-03-25 | 1997-07-30 | 株式会社日立製作所 | Process control method |
GB8809346D0 (en) * | 1988-04-20 | 1988-05-25 | Emi Plc Thorn | Improvements relating to marked recorded signals |
US5113518A (en) * | 1988-06-03 | 1992-05-12 | Durst Jr Robert T | Method and system for preventing unauthorized use of software |
US5191573A (en) * | 1988-06-13 | 1993-03-02 | Hair Arthur R | Method for transmitting a desired digital video or audio signal |
US4924378A (en) | 1988-06-13 | 1990-05-08 | Prime Computer, Inc. | License mangagement system and license storage key |
US5185717A (en) | 1988-08-05 | 1993-02-09 | Ryoichi Mori | Tamper resistant module having logical elements arranged in multiple layers on the outer surface of a substrate to protect stored information |
ATE166986T1 (en) | 1988-08-16 | 1998-06-15 | Cryptologics International Inc | INFORMATION DISTRIBUTION SYSTEM |
US5247575A (en) | 1988-08-16 | 1993-09-21 | Sprague Peter J | Information distribution system |
US5023907A (en) | 1988-09-30 | 1991-06-11 | Apollo Computer, Inc. | Network license server |
US4953209A (en) | 1988-10-31 | 1990-08-28 | International Business Machines Corp. | Self-verifying receipt and acceptance system for electronically delivered data objects |
US4949187A (en) | 1988-12-16 | 1990-08-14 | Cohen Jason M | Video communications system having a remotely controlled central source of video and audio data |
US4919545A (en) | 1988-12-22 | 1990-04-24 | Gte Laboratories Incorporated | Distributed security procedure for intelligent networks |
US4962533A (en) | 1989-02-17 | 1990-10-09 | Texas Instrument Incorporated | Data protection for computer systems |
US4941175A (en) | 1989-02-24 | 1990-07-10 | International Business Machines Corporation | Tamper-resistant method for authorizing access to data between a host and a predetermined number of attached workstations |
EP0383985A1 (en) * | 1989-02-24 | 1990-08-29 | Claus Peter Prof. Dr. Schnorr | Method for subscriber identification and for generation and verification of electronic signatures in a data exchange system |
US5065429A (en) | 1989-04-03 | 1991-11-12 | Lang Gerald S | Method and apparatus for protecting material on storage media |
US5325524A (en) | 1989-04-06 | 1994-06-28 | Digital Equipment Corporation | Locating mobile objects in a distributed computer system |
US5199066A (en) * | 1989-04-18 | 1993-03-30 | Special Effects Software, Inc. | Method and apparatus for protecting software |
WO1990013865A1 (en) | 1989-04-28 | 1990-11-15 | Softel, Inc. | Method and apparatus for remotely controlling and monitoring the use of computer software |
CA2053261A1 (en) * | 1989-04-28 | 1990-10-29 | Gary D. Hornbuckle | Method and apparatus for remotely controlling and monitoring the use of computer software |
DE69031191T2 (en) | 1989-05-15 | 1998-02-12 | Ibm | System for controlling access privileges |
US5075847A (en) | 1989-05-26 | 1991-12-24 | Hewlett-Packard Company | Method and apparatus for computer program encapsulation |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
US5129084A (en) | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Object container transfer system and method in an object based computer operating system |
US5347579A (en) | 1989-07-05 | 1994-09-13 | Blandford Robert R | Personal computer diary |
US5187787B1 (en) * | 1989-07-27 | 1996-05-07 | Teknekron Software Systems Inc | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5257369A (en) | 1990-10-22 | 1993-10-26 | Skeen Marion D | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5557798A (en) | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US6044205A (en) | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
US5126936A (en) | 1989-09-01 | 1992-06-30 | Champion Securities | Goal-directed financial asset management system |
US5027397A (en) | 1989-09-12 | 1991-06-25 | International Business Machines Corporation | Data protection by detection of intrusion into electronic assemblies |
US5138712A (en) | 1989-10-02 | 1992-08-11 | Sun Microsystems, Inc. | Apparatus and method for licensing software on a network of computers |
US5048085A (en) | 1989-10-06 | 1991-09-10 | International Business Machines Corporation | Transaction system security method and apparatus |
US5148481A (en) | 1989-10-06 | 1992-09-15 | International Business Machines Corporation | Transaction system security method and apparatus |
US5001752A (en) | 1989-10-13 | 1991-03-19 | Fischer Addison M | Public/key date-time notary facility |
US5136643A (en) | 1989-10-13 | 1992-08-04 | Fischer Addison M | Public/key date-time notary facility |
US5241671C1 (en) | 1989-10-26 | 2002-07-02 | Encyclopaedia Britannica Educa | Multimedia search system using a plurality of entry path means which indicate interrelatedness of information |
US5201047A (en) | 1989-12-21 | 1993-04-06 | International Business Machines Corporation | Attribute-based classification and retrieval system |
US5163091A (en) | 1990-01-29 | 1992-11-10 | Graziano James M | Knowledge based system for document authentication (apparatus) |
US5218605A (en) | 1990-01-31 | 1993-06-08 | Hewlett-Packard Company | Software modules for testing computer hardware and software |
US5251294A (en) | 1990-02-07 | 1993-10-05 | Abelow Daniel H | Accessing, assembling, and using bodies of information |
US5263158A (en) | 1990-02-15 | 1993-11-16 | International Business Machines Corporation | Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager |
US5263157A (en) | 1990-02-15 | 1993-11-16 | International Business Machines Corporation | Method and system for providing user access control within a distributed data processing system by the exchange of access control profiles |
US5263165A (en) | 1990-02-15 | 1993-11-16 | International Business Machines Corporation | System for providing user access control within a distributed data processing system having multiple resource managers |
US5119493A (en) | 1990-02-23 | 1992-06-02 | International Business Machines Corporation | System for recording at least one selected activity from a selected resource object within a distributed data processing system |
DE69031758T2 (en) | 1990-04-13 | 1998-05-28 | Koninkl Philips Electronics Nv | Process for organizing and accessing product descriptive data in connection with a technical process |
US5022080A (en) | 1990-04-16 | 1991-06-04 | Durst Robert T | Electronic notary |
FR2662007B1 (en) | 1990-05-10 | 1992-07-10 | Bull Sa | PROCESS FOR OBTAINING A SECURE CLEAR ATTESTATION IN A DISTRIBUTED COMPUTER SYSTEM ENVIRONMENT. |
DE69130461T2 (en) | 1990-05-11 | 1999-06-10 | International Computers Ltd., Putney, London | Access control in a distributed computer system |
EP0459046A1 (en) * | 1990-05-31 | 1991-12-04 | International Business Machines Corporation | Computer software protection |
JP3050395B2 (en) * | 1990-06-12 | 2000-06-12 | 国立感染症研究所長 | Hepatitis C virus antigen polypeptide, method for producing the same, and method for detecting antibody |
NL9001368A (en) | 1990-06-15 | 1992-01-02 | Tel Developments B V | SECURITY OF OBJECTS OR DOCUMENTS. |
US5050212A (en) | 1990-06-20 | 1991-09-17 | Apple Computer, Inc. | Method and apparatus for verifying the integrity of a file stored separately from a computer |
US5201046A (en) | 1990-06-22 | 1993-04-06 | Xidak, Inc. | Relational database management system and method for storing, retrieving and modifying directed graph data structures |
US5032979A (en) | 1990-06-22 | 1991-07-16 | International Business Machines Corporation | Distributed security auditing subsystem for an operating system |
US5103459B1 (en) | 1990-06-25 | 1999-07-06 | Qualcomm Inc | System and method for generating signal waveforms in a cdma cellular telephone system |
US5091966A (en) | 1990-07-31 | 1992-02-25 | Xerox Corporation | Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes |
US5128525A (en) | 1990-07-31 | 1992-07-07 | Xerox Corporation | Convolution filtering for decoding self-clocking glyph shape codes |
US5168147A (en) | 1990-07-31 | 1992-12-01 | Xerox Corporation | Binary image processing for decoding self-clocking glyph shape codes |
CA2044404C (en) | 1990-07-31 | 1998-06-23 | Dan S. Bloomberg | Self-clocking glyph shape codes |
US5136647A (en) | 1990-08-02 | 1992-08-04 | Bell Communications Research, Inc. | Method for secure time-stamping of digital documents |
US5136646A (en) | 1991-03-08 | 1992-08-04 | Bell Communications Research, Inc. | Digital document time-stamping with catenate certificate |
US5058162A (en) | 1990-08-09 | 1991-10-15 | Hewlett-Packard Company | Method of distributing computer data files |
US5251304A (en) | 1990-09-28 | 1993-10-05 | Motorola, Inc. | Integrated circuit microcontroller with on-chip memory and external bus interface and programmable mechanism for securing the contents of on-chip memory |
WO1992006438A1 (en) | 1990-10-01 | 1992-04-16 | Bush Thomas A | Transactional processing system |
US5222134A (en) | 1990-11-07 | 1993-06-22 | Tau Systems Corporation | Secure system for activating personal computer software at remote locations |
US5758152A (en) | 1990-12-06 | 1998-05-26 | Prime Arithmetics, Inc. | Method and apparatus for the generation and manipulation of data structures |
US5504818A (en) | 1991-04-19 | 1996-04-02 | Okano; Hirokazu | Information processing system using error-correcting codes and cryptography |
DE69228350T2 (en) | 1991-05-08 | 1999-09-23 | Digital Equipment Corp., Maynard | ADMINISTRATIVE INTERFACE AND FORMAT FOR LICENSE MANAGEMENT SYSTEM |
US5237614A (en) | 1991-06-07 | 1993-08-17 | Security Dynamics Technologies, Inc. | Integrated network security system |
SE513182C2 (en) | 1991-06-12 | 2000-07-24 | Icl Systems Ab | Procedure and system for auditing data in a distributed computer system |
GB9112644D0 (en) | 1991-06-12 | 1991-07-31 | Int Computers Ltd | Data processing system with cryptographic facility |
FR2678121B1 (en) | 1991-06-18 | 1994-04-29 | Matra Communication | DEVICE FOR INSERTING DIGITAL PACKETS IN A TRANSMISSION CHANNEL. |
US5438508A (en) | 1991-06-28 | 1995-08-01 | Digital Equipment Corporation | License document interchange format for license management system |
US5204897A (en) | 1991-06-28 | 1993-04-20 | Digital Equipment Corporation | Management interface for license management system |
US5319785A (en) | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Polling of I/O device status comparison performed in the polled I/O device |
US5260999A (en) | 1991-06-28 | 1993-11-09 | Digital Equipment Corporation | Filters in license management system |
US5940504A (en) | 1991-07-01 | 1999-08-17 | Infologic Software, Inc. | Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site |
US5577209A (en) | 1991-07-11 | 1996-11-19 | Itt Corporation | Apparatus and method for providing multi-level security for communication among computers and terminals on a network |
US5383113A (en) * | 1991-07-25 | 1995-01-17 | Checkfree Corporation | System and method for electronically providing customer services including payment of bills, financial analysis and loans |
US5367621A (en) | 1991-09-06 | 1994-11-22 | International Business Machines Corporation | Data processing method to provide a generalized link from a reference point in an on-line book to an arbitrary multimedia object which can be dynamically updated |
US5301326A (en) | 1991-09-24 | 1994-04-05 | Microsoft Corporation | Method and system for controlling the execution of an application program |
US5355474A (en) | 1991-09-27 | 1994-10-11 | Thuraisngham Bhavani M | System for multilevel secure database management using a knowledge base with release-based and other security constraints for query, response and update modification |
FR2681997A1 (en) | 1991-09-30 | 1993-04-02 | Arbitron Cy | METHOD AND DEVICE FOR AUTOMATICALLY IDENTIFYING A PROGRAM COMPRISING A SOUND SIGNAL |
JP3065738B2 (en) | 1991-10-11 | 2000-07-17 | 株式会社東芝 | Computer system |
GB9121995D0 (en) | 1991-10-16 | 1991-11-27 | Jonhig Ltd | Value transfer system |
US5265164A (en) | 1991-10-31 | 1993-11-23 | International Business Machines Corporation | Cryptographic facility environment backup/restore and replication in a public key cryptosystem |
US5164988A (en) | 1991-10-31 | 1992-11-17 | International Business Machines Corporation | Method to establish and enforce a network cryptographic security policy in a public key cryptosystem |
US5453601A (en) | 1991-11-15 | 1995-09-26 | Citibank, N.A. | Electronic-monetary system |
US5557518A (en) | 1994-04-28 | 1996-09-17 | Citibank, N.A. | Trusted agents for open electronic commerce |
US5455861A (en) | 1991-12-09 | 1995-10-03 | At&T Corp. | Secure telecommunications |
US5150407A (en) | 1991-12-16 | 1992-09-22 | Chan Steve S C | Secured data storage devices |
US5276901A (en) * | 1991-12-16 | 1994-01-04 | International Business Machines Corporation | System for controlling group access to objects using group access control folder and group identification as individual user |
US5319735A (en) | 1991-12-17 | 1994-06-07 | Bolt Beranek And Newman Inc. | Embedded signalling |
GB9126779D0 (en) * | 1991-12-17 | 1992-02-12 | Int Computers Ltd | Security mechanism for a computer system |
US5359721A (en) | 1991-12-18 | 1994-10-25 | Sun Microsystems, Inc. | Non-supervisor mode cross address space dynamic linking |
US5221833A (en) | 1991-12-27 | 1993-06-22 | Xerox Corporation | Methods and means for reducing bit error rates in reading self-clocking glyph codes |
US5245165A (en) | 1991-12-27 | 1993-09-14 | Xerox Corporation | Self-clocking glyph code for encoding dual bit digital values robustly |
US5199074A (en) * | 1992-01-06 | 1993-03-30 | Advanced Micro Devices, Inc. | Encryption system |
US5231568A (en) | 1992-01-16 | 1993-07-27 | Impact Telemedia, Inc. | Promotional game method and apparatus therefor |
WO2004077300A1 (en) | 1992-01-22 | 2004-09-10 | Yoshimasa Kadooka | Ic memory card and protection therefor |
US5335169A (en) | 1992-01-27 | 1994-08-02 | Dsi Of Hawaii, Inc. | System for tracking multiple rate assessments on transactions |
US5521815A (en) | 1992-01-31 | 1996-05-28 | K.L.E. Irrevocable Trust | Uniform system for verifying and tracking articles of value |
JP2942837B2 (en) | 1992-01-31 | 1999-08-30 | 株式会社セガ・エンタープライゼス | Security check method, game device, and information storage medium used for them |
US5301231A (en) | 1992-02-12 | 1994-04-05 | International Business Machines Corporation | User defined function facility |
GB2264796A (en) | 1992-03-02 | 1993-09-08 | Ibm | Distributed transaction processing |
JP3073590B2 (en) * | 1992-03-16 | 2000-08-07 | 富士通株式会社 | Electronic data protection system, licensor's device and user's device |
CA2093094C (en) | 1992-04-06 | 2000-07-11 | Addison M. Fischer | Method and apparatus for creating, supporting, and using travelling programs |
US5291598A (en) * | 1992-04-07 | 1994-03-01 | Gregory Grundy | Method and system for decentralized manufacture of copy-controlled software |
US5392390A (en) | 1992-04-10 | 1995-02-21 | Intellilink Corp. | Method for mapping, translating, and dynamically reconciling data between disparate computer platforms |
US5276735A (en) | 1992-04-17 | 1994-01-04 | Secure Computing Corporation | Data enclave and trusted path system |
JP2659896B2 (en) | 1992-04-29 | 1997-09-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Structured document copy management method and structured document copy management device |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5412717A (en) | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
DE69323926T2 (en) | 1992-05-15 | 1999-09-30 | Addison M. Fischer | Method and device for the security of a computer system with program authorization data structures |
EP0597056A1 (en) | 1992-05-29 | 1994-05-18 | Ecole Polytechnique Federale De Lausanne | Method for the marking of documents |
US5596718A (en) | 1992-07-10 | 1997-01-21 | Secure Computing Corporation | Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor |
EP0581421B1 (en) | 1992-07-20 | 2003-01-15 | Compaq Computer Corporation | Method and system for certificate based alias detection |
US5235642A (en) | 1992-07-21 | 1993-08-10 | Digital Equipment Corporation | Access control subsystem and method for distributed computer system using locally cached authentication credentials |
US5721788A (en) * | 1992-07-31 | 1998-02-24 | Corbis Corporation | Method and system for digital image signatures |
CA2118940A1 (en) | 1992-07-31 | 1994-02-17 | David W. Snow | Apparatus and method for providing network security |
US5285494A (en) | 1992-07-31 | 1994-02-08 | Pactel Corporation | Network management system |
US5361359A (en) | 1992-08-31 | 1994-11-01 | Trusted Information Systems, Inc. | System and method for controlling the use of a computer |
US5819226A (en) | 1992-09-08 | 1998-10-06 | Hnc Software Inc. | Fraud detection using predictive modeling |
AU678985B2 (en) * | 1992-09-21 | 1997-06-19 | Uniloc Corporation Pty Limited | System for software registration |
JP3084969B2 (en) | 1992-10-16 | 2000-09-04 | 松下電器産業株式会社 | Playback device, recording device, cased recording medium, and recording medium initialization device |
GB2295947B (en) | 1992-10-27 | 1997-08-13 | Mitsubishi Corp | Pay broadcasting system |
US5535322A (en) | 1992-10-27 | 1996-07-09 | International Business Machines Corporation | Data processing system with improved work flow system and method |
US5343526A (en) | 1992-10-30 | 1994-08-30 | At&T Bell Laboratories | Method for establishing licensor changeable limits on software usage |
US5349642A (en) | 1992-11-03 | 1994-09-20 | Novell, Inc. | Method and apparatus for authentication of client server communication |
US5432928A (en) | 1992-11-10 | 1995-07-11 | Microsoft Corporation | Updating objects stored in a permanent container while preserving logical contiguity |
WO1994014115A2 (en) | 1992-12-01 | 1994-06-23 | Microsoft Corporation | A method and system for in-place interaction with embedded objects |
US5341429A (en) | 1992-12-04 | 1994-08-23 | Testdrive Corporation | Transformation of ephemeral material |
US5509070A (en) | 1992-12-15 | 1996-04-16 | Softlock Services Inc. | Method for encouraging purchase of executable and non-executable software |
US5373561A (en) | 1992-12-21 | 1994-12-13 | Bell Communications Research, Inc. | Method of extending the validity of a cryptographic certificate |
US5630069A (en) | 1993-01-15 | 1997-05-13 | Action Technologies, Inc. | Method and apparatus for creating workflow maps of business processes |
US5497491A (en) | 1993-01-26 | 1996-03-05 | International Business Machines Corporation | System and method for importing and exporting data between an object oriented computing environment and an external computing environment |
US5369707A (en) | 1993-01-27 | 1994-11-29 | Tecsec Incorporated | Secure network method and apparatus |
US5351293A (en) | 1993-02-01 | 1994-09-27 | Wave Systems Corp. | System method and apparatus for authenticating an encrypted signal |
JPH09501517A (en) | 1993-02-08 | 1997-02-10 | アクション・テクノロジーズ・インコーポレーテッド | Method and apparatus for managing business processes |
US5390330A (en) | 1993-02-11 | 1995-02-14 | Talati; Kirit K. | Control system and method for direct execution of software application information models without code generation |
US5640546A (en) | 1993-02-23 | 1997-06-17 | Network Programs, Inc. | Composition of systems of objects by interlocking coordination, projection, and distribution |
US5365587A (en) | 1993-03-11 | 1994-11-15 | International Business Machines Corporation | Self modifying access code for altering capabilities |
US5315448A (en) | 1993-03-18 | 1994-05-24 | Macrovision Corporation | Copy protection for hybrid digital video tape recording and unprotected source material |
US5408501A (en) | 1993-04-06 | 1995-04-18 | Conner Peripherals, Inc. | Data transfer system |
JP3255754B2 (en) | 1993-04-23 | 2002-02-12 | 富士通株式会社 | Electronic trading system |
US5422953A (en) | 1993-05-05 | 1995-06-06 | Fischer; Addison M. | Personal date/time notary device |
US5504837A (en) | 1993-05-10 | 1996-04-02 | Bell Communications Research, Inc. | Method for resolving conflicts among distributed entities through the generation of counter proposals by transversing a goal hierarchy with acceptable, unacceptable, and indeterminate nodes |
US5583936A (en) | 1993-05-17 | 1996-12-10 | Macrovision Corporation | Video copy protection process enhancement to introduce horizontal and vertical picture distortions |
US5649099A (en) | 1993-06-04 | 1997-07-15 | Xerox Corporation | Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security |
US5337357A (en) | 1993-06-17 | 1994-08-09 | Software Security, Inc. | Method of software distribution protection |
US5550971A (en) | 1993-06-30 | 1996-08-27 | U S West Technologies, Inc. | Method and system for generating a user interface adaptable to various database management systems |
US5428606A (en) | 1993-06-30 | 1995-06-27 | Moskowitz; Scott A. | Digital information commodities exchange |
US5603031A (en) * | 1993-07-08 | 1997-02-11 | General Magic, Inc. | System and method for distributed computation based upon the movement, execution, and interaction of processes in a network |
US5418713A (en) | 1993-08-05 | 1995-05-23 | Allen; Richard | Apparatus and method for an on demand data delivery system for the preview, selection, retrieval and reproduction at a remote location of previously recorded or programmed materials |
AU683038B2 (en) | 1993-08-10 | 1997-10-30 | Addison M. Fischer | A method for operating computers and for processing information among computers |
US5458494A (en) | 1993-08-23 | 1995-10-17 | Edutech Research Labs, Ltd. | Remotely operable teaching system and method therefor |
IL110891A (en) | 1993-09-14 | 1999-03-12 | Spyrus | System and method for data access control |
JPH07175868A (en) | 1993-10-15 | 1995-07-14 | Internatl Business Mach Corp <Ibm> | Method and system for output of digital information to medium |
CA2129075C (en) | 1993-10-18 | 1999-04-20 | Joseph J. Daniele | Electronic copyright royalty accounting system using glyphs |
US5369702A (en) | 1993-10-18 | 1994-11-29 | Tecsec Incorporated | Distributed cryptographic object method |
US5432851A (en) | 1993-10-21 | 1995-07-11 | Tecsec Incorporated | Personal computer access control system |
US6135646A (en) | 1993-10-22 | 2000-10-24 | Corporation For National Research Initiatives | System for uniquely and persistently identifying, managing, and tracking digital objects |
US5463565A (en) | 1993-10-29 | 1995-10-31 | Time Warner Entertainment Co., L.P. | Data block format for software carrier and player therefor |
JPH07212712A (en) | 1993-10-29 | 1995-08-11 | Eastman Kodak Co | Method and equipment for adding and deleting digital watermark in hierarchical picture memory and fetch system |
US5455953A (en) | 1993-11-03 | 1995-10-03 | Wang Laboratories, Inc. | Authorization system for obtaining in single step both identification and access rights of client to server directly from encrypted authorization ticket |
US5537526A (en) | 1993-11-12 | 1996-07-16 | Taugent, Inc. | Method and apparatus for processing a display document utilizing a system level document framework |
US5625690A (en) | 1993-11-15 | 1997-04-29 | Lucent Technologies Inc. | Software pay per use system |
EP0959621B1 (en) | 1993-11-18 | 2001-02-28 | Digimarc Corporation | Video copy control with plural embedded signals |
US5768426A (en) | 1993-11-18 | 1998-06-16 | Digimarc Corporation | Graphics processing system employing embedded code signals |
US5710834A (en) | 1995-05-08 | 1998-01-20 | Digimarc Corporation | Method and apparatus responsive to a code signal conveyed through a graphic image |
US5636292C1 (en) | 1995-05-08 | 2002-06-18 | Digimarc Corp | Steganography methods employing embedded calibration data |
US5832119C1 (en) | 1993-11-18 | 2002-03-05 | Digimarc Corp | Methods for controlling systems using control signals embedded in empirical data |
US5748783A (en) | 1995-05-08 | 1998-05-05 | Digimarc Corporation | Method and apparatus for robust information coding |
US5748763A (en) | 1993-11-18 | 1998-05-05 | Digimarc Corporation | Image steganography system featuring perceptually adaptive and globally scalable signal embedding |
US5572673A (en) | 1993-12-01 | 1996-11-05 | Sybase, Inc. | Secure multi-level system for executing stored procedures |
JP3367675B2 (en) * | 1993-12-16 | 2003-01-14 | オープン マーケット インコーポレイテッド | Open network sales system and method for real-time approval of transaction transactions |
US6086706A (en) | 1993-12-20 | 2000-07-11 | Lucent Technologies Inc. | Document copying deterrent method |
US5491800A (en) | 1993-12-20 | 1996-02-13 | Taligent, Inc. | Object-oriented remote procedure call networking system |
US5449896A (en) | 1993-12-22 | 1995-09-12 | Xerox Corporation | Random access techniques for use with self-clocking glyph codes |
US5449895A (en) | 1993-12-22 | 1995-09-12 | Xerox Corporation | Explicit synchronization for self-clocking glyph codes |
US5453605A (en) | 1993-12-22 | 1995-09-26 | Xerox Corporation | Global addressability for self-clocking glyph codes |
US5473687A (en) | 1993-12-29 | 1995-12-05 | Infosafe Systems, Inc. | Method for retrieving secure information from a database |
US5450493A (en) | 1993-12-29 | 1995-09-12 | At&T Corp. | Secure communication method and apparatus |
US5513261A (en) | 1993-12-29 | 1996-04-30 | At&T Corp. | Key management scheme for use with electronic cards |
US5457747A (en) | 1994-01-14 | 1995-10-10 | Drexler Technology Corporation | Anti-fraud verification system using a data card |
US5420927B1 (en) | 1994-02-01 | 1997-02-04 | Silvio Micali | Method for certifying public keys in a digital signature scheme |
US5422645A (en) | 1994-02-14 | 1995-06-06 | The United States Of America As Represented By The Secretary Of The Army | Delayed laser retroreflector pulse technique and system |
US5394469A (en) | 1994-02-18 | 1995-02-28 | Infosafe Systems, Inc. | Method and apparatus for retrieving secure information from mass storage media |
US5530752A (en) | 1994-02-22 | 1996-06-25 | Convex Computer Corporation | Systems and methods for protecting software from unlicensed copying and use |
JP2853727B2 (en) | 1994-02-22 | 1999-02-03 | 日本ビクター株式会社 | Reproduction protection method and protection reproduction device |
US5668878A (en) | 1994-02-28 | 1997-09-16 | Brands; Stefanus Alfonsus | Secure cryptographic methods for electronic transfer of information |
KR100342120B1 (en) | 1994-02-28 | 2002-11-30 | 소니 가부시끼 가이샤 | Data recording method and apparatus, data recording medium, and data reproducing method and apparatus |
US5499298A (en) | 1994-03-17 | 1996-03-12 | National University Of Singapore | Controlled dissemination of digital information |
DE69500885T2 (en) | 1994-03-21 | 1998-05-20 | Object Technology Licensing Corp., Cupertino, Calif. | METHOD AND DEVICE FOR PROCESSING A DOCUMENT |
US5450490A (en) | 1994-03-31 | 1995-09-12 | The Arbitron Company | Apparatus and methods for including codes in audio signals and decoding |
DE4413451A1 (en) | 1994-04-18 | 1995-12-14 | Rolf Brugger | Device for the distribution of music information in digital form |
US5505461A (en) | 1994-04-19 | 1996-04-09 | Caesars World, Inc. | Method for meeting IRS reporting requirements related to an electronic gaming machine |
US5563946A (en) | 1994-04-25 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: method and apparatus for passing encrypted files between data processing systems |
US5644686A (en) | 1994-04-29 | 1997-07-01 | International Business Machines Corporation | Expert system and method employing hierarchical knowledge base, and interactive multimedia/hypermedia applications |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5724425A (en) * | 1994-06-10 | 1998-03-03 | Sun Microsystems, Inc. | Method and apparatus for enhancing software security and distributing software |
EP0687986A3 (en) * | 1994-06-17 | 1996-02-14 | Ibm | Method and apparatus for transmitting digital data in massively parallel systems |
US5533123A (en) | 1994-06-28 | 1996-07-02 | National Semiconductor Corporation | Programmable distributed personal security |
US5513260A (en) | 1994-06-29 | 1996-04-30 | Macrovision Corporation | Method and apparatus for copy protection for various recording media |
US5739864A (en) | 1994-08-24 | 1998-04-14 | Macrovision Corporation | Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal |
US5999711A (en) | 1994-07-18 | 1999-12-07 | Microsoft Corporation | Method and system for providing certificates holding authentication and authorization information for users/machines |
CA2128587A1 (en) | 1994-07-21 | 1996-01-22 | Ed Morson | Method and arrangement for recognition of a coded transmitted signal |
US5574787A (en) | 1994-07-25 | 1996-11-12 | Ryan; John O. | Apparatus and method for comprehensive copy protection for video platforms and unprotected source material |
US5590194A (en) | 1994-08-09 | 1996-12-31 | Macrovision Corporation | Method of and apparatus for scrambling a video signal with full network transmission and recording capability |
DE69534757T2 (en) | 1994-09-15 | 2006-08-31 | International Business Machines Corp. | System and method for secure storage and distribution of data using digital signatures |
US5606609A (en) | 1994-09-19 | 1997-02-25 | Scientific-Atlanta | Electronic document verification system and method |
CA2172823C (en) | 1994-09-21 | 2008-03-11 | John M. Pratt | A link manager for managing links integrating data between application programs |
US5504757A (en) | 1994-09-27 | 1996-04-02 | International Business Machines Corporation | Method for selecting transmission speeds for transmitting data packets over a serial bus |
US5678170A (en) | 1994-10-05 | 1997-10-14 | Motorola, Inc. | Method and apparatus for monitoring and limiting distribution of data |
US5842173A (en) | 1994-10-14 | 1998-11-24 | Strum; David P. | Computer-based surgical services management system |
ZA958446B (en) | 1994-10-19 | 1996-05-27 | Intergame | A method and system for cashless gaming machine operation |
US5715314A (en) | 1994-10-24 | 1998-02-03 | Open Market, Inc. | Network sales system |
US5717923A (en) * | 1994-11-03 | 1998-02-10 | Intel Corporation | Method and apparatus for dynamically customizing electronic information to individual end users |
US5629980A (en) | 1994-11-23 | 1997-05-13 | Xerox Corporation | System for controlling the distribution and use of digital works |
US5634012A (en) | 1994-11-23 | 1997-05-27 | Xerox Corporation | System for controlling the distribution and use of digital works having a fee reporting mechanism |
US5638443A (en) | 1994-11-23 | 1997-06-10 | Xerox Corporation | System for controlling the distribution and use of composite digital works |
US5715403A (en) | 1994-11-23 | 1998-02-03 | Xerox Corporation | System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar |
JPH08263438A (en) | 1994-11-23 | 1996-10-11 | Xerox Corp | Distribution and use control system of digital work and access control method to digital work |
KR100332743B1 (en) | 1994-11-26 | 2002-11-07 | 엘지전자주식회사 | Device and method for preventing illegal copy or unauthorized watching of digital image |
US5758257A (en) | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
US5553282A (en) | 1994-12-09 | 1996-09-03 | Taligent, Inc. | Software project history database and method of operation |
DE69521977T2 (en) | 1994-12-13 | 2002-04-04 | International Business Machines Corp., Armonk | Process and system for secure program distribution |
US5802590A (en) | 1994-12-13 | 1998-09-01 | Microsoft Corporation | Method and system for providing secure access to computer resources |
US5655077A (en) | 1994-12-13 | 1997-08-05 | Microsoft Corporation | Method and system for authenticating access to heterogeneous computing services |
US5646997A (en) | 1994-12-14 | 1997-07-08 | Barton; James M. | Method and apparatus for embedding authentication information within digital data |
US5485577A (en) | 1994-12-16 | 1996-01-16 | General Instrument Corporation Of Delaware | Method and apparatus for incremental delivery of access rights |
US5745569A (en) * | 1996-01-17 | 1998-04-28 | The Dice Company | Method for stega-cipher protection of computer code |
US5732400A (en) | 1995-01-04 | 1998-03-24 | Citibank N.A. | System and method for a risk-based purchase of goods |
US5692180A (en) | 1995-01-31 | 1997-11-25 | International Business Machines Corporation | Object-oriented cell directory database for a distributed computing environment |
SE504085C2 (en) | 1995-02-01 | 1996-11-04 | Greg Benson | Methods and systems for managing data objects in accordance with predetermined conditions for users |
US5643428A (en) | 1995-02-01 | 1997-07-01 | Advanced Micro Devices, Inc. | Multiple tier collimator system for enhanced step coverage and uniformity |
JPH08214281A (en) | 1995-02-06 | 1996-08-20 | Sony Corp | Charging method and system |
WO1996025006A1 (en) | 1995-02-10 | 1996-08-15 | Flexydial Pty. Ltd. | Interactive broadcasting system |
US5943422A (en) | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
US6658568B1 (en) | 1995-02-13 | 2003-12-02 | Intertrust Technologies Corporation | Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management |
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US7124302B2 (en) | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US7095854B1 (en) | 1995-02-13 | 2006-08-22 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
US7069451B1 (en) | 1995-02-13 | 2006-06-27 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5530235A (en) | 1995-02-16 | 1996-06-25 | Xerox Corporation | Interactive contents revealing storage device |
US5774872A (en) | 1995-03-31 | 1998-06-30 | Richard Golden | Automated taxable transaction reporting/collection system |
US5534975A (en) | 1995-05-26 | 1996-07-09 | Xerox Corporation | Document processing system utilizing document service cards to provide document processing services |
US5613004A (en) | 1995-06-07 | 1997-03-18 | The Dice Company | Steganographic method and device |
US5740549A (en) | 1995-06-12 | 1998-04-14 | Pointcast, Inc. | Information and advertising distribution system and method |
US5592549A (en) | 1995-06-15 | 1997-01-07 | Infosafe Systems, Inc. | Method and apparatus for retrieving selected information from a secure information source |
US5699427A (en) | 1995-06-23 | 1997-12-16 | International Business Machines Corporation | Method to deter document and intellectual property piracy through individualization |
US5689565A (en) | 1995-06-29 | 1997-11-18 | Microsoft Corporation | Cryptography system and method for providing cryptographic services for a computer application |
US5625693A (en) | 1995-07-07 | 1997-04-29 | Thomson Consumer Electronics, Inc. | Apparatus and method for authenticating transmitting applications in an interactive TV system |
US5802497A (en) | 1995-07-10 | 1998-09-01 | Digital Equipment Corporation | Method and apparatus for conducting computerized commerce |
US5878421A (en) | 1995-07-17 | 1999-03-02 | Microsoft Corporation | Information map |
JPH0944993A (en) | 1995-07-31 | 1997-02-14 | Pioneer Electron Corp | Information recording method and device therefor, function recording method and device therefor and information reproducing method and device therefor |
JP4518574B2 (en) | 1995-08-11 | 2010-08-04 | ソニー株式会社 | Recording method and apparatus, recording medium, and reproducing method and apparatus |
US5913040A (en) | 1995-08-22 | 1999-06-15 | Backweb Ltd. | Method and apparatus for transmitting and displaying information between a remote network and a local computer |
US5757915A (en) | 1995-08-25 | 1998-05-26 | Intel Corporation | Parameterized hash functions for access control |
KR0166923B1 (en) | 1995-09-18 | 1999-03-20 | 구자홍 | Method and apparatus of preventing an illegal watching and copying in a digital broadcasting system |
US6047103A (en) | 1995-10-09 | 2000-04-04 | Matsushita Electric Industrial Co., Ltd. | Data transmitter, data transmitting method, data receiver, information processor, and information recording medium |
US6807534B1 (en) | 1995-10-13 | 2004-10-19 | Trustees Of Dartmouth College | System and method for managing copyrighted electronic media |
US5765152A (en) | 1995-10-13 | 1998-06-09 | Trustees Of Dartmouth College | System and method for managing copyrighted electronic media |
US5689566A (en) | 1995-10-24 | 1997-11-18 | Nguyen; Minhtam C. | Network with secure communications sessions |
US5732398A (en) | 1995-11-09 | 1998-03-24 | Keyosk Corp. | Self-service system for selling travel-related services or products |
US5671279A (en) | 1995-11-13 | 1997-09-23 | Netscape Communications Corporation | Electronic commerce using a secure courier system |
JPH09160899A (en) | 1995-12-06 | 1997-06-20 | Matsushita Electric Ind Co Ltd | Information service processor |
US5794210A (en) | 1995-12-11 | 1998-08-11 | Cybergold, Inc. | Attention brokerage |
US5633932A (en) | 1995-12-19 | 1997-05-27 | Intel Corporation | Apparatus and method for preventing disclosure through user-authentication at a printing node |
DE69632965T2 (en) | 1996-01-03 | 2005-08-25 | Sony Electronics Inc. | COPY-PROOF RECORDING AND PLAYBACK SYSTEM |
JPH09208823A (en) | 1996-01-29 | 1997-08-12 | Toyota Central Res & Dev Lab Inc | Powdery polyimide composite material and its production |
US5754849A (en) | 1996-01-30 | 1998-05-19 | Wayfarer Communications, Inc. | Self-describing object providing dynamic manipulation of heterogeneous data values and semantic identity between memory and transmission representations |
US5689587A (en) | 1996-02-09 | 1997-11-18 | Massachusetts Institute Of Technology | Method and apparatus for data hiding in images |
US5862325A (en) | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US5896454A (en) * | 1996-03-08 | 1999-04-20 | Time Warner Entertainment Co., L.P. | System and method for controlling copying and playing of digital programs |
JP3816571B2 (en) | 1996-03-15 | 2006-08-30 | パイオニア株式会社 | Information recording apparatus, information recording method, information reproducing apparatus, and information reproducing method |
US5991876A (en) | 1996-04-01 | 1999-11-23 | Copyright Clearance Center, Inc. | Electronic rights management and authorization system |
US6085238A (en) | 1996-04-23 | 2000-07-04 | Matsushita Electric Works, Ltd. | Virtual LAN system |
US5978484A (en) | 1996-04-25 | 1999-11-02 | Microsoft Corporation | System and method for safety distributing executable objects |
WO1997043761A2 (en) | 1996-05-15 | 1997-11-20 | Intertrust Technologies Corp. | Cryptographic methods, apparatus and systems for storage media electronic rights management in closed and connected appliances |
US5892899A (en) | 1996-06-13 | 1999-04-06 | Intel Corporation | Tamper resistant methods and apparatus |
US5819263A (en) | 1996-07-19 | 1998-10-06 | American Express Financial Corporation | Financial planning system incorporating relationship and group management |
EP0974129B1 (en) | 1996-09-04 | 2006-08-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management |
US6102965A (en) | 1996-09-23 | 2000-08-15 | National Instruments Corporation | System and method for providing client/server access to graphical programs |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US5692980A (en) | 1996-10-24 | 1997-12-02 | Trotman; Stephenson E. | Kick bag game and apparatus kit |
US7062500B1 (en) | 1997-02-25 | 2006-06-13 | Intertrust Technologies Corp. | Techniques for defining, using and manipulating rights management data structures |
US5920861A (en) | 1997-02-25 | 1999-07-06 | Intertrust Technologies Corp. | Techniques for defining using and manipulating rights management data structures |
US5999949A (en) | 1997-03-14 | 1999-12-07 | Crandall; Gary E. | Text file compression system utilizing word terminators |
US6108420A (en) | 1997-04-10 | 2000-08-22 | Channelware Inc. | Method and system for networked installation of uniquely customized, authenticable, and traceable software application |
EP0988591A1 (en) | 1997-06-09 | 2000-03-29 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
DE19726027C2 (en) | 1997-06-19 | 1999-05-06 | Memminger Iro Gmbh | Thread delivery device and coupling device |
US6330549B1 (en) | 1997-10-30 | 2001-12-11 | Xerox Corporation | Protected shareware |
US7092914B1 (en) | 1997-11-06 | 2006-08-15 | Intertrust Technologies Corporation | Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
US6112181A (en) | 1997-11-06 | 2000-08-29 | Intertrust Technologies Corporation | Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
US6141753A (en) | 1998-02-10 | 2000-10-31 | Fraunhofer Gesellschaft | Secure distribution of digital representations |
US7809138B2 (en) | 1999-03-16 | 2010-10-05 | Intertrust Technologies Corporation | Methods and apparatus for persistent control and protection of content |
CA2323781C (en) | 1998-03-16 | 2004-06-01 | Intertrust Technologies Corporation | Methods and apparatus for continuous control and protection of media content |
US6983371B1 (en) | 1998-10-22 | 2006-01-03 | International Business Machines Corporation | Super-distribution of protected digital content |
US6477559B1 (en) | 1998-08-21 | 2002-11-05 | Aspect Communications Corporation | Method and apparatus for remotely accessing an automatic transaction processing system |
US6393484B1 (en) | 1999-04-12 | 2002-05-21 | International Business Machines Corp. | System and method for controlled access to shared-medium public and semi-public internet protocol (IP) networks |
US6959384B1 (en) | 1999-12-14 | 2005-10-25 | Intertrust Technologies Corporation | Systems and methods for authenticating and protecting the integrity of data streams and other data |
US6785815B1 (en) | 1999-06-08 | 2004-08-31 | Intertrust Technologies Corp. | Methods and systems for encoding and protecting data using digital signature and watermarking techniques |
AU6104800A (en) | 1999-07-16 | 2001-02-05 | Intertrust Technologies Corp. | Trusted storage systems and methods |
WO2001010076A2 (en) | 1999-07-29 | 2001-02-08 | Intertrust Technologies Corp. | Systems and methods for protecting secure and insecure computing environments using cryptography |
ATE306098T1 (en) | 1999-07-30 | 2005-10-15 | Intertrust Tech Corp | METHODS AND SYSTEMS FOR TRANSACTION RECORD TRANSMISSION USING THRESHOLD AND A MULTI-LEVEL PROTOCOL |
US6832316B1 (en) | 1999-12-22 | 2004-12-14 | Intertrust Technologies, Corp. | Systems and methods for protecting data secrecy and integrity |
US7085839B1 (en) | 2000-04-07 | 2006-08-01 | Intertrust Technologies Corporation | Network content management |
US6973499B1 (en) | 2000-04-07 | 2005-12-06 | Intertrust Technologies Corp. | Ticketing and keying for orchestrating distribution of network content |
US7313692B2 (en) | 2000-05-19 | 2007-12-25 | Intertrust Technologies Corp. | Trust management systems and methods |
US7107448B1 (en) | 2000-06-04 | 2006-09-12 | Intertrust Technologies Corporation | Systems and methods for governing content rendering, protection, and management applications |
US7050586B1 (en) | 2000-06-19 | 2006-05-23 | Intertrust Technologies Corporation | Systems and methods for retrofitting electronic appliances to accept different content formats |
US7580988B2 (en) | 2001-04-05 | 2009-08-25 | Intertrust Technologies Corporation | System and methods for managing the distribution of electronic content |
US7136840B2 (en) | 2001-04-20 | 2006-11-14 | Intertrust Technologies Corp. | Systems and methods for conducting transactions and communications using a trusted third party |
US7581103B2 (en) | 2001-06-13 | 2009-08-25 | Intertrust Technologies Corporation | Software self-checking systems and methods |
US7149899B2 (en) | 2002-04-25 | 2006-12-12 | Intertrust Technologies Corp. | Establishing a secure channel with a human user |
US7383570B2 (en) | 2002-04-25 | 2008-06-03 | Intertrust Technologies, Corp. | Secure authentication systems and methods |
EP2270622B1 (en) | 2003-06-05 | 2016-08-24 | Intertrust Technologies Corporation | Interoperable systems and methods for peer-to-peer service orchestration |
-
1996
- 1996-08-12 US US08/689,754 patent/US6157721A/en not_active Expired - Lifetime
-
1997
- 1997-09-04 AU AU36815/97A patent/AU3681597A/en not_active Abandoned
-
2000
- 2000-10-04 US US09/678,830 patent/US6292569B1/en not_active Expired - Lifetime
-
2001
- 2001-08-06 US US09/925,072 patent/US7120802B2/en not_active Expired - Lifetime
- 2001-08-06 AU AU57835/01A patent/AU756500B2/en not_active Withdrawn - After Issue
-
2002
- 2002-10-18 US US10/272,905 patent/US20030041239A1/en not_active Abandoned
-
2006
- 2006-06-14 US US11/454,072 patent/US7925898B2/en not_active Expired - Fee Related
-
2007
- 2007-07-20 US US11/781,062 patent/US20100023761A1/en not_active Abandoned
- 2007-08-20 US US11/894,327 patent/US7734553B2/en not_active Expired - Fee Related
- 2007-08-20 US US11/841,446 patent/US20080031461A1/en not_active Abandoned
- 2007-08-20 US US11/841,555 patent/US20080034214A1/en not_active Abandoned
- 2007-08-20 US US11/841,600 patent/US7761916B2/en not_active Expired - Fee Related
- 2007-08-20 US US11/841,518 patent/US7904707B2/en not_active Expired - Fee Related
- 2007-08-20 US US11/894,502 patent/US7581092B2/en not_active Expired - Fee Related
- 2007-08-21 US US11/842,138 patent/US20080033884A1/en not_active Abandoned
- 2007-10-29 US US11/978,962 patent/US20080114698A1/en not_active Abandoned
-
2011
- 2011-02-04 US US13/021,476 patent/US20110131422A1/en not_active Abandoned
Patent Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6292568B1 (en) * | 1966-12-16 | 2001-09-18 | Scientific-Atlanta, Inc. | Representing entitlements to service in a conditional access system |
US4523264A (en) * | 1984-01-09 | 1985-06-11 | West & Associates, Inc. | Two-piece tube support assembly |
US4672572A (en) * | 1984-05-21 | 1987-06-09 | Gould Inc. | Protector system for computer access and use |
US4799156A (en) * | 1986-10-01 | 1989-01-17 | Strategic Processing Corporation | Interactive market management system |
US4930073A (en) * | 1987-06-26 | 1990-05-29 | International Business Machines Corporation | Method to prevent use of incorrect program version in a computer system |
US5111390A (en) * | 1988-08-22 | 1992-05-05 | Unisys Corporation | Software security system for maintaining integrity of compiled object code by restricting users ability to define compilers |
US5224163A (en) * | 1990-09-28 | 1993-06-29 | Digital Equipment Corporation | Method for delegating authorization from one entity to another through the use of session encryption keys |
US5103476A (en) * | 1990-11-07 | 1992-04-07 | Waite David P | Secure system for activating personal computer software at remote locations |
US5319705A (en) * | 1992-10-21 | 1994-06-07 | International Business Machines Corporation | Method and system for multimedia access control enablement |
US5421005A (en) * | 1992-12-02 | 1995-05-30 | Fiset; Peter D. | Alternate DRAM refresh controlled by signal period detector |
US5479509A (en) * | 1993-04-06 | 1995-12-26 | Bull Cp8 | Method for signature of an information processing file, and apparatus for implementing it |
US5343527A (en) * | 1993-10-27 | 1994-08-30 | International Business Machines Corporation | Hybrid encryption method and system for protecting reusable software components |
US5559884A (en) * | 1994-06-30 | 1996-09-24 | Microsoft Corporation | Method and system for generating and auditing a signature for a computer program |
US7152045B2 (en) * | 1994-11-28 | 2006-12-19 | Indivos Corporation | Tokenless identification system for authorization of electronic transactions and electronic transmissions |
US5982891A (en) * | 1995-02-13 | 1999-11-09 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US7165174B1 (en) * | 1995-02-13 | 2007-01-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management |
US7133846B1 (en) * | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US5757914A (en) * | 1995-10-26 | 1998-05-26 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
US5692047A (en) * | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
US6157721A (en) * | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US20080077531A1 (en) * | 1996-08-12 | 2008-03-27 | Intertrust Technologies Corp | Systems and methods using cryptography to protect secure computing environments |
US7405724B2 (en) * | 1996-11-27 | 2008-07-29 | Diebold, Incorporated | Automated banking machine and method |
US6701433B1 (en) * | 1998-03-23 | 2004-03-02 | Novell, Inc. | Method and apparatus for escrowing properties used for accessing executable modules |
US6330670B1 (en) * | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8127137B2 (en) | 2004-03-18 | 2012-02-28 | Digimarc Corporation | Watermark payload encryption for media including multiple watermarks |
US10943030B2 (en) | 2008-12-15 | 2021-03-09 | Ibailbonding.Com | Securable independent electronic document |
EP2587421A1 (en) * | 2011-10-31 | 2013-05-01 | NCR Corporation | Securely delivering and verifying a mobile boarding pass |
CN103281179A (en) * | 2011-10-31 | 2013-09-04 | Ncr公司 | System and method of securely delivering and verifying a mobile boarding pass |
Also Published As
Publication number | Publication date |
---|---|
US20030041239A1 (en) | 2003-02-27 |
US20080034214A1 (en) | 2008-02-07 |
US6157721A (en) | 2000-12-05 |
US20080031461A1 (en) | 2008-02-07 |
US20080031457A1 (en) | 2008-02-07 |
US6292569B1 (en) | 2001-09-18 |
US7904707B2 (en) | 2011-03-08 |
US20020023214A1 (en) | 2002-02-21 |
AU756500B2 (en) | 2003-01-16 |
AU3681597A (en) | 1998-02-19 |
US20110131422A1 (en) | 2011-06-02 |
US20070288764A1 (en) | 2007-12-13 |
US7925898B2 (en) | 2011-04-12 |
US7734553B2 (en) | 2010-06-08 |
US20080034229A1 (en) | 2008-02-07 |
US20100023761A1 (en) | 2010-01-28 |
US7581092B2 (en) | 2009-08-25 |
AU5783501A (en) | 2001-10-18 |
US20080033884A1 (en) | 2008-02-07 |
US7761916B2 (en) | 2010-07-20 |
US7120802B2 (en) | 2006-10-10 |
US20080077531A1 (en) | 2008-03-27 |
US20060248353A1 (en) | 2006-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904707B2 (en) | Systems and methods using cryptography to protect secure computing environments | |
US7243236B1 (en) | Systems and methods for using cryptography to protect secure and insecure computing environments | |
WO2001010076A2 (en) | Systems and methods for protecting secure and insecure computing environments using cryptography | |
US9165135B2 (en) | Systems and methods using cryptography to protect secure computing environments | |
EP1302018B1 (en) | Secure transactions with passive storage media | |
US5991399A (en) | Method for securely distributing a conditional use private key to a trusted entity on a remote system | |
US7590853B1 (en) | Systems and methods using cryptography to protect secure computing environments | |
Lampson | Computer Security | |
AU2003203649B2 (en) | Systems and methods using cryptography to protect secure computing environments | |
AU2004240210B2 (en) | Systems and methods using cryptography to protect secure computing environments | |
Schmidt | ASITA: Advanced security infrastructure for multi-agent-applications in the telematic area | |
Lampson | Technology to achieve secure computer systems | |
Pasquet et al. | A Low-cost and secure solution for e-commerce | |
Karger et al. | Designing a Secure Smart Card Operating System | |
Longley | SWIFT. SAISS. Subcommittee on Automated Information System Security. salami technique. In computer securi-ty, a form of Trojan Horse which has | |
Strumpf et al. | The creation of Qualified Signatures with Trusted Platform Modules | |
IT-UTFS-S | Contactless Fare Media System Standard Part IV–Security Planning and Implementation Guidelines and Best Practices | |
Weber | Highly Secure Low-cost Computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |