Methods and systems for validating an autonomous system that includes a dynamic-code module and a static-code module
First Claim
1. A method comprising:
- an autonomous system performing a code-integrity-validation process on a static-code module of the autonomous system, wherein the static-code module comprises static code, wherein performing the code-integrity-validation process on the static-code module comprises determining whether the static code of the static-code module has or has not been modified;
the autonomous system performing a behavior-integrity-validation process on a dynamic-code module of the autonomous system, wherein performing the behavior-integrity-validation process on the dynamic-code module comprises;
generating an encrypted-and-verified test vector at least in part by verifying a signature of an encrypted-and-signed test vector;
generating a decrypted-and-verified test vector at least in part by decrypting the encrypted-and-verified test vector; and
determining whether an actual output of the dynamic-code module is or is not within a range of stored acceptable outputs for the decrypted-and-verified test vector; and
responsive to both (i) determining that the actual output of the dynamic-code module is within the range of stored acceptable outputs for the decrypted-and-verified test vector and (ii) determining that the static code of the static-code module has not been modified, permitting continued autonomous operation of the autonomous system, and otherwise responsively disabling autonomous operation of the autonomous system.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed herein are methods and systems for validating an autonomous system that comprises a static-code module and a dynamic-code module, the method including the steps of performing a code-integrity-validation process on the static-code module and performing a behavior-integrity-validation process on the dynamic-code module. In some embodiments, performing the code-integrity-validation process on the static-code module includes performing a signature-verification process on the static-code module. In some embodiments, performing the behavior-integrity-validation process on the dynamic-code module includes using an encrypted-and-signed test vector. In some embodiments, performing the behavior-integrity-validation process on the dynamic-code module includes selecting a test vector from among a plurality of test vectors, generating a modified test vector at least in part by modifying the selected test vector, and performing the behavior-integrity-validation process on the dynamic-code module using the modified test vector.
17 Citations
15 Claims
-
1. A method comprising:
-
an autonomous system performing a code-integrity-validation process on a static-code module of the autonomous system, wherein the static-code module comprises static code, wherein performing the code-integrity-validation process on the static-code module comprises determining whether the static code of the static-code module has or has not been modified; the autonomous system performing a behavior-integrity-validation process on a dynamic-code module of the autonomous system, wherein performing the behavior-integrity-validation process on the dynamic-code module comprises; generating an encrypted-and-verified test vector at least in part by verifying a signature of an encrypted-and-signed test vector; generating a decrypted-and-verified test vector at least in part by decrypting the encrypted-and-verified test vector; and determining whether an actual output of the dynamic-code module is or is not within a range of stored acceptable outputs for the decrypted-and-verified test vector; and responsive to both (i) determining that the actual output of the dynamic-code module is within the range of stored acceptable outputs for the decrypted-and-verified test vector and (ii) determining that the static code of the static-code module has not been modified, permitting continued autonomous operation of the autonomous system, and otherwise responsively disabling autonomous operation of the autonomous system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A secure core processor for an autonomous system secure core, the processor configured to:
-
perform a code-integrity-validation process on a static-code module of the autonomous system, wherein the static-code module comprises static code, wherein performing the code-integrity-validation process on the static-code module comprises determining whether the static code of the static-code module has or has not been modified; perform a behavior-integrity-validation process on a dynamic-code module of the autonomous system, wherein performing the behavior-integrity-validation process on the dynamic-code module comprises; generating an encrypted-and-verified test vector at least in part by verifying a signature of an encrypted-and-signed test vector; generating a decrypted-and-verified test vector at least in part by decrypting the encrypted-and-verified test vector; and determining whether an actual output of the dynamic-code module is or is not within a range of stored acceptable outputs for the decrypted-and-verified test vector; and responsive to both (i) determining that the actual output of the dynamic-code module is within the range of stored acceptable outputs for the decrypted-and-verified test vector and (ii) determining that the static code of the static-code module has not been modified, permit continued autonomous operation of the autonomous system, and otherwise responsively disable autonomous operation of the autonomous system.
-
Specification