# US 2021/0176141 A1 · Secure count in cloud computing networks

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

- Number: US 2021/0176141 A1
- Document ID: US20210176141A1
- Status: Published application
- Kind: A1
- Application number: 17/180,805
- Filed: 2021-02-21
- Published: 2021-06-10
- Earliest claimed: 2018-11-21
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Gerardo DIAZ-CUELLAR; Stefan THOM; Joerg-Thomas PFENNING
- Web page: https://patentgrep.com/patent/US20210176141A1

## CPC

- G06F 21/105: {Arrangements for software license management or administration, e.g. for managing licenses at corporate level}
- H04L 41/5016: {based on statistics of service availability, e.g. in percentage or over a given time}
- G06F 21/1077: {Recurrent authorisation}
- G06F 21/1078: {Logging; Metering}
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- H04L 9/0897: {involving additional devices, e.g. trusted platform module [TPM], smartcard or USB}
- H04L 41/069: using logs of notifications; Post-processing of notifications
- H04L 41/5032: {Generating service level reports}
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- G06F 21/1014: {to tokens}
- G06F 2221/2149: Restricted operating environment
- 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

Inducements are provided to customers to regularly connect back to a service provider and report usage that is expressed using a count of requests from a local computing device for cloud-based operations such as packet routing, container instantiation, virtual machine (VM) utilization, calls to a service or application, and the like. The count information is reported within a secure context, such as a trusted execution environment (TEE), using public-private key pair cryptography by which key derivation is dependent on some form of counting. For example, a customer computing device that is subject to a usage license encrypts an operation count and reports it to the service provider.

## Claims

### Claim 1

A computing device, comprising:
one or more processors; and
at least one non-transitory computer-readable memory having computer-executable instructions stored thereon which, when executed by the one or more processors, cause the computing device to:
operate in a trusted execution environment by using a cryptographic process to encrypt one or more messages that are communicated to a service provider that provides a service to the computing device in accordance with predetermined limits;
execute the cryptographic process in a trusted plug-in that is installed on the computing device, in which the trusted plug-in includes a watchdog;
count utilization of the service;
report the counted service utilization to the service provider using one or more encrypted messages;
operate the trusted plug-in with the service responsively to the counted service utilization being within the predetermined limits; and
responsively to the counted service utilization being outside the predetermined limits, disable the trusted plug-in by operations of the watchdog.

### Claim 2 (depends on 1)

The computing device of claim 1 further including a trusted platform module (TPM) that stores one or more keys associated with the cryptographic process.

### Claim 3 (depends on 1)

The computing device of claim 1 in which the executed instructions cause the computing device to download code to the trusted plug-in and execute the downloaded code in the trusted plug-in.

### Claim 4 (depends on 3)

The computing device of claim 3 in which the executed instructions cause the computing device to issue a certificate that the executed code is trusted.

### Claim 5 (depends on 1)

The computing device of claim 1 in which the executed instructions cause the computing device to provide a health certification to the service provider, the health certification including metadata that describes an operating state of the computing device at times associated with utilization of the service.

### Claim 6 (depends on 1)

The computing device of claim 1 in which the cryptographic process comprises asymmetric cryptography.

### Claim 7 (depends on 1)

The computing device of claim 1 in which the trusted plug-in is configured to provide isolation from an operating system and other applications and processes that execute on the computing device.

### Claim 8

One or more non-transitory computer-readable memory devices storing computer-executable instructions which, upon execution by one or more processors in a computing device, cause the computing device to:
download a trusted plug-in from a service provider, in which the trusted plug-in includes a watchdog, and in which the trusted plug-in implements a trusted execution environment by using a cryptographic process to encrypt one or more messages that are communicated to the service provider from the computing device;
download code from the service provider, in which the downloaded code is encrypted;
decrypt the downloaded code in the trusted plug-in;
execute the decrypted code in the trusted plug-in;
utilize the executing code in the trusted plug-in to interoperate with the service provider using the encrypted messages to trigger remote performance of operations by the service provider in accordance with one of license, policy, or agreement;
responsively to the performed operations being outside the one of license, policy, or agreement, disable the trusted plug-in by operations of the watchdog.

### Claim 9 (depends on 8)

The one or more non-transitory computer-readable memory devices of claim 8 in which the downloaded code is proprietary code.

### Claim 10 (depends on 8)

The one or more non-transitory computer-readable memory devices of claim 8 in which the executed instructions further cause the computing device to count the remotely performed operations.

### Claim 11 (depends on 10)

The one or more non-transitory computer-readable memory devices of claim 10 in which the executed instructions further cause the computing device to encrypt the count of remotely preformed operations to provide a secure count.

### Claim 12 (depends on 11)

The one or more non-transitory computer-readable memory devices of claim 11 in which the executed instructions further cause the computing device to report the secure count to the service provider as proof of compliance with the one of license, policy, or agreement.

### Claim 13 (depends on 9)

The one or more non-transitory computer-readable memory devices of claim 9 in which the trusted plug-in is configured to provide an attestation that the computing device was booted with trusted code.

### Claim 14 (depends on 9)

The one or more non-transitory computer-readable memory devices of claim 9 in which the trusted plug-in is configured to review one of boot log or audit trail generated by a trusted platform module (TPM) to verify that the computing device executed code or handled data that is protected by the TPM.

### Claim 15 (depends on 8)

The one or more non-transitory computer-readable memory devices of claim 8 in which the remotely performed operations comprise one of data packet handling, virtual machine utilization, or function call to an application or service that is operable on one or more computer servers operated by the service provider.

### Claim 16 (depends on 9)

The one or more non-transitory computer-readable memory devices of claim 9 in which the trusted plug-in is configured to operate independently of an operating system that is instantiated on the computing device.

### Claim 17

A method of operating a computer server on which a service operates, comprising:
interoperating with a trusted plug-in that is installed on a computing device in accordance with predetermined terms, in which the trusted plug-in operates within a trusted execution environment by exchanging messages with the service that are encrypted by the trusted plug-in, and in which the trusted plug-in includes a watchdog;
receiving an encrypted report of operating counts from the computing device, the operating counts being associated with utilization of the service by the computing device;
providing additional operating counts to the watchdog in the trusted plug-in to continue interoperations with the service under the predetermined terms; and
discontinuing provision of additional operating counts to the watchdog in the trusted plug-in to cause the watchdog to disable the trusted plug-in responsively to the computing device being outside the predetermined terms.

### Claim 18 (depends on 17)

The method of claim 17 further including authenticating the trusted plug-in by successfully decrypting the received report of operating counts from the computing device.

### Claim 19 (depends on 17)

The method of claim 17 further including receiving metadata that describes a state of the computing device when utilizing the service, and further filtering data exhaust from the computing device using the metadata.

### Claim 20 (depends on 17)

The method of claim 17 further including making resources available to the computing device to download or utilize, the availability being conditioned on receipt of the operating count reporting from the computing device.
