# US 11,444,779 B2 · Techniques for securing application programming interface requests using multi-party digital signatures

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

- Number: US 11,444,779 B2
- Document ID: US11444779B2
- Status: Granted
- Kind: B2
- Application number: 16/404,218
- Filed: 2019-05-06
- Published: 2020-02-06
- Granted: 2022-09-13
- Earliest claimed: 2018-08-02
- Assignees: Paypal, Inc.
- Applicants: Paypal, Inc.
- Inventors: Dan Yadlin; Ben Riva; Alon Navon; Lev Pachmanov; Jonathan Katz
- Web page: https://patentgrep.com/patent/US11444779B2

## CPC

- H04L 9/3247: {involving digital signatures}
- H04L 9/3255: {using group based signatures, e.g. ring or threshold signatures}
- G06F 9/54: Interprogram communication
- G06F 21/44: Program or device authentication
- H04L 9/085: {Secret sharing or secret splitting, e.g. threshold schemes}
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 2209/46: Secure multiparty computation, e.g. millionaire problem
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- 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 system and method for securing application programming interface (API) requests using multi-party digital signatures. The method includes generating, by a first system, at least one first secret share of a plurality of secret shares based on an API secret, wherein the plurality of secret shares includes the at least one first secret share and at least one second secret share, wherein the at least one second secret share is generated by at least one second system; and signing, by the first system, an API request using the at least one first secret share, wherein the API request is further signed by the at least one second system using the at least one second secret share, wherein the API request is signed without revealing any of the at least one first secret share to the at least one second system and without revealing any of the at least one second secret share to the first system.

## Claims

### Claim 1

A method for securing application programming interface (API) requests, comprising:
generating, by a first system, at least one first secret share of a plurality of secret shares based on an API secret, wherein the plurality of secret shares includes the at least one first secret share and at least one second secret share, and wherein the at least one second secret share is generated by at least one second system;
receiving, by the first system, an API request;
determining, by the first system, a signing policy including a first requirement that a minimum number of secret shares of the plurality of secret shares are available to sign the API request;
validating, by at least the first system, the API request based on the signing policy and the minimum number of secret shares available to sign the API request from at least the first system and the at least one second system; and
signing, by the first system, the API request using the at least one first secret share, wherein the API request is further signed by the at least one second system using the at least one second secret share, and wherein the API request is signed without revealing any of the at least one first secret share to the at least one second system and without revealing any of the at least one second secret share to the first system.

### Claim 2 (depends on 1)

The method of claim 1, wherein the API request is signed using at least a portion of the at least one first secret share when at least one party enforces the signing policy on another party.

### Claim 3 (depends on 2)

The method of claim 2, wherein the signing policy includes a second requirement that at least a threshold number of the plurality of shares are present in the first system and the at least one second system.

### Claim 4 (depends on 1)

The method of claim 1, wherein the at least one second system includes a plurality of second systems, wherein the plurality of secret shares includes a plurality of sets of secret shares, and wherein each of the plurality of sets of secret shares includes a portion of the at least one second secret share.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
rotating at least a portion of the plurality of secret shares between the first system and at least one of the at least one second system.

### Claim 6 (depends on 1)

The method of claim 1, wherein the API secret is not exposed over a network.

### Claim 7 (depends on 1)

The method of claim 1, wherein the API secret is not exposed to any of the first system and the at least one second system.

### Claim 8 (depends on 1)

The method of claim 1, wherein the API secret is not reconstructed when any of the plurality of secret shares are used to sign the API request.

### Claim 9 (depends on 1)

The method of claim 1, wherein each of the at least one first secret share is only exposed to the first system, and wherein each of the at least one second secret share is only exposed to one of the at least one second system.

### Claim 10 (depends on 9)

The method of claim 9, wherein each portion of each of the at least one first secret share is only exposed to the first system, and wherein each portion of each of the at least one second secret share is only exposed to one of the at least one second system.

### Claim 11 (depends on 9)

The method of claim 9, wherein each of the first system and the at least one second system is configured not to send a secret share generated by a corresponding one of the first system and the at least one second system to an external system.

### Claim 12

A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry of a first system to execute a process, the process comprising:
generating at least one first secret share of a plurality of secret shares based on an API secret, wherein the plurality of secret shares includes the at least one first secret share and at least one second secret share, and wherein the at least one second secret share is generated by at least one second system;
receiving an API request;
determining a signing policy including a first requirement that a minimum number of secret shares of the plurality of secret shares are available to sign the API request;
validating the API request based on the signing policy and the minimum number of secret shares available to sign the API request from at least the first system and the at least one second system; and
signing the API request using the at least one first secret share, wherein the API request is further signed by the at least one second system using the at least one second secret share, and wherein the API request is signed without revealing any of the at least one first secret share to the at least one second system and without revealing any of the at least one second secret share to the first system.

### Claim 13 (depends on 12)

The non-transitory computer readable medium of claim 12, wherein the API secret is not reconstructed when any of the plurality of secret shares are used to sign the API request.

### Claim 14

A system for securing application programming interface (API) requests, comprising:
a processing circuitry; and
a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:
generate at least one first secret share of a plurality of secret shares based on an API secret, wherein the system is a first system, wherein the plurality of secret shares includes the at least one first secret share and at least one second secret share, and wherein the at least one second secret share is generated by at least one second system;
receive an API request;
determine a signing policy including a first requirement that a minimum number of secret shares of the plurality of secret shares are available to sign the API request;
validate the API request based on the signing policy and the minimum number of secret shares available to sign the API request from at least the first system and the at least one second system; and
sign the API request using the at least one first secret share, wherein the API request is further signed by the at least one second system using the at least one second secret share, and wherein the API request is signed without revealing any of the at least one first secret share to the at least one second system and without revealing any of the at least one second secret share to the first system.

### Claim 15 (depends on 14)

The system of claim 14, wherein the API request is signed using at least a portion of the at least one first secret share when at least one party enforces the signing policy on another party.

### Claim 16 (depends on 15)

The system of claim 15, wherein the signing policy includes a second requirement that at least a threshold number of the plurality of shares are present in the first system and the at least one second system.

### Claim 17 (depends on 14)

The system of claim 14, wherein the at least one second system includes a plurality of second systems, wherein the plurality of secret shares includes a plurality of sets of secret shares, and wherein each of the plurality of sets of secret shares includes a portion of the at least one second secret share.

### Claim 18 (depends on 14)

The system of claim 14, wherein the system is further configured to:
rotate at least a portion of the plurality of secret shares between the first system and at least one of the at least one second system.

### Claim 19 (depends on 14)

The system of claim 14, wherein the API secret is not exposed over a network.

### Claim 20 (depends on 14)

The system of claim 14, wherein the API secret is not exposed to any of the first system and the at least one second system.

### Claim 21 (depends on 14)

The system of claim 14, wherein the API secret is not reconstructed when any of the plurality of secret shares are used to sign the API request.

### Claim 22 (depends on 14)

The system of claim 14, wherein each of the at least one first secret share is only exposed to the first system, and wherein each of the at least one second secret share is only exposed to one of the at least one second system.

### Claim 23 (depends on 22)

The system of claim 22, wherein each portion of each of the at least one first secret share is only exposed to the first system, and wherein each portion of each of the at least one second secret share is only exposed to one of the at least one second system.
