# US 8,788,809 B2 · Method and apparatus to create a secure web-browsing environment with privilege signing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,809 B2
- Document ID: US8788809B2
- Status: Granted
- Kind: B2
- Application number: 12/430,750
- Filed: 2009-04-27
- Published: 2010-10-28
- Granted: 2014-07-22
- Earliest claimed: 2009-04-27
- Assignees: QUALCOMM Incorporated
- Applicants: Brian H. Kelley
- Inventors: Brian H. Kelley
- Web page: https://patentgrep.com/patent/US8788809B2

## CPC

- G06F 21/51: at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
- G06F 21/445: {by mutual authentication, e.g. between devices or programs}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Devices and methods use digital certificates and digital signatures to enable computing devices, such as mobile devices, to trust a server attempting to access a resource on the computing device. The server may present the computing device with a digital certificate issued by a trusted third party which includes information so that the computing device can determine which resources the server should be trusted to access. The computing device can determine that the digital certificate was issued by a trusted third party by examining the chain of digital certificates that may link the server with an inherently trusted authority.

## Claims

### Claim 1

A method for executing a client-server application on a mobile device, comprising:
receiving from a server a script for execution on the mobile device, wherein the received script requests access to a first mobile device resource;
receiving, on the mobile device, a digital certificate issued to the server, wherein the digital certificate contains a list of mobile device resources for which the server has been granted permission;
verifying the digital certificate and confirming that the script has not been modified since the digital certificate was created;
determining whether the first mobile device resource is identified in the list of mobile device resources for which the server has been granted permission; and
allowing access by the server to the first mobile device resource in response to determining that the first mobile device resource is identified in the list of mobile device resources for which the server has been granted permission that is contained in the digital certificate, wherein allowing access comprises:
enabling the script to access the first mobile device resource; and
transmitting to the server data relating to the first mobile device resource.

### Claim 2 (depends on 1)

The method of claim 1, further comprising receiving a digital signature for the script comprising an encrypted first fingerprint of the script,
wherein the step of verifying the digital certificate and confirming that the script has not been modified comprises:
determining that the digital certificate was issued to the server by a trusted third party;
determining a public key of the server from the digital certificate;
decrypting the encrypted fingerprint using a public key of the server;
generating a second fingerprint of the script; and
comparing the value of the first fingerprint to the value of the second fingerprint.

### Claim 3 (depends on 1)

The method of claim 1, wherein permission for the mobile device resources in the list contained in the digital certificate is granted to the server by a trusted third party.

### Claim 4 (depends on 1)

The method of claim 1, further comprising requesting a service from the server, wherein the received script was generated at the server in response to the request for the service.

### Claim 5 (depends on 2)

The method of claim 2, wherein determining that the digital certificate was issued to the server by a trusted third party comprises determining that the digital certificate was issued to the server by a certificate authority that is inherently trusted.

### Claim 6 (depends on 2)

The method of claim 2, wherein determining that the digital certificate was issued to the server by a trusted third party comprises determining that the digital certificate was issued to the server by a certificate authority that is linked to an inherently trusted certificate authority by a chain of digital certificates.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
requesting a digital signature for the script from the server; and
receiving a digital signature for the script in response to the request for the digital signature.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
requesting a digital signature for the script from a trusted third party; and
receiving a digital signature for the script in response to the request for the digital signature.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
requesting a digital signature for a web page from the server;
receiving the digital signature from the server;
verifying the digital signature from the server; and
enabling the script to access confidential data on the mobile device if the digital signature from the server is verified by the mobile device.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
requesting a digital signature for the server from a trusted third party;
receiving a digital signature for the server;
verifying the digital signature from the server; and
enabling the script to access confidential data on the mobile device if the digital signature from the server is verified by the mobile device.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
limiting permissions granted to the script based upon information within the script; and
enabling the script to access the first mobile device resource only if the first mobile device resource is encompassed within the limited permissions.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
receiving a user input designating a server or server content to be trusted;
determining if the script was received from a designated trusted server or is server content that has been designated as trusted; and
enabling the script to access a second mobile device resource if the script was received from a designated trusted server or is server content that has been designated as trusted.

### Claim 13

A mobile device, comprising:
a processor;
a transceiver coupled to the processor; and
a memory coupled to the processor;
wherein the processor is configured with software instructions to perform steps comprising:
receiving from a server a script for execution on the mobile device, wherein the received script requests access to a first mobile device resource;
receiving a digital certificate issued to the server, wherein the digital certificate contains a list of mobile device resources for which the server has been granted permission;
verifying the digital certificate and confirming that the script has not been modified since the digital certificate was created;
determining whether the first mobile device resource is identified in the list of mobile device resources for which the server has been granted permission; and
allowing access by the server to the first mobile device resource in response to determining that the first mobile device resource is identified in the list of mobile device resources for which the server has been granted permission that is contained in the digital certificate, wherein allowing access comprises:
enabling the script to access the first mobile device resource; and
transmitting to the server data relating to the first mobile device resource.

### Claim 14 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps comprising:
receiving a digital signature for the script in the form of an encrypted first fingerprint of the script;
verifying the digital certificate and confirming that the script has not been modified since the digital certificate was created by performing steps comprising:
determining that the digital certificate was issued to the server by a trusted third party;
determining a public key of the server from the digital certificate;
decrypting the encrypted fingerprint using a public key of the server;
generating a second fingerprint of the script; and
comparing the value of the first fingerprint to the value of the second fingerprint.

### Claim 15 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps such that permission for the mobile device resources in the list contained in the digital certificate is granted to the server by a trusted third party.

### Claim 16 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps comprising requesting a service from the server, wherein the received script was generated at the server in response to the request for the service.

### Claim 17 (depends on 14)

The mobile device of claim 14, wherein the processor is configured with software instructions to perform further steps comprising determining that the digital certificate was issued to the server by a certificate authority that is inherently trusted.

### Claim 18 (depends on 14)

The mobile device of claim 14, wherein the processor is configured with software instructions to perform further steps comprising determining that the digital certificate was issued to the server by a certificate authority that is linked to an inherently trusted certificate authority by a chain of digital certificates.

### Claim 19 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps comprising:
requesting a digital signature for the script from the server; and
receiving a digital signature for the script in response to the request for the digital signature.

### Claim 20 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps comprising:
requesting a digital signature for the script from a trusted third party; and
receiving a digital signature for the script in response to the request for the digital signature.

### Claim 21 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps comprising:
requesting a digital signature for a web page from the server;
receiving the digital signature from the server;
verifying the digital signature from the server; and
enabling the script to access confidential data on the mobile device if the digital signature from the server is verified by the mobile device.

### Claim 22 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps comprising:
requesting a digital signature for the server from a trusted third party;
receiving a digital signature for the server;
verifying the digital signature for the server; and
enabling the script to access confidential data on the mobile device if the digital signature from the server is verified by the mobile device.

### Claim 23 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps comprising:
limiting permissions granted to the script based upon information within the script; and
enabling the script to access the first mobile device resource only if the first mobile device resource is encompassed within the limited permissions.

### Claim 24 (depends on 13)

The mobile device of claim 13, wherein the processor is configured with software instructions to perform further steps comprising:
receiving a user input designating a server or server content to be trusted;
determining if the script was received from a designated trusted server or is server content that has been designated as trusted; and
enabling the script to access a second mobile device resource if the script was received from a designated trusted server or is server content that has been designated as trusted.

### Claim 25

A non-transitory storage medium having stored thereon processor-executable software instructions configured to cause a mobile device processor to perform steps comprising:
receiving from a server a script for execution on a mobile device, wherein the received script requests access to a first resource of the mobile device;
receiving a digital certificate issued to the server, wherein the digital certificate contains a list of mobile device resources for which the server has been granted permission;
verifying the digital certificate and confirming that the script has not been modified since the digital certificate was created;
determining whether the first resource of the mobile device is identified in the list of mobile device resources for which the server has been granted permission; and
allowing access by the server to the first mobile device resource in response to determining that the first mobile device resource is identified in the list of mobile device resources for which the server has been granted permission that is contained in the digital certificate, wherein allowing access comprises:
enabling the script to access the first mobile device resource; and
transmitting to the server data relating to the first mobile device resource.

### Claim 26 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps comprising:
receiving a digital signature for the script in the form of an encrypted first fingerprint of the script; and
wherein the processor-executable software instructions stored thereon are configured such that verifying the digital certificate and confirming that the script has not been modified since the digital certificate was created comprises:
determining that the digital certificate was issued to the server by a trusted third party;
determining a public key of the server from the digital certificate;
decrypting the encrypted fingerprint using a public key of the server;
generating a second fingerprint of the script; and
comparing the value of the first fingerprint to the value of the second fingerprint.

### Claim 27 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured such that permission for the mobile device resources in the list contained in the digital certificate are granted to the server by a trusted third party.

### Claim 28 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps further comprising requesting a service from the server, wherein the received script was generated at the server in response to the request for the service.

### Claim 29 (depends on 26)

The non-transitory storage medium of claim 26, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps further comprising determining that the digital certificate was issued to the server by a certificate authority that is inherently trusted.

### Claim 30 (depends on 26)

The non-transitory storage medium of claim 26, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps further comprising determining that the digital certificate was issued to the server by a certificate authority that is linked to an inherently trusted certificate authority by a chain of digital certificates.

### Claim 31 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps further comprising:
requesting a digital signature for the script from the server; and
receiving a digital signature for the script in response to the request for the digital signature.

### Claim 32 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps further comprising:
requesting a digital signature for the script from a trusted third party; and
receiving the digital signature for the script.

### Claim 33 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps further comprising:
requesting a digital signature for a web page from the server;
receiving the digital signature from the server;
verifying the digital signature from the server; and
enabling the script to access confidential data on the mobile device if the digital signature from the server is verified by the mobile device.

### Claim 34 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps further comprising:
requesting a digital signature for the server from a trusted third party;
receiving the digital signature for the server;
verifying the digital signature for the server; and
enabling the script to access confidential data on the mobile device if the digital signature from the server is verified by the mobile device.

### Claim 35 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps comprising:
limiting permissions granted to the script based upon information within the script; and
enabling the script to access a requested resource only if the requested resource is encompassed within the limited permissions.

### Claim 36 (depends on 25)

The non-transitory storage medium of claim 25, wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps comprising:
receiving a user input designating a server or server content to be trusted;
determining if the script was received from a designated trusted server or is server content that has been designated as trusted; and
enabling the script to access a second mobile device resource if the script was received from a designated trusted server or is server content that has been designated as trusted.

### Claim 37

A mobile device, comprising:
means for receiving from a server a script for execution on the mobile device, wherein the received script requests access to a first mobile device resource;
means for receiving a digital certificate issued to the server, wherein the digital certificate contains a list of mobile device resources for which the server has been granted permission;
means for verifying the digital certificate and confirming that the script has not been modified since the digital certificate was created;
means for determining whether the first mobile device resource is identified in the list of mobile device resources for which the server has been granted permission; and
means for allowing access by the server to the first mobile device resource in response to determining that the first mobile device resource is identified in the list of mobile device resources for which the server has been granted permission that is contained in the digital certificate, wherein means for allowing access by the server comprises:
means for enabling the script to access the first mobile device resource; and
means for transmitting to the server data relating to the first mobile device resource.

### Claim 38 (depends on 37)

The mobile device of claim 37, further comprising;
means for receiving a digital signature for the script in the form of an encrypted first fingerprint of the script; and
wherein means for verifying the digital certificate and confirming that the script has not been modified comprises:
means for determining that the digital certificate was issued to the server by a trusted third party;
means for determining a public key of the server from the digital certificate;
means for decrypting the encrypted fingerprint using a public key of the server;
means for generating a second fingerprint of the script; and
means for comparing the value of the first fingerprint to the value of the second fingerprint.

### Claim 39 (depends on 37)

The mobile device of claim 37, wherein permission for the mobile device resources in the list contained in the digital certificate is granted to the server by a trusted third party.

### Claim 40 (depends on 37)

The mobile device of claim 37, further comprising means for requesting a service from the server, wherein the received script was generated at the server in response to the request for the service.

### Claim 41 (depends on 39)

The mobile device of claim 39, wherein means for determining that the digital certificate was issued to the server by a trusted third party comprises means for wherein the processor-executable software instructions stored thereon are further configured to cause the mobile device processor to perform steps comprising determining that the digital certificate was issued to the server by a certificate authority that is inherently trusted.

### Claim 42 (depends on 39)

The mobile device of claim 39, wherein means for determining that the digital certificate was issued to the server by a trusted third party comprises means for determining that the digital certificate was issued to the server by a certificate authority that is linked to an inherently trusted certificate authority by a chain of digital certificates.

### Claim 43 (depends on 38)

The mobile device of claim 38, further comprising:
means for requesting a digital signature for the script from the server; and
means for receiving the digital signature.

### Claim 44 (depends on 38)

The mobile device of claim 38, further comprising:
means for requesting a digital signature for the script from a trusted third party; and
means for receiving the digital signature.

### Claim 45 (depends on 38)

The mobile device of claim 38, further comprising:
means for requesting a digital signature for a web page from the server;
means for receiving the digital signature from the server;
means for verifying the digital signature from the server; and
means for enabling the script to access confidential data on the mobile device if the digital signature from the server is verified by the mobile device.

### Claim 46 (depends on 38)

The mobile device of claim 38, further comprising:
means for requesting a digital signature for the server from a trusted third party;
means for receiving the digital signature for the server;
means for verifying the digital signature for the server; and
means for enabling the script to access confidential data on the mobile device if the digital signature from the server is verified by the mobile device.

### Claim 47 (depends on 38)

The mobile device of claim 38, further comprising:
means for limiting permissions granted to the script based upon information within the script; and
means for enabling the script to access the first mobile device resource only if the first mobile device resource is encompassed within the limited permissions.

### Claim 48 (depends on 38)

The mobile device of claim 38, further comprising:
means for receiving a user input designating a server or server content to be trusted;
means for determining if the script was received from a designated trusted server or is server content that has been designated as trusted; and
means for enabling the script to access a second mobile device resource if the script was received from a designated trusted server or is server content that has been designated as trusted.

### Claim 49

A method for executing a client-server application on a mobile device, comprising:
receiving from a server a script for execution on the mobile device, wherein the received script requests access to a protected resource of the mobile device;
verifying that the server from which the script was received is named in a certificate;
identifying permissions that have been granted to the server according to the contents of the certificate;
determining whether a permission associated with the protected resource of the mobile device is included in the identified permissions that have been granted to the server; and
allowing access by the server to the protected resource of the mobile device in response to determining, based on the contents of the certificate, that a permission associated with the protected resource is included in the identified permissions that have been granted to the server, wherein allowing access comprises:
enabling the script to access the protected resource of the mobile device; and
transmitting to the server data relating to the protected resource.

### Claim 50 (depends on 49)

The mobile device of claim 49, wherein the certificate is pre-configured in the mobile device.

### Claim 51

A mobile device, comprising:
a processor;
a transceiver coupled to the processor; and
a memory coupled to the processor;
wherein the processor is configured with software instructions to perform steps comprising:
receiving from a server a script for execution on the mobile device, wherein the received script requests access to a protected resource of the mobile device;
verifying that the server from which the script was received is named in a certificate;
identifying permissions that have been granted to the server according to the contents of the certificate;
determining whether a permission associated with the protected resource of the mobile device is included in the identified permissions that have been granted to the server; and
allowing access by the server to the protected resource of the mobile device in response to determining, based on the contents of the certificate, that a permission associated with the protected resource is included in the identified permissions that have been granted to the server, wherein allowing access comprises:
enabling the script to access the protected resource of the mobile device; and
transmitting to the server data relating to the protected resource.

### Claim 52 (depends on 51)

The mobile device of claim 51, wherein the certificate is pre-configured in the mobile device.

### Claim 53

A tangible non-transitory storage medium having stored thereon processor-executable software instructions configured to cause a processor of a mobile device to perform steps comprising:
receiving from a server a script for execution on the mobile device, wherein the received script requests access to a protected resource of the mobile device;
verifying that the server from which the script was received is named in a certificate;
identifying permissions that have been granted to the server according to the contents of the certificate;
determining whether a permission associated with the protected resource of the mobile device is included in the identified permissions that have been granted to the server; and
allowing access by the server to the protected resource of the mobile device in response to determining, based on the contents of the certificate, that a permission associated with the protected resource is included in the identified permission that have been granted to the server, wherein allowing access comprises:
enabling the script to access the protected resource of the mobile device; and
transmitting to the server data relating to the protected resource.

### Claim 54 (depends on 53)

The tangible non-transitory storage medium of claim 53, wherein the certificate is pre-configured in the mobile device.

### Claim 55

A mobile device, comprising:
means for receiving from a server a script for execution on the mobile device, wherein the received script requests access to a protected resource of the mobile device;
means for verifying that the server from which the script was received is named in a certificate;
means for identifying permissions that have been granted to the server according to the contents of the certificate;
means for determining whether a permission associated with the protected resource of the mobile device is included in the identified permissions that have been granted to the server; and
means for allowing access by the server to the protected resource of the mobile device in response to determining, based on the contents of the certificate, that a permission associated with the protected resource is included in the identified permissions that have been granted to the server, wherein means for allowing access comprises:
means for enabling the script to access the protected resource of the mobile device; and
means for transmitting to the server data relating to the protected resource.

### Claim 56 (depends on 55)

The mobile device of claim 55, wherein the certificate is pre-configured in the mobile device.
