A computer system includes a program executer that executes verifiable architecture neutral programs and a class loader that prohibits the loading and execution of non-verifiable programs unless (A) the non-verifiable program resides in a trusted repository of such programs, or (B) the non-verifiable program is indirectly verifiable by way of a digital signature on the non-verifiable program that proves the program was produced by a trusted source. In the preferred embodiment, verifiable architecture neutral programs are Java bytecode programs whose integrity is verified using a Java bytecode program verifier. The non-verifiable programs are generally architecture specific compiled programs generated with the assistance of a compiler. Each architecture specific program typically includes two signatures, including one by the compiling party and one by the compiler. Each digital signature includes a signing party identifier and an encrypted message. The encrypted message includes a message generated by a predefined procedure, and is encrypted using a private encryption key associated with the signing party. A digital signature verifier used by the class loader includes logic for processing each digital signature by obtaining a public key associated with the signing party, decrypting the encrypted message of the digital signature with that public key so as generate a decrypted message, generating a test message by executing the predefined procedure on the architecture specific program associated with the digital signature, comparing the test message with the decrypted message, and issuing a failure signal if the decrypted message digest and test message digest do not match.

Un sistema di elaborazione include un executer di programma che esegue i programmi neutri di architettura verificabile e un caricatore del codice categoria che proibisce il caricamento e l'esecuzione dei programmi non-verificabili a meno che (A) il programma non-verificabile risieda in un deposito di fiducia di tali programmi, o (B) il programma non-verificabile è indirettamente verificabile via una firma digitale sul programma non-verificabile che risulta che il programma è stato prodotto da una fonte di fiducia. Nel metodo di realizzazione preferito, i programmi neutri di architettura verificabile sono programmi del bytecode del Java di cui l'integrità è verificata per mezzo di una macchina verificatrice di programma del bytecode del Java. I programmi non-verificabili sono generalmente programmi compilati specifici di architettura generati con l'assistenza di un compilatore. Ogni programma specifico di architettura include tipicamente due firme, compreso una dal partito di compilazione ed una dal compilatore. Ogni firma digitale include un contrassegno di sign del partito e un messaggio cifrato. Il messaggio cifrato include un messaggio generato da una procedura predefinita ed è cifrato usando una chiave riservata di crittografia connessa con il partito di sign. Una macchina verificatrice digitale della firma usata dal caricatore del codice categoria include la logica per l'elaborazione dell'ogni firma digitale ottenendo una chiave pubblica connessa con il partito di sign, decrypting il messaggio cifrato della firma digitale con quella chiave pubblica per genera un messaggio decrypted, generante un messaggio della prova eseguendo la procedura predefinita sul programma specifico di architettura connesso con la firma digitale, paragonante il messaggio della prova al messaggio decrypted e pubblicante un segnale di guasto se la raccolta decrypted del messaggio della raccolta e della prova del messaggio non abbina.

 
Web www.patentalert.com

< (none)

< Graphical user interface stream processor

> Method and apparatus for assisting garbage collection process within a java virtual machine

> (none)

~ 00003