Securing secret information in source code verification and at runtime
Abstract
A computer-implemented method includes: receiving a declaration of a variable as a secret type for source code; designating a data record including the variable as secret; creating metadata for the data record, wherein the metadata for the data record labels the data record as secret; allocating a first memory buffer for the data record; updating metadata for the first memory buffer to label the first memory buffer as secret; and if, while executing the source code, the data record is copied from the first memory buffer to a second memory buffer whose metadata labels the second memory buffer as other than secret, updating metadata for the second memory buffer to label the second memory buffer as secret.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method comprising:
receiving a declaration of a variable as a secret type for source code; designating a data record including the variable as secret; creating metadata for the data record, wherein the metadata for the data record labels the data record as secret; allocating a first memory buffer for the data record; updating metadata for the first memory buffer to label the first memory buffer as secret; and if, while executing the source code, the data record is copied from the first memory buffer to a second memory buffer whose metadata labels the second memory buffer as other than secret, updating metadata for the second memory buffer to label the second memory buffer as secret.
2 . The method of claim 1 , further comprising:
receiving a definition of the secret type.
3 . The method of claim 1 , further comprising, while executing the source code:
attempting to write the data record to an unauthorized device; reading the metadata of the first memory buffer; and generating an exception to stop the execution of the source code.
4 . The method of claim 1 , further comprising, while executing the source code:
attempting to write the data record to an unauthorized device; reading the metadata of the first memory buffer; and redacting the data record by removing secret information before writing the data record to the unauthorized device.
5 . The method of claim 1 , wherein the source code comprises a function or subroutine that receives the variable as a parameter.
6 . The method of claim 1 , wherein the variable is declared as a secret type for the source code in a language level form.
7 . The method of claim 1 , wherein the variable is one of a cryptographic key, a password, an authentication value, or personal or proprietary information.
8 . An apparatus comprising:
one or more processors; and one or more memory devices in communication with the one or more processors and storing executable instructions, wherein the one or more processors are configured to:
receive a declaration of a variable as a secret type for source code;
designate a data record including the variable as secret;
create metadata for the data record, wherein the metadata for the data record labels the data record as secret;
allocate a first memory buffer for the data record;
update metadata for the first memory buffer to label the first memory buffer as secret; and
if, while executing the source code, the data record is copied from the first memory buffer to a second memory buffer whose metadata labels the second memory buffer as other than secret, update metadata for the second memory buffer to label the second memory buffer as secret.
9 . The apparatus of claim 8 , wherein the one or more processors are further configured to:
receive a definition of the secret type.
10 . The apparatus of claim 8 , wherein the one or more processors are further configured to:
while executing the source code, determine that there is an attempt to write the data record to an unauthorized device; read the metadata of the first memory buffer; and generate an exception to stop the execution of the source code.
11 . The apparatus of claim 8 , wherein the one or more processors are further configured to:
while executing the source code, determine that there is an attempt to write the data record to an unauthorized device; read the metadata of the first memory buffer; and redact the data record by removing secret information before writing the data record to the unauthorized device.
12 . The apparatus of claim 8 , wherein the source code comprises a function or subroutine that receives the variable as a parameter.
13 . The apparatus of claim 8 , wherein the variable is declared as a secret type for the source code in a language level form.
14 . The apparatus of claim 8 , wherein the variable is one of a cryptographic key, a password, an authentication value, or personal or proprietary information.
15 . A non-transitory computer readable storage medium encoded with software comprising computer executable instructions that when executed by one or more processors, cause the one or more processors to:
receive a declaration of a variable as a secret type for source code; designate a data record including the variable as secret; create metadata for the data record, wherein the metadata for the data record labels the data record as secret; allocate a first memory buffer for the data record; update metadata for the first memory buffer to label the first memory buffer as secret; and if, while executing the source code, the data record is copied from the first memory buffer to a second memory buffer whose metadata labels the second memory buffer as other than secret, update metadata for the second memory buffer to label the second memory buffer as secret.
16 . The non-transitory computer readable media of claim 15 , wherein the instructions further cause the one or more processors to:
receive a definition of the secret type.
17 . The non-transitory computer readable media of claim 15 , wherein the instructions further cause the one or more processors to:
while executing the source code, determine that there is an attempt to write the data record to an unauthorized device; read the metadata of the first memory buffer; and generate an exception to stop the execution of the source code.
18 . The non-transitory computer readable media of claim 15 , wherein the instructions further cause the one or more processors to:
while executing the source code, determine that there is an attempt to write the data record to an unauthorized device; read the metadata of the first memory buffer; and redact the data record by removing secret information before writing the data record to the unauthorized device.
19 . The non-transitory computer readable media of claim 15 , wherein the source code comprises a function or subroutine that receives the variable as a parameter.
20 . The non-transitory computer readable media of claim 15 , wherein the variable is declared as a secret type for the source code in a language level form.Join the waitlist — get patent alerts
Track US2018046454A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.