IP Library Granted Patent US 12,086,257
Granted Patent B2
US 12,086,257 · App. 16/857,971 · Granted Sep 10, 2024

Trusted firmware verification

Inventors: Neeraj Saluja (Round Rock, TX); Muhammad Anadil Furqan (Austin, TX)
Assignee: Omnissa, LLC
G06F21/572G06F21/44H04L9/3247H04L9/3265H04L9/3268G06F2221/033H04L9/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,086,257
App. No.
16/857,971
Granted
Sep 10, 2024
Kind
B2
Abstract

Disclosed are various examples for verification and management of firmware for client devices enrolled with a management service of an enterprise. The firmware verification includes a verification process using multiple checkpoints for determining whether status responses associated with firmware installed on and received from a managed client device can be trusted. The multiple checkpoints can include verifying certificate data, signature data, and an exit code included in status responses received from managed devices. In the event that one of the verification steps fails, the device can be considered compromised and subject to various compliance actions. The compliance actions can include limiting access to enterprise data, limiting access to one or more applications, wiping a device clean to reset the devices to the original factory settings, sending a notification to an enterprise administrator providing an indication of the detected compromise, and other types of compliance actions.

Claims (70)

1. A system, comprising:

a computing device comprising a processor and a memory; and

machine-readable instructions stored in the memory which, when executed by the processor, cause the computing device to at least:

send a request to a client device for a status of firmware installed on the client device;

receive, from the client device, a response to the request, the response comprising a status response file generated by a device manufacturer and provided to a firmware utility on the client device and a first exit code generated by the firmware utility on the client device, the status response file comprising at least a certificate, a signature associated with the certificate, and a second exit code generated by the device manufacturer, the first exit code and the second exit code corresponding to a given status of the firmware installed on the client device;

perform a certificate verification based at least in part on the certificate included in the status response file;

perform a signature verification based at least in part on the signature included in the status response file, at least if the certificate verification does not indicate that the status response file has been compromised;

perform an exit code verification based at least in part on at least one of the first exit code generated by the firmware utility or the second exit code included in the status response file, at least if the signature verification does not indicate that the status response file has been compromised;

determine whether the response is untrustworthy, based at least in part on one or more of the certificate verification, the signature verification, and the exit code verification; and

perform a compliance action if the response is determined to be untrustworthy.

2. The system of claim 1 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device to at least:

send a certificate data request to a third-party entity service;

receive certificate data from the third-party entity service; and

perform the certificate verification by comparing the certificate data with the certificate included in the status response file, wherein the status response file is determined to be compromised in an instance in which the certificate data fails to match the certificate.

3. The system of claim 2 , wherein the signature included in the status response file comprises a first signature, and the machine-readable instructions, when executed by the processor, further cause the computing device to at least:

generate a second signature based at least in response to the certificate data; and

perform the signature verification by at least comparing the first signature to the second signature, wherein the status response file is determined to be compromised in an instance in which the first signature fails to match the second signature.

4. The system of claim 1 , wherein the exit code verification comprises determining to trust the second exit code in response to validating a certificate chain associated with the certificate.

5. The system of claim 1 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device to at least determine the status of the firmware based on the first exit code and a predefined exit code mapping stored in a data store.

6. The system of claim 1 , wherein the compliance action comprises at least one of:

generating and sending a notification of a detected compromise to an, administrator;

defining at least one access restriction for the client device; or restoring factory settings on the client device.

7. The system of claim 1 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device to at least:

generate a configuration profile modifying configuration settings associated with the client device in an instance in which the status response file is determined to be compromised; and

send the configuration profile to the client device.

8. A non-transitory computer-readable medium embodying executable instructions which, when executed by a computing device, cause the computing device to at least:

send a request to a client device for a status of firmware installed on the client device;

receive, from a firmware utility on the client device, a response to the request, the response comprising a status response file generated by a device manufacturer and provided to a firmware utility on the client device and a first exit code generated by the firmware utility on the client device, the status response file comprising at least a certificate, a signature associated with the certificate, and a second exit code generated by the device manufacturer, the first exit code and the second exit code corresponding to a given status of the firmware installed on the client device;

perform a certificate verification based at least in part on the certificate included in the status response file;

perform a signature verification based at least in part on the signature included in the status response file, at least if the certificate verification does not indicate that the status response file has been compromised;

perform an exit code verification based at least in part on at least one of the first exit code generated by the firmware utility or the second exit code included in the status response file, at least if the signature verification does not indicate that the status response file has been compromised;

determine whether the response is untrustworthy, based at least in part on one or more of the certificate verification, the signature verification, and the exit code verification; and

perform a compliance action if the response is determined to be untrustworthy.

9. The non-transitory computer-readable medium of claim 8 , further comprising executable instructions which, when executed by the computing device, further cause the computing device to at least:

send a certificate data request to a third-party entity service;

receive certificate data from the third-party entity service; and

perform the certificate verification by comparing the certificate data with the certificate included in the status response file, wherein the status response file is determined to be compromised in an instance in which the certificate data fails to match the certificate.

10. The non-transitory computer-readable medium of claim 9 , wherein the signature included in the status response file comprises a first signature, and further comprising executable instructions which, when executed by the computing device, further cause the computing device to at least:

generate a second signature based at least in response to the certificate data; and

perform the signature verification by at least comparing the first signature to the second signature, wherein the status response file is determined to be compromised in an instance in which the first signature fails to match the second signature.

11. The non-transitory computer-readable medium of claim 8 , wherein the exit code verification comprises determining to trust the second exit code in response to validating a certificate chain associated with the certificate.

12. The non-transitory computer-readable medium of claim 8 , further comprising executable instructions which, when executed by the computing device, further cause the computing device to at least determine the status of the firmware based on the first exit code and a predefined exit code mapping stored in a data store.

13. The non-transitory computer-readable medium of claim 8 , wherein the compliance action comprises at least one of:

generating and sending a notification of a detected compromise to an, administrator;

defining at least one access restriction for the client device; or

restoring factory settings on the client device.

14. The non-transitory computer-readable medium of claim 8 , further comprising executable instructions which, when executed by the computing device, further cause the computing device to at least:

generate a configuration profile modifying configuration settings associated with the client device in an instance in which the status response file is determined to be compromised; and

send the configuration profile to the client device.

15. A computer-implemented method, comprising:

sending, by at least one computing device, a request to a client device for a status of firmware installed on the client device;

receiving, by the at least one computing device and from the client device, a response to the request, the response comprising a status response file generated by a device manufacturer and provided to a firmware utility on the client device and a first exit code generated by the firmware utility on the client device, the status response file comprising at least a certificate, a signature associated with the certificate, and a second exit code generated by the device manufacturer, the first exit code and the second exit code corresponding to a given status of the firmware installed on the client device;

performing, by the at least one computing device, a certificate verification based at least in part on the certificate included in the status response file;

performing, by the at least one computing device, a signature verification based at least in part on the signature included in the status response file, at least if the certificate verification does not indicate that the status response file has been compromised;

performing, by the at least one computing device, an exit code verification based at least in part on at least one of the first exit code generated by the firmware utility or the second exit code included in the status response file, at least if the signature verification does not indicate that the status response file has been compromised;

determining, by the at least one computing device, whether the response is untrustworthy, based at least in part on one or more of the certificate verification, the signature verification, and the exit code verification; and

performing, by the at least one computing device, a compliance action if the response is determined to be untrustworthy.

16. The computer-implemented method of claim 15 , further comprising:

sending, by the at least one computing device, a certificate data request to a third-party entity service;

receiving, by the at least one computing device, certificate data from the third-party entity service; and

performing, by the at least one computing device, the certificate verification by comparing the certificate data with the certificate included in the status response file, wherein the status response file is determined to be compromised in an instance in which the certificate data fails to match the certificate.

17. The computer-implemented method of claim 16 , wherein the signature included in the status response file comprises a first signature, and further comprising:

generate a second signature based at least in response to the certificate data; and

perform the signature verification by at least comparing the first signature to the second signature, wherein the status response file is determined to be compromised in an instance in which the first signature fails to match the second signature.

18. The computer-implemented method of claim 15 , wherein the exit code verification comprises determining to trust the second exit code in response to validating a certificate chain associated with the certificate.

19. The computer-implemented method of claim 15 , further comprising determining the status of the firmware based on the first exit code and a predefined exit code mapping stored in a data store.

20. The computer-implemented method of claim 15 , wherein the compliance action comprises at least one of:

generating and sending a notification of a detected compromise to an, administrator;

defining at least one access restriction for the client, device; or

restoring factory settings on the client device.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Jun 3, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067607/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2020
From: SALUJA, NEERAJ; FURQAN, MUHAMMAD ANADIL
To: VMWARE, INC.
Reel/Frame 052491/0768 →