Patents by Inventor John Graham Cumming

John Graham Cumming has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20240126569
    Abstract: A compute server receives a request that triggers execution of a code piece out of multiple code pieces. A single process at the compute server executes the code piece, which is run in an isolated execution environment. Each other code piece runs in other isolated execution environments respectively and executed by the single process. The code piece, when executed, modifies a response to the request. The response is generated based at least in part on the executed code piece. The generated response is transmitted.
    Type: Application
    Filed: December 21, 2023
    Publication date: April 18, 2024
    Inventors: Kenton Taylor Varda, Zachary Aaron Bloom, Marek Przemyslaw Majkowski, Ingvar Stepanyan, Kyle Kloepper, Dane Orion Knecht, John Graham-Cumming, Dani Grant
  • Patent number: 11949647
    Abstract: A tunnel is established between a first edge server of a distributed edge compute and routing service and a tunnel client residing on an origin server. Routing rules are installed in the edge servers of the distributed edge compute and routing service to reach the first edge server. The routing rules are based at least in part on traffic information gathered from processing other traffic that traverses the distributed edge compute and routing service. A request for content served by the origin server through the tunnel is received at a second edge server of the distributed edge compute and routing service. A path from the second edge server to the first edge server is determined based on the routing rules. The request is transmitted on the determined path. The first edge server receives the request and transmits the request to the origin server over the tunnel.
    Type: Grant
    Filed: April 25, 2022
    Date of Patent: April 2, 2024
    Assignee: CLOUDFLARE, INC.
    Inventors: Dane Orion Knecht, John Graham-Cumming, Dani Grant, Christopher Philip Branch, Tom Paseka
  • Patent number: 11853776
    Abstract: A compute server receives a first request from a client device that triggers execution of a first third-party code piece. The first request is directed to a first zone. A single process at the compute server executes the first third-party code piece. As a result of executing the first third-party code piece, a second request is generated that triggers execution of a second third-party code piece. The second request is directed to a second zone. The single process executes the second third-party code piece. A response is generated to the first request based at least in part on the executed first third-party code piece and the executed second third-party code piece. The generated response is transmitted to the client device.
    Type: Grant
    Filed: December 30, 2022
    Date of Patent: December 26, 2023
    Assignee: CLOUDFLARE, INC.
    Inventors: Kenton Taylor Varda, Zachary Aaron Bloom, Marek Przemyslaw Majkowski, Ingvar Stepanyan, Kyle Kloepper, Dane Orion Knecht, John Graham-Cumming, Dani Grant
  • Patent number: 11792294
    Abstract: A browser receives a web page that includes a script that is configured to control subsequent requests of the browser for at least the web page and caches a first portion of the web page that includes reference(s) to other web resource(s). A subsequent request for the web page is dispatched to the script which returns the cached first portion of the web page to the browser and a request for the full web page is made. Request(s) are also transmitted for the web resource(s) referenced in the first portion of the web page without waiting for the full web page to be received. When the full web page is received, if the first portion of the page matches the corresponding portion of the full page, that corresponding portion is removed from the full page and the remaining page is returned to the browser.
    Type: Grant
    Filed: September 21, 2021
    Date of Patent: October 17, 2023
    Assignee: CLOUDFLARE, INC.
    Inventors: John Graham-Cumming, Andrew Galloni, Terin Stock
  • Patent number: 11736740
    Abstract: A server in a content delivery network (CDN) receives a request for a web page of a domain handled by an origin server. The server retrieves the web page and the web page references a video. The server retrieves a file that indicates a list of locations of the domain in which segments of the video are located. The server fetches at least an initial portion of the segments. The server receives a request for the video. The server transmits to the requester at least the initial portion of the segments. The server receives a subsequent request of a different portion of the segments. The server transmits a response to the requester that instructs the requester to transmit the request for the different portion of segments to a second server in the CDN.
    Type: Grant
    Filed: September 14, 2020
    Date of Patent: August 22, 2023
    Assignee: CLOUDFLARE, INC.
    Inventors: Dane Orion Knecht, Igor Postelnik, Oliver Yu, John Graham-Cumming, Dani Grant, Nitin Rao
  • Publication number: 20230224290
    Abstract: A server establishes a secure session with a client device where a private key used in the handshake is stored in a different server. An encrypted connection is established between the first server and the second server. A message is received from the client device that initiates a procedure to establish the secure session between the client device and the first server. As part of this procedure, the first server transmits over the encrypted connection a request to the second server to use the private key. The first server receives, over the encrypted connection, a response to the request that includes a result of the use of the private key. The first server uses the result during the procedure to establish the secure session.
    Type: Application
    Filed: January 3, 2023
    Publication date: July 13, 2023
    Inventors: Sébastien Andreas Henry Pahl, Matthieu Philippe François Tourne, Piotr Sikora, Ray Raymond Bejjani, Dane Orion Knecht, Matthew Browning Prince, John Graham-Cumming, Lee Hahn Holloway, Albertus Strasheim
  • Publication number: 20230138161
    Abstract: A compute server receives a first request from a client device that triggers execution of a first third-party code piece. The first request is directed to a first zone. A single process at the compute server executes the first third-party code piece. As a result of executing the first third-party code piece, a second request is generated that triggers execution of a second third-party code piece. The second request is directed to a second zone. The single process executes the second third-party code piece. A response is generated to the first request based at least in part on the executed first third-party code piece and the executed second third-party code piece. The generated response is transmitted to the client device.
    Type: Application
    Filed: December 30, 2022
    Publication date: May 4, 2023
    Inventors: Kenton Taylor Varda, Zachary Aaron Bloom, Marek Przemyslaw Majkowski, Ingvar Stepanyan, Kyle Kloepper, Dane Orion Knecht, John Graham-Cumming, Dani Grant
  • Publication number: 20230045757
    Abstract: An edge server of a distributed edge compute and routing service receives a tunnel connection request from a tunnel client residing on an origin server, that requests a tunnel be established between the edge server and the tunnel client. The request identifies the hostname that is to be tunneled. An IP address is assigned for the tunnel. DNS record(s) are added or changed that associate the hostname with the assigned IP address. Routing rules are installed in the edge servers of the distributed edge compute and routing service to reach the edge server for the tunneled hostname. The edge server receives a request for a resource of the tunneled hostname from another edge server that received the request from a client, where the other edge server is not connected to the origin server. The request is transmitted from the edge server to the origin server over the tunnel.
    Type: Application
    Filed: April 25, 2022
    Publication date: February 9, 2023
    Inventors: Dane Orion KNECHT, John GRAHAM-CUMMING, Dani GRANT, Christopher Philip BRANCH, Tom PASEKA
  • Patent number: 11561805
    Abstract: A compute server receives a request from a client device that triggers execution of a third-party code piece. The compute server is one of multiple compute servers that are part of a distributed cloud computing network. The request may be an HTTP request and directed to a zone. A single process at the compute server executes the third-party code piece in an isolated execution environment. The single process is also executing other third-party code pieces in other isolated execution environments respectively. A response is generated to the request based at least in part on the executed third-party code piece, and the generated response is transmitted to the client device.
    Type: Grant
    Filed: December 7, 2020
    Date of Patent: January 24, 2023
    Assignee: CLOUDFLARE, INC.
    Inventors: Kenton Taylor Varda, Zachary Aaron Bloom, Marek Przemyslaw Majkowski, Ingvar Stepanyan, Kyle Kloepper, Dane Orion Knecht, John Graham-Cumming, Dani Grant
  • Patent number: 11546309
    Abstract: A first server receives a set of cryptographic parameters from a second server. The set of cryptographic parameters is received from the second server as part of a secure session establishment between a client device and the second server. The first server accesses a private key that is not stored on the second server. The first server signs the set of cryptographic parameters using the private key. The first server transmits the signed set of cryptographic parameters to the second server. The first server receives, from the second server, a request to generate a premaster secret using a value generated by the second server that is included in the request and generates the premaster secret. The first server transmits the premaster secret to the second server for use in the secure session establishment between the client device and the second server.
    Type: Grant
    Filed: September 29, 2020
    Date of Patent: January 3, 2023
    Assignee: CLOUDFLARE, INC.
    Inventors: Sébastien Andreas Henry Pahl, Matthieu Philippe François Tourne, Piotr Sikora, Ray Raymond Bejjani, Dane Orion Knecht, Matthew Browning Prince, John Graham-Cumming, Lee Hahn Holloway, Albertus Strasheim
  • Patent number: 11438178
    Abstract: A server establishes a secure session with a client device where a private key used in the handshake when establishing the secure session is stored in a different server. During the handshake procedure, the server receives a premaster secret that has been encrypted using a public key bound with a domain for which the client device is attempting to establish a secure session with. The server transmits the encrypted premaster secret to the different server for decryption along with other information necessary to compute a master secret. The different server decrypts the encrypted premaster secret, generates the master secret, and transmits the master secret to the server. The server receives the master secret and continues with the handshake procedure including generating one or more session keys that are used in the secure session for encrypting and decrypting communication between the client device and the server.
    Type: Grant
    Filed: March 16, 2020
    Date of Patent: September 6, 2022
    Assignee: CLOUDFLARE, INC.
    Inventors: Sébastien Andreas Henry Pahl, Matthieu Philippe François Tourne, Piotr Sikora, Ray Raymond Bejjani, Dane Orion Knecht, Matthew Browning Prince, John Graham-Cumming, Lee Hahn Holloway, Nicholas Thomas Sullivan, Albertus Strasheim
  • Publication number: 20220174075
    Abstract: An edge server receives a plurality of requests from a client network application for actions to be performed on a resource that is hosted at an origin server. The edge server determines request attributes of the requests and associates the request attributes with a session identifying the client network application. The edge server generates a confidence value for the client network application based at least on the determined request attributes of the plurality of requests and computed session metrics of the session. When the confidence value indicates that the client network application is malicious, the edge server performs one or more mitigation actions.
    Type: Application
    Filed: February 15, 2022
    Publication date: June 2, 2022
    Inventors: Maciej BILAS, John GRAHAM-CUMMING, Marek MAJKOWSKI
  • Patent number: 11316825
    Abstract: An edge server of a distributed edge compute and routing service receives a tunnel connection request from a tunnel client residing on an origin server, that requests a tunnel be established between the edge server and the tunnel client. The request identifies the hostname that is to be tunneled. An IP address is assigned for the tunnel. DNS record(s) are added or changed that associate the hostname with the assigned IP address. Routing rules are installed in the edge servers of the distributed edge compute and routing service to reach the edge server for the tunneled hostname. The edge server receives a request for a resource of the tunneled hostname from another edge server that received the request from a client, where the other edge server is not connected to the origin server. The request is transmitted from the edge server to the origin server over the tunnel.
    Type: Grant
    Filed: May 26, 2020
    Date of Patent: April 26, 2022
    Assignee: CLOUDFLARE, INC.
    Inventors: Dane Orion Knecht, John Graham-Cumming, Dani Grant, Christopher Philip Branch, Tom Paseka
  • Patent number: 11252182
    Abstract: An edge server receives a plurality of requests from a client network application for actions to be performed on a resource that is hosted at an origin server. The edge server determines request attributes of the requests and associates the request attributes with a session identifying the client network application. The edge server generates a confidence value for the client network application based at least on the determined request attributes of the plurality of requests and computed session metrics of the session. When the confidence value indicates that the client network application is malicious, the edge server performs one or more mitigation actions.
    Type: Grant
    Filed: May 20, 2019
    Date of Patent: February 15, 2022
    Assignee: CLOUDFLARE, INC.
    Inventors: Maciej Bilas, John Graham-Cumming, Marek Majkowski
  • Publication number: 20220006878
    Abstract: A browser receives a web page that includes a script that is configured to control subsequent requests of the browser for at least the web page and caches a first portion of the web page that includes reference(s) to other web resource(s). A subsequent request for the web page is dispatched to the script which returns the cached first portion of the web page to the browser and a request for the full web page is made. Request(s) are also transmitted for the web resource(s) referenced in the first portion of the web page without waiting for the full web page to be received. When the full web page is received, if the first portion of the page matches the corresponding portion of the full page, that corresponding portion is removed from the full page and the remaining page is returned to the browser.
    Type: Application
    Filed: September 21, 2021
    Publication date: January 6, 2022
    Inventors: John Graham-Cumming, Andrew Galloni, Terin Stock
  • Patent number: 11159479
    Abstract: A DNS name server manages CNAME records. The server receives a query for a first Address record for a fully qualified domain name from a requester. The server determines that the fully qualified domain name has a CNAME record, where the fully qualified domain name is a root domain. The server traverses a chain according to the CNAME record to locate a second Address record that includes an IP address. The server generates a response to the query that includes a third Address record for the fully qualified domain name that includes at least the IP address of the located second Address record. The server transmits the generated response to the requester.
    Type: Grant
    Filed: July 8, 2019
    Date of Patent: October 26, 2021
    Assignee: CLOUDFLARE, INC.
    Inventors: Lee Hahn Holloway, Ray Raymond Bejjani, Dane Orion Knecht, Matthew Browning Prince, John Graham-Cumming
  • Patent number: 11128727
    Abstract: A browser receives a web page that includes a script that is configured to control subsequent requests of the browser for at least the web page and caches a first portion of the web page that includes reference(s) to other web resource(s). A subsequent request for the web page is dispatched to the script which returns the cached first portion of the web page to the browser and a request for the full web page is made. Request(s) are also transmitted for the web resource(s) referenced in the first portion of the web page without waiting for the full web page to be received. When the full web page is received, if the first portion of the page matches the corresponding portion of the full page, that corresponding portion is removed from the full page and the remaining page is returned to the browser.
    Type: Grant
    Filed: October 9, 2018
    Date of Patent: September 21, 2021
    Assignee: CLOUDFLARE, INC.
    Inventors: John Graham-Cumming, Andrew Galloni, Terin Stock
  • Patent number: 11044083
    Abstract: A first server establishes a secure session with a client device where a private key used in the handshake when establishing the secure session is stored in a different, second, server. The first server transmits messages between the client device and the second server where the second server has access to a private key that is not available on the first server. The first server receives from the second server a set of session key(s) used in the secure session for encrypting/decrypting communication between the client device and the first server. The session key(s) are generated using a master secret that is generated using a premaster secret generated using Diffie-Hellman public values selected by the client device and the second server. The first server uses the session key(s) to encrypt/decrypt communication with the client device.
    Type: Grant
    Filed: July 24, 2018
    Date of Patent: June 22, 2021
    Assignee: CLOUDFLARE, INC.
    Inventors: Sébastien Andreas Henry Pahl, Matthieu Philippe François Tourne, Piotr Sikora, Ray Raymond Bejjani, Dane Orion Knecht, Matthew Browning Prince, John Graham-Cumming, Lee Hahn Holloway, Nicholas Thomas Sullivan, Albertus Strasheim
  • Patent number: 11044335
    Abstract: A near end point of presence (PoP) of a cloud proxy service receives, from a client device, a request for a network resource. A far end PoP from a plurality of PoPs of the cloud proxy service is identified. Responsive to determining that a version of the network resource is stored in the near end PoP, a request for the network resource is transmitted to the far end PoP with a version identifier that identifies that version. The far end PoP receives, from the near end PoP, a response that includes difference(s) between the version of the network resource stored in the near end PoP with a most current version of the network resource. The response does not include the entire network resource. The near end PoP applies the specified difference(s) to the version that it has stored to generate an updated version of the network resource, and transmits it to the client device.
    Type: Grant
    Filed: August 7, 2018
    Date of Patent: June 22, 2021
    Assignee: CLOUDFLARE, INC.
    Inventors: Dane Orion Knecht, John Graham-Cumming, Matthew Browning Prince
  • Patent number: 10995072
    Abstract: The present application relates to certain substituted imidazole compounds, pharmaceutical compositions containing them, and methods of using them, including methods for treating pain, musculoskeletal inflammation, neuroinflammatory disorders, airway inflammation, itch, dermatitis, colitis and related conditions.
    Type: Grant
    Filed: December 27, 2019
    Date of Patent: May 4, 2021
    Assignee: Heptares Therapeutics Limited
    Inventors: John Graham Cumming, Frank Xinhe Wu, Karl Henrik Edman, Hongming Chen, Dean Gordon Brown, Roland Werner Burli, Shawn Donald Johnstone, Giles Albert Brown, Benjamin Gerald Tehan, Barry John Teobald, Miles Stuart Congreve