Patents by Inventor Marcus Peinado

Marcus Peinado 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: 9413538
    Abstract: Implementations for providing a secure execution environment with a hosted computer are described. A security-enabled processor establishes a hardware-protected memory area with an activation state that executes only software identified by a client system. The hardware-protected memory area is inaccessible by code that executes outside the hardware-protected memory area. A certification is transmitted to the client system to indicate that the secure execution environment is established, in its activation state, with only the software identified by the request.
    Type: Grant
    Filed: December 12, 2011
    Date of Patent: August 9, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andrew A. Baumann, Galen C. Hunt, Marcus Peinado
  • Patent number: 9389933
    Abstract: Described herein are implementations for providing a platform adaptation layer that enables applications to execute inside a user-mode hardware-protected isolation container while utilizing host platform resources that reside outside of the isolation container. The platform adaptation layer facilitates a system service request interaction between the application and the host platform. As part of the facilitating, a secure services component of the platform adaptation layer performs a security-relevant action.
    Type: Grant
    Filed: December 12, 2011
    Date of Patent: July 12, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andrew A. Baumann, Galen C. Hunt, Marcus Peinado
  • Publication number: 20160162419
    Abstract: The various embodiments described below are directed to providing authenticated and confidential messaging from software executing on a host (e.g. a secure software application or security kernel) to and from I/O devices operating on a USB bus. The embodiments can protect against attacks that are levied by software executing on a host computer. In some embodiments, a secure functional component or module is provided and can use encryption techniques to provide protection against observation and manipulation of USB data. In other embodiments, USB data can be protected through techniques that do not utilized (or are not required to utilize) encryption techniques. In accordance with these embodiments, USB devices can be designated as “secure” and, hence, data sent over the USB to and from such designated devices can be provided into protected memory. Memory indirection techniques can be utilized to ensure that data to and from secure devices is protected.
    Type: Application
    Filed: February 18, 2016
    Publication date: June 9, 2016
    Inventors: Paul England, Glen Slick, John C. Dunn, Kenneth D. Ray, Marcus Peinado, Bryan Willman
  • Patent number: 9329845
    Abstract: A system described herein includes a receiver component that receives source code from a computer-readable medium of a computing device and a static analysis component that executes a points-to analysis algorithm over the source code to cause generation of a points-to graph, wherein the points-to graph is a directed graph that comprises a plurality of nodes and a plurality of edges, wherein nodes of the points-to graph represent pointers in the source code and edges represent inclusion relationships in the source code. The system also includes an inference component that infers target types for generic pointers in the source code based at least in part upon known type definitions and global variables in the source code.
    Type: Grant
    Filed: June 4, 2009
    Date of Patent: May 3, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Weidong Cui, Marcus Peinado
  • Patent number: 9208319
    Abstract: The subject disclosure is directed towards partitioning a code base of a program into a trusted portion and an untrusted portion. After identifying sensitive data within the code base using annotation information, one or more program elements that correspond to the sensitive data are automatically transformed into secure program elements that can be retained in the untrusted portion of the code base. Cryptographic techniques are used to minimize a potential size of the trusted portion of the code base. Source files for the trusted portion and the untrusted portion are generated.
    Type: Grant
    Filed: December 15, 2011
    Date of Patent: December 8, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Athanasios Avgerinos, Mariusz H. Jakubowski, Marcus Peinado
  • Patent number: 9183406
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows the data to be obtained from the ciphertext only if one or more conditions are satisfied. In accordance with another aspect, a bit string is received from a calling program. Data in the bit string is decrypted using public key decryption and returned to the calling program only if one or more conditions included in the bit string are satisfied.
    Type: Grant
    Filed: January 24, 2011
    Date of Patent: November 10, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20150229619
    Abstract: Methods for enforcing confidentiality and integrity of code and data while running the code over the data in a distributed computing system are described. In an embodiment each machine which processes data within the system provides a secure sub-system which is protected from other parts of the machine and which receives encrypted data and encrypted code, processes the data using the received code and outputs encrypted data. When establishing the secure sub-systems, keys are exchanged between the client and secure sub-systems and the secure sub-systems provide an attestation confirming the identity of the code running in the secure sub-systems and confirming that the code is running on genuine secure sub-systems. In another embodiment a data-flow computation system is described in which chunks of input data, each comprising an identifier, are authenticated/encrypted. The identifiers are used within the system to confirm that each chunk is processed exactly once.
    Type: Application
    Filed: February 7, 2014
    Publication date: August 13, 2015
    Inventors: Manuel Costa, Felix Schuster, Cedric Fournet, Christos Gkantsidis, Marcus Peinado, Antony Ian Taylor Rowstron
  • Patent number: 8996814
    Abstract: The described implementations relate to computer memory. One implementation provides a technique that can include providing stealth memory to an application. The stealth memory can have an associated physical address on a memory device. The technique can also include identifying a cache line of a cache that is mapped to the physical address associated with the stealth page, and locking one or more other physical addresses on the memory device that also map to the cache line.
    Type: Grant
    Filed: December 21, 2010
    Date of Patent: March 31, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Marcus Peinado, Taesoo Kim
  • Publication number: 20150067272
    Abstract: The described implementations relate to computer memory. One implementation provides a technique that can include providing stealth memory to an application. The stealth memory can have an associated physical address on a memory device. The technique can also include identifying a cache line of a cache that is mapped to the physical address associated with the stealth page, and locking one or more other physical addresses on the memory device that also map to the cache line.
    Type: Application
    Filed: November 4, 2014
    Publication date: March 5, 2015
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Marcus Peinado, Taesoo Kim
  • Patent number: 8935677
    Abstract: Systems and methods for automatically reverse engineering an input data format using dynamic data flow analysis. Combining input data with a simulated execution of the binary program using the input data and analyzing the use of the data by the program to generate a BNL-like grammar representing the input data format. The input data can be application level protocols, network protocols or formatted files.
    Type: Grant
    Filed: April 7, 2008
    Date of Patent: January 13, 2015
    Assignee: Microsoft Corporation
    Inventors: Weidong Cui, Marcus Peinado, Karl Chen, Jiahe Helen Wang, Luis Irun-Briz
  • Publication number: 20140372717
    Abstract: Aspects of the subject disclosure are directed towards efficiently and securely capturing virtual machine memory checkpoints via a post-copy scheme that runs outside of the virtual machines. To reduce the volume of data that has to be captured a dictionary of cryptographic hashes of pages captured in previous checkpoints is used, so that pages already in the dictionary may be represented by the hash value in the current checkpoint. Further, unused memory is identified by leveraging virtual machine introspection techniques outside the virtual machine to walk guest process lists and page tables.
    Type: Application
    Filed: June 18, 2013
    Publication date: December 18, 2014
    Inventors: Weidong Ciu, Marcus Peinado, Chengyu Song
  • Publication number: 20140373087
    Abstract: Aspects of the subject disclosure are directed towards detecting instances within a web application where code and data are not separated, e.g., inline code in the application. One or more implementations automatically transform the web application into a transformed version where code and data are clearly separated, e.g., inline code is moved into external files. The transformation protects against a large class of cross-site scripting attacks.
    Type: Application
    Filed: June 18, 2013
    Publication date: December 18, 2014
    Inventors: Weidong Ciu, Adam Loe Doupe, Mariusz H. Jakubowski, Marcus Peinado
  • Patent number: 8744969
    Abstract: Digital content is released to a rendering application for forwarding by such rendering application to an ultimate destination by way of a path therebetween. The path is defined by at least one module, and the digital content is initially in an encrypted form. An authentication of at least a portion of the path is performed to determine whether each defining module thereof is to be trusted to appropriately handle the digital content passing therethrough. The encrypted digital content is decrypted if in fact each such defining module is to be trusted, and the decrypted digital content is forwarded to the rendering application for further forwarding to the ultimate destination by way of the authenticated path.
    Type: Grant
    Filed: October 2, 2007
    Date of Patent: June 3, 2014
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Paul England, Frank Yerrace
  • Patent number: 8683230
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows the data to be obtained from the ciphertext only if one or more conditions are satisfied. In accordance with another aspect, a bit string is received from a calling program. Data in the bit string is decrypted using public key decryption and returned to the calling program only if one or more conditions included in the bit string are satisfied.
    Type: Grant
    Filed: January 27, 2011
    Date of Patent: March 25, 2014
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 8621243
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows the data to be obtained from the ciphertext only if one or more conditions are satisfied. In accordance with another aspect, a bit string is received from a calling program. Data in the bit string is decrypted using public key decryption and returned to the calling program only if one or more conditions included in the bit string are satisfied.
    Type: Grant
    Filed: January 27, 2011
    Date of Patent: December 31, 2013
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 8613096
    Abstract: The claimed subject matter provides a system and/or method that generates data patches for vulnerabilities. The system can include devices and components that examine exploits received or obtained from data streams, constructs probes and determines whether the probes take advantage of vulnerabilities. Based at least in part on such determinations data patches are dynamically generated to remedy the hitherto vulnerabilities.
    Type: Grant
    Filed: November 30, 2007
    Date of Patent: December 17, 2013
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Weidong Cui, Jiahe Helen Wang, Michael E. Locasto
  • Patent number: 8601286
    Abstract: In accordance with certain aspects, data is received and a digital signature is generated and output. The digital signature can be a digital signature of the data and one or more conditions that are to be satisfied in order for the data to be revealed, or a digital signature over data generated using a private key associated with a bound key that is bound to one or more processors.
    Type: Grant
    Filed: January 27, 2011
    Date of Patent: December 3, 2013
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 8589701
    Abstract: In accordance with certain aspects, bound key operations on ciphertext and/or data are implemented. A bound key operation can receive both data to be signed and a bound key blob that is bound to one or more processors, recover a private key from the bound key blob, and generate a digital signature over the data using the private key. A bound key operation can alternatively receive both ciphertext and a bound key or bound key structure bound to one or more processors, recover or reconstruct a private key based on the bound key or bound key structure, and use the private key to generate plaintext corresponding to the ciphertext.
    Type: Grant
    Filed: January 27, 2011
    Date of Patent: November 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 8589888
    Abstract: A “Demand-Driven Pointer Analyzer” (DDPA) provides a “demand-driven” field-sensitive pointer analysis process. This process rapidly and accurately identifies alias sets for selected pointers in software modules or programs of any size, including large-scale C/C++ programs such as a complete operating system (OS). The DDPA formulates the pointer analysis task as a Context-Free Language (CFL) reachability problem that operates using a Program Expression Graph (PEG) automatically constructed from the program code. The PEG provides a node and edge-based graph representation of all expressions and assignments in the program and allows the DDPA to rapidly identify aliases for pointers in the program by traversing the graph as a CFL reachability problem to determine pointer alias sets. In various embodiments, the DDPA is also context-sensitive.
    Type: Grant
    Filed: August 29, 2011
    Date of Patent: November 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Weidong Cui, Marcus Peinado, Zhilei Xu
  • Patent number: 8584254
    Abstract: Technologies pertaining to detecting accesses to monitored regions of memory and transmitting data to a protection system responsive to the detecting are described herein. A region of memory that includes objects in an object graph utilized by an operating system to determine which processes to execute and an order to execute such processes is monitored. If a process executing on a processor attempts to write to an object in the object graph, a field that is being written to is identified, and a determination is made regarding whether the field includes a pointer. Based upon whether the field includes a pointer, a type of write desirably undertaken by the object is ascertained, and an object event is transmitted to the protection system that informs the protection system of the type of write.
    Type: Grant
    Filed: December 8, 2011
    Date of Patent: November 12, 2013
    Assignee: Microsoft Corporation
    Inventors: Weidong Cui, Marcus Peinado, Martim Carbone