Patent ID: 12200124

DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS OF THE DISCLOSURE

The following definitions of certain terms apply throughout the disclosure.

A “cryptographic key” is data, usually a string of numbers or letters, that when processed through a cryptographic algorithm, can encode or decode cryptographic data.

An “active key” is the sole cryptographic key that is to be used at a current time to encrypt or decrypt content to be communicated between the client and server.

An “old key” is a cryptographic key that was formerly an active key but is no longer the active key.

“Key rotation” is process in which the active key is replaced with a new key. The new key thus becomes the active key, and the replaced key becomes an old key.

The present disclosure describes a method for securing communications via a protocol for key rotation. The method and the protocol are directed to secure the communication channel between a client and a server to prevent potential security threats such as data leakage, or man-in-the middle attacks. According to embodiments of the method, the server stores a set of cryptographic keys that are intended to be provided to the client on a rotating basis. After receipt of the currently active key, the client uses the active key to encrypt communication between the client and the server. According to embodiments of the method, the server determines the number of keys, the time duration during which each key is valid, and a criticality metric for each key. Based on this information, communications proceed according to the protocol using the information provided by the server. The communication between the client and server according to the protocol continues until the client sends a notification to the server to end the communication.

FIG.1is an example schematic of communication system in which a protocol for a rotating key mechanism according to the present disclosure can be implemented. The communication system100includes a number of electronic user devices104,108,112that can be employed by users for electronic communication. The user devices104,108,112can be personal computers of any time, smart phones, tablets, or any other electronic devices that have electronic communication and processing capability including Internet of Things (IoT) devices. The communication system also includes server devices120,130. Server devices can be physically dedicated or virtual machines that are configured to execute program code for providing a service to user devices104,108,112User devices104,108,112and server devices120,130are connected, directly or indirectly to a communication network140. As shown inFIG.1, server120is coupled to a first database125and server130is coupled to a second database135. This is merely illustrative and the servers120,130can be coupled to any number of other storage facilities to acquire stored information for any purpose. The network140can be a public network, a private network, a wide or local area network, a wired or wireless network, without limitation. Users can employ electronic devices104,108,112to contact and connect to server devices120,130over the network140. During communications between a user device e.g.,104,108,112and a server e.g.,120,130, the relevant user devices is referred to as a “client” of the server. A certificate authority (CA)145is also connected to network145and can be accessed by the clients and server to authenticate the identity of communicants in the network.

FIG.2Ais a schematic block diagram of a client device according to an embodiment of the present disclosure. The client device200includes a processing unit202, system memory206and further memory device210coupled over a system bus215. The processing unit202can include any general-purpose processor, CPU or a special-purpose processor where software instructions are incorporated into the actual processor design. The processing unit202can include a single core processor or can include multiple cores. System memory206can include local memory caches of random access memory (RAM) and read-only memory (ROM). Memory devices210can include hard disks, flash memory drives, and any other storage devices coupled directly to the device200. To enable user interaction input devices222can represent any number of input mechanisms, such as mouse, touch-sensitive screen for gesture or graphical input, keyboard, motion input, microphone, etc. Output devices224can include a display monitor or speakers. The input and output devices are coupled to system buss215via device interfaces225. A communications interface230, also coupled to system bus215, is configured to conducts and managed electronic communications between the client device and other devices, including servers, over the network.

According to the present disclosure, the client device is configured with certain capabilities, via one or more software applications or modules adapted for communicating with other devices using a secure protocol having a rotating key mechanism. A communications module242is adapted to employ the communications interface230to connect to other entities, over the network, including servers, and to transmit/receive messages according to a communication protocol. A security application module265stores a private key and includes program code to encrypt and decrypt message content using the private key in addition to other cipher suites. The security application module265includes a timer module that measures the amount of time an active key (different from the private key, as will be discussed below) has been used and can block use of the active key when a threshold amount of time has elapsed since the beginning of use of the active key.

Referring now toFIG.2B, an example block diagram of a server device250for implementing the rotating key mechanism of the present disclosure is shown. In the embodiment ofFIG.2B, the server250is a standalone device. However, in other embodiments the server can be implemented as a virtual machine or by a combination of processes executed over a network platform. However, to illustrate aspects of the functionality of the server, the standalone embodiment is described. The server device250includes a processing unit252, system memory256and further memory device260coupled over a system bus265. The processing unit252can include any general-purpose processor, CPU or a special-purpose processor where software instructions are incorporated into the actual processor design. The processing unit252can include a single core processor or can include multiple cores. System memory256can include local memory caches of random access memory (RAM) and read-only memory (ROM). Memory devices260can include hard disks, flash memory drives, and any other storage devices coupled directly to the device250. A communications interface280, also coupled to system bus265, is configured to conducts and managed electronic communications between the client device and other devices, including servers, over the network.

The server device is configured with certain capabilities, via one or more applications or modules adapted for managing a rotating key message protocol according to the present disclosure. A communication module284is configured to establish communication according to a stored protocol. The communication protocol dictates the types of message sent between the server and client and their respective sequence. Communication module284also stores or is configured to access information and algorithms associated with communication according to the protocol. As an example, the communication module288can generate session ids, digital certificates and other data according to known generation methods. The security module includes encryption/decryption capability and stores or is configured to access certain information related to conducting encryption to in particular to the rotating key mechanism according to the present disclosure. For example, the security module288stores or is configured to access a public key of the server, cipher suites for performing encryption/decryption, as well as specific information related to key rotation referred to as rotation key mechanism attributes (RKM attributes). In certain implementations, the rotation key attributes include the number of keys to be rotated in a given session, the key rotation time (i.e., the time duration during which an active key is valid, the elapse of which triggers a key rotation), and criteria for categorizing the criticality of a communication. The RKM attributes can also include other information. The server security module288is configured to determine the criticality based the network entity through which communication takes place. The more public (e.g., the Internet), the lower the security and the greater need for key rotation.

According to one embodiment, the steps of the protocol for a key rotation mechanism of the present disclosure are shown in the exemplary sequence diagram shown inFIG.3. In a first step305, a client e.g.,105sends a “Client-Hello” message to the server e.g.,120over network140, which starts a negotiation between the client and server. In response, in step310, the server140Server transmits a “Server-Hello” packet which includes information for establishing the session and the rotation key mechanism. In some embodiments, the information includes a session id, a digital certificate, a public key and a set of cipher suites supported for a rotation key mechanism. In some implementations, as a prelude to the following step, the client verifies the certificate received from the server by accessing a certificate authority145. A positive communication from the certificate authority establishes trust between the client and server. In step315the client selects from one or two of the cipher suites received from the server and responds with a message including the selections to the server. Upon receipt of the cipher suites from the client, in step320, the server sends back the client the set of rotation key mechanism attributes (RKM attributes). In some implementations, the attributes include the number of keys, the period during which a key is valid and at the end of which a key rotation must occur, and a system criticality categorization. In other implementations, some of this information can be left out or other information added to the attributes.

Upon receipt of the RKM attributes from the server, the client encrypts a private key associated with the client with the public key previously received from the server and in step325, transmits the encrypted private key back to the server in a finished packet. In step330, the server responds with a finished packet and a communication channel is considered to be established. At this point, the server can send the cryptographic keys to be rotated to the client. In step335, the server sends the first key to the client together with the time period required for key rotation and a criticality designation, such as critical, important, medium or low. The time period included in the message is to be adjusted based on the server criticality designation. A higher criticality level decreases key rotation time while a low criticality increases key rotation time. The server criticality level is determined by the server based on the zone that the server is located on. For example, if the server is internet-facing then the criticality is high. If, on the other hand the server faces an intranet the criticality level is typically determined to be high or medium. If the server is located in an isolated network, then the criticality is determined to be low. Table 1 below provides one example of a set of relationships between criticality and rotation time according to the present disclosure. In certain implementations, in response to a criticality determination, the key rotation time is selected from a table maintained in memory.

System CriticalityKey Rotation TimeCritical5MinutesImportant10MinutesMedium30MinutesLow1Hour

In step340, the client acknowledges the information received from the server, in terms of the number of keys, the time required to change the rotation of the keys, and the server criticality. The client uses the active key received from the server to encrypt its communication for the specified time agreed upon based on the server criticality. The encryption is a measure that is used to prevent man-in-the-middle attacks. The client can keep sending communications to the server until the specified time agreed upon elapses. During the period before the key elapses, the server decrypts communications received from the client using its public key (step350). One the key elapses, in step355, the server rotates the keys. The active key becomes the old key and a new key becomes the active key and the active key is sent to the client. This process continues indefinitely until, in step360, the client sends a message, via a finished packet, to inform the server that it has completed sending packets. In step365the server sends an acknowledgement and the communication is terminated.

The protocol described above includes tasks shared by the client and server.FIG.4is a flow chart of the performance of the rotating key mechanism protocol by the server according to an embodiment of the present disclosure. In step400the method begins. In a first step405, the server receives a request from a client to initiate communication. In step410, the server transmits information (“establishment information”) to the client including a session id, a digital certificate, a public key and cipher suites support for the rotation key mechanism. Once verified, the server receives cipher suites selected by the client. In a following step415, the server sends rotation key attributes (RKM attributes) to the client. In step420, the server receives a finished packet from the client including the client's private key encrypted using the server's public key. In step425the server sends the first active key to the client, the time period of the key and the server criticality (critical, important, medium, and low). The server then receives packets from the client encrypted using the active key in step430. In step435it is determined whether the key rotation time period has elapsed, if it has not but the server receives a message to end communication from the client, the method ends in step450. If the rotation time period has elapsed, in step440the server sends the client the next cryptographic key in a rotation from the current active key (which become the old key) to the new cryptographic key (which becomes the active key) and disqualifies the previous active key, which is no longer used for communication. The method then cycles back to step430.

It is to be understood that any structural and functional details disclosed herein are not to be interpreted as limiting the systems and methods, but rather are provided as a representative embodiment and/or arrangement for teaching one skilled in the art one or more ways to implement the methods.

It is to be further understood that like numerals in the drawings represent like elements through the several figures, and that not all components or steps described and illustrated with reference to the figures are required for all embodiments or arrangements.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and “comprising”, when used in this specification, specify the presence of stated features, integers, steps, operations, elements, or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof.

Terms of orientation are used herein merely for purposes of convention and referencing, and are not to be construed as limiting. However, it is recognized these terms could be used with reference to a viewer. Accordingly, no limitations are implied or to be inferred.

Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.

The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes can be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the invention encompassed by the present disclosure, which is defined by the set of recitations in the following claims and by structures and functions or steps which are equivalent to these recitations.