METHOD FOR SECURE NETWORK COMMUNICATION AND SYSTEM THEREOF

The present disclosure relates to a secure network communication method and a system therefor. The secure network communication method using a proxy connecting a client and a server according to an embodiment of the present disclosure may include: receiving, from the client, a session encryption key shared for generation of a secure channel between the client and the server; and when a packet encrypted with the session encryption key and transmitted from the client to the server is received, decrypting the encrypted packet with the session encryption key and analyzing the decrypted packet, or forwarding the encrypted packet to the server without change of an encrypted state.

CROSS-REFERENCE TO RELATED APPLICATION (S)

This application claims priority to Korean Patent Application No. 10-2023-0001494 filed on Jan. 5, 2023 and Korean Patent Application No. 10-2023-0032860 filed on Mar. 13, 2023, in the Korean Intellectual Property Office, the entire contents of which are hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present disclosure relates to a secure network communication and, particularly, a secure network communication method and a system therefor by which traffic processing performance can be improved while maintaining the stability of encryption/decryption for secure communication between a client and a server.

2. Description of the Prior Art

In order to implement secure communication between a client and a server, a proxy that detects a malicious code or an anomalous action against communication data between the client and the server may be used. That is, in a client-proxy-server model, a secure channel between a client and a proxy and a secure channel between the proxy and a server may be individually generated for communication between the client and the server.

When double secure channels are generated as described above, a proxy is required to additionally perform encryption and decryption for a packet, and thus the performance of a communication speed may be largely degraded. Moreover, when double secure channels are used, additional security vulnerabilities may be caused thereby.

SUMMARY OF THE INVENTION

An aspect of the present disclosure is to solve the above problem and other problems. Another aspect of the present disclosure is to provide a secure network communication method and a system therefor by which performance degradation caused by two secure channels provided in a client-proxy-server model and additional re-decryption resulting therefrom can be prevented.

Another aspect of the present disclosure is to provide a secure network communication method and a system therefor in which a client, a proxy, and a server share the same one session encryption key so that traffic processing performance can be improved.

Another aspect of the present disclosure is to provide a secure network communication method and a system therefor in which integrity of packet data transmitted or received between a client and a server may be verified using a tag.

Another aspect of the present disclosure is to provide a secure network communication method and a system therefor by which packet decryption performance in a proxy can be effectively improved using multiple cores.

In view of foregoing, an embodiment of the present disclosure provides a secure network communication method using a proxy connecting a client and a server, the method including: receiving, from the client, a session encryption key shared for generation of a secure channel between the client and the server; and when a packet encrypted with the session encryption key and transmitted from the client to the server is received, decrypting the encrypted packet with the session encryption key and analyzing the decrypted packet, or forwarding the encrypted packet to the server without change of an encrypted state.

Another embodiment of the present disclosure provides a proxy including a processor and providing secure network communication between a client and a server, wherein the processor is configured to execute: receiving, from the client, a session encryption key shared for generation of a secure channel between the client and the server; and when a packet encrypted with the session encryption key and transmitted from the client to the server is received, decrypting the encrypted packet with the session encryption key and analyzing the decrypted packet, or forwarding the encrypted packet to the server without change of an encrypted state.

Yet another embodiment of the present disclosure provides a computer-readable storage medium storing instructions configured to, when executed by a processor, cause a device including the processor to implement a particular operation, wherein the particular operation includes: receiving, from the client, a session encryption key shared for generation of a secure channel between the client and the server; and when a packet encrypted with the session encryption key and transmitted from the client to the server is received, decrypting the encrypted packet with the session encryption key and analyzing the decrypted packet, or forwarding the encrypted packet to the server without change of an encrypted state.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings. The same or similar elements are given the same reference numbers regardless of drawing symbols thereof, and redundant description thereof is omitted. The suffixes “module” and “unit” of elements mentioned in the following description are given and used together only for ease of specification writing, and thus do not have any distinguishable meanings or roles. That is, the term “unit” used herein refers to a software element or a hardware element, such as an FPGA or ASIC, and performs some roles. However, the “unit” does not always have a meaning limited to software or hardware. The “unit” may be configured either to be stored in an addressable storage medium or to execute one or more processors. Therefore, the “unit” includes, for example, software elements, object-oriented software elements, class elements or task elements, processes, functions, properties, procedures, sub-routines, segments of a program code, drivers, firmware, micro-codes, circuits, data, database, data structures, tables, arrays, and parameters. Functions provided in elements and “unit”s may be either combined into fewer elements and “unit”s, or distributed into additional elements and “unit”s.

In addition, in describing the embodiments disclosed herein, a detailed description of known relevant technologies will be omitted when it may make the subject matter of the embodiment disclosed herein rather unclear. In addition, the accompanying drawings are merely intended to facilitate understanding of the embodiments disclosed herein and not to restrict the technical spirit disclosed herein. In addition, the accompanying drawings should be understood as covering all modifications, equivalents, or alternatives included in the spirit and scope of the present disclosure.

The present disclosure proposes a secure network communication method and a system therefor by which performance degradation caused by two secure channels provided in a client-proxy-server model and additional re-decryption resulting therefrom can be prevented. In addition, the present disclosure proposes a secure network communication method and a system therefor in which a client, a proxy, and a server share the same one session encryption key so that traffic processing performance can be improved. In addition, the present disclosure proposes a secure network communication method and a system therefor in which integrity of packet data transmitted or received between a client and a server may be verified using a tag. In addition, the present disclosure proposes a secure network communication method and a system therefor by which packet decryption performance in a proxy can be effectively improved using multi cores.

FIG.1is a block diagram illustrating a secure network communication system related to the present disclosure.

Referring toFIG.1, a secure network communication system10related to the present disclosure may include a client C, a server S, and a proxy P.

The proxy P may relay a packet between the client C and the server S, and may perform packet analysis to detect a malicious code or an anomalous action included in each packet. When an anomaly is detected in a communication packet, the proxy P may block or remove the packet and perform various other actions.

In order to access the server S, the client C may perform a transport layer security (TLS) or secure socket layer (SSL) handshake protocol with the proxy P positioned therebetween, and share a first session encryption key, which is randomly generated, with the proxy P. In addition, the proxy P may perform a handshake protocol with the server S on behalf of the client C, and share a second session encryption key, which is randomly generated, with the server S. That is, the proxy P may generate a first secure channel using the first session encryption key with the client C, and generate a second secure channel using the second session encryption key with the server S.

Thereafter, the client C may encrypt a packet to be transmitted to the server S, with the first session encryption key, and transmit the encrypted packet to the proxy P. In this case, the proxy P may decrypt the packet with the first session encryption key, re-encrypt the decrypted packet with the second session encryption key, and transfer the re-encrypted packet to the server S. The proxy P may analyze the packet decrypted with the first session encryption key to detect a malicious code or an anomalous action. Thereafter, the server S may decrypt the encrypted packet by using the second session encryption key.

In addition, in a case where the server S transmits a packet to the client C, the same procedure may be performed reversely. That is, the server S may encrypt a packet with the second session encryption key and transmit the encrypted packet to the proxy P, and the proxy P may decrypt and re-encrypt the packet with the second session encryption key and the first session encryption key, and transmit the re-encrypted packet to the client C. Each of the first session encryption key and the second session encryption key may be a set of multiple keys rather than a single encryption key. Such the secure network communication system10may place the proxy P between the client C and the server S, and generate double secure channels. Accordingly, encryption and decryption of a packet is additionally performed and thus performance may be degraded, and this may be a main reason for delay of a service or data transmission. Moreover, there is a risk of additional security vulnerabilities arising due to double secure channels. In order to solve these problems, hereinafter, the present disclosure proposes a client-proxy-server model using one secure channel and one session encryption key.

FIG.2is a block diagram illustrating a secure network communication system according to an embodiment of the present disclosure.

Referring toFIG.2, a secure network communication system100according to an embodiment of the present disclosure may include a client110, a server120, and a proxy130. Here, the proxy130may be called a middlebox. The client110may perform a handshake protocol with the server120to access the server120, and the client110may share a randomly generated session encryption key with the server120. The proxy130may relay a handshake packet between the client110and the server120, and may simply relay the packet with no direct involvement.

Thereafter, the proxy130may receive, from the client110, the session encryption key shared for generation of a secure channel between the client110and the server120. That is, the client110, the server120, and the proxy130may share the same session encryption key, and encrypt and decrypt a packet with one session encryption key. The proxy130may receive the session encryption key from the client110through a separate secure channel. For example, the proxy130may generate a new secure channel, such as a TLS channel, between the client110and the proxy130, and then receive the session encryption key therethrough.

Thereafter, the proxy130may receive a packet transmitted to the server130from the client110, and the packet may have been encrypted with the session encryption key. The proxy130stores the same session encryption key, and thus may decrypt the encrypted packet with the session encryption key, and analyze the decrypted packet. In addition, the proxy130may forward the received packet in an encrypted state to the server120. That is, the proxy130may transmit the encrypted packet received from the client110, to the server120without change. In this case, unlike the proxy inFIG.1, the proxy130may omit an operation of encrypting a decrypted packet with a new encryption key again, and thus faster processing is possible.

Specifically, in a case where the proxy130supports an intrusion detection system (IDS), the proxy130may forward an encrypted packet to the server120first without change of the encrypted state. Thereafter, the proxy130may decrypt the encrypted packet with the session encryption key, and analyze the decrypted packet. That is, since intrusion detection is for detecting an anomalous action, packet blocking may not be performed. Therefore, an encrypted packet is preferentially forwarded, and then packet analysis may be performed.

Meanwhile, in a case where the proxy130supports an intrusion preventing system (IPS), the proxy130may first decrypt an encrypted packet with the session encryption key and then analyze the packet. Thereafter, when analysis of packets is completed, the proxy130may forward the encrypted packet to the server120without change of the encrypted state. Here, when a result of analyzing the decrypted packet indicates an abnormal action not being detected, the proxy130may forward the encrypted packet to the server120. However, when an abnormal action is detected, the proxy130may block forwarding of the encrypted packet. That, when a malicious code or an anomalous action is detected in a packet, the proxy130supporting the IPS may block the packet from being transmitted to the server120.

Additionally, the proxy130may perform a function of inspecting only a part of a received packet. For example, the proxy130may inspect only initial 128 KB of each packet, and in this case, may omit packet decryption and analysis, and perform only encrypted packet forwarding.

According to various embodiments of the present disclosure, the client110may further include a separate agent. That is, the client110may further include a dedicated agent A for extracting a session encryption key shared with the server120, and transmitting same to the proxy130.

As illustrated inFIG.3, the client110may perform a TLS handshake with the server120, and generate a session encryption key shared with the server120accordingly. The client110may generate a session encryption key log for the shared session encryption key. The client110may write the session encryption key log in a network security service (NSS) format. However, the disclosure is not limited thereto, and it is also possible to write the session encryption key log in various formats other than the NSS format. Thereafter, the agent A may access the session encryption key log to obtain log information of the session encryption key, and may calculate the session encryption key shared between the client110and the server120, based on the log information. According to an embodiment, the agent A may use “inotify ( )” to obtain the log information. Thereafter, the agent A may transmit the calculated session encryption key to the proxy130. Additionally, according to an embodiment, the client110may be a web browser, and it is also possible to modify the web browser itself rather than including a separate agent, so as to implement a received session encryption key to be transmitted to the proxy130.

As described above, a secure network communication system according to an embodiment of the present disclosure may enable a client, a proxy, and a server to share the same one session encryption key, thereby omitting a packet re-encryption process by the proxy and accordingly implementing improvement of communication performance. In addition, the secure network communication system may generate one secure channel between the client, the proxy, and the server, thereby removing security vulnerabilities which may occur when conventional double secure channels are used.

FIG.4is a diagram briefly illustrating an operation of a proxy according to an embodiment of the present disclosure.

Referring toFIG.4, the proxy130may first buffer packets transmitted and received between the client110and the server120, in a sequence. The proxy130may recombine received TCP payloads. Thereafter, the proxy130may receive a session encryption key from the agent A of the client110, and decrypt each TLS record. The each TLS record may be a unit of encryption or decryption by the client110or the server120. Thereafter, the proxy130may perform analysis based on decrypted plaintext data, and may include a separate analysis module135for analysis according to some embodiments. The analysis module135may perform an IDS or IPS, and various other algorithms for detection of a malicious code or an anomalous action may be applied.

FIG.5andFIG.6are graphs illustrating the performance of a secure network communication system according to an embodiment of the present disclosure. A TLS-TLS proxy is the secure communication system ofFIG.1, and ThunderTLS corresponds to the secure communication system ofFIG.2.

Referring toFIG.5, ThunderTLS has a throughput of 18.16 Gbps in a case of one core, and a throughput of 32.40 Gbps in a case of two cores. However, the TLS-TLS proxy has a throughput of 2.53 Gbps in a case of one core, and a throughput of 5.11 Gbps in a case of two cores. Therefore, in terms of throughput, it may be noted that the performance of ThunderTLS is exceptionally superior. In addition, referring toFIG.6, even in terms of persistent connection, it may be noted that the throughput of ThunderTLS is remarkably outstanding compared to that of the TLS-TLS proxy.

FIG.7is a flowchart illustrating a secure network communication method according to an embodiment of the present disclosure. Each operation ofFIG.7may be performed by the proxy130of the secure network communication system100described above. In the illustrated flowchart, the secure network communication method is divided into multiple operations. However, at least some operations may be performed in a changed order, may be performed in combination with other operations, may be omitted, may be divided into detailed operations, or may be performed together with one or more operations not illustrated.

Referring toFIG.7, the proxy130may relay a handshake packet for sharing a session encryption key, between the client110and the server120(operation S710). The client110may perform a handshake with the server120to access the server120, and the client110may share a randomly generated session encryption key with the server120. The proxy130may relay a corresponding handshake packet between the client110and the server120, and may simply relay the packet with no direct involvement.

Thereafter, the proxy130may receive, from the client110, the session encryption key shared for generation of a secure channel between the client110and the server120(operation S720). That is, the proxy130may share the same session encryption key as that shared between the client110and the server120. According to some embodiments, the proxy130may receive the session encryption key from the client110through a separate secure channel, and may generate a new secure channel, such as a TLS channel, with the client110and receive the session encryption key therethrough.

The proxy130may receive an encrypted packet from the client110, and in this case, the proxy130may decrypt the encrypted packet with the session encryption key and analyze the decrypted packet, or may forward the encrypted packet to the server120without change of the encrypted state (operation S730). That is, a packet received from the client110may have been encrypted with the session encryption key, and the same session encryption key is stored in the proxy130. Therefore, the proxy130may use the session encryption key to decrypt the packet. Thereafter, the proxy130may analyze the decrypted packet. In addition, the proxy130may forward the received packet in an encrypted state to the server120. The proxy130may transmit the encrypted packet received from the client110, to the server120without change, and thus can omit an operation of encrypting a decrypted packet with a new encryption key again.

Meanwhile, in a case where the proxy130supports intrusion detection (IDS), the proxy130may forward the encrypted packet to the server120first without change of the encrypted state, then decrypt the encrypted packet with the session encryption key, and analyze the decrypted packet.

On the other hand, in a case where the proxy supports intrusion prevention (IPS), the proxy may first decrypt the encrypted packet with the session encryption key and then analyze the decrypted packet. Thereafter, when analysis of packets is completed, the proxy may forward the encrypted packet to the server without change of the encrypted state. That is, when a result of analyzing the decrypted packet indicates an abnormal action not being detected, the proxy may forward the encrypted packet to the server. However, when an abnormal action is detected, the proxy may block forwarding of the encrypted packet.

In some embodiments, a separate agent may be further included in the client110, and the proxy130may receive the session encryption key from the agent in the client110. The client110may generate a session encryption key log for the session encryption key shared with the server120, and the agent may obtain log information on session encryption keys shared between the server120and the client110from session encryption key logs. Thereafter, the agent may extract a session encryption key between the server120and the client110from the log information, and transmit the extracted session encryption key to the proxy130.

As described above, a secure network communication method according to an embodiment of the present disclosure may enable a client, a proxy, and a server to share the same one session encryption key, thereby omitting a packet re-encryption process by the proxy and accordingly implementing improvement of communication performance. In addition, the secure network communication method may generate one secure channel between the client, the proxy, and the server, thereby removing security vulnerabilities which may occur when conventional double secure channels are used.

The client-proxy-server model110proposed in the present disclosure may verify the integrity of packet data (or called “session data”) transmitted and received between the client110and the server120, by using a tag. Hereinafter, a packet data integrity verification method in the client-proxy-server model110will be described in detail.

FIG.8is a diagram illustrating a packet data integrity verification method according to an embodiment of the present disclosure.

Referring toFIG.8, the secure network communication system100according to the present disclosure may include the client110, the server120, and the proxy130.

The client110may generate a secure channel between the client110and the server120through a handshake with the server120, and share a session encryption key810with the server120.

The client110may generate a separate secure channel for the proxy130, and provide the session encryption key810to the proxy130through the secure channel. Accordingly, the client110, the server120, and the proxy130may share the same session encryption key810, and encrypt and decrypt packet data with the one session encryption key810. Hereinafter, in the present embodiment, for convenience of explanation, a packet data having not been encrypted or decrypted packet data is called “packet plaintext data”, and encrypted packet data is called “packet ciphertext data”.

The client110may encrypt packet plaintext data (plaintext)820to be transmitted to the server120, with the session encryption key810thereby generating packet ciphertext data (ciphertext)830. The client110may generate a tag840for verifying the integrity of packet data, by using the packet plaintext data820and the session encryption key810. The tag840may be a kind of hash value.

The client110may combine the tag840with the packet ciphertext data830and transmit the tag840and the packet ciphertext data830to the proxy130.

The proxy130may forward the packet ciphertext data830combined with the tag840to the server120.

The proxy130may decrypt the packet ciphertext data830with the session encryption key810to obtain the packet plaintext data820. In addition, the proxy130may use the packet ciphertext data830and the session encryption key810to obtain a tag845.

The proxy130may compare the tag840received from the client110with the tag845obtained using the session encryption key810, to verify the integrity of the packet data.

The server120may receive the packet ciphertext data830combined with the tag840from the proxy130. Similarly, the server120may decrypt the packet ciphertext data830with the session encryption key810to obtain the packet plaintext data820. In addition, the server120may use the packet ciphertext data830and the session encryption key810to obtain the tag845.

The server120may compare the tag840received from the proxy130with the tag845obtained using the session encryption key810, to verify the integrity of the packet data.

As described above, the client-proxy-server model100according to the present disclosure may use a tag generated using a session encryption key to verify the integrity of packet data transmitted and received among the client110, the proxy130, and the server120.

However, when the proxy130forges/falsifies packet data in the structure of the model100, the server is unable to completely ensure the integrity of the packet data even with a tag described above. Therefore, a packet data integrity verification method for solving this problem is required.

FIG.9is a diagram illustrating a packet data integrity verification method according to another embodiment of the present disclosure.

Referring toFIG.9, the secure network communication system100according to the present disclosure may include the client110, the server120, and the proxy130.

The client110may generate a secure channel between the client110and the server120through a handshake with the server120, and share a session encryption key1110with the server120. The client110may share, with the server120, a tag encryption key920for verifying the integrity of packet data, together with the session encryption key910.

The client110may generate a separate secure channel for the proxy130, and provide only the session encryption key910to the proxy130through the secure channel. Accordingly, the client110, the server120, and the proxy130may share the same session encryption key910.

The client110may encrypt packet plaintext data930to be transmitted to the server120, with the session encryption key910thereby generating packet ciphertext data940. The client110may generate a first tag950for verifying the integrity of packet data, by using the packet plaintext data930and the session encryption key910. In addition, the client110may generate a second tag960for verifying the integrity of the packet data, by using the packet plaintext data930and the tag encryption key920. The first and second tags950and960may be a kind of hash value.

The client110may combine the first and second tags950and960with the packet ciphertext data940, and transmit the first and second tags950and960and the packet ciphertext data940to the proxy130.

The proxy130may forward the packet ciphertext data940combined with the first and second tags950and960to the server120.

The proxy130may decrypt the packet ciphertext data940with the session encryption key910to obtain the packet plaintext data930. In addition, the proxy130may use the packet ciphertext data940and the session encryption key910to obtain a first tag955. However, the proxy130does not have the tag encryption key920, and thus is unable to obtain a second tag965.

The proxy130may compare the first tag950received from the client110with the first tag955obtained using the session encryption key910, to verify the integrity of the packet data.

The server120may receive the packet ciphertext data940combined with the first and second tags950and960from the proxy130. Similarly, the server120may decrypt the packet ciphertext data940with the session encryption key910to obtain the packet plaintext data930. In addition, the server120may use the packet ciphertext data940and the session encryption key910to obtain the first tag955.

The server120may compare the first tag950received from the proxy130with the first tag955obtained using the session encryption key910, to primarily verify the integrity of the packet data.

Thereafter, the server120may use the packet ciphertext data940and the tag encryption key920to obtain the second tag965. The server120may compare the second tag960received from the proxy130with the second tag965obtained using the tag encryption key920, to secondarily verify the integrity of the packet data. That is, the server120may use the second tag965generated using the tag encryption key920, to identify whether the packet data is forged/falsified by the proxy130.

As described above, the client-proxy-server model100according to the present disclosure may generate an additional tag by using a tag encryption key shared only between the client and the server, combine the additional tag with packet ciphertext data, and transmit the additional tag and the packet ciphertext data, so that the model can verify in real time whether packet data is forged/falsified by the proxy positioned between the client and the server.

<Packet Decryption Method in Proxy>

The proxy130of the client-proxy-server model100according to the present disclosure is required to evenly use several cores so as to efficiently perform packet decryption. To this end, the proxy130may perform load distribution processing between multiple cores by using receive-side scaling (RSS) that is a network driver technology. That is, such RSS is a technique that hashes four-tuple information (source IP, source port, destination IP, and destination port) of a TCP/TLS session, and may perform a role of evenly distributing loads to multiple cores by mapping a particular session to a particular CPU core.

However, the client-proxy-server model100according to the present disclosure establishes a secure channel for packet transmission/reception through a handshake between the client110and the server120, and forms a separate secure channel for transmitting/receiving a session encryption key between the client110and the proxy130. The proxy130of the model100receives a session encryption key through a separate secure channel, and thus has an RSS hash value different from that of a secure channel for packet reception. That is, the proxy recognizes a communication session for reception of a packet to be different from a communication session for reception of a session encryption key, and thus allocates the packet and the session encryption key to different CPU cores.

For example, as illustrated inFIG.10, when a session encryption key is received through a secure channel configured between the client110and the proxy130, the proxy130may assign the session encryption key to CPU core11020_1by using a network interface card (NIC)1010. Thereafter, when a packet related to a corresponding session is received through a secure channel established between the client110and the server120, the proxy130may allocate the packet to CPU core21020_2by using the NIC1010. In this case, CPU core21020_2does not have a session encryption key for decrypting the packet, and thus is required to bring the session encryption key from CPU core11020_1through a separate key transfer mechanism. Therefore, packet decryption performance in the proxy is largely degraded. Therefore, a method for improving packet decryption performance by efficiently using multi cores of a proxy is required.

FIG.11andFIG.12are diagrams illustrating a packet decryption method according to an embodiment of the present disclosure. The packet decryption method according to the present embodiment may be performed by the proxy130. In the illustrated flowchart, a packet decryption method is divided into multiple operations. However, at least some operations may be performed in a changed order, may be performed in combination with other operations, may be omitted, may be divided into detailed operations, or may be performed together with one or more operations not illustrated.

Referring toFIG.11andFIG.12, the proxy130according to an embodiment of the present disclosure may include one network interface unit1210and multiple CPU cores1220_1-1220_N.

The network interface unit1210may provide a communication interface for the client110and the server120. The network interface unit1210may perform load distribution processing between the multiple cores by using receive-side scaling (RSS). The network interface unit1210may be a network interface card (NIC).

The multiple CPU cores1220_1-1220_N may include one leading core and multiple working cores. That is, one1220_1of the multiple CPU cores1220_1-1220_N may be configured as a leading core, and the remaining cores1220_2-1220_N may be configured as working cores. Here, the leading core1220_1may perform a function of managing a session encryption key, and the working cores1220_2-1220_N may perform a function of decrypting a packet by using the session encryption key. Hereinafter, in the present embodiment, an example in which CPU core1is a leading core will be described.

The network interface unit1210may receive a session encryption key shared between the client110and the server120from the client110when a communication session is configured between the client110and the server120(operation S1110). The client110may transmit the session encryption key through a separate secure channel (e.g., TLS channel) to the network interface unit1210.

The network interface unit1210may transfer the session encryption key received from the client110, to a leading core (operation S1120). For example, as illustrated inFIG.12, the network interface unit1210may transfer the session encryption key to core11220_1configured as a leading core.

A FlowDirect rule may be installed in the network interface unit1210so that, every time a communication session is configured between the client110and the server120, a session encryption key of the communication session is always transferred to the leading core. Alternatively, when the client transmits a session encryption key to a particular port of the proxy, the network interface unit1210may always transfer the session encryption key received through the particular port, to the leading core.

The leading core1220_1may store the session encryption key received from the network interface unit1210, in a global table1230(operation S1130). The leading core1220_1may operate as a TLS server.

The global table1230may be a session encryption key queue for sequentially storing multiple session encryption keys. The global table1230may be implemented in a storage (not illustrated) of the proxy130.

Thereafter, the network interface unit1210may receive an encrypted packet from the client110through a secure channel configured between the client110and the server120(operation S1140).

The network interface unit1210may transfer the packet received from the client110, to one of the multiple working cores (operation S1150). The network interface unit1210may determine a working core to which the packet is to be allocated, by using RSS. For example, as illustrated inFIG.12, the network interface unit1210may transfer the encrypted packet to core31220_3that is one of the multiple working cores.

The working core1220_3may access the global table1230to detect a session encryption key to be used to decrypt the packet (operation S1160). As another embodiment, the working core1220_3may periodically access to the global table1230to search for a session encryption key related to a communication session being managed by the working core1220_3.

The working core1220_3may copy the detected session encryption key and store the copied session encryption key in a local table (not illustrated) of the working core1220_3(operation S1170). The local table may be a session encryption key queue for storing one or more session encryption keys. The local table may be implemented in each CPU core.

The working core1220_3may use the session encryption key stored in the local table to decrypt the encrypted packet (operation S1180). The working core1220_3may perform a packet analysis function or a packet forwarding function. As described above, in the packet decryption method according to an embodiment of the present disclosure, one of multiple CPU cores is configured as a leading core that manages a session encryption key, and the remaining cores other than the leading core are configured as working cores, so that packet decryption performance of the proxy can be improved in proportion to the number of the working cores. However, the packet decryption method is problematic in that a leading core performs only a function of managing a session encryption key, and thus the resources of the leading core are wasted.

FIG.13andFIG.14are diagrams illustrating a packet decryption method according to another embodiment of the present disclosure. The packet decryption method according to the present embodiment may be performed by the proxy130. In the illustrated flowchart, the packet decryption method is divided into multiple operations. However, at least some operations may be performed in a changed order, may be performed in combination with other operations, may be omitted, may be divided into detailed operations, or may be performed together with one or more operations not illustrated.

Referring toFIG.13andFIG.14, the proxy130according to another embodiment of the present disclosure may include one network interface unit1410and multiple CPU cores1420_1-1420_N.

The network interface unit1410may provide a communication interface for the client110and the server120. The network interface unit1410may perform load distribution processing between the multiple cores by using receive-side scaling (RSS). The network interface unit1410may be a smart network interface card (smart-NIC) having computing resources unlike the network interface unit1210ofFIG.12. The smart-NIC1410may include a data processing unit (DPU).

The multiple CPU cores1420_1-1420_N may perform a function of decrypting a packet by using a session encryption key. In addition, the multiple CPU cores1420_1-1420_N may analyze a decrypted packet to detect a malicious code or an anomalous action.

The network interface unit1410may receive a session encryption key and session connection information from the client110when a communication session is configured between the client110and the server120(operation S1310). The client110may transmit the session encryption key and the session connection information through a separate secure channel (e.g., TLS channel) to the network interface unit1410. The network interface unit1410may operate as an endpoint TLS server.

The session connection information is information for connecting a communication session between the client110and the server120, and may include client IP information, client port information, server IP information, and server port information. The session connection information may be called “four-tuple information”.

The network interface unit1410may store the session connection information received from the client110, in an internal memory (not illustrated) (operation S1320). The network interface unit1410may store the session connection information in associated with the session encryption key. The network interface unit1410may transfer the session encryption key received from the client110, to one1420_2of the multiple CPU cores (operation S1330). For example, as illustrated inFIG.14, the network interface unit1410may transfer the session encryption key to core21420_2that is one of the multiple CPU cores.

The network interface unit1410may determine a CPU core to which the session encryption key is to be assigned, by using RSS. When the CPU core to which the session encryption key is to be assigned is determined, the network interface unit1410may transfer the session encryption key by using a user datagram protocol (UDP) or a remote direct memory access (RDMA) protocol.

The network interface unit1410may store, in the internal memory, information on the CPU core1420_2to which the session encryption key has been assigned. The CPU core1420_2may store the session encryption key received from the network interface unit1410, in an internal memory (not illustrated).

Thereafter, the network interface unit1410may receive an encrypted packet from the client110through a secure channel configured between the client110and the server120(operation S1340). The packet may include the session connection information (i.e., four-tuple information) between the client110and the server120.

The network interface unit1410may detect the session connection information of the received packet (operation S1350).

The network interface unit1410may detect information on a session encryption key corresponding to the detected session connection information, based on the session connection information pre-stored in the internal memory, and detect information on a CPU core to which the session encryption key has been assigned, based on the detected information (operation S1360). For example, as illustrated inFIG.14, the network interface unit1410may detect to CPU core21420_2to which the session encryption key has been assigned, based on the four-tuple information stored in the internal memory.

The network interface unit1410may transfer the encrypted packet to the detected CPU core1420_2(operation S1370). Accordingly, the CPU core1420_2may sequentially receive the session encryption key and the packet related to the communication session configured between the client110and the server120.

The CPU core1420_2may decrypt the encrypted packet by using the previously received session encryption key (operation S1380). The CPU core1420_2may perform a packet analysis function or a packet forwarding function.

As described above, in the packet decryption method according to another embodiment of the present disclosure, a smart-NIC is used to transmit, to the same CPU core, a session encryption key and a packet related to a communication session configured between the client110and the server120, so that packet decryption performance of the proxy can be improved in proportion to the number of multiple CPU cores.FIG.15is a block diagram illustrating a configuration of a computing device according to an embodiment of the present disclosure.

Referring toFIG.15, a computing device1500according to an embodiment of the present disclosure may include at least one processor1510, a computer-readable storage medium1520, and a communication bus1530. The computing device1500may be one or more components included in the proxy130or elements configuring the proxy130.

The processor1510may cause the computing device1500to operate according to an illustrative embodiment mentioned above. For example, the processor1510may execute one or more programs1525stored in the computer-readable storage medium1520. The one or more programs may include one or more computer-executable instructions, and the computer-executable instructions may be configured to, when executed by the processor1510, cause the computing device1500to perform operations according to an illustrative embodiment. The computer-readable storage medium1520may be configured to store a computer-executable instruction or a program code, program data, and/or other proper types of information. The programs1525stored in the computer-readable storage medium1520include a set of instructions executable by the processor1510. In an embodiment, the computer-readable storage medium1520may be a memory (a volatile memory such as a random access memory, a non-volatile memory, or a proper combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other types of storage mediums capable of being accessed by the computing device1500and storing desired information, or a proper combination thereof.

The communication bus1530may interconnect various other components of the computing device1500, including the processor1510and the computer-readable storage medium1520.

The computing device1500may further include one or more input/output interfaces1540that provide an interface for one or more input/output devices1550, and one or more network communication interfaces1560. The input/output interface1540and the network communication interface1560are connected to the communication bus1530.

The input/output device1550may be connected to other components of the computing device1500through the input/output interface1540. An example of the input/output device1550may include input devices, such as a pointing device (a mouse or a trackpad), a keyboard, a touch input device (a touchpad or a touch screen), a voice or sound input device, various types of sensor devices, and/or an image capturing device, and/or output devices, such as a display device, a printer, a speaker, and/or a network card. An example of the input/output device1550may be included in the computing device1500as a component configuring the computing device1500, or may be connected to the computing device1500as a separate device distinguished from the computing device1500.

The effects of a secure network communication method and a system therefor according to embodiments of the present disclosure are as follows.

According to at least one of the embodiments of the present disclosure, a client, a proxy, and a server share the same one session encryption key, and thus additional re-encryption of a packet can be omitted and communication performance can be extraordinarily improved accordingly.

In addition, according to at least one of the embodiments of the present disclosure, one secure channel is established between a client, a proxy, and a server, so that security vulnerabilities which may occur when conventional double secure channels are used can be removed.

In addition, according to at least one of the embodiments of the present disclosure, a tag encryption key shared only between a client and a server may be used to generate an additional tag, and the additional tag is combined with packet ciphertext data and is then transmitted together therewith, so that whether packet data is forged/falsified can be verified in real time by a proxy positioned between the client and the server.

In addition, according to at least one of the embodiments of the present disclosure, one of multiple CPU cores is configured as a leading core that manages a session encryption key, and the remaining cores other than the leading core are configured as working cores, so that packet decryption performance of the proxy can be improved in proportion to the number of the working cores.

In addition, according to at least one of the embodiments of the present disclosure, a smart-NIC is used to transmit, to the same CPU core, a session encryption key and a packet related to a communication session configured between a client and a server so that packet decryption performance of a proxy can be improved in proportion to the number of multiple CPU cores.

However, effects acquirable by a secure network communication method and a system therefor according to embodiments of the present disclosure are not limited to the effects described above, and other effects that have not been mentioned may be clearly understood by a person who has common knowledge in the technical field to which the present disclosure belongs, from the following description.

The present disclosure described above can be implemented as a computer-readable code in a medium having a program recorded thereon. A computer-readable medium may continuously store or temporarily store a computer-executable program to be executed or downloaded. Moreover, the medium may be various recording means or storage means in the form of a single hardware or a combination of multiple hardware, and is not limited to a medium directly connected to a computer system, but may be dispersed on a network. Examples of the medium may include a magnetic medium, such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium, such as CD-ROM and DVD, a magneto-optical medium, such as a floptical disk, and a medium configured to store a program instruction, which includes a ROM, a RAM, flash memory, and the like. Furthermore, examples of other media may be recording media or storage media managed by an app store that distributes applications, or a site or server that supplies or distributes various other software. Accordingly, the aforementioned detailed description should not be construed as restrictive in all terms and should be exemplarily considered. The scope of the present disclosure should be determined by rational construing of the appended claims and all modifications within an equivalent scope of the present disclosure are included in the scope of the present disclosure.

The present disclosure is not limited by the above embodiments and the appended drawings. It will be apparent to those skilled in the art that substitutions, modifications, and changes of elements according to the present disclosure can be made within the scope without departing from the technical spirit of the present disclosure.