Secure Browser-Native Messaging via Manifest Authorization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for enabling communication between browser-based applications and native applications, such as through NPAPI, pose security risks due to unrestricted permissions and lack of sandboxing, allowing potential malicious exploitation.

Innovation Solution

Implementing a system where a native application includes a manifest file that authorizes specific browser-based applications to communicate with it, using a native application messaging host, and ensuring secure storage of this data to prevent unauthorized access, thereby controlling communication requests and maintaining a secure environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If NPAPI is used to enable communication between browser-based applications and native applications, then communication capability is improved, but security is worsened due to unrestricted permissions and lack of sandboxing

Engineering Contradiction:
Improvecommunication capabilityVSAvoidsecurity risks
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces a manifest file as an intermediary component that mediates between browser-based applications and native applications. This manifest file, stored in a secure location, contains authorization information that controls which browser applications can communicate with which native applications, thereby preventing unauthorized access while allowing legitimate communication.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the communication authorization process into distinct components: a manifest file stored in a secure location containing authorization data, a browser process that reads and validates the manifest, and a controlled communication channel. This segmentation allows security validation to be separated from the actual communication functionality.

Inventive Principle:
Principle #1Segmentation

2Object-affected harmful factors

If browser-based applications are run in a sandboxed environment with strict control, then security is improved, but functionality is worsened due to restricted access to system resources

Engineering Contradiction:
ImprovesecurityVSAvoidaccess to system resources
Core Design Contradiction:
Object-affected harmful factorsVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic authorization where the sandboxed browser application can access native application functionality based on runtime validation of the manifest file. The authorization is not static but determined dynamically when communication is requested, allowing the system to maintain security while providing flexible access control.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The manifest file acts as an intermediary that bridges the sandboxed browser environment and the native application resources. It provides a controlled interface that allows authorized browser applications to access specific native functionalities without compromising the sandbox security model.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If unrestricted communication is allowed between browser and native applications, then ease of operation is improved, but security risks worsen due to potential malicious exploitation

Engineering Contradiction:
Improvecommunication easeVSAvoidmalicious exploitation
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent implements preliminary authorization by storing the manifest file in a secure location before any communication occurs. The browser process validates the manifest file and establishes authorized communication channels in advance, so that when communication is requested, the authorization is already verified, maintaining ease of operation while preventing malicious exploitation.

Inventive Principle:
Principle #10Preliminary action

4Object-affected harmful factors

If a manifest file is stored in a secure location writable only by administrator, then security is improved, but device complexity worsens due to restricted write access

Engineering Contradiction:
ImprovesecurityVSAvoidfile system access control
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The patent segments the file system access into two distinct modes: a secure location that is writable only by administrator for storing the manifest file, and readable locations for both administrator and standard users. This segmentation allows the system to enforce strict write protection for security-critical data while maintaining ease of reading for all users.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9560122B1Secure native application messaging with a browser application
Publication Date: 2017.01.31 GOOGLE LLC
  • US9560122B1 patent drawing
  • US9560122B1 patent drawing
  • US9560122B1 patent drawing

AI summary

A system for securely mediating messages between a native application and a browser application on a computing device includes running the browser application and a browser process that controls access by the browser-based application to the native resource. The browser process may use a data file distributed with the native application to allow or deny communications between the browser-based application and the native application. When communications are allowed the browser-based application accesses the native resource via the native application. In one implementation, the browser process may initiate a native messaging host and send communication requests to the native messaging host. The data file may be downloaded with the native application or separately from the native application from a site that distributes the native application or a site controlled by the developer of the native application. The data file identifies browser-based applications allowed to communicate with the native application.