US2018046454A1PendingUtilityA1

Securing secret information in source code verification and at runtime

Assignee: CISCO TECH INCPriority: Dec 17, 2014Filed: Oct 19, 2017Published: Feb 15, 2018
Est. expiryDec 17, 2034(~8.4 yrs left)· nominal 20-yr term from priority
G06F 21/54G06F 11/362G06F 11/3604G06F 11/3668G06F 9/44589G06F 11/3624G06F 8/70
46
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.