Method for Validating an Untrusted Native Code Module

    公开(公告)号:US20180004959A1

    公开(公告)日:2018-01-04

    申请号:US15651150

    申请日:2017-07-17

    Applicant: Google Inc.

    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.

    Safely executing an untrusted native code module on a computing device
    2.
    发明授权
    Safely executing an untrusted native code module on a computing device 有权
    在计算设备上安全执行不受信任的本地代码模块

    公开(公告)号:US09536079B2

    公开(公告)日:2017-01-03

    申请号:US14621550

    申请日:2015-02-13

    Applicant: Google Inc.

    Abstract: A system that safely executes a native code module on a computing device. During operation, the system receives the native code module, which is comprised of untrusted native program code expressed using native instructions in the instruction set architecture associated with the computing device. The system then loads the native code module into a secure runtime environment, and proceeds to execute a set of instructions from the native code module in the secure runtime environment. The secure runtime environment enforces code integrity, control flow integrity, and data integrity for the native code module. Furthermore, the secure runtime environment moderates which resources can be accessed by the native code module on the computing device and/or how these resources can be accessed. By executing the native code module in the secure runtime environment, the system facilitates achieving native code performance for untrusted program code without a significant risk of unwanted side effects.

    Abstract translation: 一种在计算设备上安全执行本机代码模块的系统。 在操作期间,系统接收本地代码模块,其由使用与计算设备相关联的指令集架构中的本地指令表示的不可信的本机程序代码组成。 然后,系统将本机代码模块加载到安全运行时环境中,并继续在安全运行时环境中从本机代码模块执行一组指令。 安全运行时环境强制本机代码模块的代码完整性,控制流完整性和数据完整性。 此外,安全运行时环境调节哪些资源可以由计算设备上的本地代码模块访问和/或如何访问这些资源。 通过在安全运行时环境中执行本地代码模块,系统便于实现不可信程序代码的本地代码性能,而不会产生不必要的副作用的重大风险。

    Method for Validating an Untrusted Native Code Module
    3.
    发明申请
    Method for Validating an Untrusted Native Code Module 有权
    验证不受信任的本地代码模块的方法

    公开(公告)号:US20160283720A1

    公开(公告)日:2016-09-29

    申请号:US15172879

    申请日:2016-06-03

    Applicant: Google Inc.

    CPC classification number: G06F21/577 G06F21/51

    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.

    Abstract translation: 验证本地代码模块的系统。 在操作期间,系统接收由不可信的本地程序代码组成的本地代码模块。 该系统通过以下方式来验证本地代码模块:(1)确定本地代码模块中的代码不包括任何受限制的指令和/或不访问计算设备的受限特征; 和(2)确定本地代码模块中的指令沿着字节边界排列,使得指定的字节边界集合总是包含有效指令,并且控制流指令具有有效目标。 系统允许成功验证的本地代码模块执行,并拒绝验证失败的本机代码模块。 通过验证本地代码模块,系统便于在计算设备上的安全运行时环境中安全执行本地代码模块,从而为不受信任的程序二进制代码执行本机代码性能,而不会产生不必要的副作用。

    Web-based graphics rendering system
    4.
    发明授权
    Web-based graphics rendering system 有权
    基于Web的图形渲染系统

    公开(公告)号:US08723875B2

    公开(公告)日:2014-05-13

    申请号:US13733641

    申请日:2013-01-03

    Applicant: Google Inc.

    CPC classification number: G06T1/00 G06T15/005

    Abstract: Some embodiments of the present invention provide a system that renders graphics in a computing system that includes a plugin associated with a web browser in the computing system and a web application configured to execute in the web browser. During operation, the web application specifies a graphics model and provides the graphics model to the plugin. Next, the plugin generates a graphics-processing unit (GPU) command stream from the graphics model. Finally, the plugin sends the GPU command stream to a GPU of the computing system, which renders an image corresponding to the graphics model.

    Abstract translation: 本发明的一些实施例提供了一种在计算系统中呈现图形的系统,该系统包括与计算系统中的web浏览器相关联的插件以及被配置为在web浏览器中执行的web应用程序。 在操作过程中,Web应用程序指定一个图形模型,并将该图形模型提供给插件。 接下来,插件从图形模型生成图形处理单元(GPU)命令流。 最后,插件将GPU命令流发送到计算系统的GPU,该GPU呈现对应于图形模型的图像。

    Method for validating an untrusted native code module

    公开(公告)号:US09710654B2

    公开(公告)日:2017-07-18

    申请号:US15172879

    申请日:2016-06-03

    Applicant: Google Inc.

    CPC classification number: G06F21/577 G06F21/51

    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.

    Installer-free applications using native code modules and persistent local storage

    公开(公告)号:US09244702B1

    公开(公告)日:2016-01-26

    申请号:US14715912

    申请日:2015-05-19

    Applicant: Google Inc.

    CPC classification number: G06F9/44521 H04L67/10

    Abstract: Some embodiments provide a system that executes an application. During operation, the system obtains a resource list associated with the application and stores a set of resources including a native code module from the resource list through communications over a network connection, wherein the resources are stored in persistent local storage. The application then loads the application in the web browser and loads the native code module into a secure runtime environment. Next, the application executes the application independently of the network connection using the native code module and the stored resources.

    Installer-free applications using native code modules and persistent local storage
    7.
    发明授权
    Installer-free applications using native code modules and persistent local storage 有权
    使用本地代码模块和持久本地存储的无安装程序的应用程序

    公开(公告)号:US09075637B1

    公开(公告)日:2015-07-07

    申请号:US14596673

    申请日:2015-01-14

    Applicant: Google Inc.

    CPC classification number: G06F9/44521 H04L67/10

    Abstract: Some embodiments provide a system that executes an application. During operation, the system obtains a resource list associated with the application and stores a set of resources including a native code module from the resource list through communications over a network connection, wherein the resources are stored in persistent local storage. The application then loads the application in the web browser and loads the native code module into a secure runtime environment. Next, the application executes the application independently of the network connection using the native code module and the stored resources.

    Abstract translation: 一些实施例提供执行应用的系统。 在操作期间,系统获得与应用相关联的资源列表,并通过网络连接的通信从资源列表存储包括本地代码模块的一组资源,其中资源被存储在持久本地存储器中。 然后应用程序将应用程序加载到Web浏览器中,并将本机代码模块加载到安全运行时环境中。 接下来,应用程序使用本地代码模块和存储的资源独立于网络连接执行应用程序。

    Graphics scenegraph rendering for web applications using native code modules

    公开(公告)号:US09619858B1

    公开(公告)日:2017-04-11

    申请号:US14449754

    申请日:2014-08-01

    Applicant: Google Inc.

    Abstract: One embodiment provides a system that facilitates the execution of a web application. During operation, the system loads a native code module that includes a scenegraph renderer into a secure runtime environment. Next, the system uses the scenegraph renderer to create a scenegraph from a graphics model associated with the web application and generate a set of rendering commands from the scenegraph. The system then writes the rendering commands to a command buffer and reads the rendering commands from the command buffer. Finally, the system uses the rendering commands to render, for the web application, an image corresponding to the graphics model by executing the rendering commands using a graphics-processing unit (GPU).

    Validating an untrusted native code module
    9.
    发明授权
    Validating an untrusted native code module 有权
    验证不可信的本机代码模块

    公开(公告)号:US09361453B2

    公开(公告)日:2016-06-07

    申请号:US14463345

    申请日:2014-08-19

    Applicant: Google Inc.

    CPC classification number: G06F21/577 G06F21/51

    Abstract: A system that validates a native code module. During operation, the system receives a native code module comprised of untrusted native program code. The system validates the native code module by: (1) determining that code in the native code module does not include any restricted instructions and/or does not access restricted features of a computing device; and (2) determining that the instructions in the native code module are aligned along byte boundaries such that a specified set of byte boundaries always contain a valid instruction and control flow instructions have valid targets. The system allows successfully-validated native code modules to execute, and rejects native code modules that fail validation. By validating the native code module, the system facilitates safely executing the native code module in the secure runtime environment on the computing device, thereby achieving native code performance for untrusted program binaries without significant risk of unwanted side effects.

    Abstract translation: 验证本地代码模块的系统。 在操作期间,系统接收由不可信的本地程序代码组成的本地代码模块。 该系统通过以下方式来验证本地代码模块:(1)确定本地代码模块中的代码不包括任何受限制的指令和/或不访问计算设备的受限特征; 和(2)确定本地代码模块中的指令沿着字节边界排列,使得指定的字节边界集合总是包含有效指令,并且控制流指令具有有效目标。 系统允许成功验证的本地代码模块执行,并拒绝验证失败的本机代码模块。 通过验证本地代码模块,系统便于在计算设备上的安全运行时环境中安全执行本地代码模块,从而为不受信任的程序二进制代码执行本机代码性能,而不会产生不必要的副作用。

    Method and System for Executing Applications Using Native Code Modules
    10.
    发明申请
    Method and System for Executing Applications Using Native Code Modules 审中-公开
    使用本地代码模块执行应用程序的方法和系统

    公开(公告)号:US20160048677A1

    公开(公告)日:2016-02-18

    申请号:US14925413

    申请日:2015-10-28

    Applicant: Google Inc.

    Abstract: Some embodiments provide a system that executes a web application. During operation, the system loads the web application in a web browser and loads a native code module associated with the web application into a secure runtime environment. Next, the system provides input data associated with the web application to the native code module and processes the input data using the native code module to obtain output data. Finally, the system provides the output data to the web application for use by the web application.

    Abstract translation: 一些实施例提供执行web应用的系统。 在操作期间,系统将Web应用程序加载到Web浏览器中,并将与Web应用程序相关联的本地代码模块加载到安全的运行时环境中。 接下来,系统向本地代码模块提供与web应用相关联的输入数据,并使用本地代码模块处理输入数据以获得输出数据。 最后,系统向Web应用程序提供输出数据以供Web应用程序使用。

Patent Agency Ranking