IP Library Patent Application 15486703
Patent Application
App. No. 15/486,703

SYSTEMS AND METHODS FOR SECURELY PROVISIONING HYPERTEXT TRANSFER PROTOCOL SECURE (HTTPS) PINS TO A MOBILE CLIENT

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
15/486,703
Abstract

Systems and methods for securely provisioning HTTPS pins to a mobile client are provided herein. In some embodiments, the method may comprise receiving, at a mobile client, a digitally signed mobile client configuration file, wherein the mobile client configuration file comprises one or more URLs and one or more key pins associated with services available from the one or more URLs; retrieving a public key from a public key store; verifying a digital signature of the mobile client configuration file using the public key; and storing the key pins on the mobile client when the digital signature is verified.

Claims (64)

1 . A computer-implemented method for securely provisioning Hypertext Transfer protocol secure (HTTPS) pins to a mobile client, comprising:

accessing, at a server, a secure server certificate;

generating a key pin for the secure server certificate;

storing the key pin in a mobile client configuration file for a mobile client; and

digitally signing the mobile client configuration file.

2 . The method of claim 1 , wherein the secure server certificate is associated with a server at a universal resource locator (URL).

3 . The method of claim 2 , wherein one or more URLs are associated with one or more services available at the server.

4 . The method of claim 3 , wherein a key pin is associated with one or more services available at the server.

5 . The method of claim 1 , wherein generating the key pin comprises:

extracting a subject public key information (SPKI) section of the certificate;

generating a hash of the SPKI section of the certificate; and

base64-encoding the generated hash.

6 . The method of claim 1 , wherein the file is an extensible markup language (XML) file.

7 . The method of claim 1 , wherein the certificate is an X.509 certificate and the hash is a 256-hash.

8 . A computer-implemented method for securely provisioning Hypertext Transfer Protocol Secure (HTTPS) key pins comprising:

receiving, at a mobile client, a digitally signed mobile client configuration file, wherein the mobile client configuration file comprises one or more URLs and one or more key pins associated with services available from the one or more URLs;

retrieving a public key from a public key store;

verifying a digital signature of the mobile client configuration file using the public key; and

storing the key pins on the mobile client when the digital signature is verified.

9 . The method of claim 8 , wherein the mobile client configuration file comprises a current key pin and a future key pin.

10 . The method of claim 9 , further comprising:

waiting for a new secure server certificate to be deployed from a server;

storing the current key pin as an old key pin; and

storing the future key pin as the current key pin.

11 . The method of claim 10 , further comprising removing the old key pin after a predefined period of time.

12 . The method of claim 8 , wherein the mobile client configuration file comprises one or more URLs and one or more key pins, wherein the one or more URLs are associated with two or more datacenters.

13 . A system for opening a Hypertext Transfer Protocol Secure (HTTPS) connection between a mobile client and a server, comprising:

a server comprising a memory for storing a plurality of secure server certificates and one or more mobile client configuration files; and

a mobile client comprising:

a) at least one processor;

b) at least one input device; and

c) at least one storage device storing processor-executable instructions which, when executed by the at least one processor, perform a method to:

request to establish an HTTPS connection to the server;

receive a secure server certificate;

extract a subject public key information (SPKI) section of the secure server certificate;

generate a hash from the extracted SPKI section of the secure server certificate;

base64-encode the generated hash;

compare the base64-encoded hash to a key pin stored on the mobile client, wherein the key pin is associated with a URL associated with the server; and

establish the HTTPS connection between the mobile client and the server when the key pin and base64-encoded hash match.

14 . The system of claim 13 , wherein the processor-executable instructions further perform the method comprising:

requesting a new mobile client configuration file from the server when the key pin and base64-encoded hash do not match;

receiving the new mobile client configuration file from the server;

retrieving a public key from a public key store;

verifying a digital signature of the mobile client configuration file using the public key;

storing the key pins on the mobile client when the digital signature is verified;

compare the base64-encoded hash to the key pin received in the new mobile client configuration file; and

establish the HTTPS connection between the mobile client and the server when the key pin received in the new mobile client configuration file and base64-encoded hash match.

15 . The system of claim 14 , wherein the processor-executable instructions further perform the method comprising:

displaying an alert to a user that the requested connection has been compromised when the key pin and base64-encoded hash do not match; and

closing the connection between the mobile client and the server.

16 . The system of claim 14 , wherein the processor-executable instructions further perform the method comprising:

displaying an alert to a user that the requested connection has been compromised when the key pin and base64-encoded hash do not match; and

providing the user an option to continue to communicate with the server with a compromised connection.

17 . A non-transitory computer readable medium for storing computer instructions that, when executed by at least one processor causes the at least one processor to perform a method for securely provisioning HTTPS pins to a mobile client, comprising:

receiving, at a mobile client, a digitally signed mobile client configuration file, wherein the mobile client configuration file comprises one or more URLs and one or more key pins associated with services available from the one or more URLs;

retrieving a public key from a public key store;

verifying a digital signature of the mobile client configuration file using the public key; and

storing the key pins on the mobile client when the digital signature is verified.

18 . The non-transitory computer readable medium of claim 17 , wherein the mobile client configuration file comprises a current key pin and a future key pin.

19 . The non-transitory computer readable medium of claim 18 , further comprising:

waiting for a new secure server certificate to be deployed from a server;

storing the current key pin as an old key pin; and

storing the future key pin as the current key pin.

20 . The non-transitory computer readable medium of claim 19 , wherein the mobile client configuration file comprises one or more URLs and one or more key pins, wherein the one or more URLs are associated with two or more datacenters.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2025
From: SYNCHRONOSS TECHNOLOGIES, INC.
To: CITIZENS BANK, N.A.
Reel/Frame 071224/0279 →
SECURITY INTEREST Recorded Oct 29, 2019
From: SYNCHRONOSS TECHNOLOGIES, INC.
To: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 050854/0913 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2017
From: BOYLAN, SEAN; REDMOND, DARREN
To: SYNCHRONOSS TECHNOLOGIES, INC.
Reel/Frame 042028/0551 →