Remote desktop connection method, device and system based on remote desktop protocol
By introducing a control component and a target proxy server into the remote desktop protocol, the system identifies and bridges cross-security domain connections, transmitting only image data streams. This solves the problems of poor data controllability and security in existing technologies, achieving high security and controllability for cross-security domain connections.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- 武汉启云方科技有限公司
- Filing Date
- 2026-01-06
- Publication Date
- 2026-05-01
Smart Images

Figure CN121967397A_ABST
Abstract
Description
Remote desktop connection method, device and system based on remote desktop protocol Technical Field
[0001] This application relates to the field of computer technology, and in particular to a remote desktop connection method, apparatus and system based on a remote desktop protocol. Background Technology
[0002] Microsoft Remote Desktop Protocol (RDP) is a multi-channel protocol where each independent virtual channel can transmit device communication and presentation data from a remote server, as well as encrypted mouse and keyboard data from the client. On the server, RDP uses its own video driver to construct presentation information into network packets via the RDP protocol and then sends them over the network to the client. On the client, RDP receives the presentation data, interprets the packets into corresponding Microsoft Windows Graphics Device Interface (GDI) executable instructions, and invokes them through the Application Programming Interface (API). For input paths, client mouse and keyboard events are redirected from the client to the server. On the server, RDP uses its own keyboard and mouse drivers to receive these keyboard and mouse events.
[0003] In existing technologies, when the RDP protocol is applied to cross-security domain access scenarios, it allows servers and clients to decide independently whether to use clipboard, storage media, and other data transfer functions. However, because there is no management of data transfer across different security domains, attackers may steal critical files or implant malware. Furthermore, administrators find it difficult to accurately detect and restrict the specific data types flowing within a single RDP connection, thus posing a serious security risk and resulting in poor data controllability and security. Summary of the Invention
[0004] This application provides a remote desktop connection method, apparatus, and system based on a remote desktop protocol, which features strong communication data security and controllability.
[0005] In a first aspect, this application provides a remote desktop connection method based on a remote desktop protocol executed by a control component, comprising: determining, based on a remote desktop connection request, whether the remote desktop connection between a target client and a target remote desktop is a cross-security domain connection; if the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, determining a target proxy server for connecting the target client and the target remote desktop; establishing a remote desktop connection between the control component and the target proxy server, and instructing the target proxy server to establish a remote desktop connection with the target remote desktop, thereby bridging the target client and the target remote desktop via the target proxy server; acquiring an image data stream transmitted by the target proxy server to the target client, and sending the image data stream to the target client, wherein the image data stream is data that the target proxy server allows to pass through and forward to the target client during data transmission, provided that all other communication data except the image data stream in the remote desktop protocol is blocked.
[0006] This application allows for the determination of whether a remote desktop connection between a target client and a target remote desktop is a cross-security domain connection. Upon determining that the connection is cross-security domain, the application identifies the target proxy server used to connect the target client and the target remote desktop, thereby establishing a remote desktop connection between the control component and the target proxy server. This bridges the target client and the target remote desktop via the target proxy server, enabling the acquisition and transmission of image data streams from the target proxy server to the target client. Because all communication data passes through the target proxy server during a cross-security domain remote desktop connection, the target proxy server provides unified management of the communication data, resulting in strong controllability. Furthermore, during a cross-security domain remote desktop connection, the control component can only receive the image data stream transmitted after the target proxy server has blocked all communication data except for the image data stream, thus preventing the leakage of other communication data and enhancing security.
[0007] In one possible implementation of the first aspect, before determining whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the remote desktop connection request, the method further includes: authenticating the user in response to an access request initiated by the user through the target client to the control component; after successful authentication, determining whether two-factor authentication is required based on preset risk control rules; if required, guiding the user to complete at least one two-factor authentication, so as to respond to the access request to determine the target proxy server after successful authentication of at least one two-factor authentication. Using this application can improve the accuracy of user authentication and ensure that remote desktop connection requests are not forged by other devices or personnel, thus further enhancing the security of remote desktop connections. Furthermore, this application can flexibly determine whether two-factor authentication is required based on risk control rules, and can also flexibly select the two-factor authentication method, making it more applicable.
[0008] In one possible implementation of the first aspect, determining whether a remote desktop connection between a target client and a target remote desktop is a cross-security domain connection based on a remote desktop connection request includes: obtaining first communication information of the target client and second communication information of the target remote desktop based on the remote desktop connection request; and determining whether a remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the first and second communication information. Using this application, the first and second communication information can accurately identify whether a remote desktop connection crosses different security domains. The acquisition methods for the first and second communication information are simple, and the determination efficiency is high.
[0009] In one possible implementation of the first aspect, the first communication information includes at least the first communication address of the target client, and the second communication information includes at least the second communication address of the target remote desktop. Determining whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the first and second communication information includes: determining whether the first and second communication addresses belong to the same predefined communication address segment based on the first communication address of the target client and the second communication address of the target remote desktop; and determining that the remote desktop connection is a cross-security domain connection if the first and second communication addresses do not belong to the same predefined communication address segment. Using this application, the control component can classify the security domain levels of the target client and the target remote desktop in real time, which is applicable to remote desktop connection scenarios where the security domain levels of the first and second communication addresses are not predefined, further improving applicability.
[0010] In one possible implementation of the first aspect, the first communication information includes at least the first communication address of the target client, and the second communication information includes at least the second communication address of the target remote desktop client. Determining whether the remote desktop connection between the target client and the target remote desktop client is a cross-security domain connection based on the first and second communication information includes: obtaining the first security domain level corresponding to the first communication address from the data storage space based on the first communication address, and obtaining the second security domain level corresponding to the second communication address based on the second communication address; if the first security domain level and the second security domain level are detected to be different, determining that the remote desktop connection is a cross-security domain connection. Using this application, the first and second security domain levels can be directly retrieved from the data storage space using the first communication address of the target client and the second communication address of the target remote desktop client, thereby saving time in real-time determination of the first and second security domain levels and thus improving the acquisition speed of the first and second security domain levels.
[0011] In one possible implementation of the first aspect, determining the target proxy server for connecting the target client and the target remote desktop includes: obtaining the load and / or network latency of each proxy server in the proxy server pool; and determining the target proxy server for connecting the target client and the target remote desktop from the proxy server pool based on the load and / or network latency of each proxy server. By employing this application, it can be ensured that the target proxy server used for remote desktop connection has sufficient computing resources and good network performance, and can flexibly adapt to the actual needs of different application scenarios, thereby ensuring the stability of the remote desktop connection and further improving its applicability.
[0012] In one possible implementation of the first aspect, after determining the proxy server for connecting the target client and the target remote desktop, the method further includes: returning the address information of the target proxy server to the target client and notifying the target proxy server of a remote desktop connection request from the target client to the target remote desktop, thereby triggering the target proxy server to receive the remote desktop connection request. By using this application, by returning the address information of the target proxy server to the target client, the target client can accurately establish a remote desktop connection with the target proxy server. Furthermore, by notifying the target proxy server, the target proxy server can prepare for the connection before the target client initiates the remote desktop connection, thereby improving the connection efficiency of the remote desktop connection.
[0013] In one possible implementation of the first aspect, establishing a remote desktop connection between the control component and the target proxy server includes: encrypting a remote desktop connection request obtained from a target client to obtain an encrypted remote desktop connection request; initiating the encrypted remote desktop connection request to the target proxy server based on the address information of the target proxy server, thereby triggering the target proxy server to respond to the encrypted remote desktop connection request to establish a remote desktop connection between the control component and the target proxy server when the authorization validity verification of the encrypted remote desktop connection request passes. By encrypting the remote desktop connection request, this application prevents the leakage of critical information in the remote desktop connection request, thereby further enhancing the security of the remote desktop connection.
[0014] In one possible implementation of the first aspect, instructing the target proxy server to establish a remote desktop connection with the target remote desktop client includes: triggering the target proxy server to initiate a standard remote desktop connection request to the target remote desktop client, so that after the target remote desktop client verifies the identity of the target proxy server, the target remote desktop client triggers a response and accepts the standard remote desktop connection. By employing this application, since the remote desktop connection with the target remote desktop client is not initiated directly by the target client, but rather by instructing the target proxy server to initiate a standard remote desktop connection request, the target proxy server can bridge the target client and the target remote desktop client. This allows the target proxy server to uniformly manage remote desktop connections, resulting in strong security and controllability.
[0015] In one possible implementation of the first aspect, the image data stream is carried in a data packet belonging to the graphics update channel; the acquisition of the image data stream transmitted by the target proxy server to the target client and the forwarding of the image data stream to the target client includes: triggering the target proxy server to parse a first remote desktop protocol data packet from the target remote desktop to obtain data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel; receiving the data packets belonging to the graphics update channel transmitted by the target proxy server to obtain the image data stream based on the data packets belonging to the graphics update channel, and forwarding the image data stream to the target client, wherein the data packets belonging to the graphics update channel are data packets that the target proxy server allows to pass and forward to the target client after discarding data packets belonging to the clipboard channel and data packets belonging to the device mapping channel. By employing this application, since the data packets belonging to the graphics update channel require a control component to parse, the target client without a control component cannot obtain the image data stream based on the data packets belonging to the graphics update channel, thus further improving the security of communication data and preventing communication data leakage.
[0016] In one possible implementation of the first aspect, after bridging the target client and the target remote desktop via the target proxy server, the method further includes: receiving a second remote desktop protocol data packet generated by the target client during the remote desktop connection process between the target client and the target remote desktop, and transmitting the second remote desktop protocol data packet to the target proxy server. By employing this application, by transmitting the second remote desktop protocol data packet to the target proxy server, communication data during the remote desktop connection process can be uniformly managed through the target proxy server, thereby increasing the controllability and traceability of communication data.
[0017] Secondly, this application provides a remote desktop connection method based on a remote desktop protocol executed by a target proxy server, comprising: receiving a remote desktop connection request transmitted by a control component; establishing a remote desktop connection between the target proxy server and the control component based on the remote desktop connection request; and establishing a remote desktop connection between the target proxy server and a target remote desktop client to bridge the target client and the target remote desktop client; and preventing the target remote desktop client from transmitting all communication data other than the image data stream in the remote desktop protocol to the control component during data transmission. Using this application, a remote desktop connection request can be received through a target proxy server, thereby establishing a remote desktop connection between the target proxy server and the control component, as well as a remote desktop connection between the target proxy server and the target remote desktop client, based on the remote desktop connection request. This prevents the target remote desktop client from transmitting any communication data other than the image data stream in the remote desktop protocol to the control component during data transmission. The unified management of communication data by the target proxy server ensures strong controllability of the communication data. Furthermore, it avoids the leakage of communication data other than the image data stream, thus providing strong security.
[0018] In one possible implementation of the second aspect, before receiving the remote desktop connection request transmitted by the control component, the method further includes: when the control component notifies of a remote desktop connection request from the target client to the target remote desktop, opening a receiving channel for the remote desktop connection request to receive the remote desktop connection request based on the receiving channel. By employing this application, by opening the receiving channel of the target proxy server in advance, reception failures due to the receiving channel not being open can be avoided, and the waiting time for opening the receiving channel during the remote desktop connection process can be saved, thereby improving the efficiency of the remote desktop connection.
[0019] In one possible implementation of the second aspect, the remote desktop connection request transmitted by the control component is an encrypted remote desktop connection request; establishing a remote desktop connection between the target proxy server and the control component based on the remote desktop connection request includes: verifying the authorization validity of the encrypted remote desktop connection request; and, when the authorization validity verification of the encrypted remote desktop connection request passes, responding to the encrypted remote desktop connection request to establish a remote desktop connection between the control component and the target proxy server. By employing this application, verifying the authorization validity of the remote desktop connection request can prevent other devices from forging remote desktop connection requests, further enhancing data security.
[0020] In one possible implementation of the second aspect, establishing the remote desktop connection between the target proxy server and the target remote desktop includes: initiating a standard remote desktop connection request to the target remote desktop; and, after the target remote desktop successfully verifies the identity of the target proxy server, triggering the target remote desktop to respond to and accept the standard remote desktop connection request, thereby establishing the remote desktop connection between the target proxy server and the target remote desktop. By employing this application, by initiating a standard remote desktop connection request to the target remote desktop, the target remote desktop can establish a remote desktop connection even without possessing the key for decryption, eliminating the need for additional key storage and thus enhancing its applicability.
[0021] In one possible implementation of the second aspect, the communication data is carried on a first remote desktop protocol data packet; preventing the target remote desktop client from transmitting all communication data other than the image data stream in the remote desktop protocol to the control component during data transmission includes: receiving the first remote desktop protocol data packet from the target remote desktop client and parsing the first remote desktop protocol data packet to obtain data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel; sending the data packets belonging to the graphics update channel to the control component to trigger the control component to obtain the image data stream based on the data packets belonging to the graphics update channel, wherein the data packets belonging to the graphics update channel are data packets that are allowed to pass through and forwarded to the target client on the premise of discarding the data packets belonging to the clipboard channel and the data packets belonging to the device mapping channel. Using this application, since the target proxy server only transmits data packets belonging to the graphics update channel, the control component can only obtain the image data stream obtained by parsing the data packets belonging to the graphics update channel, thereby ensuring that other communication data besides the image data stream is not transmitted to the control component, thus ensuring the security of the communication data. Furthermore, since the aforementioned data packets need to be parsed by the control component to obtain the image data stream, even if the aforementioned data packets are leaked, the thief will not be able to obtain the image data stream, thus further enhancing the security of communication data.
[0022] In one possible implementation of the second aspect, after establishing the remote desktop connection between the target proxy server and the target remote desktop to bridge the target client and the target remote desktop, the method further includes: receiving a second remote desktop protocol data packet transmitted by a control component during the remote desktop connection process; storing the first remote desktop protocol data packet and the second remote desktop protocol data packet, wherein the stored first remote desktop protocol data packet and the second remote desktop protocol data packet are used for data traceability. By employing this application, the controllability of communication data can be further improved through unified management of communication data from the target client and the target remote desktop, and the traceability of communication data can also be guaranteed.
[0023] In one possible implementation of the second aspect, storing the first remote desktop protocol data packet and the second remote desktop protocol data packet includes: encrypting the first remote desktop protocol data packet and the second remote desktop protocol data packet at at least one encryption level based on at least one security domain level, generating and storing encrypted communication data at the at least one encryption level; wherein the at least one security domain level includes at least the first security domain level of the target client or the second security domain level of the target remote desktop, one security domain level corresponds to one encryption level, and the encrypted communication data at one encryption level is used for data backtracking performed by the client or remote desktop corresponding to the encryption level of the security domain level. Using this application, the same first remote desktop protocol data packet or the same second remote desktop protocol data packet can be encrypted at different encryption levels, enabling devices such as clients or remote desktops with different security domain levels to perform data backtracking based on encrypted communication data at different encryption levels. This prevents remote desktops or clients with lower security domain levels from viewing communication data generated by remote desktops or clients with higher security domain levels, thus avoiding data leakage and further improving data security.
[0024] Thirdly, this application provides a remote desktop connection method based on a remote desktop protocol executed by a target client, comprising: initiating an access request to a control component and receiving the address information of a target proxy server returned by the control component after the access request is authenticated; initiating a remote desktop connection request to the control component based on the address information of the target proxy server, so as to establish a remote desktop connection between the target client and the target proxy server through the control component when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, thereby triggering the target proxy server to bridge the target client and the target remote desktop; if the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, obtaining the image data stream in the remote desktop protocol sent by the control component. Using this application, the target client can initiate an access request to the control component and receive the address information of the target proxy server, thereby initiating a remote desktop connection request to the control component based on the address information, so as to establish a remote desktop connection between the target client and the target remote desktop through the target proxy server when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, and obtaining the image data stream in the remote desktop protocol parsed by the control component. Since the target client establishes a remote desktop connection with the target proxy server when connecting across security domains, the target proxy server can uniformly manage the communication data, so that the target client only receives the image data stream, resulting in high security and strong controllability of the communication data.
[0025] In one possible implementation of the third aspect, after triggering the target proxy server to bridge the target client and the target remote desktop, the method further includes: sending a second remote desktop protocol data packet generated during the remote desktop connection process between the target client and the target remote desktop to the control component, so that the control component stores the second remote desktop protocol data packet in the target proxy server. By employing this application, by transmitting the second remote desktop protocol data packet to the target proxy server for storage, communication data can be uniformly managed through the target proxy server, which is beneficial for improving the controllability and traceability of communication data.
[0026] Fourthly, this application provides a remote desktop connection system based on a remote desktop protocol, the system comprising a target client, a control component, and a target proxy server; the target client is used to execute a remote desktop connection method based on a remote desktop protocol as provided in the third aspect and any possible implementation of the third aspect; the control component is used to execute a remote desktop connection method based on a remote desktop protocol as provided in the first aspect and any possible implementation of the first aspect; and the target proxy server is used to execute a remote desktop connection method based on a remote desktop protocol as provided in the second aspect and any possible implementation of the second aspect.
[0027] Fifthly, this application provides a remote desktop connection device based on a remote desktop protocol executed by a control component. The device includes a module or unit for executing a remote desktop connection method based on a remote desktop protocol executed by a control component as provided in the first aspect or any possible implementation of the first aspect.
[0028] For example, the device includes: a first judgment module, a determination module, a first connection module, and a first acquisition module.
[0029] The first judgment module is used to determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the remote desktop connection request; if the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, the determination module determines the target proxy server for connecting the target client and the target remote desktop; the first connection module is used to establish a remote desktop connection between the control component and the target proxy server, and instruct the target proxy server to establish a remote desktop connection with the target remote desktop, thereby bridging the target client and the target remote desktop via the target proxy server; the first acquisition module is used to acquire the image data stream transmitted by the target proxy server to the target client, and send the image data stream to the target client, wherein the image data stream is data that the target proxy server allows to pass through and forward to the target client during data transmission, provided that all other communication data except the image data stream in the remote desktop protocol is blocked.
[0030] In a sixth aspect, this application provides a remote desktop connection device based on a remote desktop protocol executed by a target proxy server. The device includes modules or units for executing the remote desktop connection method based on a remote desktop protocol executed by a target proxy server as provided in the second aspect or any possible implementation of the second aspect.
[0031] For example, the device includes a second connection module and a blocking module.
[0032] The second connection module is used to receive remote desktop connection requests transmitted by the control component, establish a remote desktop connection between the target proxy server and the control component based on the remote desktop connection requests, and establish a remote desktop connection between the target proxy server and the target remote desktop client to bridge the target client and the target remote desktop client; the blocking module is used to prevent the target remote desktop client from transmitting all communication data other than the image data stream in the remote desktop protocol to the control component during data transmission.
[0033] In a seventh aspect, this application provides a remote desktop connection device based on a remote desktop protocol executed by a target proxy server. The device includes modules or units for executing a remote desktop connection method based on a remote desktop protocol executed by a target proxy server as provided in the third aspect or any possible implementation of the third aspect.
[0034] For example, the device includes: a communication module, a third connection module, and a second acquisition module.
[0035] The communication module is used to initiate an access request to the control component and receive the address information of the target proxy server returned by the control component after the access request is successfully authenticated; the third connection module is used to initiate a remote desktop connection request to the control component based on the address information of the target proxy server, so as to establish a remote desktop connection between the target client and the target proxy server when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, thereby triggering the target proxy server to bridge the target client and the target remote desktop; the second acquisition module is used to acquire the image data stream in the remote desktop protocol sent by the control component when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection.
[0036] Eighthly, this application provides a terminal device, including: a processor and a memory; the processor is connected to the memory, wherein the memory is used to store program code, and the processor is used to call the program code from the memory to execute a remote desktop connection method based on a remote desktop protocol executed by a control component as provided in the first aspect and any possible embodiment of the first aspect, a remote desktop connection method based on a remote desktop protocol executed by a target proxy server as provided in the second aspect and any possible embodiment of the second aspect, or a remote desktop connection method based on a remote desktop protocol executed by a target client as provided in the third aspect and any possible embodiment of the third aspect.
[0037] Ninthly, this application provides a computer-readable storage medium storing a computer program adapted to be loaded by a processor and executed by a processor a remote desktop connection method based on a remote desktop protocol executed by a control component as provided in the first aspect and any possible embodiment of the first aspect, a remote desktop connection method based on a remote desktop protocol executed by a target proxy server as provided in the second aspect and any possible embodiment of the second aspect, or a remote desktop connection method based on a remote desktop protocol executed by a target client as provided in the third aspect and any possible embodiment of the third aspect.
[0038] In a tenth aspect, this application provides a computer program product comprising computer instructions adapted to be loaded by a processor and executed as provided in the first aspect and any possible implementation of the first aspect, a remote desktop connection method based on a remote desktop protocol executed by a control component, a remote desktop connection method based on a remote desktop protocol executed by a target proxy server, or a remote desktop connection method based on a remote desktop protocol executed by a target client, as provided in the second aspect and any possible implementation of the second aspect. Attached Figure Description
[0039] Figure 1 is a schematic diagram of the architecture of the remote desktop connection system based on the remote desktop protocol provided in this application; Figure 2 is a flowchart of the remote desktop connection method based on the remote desktop protocol executed by the control component provided in this application; Figure 3 is a flowchart of the remote desktop connection method based on the remote desktop protocol executed by the target proxy server provided in this application; Figure 4 is a flowchart of the remote desktop connection method based on the remote desktop protocol executed by the target client provided in this application; Figure 5 is a schematic diagram of the structure of the remote desktop connection device based on the remote desktop protocol executed by the control component provided in this application; Figure 6 is a schematic diagram of the structure of the remote desktop connection device based on the remote desktop protocol executed by the target proxy server provided in this application; Figure 7 is a schematic diagram of the structure of the remote desktop connection device based on the remote desktop protocol executed by the target client provided in this application; Figure 8 is a schematic diagram of the structure of the terminal device provided in this application.
[0040] Explanation of reference numerals in the attached figures: 1-Remote desktop connection system based on Remote Desktop Protocol; 10-Target client; 20-Proxy server; 30-Target remote desktop terminal; 40-Data storage space; 50-Control component; 100-Remote desktop connection device based on Remote Desktop Protocol executed by the control component; 200-Remote desktop connection device based on Remote Desktop Protocol executed by the target proxy server; 300-Remote desktop connection device based on Remote Desktop Protocol executed by the target client; 101-First judgment module; 102-Determination module; 103-First connection module; 104-First acquisition module; 105-Authentication module; 106-Second judgment module; 107-Return module; 108-First receiving module; 201-Second connection module; 202-Blocking module; 203-Channel opening module; 204-Second receiving module; 205-Storage module; 301 - Communication module; 302 - Third connection module; 303 - Second acquisition module; 304 - Transmitting module; 1021 - Second acquisition unit; 1022 - Determining unit; 1031 - Encryption unit; 1032 - First transmitting unit; 1041 - Triggering unit; 1042 - First receiving unit; 1061 - First acquisition unit; 1062 - Judgment unit; 2011 - Verification unit; 2012 - Response unit; 2013 - Triggering unit; 2021 - Second receiving unit; 2022 - Second transmitting unit; 10621 - Judgment subunit; 10622 - First determining subunit; 10623 - Acquisition subunit; 10624 - Second determining subunit; 1000 - Terminal device; 1001 - Processor; 1002 - Communication bus; 1003 - User interface; 1004 - Network interface; 1005 - Memory; 1006 - Controller. Detailed Implementation
[0041] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.
[0042] For ease of understanding, this application first describes a remote desktop connection system based on the remote desktop protocol. The aforementioned remote desktop connection system based on the remote desktop protocol can be applied to remote desktop access scenarios, cross-platform remote collaboration scenarios, etc., and this application does not impose any limitations; the remote desktop access scenario will be used as an example for explanation. Please refer to Figure 1, which is a schematic diagram of the architecture of the remote desktop connection system based on the remote desktop protocol provided in this application. As shown in Figure 1, the aforementioned remote desktop connection system 1 based on the remote desktop protocol may include a target client 10, a proxy server 20, and a target remote desktop client 30.
[0043] In some feasible implementations, the target client 10 may be one of multiple clients. The client may be a program or device that provides local services to the user, typically installed on a user terminal (such as a computer or mobile phone). The client may contain a control component 50. If the remote desktop connection between the target client 10 and the target remote desktop client 30 is a cross-security domain connection, the target client 10 can establish a remote desktop connection with the proxy server 20 and the target remote desktop client 30 through the control component 50. If the remote desktop connection between the target client 10 and the target remote desktop client 30 is a same-security domain connection, the target client 10 can establish a remote desktop connection with the target remote desktop client 30 through the control component 50.
[0044] The control component 50 may include a redirection platform and remote desktop connection software (such as PC Access, which may also be referred to as secure remote desktop connection client software). This remote desktop connection software may be installed on the target client 10 to function as a dedicated client for remote desktop connection.
[0045] If the remote desktop connection is a cross-security domain connection, the remote desktop connection software can be used to receive and parse data packets transmitted by the proxy server 20 to obtain the communication data carried in the data packets. If the remote desktop connection is a same-security domain connection, the remote desktop connection software can be used to receive and parse data packets transmitted by the target remote desktop 30 to obtain the communication data carried in the data packets.
[0046] The aforementioned redirection platform can be a webpage, software for redirecting interfaces, etc., and can interact with the user through a front-end interface. The aforementioned control component 50 can be connected to a data storage space 40. The aforementioned data storage space 40 can be used to store security domain levels of different communication addresses, communication data, etc.
[0047] For example, a user can log in via a redirected webpage through the front-end interface of the target client 10, and initiate a remote desktop connection request after successful login. The redirection platform can then trigger the remote desktop connection software to start after the user logs in, so as to establish a remote desktop connection between the target client 10 and the target remote desktop client 30 based on the remote desktop connection request.
[0048] In some feasible implementations, the proxy server 20 can be a dedicated hardware device (such as an enterprise gateway server) or a software instance (such as proxy software installed on a regular server). The proxy server can be used to relay requests, cache data, manage data, etc. The proxy server can be a dedicated server within an enterprise, or it can include firewall devices, cloud proxy service nodes, or router-level proxy hardware. The proxy server 20 can also be connected to a data storage space 40. The proxy server 20 and the control component 50 can be connected to the same data storage space 40, or they can be connected to different data storage spaces; this application does not impose any restrictions. It should be noted that the proxy server 20 is activated when the remote desktop connection between the target client 10 and the target remote desktop client 30 is a cross-security domain connection.
[0049] In some feasible implementations, the target remote desktop client 30 can be a dedicated hardware device (such as a physical server host) or a virtualization instance (such as a cloud server, virtual machine, etc.), and common types include web servers, database servers, file servers, etc. It can be understood that the target remote desktop client 30 can be used to respond to remote desktop connection requests transmitted by the proxy server 20 or the target client 10 in order to establish a remote desktop connection with the target client 10.
[0050] In some feasible implementations, the control component 50 can detect whether the remote desktop connection between the target client 10 and the target remote desktop terminal 30 is a cross-security domain connection based on the remote desktop connection request. Specifically, the control component 50 can determine whether the remote desktop connection is a cross-security domain connection through the jump platform in the control component 50.
[0051] The aforementioned remote desktop connection request can be obtained by the user inputting it to the target client 10. This remote desktop connection can be divided into cross-security-domain connections and same-security-domain connections. Network administrators can pre-divide the network into multiple zones with different encryption levels. Resources or devices within the same zone follow the same access control rules and security policies, thus forming a relatively closed protective environment to achieve resource isolation and access control. A zone with one encryption level is a security domain, and one security domain corresponds to one security domain level. That is, the security domain of the target client 10 or the target remote desktop 30 can correspond to one security domain level. The aforementioned cross-security-domain connection refers to two devices establishing a network communication connection (such as the target client 10 and the target remote desktop 30) corresponding to different security domain levels. The aforementioned same-security-domain connection refers to two devices establishing a network communication connection corresponding to the same security domain level.
[0052] For example, the aforementioned network can be divided into a private network and a public network. A private network corresponds to a high-security-level domain; a public network corresponds to a low-security-level domain. When target client 10 uses the private network, the corresponding security-level domain is high. When target remote desktop client 30 uses the public network, the corresponding security-level domain is low. In this case, if target client 10 establishes a network communication connection with target remote desktop client 30, this network communication connection is a cross-security-domain connection.
[0053] Optionally, if both the target client 10 and the target remote desktop 30 use the same public network, then the security domain level of the target client 10 and the security domain level of the target remote desktop 30 are the same. In this case, if the target client 10 and the target remote desktop 30 establish a network communication connection, then the network communication connection is a connection within the same security domain.
[0054] If the remote desktop connection between the target client 10 and the target remote desktop client 30 is a cross-security domain connection, the control component 50 can determine the target proxy server 20 used to connect the target client 10 and the target remote desktop client 30. The control component 50 can also instruct the target proxy server 20 to establish a remote desktop connection with the target remote desktop client 30, thereby bridging the target client 10 and the target remote desktop client 30 via the target proxy server 20.
[0055] If the remote desktop connection between the target client 10 and the target remote desktop client 30 is within the same security domain, the control component 50 can establish a remote desktop connection with the target remote desktop client 30 directly without going through the proxy server 20, thereby establishing a remote desktop connection between the target client 10 and the target remote desktop client 30.
[0056] Control component 50 can acquire the image data stream transmitted from target proxy server 20 to target client 10 and send the image data stream to target client 10. The image data stream is the data that the target proxy server 20 allows to pass through and forward to the target client during data transmission, provided that all other communication data except for the image data stream in the remote desktop protocol is blocked. In other words, in the case of cross-security domain connections, the target proxy server 20 only transmits the image data stream to control component 50, and control component 50 only receives the image data stream.
[0057] In some feasible implementations, the control component 50 can also be used to authenticate the user in response to an access request initiated by the user through the target client 10 before determining whether the remote desktop connection is a cross-security domain connection. This authentication process can be the login verification process of the control component 50. For example, the control component 50 can verify whether the account in the access request initiated by the user is a registered account and whether the password matches the account. If the account and password verification is successful, the authentication is considered successful.
[0058] The aforementioned control component 50 is also used to determine whether two-factor authentication is required after the identity authentication is successful, based on preset risk control rules. For example, the risk control rules may be: determining that two-factor authentication is required when the login location is detected as an unfamiliar location, or when the login device is detected as an unfamiliar device, or when the wrong password is entered three times.
[0059] If the control component 50 determines that two-factor authentication is required, it can guide the user to complete at least one two-factor authentication, and respond to the access request to determine the target proxy server 20 after successful two-factor authentication. The two-factor authentication can be fingerprint verification, facial recognition, mobile phone verification code recognition, etc., and this application does not impose any restrictions. The control component 50 can display a two-factor authentication interface on the front-end interface of the target client 10 to guide the user to complete at least one two-factor authentication.
[0060] Specifically, the control component 50 can be used to verify the authorization validity of the first identity factor of the target client 10, and when the authorization validity of the first identity factor is successfully verified, it determines that the first authentication of the target client 10 is passed, triggering the verification of the second authentication of the target client 10. The first identity factor includes at least the account and password of the target client 10. The proxy server 20 can also obtain and verify the authorization validity of the second identity factor of the target client 10 when the first authentication is detected as passed. When the authorization validity of the second identity factor is successfully verified, the proxy server 20 determines that the second authentication of the target client 10 is passed, authorizing the target client 10 to transmit a remote desktop connection request. The second identity factor includes at least one or more of verification codes, fingerprints, facial recognition, or hardware tokens. Using this application, the accuracy of the target client 10's authentication can be improved through two-factor authentication, ensuring that the remote desktop connection request is not forged by other devices, thus further enhancing data security. Furthermore, this application can flexibly select the first and second identity factors for verification, making it more applicable.
[0061] In some feasible implementations, the control component 50 can be used to obtain first communication information of the target client 10 and second communication information of the target remote desktop 30 from the remote desktop connection request. The first communication information may include a first communication address, a first identifier, etc. The first identifier may be the device name of the target client 10, used to uniquely identify the target client 10, and may also serve as an index to the security domain level of the target client 10 stored in the data storage space. The second communication information may include a second communication address, a second identifier, a target port identifier, etc. of the target remote desktop 30. The second identifier may be the device name of the target remote desktop 30, used to uniquely identify the target remote desktop 30, and may also serve as an index to the security domain level of the target remote desktop 30 stored in the data storage space.
[0062] The control component 50 can be used to determine, based on the first communication information and the second communication information, whether the remote desktop connection between the target client 10 and the target remote desktop client 30 is a cross-security domain connection. The first and second communication addresses are Internet Protocol (IP) addresses. IP addresses can be used to indicate the location of the device corresponding to the IP address in the network, enabling network communication between different devices.
[0063] In some feasible implementations, the control component 50 can be used to determine in real time whether the first communication address and the second communication address of the target client belong to the same predefined communication address range based on the first communication address of the target client and the second communication address of the target remote desktop. The predefined communication address range can be stored in the data storage space of the control component 50. The predefined communication address range refers to the network communication address range pre-defined by the network administrator using IP addresses and subnet masks. The subnet mask is a 32-bit binary value used to divide the network portion and host portion of an IP address, thereby determining the network area to which the device corresponding to the IP address belongs. The control component 50 can calculate the network address corresponding to the first communication address and the network address corresponding to the second communication address using the subnet mask. The control component 50 can compare whether the two network addresses are completely identical. If they are identical, it is determined that the two network addresses belong to the same predefined communication address range; if they are different, it is determined that the two network addresses do not belong to the same predefined communication address range.
[0064] For example, the first communication address could be "192.168.1.10", the second communication address could be "192.168.1.20", the predefined communication address range is "192.168.1.0 / 24", and the subnet mask is "255.255.255.0". Through logical calculation, the calculated result of the first communication address is "192.168.1.0", and the calculated result of the second communication address is also "192.168.1.0". It can be seen that the calculated results of the first and second communication addresses are the same, therefore they belong to the same predefined communication address range.
[0065] In some feasible implementations, if the control component 50 detects that the first communication address and the second communication address do not belong to the same predefined communication address range, it determines that the remote desktop connection is a cross-security domain connection. If the control component 50 detects that the first communication address and the second communication address belong to the same predefined communication address range, it determines that the remote desktop connection is a same-security-domain connection.
[0066] Optionally, the control component 50 may also directly obtain the first security domain level of the first communication address and the second security domain level of the second communication address from the data storage space.
[0067] For example, the control component 50 can obtain a first identifier of the target client 10 and a second identifier of the target remote desktop 30. The first and second identifiers can be obtained from the first and second communication addresses, or through other means, which are not limited in this application. The control component 50 can obtain from the data storage space 40 the first security domain level of the target client 10 corresponding to the first identifier, and the second security domain level of the target remote desktop 30 corresponding to the second identifier. The data storage space 40 can store at least one first security domain level corresponding to at least one first identifier of at least one client, and at least one second security domain level corresponding to at least one second identifier of at least one remote desktop. One first identifier corresponds to one first security domain level, and one second identifier corresponds to one second security domain level. One client corresponds to one first identifier, and one remote desktop corresponds to one second identifier. The target client 10 is one of at least one client, and the target remote desktop 30 is one of at least one remote desktop.
[0068] The control component 50 can determine whether a remote desktop connection is a cross-security domain connection based on the first security domain level and the second security domain level. If the first security domain level and the second security domain level are the same, the control component 50 can determine that the remote desktop connection is a same-security-domain connection; otherwise, it can determine that it is a cross-security-domain connection.
[0069] In this way, the first security domain level and the second security domain level can be retrieved directly from the data storage space 40, saving the time of real-time judgment of the first security domain level and the second security domain level, thus improving the acquisition speed of the first security domain level and the second security domain level.
[0070] In some feasible implementations, the control component 50 can obtain the load and / or network latency of each proxy server in the proxy server pool, and thereby determine the target proxy server 20 from the proxy server pool for connecting the target client 10 and the target remote desktop client 30 based on the load and / or network latency of each proxy server. The load and network latency can be used to determine whether the proxy server has sufficient computing resources and network conditions to support remote desktop connection, and therefore the target proxy server 20 currently suitable for remote desktop connection can be determined through the load and / or network latency.
[0071] For example, the proxy server pool includes proxy server B, proxy server C, and proxy server D. Proxy server B has a load factor of 80% and excellent network latency. Proxy server C has a load factor of 50% and poor network latency. Proxy server D has a load factor of 60% and good network latency.
[0072] If the remote desktop connection has high requirements for network latency but low requirements for load, the control component 50 can prioritize comparing the network latency of each proxy server to determine the target proxy server. For example, among the proxy servers B, C, and D mentioned above, proxy server B has the best network latency performance, therefore proxy server B can be selected as the target proxy server.
[0073] In this way, the target proxy server 20 used for remote desktop connections can be guaranteed to have sufficient computing power and good network performance, and can flexibly adapt to the actual needs of different application scenarios, thereby ensuring the stability of remote desktop connections and further improving applicability.
[0074] In some feasible implementations, the control component 50 can be used to return the address information of the target proxy server 20 to the target client 10 and notify the target proxy server 20 that there is a remote desktop connection request from the target client 10 to the target remote desktop client 30, thereby triggering the target proxy server 20 to receive the remote desktop connection request.
[0075] Optionally, if the target proxy server 20 sends a target secure random number and a target port identifier to the control component 50, the control component 50 may also transmit the target secure random number and target port identifier to the target client. The aforementioned target secure random number and target port identifier are used for re-authentication when the target client establishes a remote desktop connection.
[0076] Since the target proxy server 20 can include multiple ports, by returning the address information of the proxy server 20 to the target client 10, the target client 10 can accurately initiate a remote desktop connection request to the target proxy server 20, thereby avoiding connection failures caused by the target client 10 connecting to an inappropriate proxy server or port. Furthermore, by notifying the target proxy server 20, it can prepare for the connection before the target client 10 initiates the remote desktop connection, such as by opening a channel to receive remote desktop connections, thus improving the connection efficiency of the remote desktop connection.
[0077] In some feasible implementations, the control component 50 can acquire a remote desktop connection request initiated by a user on the target client 10 and encrypt the remote desktop connection request to obtain an encrypted remote desktop connection request. The encrypted remote desktop connection request may carry information such as an encrypted signature and an encrypted authentication token, which can be used to verify the authorization validity of the encrypted remote desktop connection request. This ensures the security of the remote desktop connection request and prevents information leakage.
[0078] The control component 50 can also be used to send an encrypted remote desktop connection request to the target proxy server 20 based on the address information of the target proxy server 20, thereby triggering the target proxy server 20 to verify the authorization validity of the remote desktop connection request. Specifically, the control component 50 can trigger the target proxy server 20 to respond to the encrypted remote desktop connection request and establish a remote desktop connection between the control component 50 and the target proxy server 20 when the authorization validity verification of the encrypted remote desktop connection request is successful.
[0079] It is understandable that encrypting remote desktop connection requests can prevent the leakage of critical information in the requests, thereby further enhancing the security of remote desktop connections.
[0080] In some feasible implementations, the control component 50 can be used to instruct the target proxy server 20 to initiate a standard remote desktop connection request to the target remote desktop client 30 after establishing a remote desktop connection with the target proxy server 20. This allows the target proxy server 20 to trigger the target remote desktop client 30 to respond and accept the standard remote desktop connection after the target remote desktop client 30 verifies the identity of the target proxy server. In other words, by establishing a remote desktop connection between the control component 50 and the target proxy server 20, and establishing a remote desktop connection between the target proxy server 20 and the target remote desktop client 30, a remote desktop connection can be established between the target client 10, which has the control component 50 installed, and the target remote desktop client 30.
[0081] Since target proxy server 20 is one of the better performing proxy servers among multiple proxy servers and is suitable for remote desktop connections, the stability of remote desktop connections can be maintained through target proxy server 20. Furthermore, target proxy server 20 can prevent target client 10 and target remote desktop client 30 from directly establishing cross-security domain remote desktop connections, thereby reducing the risk of the attacked party locating or launching targeted attacks, and further improving the security of remote desktop connections.
[0082] In some feasible implementations, the control component 50 may trigger the target proxy server to parse the first remote desktop protocol data packet from the target remote desktop client to obtain data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel. The data packets belonging to the graphics update channel may carry image data streams from the remote desktop protocol. The data packets belonging to the graphics update channel are those that the target proxy server 20 allows to pass through and forward to the target client, provided that the data packets belonging to the clipboard channel and the data packets belonging to the device mapping channel are discarded.
[0083] Therefore, after receiving data packets belonging to the graphics update channel transmitted by the target proxy server 20, the control component 50 can obtain the image data stream based on the data packets belonging to the graphics update channel. For example, the control component 50 can obtain the image data stream by parsing the data packets belonging to the graphics update channel. After obtaining the image data stream, the control component 50 can also send the image data stream to the target client 10.
[0084] Since the control component 50 receives the data packets belonging to the graphics update channel transmitted by the target proxy server 20 after discarding the data packets of the clipboard channel and the data packets belonging to the device mapping channel, the control component 50 can obtain only the image data stream carried in the data packets belonging to the graphics update channel, thereby avoiding the risk of data leakage caused by other communication data transmissions, and ensuring high data security and strong controllability.
[0085] In some feasible implementations, after establishing a remote desktop connection between the target client 10 and the target remote desktop terminal 30, the control component 50 can receive second remote desktop protocol data packets generated by the target client 10 during the remote desktop connection process and transmit these second remote desktop protocol data packets to the target proxy server 20. These second remote desktop protocol data packets can be used to record communication data of operations performed by the target client 10, such as data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel. By transmitting these second remote desktop protocol data packets to the target proxy server 20, the target proxy server 20 can uniformly manage the communication data during the remote desktop connection process, thereby increasing the controllability and traceability of the communication data.
[0086] In some feasible implementations, the target proxy server 20 can be used to receive remote desktop connection requests, thereby establishing a remote desktop connection between the target proxy server 20 and the control component 50 based on the remote desktop connection request, and establishing a remote desktop connection between the target proxy server 20 and the target remote desktop terminal 30, so as to establish a remote desktop connection between the target client 10 and the target remote desktop terminal.
[0087] The remote desktop connection request can be transmitted by the control component 50. The remote desktop connection request may include first communication information of the target client 10 and second communication information of the target remote desktop terminal 30. It is understood that the first communication information can be used to locate a unique target client 10, and the second communication information can be used to locate a unique target remote desktop terminal 30. The target proxy server 20 can, exemplarily, receive the encrypted remote desktop connection request transmitted by the control component 50 in the target client 10.
[0088] In some feasible implementations, the target proxy server 20 can bridge the target client 10 and the target remote desktop 30 via a remote desktop protocol based on the first communication address of the target client 10 indicated by the first communication information and the second communication address of the target remote desktop 30 indicated by the second communication information. For example, the target proxy server 20 can establish a remote desktop connection by setting the first and second communication addresses, port (also called the target port), connection parameters, etc.
[0089] When the remote desktop connection between the target client 10 and the target remote desktop terminal 30 is a cross-security domain connection, the target proxy server 20 can prevent the target remote desktop terminal 30 from transmitting all communication data other than the image data stream in the remote desktop protocol to the control component 50 during data transmission. It can be understood that the target proxy server 20 can perform secure isolation and filtering of communication data, thereby achieving unidirectional flow control of communication data. This prevents the transmission of critical data such as text and files between the target remote desktop terminal 30 and the target client 10 through copy or paste operations, reducing the possibility of malicious programs using the clipboard to steal passwords and other high-risk operations. It can also prohibit the physical channel for illegally exporting data from removable storage media such as external hard drives, further enhancing data security. Furthermore, transmitting only image data streams (such as screen pixel data) instead of original data files avoids the leakage of underlying data or algorithm logic, further improving security.
[0090] In some feasible implementations, before the target proxy server 20 receives the remote desktop connection request transmitted by the control component 50, it may open a remote desktop connection request receiving channel when the control component 50 notifies that there is a remote desktop connection request from the target client 10 to the target remote desktop terminal 30, so as to receive the remote desktop connection request based on the receiving channel. The aforementioned receiving channel can be a dedicated channel for receiving remote desktop connection requests, which is applicable not only to the transmission scenarios of unencrypted remote desktop connection requests, but also to the transmission scenarios of encrypted remote desktop connection requests.
[0091] In some feasible implementations, after opening the aforementioned receiving channel, the target proxy server 20 can also perform other connection preparations, such as returning a secure random number and a target port identifier to the control component 50. Specifically, the target proxy server 20 can generate a target secure random number and determine the target port for establishing a remote desktop connection based on data such as the performance and load utilization of each port in the target proxy server 20. The proxy server 20 can return the target secure random number and the target port identifier of the aforementioned target port to the target client 10. In this way, the target port for the remote desktop connection can be matched according to the performance of the target proxy server 20, thereby improving the utilization of computing resources. By notifying the target proxy server 20 to prepare for the remote desktop connection, the connection efficiency of the remote desktop connection can be improved.
[0092] In some feasible implementations, the remote desktop connection request transmitted by the control component 50 may be an encrypted remote desktop connection request. When establishing a remote desktop connection with the control component 50, the target proxy server 20 may first verify the authorization validity of the encrypted remote desktop connection request.
[0093] For example, the encrypted remote desktop connection request may further include a verification token, which may be a digital signature (also known as a token) obtained by signing and encrypting the information in the remote desktop connection request. The verification token is used to identify and verify the identity of the target client 10, ensuring that the target client 10 cannot be impersonated. Optionally, the encrypted remote desktop connection request may further include a security random number to be verified and a port identifier to be verified. The security random number to be verified is used to verify the identity of the target client 10; verification is successful if and only if the security random number to be verified is the same as the target security random number. The port identifier to be verified is used to verify the authorization validity of the target port; verification is successful if and only if the port identifier to be verified is the same as the target port identifier.
[0094] The target proxy server 20 can be used to verify the authorization validity of the remote desktop connection request based on the verification token, first communication information, second communication information, unverified security random number, and unverified port identifier in the remote desktop connection request.
[0095] On the one hand, the target proxy server 20 can also be used to respond to an encrypted remote desktop connection request when the authorization validity verification of the remote desktop connection request is passed, thereby establishing a remote desktop connection between the target client and the target proxy server.
[0096] For example, when the target proxy server 20 detects that the security random number to be verified is the same as the target security random number, the port identifier to be verified is the same as the target port identifier, and the authorization validity verification of the verification token with the first communication information and the second communication information passes, it confirms that the authorization validity verification of the encrypted remote desktop connection request has passed. The target proxy server 20 can respond to the encrypted remote desktop connection request to establish a remote desktop connection between the control component 50 and the target remote desktop client 30 based on the target port indicated by the target port identifier and the remote desktop protocol. The control component 50 can be loaded in the target client 10, and data interaction connections can be established between the control component 50 and both the target client 10 and the target proxy server 20, that is, the control component 50 can bridge the target client 10 and the target proxy server 20. Therefore, the remote desktop connection between the control component 50 and the target remote desktop client 30 can realize the functions implemented by the remote desktop connection between the target client 10 and the target remote desktop client 30. The remote desktop connection between the control component 50 and the target proxy server 20 can be regarded as the remote desktop connection between the target client 10 and the target proxy server 20.
[0097] On the other hand, when the target proxy server 20 detects that the above authorization validity has failed, it can also send back information to the target client 10 to indicate that the verification failed or the connection failed.
[0098] For example, when the target proxy server 20 detects that the security random number to be verified is different from the target security random number, or the port identifier to be verified is different from the target port identifier, or the above verification token fails to verify the authorization validity of the first communication information and the second communication information, it confirms that the authorization validity verification of the above encrypted remote desktop connection request has failed.
[0099] By employing this application, the target proxy server 20 can verify the authorization validity of remote desktop connection requests to prevent other devices from forging remote desktop connection requests, thereby further enhancing data security.
[0100] In some feasible implementations, the target proxy server 20 may initiate a standard remote desktop connection request to the target remote desktop client 30. After the target remote desktop client 30 successfully verifies the identity of the target proxy server 20, it may trigger the target remote desktop client 30 to respond to and accept the standard remote desktop connection request, thereby establishing a remote desktop connection between the target proxy server 20 and the target remote desktop client 30. It can be understood that after receiving the encrypted remote desktop connection request transmitted from the control component 50, the target proxy server 20 initiates a standard remote desktop connection request from the target proxy server 20 to the target remote desktop client 30, thereby triggering the target remote desktop client 30 to establish a remote desktop connection through the standard remote desktop connection request.
[0101] In some feasible implementations, the target proxy server 20 can be used to receive a first remote desktop protocol data packet from the target remote desktop client 30. The target proxy server 20 can parse the first remote desktop protocol data packet to obtain data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel. The aforementioned first remote desktop protocol data packet can be used to carry communication data. The target proxy server 20 can be used to discard data packets belonging to the clipboard channel and the device mapping channel, and send data packets belonging to the graphics update channel to the control component 50. That is, the aforementioned data packets belonging to the graphics update channel are data packets allowed to pass through and be sent to the target client, provided that data packets belonging to the clipboard channel and the device mapping channel are discarded. By sending data packets belonging to the graphics update channel to the control component 50, the control component 50 can be triggered to obtain an image data stream based on the data packets belonging to the graphics update channel.
[0102] It should be noted that if the target client 10 and the target remote desktop client 30 are connected across security domains, directly establishing a remote desktop connection poses a risk of data leakage. For example, a device with a lower security domain level could obtain data from a device with a higher security domain level, leading to the leakage of critical data. Therefore, the proxy server 20 needs to block the transmission of all communication data except for the image data stream to ensure data security. Since the target proxy server 20 only transmits data packets belonging to the graphics update channel, the control component 50 can only obtain the image data stream obtained by parsing the data packets belonging to the graphics update channel, thereby ensuring that all communication data except for the image data stream is not transmitted to the control component 50, thus ensuring the security of the communication data. Furthermore, since the aforementioned data packets need to be parsed by the control component 50 to obtain the image data stream, even if the aforementioned data packets are leaked, the thief cannot obtain the image data stream, thus further enhancing the security of the communication data.
[0103] In some feasible implementations, the target proxy server 20 can also be used to receive a second remote desktop protocol data packet transmitted by the control component 50 during the remote desktop connection process. This second remote desktop protocol data packet may carry communication data generated by the target client 10 during the remote desktop connection process. The target proxy server 20 can be used to store the first and second remote desktop protocol data packets, for example, in its data storage space. The stored first and second remote desktop protocol data packets can be used for data traceability. By uniformly managing the communication data from the target client 10 and the target remote desktop, the controllability of the communication data can be improved, and the traceability of the communication data can also be guaranteed.
[0104] The stored communication data can be used to locate abnormal nodes through data backtracking, improving the data management capabilities of remote desktop connections. Optionally, the remote desktop connection system 1 based on the remote desktop protocol may also include a data storage space 40. The data storage space 40 may be connected to the proxy server 20 or may be located inside the proxy server 20; this application does not impose any restrictions. The proxy server 20 may store the first remote desktop protocol data packet and the second remote desktop protocol data packet through the data storage space 40.
[0105] In some feasible implementations, the target proxy server 20 may encrypt the first remote desktop protocol data packet and the second remote desktop protocol data packet at at least one encryption level based on at least one security domain level, generating and storing encrypted communication data at the at least one encryption level. The at least one security domain level includes at least the first security domain level of the target client or the second security domain level of the target remote desktop terminal. Each security domain level corresponds to one encryption level, and the encrypted communication data at one encryption level is used for data backtracking performed by the client or remote desktop terminal corresponding to the encryption level's security domain level.
[0106] In other words, the target proxy server 20 can encrypt the communication data generated by the target client 10 or the target remote desktop 30 with different security domain levels, thereby generating encrypted communication data with different encryption levels.
[0107] For example, if the first security domain level is level one and the second security domain level is level two, then at least one of the aforementioned security domain levels should include level one and level two, and can be exemplarily classified as level one, level two, and level three. Specifically, security domain level one can correspond to encryption level one, security domain level two can correspond to encryption level two, and so on. The correspondence between security domain levels and encryption levels should be determined according to the actual product form, and this application does not impose any restrictions. Optionally, one encryption level can correspond to multiple security domain levels; for example, encryption level one can simultaneously correspond to security domain level one and security domain level two. Thus, the target proxy server 20 can encrypt the same communication data at different encryption levels, enabling clients or remote desktops with different security domain levels to perform data backtracking based on encrypted communication data at different encryption levels. This prevents remote desktops or clients with lower security domain levels from viewing the communication data of remote desktops or clients with higher security domain levels, thereby avoiding data leakage and further improving data security.
[0108] The target proxy server 20 can be used to obtain the first security domain level of the target client 10 and the second security domain level of the target remote desktop 30 from the data storage space 40.
[0109] Alternatively, the target proxy server 20 may not obtain the first and second security domain levels from the data storage space 40, but instead allocate security domain levels in real time according to the security domain allocation strategy. The target proxy server 20 can be used to obtain the security domain allocation strategy, which can be pre-set in the proxy server 20 or obtained through other methods. The proxy server 20 can determine the first security domain level corresponding to the target client 10 and the second security domain level corresponding to the target remote desktop 30 according to the security domain allocation strategy. Thus, by allocating the first and second security domain levels in real time based on the security domain allocation strategy, this method is applicable to scenarios where the data storage space 40 does not store the first security domain level of the target client 10 and the second security domain level of the target remote desktop 30, further improving its applicability.
[0110] In some feasible implementations, the target client 10 can be used to initiate an access request to the control component 50. The target client 10 can also receive the address information of the target proxy server 20 returned by the control component 50 after successful authentication of the access request. Based on the address information of the target proxy server 20, the target client 10 can initiate a remote desktop connection request to the control component 50 to establish a remote desktop connection between the target client 10 and the target proxy server 20 through the control component 50, thereby triggering the target proxy server 20 to establish a remote desktop connection between the target client 10 and the target remote desktop client 30. The remote desktop connection request can be an unencrypted remote desktop connection request, which can be obtained by the user typing in the target client 10.
[0111] If the remote desktop connection between the target client 10 and the target remote desktop client 30 is a cross-security domain connection, then the target client 10 can obtain the image data stream from the remote desktop protocol parsed by the control component 50. This image data stream can be obtained by parsing data packets belonging to the graphics update channel transmitted by the target proxy server 20.
[0112] If the remote desktop connection between the target client 10 and the target remote desktop client 30 is within the same security domain, the target client 10 can obtain all communication data in the remote desktop protocol sent by the control component 50. This communication data includes, but is not limited to, image data streams. Since the remote desktop connection can be established without the assistance of the target proxy server 20 under the same security domain connection, the communication data can be obtained by parsing data packets belonging to the clipboard channel, the device mapping channel, and the graphics update channel transmitted by the target remote desktop client 30.
[0113] In some feasible implementations, the target client 10 may generate a second remote desktop protocol data packet during a remote desktop connection with the target remote desktop client 30. The target client 10 can then send this second remote desktop protocol data packet to the control component 50, which will then store it in the target proxy server 20. It is understood that by transmitting the second remote desktop protocol data packet to the target proxy server 20 for storage, the target proxy server 20 can centrally manage communication data, thereby improving the controllability and traceability of the communication data.
[0114] In summary, the remote desktop connection system 1 based on the remote desktop protocol can determine whether the remote desktop connection between the target client 10 and the target remote desktop terminal 30 is a cross-security domain connection through the control component 50. When it is determined that the remote desktop connection is a cross-security domain connection, the system identifies the target proxy server 20 used to connect the target client 10 and the target remote desktop terminal 30, thereby establishing a remote desktop connection between the control component 50 and the target proxy server 20. This bridges the target client 10 and the target remote desktop terminal 30 via the target proxy server 20, allowing the control component 50 to obtain the image data stream transmitted by the target proxy server 20. Since all communication data passes through the target proxy server 20 during a cross-security domain remote desktop connection, the target proxy server 20 can uniformly manage the communication data, resulting in strong controllability. Furthermore, during a cross-security domain remote desktop connection, the control component 50 can only receive the image data stream transmitted after the target proxy server 20 has blocked all other communication data except for the image data stream, thus preventing the leakage of other communication data besides the image data stream and ensuring strong security.
[0115] For example, the remote desktop connection method based on the Remote Desktop Protocol can be applied to the remote desktop connection system 1 based on the Remote Desktop Protocol described above. For ease of understanding, please refer to Figure 2 in conjunction with Figure 1. Figure 2 is a flowchart illustrating the remote desktop connection method based on the Remote Desktop Protocol executed by the control component provided in this application. The remote desktop connection method provided in Figure 2 will be described below with the control component as the execution subject. The control component can be the control component 50 provided in the embodiment corresponding to Figure 1. As shown in Figure 2, the remote desktop connection method based on the Remote Desktop Protocol may include the following steps: Step S101, based on the remote desktop connection request, determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection.
[0116] In some feasible implementations, the control component can acquire remote desktop connection requests initiated by the user on the target client. For example, the control component can interact with the user through the front-end interface of the target client to acquire the remote desktop connection request after the user selects the target remote desktop client 30 for which a remote desktop connection is needed. Optionally, the proxy server 20 can also acquire remote desktop connection requests through relay devices or other means; this application does not impose limitations.
[0117] Based on the remote desktop connection request, the control component can determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection. For example, the control component can obtain the security domain levels of the target client and the target remote desktop based on the remote desktop connection request. If the security domain levels of the target client and the target remote desktop are the same (e.g., both are high), the control component can determine that the remote desktop connection is a same-security-domain connection. Conversely, if the security domain levels of the target client and the target remote desktop are different (e.g., the target client has a high security domain level, and the target remote desktop has a low security domain level), the control component can determine that the remote desktop connection is a cross-security-domain connection.
[0118] For example, the control component may first obtain the first communication information of the target client and the second communication information of the target remote desktop based on the aforementioned remote desktop connection request. The first communication information includes at least the first communication address of the target client, and the second communication information may include the second communication address of the target remote desktop. Optionally, the first communication information may also include a first identifier of the target client, and the second communication information may also include a second identifier of the target remote desktop and / or a target port identifier. The control component may determine the target client corresponding to the first communication address based on the first communication address or the first identifier in the aforementioned remote desktop connection request, and determine the target remote desktop corresponding to the second communication address based on the second communication address or the second identifier, thereby establishing a remote connection between the target client and the target remote desktop based on the remote desktop protocol.
[0119] Furthermore, the control component can determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the aforementioned first and second communication information. It is understood that the first and second communication information can accurately identify whether the remote desktop connection crosses different security domains; the acquisition of the first and second communication information is simple and the judgment efficiency is high.
[0120] In some feasible implementations, if the first communication information includes a first communication address and the second communication information includes a second communication address, the control component can determine whether the first communication address and the second communication address belong to the same predefined communication address segment based on the first communication address of the target client and the second communication address of the target remote desktop.
[0121] For example, the control component can calculate the network address corresponding to the first communication address and the network address corresponding to the second communication address using the subnet mask. The control component can then compare whether the two network addresses are completely identical. If they are identical, it is determined that the two network addresses belong to the same predefined communication address segment; if they are different, it is determined that the two network addresses do not belong to the same predefined communication address segment.
[0122] For example, the first communication address could be "192.168.1.10", the second communication address could be "192.168.1.20", the predefined communication address range is "192.168.1.0 / 24", and the subnet mask is "255.255.255.0". Through logical calculation, the calculated result of the first communication address is "192.168.1.0", and the calculated result of the second communication address is also "192.168.1.0". It can be seen that the calculated results of the first and second communication addresses are the same, therefore they belong to the same predefined communication address range.
[0123] Optionally, the control component can also determine the security domain levels of the target client and the target remote desktop in real time through other methods. For example, the control component can obtain a security domain partitioning policy. This policy can be pre-stored in the control component or generated in real time by an artificial intelligence model by analyzing factors such as the remote desktop connection environment and network connectivity. Based on the security domain partitioning policy, the control component can determine the first security domain level corresponding to the target client and the second security domain level corresponding to the target remote desktop. In this way, the control component can partition the security domain levels of the target client and the target remote desktop in real time, which is applicable to remote desktop connection scenarios where the security domain levels of the first and second communication addresses have not been pre-defined, further improving applicability.
[0124] In some feasible implementations, the control component can determine a first identifier of the target client from a pre-stored database in the data storage space based on the first communication address, and determine a second identifier of the target remote desktop from the pre-stored database based on the second communication address. In other words, the data storage space can pre-store a first security domain level of the target client and a second security domain level of the target remote desktop. The first security domain level is marked and indexed by the first identifier, and the second security domain level is marked and indexed by the second identifier. Thus, the control component can obtain the first security domain level of the target client corresponding to the first communication address from the data storage space using the first identifier, and obtain the second security domain level of the target remote desktop corresponding to the second communication address from the data storage space based on the second identifier.
[0125] Optionally, if the first communication information includes a first identifier and the second communication information includes a second identifier, the control component can also directly obtain the first security domain level and the second security domain level from the data storage space based on the first identifier and the second identifier.
[0126] In some feasible implementations, after obtaining the first security domain level of the target client and the second security domain level of the target remote desktop, the control component can compare the first and second security domain levels to determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection. The control component can determine that the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection when it detects that the second and first security domain levels are different. The control component can also determine that the remote desktop connection between the target client and the target remote desktop is a same-security-domain connection when it detects that the second and first security domain levels are the same. Using this application, the first and second security domain levels can be directly retrieved from the data storage space via the first communication address of the target client and the second communication address of the target remote desktop, thereby saving the time of real-time judgment of the first and second security domain levels and thus improving the acquisition speed of the first and second security domain levels.
[0127] In some feasible implementations, before the control component determines whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, the control component may authenticate the user in response to an access request initiated by the user through the target client. For example, the control component may verify the accuracy of the username and password entered by the user, and confirm the user's authentication is successful after the username and password verification is successful.
[0128] After successful identity authentication, the control component can determine whether two-factor authentication is required based on preset risk control rules. For example, the risk control rules could be: if the login location is detected as an unfamiliar location, or the login device is detected as an unfamiliar device, or the wrong password is entered three times, two-factor authentication is required. For instance, when the control component detects that the user is logging into the device for the first time, it can determine that the user needs to perform two-factor authentication.
[0129] The control component can guide the user to complete at least one two-factor authentication, and respond to the access request after successful two-factor authentication to determine the target proxy server. The two-factor authentication may include one or more of mobile verification codes, fingerprints, facial recognition, or hardware tokens. The proxy server 20 can determine that the target client's two-factor authentication has passed when the authorization validity verification of the two-factor authentication is successful, determine the target proxy server, and authorize the target client to transmit remote desktop connection requests.
[0130] This approach improves the accuracy of user authentication, ensuring that remote desktop connection requests are not forged by other devices or personnel, thus further enhancing the security of remote desktop connections. Furthermore, this application can flexibly determine whether two-factor authentication is required based on risk control rules, and can also flexibly choose the two-factor authentication method, making it more versatile.
[0131] Step S102: If the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, determine the target proxy server used to connect the target client and the target remote desktop.
[0132] In some feasible implementations, if the control component determines that the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, it can determine the target proxy server used for the remote desktop connection. If the control component determines that the remote desktop connection between the target client and the target remote desktop is a same-security domain connection, it can directly bridge the target client and the target remote desktop without enabling the target proxy server.
[0133] In some feasible implementations, when determining the target proxy server, the control component may first obtain the load and / or network latency of each proxy server in the proxy server pool. For example: Proxy server B has a load rate of 80% and excellent network latency; proxy server C has a load rate of 50% and poor network latency; and proxy server D has a load rate of 60% and good network latency.
[0134] The control component can determine the target proxy server from the aforementioned proxy server pool based on the load and / or network latency of each proxy server. If the remote desktop connection has high requirements for network latency, the control component can prioritize comparing the network latency of each proxy server to determine the target proxy server. For example, among the aforementioned proxy servers B, C, and D, proxy server B can be determined as the target proxy server based on network latency.
[0135] If remote desktop connections are highly load-sensitive, the control component can prioritize comparing the load of each proxy server to determine the target proxy server. For example, among proxy servers B, C, and D mentioned above, proxy server C can be selected as the target proxy server based on its load.
[0136] If remote desktop connections have high requirements for both network latency and load, the control component can comprehensively compare the network latency and load of various proxy servers to determine the target proxy server. For example, among proxy servers B, C, and D mentioned above, based on a comprehensive comparison of network latency and load, proxy server D can be determined as the target proxy server.
[0137] In this way, the target proxy server 20 used for remote desktop connections can be guaranteed to have sufficient computing power and good network performance, and can flexibly adapt to the actual needs of different application scenarios, thereby ensuring the stability of remote desktop connections and further improving applicability.
[0138] In some feasible implementations, after determining the proxy server used to connect the target client and the target remote desktop, the control component can return the address information of the target proxy server to the target client and notify the target proxy server of a remote desktop connection request from the target client to the target remote desktop, thereby triggering the target proxy server to accept the remote desktop connection request. For example, if the control component determines that proxy server B is the target proxy server, it can return the address information of proxy server B to the target client.
[0139] In this way, by returning the address information of the target proxy server to the target client, the target client can accurately establish a remote desktop connection with the target proxy server. Furthermore, by notifying the target proxy server, the target proxy server can prepare for the connection before the target client initiates the remote desktop connection, thereby improving the connection efficiency of the remote desktop connection.
[0140] Optionally, in some feasible implementations, after notifying the target proxy server of a remote desktop connection request from the target client to the target remote desktop, the control component may obtain a target security random number and a target port identifier returned by the target proxy server. The target port identifier is determined by the target proxy server based on load requirements and / or network latency requirements. The target security random number can be a randomly generated fixed set of data used for verification again when establishing the remote desktop connection. Thus, by obtaining the target security random number to perform verification again when establishing the remote desktop connection between the control component and the target proxy server, forgery of remote desktop connection requests by other devices can be prevented, further enhancing data security. Furthermore, the target port can be matched based on load requirements and / or network latency requirements, thereby improving the utilization of computing resources.
[0141] Step S103: Establish a remote desktop connection between the control component and the target proxy server, and instruct the target proxy server to establish a remote desktop connection with the target remote desktop client, thereby bridging the target client and the target remote desktop client via the target proxy server.
[0142] In some feasible implementations, the control component may first establish a remote desktop connection with the aforementioned target proxy server.
[0143] The control component can encrypt remote desktop connection requests obtained from the target client to obtain encrypted remote desktop connection requests. For example, some or all information in the remote desktop connection request can be encrypted using a key to obtain an encrypted remote desktop connection request. The control component can initiate an encrypted remote desktop connection request to the target proxy server based on the target proxy server's address information, triggering the target proxy server to respond with an encrypted remote desktop connection request to establish a remote desktop connection between the control component and the target proxy server when the authorization validity of the encrypted remote desktop connection request is verified. Thus, by encrypting the remote desktop connection request, the leakage of critical information in the remote desktop connection request can be prevented, thereby further enhancing the security of the remote desktop connection.
[0144] In some feasible implementations, the control component instructs the target proxy server to establish a remote desktop connection with the target remote desktop, thereby bridging the target client and the target remote desktop via the target proxy server. Specifically, after transmitting an encrypted remote desktop connection request to the target proxy server, the control component instructs the target proxy server to initiate a standard remote desktop connection request to the target remote desktop. This causes the target remote desktop to respond and accept the standard remote desktop connection after verifying its identity. In other words, the process from the control component transmitting the encrypted remote desktop connection to the target proxy server to the target proxy server initiating a standard remote desktop connection request to the target remote desktop is automatically triggered and requires no manual intervention.
[0145] In this way, since the remote desktop connection to the target remote desktop is not initiated directly through the target client, but rather by instructing the target proxy server to initiate a standard remote desktop connection request, the target proxy server can bridge the target client and the target remote desktop. As a result, the target proxy server can uniformly manage the remote desktop connection, which is highly secure and controllable.
[0146] Step S104: Obtain the image data stream transmitted from the target proxy server to the target client, and send the image data stream to the target client. The image data stream is data that the target proxy server allows to pass through and forward to the target client during data transmission, provided that all other communication data except the image data stream in the remote desktop protocol is blocked.
[0147] In some feasible implementations, the control component may acquire the image data stream transmitted by the target proxy server. This image data stream is carried within data packets belonging to the graphics update channel.
[0148] Specifically, the control component can trigger the target proxy server to parse the first remote desktop protocol data packet from the target remote desktop, so that the target proxy server obtains data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel. Optionally, the aforementioned first remote desktop protocol data packet may also include data packets belonging to other channels, which is not limited in this application.
[0149] The control component can receive data packets belonging to the graphics update channel transmitted by the target proxy server. These data packets belonging to the graphics update channel are those that the target proxy server allows to pass through and forward to the aforementioned target client, provided that it discards all other data packets (such as those belonging to the clipboard channel and those belonging to the device mapping channel).
[0150] The control component can obtain the image data stream based on the data packets belonging to the graphics update channel. Specifically, the control component can parse the data packets belonging to the graphics update channel to obtain the image data stream. It should be noted that the data packets belonging to the graphics update channel can only be parsed by the control component. Target clients without the control component installed cannot obtain the image data stream based on the data packets belonging to the graphics update channel, thus further enhancing the security of communication data and preventing communication data leakage.
[0151] In some feasible implementations, the control component can also receive a second remote desktop protocol data packet generated by the target client during the remote desktop connection process, and transmit the second remote desktop protocol data packet to the target proxy server for storage. The second remote desktop protocol data packet may include data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel generated by the target client. It is understood that the control component can be used to bridge the target client and the target proxy server for communication data interaction. Thus, by transmitting the second remote desktop protocol data packet to the target proxy server, the target proxy server can centrally manage the communication data during the remote desktop connection process, thereby increasing the controllability and traceability of the communication data.
[0152] In summary, the control component can determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection. If it is determined to be a cross-security domain connection, it identifies the target proxy server used to connect the target client and the target remote desktop, thus establishing a remote desktop connection between the control component and the target proxy server. This connection bridges the target client and the target remote desktop, allowing the control component to obtain the image data stream transmitted by the target proxy server. Since all communication data passes through the target proxy server during a cross-security domain connection, the target proxy server can centrally manage the communication data, resulting in strong controllability. Furthermore, during a cross-security domain connection, the control component can only receive the image data stream transmitted after the target proxy server has blocked all communication data except for the image data stream, thus preventing the leakage of other communication data and ensuring strong security.
[0153] In some feasible implementations, this application also provides a remote desktop connection method based on a remote desktop protocol executed by a target proxy server. For ease of understanding, please refer to Figure 3 in addition to Figures 1 and 2. Figure 3 is a flowchart illustrating the remote desktop connection method based on a remote desktop protocol executed by a target proxy server provided in this application. The following description uses the target proxy server as the execution subject to illustrate the remote desktop connection method based on a remote desktop protocol as shown in Figure 3. The target proxy server can be the target proxy server 20 provided in the embodiment corresponding to Figure 1. The remote desktop connection method based on a remote desktop protocol executed by the target proxy server may include the following steps: Step S201, receiving a remote desktop connection request transmitted by a control component, establishing a remote desktop connection between the target proxy server and the control component based on the remote desktop connection request, and establishing a remote desktop connection between the target proxy server and the target remote desktop client to bridge the target client and the target remote desktop client.
[0154] In some feasible implementations, the aforementioned remote desktop connection request may be an encrypted remote desktop connection request. Upon receiving the encrypted remote desktop connection request transmitted by the control component, the target proxy server can verify the authorization validity of the encrypted remote desktop connection request. For example, the encrypted remote desktop connection request may include first communication information of the target client, second communication information of the target remote desktop, a verification token, etc. The proxy server can verify the authorization validity of the remote desktop connection request based on the verification token, the first communication address, and the second communication address in the remote desktop connection request. For example, the proxy server can verify the authorization validity and permission scope of the encrypted signature of the verification token based on the verification token in the request header of the remote desktop connection request. The proxy server can also verify whether the first communication address and the second communication address are addresses that allow remote desktop connections, thereby preventing unauthorized terminal devices from accessing the system. The proxy server can also verify whether the request path of the remote desktop connection request conforms to the permission scope indicated by the verification token. It is understood that the authorization validity verification of the remote desktop connection request is successful if and only if the verification token, the first communication address, and the second communication address are all verified successfully.
[0155] In some feasible implementations, when the authorization validity verification of the encrypted remote desktop connection request passes, the target proxy server responds to the encrypted remote desktop connection request to establish a remote desktop connection between the control component and the target proxy server. The target proxy server can determine the first communication address of the target client based on first communication information and the second communication address of the target remote desktop based on second communication information. Since the control component can be installed in the target client, the communication address of the control component can be the first communication address of the target client. The control component can establish a remote desktop connection with the target proxy server based on the remote desktop protocol and the first communication address. The control component can also instruct the target proxy server to establish a remote desktop connection with the target remote desktop based on the second communication address.
[0156] It is understood that the target proxy server can be used to bridge the aforementioned target client and target remote desktop, thereby bypassing network connection restrictions across different security domains and circumventing the problem of networks belonging to different security domains within an enterprise network being unable to connect to each other. By employing this application, the authorization validity of remote desktop connection requests can be verified, preventing other devices from forging remote desktop connection requests and further enhancing data security.
[0157] In some feasible implementations, before receiving remote desktop connection requests transmitted by the control component, the target proxy server may open a remote desktop connection request receiving channel upon receiving notification from the control component that a remote desktop connection request from the target client to the target remote desktop. This receiving channel can be a dedicated channel for receiving remote desktop connection requests. Thus, by opening the target proxy server's receiving channel in advance, reception failures due to the receiving channel not being open can be avoided, and the waiting time for opening the receiving channel during the remote desktop connection process can be saved, thereby improving the efficiency of the remote desktop connection.
[0158] Optionally, upon receiving the aforementioned notification, the target proxy server may generate a target security random number and a target port identifier for the target port used to establish a remote desktop connection, and return the target security random number and target port identifier to the control component.
[0159] For example, the aforementioned target security random number can be a randomly generated string by the target proxy server, which can be used to verify the identity of the target client. The target proxy server can predict the load requirements when the target client and the target remote desktop client make a remote desktop connection using artificial intelligence models, load algorithms, etc., and allocate a target port identifier according to the load requirements so that the target proxy server uses a port that matches the load requirements for the remote desktop connection. In other words, the target proxy server can determine a suitable target port based on load requirements and / or network latency requirements. For example, the idle ports in the target proxy server may include: port E, port F, and port G, where port E supports connections with high load requirements, port F supports connections with medium load requirements, and port G supports connections with low load requirements. If the target proxy server obtains that the load requirements of the remote desktop connection between the target client and the target remote desktop client are medium load requirements, it can determine the port identifier of port F as the target port identifier. If the aforementioned port F is occupied (i.e., not an idle port), the target proxy server can determine the port identifier of port E as the target port identifier. It is understandable that port E can support high, medium, and low load demands, while port G can only support low load demands and cannot support medium load demands. Therefore, the port identifier of port E is chosen as the target port identifier. Each port corresponds to a unique port identifier, which identifies the port uniquely.
[0160] In some feasible implementations, the target proxy server can receive a security random number to be verified and a port identifier to be verified transmitted by the target client. When establishing a remote desktop connection with the target client, the target proxy server can verify whether the security random number to be verified is the same as the target security random number, and whether the port identifier to be verified is the same as the target port identifier. If the proxy server detects that the security random number to be verified and the target security random number are the same, it confirms that the security random number to be verified has passed verification; if it detects that the port identifier to be verified is the same as the target port identifier, it confirms that the security random number to be verified has passed verification.
[0161] For example, the target security random number is "1234", and the target port identifier is "Port H". If the security random number to be verified is "1224", which is different from the target security random number "1234", the verification of the security random number to be verified will fail; if the security random number to be verified is "1234", which is the same as the target security random number "1234", the verification of the security random number to be verified will pass. Similarly, if the port identifier to be verified is "Port J", which is different from the target port identifier "Port H", the verification of the port identifier to be verified will fail; if the port identifier to be verified is "Port H", which is the same as the target port identifier "Port H", the verification of the port identifier to be verified will pass.
[0162] The target proxy server can establish a remote desktop connection based on the target port indicated by the target port identifier when it detects that the security random number to be verified and the target security random number are the same, and the port identifier to be verified and the target port identifier are the same (i.e., the verification of both the security random number to be verified and the port identifier to be verified is successful). For example, the target proxy server can set port H as the target port for establishing a remote desktop connection based on the target port identifier "port H", thereby establishing a remote desktop connection through port H based on the remote desktop protocol.
[0163] In this way, the target proxy server can re-verify the target client's identity information when establishing a remote desktop connection with the target client to improve security and ensure the accuracy of the target port used to establish the remote desktop connection.
[0164] Furthermore, the target proxy server can also establish a remote desktop connection with the target remote desktop client to bridge the target client and the target remote desktop client.
[0165] For example, the target proxy server can initiate a standard remote desktop connection request to the target remote desktop client. After the target remote desktop client successfully verifies the identity of the target proxy server, it triggers a response from the target remote desktop client, accepting the standard remote desktop connection request to establish a remote desktop connection between the target proxy server and the target remote desktop client. It can be understood that by initiating a standard remote desktop connection request to the target remote desktop client, the target remote desktop client can establish a remote desktop connection even without possessing the key for decryption, eliminating the need for additional key storage and thus broadening its applicability.
[0166] Step S202: During data transmission, prevent the target remote desktop from transmitting all communication data other than the image data stream in the remote desktop protocol to the control component.
[0167] In some feasible implementations, the target proxy server can receive communication data from the target remote desktop and filter this data to prevent the target remote desktop from transmitting any communication data other than the image data stream in the remote desktop protocol to the control component. It is understood that because the target client and the target remote desktop have different security protection levels when connecting across security domains, filtering of communication data is necessary to prevent the leakage of critical data. For example, devices on lower-security-domain networks should be prevented from obtaining critical data from devices on higher-security-domain networks.
[0168] For example, the target proxy server can receive a first Remote Desktop Protocol (RDP) data packet from the target remote desktop client and parse it to obtain data packets belonging to the clipboard channel, the device mapping channel, and the graphics update channel. The target proxy server can discard the data packets belonging to the clipboard channel and the device mapping channel, and then send the data packets belonging to the graphics update channel to the control component. In other words, the data packets belonging to the graphics update channel are those allowed to pass through and be sent to the target client, provided that the data packets belonging to the clipboard channel and the device mapping channel are discarded. The target proxy server can trigger the control component to parse the data packets belonging to the graphics update channel to obtain the image data stream.
[0169] It is understandable that, since the target proxy server only transmits data packets belonging to the graphics update channel, the control component can only obtain the image data stream parsed from the data packets belonging to the graphics update channel. This ensures that other communication data besides the image data stream is not transmitted to the control component, thereby guaranteeing the security of the communication data. Furthermore, since the aforementioned data packets need to be parsed by the control component to obtain the image data stream, even if the aforementioned data packets are leaked, the thief cannot obtain the image data stream, thus further enhancing the security of the communication data.
[0170] In some feasible implementations, the target proxy server can also receive a second remote desktop protocol data packet transmitted by the control component during the remote desktop connection process. That is, the target proxy server can receive communication data generated by the target client during the remote desktop connection process. The target proxy server can store the aforementioned first and second remote desktop protocol data packets. The stored first and second remote desktop protocol data packets can be used for data traceability. In this way, the target proxy server can further improve the controllability of communication data and ensure its traceability by uniformly managing communication data from the target client and the target remote desktop.
[0171] In some feasible implementations, the target proxy server may further encrypt the first remote desktop protocol data packet and the second remote desktop protocol data packet at at least one encryption level based on at least one security domain level, thereby generating encrypted communication data with at least one encryption level. The target proxy server may store the encrypted communication data with at least one encryption level. The at least one security domain level includes at least the first security domain level of the target client or the second security domain level of the target remote desktop. That is, the security domain levels may include only the first security domain level, only the second security domain level, or other security domain levels; this application does not impose any limitations. One security domain level corresponds to one encryption level, and one encryption level may correspond to at least one security domain level. Encrypted communication data with one encryption level is used for data backtracking performed by the client or remote desktop corresponding to the security domain level of the encryption level. In other words, the proxy server 20 can encrypt the same data packet at different levels to generate encrypted communication data with different encryption levels.
[0172] For example, the encryption level of encrypted communication data can include: high encryption level, medium encryption level, and low encryption level. If the content of a first remote desktop protocol data packet is: "Password: 123; Account: aaa; Time: 6 o'clock; Action: Login", then "Password: 123" corresponds to high encryption level communication data, and after encryption, high encryption level encrypted communication data can be generated; "Account: aaa" corresponds to medium encryption level communication data, and after encryption, medium encryption level encrypted communication data can be generated; "Time: 6 o'clock" and "Action: Login" correspond to low encryption level communication data, and after encryption, low encryption level encrypted communication data can be generated. The target client can be exemplarily at the medium security level, and the target remote desktop client can be exemplarily at the high security level.
[0173] When the aforementioned communication data is encrypted at a high level, the proxy server 20 can encrypt the "password: 123" and display it in ciphertext form, which can only be viewed by devices accessing the security domain corresponding to the high encryption level. The encryption level decreases sequentially from high to low.
[0174] For example, the aforementioned high security level can correspond to a high encryption level, medium security level can correspond to a medium encryption level, and low security level can correspond to a low encryption level. In this case, a device with a high security level can view encrypted communication data corresponding to encryption levels below the high encryption level, such as high, medium, and low encryption levels. A device with a medium security level can view encrypted communication data corresponding to encryption levels below the medium encryption level, such as medium and low encryption levels, but cannot view high encryption level encrypted communication data (i.e., high encryption level encrypted communication data is ciphertext), and so on.
[0175] For example, in the above example, the target proxy server only allows target remote desktop clients with a high security domain level to view "Password: 123; Account: aaa; Time: 6 o'clock; Action: Login" in plaintext, while the target client with a medium security domain level can only view "Account: aaa; Time: 6 o'clock; Action: Login" in plaintext, while "Password: 123" is in ciphertext form, meaning "Password: 123" is encrypted. It can be understood that the proxy server 20 can provide the same set of encrypted communication data containing different encryption levels to devices with different security domain levels, allowing devices with different security domain levels to view different ranges of communication data in plaintext.
[0176] Optionally, in some feasible implementations, one encryption level may correspond to multiple security domain levels. For example, a medium encryption level may correspond to a medium security domain level, a medium-low security domain level, etc. This application does not impose any restrictions.
[0177] In this way, the target proxy server can encrypt the same first remote desktop protocol data packet or the aforementioned second remote desktop protocol data packet at different encryption levels, so that clients or remote desktops with different security domain levels can trace back data based on encrypted communication data with different encryption levels. This prevents remote desktops or clients with lower security domain levels from viewing communication data generated by remote desktops or clients with higher security domain levels, thus avoiding data leakage and further improving data security.
[0178] In summary, this application can receive remote desktop connection requests through a target proxy server, thereby establishing remote desktop connections between the target proxy server and the control component, as well as between the target proxy server and the target remote desktop client, based on the remote desktop connection requests. This prevents the target remote desktop client from transmitting any communication data other than the image data stream in the aforementioned remote desktop protocol to the control component during data transmission. The unified management of communication data through the target proxy server ensures strong controllability of the communication data. Furthermore, it avoids the leakage of communication data other than the image data stream, thus providing strong security.
[0179] In some feasible implementations, this application also provides a remote desktop connection method based on a remote desktop protocol executed by a target client. For ease of understanding, please refer to Figure 4 in addition to Figures 1 to 3. Figure 4 is a flowchart illustrating the remote desktop connection method based on a remote desktop protocol executed by a target client provided in this application. The following description uses the target client as the execution subject to illustrate the remote desktop connection method based on a remote desktop protocol as shown in Figure 4. The target client can be the target client 10 provided in the embodiment corresponding to Figure 1. The remote desktop connection method based on a remote desktop protocol executed by the target client may include the following steps: Step S301, initiating an access request to the control component, and receiving the address information of the target proxy server returned by the control component after the access request has been authenticated.
[0180] In some feasible implementations, the target client can initiate an access request to the control component. For example, the target client can display the control component's login page to the user through a front-end interface. The user's login can be considered as initiating an access request to the control component, thereby triggering the control component to authenticate the access request. The target client can receive the target proxy server's address information returned by the control component after successful authentication of the access request.
[0181] Step S302: Based on the address information of the target proxy server, a remote desktop connection request is initiated to the control component to establish a remote desktop connection between the target client and the target proxy server when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, thereby triggering the target proxy server to bridge the target client and the target remote desktop.
[0182] In some feasible implementations, the target client can initiate a remote desktop connection request to the control component based on the address information of the target proxy server. For example, the target client can display the address information of the target proxy server to the user for confirmation, and generate a remote desktop connection request based on the second address information of the target remote desktop selected by the user and the first address information of the target client. The remote desktop connection request transmitted to the control component can be an unencrypted remote desktop connection request.
[0183] The target client can establish a remote desktop connection between the target client and the target proxy server by controlling the remote desktop connection between the target client and the target remote desktop in the case that the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, thereby triggering the target proxy server to bridge the target client and the target remote desktop.
[0184] In some feasible implementations, if the remote desktop connection between the target client and the target remote desktop is a connection within the same security domain, the target client can establish a remote desktop connection between the target client and the target remote desktop through the control component.
[0185] Step S303: If the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, obtain the image data stream in the remote desktop protocol sent by the control component.
[0186] In some feasible implementations, the target client can obtain the image data stream from the remote desktop protocol parsed by the control component when the remote desktop connection with the target remote desktop is a cross-security domain connection. The target client can also obtain all communication data, including the image data stream, from the remote desktop protocol parsed by the control component when the remote desktop connection with the target remote desktop is a same security domain connection. Exemplary examples of such communication data may be data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, data packets belonging to the graphics update channel, etc., obtained through data packet parsing.
[0187] In some feasible implementations, the target client can send a second remote desktop protocol data packet generated during the remote desktop connection with the target remote desktop to the control component, so that the control component can store the second remote desktop protocol data packet to the target proxy server. It is understood that by transmitting the second remote desktop protocol data packet to the target proxy server for storage, communication data can be uniformly managed through the target proxy server, which helps to improve the controllability and traceability of communication data.
[0188] In summary, the target client can initiate an access request to the control component and receive the address information of the target proxy server. Based on this address information, it can then initiate a remote desktop connection request to the control component. In the case of a cross-security domain connection between the target client and the target remote desktop, a remote desktop connection is established through the target proxy server, and the client obtains the image data stream from the remote desktop protocol parsed by the control component. Because the target client establishes a remote desktop connection using the target proxy server during cross-security domain connections, the target proxy server can centrally manage the communication data, ensuring that the target client only receives the image data stream. This results in high security and strong controllability of the communication data.
[0189] This application also provides a remote desktop connection device based on a remote desktop protocol executed by a control component. Please refer to Figure 5, which is a structural schematic diagram of the remote desktop connection device based on a remote desktop protocol executed by a control component provided in this application. As shown in Figure 5, the remote desktop connection device 100 based on a remote desktop protocol executed by a control component can be a computer device having a computer program (including program code) implementing the remote desktop connection method based on a remote desktop protocol. The remote desktop connection device 100 based on a remote desktop protocol executed by the control component can also be a computer program, such as an application software. This device can be used to execute corresponding steps in the remote desktop connection method based on a remote desktop protocol provided in this application. As shown in Figure 5, the aforementioned remote desktop connection device 100 based on a remote desktop protocol executed by a control component may include: a first judgment module 101, a determination module 102, a first connection module 103, and a first acquisition module 104.
[0190] The first judgment module 101 is used to determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the remote desktop connection request.
[0191] The determination module 102 is used to determine the target proxy server for connecting the target client and the target remote desktop when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection.
[0192] The first connection module 103 is used to establish a remote desktop connection between the control component and the target proxy server, and to instruct the target proxy server to establish a remote desktop connection with the target remote desktop client, thereby bridging the target client and the target remote desktop client via the target proxy server.
[0193] The first acquisition module 104 is used to acquire the image data stream transmitted from the target proxy server to the target client and send the image data stream to the target client. The image data stream is data that the target proxy server allows to pass through and forward to the target client during data transmission, provided that all other communication data except the image data stream in the remote desktop protocol is blocked.
[0194] In some feasible implementations, the remote desktop connection device 100 based on the remote desktop protocol, which is executed by the control component, further includes an authentication module 105 and a second judgment module 106.
[0195] The authentication module 105 is used to authenticate the user in response to the access request initiated by the user through the target client to the control component.
[0196] The second judgment module 106 is used to determine whether two-factor authentication is required after the above identity authentication is passed, based on the preset risk control rules; if required, it guides the user to complete at least one two-factor authentication, so as to respond to the above access request after the above at least one two-factor authentication is successful to determine the above target proxy server.
[0197] In some feasible implementations, the second judgment module 106 includes a first acquisition unit 1061 and a judgment unit 1062.
[0198] The first acquisition unit 1061 is used to acquire the first communication information of the target client and the second communication information of the target remote desktop based on the remote desktop connection request.
[0199] The judgment unit 1062 is used to determine, based on the first communication information and the second communication information, whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection.
[0200] In some feasible implementations, the judgment unit 1062 includes a judgment subunit 10621 and a first determination subunit 10622.
[0201] The judgment subunit 10621 is used to determine whether the first communication address and the second communication address belong to the same predefined communication address segment based on the first communication address of the target client and the second communication address of the target remote desktop.
[0202] The first determining subunit 10622 is used to determine that the remote desktop connection is a cross-security domain connection when it is detected that the first communication address and the second communication address do not belong to the same predefined communication address segment.
[0203] In some feasible implementations, the determination unit 1062 further includes: an acquisition subunit 10623 and a second determination subunit 10624.
[0204] The acquisition subunit 10623 is used to obtain the first security domain level corresponding to the first communication address from the data storage space based on the first communication address, and to obtain the second security domain level corresponding to the second communication address based on the second communication address.
[0205] The second determining subunit 10624 is used to determine that the remote desktop connection is a cross-security domain connection when the first security domain level and the second security domain level are detected to be different.
[0206] In some feasible implementations, the determining module 102 includes a second acquisition unit 1021 and a determining unit 1022.
[0207] The second acquisition unit 1021 is used to acquire the load status and / or network latency status of each proxy server in the proxy server pool.
[0208] The determining unit 1022 is used to determine, based on the load and / or network latency of each of the aforementioned proxy servers, the target proxy server used to connect the target client and the target remote desktop from the aforementioned proxy server pool.
[0209] In some feasible implementations, the remote desktop connection device 100 based on the remote desktop protocol, which is executed by the control component, further includes a return module 107.
[0210] The return module 107 is used to return the address information of the target proxy server to the target client and notify the target proxy server that there is a remote desktop connection request from the target client to the target remote desktop, so as to trigger the target proxy server to receive the remote desktop connection request.
[0211] In some feasible implementations, the first connection module 103 includes an encryption unit 1031 and a first sending unit 1032.
[0212] The encryption unit 1031 is used to encrypt the remote desktop connection request obtained from the target client to obtain an encrypted remote desktop connection request.
[0213] The first sending unit 1032 is used to initiate the encrypted remote desktop connection request to the target proxy server based on the address information of the target proxy server, so as to trigger the target proxy server to respond to the encrypted remote desktop connection request when the authorization validity verification of the encrypted remote desktop connection request is passed, so as to establish a remote desktop connection between the control component and the target proxy server.
[0214] In some feasible implementations, the first connection module 103 is further configured to trigger the target proxy server to initiate a standard remote desktop connection request to the target remote desktop, so that the target proxy server, after verifying the identity of the target proxy server on the target remote desktop, triggers the target remote desktop to respond and accept the standard remote desktop connection.
[0215] In some feasible implementations, the first acquisition module 104 includes a triggering unit 1041 and a first receiving unit 1042.
[0216] Triggering unit 1041 is used to trigger the target proxy server to parse the first remote desktop protocol data packet from the target remote desktop terminal to obtain the data packet belonging to the clipboard channel, the data packet belonging to the device mapping channel, and the data packet belonging to the graphics update channel.
[0217] The first receiving unit 1042 is configured to receive data packets belonging to the graphics update channel transmitted by the target proxy server, obtain the image data stream based on the data packets belonging to the graphics update channel, and send the image data stream to the target client. The data packets belonging to the graphics update channel are data packets that the target proxy server allows to pass through and forward to the target client after discarding data packets belonging to the clipboard channel and data packets belonging to the device mapping channel.
[0218] In some feasible implementations, the remote desktop connection device 100 based on the remote desktop protocol executed by the control component further includes: a first receiving module 108.
[0219] The first receiving module 108 is used to receive the second remote desktop protocol data packet generated by the target client during the remote desktop connection process between the target client and the target remote desktop terminal, and to transmit the second remote desktop protocol data packet to the target proxy server.
[0220] In some feasible implementations, the implementation methods of the various modules and / or units included in the remote desktop connection device 100 based on the remote desktop protocol executed by the control component can be referred to the implementation methods in the embodiments provided in FIG2 above, and will not be repeated.
[0221] Using this application, the first judgment module 101 can determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection. When the determination module 102 determines that the remote desktop connection is a cross-security domain connection, it identifies the target proxy server used to connect the target client and the target remote desktop. Then, the first connection module 103 establishes a remote desktop connection between the control component and the target proxy server, bridging the target client and the target remote desktop via the target proxy server. Subsequently, the first acquisition module 104 obtains the image data stream transmitted by the target proxy server and sends the image data stream to the target client. Since all communication data passes through the target proxy server during a cross-security domain remote desktop connection, the communication data can be uniformly managed through the target proxy server, resulting in strong controllability of the communication data. Furthermore, during a cross-security domain remote desktop connection, the control component can only receive the image data stream transmitted after the target proxy server has blocked all communication data except for the image data stream, thus preventing the leakage of other communication data besides the image data stream and ensuring strong security.
[0222] This application also provides a remote desktop connection device based on the Remote Desktop Protocol executed by a target proxy server. Please refer to Figure 6, which is a schematic diagram of the structure of the remote desktop connection device based on the Remote Desktop Protocol executed by the target proxy server provided in this application. As shown in Figure 6, the remote desktop connection device 200 based on the Remote Desktop Protocol executed by the target proxy server can be a computer device having a computer program (including program code) implementing the remote desktop connection method based on the Remote Desktop Protocol. The remote desktop connection device 200 based on the Remote Desktop Protocol executed by the target proxy server can also be a computer program, such as an application software. This device can be used to execute the corresponding steps in the remote desktop connection method based on the Remote Desktop Protocol provided in this application. As shown in Figure 6, the aforementioned remote desktop connection device 200 based on the Remote Desktop Protocol executed by the target proxy server may include: a second connection module 201 and a blocking module 202.
[0223] The second connection module 201 is used to receive a remote desktop connection request transmitted by the control component, establish a remote desktop connection between the target proxy server and the control component based on the remote desktop connection request, and establish a remote desktop connection between the target proxy server and the target remote desktop client to bridge the target client and the target remote desktop client.
[0224] Blocking module 202 is used to prevent the target remote desktop from transmitting all communication data other than the image data stream in the remote desktop protocol to the control component during data transmission.
[0225] In some feasible implementations, the remote desktop connection device 200 based on the remote desktop protocol, executed by the target proxy server, also includes a channel opening module 203.
[0226] The channel opening module 203 is used to open a remote desktop connection request receiving channel to receive the remote desktop connection request based on the receiving channel when the control component notifies that there is a remote desktop connection request from the target client to the target remote desktop.
[0227] In some feasible implementations, the second connection module 201 includes a verification unit 2011 and a response unit 2012.
[0228] Verification unit 2011 is used to verify the authorization validity of the encrypted remote desktop connection request.
[0229] The response unit 2012 is configured to respond to the encrypted remote desktop connection request to establish a remote desktop connection between the control component and the target proxy server when the authorization validity verification of the encrypted remote desktop connection request passes.
[0230] In some feasible implementations, the second connection module 201 further includes a triggering unit 2013.
[0231] Triggering unit 2013 is used to initiate a standard remote desktop connection request to the target remote desktop client. After the target remote desktop client successfully verifies the identity of the target proxy server, it triggers the target remote desktop client to respond to and accept the standard remote desktop connection request, so as to establish a remote desktop connection between the target proxy server and the target remote desktop client.
[0232] In some feasible implementations, the blocking module 202 includes: a second receiving unit 2021 and a second sending unit 2022.
[0233] The second receiving unit 2021 is used to receive the first remote desktop protocol data packet from the target remote desktop terminal and parse the first remote desktop protocol data packet to obtain data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel.
[0234] The second sending unit 2022 is used to send the data packets belonging to the graphics update channel to the control component to trigger the control component to obtain the image data stream based on the data packets belonging to the graphics update channel. The data packets belonging to the graphics update channel are data packets that are allowed to pass through and be sent to the target client, provided that the data packets belonging to the clipboard channel and the data packets belonging to the device mapping channel are discarded.
[0235] In some feasible implementations, the remote desktop connection device 200 based on the remote desktop protocol executed by the target proxy server further includes: a second receiving module 204 and a storage module 205.
[0236] The second receiving module 204 is used to receive the second remote desktop protocol data packet transmitted by the control component during the remote desktop connection process.
[0237] The storage module 205 is used to store the first remote desktop protocol data packet and the second remote desktop protocol data packet, wherein the stored first remote desktop protocol data packet and the second remote desktop protocol data packet are used for data backtracking.
[0238] In some feasible implementations, the storage module 205 is further configured to encrypt the first remote desktop protocol data packet and the second remote desktop protocol data packet at at least one encryption level based on at least one security domain level, generating and storing encrypted communication data at the at least one encryption level. Wherein, the at least one security domain level includes at least the first security domain level of the target client or the second security domain level of the target remote desktop, one security domain level corresponds to one encryption level, and the encrypted communication data at one encryption level is used for data backtracking performed by the client or remote desktop corresponding to the encryption level of the security domain level.
[0239] In some feasible implementations, the implementation methods of each module and / or unit included in the remote desktop connection device 200 based on the remote desktop protocol executed by the target proxy server can refer to the implementation methods in the embodiments provided in FIG3 above, and will not be repeated.
[0240] Using this application, a remote desktop connection request can be received through the second connection module 201, thereby establishing a remote desktop connection between the target proxy server and the control component, as well as a remote desktop connection between the target proxy server and the target remote desktop. Furthermore, the blocking module 202 can prevent the target remote desktop from transmitting any communication data other than the image data stream in the aforementioned remote desktop protocol to the control component during data transmission. The unified management of communication data through the target proxy server ensures strong controllability of the communication data. In addition, leakage of communication data other than the image data stream can be avoided, resulting in strong security.
[0241] This application also provides a remote desktop connection device based on a remote desktop protocol executed by a target client. Please refer to Figure 7, which is a schematic diagram of the structure of the remote desktop connection device based on a remote desktop protocol executed by a target client provided in this application. As shown in Figure 7, the remote desktop connection device 300 based on a remote desktop protocol executed by the target client can be a computer device having a computer program (including program code) implementing the remote desktop connection method based on a remote desktop protocol. The remote desktop connection device 300 based on a remote desktop protocol executed by the target client can also be a computer program, such as an application software. This device can be used to execute the corresponding steps in the remote desktop connection method based on a remote desktop protocol provided in this application. As shown in Figure 7, the aforementioned remote desktop connection device 300 based on a remote desktop protocol executed by the target client may include: a communication module 301, a third connection module 302, and a second acquisition module 303.
[0242] The communication module 301 is used to initiate an access request to the control component and receive the address information of the target proxy server returned by the control component after the access request is successfully authenticated.
[0243] The third connection module 302 is used to initiate a remote desktop connection request to the control component based on the address information of the target proxy server, so as to establish a remote desktop connection between the target client and the target proxy server when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection through the control component, so as to trigger the target proxy server to bridge the target client and the target remote desktop.
[0244] The second acquisition module 303 is used to acquire the image data stream in the remote desktop protocol sent by the control component when the remote desktop connection between the target client and the target remote desktop terminal is a cross-security domain connection.
[0245] In some feasible implementations, the remote desktop connection device 300 based on the remote desktop protocol executed by the target client also includes a sending module 304.
[0246] The sending module 304 is used to send the second remote desktop protocol data packet generated during the remote desktop connection process between the target client and the target remote desktop terminal to the control component, so that the control component can store the second remote desktop protocol data packet in the target proxy server.
[0247] In some feasible implementations, the implementation methods of each module and / or unit included in the remote desktop connection device 300 based on the remote desktop protocol executed by the target client can refer to the implementation methods in the embodiments provided in FIG4 above, and will not be repeated.
[0248] Using this application, the target client can initiate an access request to the control component through the communication module 301 and receive the address information of the target proxy server. Then, based on the address information, the third connection module 302 initiates a remote desktop connection request to the control component. In the case of a cross-security domain connection between the target client and the target remote desktop, a remote desktop connection is established between the target client and the target remote desktop through the target proxy server. The second acquisition module 303 then acquires the image data stream from the remote desktop protocol parsed by the control component. Since the target client establishes a remote desktop connection through the target proxy server during cross-security domain connections, the target proxy server can centrally manage the communication data, ensuring that the target client only receives the image data stream. This results in high security and strong controllability of the communication data.
[0249] Please refer to Figure 8, which is a schematic diagram of the terminal device provided in this application. As shown in Figure 8, the terminal device 1000 may include: a processor 1001, a network interface 1004, a memory 1005, and a controller 1006. Furthermore, the terminal device 1000 may also include: a user interface 1003, and at least one communication bus 1002. The communication bus 1002 is used to implement communication between these components. The user interface 1003 may include a display screen and a keyboard; optionally, the user interface 1003 may also include a standard wired interface or a wireless interface. The network interface 1004 may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory 1005 may include random access memory (RAM) and non-volatile memory (NVM), such as erasable programmable read-only memory (EPROM). The memory 1005 may also optionally be at least one storage device located remotely from the aforementioned processor 1001. The controller 1006 described above can be used to receive and process data sent by the processor, and can be used to perform the functions implemented by the controller in the embodiment provided in FIG1 above. As shown in FIG8, the memory 1005, as a computer-readable storage medium, may include an operating system, a network communication module, a user interface module, and a device control application. Optionally, in this embodiment, the memory 1005 can also perform the functions of the memory or data storage space in the remote desktop connection system based on the remote desktop protocol provided in FIG1 above. The processor 1001 described in this embodiment can perform the functions performed by the processor provided in the embodiment shown in FIG1 above.
[0250] In the terminal device 1000 shown in Figure 8, the network interface 1004 provides network communication functions; the user interface 1003 is mainly used to provide an input interface for the user; and the processor 1001 can be used to call the device control application stored in the memory 1005 to implement the remote desktop connection method based on the remote desktop protocol executed by the control component in the embodiment shown in Figure 2, the remote desktop connection method based on the remote desktop protocol executed by the target proxy server in the embodiment shown in Figure 3, or the remote desktop connection method based on the remote desktop protocol executed by the target client in the embodiment shown in Figure 4.
[0251] It should be understood that the terminal device 1000 described in the embodiments of this application can execute the remote desktop connection method based on the remote desktop protocol executed by the control component in the embodiment shown in FIG2, the remote desktop connection method based on the remote desktop protocol executed by the target proxy server in the embodiment shown in FIG3, or the remote desktop connection method based on the remote desktop protocol executed by the target client in the embodiment shown in FIG4, without further elaboration. Furthermore, the beneficial effects of using the same method are also not described in detail.
[0252] Furthermore, it should be noted that this application also provides a computer-readable storage medium storing a computer program executed by the aforementioned remote desktop connection method based on the remote desktop protocol. This computer program includes program instructions. When the processor executes these program instructions, it can execute the remote desktop connection method based on the remote desktop protocol executed by the control component in the embodiment shown in FIG2, the remote desktop connection method based on the remote desktop protocol executed by the target proxy server in the embodiment shown in FIG3, or the remote desktop connection method based on the remote desktop protocol executed by the target client in the embodiment shown in FIG4. Therefore, further details are omitted. Additionally, the beneficial effects of using the same method are also omitted. For technical details not disclosed in the embodiments of the computer-readable storage medium involved in this application, please refer to the description of the method embodiments of this application.
[0253] The aforementioned computer-readable storage medium can be an internal storage unit of the terminal device provided in any of the foregoing embodiments, such as a hard disk or memory of the terminal device. The computer-readable storage medium can also be an external storage device of the terminal device, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the terminal device. Furthermore, the computer-readable storage medium may include both internal storage units and external storage devices of the terminal device. The computer-readable storage medium is used to store the computer program and other programs and data required by the terminal device. The computer-readable storage medium can also be used to temporarily store data that has been output or will be output.
[0254] Furthermore, it should be noted that this application also provides a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. The processor of the terminal device loads and executes the computer instructions, enabling the terminal device to execute the remote desktop connection method based on the remote desktop protocol executed by the control component in the embodiment shown in FIG2, the remote desktop connection method based on the remote desktop protocol executed by the target proxy server in the embodiment shown in FIG3, or the remote desktop connection method based on the remote desktop protocol executed by the target client in the embodiment shown in FIG4.
[0255] Those skilled in the art will recognize that the system and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Those skilled in the art can implement the described functions using different methods for each specific application, but such implementations should not be considered beyond the scope of this application.
Claims
1. A remote desktop connection method based on a remote desktop protocol, executed by a control component, characterized in that, This includes: determining whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the remote desktop connection request; If the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, a target proxy server is determined to connect the target client and the target remote desktop; a remote desktop connection is established between the control component and the target proxy server, and the target proxy server is instructed to establish a remote desktop connection with the target remote desktop, thereby bridging the target client and the target remote desktop via the target proxy server; an image data stream transmitted by the target proxy server to the target client is obtained, and the image data stream is sent to the target client, wherein the image data stream is data that the target proxy server allows to pass through and forward to the target client during data transmission, provided that all other communication data except the image data stream in the remote desktop protocol is blocked.
2. The method according to claim 1, characterized in that, The image data stream is carried in a data packet belonging to the graphics update channel; The step of acquiring the image data stream transmitted by the target proxy server to the target client and sending the image data stream to the target client includes: triggering the target proxy server to parse a first remote desktop protocol data packet from the target remote desktop client to obtain data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel; receiving data packets belonging to the graphics update channel transmitted by the target proxy server to obtain the image data stream based on the data packets belonging to the graphics update channel, and sending the image data stream to the target client, wherein the data packets belonging to the graphics update channel are data packets that the target proxy server allows to pass through and forward to the target client on the premise of discarding data packets belonging to the clipboard channel and data packets belonging to the device mapping channel.
3. The remote desktop connection method according to claim 2, characterized in that, The step of determining whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the remote desktop connection request includes: obtaining first communication information of the target client and second communication information of the target remote desktop based on the remote desktop connection request; and determining whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the first communication information and the second communication information.
4. The method according to claim 3, characterized in that, The first communication information includes at least a first communication address of the target client, and the second communication information includes at least a second communication address of the target remote desktop client. The step of determining whether the remote desktop connection between the target client and the target remote desktop client is a cross-security domain connection based on the first communication information and the second communication information includes: determining whether the first communication address and the second communication address belong to the same predefined communication address segment based on the first communication address of the target client and the second communication address of the target remote desktop client; if it is detected that the first communication address and the second communication address do not belong to the same predefined communication address segment, the remote desktop connection is determined to be a cross-security domain connection.
5. The method according to claim 3, characterized in that, The first communication information includes at least a first communication address of the target client, and the second communication information includes at least a second communication address of the target remote desktop client. The step of determining whether the remote desktop connection between the target client and the target remote desktop client is a cross-security domain connection based on the first communication information and the second communication information includes: obtaining a first security domain level corresponding to the first communication address from the data storage space based on the first communication address, and obtaining a second security domain level corresponding to the second communication address based on the second communication address; if the first security domain level and the second security domain level are detected to be different, the remote desktop connection is determined to be a cross-security domain connection.
6. The remote desktop connection method according to any one of claims 1 to 5, characterized in that, After determining the target proxy server used to connect the target client and the target remote desktop, the method further includes: returning the address information of the target proxy server to the target client, and notifying the target proxy server that there is a remote desktop connection request from the target client to the target remote desktop, so as to trigger the target proxy server to receive the remote desktop connection request.
7. The remote desktop connection method according to any one of claims 1 to 5, characterized in that, The step of establishing a remote desktop connection between the control component and the target proxy server includes: encrypting a remote desktop connection request obtained from the target client to obtain an encrypted remote desktop connection request; and initiating the encrypted remote desktop connection request to the target proxy server based on the address information of the target proxy server, so as to trigger the target proxy server to respond to the encrypted remote desktop connection request to establish a remote desktop connection between the control component and the target proxy server when the authorization validity verification of the encrypted remote desktop connection request passes.
8. The remote desktop connection method according to any one of claims 1 to 5, characterized in that, The instruction to the target proxy server to establish a remote desktop connection with the target remote desktop client includes: triggering the target proxy server to initiate a standard remote desktop connection request to the target remote desktop client, so that after the target proxy server verifies the identity of the target remote desktop client, the target remote desktop client triggers a response and accepts the standard remote desktop connection.
9. A remote desktop connection method based on a remote desktop protocol executed by a target proxy server, characterized in that, Includes: receiving a remote desktop connection request transmitted by a control component, establishing a remote desktop connection between the target proxy server and the control component based on the remote desktop connection request, and establishing a remote desktop connection between the target proxy server and the target remote desktop client to bridge the target client and the target remote desktop client; During data transmission, the target remote desktop client is prevented from transmitting all communication data to the control component except for the image data stream in the remote desktop protocol.
10. The method according to claim 9, characterized in that, The communication data is carried in a first remote desktop protocol data packet; the step of preventing the target remote desktop client from transmitting all communication data other than the image data stream in the remote desktop protocol to the control component during data transmission includes: receiving the first remote desktop protocol data packet from the target remote desktop client and parsing the first remote desktop protocol data packet to obtain data packets belonging to the clipboard channel, data packets belonging to the device mapping channel, and data packets belonging to the graphics update channel; sending the data packets belonging to the graphics update channel to the control component to trigger the control component to obtain the image data stream based on the data packets belonging to the graphics update channel, wherein the data packets belonging to the graphics update channel are data packets that are allowed to pass through and be sent to the target client on the premise of discarding the data packets belonging to the clipboard channel and the data packets belonging to the device mapping channel.
11. The method according to claim 9 or 10, characterized in that, The remote desktop connection request transmitted by the control component is an encrypted remote desktop connection request; the step of establishing a remote desktop connection between the target proxy server and the control component based on the remote desktop connection request includes: verifying the authorization validity of the encrypted remote desktop connection request; and responding to the encrypted remote desktop connection request to establish a remote desktop connection between the control component and the target proxy server when the authorization validity of the encrypted remote desktop connection request is verified.
12. The method according to claim 9 or 10, characterized in that, The step of establishing a remote desktop connection between the target proxy server and the target remote desktop includes: initiating a standard remote desktop connection request to the target remote desktop; and after the target remote desktop successfully verifies the identity of the target proxy server, triggering the target remote desktop to respond to and accept the standard remote desktop connection request, thereby establishing a remote desktop connection between the target proxy server and the target remote desktop.
13. A remote desktop connection method based on a remote desktop protocol executed by a target client, characterized in that, This includes: initiating an access request to a control component, receiving the address information of the target proxy server returned by the control component after the access request is successfully authenticated; initiating a remote desktop connection request to the control component based on the address information of the target proxy server, so as to establish a remote desktop connection between the target client and the target proxy server when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection through the control component, thereby triggering the target proxy server to bridge the target client and the target remote desktop; If the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection, obtain the image data stream from the remote desktop protocol sent by the control component.
14. The method according to claim 13, characterized in that, After triggering the target proxy server to bridge the target client and the target remote desktop, the method further includes: sending a second remote desktop protocol data packet generated during the remote desktop connection process between the target client and the target remote desktop to the control component, so as to store the second remote desktop protocol data packet in the target proxy server through the control component.
15. A remote desktop connection system based on a remote desktop protocol, characterized in that, The system includes a target client, a control component, and a target proxy server; the target client is used to perform the methods as described in claims 13 and 14, the control component is used to perform the methods as described in claims 1 to 8, and the target proxy server is used to perform the methods as described in claims 9 to 12.
16. A remote desktop connection device based on a remote desktop protocol, executed by a control component, characterized in that, It includes: a first judgment module, used to determine whether the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection based on the remote desktop connection request; and a determination module, used to determine the target proxy server for connecting the target client and the target remote desktop when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection. The first connection module is used to establish a remote desktop connection between the control component and the target proxy server, and instruct the target proxy server to establish a remote desktop connection with the target remote desktop client, thereby bridging the target client and the target remote desktop client via the target proxy server; The first acquisition module is used to acquire the image data stream transmitted by the target proxy server to the target client, and send the image data stream to the target client. The image data stream is the data that the target proxy server allows to pass through and forward to the target client during the data transmission process, provided that all other communication data except the image data stream in the remote desktop protocol is blocked.
17. A remote desktop connection device based on a remote desktop protocol executed by a target proxy server, characterized in that, Includes: a second connection module, used to receive a remote desktop connection request transmitted by the control component, establish a remote desktop connection between the target proxy server and the control component based on the remote desktop connection request, and establish a remote desktop connection between the target proxy server and the target remote desktop client to bridge the target client and the target remote desktop client; The blocking module is used to prevent the target remote desktop from transmitting all communication data other than the image data stream in the remote desktop protocol to the control component during data transmission.
18. A remote desktop connection device based on a remote desktop protocol, executed by a target client, characterized in that, Includes: a communication module, used to initiate an access request to the control component and receive the address information of the target proxy server returned by the control component after the access request has been successfully authenticated; The third connection module is used to initiate a remote desktop connection request to the control component based on the address information of the target proxy server, so as to establish a remote desktop connection between the target client and the target proxy server when the remote desktop connection between the target client and the target remote desktop is a cross-security domain connection through the control component, so as to trigger the target proxy server to bridge the target client and the target remote desktop. The second acquisition module is used to acquire the image data stream in the remote desktop protocol sent by the control component when the remote desktop connection between the target client and the target remote desktop terminal is a cross-security domain connection.
19. A terminal device, characterized in that, include: Processor and memory; The processor is connected to the memory, wherein the memory is used to store program code, and the processor is used to call the program code from the memory to perform the methods as claimed in claims 13 and 14, the methods as claimed in claims 1 to 8, or the methods as claimed in claims 9 to 12.