# US 10,482,238 B2 · Method and device for verifying the integrity of platform software of an electronic device

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

- Number: US 10,482,238 B2
- Document ID: US10482238B2
- Status: Granted
- Kind: B2
- Application number: 15/847,284
- Filed: 2017-12-19
- Published: 2018-09-06
- Granted: 2019-11-19
- Earliest claimed: 2014-09-30
- Assignees: Conversant Wireless Licensing S.a r.l.
- Applicants: Conversant Wireless Licensing S.a.r.l.
- Inventors: Nadarajah Asokan; Janne Mantyla; Reza Serafat
- Web page: https://patentgrep.com/patent/US10482238B2

## CPC

- G06F 21/51: at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
- H04L 9/3242: {involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC}
- H04L 9/3247: {involving digital signatures}
- H04L 63/12: {Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32)}
- H04L 63/168: {above the transport layer}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for verifying the integrity of platform software of an electronic device is provided, the method comprising accessing a module of said platform software, obtaining a signature (S), obtaining a verification key (VK), said verification key (VK) corresponding to a signing key (SK), verifying if said signature (S) was derived by signing said platform software module with said signing key (SK), by using said verification key (VK), and establishing a positive verification of said platform software module if said verification is successful. The invention also provides a method for providing a platform software module to perform the aforementioned method, and a device on which the aforementioned method can be performed.

## Claims

### Claim 1

A method for verifying integrity of software in an electronic device, the electronic device including platform software comprising a platform software module and a monitor module, the method comprising:
accessing the monitor module;
performing a hash function on the monitor module to derive a first computed hash;
obtaining a first expected hash associated with the monitor module;
determining whether the first computed hash matches the first expected hash;
invoking the monitor module at least based on a determination that the first computed hash matches the first expected hash; and
performing, by the invoked monitor module, an integrity verification procedure on the platform software module.

### Claim 2 (depends on 1)

The method of claim 1, wherein the step of performing the integrity verification procedure comprises:
performing a hash function on the platform software module to derive a second computed hash;
obtaining a second expected hash associated with the platform software module;
comparing at least a portion of the second expected hash with a corresponding portion of the second computed hash;
obtaining a signature associated with the platform software module;
obtaining a verification key corresponding to the platform software module;
verifying the signature using the verification key; and
responsive to the comparing step determining that at least a portion of the second expected hash matches a corresponding portion of the second computed hash, in combination with the verifying step successfully verifying the signature, returning a positive result about the integrity verification procedure.

### Claim 3 (depends on 2)

The method of claim 2, wherein the second expected hash is included in the platform software module as a static variable.

### Claim 4 (depends on 2)

The method of claim 2, wherein the step of obtaining the verification key comprises receiving the verification key from a source external to the electronic device.

### Claim 5 (depends on 2)

The method of claim 2, wherein the second expected hash is embedded in the monitor module as a static variable.

### Claim 6 (depends on 2)

The method of claim 2, the verification key is one key in a public/private key pair.

### Claim 7 (depends on 1)

The method of claim 1, wherein the step of obtaining the first expected hash comprises receiving the first expected hash from a source external to the electronic device.

### Claim 8 (depends on 1)

The method of claim 1, wherein the accessing, performing a hash function, obtaining, determining, and invoking steps are performed by application software on the electronic device;
wherein the method further comprises:
using the platform software module by the application software if the monitor module returns a positive result about the integrity verification procedure.

### Claim 9 (depends on 8)

The method of claim 8, wherein the first expected hash is embedded in the application software as a static variable.

### Claim 10 (depends on 1)

The method of claim 1, wherein the monitor module is non-changeable when the platform software module is updated.

### Claim 11

An electronic device, comprising:
platform software comprising a platform software module and a monitor module; and
software configured to verify the monitor module by a plurality of operations comprising:
accessing the monitor module;
performing a hash function on the monitor module to derive a first computed hash;
obtaining a first expected hash associated with the monitor module;
determining whether the first computed hash matches the first expected hash; and
invoking the monitor module at least based on a determination that the first computed hash matches the first expected hash;
wherein the monitor module, responsive to invoking by the software, is configured to perform an integrity verification procedure on the platform software module.

### Claim 12 (depends on 11)

The device of claim 11, wherein the monitor module is configured to perform the integrity verification procedure by a plurality of operations comprising:
performing a hash function on the platform software module to derive a second computed hash;
obtaining a second expected hash associated with the platform software module;
comparing at least a portion of the second expected hash with a corresponding portion of the second computed hash;
obtaining a signature associated with the platform software module;
obtaining a verification key corresponding to the platform software module;
verifying the signature using the verification key; and
responsive to the comparing step determining that at least a portion of the second expected hash matches a corresponding portion of the second computed hash, in combination with the verifying step successfully verifying the signature, returning a positive result about the integrity verification procedure.

### Claim 13 (depends on 12)

The device of claim 12, wherein the second expected hash is included in the platform software module as a static variable.

### Claim 14 (depends on 12)

The device of claim 12, wherein the monitor module is configured to obtain from a source external to the electronic device.

### Claim 15 (depends on 12)

The device of claim 12, wherein the second expected hash is embedded in the monitor module as a static variable.

### Claim 16 (depends on 12)

The device of claim 12, the verification key is one key in a public/private key pair.

### Claim 17 (depends on 11)

The device of claim 11, wherein the software is configured to obtain the first expected hash from a source external to the electronic device.

### Claim 18 (depends on 11)

The device of claim 11, wherein the software is application software on the electronic device;
wherein the application software is further configured to use the platform software module responsive to the monitor module returning a positive result about the integrity verification procedure.

### Claim 19 (depends on 18)

The device of claim 18, wherein the first expected hash is embedded in the application software as a static variable.

### Claim 20 (depends on 11)

The device of claim 11, wherein the monitor module is non-changeable when the platform software module is updated.

### Claim 21 (depends on 11)

The device of claim 11, wherein the second expected hash is provided separately from the platform software module.

### Claim 22 (depends on 1)

The method of claim 1, wherein the second expected hash is provided separately from the platform software module.
