# US 9,438,609 B2 · Device verification prior to registration

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

- Number: US 9,438,609 B2
- Document ID: US9438609B2
- Status: Granted
- Kind: B2
- Application number: 14/472,916
- Filed: 2014-08-29
- Published: 2016-03-03
- Granted: 2016-09-06
- Earliest claimed: 2014-08-29
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Sebastian Bengochea; Vinod Shanbhag; Juan Diego Ferré; Elio Damaggio
- Web page: https://patentgrep.com/patent/US9438609B2

## CPC

- H04L 63/126: {the source of the received data}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- H04L 51/224: providing notification on incoming messages, e.g. pushed notifications of received messages
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 65/1073: Registration or de-registration
- H04L 67/54: Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
- H04L 67/55: Push-based network services
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments are directed to registering a device to receive notifications. In one scenario, a computer system receives a notification registration request from a computing device. The computer system generates a registration secret which includes identification information that uniquely identifies the computing device, and sends the generated registration secret including the information that uniquely identifies the computing device to a notification service. The computer system receives a hash value from the computing device, where the hash value is generated based on the identification information of the generated registration secret. The computer system computes another hash value based on the identification information of the received registration secret to determine whether the second hash value matches the first hash value, and upon determining that the second hash value matches the first hash value, the computer system registers the computing device to receive notifications from the notification service.

## Claims

### Claim 1

At a computer system including at least one processor, a computer-implemented method for registering a device to receive notifications, the method comprising:
receiving a notification registration request from a computing device;
generating a registration secret which includes identification information that uniquely identifies the computing device;
sending the generated registration secret including the identification information that uniquely identifies the computing device to a notification service to be forwarded to the computing device;
receiving a first hash value from the computing device, the first hash value being generated by the computing device and being generated based on the identification information of the generated registration secret;
computing a second hash value based on the identification information of the received registration secret;
comparing the first and second hash values and determining whether the second hash value matches the first hash value; and
when it has been determined that the second hash value matches the first hash value, registering the computing device to receive notifications from the notification service.

### Claim 2 (depends on 1)

The method of claim 1, wherein the identification information in the registration secret includes a client challenge received from the computing device, a notification address associated with the computing device and a timestamp.

### Claim 3 (depends on 2)

The method of claim 2, wherein the registration secret comprises a hash of the client challenge, the notification address and the timestamp.

### Claim 4 (depends on 2)

The method of claim 2, wherein the generated registration secret, the timestamp and the received client challenge are sent to the notification service.

### Claim 5 (depends on 2)

The method of claim 2, wherein the client challenge is generated by the computer system.

### Claim 6 (depends on 2)

The method of claim 2, wherein the client challenge is included as part of the first hash value.

### Claim 7 (depends on 6)

The method of claim 6, wherein the identification information uniquely identifying the computing device comprises a push notification channel identifier.

### Claim 8 (depends on 1)

The method of claim 1, wherein the notification registration request requests that the computing device be registered to receive push notifications.

### Claim 9 (depends on 1)

The method of claim 1, wherein the identification information uniquely identifying the computing device comprises a globally unique identifier (GUID) taken associated with at least one hardware or software component of the computing device.

### Claim 10 (depends on 1)

The method of claim 1, wherein the received registration secret is encrypted, and wherein the second hash value is generated based on the encrypted received registration secret.

### Claim 11 (depends on 1)

The method of claim 1, wherein upon receiving the notification registration from the computing device, the computing device is logically placed in an untrusted state.

### Claim 12

At a computing device including at least one processor, a computer-implemented method for the computing device to register to receive notifications, the method comprising:
generating a client challenge that is identifiable as originating at the computing device;
sending a notification registration request including the generated client challenge to a registration service;
receiving, from a notification service, a registration secret which includes identification information that uniquely identifies the computing device including the client challenge;
determining whether the received client challenge received from the notification service matches the generated client challenge previously sent to the registration service; and
upon determining that the client challenge received from the notification service matches the generated client challenge previously sent to the registration service, sending a second registration request including the registration secret to the registration service.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
receiving, from the notification service, a notification address that uniquely identifies the computing device, the notification address comprising an address at which the computing device is configured to receive notifications.

### Claim 14 (depends on 13)

The method of claim 13, wherein the notification address is different for each of a plurality of different platforms.

### Claim 15 (depends on 12)

The method of claim 12, wherein the notification service comprises a third party notification service associated with at least one application or operating system running on the computing device.

### Claim 16 (depends on 12)

The method of claim 12, wherein the client challenge comprises a portion of information that is identifiable as coming from the computing device.

### Claim 17 (depends on 12)

The method of claim 12, further comprising receiving an indication that the computing device has been registered to receive notifications from the notification service.

### Claim 18

A computer system comprising the following:
one or more processors;
one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, cause the computing system to perform a method for registering a device to receive notifications, the method comprising the following:
receiving a push notification registration request from a computing device, the request including a push notification address associated with the computing device and a client challenge;
generating a registration secret including the received client challenge, the push notification address and a timestamp;
sending the generated registration secret, the timestamp and the client challenge to a push notification service to be forwarded to the computing device;
receiving a first hash value from the computing device, the first hash value being generated by the computing device and representing the generated registration secret, the timestamp and the client challenge;
computing a second hash value of the received registration secret, the timestamp and the client challenge;
comparing the first and second hash values and determining whether the second hash value matches the first hash value; and
upon determining that the second hash value matches the first hash value, registering the computing device to receive push notifications.

### Claim 19 (depends on 18)

The computer system of claim 18, wherein the computer system is registered to receive push notifications at a registration service running on the computer system.

### Claim 20 (depends on 19)

The computer system of claim 19, wherein the registration secret and the timestamp sent to the push notification service are encrypted using a key that is unique to the registration service.
