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: 7624451
    Abstract: To render digital content encrypted according to a content key (KD) on a first device having a public key (PU1) and a corresponding private key (PR1), a digital license corresponding to the content is obtained, where the digital license includes the content key (KD) therein in an encrypted form. The encrypted content key (KD) from the digital license is decrypted to produce the content key (KD), and the public key (PU1) of the first device is obtained therefrom. The content key (KD) is then encrypted according to the public key (PU1) of the first device (PU1 (KD)), and a sub-license corresponding to and based on the obtained license is composed, where the sub-license includes (PU1 (KD)). The composed sub-license is then transferred to the first device.
    Type: Grant
    Filed: May 19, 2005
    Date of Patent: November 24, 2009
    Assignee: Microsoft Corporation
    Inventor: Marcus Peinado
  • Patent number: 7605816
    Abstract: Mechanisms are disclosed that may allow certain memory access control algorithms to be implemented efficiently. When memory access control is based on controlling changes to an address translation map (or set of maps), it may be necessary to determine whether a particular map change would allow memory to be accessed in an impermissible way. Certain data about the map may be cached in order to allow the determination to be made more efficiently than performing an evaluation of the entire map.
    Type: Grant
    Filed: July 28, 2006
    Date of Patent: October 20, 2009
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Paul England
  • Publication number: 20090254891
    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: Application
    Filed: April 7, 2008
    Publication date: October 8, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Weidong Cui, Marcus Peinado, Karl Chen, Jiahe Helen Wang, Luis Irun-Briz
  • Patent number: 7587589
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using a symmetric cipher, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with other aspects, a bit string is received from a calling program. An identifier of the calling program is checked to determine whether the calling program is allowed to access data encrypted in ciphertext of the bit string. The integrity of the data is also verified, and the data is decrypted using a symmetric key. The data is returned to the calling program only if the calling program is allowed to access the data and if the integrity of the data is successfully verified.
    Type: Grant
    Filed: November 8, 2006
    Date of Patent: September 8, 2009
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 7577839
    Abstract: Transferring application secrets in a trusted operating system environment involves receiving a request to transfer application data from a source computing device to a destination computing device. A check is made as to whether the application data can be transferred to the destination computing device, and if so, whether the application data can be transferred under control of the user or a third party. If these checks succeed, a check is also made as to whether the destination computing device is a trustworthy device running known trustworthy software. Input is also received from the appropriate one of the user or third party to control transferring of the application data to the destination computing device. Furthermore, application data is stored on the source computing device in a manner that facilitates determining whether the application data can be transferred, and that facilitates transferring the application data if it can be transferred.
    Type: Grant
    Filed: February 28, 2005
    Date of Patent: August 18, 2009
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado, Daniel R. Simon, Josh D. Benaloh
  • Patent number: 7577840
    Abstract: Transferring application secrets in a trusted operating system environment involves receiving a request to transfer application data from a source computing device to a destination computing device. A check is made as to whether the application data can be transferred to the destination computing device, and if so, whether the application data can be transferred under control of the user or a third party. If these checks succeed, a check is also made as to whether the destination computing device is a trustworthy device running known trustworthy software. Input is also received from the appropriate one of the user or third party to control transferring of the application data to the destination computing device. Furthermore, application data is stored on the source computing device in a manner that facilitates determining whether the application data can be transferred, and that facilitates transferring the application data if it can be transferred.
    Type: Grant
    Filed: February 28, 2005
    Date of Patent: August 18, 2009
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado, Daniel R. Simon, Josh D. Benaloh
  • Patent number: 7565505
    Abstract: A data storage resource is identifiable by physical addresses, and optionally by a virtual address. A policy defines which resources are accessible and which resources are not accessible. A request to access a resource is allowed if access to the resource is permitted by the policy, and if carrying out the access will not cause virtual addresses to be assigned to resources to which the policy disallows access. Since resources to which access is disallowed do not have virtual addresses, certain types of access requests that identify a resource by a virtual address can be allowed without consulting the policy.
    Type: Grant
    Filed: December 9, 2005
    Date of Patent: July 21, 2009
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Paul England, Bryan Mark Willman
  • Patent number: 7565509
    Abstract: A data storage resource is identifiable by physical addresses, and optionally by a virtual address. A policy defines which resources are accessible and which resources are not accessible. A request to access a resource is allowed if access to the resource is permitted by the policy, and if carrying out the access will not cause virtual addresses to be assigned to resources to which the policy disallows access. Since resources to which access is disallowed do not have virtual addresses, certain types of access requests that identify a resource by a virtual address can be allowed without consulting the policy.
    Type: Grant
    Filed: November 1, 2002
    Date of Patent: July 21, 2009
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Paul England, Bryan Mark Willman
  • Publication number: 20090183261
    Abstract: Malware may be identified based on attempts to use tainted data in certain ways, such as by attempting to execute the tainted data, by attempting to modify execution control based on tainted data, or by attempting to apply an existing function to the tainted data. A data's taint is determined based on the location from which the data originates. When data from a tainted source is moved to an otherwise non-tainted destination, the taint may be propagated from the source to the destination, to indicate that the destination is now of unknown safety. A component may be used to observe the operation of a process, in order to determine what data is being moved with respect to the process, and how that data is being used.
    Type: Application
    Filed: January 14, 2008
    Publication date: July 16, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Marcus Peinado, Luis Irun-Briz, Laurent S. Visconti, Mark L. Niehaus, Nikola Livic
  • Publication number: 20090144827
    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: Application
    Filed: November 30, 2007
    Publication date: June 4, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Marcus Peinado, Weidong Cui, Jiahe Helen Wang, Michael E. Locasto
  • Patent number: 7529927
    Abstract: To determine whether digital content can be released to an element such as a computer application or module, a scaled value representative of the relative security of the element is associated therewith, and the digital content has a corresponding digital license setting forth a security requirement. The security requirement is obtained from the digital license and the scaled value is obtained from the element, and the scaled value of the element is compared to the security requirement of the digital license to determine whether the scaled value satisfies the security requirement. The digital content is not released to the element if the scaled value does not satisfy the security requirement.
    Type: Grant
    Filed: November 3, 2004
    Date of Patent: May 5, 2009
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Rajasekhar Abburi, Jeffrey R. C. Bell
  • Publication number: 20090113550
    Abstract: Methods and architectures for automatic filter generation are described. In an embodiment, these filters are generated in order to block inputs which would otherwise disrupt the normal functioning of a program. An initial set of filter conditions is generated by analyzing the path of a program from a point at which a bad input is received to the point at which the malfunctioning of the program is detected and creating conditions on an input which ensure that this path is followed. Having generated the initial set of filter conditions, the set is made less specific by determining which instructions do not influence whether the point of detection of the attack is reached and removing the filter conditions which correspond to these instructions.
    Type: Application
    Filed: October 26, 2007
    Publication date: April 30, 2009
    Applicant: Microsoft Corporation
    Inventors: Manuel Costa, Miguel Castro, Lidong Zhou, Lintao Zhang, Marcus Peinado
  • Patent number: 7493429
    Abstract: The present invention provides for trusted side-band communications between components in a computer system, so that use of the system bus may be avoided. Two components may be connected by means other than a bus (e.g., an infrared port, a wire, an unused pin, etc.), whereby these components may communicate without the use of the system bus. The non-bus communication channel may be referred to as “side-band.” The side-band channel may be used to communicate information that might identify the user's hardware (e.g., a public key) or other information that the user may not want to be easily intercepted by the public at large. Communication over the side-band channel may also be used to verify that the participants in a communication are within a defined positional relationship to each other.
    Type: Grant
    Filed: January 16, 2004
    Date of Patent: February 17, 2009
    Assignee: Microsoft Corporation
    Inventors: John E. Paff, Marcus Peinado, Thekkthalackal Varugis Kurien, Bryan Mark Willman, Paul England, Andrew John Thornton
  • Patent number: 7487365
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using a symmetric cipher, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with other aspects, a bit string is received from a calling program. An identifier of the calling program is checked to determine whether the calling program is allowed to access data encrypted in ciphertext of the bit string. The integrity of the data is also verified, and the data is decrypted using a symmetric key. The data is returned to the calling program only if the calling program is allowed to access the data and if the integrity of the data is successfully verified.
    Type: Grant
    Filed: April 4, 2003
    Date of Patent: February 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 7478235
    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: Grant
    Filed: June 28, 2002
    Date of Patent: January 13, 2009
    Assignee: Microsoft Corporation
    Inventors: Paul England, Kenneth D. Ray, Marcus Peinado, John C. Dunn, Glen Slick, Bryan Willman
  • Patent number: 7457964
    Abstract: A method is provided for a processor of a computing device to obtain a trusted identification of a hardware peripheral of the computing device, for the computing device and the peripheral to derive a set of shared keys, and for the processor to send trusted data to the peripheral.
    Type: Grant
    Filed: February 4, 2004
    Date of Patent: November 25, 2008
    Assignee: Microsoft Corporation
    Inventors: Andrew John Thornton, John E. Paff, Marcus Peinado, Thekkthalackal Varugis Kurien
  • Publication number: 20080244751
    Abstract: To render digital content encrypted according to a content key (KD) on a first device having a public key (PU1) and a corresponding private key (PR1), a digital license corresponding to the content is obtained, where the digital license includes the content key (KD) therein in an encrypted form. The encrypted content key (KD) from the digital license is decrypted to produce the content key (KD), and the public key (PU1) of the first device is obtained therefrom. The content key (KD) is then encrypted according to the public key (PU1) of the first device (PU1 (KD)), and a sub-license corresponding to and based on the obtained license is composed, where the sub-license includes (PU1 (KD)). The composed sub-license is then transferred to the first device.
    Type: Application
    Filed: June 9, 2008
    Publication date: October 2, 2008
    Applicant: Microsoft Corporation
    Inventor: Marcus Peinado
  • Patent number: 7424612
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using a symmetric cipher, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with other aspects, a bit string is received from a calling program. An identifier of the calling program is checked to determine whether the calling program is allowed to access data encrypted in ciphertext of the bit string. The integrity of the data is also verified, and the data is decrypted using a symmetric key. The data is returned to the calling program only if the calling program is allowed to access the data and if the integrity of the data is successfully verified.
    Type: Grant
    Filed: November 8, 2006
    Date of Patent: September 9, 2008
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 7421579
    Abstract: A multiplexed secure counter is provided, in which a multiplicity of child secure counters are secured by a parent secure counter. Child counters are stored with a parent secure counter value and a signature. Before a child counter is read, the signature is verified and value stored is checked against the current value of the parent secure value. If the verifications are successful, the child secure counter can be used. To increment a child counter, the signature is verified and the value stored checked against the current value of the parent secure value. If the verifications are successful, the parent counter and the child counter are incremented, and the data is signed again.
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: September 2, 2008
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20080195871
    Abstract: A new ((n)th) black box is produced for a digital rights management (DRM) system. The (n)th black box is for being installed in and for performing decryption and encryption functions in the DRM system. The (n)th black box is produced and delivered to the DRM system upon request and includes a new ((n)th) executable and a new ((n)th) key file. The (n)th key file has a new ((n)th) set of black box keys and a number of old sets of black box keys. The request includes an old ((n-1)th) key file having the old sets of black box keys. A code optimizer/randomizer receives a master executable and randomized optimization parameters as inputs and produces the (n)th executable as an output. A key manager receives the (n-1)th key file and the (n)th set of black box keys as inputs, extracts the old sets of black box keys from the (n-1)th key file, and produces the (n)th key file including the (n)th set of black box keys and the old sets of black box keys as an output.
    Type: Application
    Filed: January 14, 2008
    Publication date: August 14, 2008
    Inventors: Marcus Peinado, Ramarathnam Venkatesan, Malcolm Davis