Patents by Inventor Manuel Silverio da Silva Costa
Manuel Silverio da Silva Costa has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 12190316Abstract: The disclosed technology is generally directed to code transparency. In one example of the technology, a claim associated with an application is received. The claim is a document that is signed with a claim signature and that includes evidence associated with a policy, and further includes an expected set of at least one binary measurement associated with the application. The evidence is cryptographically verifiable evidence associated with the application. A trusted execution environment (TEE) is used to provide a distributed ledger. The claim is verified. Verifying the claim includes verifying the expected set of at least one binary measurement associated with the application, verifying the claim signature, and, based at least on the evidence, verifying that the application meets the policy. Upon successful verification of the claim, the claim is appended to the distributed ledger. A ledger countersignature associated with the claim is generated.Type: GrantFiled: May 10, 2022Date of Patent: January 7, 2025Assignee: Microsoft Technology Licensing, LLCInventors: Mark Eugene Russinovich, Sylvan W. Clebsch, Kahren Tevosyan, Antoine Jean Denis Delignat-Lavaud, Cédric Alain Marie Christophe Fournet, Hervey Oliver Wilson, Manuel Silverio Da Silva Costa
-
Patent number: 12143499Abstract: The disclosed technology is generally directed to code transparency. In one example of the technology, evidence associated with a policy is obtained. The evidence includes data that includes cryptographically verifiable evidence associated with initial source code in accordance with the policy. The initial source code is source code for a CTS. The initial binary is based on the initial source code is executed in a TEE such that a CTS instance begins operation. The CTS instance is configured to register guarantee(s) associated with code approved by the CTS instance. The TEE is used to provide a ledger. The evidence is stored on the ledger. Measurement(s) associated with the binary are provided. A service key associated with CTS instance is generated. TEE attestation of the measurement(s), the evidence, and the service key is provided.Type: GrantFiled: May 10, 2022Date of Patent: November 12, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Mark Eugene Russinovich, Sylvan W. Clebsch, Kahren Tevosyan, Antoine Jean Denis Delignat-Lavaud, Cédric Alain Marie Christophe Fournet, Hervey Oliver Wilson, Manuel Silverio da Silva Costa
-
Publication number: 20240220483Abstract: In various examples, there is provided a computer-implemented method for writing transaction log entries to a transaction log for a database system. At least part of the database system is configured to be executed within a trusted execution environment. The transaction log is stored outside of the trusted execution environment. The method maintains a first secure count representing a number of transaction log entries which have been written to the transaction log for transactions which have been committed to the database and writes a transaction log entry to the transaction log. In other examples, there is also provided is a computer-implemented method for restoring a database system using transaction log entries received from the transaction log and a current value of the first secure count.Type: ApplicationFiled: March 18, 2024Publication date: July 4, 2024Inventors: Christian PRIEBE, Kapil VASWANI, Manuel Silverio da Silva COSTA
-
Patent number: 11966385Abstract: In various examples, there is provided a computer-implemented method for writing transaction log entries to a transaction log for a database system. At least part of the database system is configured to be executed within a trusted execution environment. The transaction log is stored outside of the trusted execution environment. The method maintains a first secure count representing a number of transaction log entries which have been written to the transaction log for transactions which have been committed to the database and writes a transaction log entry to the transaction log. In other examples, there is also provided is a computer-implemented method for restoring a database system using transaction log entries received from the transaction log and a current value of the first secure count.Type: GrantFiled: August 25, 2021Date of Patent: April 23, 2024Assignee: Microsoft Technology Licensing, LLC.Inventors: Christian Priebe, Kapil Vaswani, Manuel Silverio da Silva Costa
-
Publication number: 20230368193Abstract: The disclosed technology is generally directed to code transparency. In one example of the technology, a claim associated with an application is received. The claim is a document that is signed with a claim signature and that includes evidence associated with a policy, and further includes an expected set of at least one binary measurement associated with the application. The evidence is cryptographically verifiable evidence associated with the application. A trusted execution environment (TEE) is used to provide a distributed ledger. The claim is verified. Verifying the claim includes verifying the expected set of at least one binary measurement associated with the application, verifying the claim signature, and, based at least on the evidence, verifying that the application meets the policy. Upon successful verification of the claim, the claim is appended to the distributed ledger. A ledger countersignature associated with the claim is generated.Type: ApplicationFiled: May 10, 2022Publication date: November 16, 2023Inventors: Mark Eugene RUSSINOVICH, Sylvan W. CLEBSCH, Kahren TEVOSYAN, Antoine Jean Denis DELIGNAT-LAVAUD, Cédric Alain Marie Christophe FOURNET, Hervey Oliver WILSON, Manuel Silverio da Silva COSTA
-
Publication number: 20230370273Abstract: The disclosed technology is generally directed to code transparency. In one example of the technology, evidence associated with a policy is obtained. The evidence includes data that includes cryptographically verifiable evidence associated with initial source code in accordance with the policy. The initial source code is source code for a CTS. The initial binary is based on the initial source code is executed in a TEE such that a CTS instance begins operation. The CTS instance is configured to register guarantee(s) associated with code approved by the CTS instance. The TEE is used to provide a ledger. The evidence is stored on the ledger. Measurement(s) associated with the binary are provided. A service key associated with CTS instance is generated. TEE attestation of the measurement(s), the evidence, and the service key is provided.Type: ApplicationFiled: May 10, 2022Publication date: November 16, 2023Inventors: Mark Eugene RUSSINOVICH, Sylvan W. CLEBSCH, Kahren TEVOSYAN, Antoine Jean Denis DELIGNAT-LAVAUD, Cédric Alain Marie Christophe FOURNET, Hervey Oliver WILSON, Manuel Silverio da Silva COSTA
-
Publication number: 20210382876Abstract: In various examples, there is provided a computer-implemented method for writing transaction log entries to a transaction log for a database system. At least part of the database system is configured to be executed within a trusted execution environment. The transaction log is stored outside of the trusted execution environment. The method maintains a first secure count representing a number of transaction log entries which have been written to the transaction log for transactions which have been committed to the database and writes a transaction log entry to the transaction log. In other examples, there is also provided is a computer-implemented method for restoring a database system using transaction log entries received from the transaction log and a current value of the first secure count.Type: ApplicationFiled: August 25, 2021Publication date: December 9, 2021Inventors: Christian PRIEBE, Kapil VASWANI, Manuel Silverio da Silva COSTA
-
Publication number: 20210326153Abstract: Various technologies described herein pertain to enforcing control flow integrity by adding instrumentation when source code is compiled or binary code is rewritten. An indirect call to a control transfer target (e.g., in the source code, in the binary code, etc.) can be identified. Moreover, the instrumentation can be inserted prior to the indirect call. The instrumentation can use a bit from a bitmap maintained by a runtime to verify whether the control transfer target is valid. When an executable image that includes the inserted instrumentation runs, execution can be terminated and/or other appropriate actions can be taken when the control transfer target is determined to be invalid; alternatively, execution can continue when the control transfer target is determined to be valid.Type: ApplicationFiled: April 30, 2021Publication date: October 21, 2021Inventors: Richard John Black, Timothy William Burrell, Miguel Oom Temudo de Castro, Manuel Silverio da Silva Costa, Kenneth Johnson, Matthew Ryan Miller
-
Patent number: 11120011Abstract: In various examples, there is provided a computer-implemented method for writing transaction log entries to a transaction log for a database system. At least part of the database system is configured to be executed within a trusted execution environment. The transaction log is stored outside of the trusted execution environment. The method maintains a first secure count representing a number of transaction log entries which have been written to the transaction log for transactions which have been committed to the database and writes a transaction log entry to the transaction log. In other examples, there is also provided is a computer-implemented method for restoring a database system using transaction log entries received from the transaction log and a current value of the first secure count.Type: GrantFiled: April 17, 2018Date of Patent: September 14, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Christian Priebe, Kapil Vaswani, Manuel Silverio da Silva Costa
-
Patent number: 11016949Abstract: In various examples, there is a database system which comprises an operating system, a query engine, a transaction manager and components implementing database administration functionality. The query engine and the transaction manager are configured to be executed within one or more memory enclaves of a host computer system separately from the operating system and the components implementing database administration functionality.Type: GrantFiled: April 17, 2018Date of Patent: May 25, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Kapil Vaswani, Manuel Silverio Da Silva Costa
-
Patent number: 11016883Abstract: A method of manual memory management is described which comprises enabling one or more threads to access an object created in a manual heap by storing a reference to the object in thread-local state and subsequently deleting the stored reference after accessing the object. In response to abandonment of the object, an identifier for the object and a current value of either a local counter of a thread or a global counter are stored in a delete queue and all threads are prevented from storing any further references to the object in thread-local state. Deallocation of the object only occurs when all references to the object stored in thread-local state for any threads have been deleted and a current value of the local counter for the thread or the global counter has incremented to a value that is at least a pre-defined amount more than the stored value, wherein the global counter is updated using one or more local counters.Type: GrantFiled: June 6, 2017Date of Patent: May 25, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Matthew John Parkinson, Manuel Silverio da Silva Costa, Dimitrios Vytiniotis, Kapil Vaswani
-
Patent number: 11003464Abstract: Various technologies described herein pertain to enforcing control flow integrity by adding instrumentation when source code is compiled or binary code is rewritten. An indirect call to a control transfer target (e.g., in the source code, in the binary code, etc.) can be identified. Moreover, the instrumentation can be inserted prior to the indirect call. The instrumentation can use a bit from a bitmap maintained by a runtime to verify whether the control transfer target is valid. When an executable image that includes the inserted instrumentation runs, execution can be terminated and/or other appropriate actions can be taken when the control transfer target is determined to be invalid; alternatively, execution can continue when the control transfer target is determined to be valid.Type: GrantFiled: April 19, 2012Date of Patent: May 11, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Richard John Black, Timothy William Burrell, Miguel Oom Temudo de Castro, Manuel Silverio da Silva Costa, Kenneth Johnson, Matthew Ryan Miller
-
Patent number: 10565129Abstract: In various examples a compute node is described. The compute node has a central processing unit which implements a hardware transactional memory using at least one cache of the central processing unit. The compute node has a memory in communication with the central processing unit, the memory storing information comprising at least one of: code and data. The compute node has a processor which loads at least part of the information, from the memory into the cache. The processor executes transactions using the hardware transactional memory and at least the loaded information, such that the processor ensures that the loaded information remains in the cache until completion of the execution.Type: GrantFiled: June 29, 2017Date of Patent: February 18, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Felix Schuster, Olga Ohrimenko, Istvan Haller, Manuel Silverio da Silva Costa, Daniel Gruss, Julian Lettner
-
Patent number: 10496534Abstract: A method of manual memory management is described. In response to detecting an access violation triggered by the use of an invalid reference to an object in a manual heap, a source of the access in a register or stack is identified. An updated reference for the object using stored mapping data is determined and used to replace the invalid reference in the source.Type: GrantFiled: June 15, 2017Date of Patent: December 3, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Dimitrios Vytiniotis, Manuel Silverio da Silva Costa, Kapil Vaswani, Matthew John Parkinson, Piyus Kumar Kedia
-
Publication number: 20190236179Abstract: In various examples, there is provided a computer-implemented method for writing transaction log entries to a transaction log for a database system. At least part of the database system is configured to be executed within a trusted execution environment. The transaction log is stored outside of the trusted execution environment. The method maintains a first secure count representing a number of transaction log entries which have been written to the transaction log for transactions which have been committed to the database and writes a transaction log entry to the transaction log. In other examples, there is also provided is a computer-implemented method for restoring a database system using transaction log entries received from the transaction log and a current value of the first secure count.Type: ApplicationFiled: April 17, 2018Publication date: August 1, 2019Inventors: Christian PRIEBE, Kapil VASWANI, Manuel Silverio da Silva COSTA
-
Publication number: 20190236168Abstract: In various examples, there is a database system which comprises an operating system, a query engine, a transaction manager and components implementing database administration functionality. The query engine and the transaction manager are configured to be executed within one or more memory enclaves of a host computer system separately from the operating system and the components implementing database administration functionality.Type: ApplicationFiled: April 17, 2018Publication date: August 1, 2019Inventors: Kapil VASWANI, Manuel Silverio da Silva COSTA
-
Publication number: 20180341600Abstract: In various examples a compute node is described. The compute node has a central processing unit which implements a hardware transactional memory using at least one cache of the central processing unit. The compute node has a memory in communication with the central processing unit, the memory storing information comprising at least one of: code and data. The compute node has a processor which loads at least part of the information, from the memory into the cache. The processor executes transactions using the hardware transactional memory and at least the loaded information, such that the processor ensures that the loaded information remains in the cache until completion of the execution.Type: ApplicationFiled: June 29, 2017Publication date: November 29, 2018Inventors: Felix Schuster, Olga Ohrimenko, Istvan Haller, Manuel Silverio da Silva Costa, Daniel Gruss, Julian Lettner
-
Publication number: 20180276120Abstract: A method of manual memory management is described. In response to detecting an access violation triggered by the use of an invalid reference to an object in a manual heap, a source of the access in a register or stack is identified. An updated reference for the object using stored mapping data is determined and used to replace the invalid reference in the source.Type: ApplicationFiled: June 15, 2017Publication date: September 27, 2018Inventors: Dimitrios VYTINIOTIS, Manuel Silverio da Silva COSTA, Kapil VASWANI, Matthew John PARKINSON, Piyus Kumar KEDIA
-
Publication number: 20180253311Abstract: A method of manual memory management is described which comprises enabling one or more threads to access an object created in a manual heap by storing a reference to the object in thread-local state and subsequently deleting the stored reference after accessing the object. In response to abandonment of the object, an identifier for the object and a current value of either a local counter of a thread or a global counter are stored in a delete queue and all threads are prevented from storing any further references to the object in thread-local state. Deallocation of the object only occurs when all references to the object stored in thread-local state for any threads have been deleted and a current value of the local counter for the thread or the global counter has incremented to a value that is at least a pre-defined amount more than the stored value, wherein the global counter is updated using one or more local counters.Type: ApplicationFiled: June 6, 2017Publication date: September 6, 2018Inventors: Matthew John PARKINSON, Manuel Silverio da Silva COSTA, Dimitrios VYTINIOTIS, Kapil VASWANI
-
Publication number: 20170372226Abstract: A multi-party privacy-preserving machine learning system is described which has a trusted execution environment comprising at least one protected memory region. An code loader at the system loads machine learning code, received from at least one of the parties, into the protected memory region. A data uploader uploads confidential data, received from at least one of the parties, to the protected memory region. The trusted execution environment executes the machine learning code using at least one data-oblivious procedure to process the confidential data and returns the result to at least one of the parties, where a data-oblivious procedure is a process where any patterns of memory accesses, patterns of disk accesses and patterns of network accesses are such that the confidential data cannot be predicted from the patterns.Type: ApplicationFiled: August 23, 2016Publication date: December 28, 2017Inventors: Manuel Silverio da Silva Costa, Cédric Alain Marie Christophe Fournet, Aastha Mehta, Sebastian Nowozin, Olga Ohrimenko, Felix Schuster, Kapil Vaswani