Patent US2716992A successfully refreshed from Google Patents.
Patent US6092147A successfully refreshed from Google Patents.
← Back to Patent Explorer
US6092147A Expired / Lapsed US ⏱️ 0.0 years remaining

Virtual machine with securely distributed bytecode verification

Assignee: Oracle America Inc
•
Filing: 1997-04-15
•
Granted: 2000-07-18
•
Expires: 2017-04-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for executing a software application comprising a plurality of hardware independent bytecodes is provided comprising a computing system that generates bytecodes, a virtual machine, remote to the computing system, that receives a plurality of bytecodes from said computing system, and executes said plurality of bytecodes, a system for testing said bytecodes against a set of predetermined criteria in which the testing is securely distributed between said virtual machine and said computing system so that the bytecode verification completed by the computing system is authenticated by the virtual machine prior to the execution of the bytecodes by said virtual machine. A method for distributed bytecode verification is also provided.

Inventors

  • 👤 Moshe Levy
  • 👤 Judy Schwabe

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 19:33
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/50; G06F21/51; G06F21/10; G06F21/12; G06F21/121; G06F21/125; G06F21/60; G06F21/64; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44589

Claims Analysis

Total Claims: 29
Claim 1
Independent Claim 107 words
A system for executing a software application comprising a plurality of hardware independent bytecodes, the system comprising: a computing system data generates bytecodes; a virtual machine, remote to the computing system, comprising means for receiving a plurality of authenticated bytecodes from said computing system, and means for executing said plurality of authenticated bytecodes; means for testing said bytecodes against a set of predetermined criteria; and means for securely distributing said testing means between said virtual machine and said computing system so that bytecode testing completed by the computing system is authenticated by the virtual machine prior to the execution of the authenticated bytecodes by said virtual machine.
Claim 2
Independent Claim 107 words
A system for executing a software application comprising a plurality of hardware independent bytecodes, the system comprising: a computing system data generates bytecodes; a virtual machine, remote to the computing system, comprising means for receiving a plurality of authenticated bytecodes from said computing system, and means for executing said plurality of authenticated bytecodes; means for testing said bytecodes against a set of predetermined criteria; and means for securely distributing said testing means between said virtual machine and said computing system so that bytecode testing completed by the computing system is authenticated by the virtual machine prior to the execution of the authenticated bytecodes by said virtual machine.
Claim 3
Dependent Claim 52 words
The system of claim 1, wherein said remote computing system comprises means for determining that the bytecodes comply with a predetermined set of criteria to generate verified bytecodes, and means for generating a proof of authenticity attached to said verified bytecodes to generate authenticated bytecodes so that the authenticated bytecodes are tamper-resistant.
Claim 4
Dependent Claim 46 words
The system of claim 2, wherein said virtual machine comprises means for determining that the authenticated bytecodes are not corrupted comprising means for generating a proof of authenticity based on the received bytecodes, and means for comparing said generated proof of authenticity against said authenticated bytecodes.
Claim 5
Dependent Claim 20 words
The system of claim 2, wherein said virtual machine comprises means for performing limited run-time testing of said authenticated bytecodes.
Claim 6
Dependent Claim 20 words
The system of claim 4, wherein said performing means comprises means for testing the memory access of said authenticated bytecodes.
Claim 7
Dependent Claim 32 words
The system of claim 2, wherein said virtual machine comprises means for storing authenticated bytecodes in a non-volatile manner so that the authenticated bytecodes are not repeatedly communicated with the virtual machine.
Claim 8
Dependent Claim 72 words
A virtual machine for executing a software application comprising a plurality of bytecodes, the virtual machine being executed by a hardware processor, the virtual machine comprising: means for receiving an authenticated bytecode, the authenticated bytecode being previously compared against a predetermined set of criteria and having a proof of authenticity; means for determining that the authenticated bytecode is not corrupted based on the proof of authenticity; and means for executing said bytecode.
Claim 9
Dependent Claim 72 words
A virtual machine for executing a software application comprising a plurality of bytecodes, the virtual machine being executed by a hardware processor, the virtual machine comprising: means for receiving an authenticated bytecode, the authenticated bytecode being previously compared against a predetermined set of criteria and having a proof of authenticity; means for determining that the authenticated bytecode is not corrupted based on the proof of authenticity; and means for executing said bytecode.
Claim 10
Dependent Claim 20 words
The virtual machine of claim 7 further comprising means for checking, at run-time, said authenticated bytecode for memory access errors.
Claim 11
Dependent Claim 37 words
The virtual machine of claim 7, wherein said determining means comprises means for generating a proof of authenticity, and means for comparing the generated proof of authenticity against the proof of authenticity attached to the received bytecode.
Claim 12
Dependent Claim 33 words
The virtual machine of claim 7, wherein said virtual machine comprises means for storing authenticated bytecodes in a non-volatile manner so that the authenticated bytecodes are not repeatedly communicated with the virtual machine.
Claim 13
Independent Claim 89 words
A system for executing a software application comprising a plurality of bytecodes, the system comprising: a computer system comprising means for verifying that a bytecode conforms to a predetermined set of criteria to generate a verified bytecode, and means for generating an authenticated bytecode from said verified bytecode; and a virtual machine, remote from said computer system, for executing said authenticated bytecodes, said virtual machine comprising means for receiving said authenticated bytecodes, means for determining that the authenticated bytecodes are not corrupted, and means for executing said authenticated bytecodes.
Claim 14
Independent Claim 89 words
A system for executing a software application comprising a plurality of bytecodes, the system comprising: a computer system comprising means for verifying that a bytecode conforms to a predetermined set of criteria to generate a verified bytecode, and means for generating an authenticated bytecode from said verified bytecode; and a virtual machine, remote from said computer system, for executing said authenticated bytecodes, said virtual machine comprising means for receiving said authenticated bytecodes, means for determining that the authenticated bytecodes are not corrupted, and means for executing said authenticated bytecodes.
Claim 15
Dependent Claim 20 words
The system of claim 11, wherein said virtual machine comprises means for performing limited run-time testing of said received bytecodes.
Claim 16
Dependent Claim 28 words
The system of claim 11, wherein said computing system comprises means for generating a proof of authenticity, and means for attaching said proof of authenticity to said bytecodes.
Claim 17
Dependent Claim 41 words
The system of claim 12, wherein said virtual machine comprises means for generating a proof of authenticity, and means for comparing said generated proof of authenticity against said received proof of authenticity to determine that said received bytecode is not corrupted.
Claim 18
Dependent Claim 88 words
A smart card having a plastic card having a microcontroller embedded therein, the smart card comprising: a virtual machine being executed by a microcontroller, the virtual machine executing a software application comprising a plurality of previously verified bytecodes, the virtual machine comprising means for receiving an authenticated bytecode, the authenticated bytecode being previously compared against a predetermined set of criteria and having a proof of authenticity, means for determining that the authenticated bytecode is not corrupted based on the proof of authenticity, and means for executing said bytecode.
Claim 19
Dependent Claim 88 words
A smart card having a plastic card having a microcontroller embedded therein, the smart card comprising: a virtual machine being executed by a microcontroller, the virtual machine executing a software application comprising a plurality of previously verified bytecodes, the virtual machine comprising means for receiving an authenticated bytecode, the authenticated bytecode being previously compared against a predetermined set of criteria and having a proof of authenticity, means for determining that the authenticated bytecode is not corrupted based on the proof of authenticity, and means for executing said bytecode.
Claim 20
Dependent Claim 21 words
The smart card of claim 15 further comprising means for checking, at run-time, said received bytecode for run-time memory access errors.
Claim 21
Dependent Claim 60 words
The smart card of claim 15, wherein said authenticated bytecode comprises a proof of authenticity attached to said received bytecode, and wherein said determining means comprises means for generating a proof of authenticity, and means for comparing the generated proof of authenticity against the proof of authenticity attached to the received bytecode to determine if the authenticated bytecode is corrupted.
Claim 22
Independent Claim 63 words
A method for executing a software application on a virtual machine, the application comprising a plurality of bytecodes, comprising: receiving an authenticated bytecode by a virtual machine, the authenticated bytecode being previously compared against a predetermined set of criteria and having a proof of authenticity; determining that the authenticated bytecode is not corrupted based on the proof of authenticity; and executing said bytecode.
Claim 23
Independent Claim 63 words
A method for executing a software application on a virtual machine, the application comprising a plurality of bytecodes, comprising: receiving an authenticated bytecode by a virtual machine, the authenticated bytecode being previously compared against a predetermined set of criteria and having a proof of authenticity; determining that the authenticated bytecode is not corrupted based on the proof of authenticity; and executing said bytecode.
Claim 24
Dependent Claim 17 words
The method of claim 18 further comprising checking, at run-time, said authenticated bytecode for memory access errors.
Claim 25
Dependent Claim 30 words
The method of claim 18, wherein determining comprises generating a proof of authenticity, and comparing the generated proof of authenticity against the proof of authenticity attached to the received bytecode.
Claim 26
Dependent Claim 27 words
The method of claim 18 further comprising storing authenticated bytecodes in a non-volatile manner so that the authenticated bytecodes are not repeatedly communicated with the virtual machine.
Claim 27
Dependent Claim 75 words
A virtual machine for executing a software application comprising a plurality of bytecodes, the virtual machine being executed by a hardware processor, the virtual machine comprising: means for receiving data comprising a plurality of authenticated bytecodes, the authenticated bytecodes being previously compared against a predetermined set of criteria to reduce the amount of data received by the virtual machine; means for determining that the authenticated bytecodes are not corrupted; and means for executing said bytecodes.
Claim 28
Dependent Claim 75 words
A virtual machine for executing a software application comprising a plurality of bytecodes, the virtual machine being executed by a hardware processor, the virtual machine comprising: means for receiving data comprising a plurality of authenticated bytecodes, the authenticated bytecodes being previously compared against a predetermined set of criteria to reduce the amount of data received by the virtual machine; means for determining that the authenticated bytecodes are not corrupted; and means for executing said bytecodes.
Claim 29
Dependent Claim 22 words
The virtual machine of claim 22, wherein said data received by said virtual machine excludes data used for verification of said bytecodes.

References Cited (Backward Citations)

US4400769A Cited
US5305456A Cited
US5740441A Cited
US5757918A Cited
US5784553A Cited
US5794049A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-07-18 2004-01-17 2004-07-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-07-18 2008-01-17 2008-07-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-07-18 2012-01-17 2012-07-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag