# US 2017/0257282 A1 · Authenticating connections and program identity in a messaging system

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

- Number: US 2017/0257282 A1
- Document ID: US20170257282A1
- Status: Published application
- Kind: A1
- Application number: 15/604,540
- Filed: 2017-05-24
- Published: 2017-09-07
- Earliest claimed: 2015-01-29
- Assignees: BlackRock Institutional Trust Company, N.A.
- Applicants: BlackRock Institutional Trust Company, N.A.
- Inventors: Elliot Hamburger; Jonathan S. Harris; Jeffrey A. Litvin; Sauhard Sahi; John D. Valois; Ara Basil; Randall B. Fradin
- Web page: https://patentgrep.com/patent/US20170257282A1

## CPC

- H04L 51/23: Reliability checks, e.g. acknowledgments or fault reporting
- G06F 15/167: using a common memory, e.g. mailbox
- H04L 41/20: {Network management software packages}
- H04L 51/56: Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
- H04L 63/0442: {wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for public-key encryption H04L9/30)}
- H04L 67/1004: Server selection for load balancing
- 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

A messaging system enables client applications to send and receive messages. The messaging system includes independent component programs performing different functions of the messaging system, such as connection managers that maintain network connections with the client applications, a message router that sends received messages to recipient applications through network connections, and a dispatcher that authenticates other component programs. A messaging server may authenticate client applications using certificate-based authentication (e.g., private and public keys), authentication transfer from another trusted messaging server, or other methods (e.g., user name and password). To authenticate a component program, the dispatcher compares instantiation information (e.g., user identity, process identifier, creation time) of the component program provided by the operating system with instantiation information saved in a shared memory at the time of the component program's instantiation. In response to a match, the dispatcher provides the component program with secure information through an inter-process communication socket.

## Claims

### Claim 1

A method of authenticating network connections between a remote program and a messaging system comprising component programs including at least one from a group consisting of a dispatcher, a message router, and a connection manager, the method comprising:
receiving, at a port associated with the connection manager, a network connection transferred from the dispatcher;
sending the client device a challenge string containing data unique to the network connection;
receiving a challenge string response from the remote program, the challenge string response including a signature on the challenge string from with a private key paired with an approved public key;
verifying whether the received challenge string response is valid for the network connection; and
responsive to determining that the received challenge string response is valid, processing messages sent through the network connection.

### Claim 2 (depends on 1)

The method of claim 1, wherein the remote program is one of a client application executed by a client device and a component program executed by another messaging server different from a messaging server executing the dispatcher.

### Claim 3 (depends on 1)

The method of claim 1, wherein the private key is generated using a root private key paired with the approved public key, the root private key is accessible to the remote program, and the approved public key is accessible to the remote program and the dispatcher.

### Claim 4 (depends on 1)

The method of claim 1,
wherein sending the challenge string comprises storing the challenge string in association with the network connection,
wherein the received challenge string response includes a public key, and
wherein verifying whether the received challenge string response is valid comprises:
determining whether the challenge string response corresponds to the stored challenge string associated with the network connection;
determining whether there is a valid chain of trust between the public key and the approved public key; and
determining whether the signature on the received challenge string response corresponds to the public key included in the received challenge string response.

### Claim 5 (depends on 1)

The method of claim 1, further comprising instructing the connection manager to close the network connection responsive to determining that the received challenge string response is invalid.
