Remote communication methods for display devices, display devices, servers, and terminal devices.
By generating and verifying authentication codes through remote communication methods between display devices, servers, and terminal devices, the problem of lack of remote control on Linux-based display devices is solved, enabling secure remote debugging and configuration without on-site operation, and improving the convenience and security of developers' operations.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-23
- Publication Date
- 2026-03-06
AI Technical Summary
On Linux-based display devices, the lack of a remote control system makes it difficult to achieve customized software configurations and meet special user needs. Developers need to operate on-site and use serial port tools for debugging and configuration, which increases the learning cost and lacks security restrictions.
By utilizing a remote communication method between display devices, servers, and terminal devices, and employing SSE connections to generate and verify authentication codes, remote control of display devices by terminal devices is achieved. This includes encryption and verification algorithm processing for the controller, ensuring the security and accuracy of communication.
It enables remote debugging and configuration of display devices without the need for on-site operation and serial port tools, improving the convenience and security of developers' operations and reducing learning and maintenance costs.
Smart Images

Figure CN116346376B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of display technology, and in particular to a remote communication method for display devices, a display device, a server, and a terminal device. Background Technology
[0002] Currently, some Linux-based display devices lack remote control systems. This makes it difficult to customize the software configuration and meet specific user needs of the display devices. It also presents inconvenience for application developers wanting to access the display device's system platform. For example, developers need to use serial port tools for system development and debugging, which increases the learning curve and lacks security restrictions. Furthermore, third-party developers need the display device present on-site to install their applications for testing. Without serial port tools, they must use a remote control or other control device to operate the display device's on-screen keyboard for installation. Therefore, debugging and configuring display devices currently require developers to directly operate the device, which is difficult to achieve without a display device or serial port tools available on-site. Summary of the Invention
[0003] This application provides a remote communication method for display devices, a display device, a server, and a terminal device to solve the problem that there are currently no display devices on site or that it is difficult to debug and configure display devices using serial port tools.
[0004] In a first aspect, this application provides a display device, including: a display; and a controller connected to the display, the controller being configured to: receive an authentication code sent by a server when establishing an SSE connection with a server; the authentication code being generated by the server based on information in a connection request sent by a terminal device; the connection request including information about a target display device for which the terminal device requests communication; verify the authentication code; when the verification is successful, send a feedback message to the server; and receive a control instruction forwarded by the server from the terminal device; the control instruction representing an instruction on the terminal device to control the display device.
[0005] In some implementations, the controller is further configured to: split the authentication code into a combination of a digital key, an expiration key, and a checksum according to a preset rule; obtain a candidate checksum after combining the digital key and the expiration key using a verification algorithm; if the candidate checksum is the same as the checksum, determine whether the current date exceeds a preset expiration date using the expiration key; if the current date does not exceed the preset expiration date, encrypt the information in the connection request using an encryption algorithm to generate a candidate digital key; if the candidate digital key is the same as the digital key, then determine that the authentication code verification was successful.
[0006] In some implementations, the controller is further configured to: combine the first and last two digits of the authentication code into a checksum and place the checksum at the end of all other strings to form a third candidate key; in the third candidate key, using the second digit of the checksum as an offset, extract two digits from a second preset position as the last two digits of the validity period key and place the last two digits before the checksum to form a second candidate key; in the second candidate key, using the first digit of the checksum as an offset, extract two digits from a first preset position as the first two digits of the validity period key and place the first two digits before the last two digits to form a combination of a digital key, a validity period key, and a checksum; wherein the digital key includes eight digits, the validity period key includes four digits, and the checksum includes two digits.
[0007] Secondly, this application also provides a server, including a controller, which is configured to: receive a connection request sent by a terminal device when establishing an SSE connection with a display device; the connection request includes information about the target display device for which the terminal device requests communication; send an authentication code generated using the information in the connection request to the display device; the display device verifies the authentication code and sends a feedback message to the server upon successful verification; receive the feedback message sent by the display device; and forward control commands sent by the terminal device to the display device.
[0008] In some implementations, the server controller is further configured to: encrypt the information in the connection request using an encryption algorithm to generate a digital key; generate an expiration key for a preset expiration date; obtain a checksum combining the digital key and the expiration key using a verification algorithm; and obfuscate the digital key, the expiration key, and the checksum according to a preset rule to obtain an authentication code.
[0009] In some implementations, the server controller is further configured to: sequentially combine the digital key, the validity period key, and the checksum to form a first candidate key; the digital key comprises eight digits, the validity period key comprises four digits, and the checksum comprises two digits; in the first candidate key, using the first digit of the checksum as an offset, insert the first two digits of the validity period key into a first preset position to generate a second candidate key; in the second candidate key, using the second digit of the checksum as an offset, insert the last two digits of the validity period key into a second preset position to generate a third candidate key; in the third candidate key, place the two digits of the checksum before and after other strings respectively to generate an authentication code.
[0010] Thirdly, this application also provides a terminal device, including a controller, which is configured to: send a connection request to the server when a display device establishes an SSE connection with the server; the connection request includes information about the target display device for which the terminal device requests communication; and the server is configured to generate an authentication code using the information in the connection request and receive a feedback message sent by the display device when the authentication code is successfully verified; and when the server receives the feedback message, send a control command to the server to operate the display device, so that the server forwards the control command to the display device.
[0011] Fourthly, this application also provides a remote communication method for a display device, applied to a display device, the method comprising: receiving an authentication code sent by a server when establishing an SSE connection with a server; the authentication code being generated by the server based on information in a connection request sent by a terminal device; the connection request including information about the target display device for which the terminal device requests communication; verifying the authentication code; sending a feedback message to the server when the verification is successful; and receiving a control instruction sent by the terminal device forwarded by the server; the control instruction representing an instruction on the terminal device to control the display device.
[0012] Fifthly, this application also provides a remote communication method for a display device, applied to a server. The method includes: receiving a connection request sent by a terminal device when establishing an SSE connection with the display device; the connection request including information about the target display device for which the terminal device requests communication; sending an authentication code generated using the information in the connection request to the display device; the display device verifying the authentication code and sending a feedback message to the server upon successful verification; receiving the feedback message sent by the display device; and forwarding control commands sent by the terminal device to the display device.
[0013] Sixthly, this application also provides a remote communication method for a display device, applied to a terminal device. The method includes: when the display device establishes an SSE connection with a server, sending a connection request to the server; the connection request includes information about the target display device for which the terminal device requests communication; and the server generates an authentication code using the information in the connection request and receives a feedback message sent by the display device when the authentication code is successfully verified; when the server receives the feedback message, sending a control command to the server to operate the display device, so that the server forwards the control command to the display device.
[0014] The display device, server, and terminal device provided in this application enable remote communication between the server-based display device and the terminal device. After the display device establishes an SSE connection with the server, the terminal device can send a connection request to the server to connect to the display device. The server generates an authentication code based on the connection request, which is then verified by the display device. If the verification is successful, it indicates that the terminal device is indeed requesting the current display device, and the established connection is secure. At this point, the terminal device can send control commands to the server, which forwards the control commands to the display device, thereby achieving remote communication between the terminal device and the display device. Furthermore, the terminal device can also remotely control the display device. In the solution provided in this application, the display device does not need to be present on-site, nor does it require serial port tools, allowing developers to easily debug and configure the display device at any time.
[0015] Furthermore, the remote communication method for display devices provided in this application can be applied to display devices, servers, and terminal devices. It is understood that this remote communication method enables remote communication between server-based display devices and terminal devices, and also allows developers to debug and configure the display device at any time without needing to be on-site or possess serial port tools. Attached Figure Description
[0016] To more clearly illustrate the technical solution of this application, the drawings used in the embodiments will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0017] Figure 1 A schematic diagram illustrating a usage scenario of a display device according to some embodiments is shown;
[0018] Figure 2 A hardware configuration block diagram of a control device 100 according to some embodiments is shown;
[0019] Figure 3A hardware configuration block diagram of a display device 200 according to some embodiments is shown;
[0020] Figure 4 A software configuration diagram of a display device 200 according to some embodiments is shown;
[0021] Figure 5 A communication architecture diagram between a display device, a server, and a terminal device is shown according to some embodiments.
[0022] Figure 6 A schematic diagram of a process for implementing remote communication of a display device on a terminal device according to some embodiments is shown;
[0023] Figure 7 A schematic diagram of a remote tools homepage on a terminal device according to some embodiments is shown;
[0024] Figure 8 A schematic diagram illustrating a page displaying device information on a terminal device according to some embodiments is shown;
[0025] Figure 9 A schematic diagram of a page on a terminal device, according to some embodiments, is shown for controlling a display device to download applications;
[0026] Figure 10 This diagram illustrates a process for implementing remote communication of a display device on a server according to some embodiments;
[0027] Figure 11 This diagram illustrates a process for a server to generate an authentication code according to some embodiments.
[0028] Figure 12 This diagram illustrates another process for generating authentication codes on a server according to some embodiments;
[0029] Figure 13 A schematic diagram of a process for implementing remote communication of a display device according to some embodiments is shown;
[0030] Figure 14 A schematic diagram of a process for verifying an authentication code by a display device according to some embodiments is shown;
[0031] Figure 15 This diagram illustrates another flowchart for verifying authentication codes using a display device according to some embodiments. Detailed Implementation
[0032] To make the objectives and implementation methods of this application clearer, the exemplary implementation methods of this application will be clearly and completely described below with reference to the accompanying drawings of the exemplary embodiments of this application. Obviously, the exemplary embodiments described are only some embodiments of this application, and not all embodiments.
[0033] It should be noted that the brief descriptions of terms in this application are only for the convenience of understanding the embodiments described below, and are not intended to limit the embodiments of this application. Unless otherwise stated, these terms should be understood in their ordinary and common meaning.
[0034] The terms "first," "second," "third," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar or related objects or entities, and do not necessarily imply a specific order or sequence, unless otherwise specified. It should be understood that such terms are interchangeable where appropriate.
[0035] The terms “comprising” and “having”, and any variations thereof, are intended to cover but not exclude inclusion, for example, a product or device that includes a range of components is not necessarily limited to all of the components that are clearly listed, but may include other components that are not clearly listed or that are inherent to such product or device.
[0036] The term "module" refers to any known or subsequently developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and / or software code that is capable of performing the functions associated with that element.
[0037] Figure 1 A schematic diagram illustrating a usage scenario of a display device according to some embodiments is shown. For example... Figure 1 As shown, the user can operate the display device 200 through the smart device 300 or the control device 100.
[0038] In some embodiments, the control device 100 may be a remote control. Communication between the remote control and the display device includes infrared protocol communication, Bluetooth protocol communication, and other short-range communication methods, controlling the display device 200 wirelessly or via wired means. Users can control the display device 200 by inputting user commands through buttons on the remote control, voice input, control panel input, etc.
[0039] In some embodiments, a smart device 300 (such as a mobile terminal, tablet computer, computer, laptop computer, etc.) may also be used to control the display device 200. For example, an application running on the smart device may be used to control the display device 200.
[0040] In some embodiments, the display device 200 can also be controlled in ways other than the control device 100 and the smart device 300. For example, it can be controlled by directly receiving the user's voice commands through a module configured inside the display device 200 for acquiring voice commands, or it can be controlled by receiving the user's voice commands through a voice control device set outside the display device 200.
[0041] In some embodiments, the display device 200 also communicates with the server 400. The display device 200 may communicate via a local area network (LAN), wireless local area network (WLAN), and other networks. The server 400 may provide various content and interactive features to the display device 200. The server 400 may be a cluster or multiple clusters, and may include one or more types of servers.
[0042] Figure 2 A hardware configuration block diagram of a control device 100 according to some embodiments is shown. For example... Figure 2 As shown, the control device 100 includes a controller 110, a communication interface 130, a user input / output interface 140, a memory, and a power supply. The control device 100 can receive user input operation commands and convert the operation commands into commands that the display device 200 can recognize and respond to, thus acting as an intermediary for interaction between the user and the display device 200.
[0043] Figure 3 A hardware configuration block diagram of a display device 200 according to some embodiments is shown.
[0044] In some embodiments, the display device 200 includes at least one of a tuner 210, a communicator 220, a detector 230, an external device interface 240, a controller 250, a display 260, an audio output interface 270, a memory, a power supply, and a user interface.
[0045] In some embodiments, the controller includes a processor, a video processor, an audio processor, a graphics processor, RAM, ROM, and a first interface to an nth interface for input / output.
[0046] In some embodiments, the display 260 includes a display screen component for presenting an image, a driving component for driving image display, a component for receiving image signals from the controller output, and a user control UI interface for displaying video content, image content, menu control interface, and user control UI interface.
[0047] In some embodiments, the display 260 may be a liquid crystal display, an OLED display, or a projection display, and may also be a projection device and a projection screen.
[0048] In some embodiments, the communicator 220 is a component used to communicate with external devices or servers according to various communication protocol types. For example, the communicator may include at least one of a Wi-Fi module, a Bluetooth module, a wired Ethernet module, other network communication protocol chips or near-field communication protocol chips, and an infrared receiver. The display device 200 can establish the transmission and reception of control signals and data signals with the external control device 100 or the server 400 through the communicator 220.
[0049] In some embodiments, the user interface can be used to receive control signals from the control device 100 (e.g., an infrared remote control).
[0050] In some embodiments, detector 230 is used to acquire signals from the external environment or to interact with the outside world. For example, detector 230 includes a light receiver, a sensor for acquiring ambient light intensity; or, detector 230 includes an image acquisition device, such as a camera, which can be used to acquire external environmental scenes, user attributes, or user interaction gestures; or, detector 230 includes a sound acquisition device, such as a microphone, for receiving external sounds.
[0051] In some embodiments, the external device interface 240 may include, but is not limited to, one or more interfaces such as: High Definition Multimedia Interface (HDMI), analog or data high-definition component input interface (component), composite video input interface (CVBS), USB input interface (USB), RGB port, etc. It may also be a composite input / output interface formed by multiple interfaces mentioned above.
[0052] In some embodiments, the tuner 210 receives broadcast television signals via wired or wireless reception and demodulates audio and video signals, such as EPG data signals, from a plurality of wireless or wired broadcast television signals.
[0053] In some embodiments, the controller 250 and the tuner 210 may be located in different separate devices, that is, the tuner 210 may also be located in an external device of the main device where the controller 250 is located, such as an external set-top box.
[0054] In some embodiments, the controller 250 controls the operation of the display device and responds to user operations via various software control programs stored in memory. The controller 250 controls the overall operation of the display device 200. For example, in response to receiving a user command to select a UI object to display on the display 260, the controller 250 can perform operations related to the object selected by the user command.
[0055] In some embodiments, the object can be any of the optional objects, such as a hyperlink, an icon, or other operable controls. Operations related to the selected object include: displaying links to hyperlinked pages, documents, images, etc., or performing operations corresponding to the program associated with the icon.
[0056] In some embodiments, the controller includes at least one of a central processing unit (CPU), a video processor, an audio processor, a graphics processing unit (GPU), RAM (random access memory), ROM (read-only memory), a first to an nth interface for input / output, a communication bus, etc.
[0057] A CPU (CPU) processor is used to execute operating system and application instructions stored in memory, as well as various interactive instructions received from external input, to execute various applications, data, and content, ultimately for the display and playback of various audio and video content. A CPU processor can include multiple processors, such as a main processor and one or more sub-processors.
[0058] In some embodiments, a graphics processor is used to generate various graphical objects, such as icons, operation menus, and graphics displayed based on user input commands. The graphics processor includes an arithmetic logic unit (ALU) that performs calculations based on various user-input interactive commands and displays various objects according to display attributes; it also includes a renderer that renders the various objects obtained from the ALU, and the rendered objects are used to display on a monitor.
[0059] In some embodiments, the video processor is configured to receive external video signals and perform video processing such as decompression, decoding, scaling, noise reduction, frame rate conversion, resolution conversion, and image synthesis according to the standard encoding and decoding protocol of the input signals, so as to obtain a signal that can be directly displayed or played on the display device 200.
[0060] In some embodiments, the video processor includes a demultiplexing module, a video decoding module, an image compositing module, a frame rate conversion module, and a display formatting module. The demultiplexing module demultiplexes the input audio and video data streams. The video decoding module processes the demultiplexed video signal, including decoding and scaling. The image compositing module, such as an image synthesizer, overlays and blends a GUI signal generated by a graphics generator based on user input or its own generation with the scaled video image to generate a displayable image signal. The frame rate conversion module converts the input video frame rate. The display formatting module modifies the received frame rate-converted video output signal to conform to a display format, such as outputting RGB data signals.
[0061] In some embodiments, the audio processor is configured to receive external audio signals, and according to the standard codec protocol of the input signals, perform decompression and decoding, as well as noise reduction, digital-to-analog conversion, and amplification processing, to obtain a sound signal that can be played in a speaker.
[0062] In some embodiments, the user can input user commands through a graphical user interface (GUI) displayed on the display 260, and the user input interface receives the user input commands through the GUI. Alternatively, the user can input user commands by inputting specific sounds or gestures, and the user input interface receives the user input commands by recognizing the sounds or gestures through sensors.
[0063] In some embodiments, a "user interface" is the medium through which an application or operating system interacts and exchanges information with a user, converting information between its internal form and a form acceptable to the user. A common form of user interface is the graphical user interface (GUI), which refers to a user interface related to computer operation displayed graphically. It can be an icon, window, control, or other interface element displayed on the screen of an electronic device. Controls can include visual interface elements such as icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, and widgets.
[0064] like Figure 4As shown, a display device's system can include a kernel, a command interpreter (shell), a file system, and applications. The kernel, shell, and file system together form the basic operating system structure, allowing users to manage files, run programs, and use the system. Upon power-up, the kernel starts, activates the kernel space, abstracts hardware, initializes hardware parameters, and runs and maintains virtual memory, the scheduler, signals, and inter-process communication (IPC). After the kernel starts, the shell and user applications are loaded. Applications are compiled into machine code after startup, forming a process.
[0065] like Figure 4 As shown, the display device system is divided into three layers, from top to bottom: the application layer, the middleware layer, and the hardware layer.
[0066] The application layer mainly includes commonly used applications on TVs, as well as the application framework. The commonly used applications are mainly browser-based applications, such as HTML5 apps, and native apps.
[0067] An application framework is a complete program model that has all the basic functions required by standard application software, such as file access, data exchange, etc., as well as the user interface for these functions (toolbar, status bar, menu, dialog box).
[0068] Native apps can support online or offline access, push notifications, or access to local resources.
[0069] The middleware layer includes various television protocols, multimedia protocols, and system components. Middleware can use the basic services (functions) provided by system software to connect different parts of application systems or different applications on the network, achieving resource sharing and function sharing.
[0070] The hardware layer mainly includes the HAL interface, hardware, and drivers. The HAL interface is a unified interface for all TV chips, with the specific logic implemented by each chip. The drivers mainly include: audio drivers, display drivers, Bluetooth drivers, camera drivers, Wi-Fi drivers, USB drivers, HDMI drivers, sensor drivers (such as fingerprint sensors, temperature sensors, pressure sensors, etc.), and power drivers.
[0071] Currently, some Linux-based display devices 200 lack remote control systems. This makes it difficult to customize the software configuration of display devices 200 and meet specific user needs. It also presents inconvenience for application developers wanting to access the display device 200 system platform. For example, developers need to use serial port tools for system development and debugging, which increases the learning curve and lacks security restrictions. Furthermore, third-party developers need the display device 200 present on-site to install their application software for testing. Without serial port tools, they must use a remote control or other control device to operate the display device's on-screen keyboard for installation. Therefore, debugging and configuring display devices 200 currently require direct operation by developers, which is difficult to achieve without the display device 200 or serial port tools available on-site.
[0072] To address the aforementioned issues, this application provides a display device 200, a server 400, and a terminal device 500. The display device 200 communicates remotely with the terminal device 500 through the server 400, and the terminal device 500 can remotely control the display device 200 through the server 400. The display device 200 can be a television, computer, or other similar device; the terminal device 500 can be a computer, mobile phone, or other smart terminal.
[0073] Figure 5 A communication architecture diagram between a display device, a server, and a terminal device according to some embodiments is shown. Figure 5 As shown, the display device 200 and the server 400 need to establish an SSE connection. Only when the SSE connection is maintained will the server 400 forward the instructions, requests or data sent by the terminal device 500 to the display device 200.
[0074] Furthermore, while server 400 can connect to multiple display devices 200 and multiple terminal devices 500 simultaneously, during remote communication, only one terminal device 500 can control one display device 200, meaning only one-to-one communication is possible. Therefore, to ensure the accuracy and security of this one-to-one communication, server 400 generates a corresponding authentication code for the target display device based on each request from terminal device 500. Only after the target display device successfully verifies the authentication code will server 400 send the control commands sent by terminal device 500 to the target display device, thus completing the remote communication between display devices 200. The authentication code ensures a certain level of accuracy and security in this communication process.
[0075] Figure 6 A schematic diagram illustrating a process for implementing remote communication of a display device on a terminal device according to some embodiments is shown. For example... Figure 6 As shown, the controller of the terminal device 500 in this embodiment can be configured to perform the following steps:
[0076] Step S101: When the display device 200 establishes an SSE connection with the server 400, a connection request is sent to the server 400.
[0077] The connection request sent by the terminal device 500 includes information about the target display device for which the terminal device 500 requests communication, such as the device code, identifier, physical address, etc. of the target display device, as well as some hardware configuration information of the target display device.
[0078] Based on the information in the connection request, server 400 can determine which display device terminal device 500 wants to connect to, and generate an authentication code based on the aforementioned information in the connection request. Then, server 400 sends the authentication code to the identified display device 200, which verifies the authentication code. If the verification is successful, it means that display device 200 is indeed the target display device that terminal device 500 wants to connect to, and that the current connection between display device 200 and server 400 is secure.
[0079] If the verification is successful, the display device 200 will send a feedback message to the server 400 to indicate that communication with the terminal device 500 is now possible. After receiving the feedback message, the server 400 will also simultaneously notify the terminal device 500 that communication with the display device 200 is possible.
[0080] In step S102, when the server 400 receives the feedback message, a control command to operate the display device 200 is sent to the server 400 so that the server 400 forwards the control command to the display device 200.
[0081] In this embodiment, the server 400 forwards messages, data, and instructions, thereby connecting the terminal device 500 and the display device 200 to achieve remote communication between the terminal device 500 and the display device 200.
[0082] On the terminal device 500, developers or users can remotely operate the display device 200. For example, they can remotely control the display device 200 to install application software, remotely test the display device 200, remotely push TV services to the display device 200, and remotely modify vulnerabilities in the display device 200. Additionally, the terminal device 500 can also view device information of the display device 200.
[0083] The terminal device 500 can provide developers or users with tools for remotely controlling the display device 200, such as Developer Tools. When developers or users want to remotely control the target display device through the terminal device 500, they can open the remote tools on the terminal device 500. The homepage of the remote tools can be found here. Figure 7 As shown. In Figure 7 In the remote tool's homepage, a prompt page appears asking the user to enter the device code. This page displays an input box for the developer or user to enter the device code, along with a connection control. After entering the device code of the target display device in the input box, the developer or user can click the connection control to control the terminal device 500 to send a connection request to the server 400.
[0084] After server 400 receives the feedback message from display device 200 and notifies terminal device 500, the remote tool on terminal device 500 can continue to display the device information page of the target display device 200. This device information page can be found at [link to relevant documentation]. Figure 8 As shown. In Figure 8 Specifically, it can display information such as the system version number, device ID, and model of device 200.
[0085] Remote tools can also provide developers or users with tools or services such as app sideload, streaming tester, deep linking tester, and web log. The page for app sideload can be found here. Figure 9 As shown. In Figure 9 On the other end, the application download page displays input boxes for application name (AppName), application address (AppUrl), icon address (IconUrl), and resolution (Resolution). Developers or users fill in the corresponding content in the input boxes and then click the Install control on the page to send a download instruction for the target application to server 400. Server 400 forwards this instruction to display device 200, which can then install the corresponding application based on the application name and application address in the instruction.
[0086] In addition, Figure 9 On the page shown, an Empty control can also be set. After the developer or user clicks this control, Figure 9 The content already entered in the input boxes on the page will be cleared so that developers or users can fill it in again.
[0087] Figure 10A schematic diagram illustrating a process for implementing remote communication of a display device on a server according to some embodiments is shown. Figure 10 As shown, the controller of server 400 in this embodiment can be configured to perform the following steps:
[0088] Step S201: When establishing an SSE connection with the display device 200, a connection request sent by the terminal device 500 is received.
[0089] The connection request sent by terminal device 500 includes information about the target display device to which terminal device 500 requests communication. For details of this information, please refer to the above-described embodiment of terminal device 500.
[0090] Before receiving the connection request from the terminal device 500, server 400 has already established an SSE connection with display device 200. SSE (Server-Sent Events) is a lightweight alternative to WebSocket, using the HTTP protocol. Strictly speaking, the HTTP protocol cannot perform server-side push operations, but when server 400 declares to display device 200 that it will send streaming information, display device 200 will keep the connection open; this is the principle behind SSE.
[0091] Step S202: Send the authentication code generated using the information in the connection request to the display device 200.
[0092] To ensure that the terminal device 500 can communicate accurately with the target display device and to prevent information or instruction tampering attacks during transmission, the server 400 needs to generate an authentication code using the information in the connection request after receiving the connection from the terminal device 500. In this embodiment, the authentication code is a string combining numbers and letters using a mixture of various algorithms and rules.
[0093] After server 400 sends the authentication code to display device 200, display device 200 will use the same algorithm and rules to split and reassemble the authentication code, thereby obtaining the target display information forwarded by server 400. At the same time, server 400 will also directly send the connection request information to display device 200 so that display device 200 can perform verification.
[0094] After the display device 200 verifies the authentication code, if the verification is successful, it means that the request information forwarded by the server 400 has not been tampered with, the current communication link is secure, and the display device 200 is the target display device that the terminal device 500 wants to communicate with. At this time, the display device 200 sends a feedback message to the server 400, thereby informing the server 400 that the verification was successful and that communication with the terminal device 500 can proceed.
[0095] After receiving the feedback message, server 400 will notify terminal device 500 that communication is possible. Then, terminal device 500 will send control commands to server 400.
[0096] Step S203: Forward the control command sent by the terminal device 500 to the display device 200.
[0097] In this embodiment, both the server 400 and the terminal device 500 are easy to update and iterate. Based on this remote communication method, new functions can be continuously developed in subsequent use, with high development efficiency and low maintenance cost, without the need for excessive configuration and modification of the display device 200.
[0098] During the generation of the authentication code, the server 400 can first use some encryption algorithms to encrypt the information in the connection request, and then use some preset rules to split and reassemble the encrypted data to generate the authentication code. The authentication code includes a digital key, an expiration key, and a checksum. Figure 11 A schematic diagram of a server generating an authentication code is shown according to some embodiments. In some embodiments, during the above-described authentication code generation process, such as Figure 11 As shown, the controller of server 400 can also be configured to perform the following steps:
[0099] Step S301: Encrypt the information in the connection request using an encryption algorithm to generate a digital key.
[0100] The encryption algorithms that can be used in this application embodiment include MD5, SHA1, HASH, HMAC, CRC32, etc. The information in the connection request is represented by the developer email and group1:wired_macfirmware_versionlchipset, respectively. During encryption, the developer email can be used as the key, group1 as the msg, and a 20-bit temporary key can be calculated as auth_temp. Then, auth_temp = hmac(key,msg,hash,sha1).digest().
[0101] Then, based on the preset offset, 4 bytes of content are extracted from the temporary key and converted into an 8-bit digital key.
[0102] For example, take the 5th byte &0xf in auth_temp as the offset_1, and use the calculated eight-digit key as auth_1. Then auth_1 = auth_temp[offset_1:offset_1+4].tollint()%10000000.
[0103] Step S302: Generate a validity key for the preset validity date.
[0104] To conserve the digital space of the authentication code, the valid date in this embodiment adopts the method of accumulating the base date. Calculations show that with a 4-digit digital space, it can support a maximum of 8192 days, which is greater than 22 years. For example, if the base date is July 1, 2019, then the valid date can be supported up to December 21, 2041, fully meeting the lifecycle requirements of the current architecture.
[0105] The preset validity period is usually included in the connection request and is sent from the terminal device (500) to the server (400). The preset validity period can be set to one month, several months, or even several years.
[0106] If the longest valid date mentioned above is used, and the base date is July 1, 2019, then the base date can be used as `validday`, and the base date can be used as `basedate`. The calculation is `validday = day_offset(validday, basedate)`, and the 4-digit validity key is `auth_2 = validday & 0x1fff`.
[0107] Step S303: Use a verification algorithm to obtain the checksum of the combination of the digital key and the validity period key.
[0108] To ensure that the digital key and validity period key are not tampered with, the combination of the digital key and validity period key needs to be verified. In this embodiment, the CRC32 verification algorithm can be used to perform cyclic redundancy check on the digital key and validity period key. The last byte of the verification result is taken and converted into a 2-digit checksum, padded with zeros if the result is insufficient.
[0109] For example, the combination of the digital key and the expiration key is called auth_group, then auth_group = auth_1 + auth_2. After verifying auth_group, the verification result is called auth temp1, then auth temp1 = md5(auth_group).digest(). The extracted checksum is called auth_crc, then auth_crc = auth_temp1[len(auth_temp1)-1]%100.
[0110] Step S304: Obfuscate the digital key, validity key, and checksum according to preset rules to obtain the authentication code.
[0111] When obfuscating the digital key, validity period key, and checksum, a specific length of digital content can be extracted from a specific location and placed in another specific location. Subsequently, when verifying the authentication code on the display device 200, the authentication code can be restored to the digital key, validity period key, and checksum using the corresponding rules.
[0112] Figure 12 This diagram illustrates another flowchart of a server generating an authentication code according to some embodiments. In some embodiments, during the process of obfuscating the digital key, validity key, and checksum according to preset rules to obtain the authentication code, such as... Figure 12 As shown, the controller of server 400 can also be configured to perform the following steps:
[0113] Step S401: Combine the digital key, validity period key, and checksum sequentially to form the first candidate key.
[0114] The digital key consists of eight digits, the validity period key consists of four digits, and the checksum consists of two digits.
[0115] In step S402, using the first digit of the checksum as an offset, the first two digits of the validity period key are inserted into the first preset position in the first candidate key to generate the second candidate key.
[0116] In step S403, using the second digit of the checksum as an offset, the last two digits of the validity period key are inserted into the second preset position in the second candidate key to generate the third candidate key.
[0117] Step S404: In the third candidate key, place the two-bit checksum before and after the other strings respectively to generate the authentication code.
[0118] Figure 13 A schematic diagram illustrating a process for implementing remote communication on a display device according to some embodiments is shown. For example... Figure 13 As shown, the controller 250 of the display device 200 in this embodiment can be configured to perform the following steps:
[0119] Step S501: When establishing an SSE connection with server 400, receive the authentication code sent by server 400.
[0120] The authentication code here is generated by server 400 based on the information in the connection request sent by terminal device 500, and the specific generation method can be found in the above-described embodiment of server 400.
[0121] Step S502: Verify the authentication code.
[0122] On display device 200, the same algorithms and rules used in server 400 can be used for reverse analysis to recover the authentication code into a digital key, validity period key, and checksum. Each recovered result is then evaluated to determine its correctness and compliance with requirements. If all recovered results are correct or meet requirements, the authentication code verification is confirmed to be successful.
[0123] Step S503: When the verification is successful, send a feedback message to server 400.
[0124] The feedback message is used to notify server 400 that it can communicate with terminal device 500. Furthermore, successful authentication code verification indicates that the authentication code information has not been tampered with, meaning the current communication link is secure. Therefore, the feedback message also notifies server 400 that the current communication environment is secure.
[0125] After receiving the feedback message, server 400 will also notify terminal device 500 that communication can begin. Upon receiving the notification, terminal device 500 can send control commands to server 400. Server 400 then forwards the control commands to display device 200.
[0126] Step S504: Receive control commands sent by terminal device 500 forwarded by server 400.
[0127] Control commands refer to the instructions given by developers or users on terminal device 500 to control display device 200 via remote tools or other means.
[0128] By establishing a communication link between the starting terminal device 500 and the display device 200 through the server 400, the terminal device 500 can remotely control the display device 200 to perform operations such as application download, streaming media testing, system testing and repair, and service recommendation.
[0129] During the verification process of the authentication code, the display device 200 can first extract the verification and validity period key from the authentication code using some preset rules, and then use some encryption algorithms to encrypt the remaining key content in the authentication code to obtain the digital key. Figure 14 A schematic flowchart illustrating a display device verifying an authentication code according to some embodiments is shown. In some embodiments, during the above-described verification of the authentication code, such as Figure 14 As shown, the controller 250 of the display device 200 can also be configured to perform the following steps:
[0130] Step S601: The authentication code is split into a combination of a digital key, an expiration key, and a checksum according to preset rules.
[0131] During the splitting process, the obfuscation rules in server 400 can be reversed, that is, the digital content is taken out from a specific location and placed in another specific location, thereby recovering the eight-digit digital key, the four-digit expiration key, and the two-digit checksum.
[0132] Step S602: Use a verification algorithm to obtain the candidate checksum after combining the digital key and the validity period key.
[0133] To verify whether the digital key and expiration key have been tampered with, a candidate checksum can be generated using the same verification algorithm as in server 400 on the digital key and expiration key recovered in step S601. Since the verification algorithm is the same, if the digital key and expiration key have not been tampered with, the generated candidate checksum should be the same as the previously recovered checksum.
[0134] Step S603: When the candidate checksum is the same as the checksum, use the validity period key to determine whether the current date exceeds the preset validity period.
[0135] In step S603, the same method as in server 400 can be used to reverse the process and restore the validity key to the preset validity date. If the current date of display device 200 exceeds the preset validity date, it means that the current connection request has expired, and display device 200 will not communicate with terminal device 500. If the current date has not exceeded the preset validity date, it means that the current connection request is still valid, and display device 200 can communicate with terminal device 500.
[0136] Step S604: If the current date has not exceeded the preset valid date, use an encryption algorithm to encrypt the information in the connection request and generate a candidate digital key.
[0137] After the aforementioned checksum and validity date have both passed verification, the display device 200 also needs to verify the digital key. That is, it uses the same encryption algorithm as in the server 400 to encrypt the information in the connection request again to obtain the candidate digital key.
[0138] Step S605: If the candidate digital key is the same as the digital key, then the authentication code verification is successful.
[0139] The fact that the candidate digital key is the same as the recovered digital key further confirms that the digital key was not tampered with or attacked during transmission, and that the current communication link is secure. At this point, the display device 200 can send a feedback message to the server 400, thereby notifying the server 400 that it can communicate with the terminal device 500.
[0140] Figure 15 This diagram illustrates another flowchart for verifying authentication codes using a display device according to some embodiments. In some embodiments, during the process of splitting the authentication code into a combination of a digital key, an expiration key, and a checksum according to preset rules, such as... Figure 15 As shown, the controller 250 of the display device 200 can also be configured to perform the following steps:
[0141] Step S701: Combine the first and last two digits of the authentication code into a checksum and place the checksum at the end of the rest of the string to form the third candidate key.
[0142] Step S702: In the third candidate key, using the second digit of the checksum as an offset, two digits are taken from the second preset position as the last two digits of the validity period key and placed before the checksum to form the second candidate key.
[0143] Step S703: In the second candidate key, using the first digit of the checksum as the offset, take two digits from the first preset position as the first two digits of the validity period key and place the first two digits before the last two digits, thereby forming a combination of digital key, validity period key and checksum.
[0144] The digital key consists of eight digits, the validity period key consists of four digits, and the checksum consists of two digits.
[0145] As can be seen from the above scheme, the display device 200, server 400, and terminal device 500 in this embodiment can realize remote communication between the display device 200 and the terminal device 500 based on the server 400. After the display device 200 and server 400 establish an SSE connection, the terminal device 500 can send a connection request to the server 400 to connect with the display device 200. The server 400 generates an authentication code based on the connection request, and the display device 200 verifies the authentication code. If the verification is successful, it means that the terminal device 500 is indeed requesting the current display device 200, and the established connection is secure. At this time, the terminal device 500 can send control commands to the server 400, and the server 400 forwards the control commands to the display device 200, thereby realizing remote communication between the terminal device 500 and the display device 200. Furthermore, the terminal device 500 can also remotely control the display device 200. In the solution provided in this application embodiment, the display device 200 does not need to be on-site and does not need to have a serial port tool, which makes it convenient for developers to debug and configure the display device 200 at any time.
[0146] To address the issues of the lack of a display device at the site or the difficulty in debugging and configuring the display device using serial port tools, this application embodiment also provides a remote communication method for the aforementioned display device 200. This method can be specifically implemented by the controller of the display device 200. The method specifically includes the following steps:
[0147] Step S501: When establishing an SSE connection with server 400, receive an authentication code sent by server 400; the authentication code is generated by server 400 based on information in the connection request sent by terminal device 500; the connection request includes information about the target display device for which terminal device 500 requests communication.
[0148] Step S502: Verify the authentication code.
[0149] Step S503: When the verification is successful, a feedback message is sent to the server 400.
[0150] Step S504: Receive a control instruction sent by the terminal device 500 forwarded by the server 400; the control instruction is used to represent an instruction on the terminal device 500 to control the display device 200.
[0151] To address the issues of the lack of display devices at the site or the difficulty in debugging and configuring display devices using serial port tools, this application embodiment also provides a remote communication method for display devices that can be applied to the aforementioned server 400. This method can be specifically implemented by the controller of the server 400. The method specifically includes the following steps:
[0152] Step S201: When establishing an SSE connection with the display device 200, a connection request sent by the terminal device 500 is received; the connection request includes information about the target display device for which the terminal device 500 requests communication.
[0153] Step S202: The authentication code generated using the information in the connection request is sent to the display device 200; the display device 200 verifies the authentication code and sends a feedback message to the server 400 when the verification is successful; and receives the feedback message sent by the display device 200.
[0154] Step S203: Forward the control command sent by the terminal device 500 to the display device 200.
[0155] To address the issues of the lack of a display device at the site or the difficulty in debugging and configuring the display device using serial port tools, this application embodiment also provides a remote communication method for a display device that can be applied to the aforementioned terminal device 500. This method can be specifically implemented by the controller of the terminal device 500. The method specifically includes the following steps:
[0156] Step S101: When the display device 200 establishes an SSE connection with the server 400, a connection request is sent to the server 400. The connection request includes information about the target display device for which the terminal device 500 requests communication. The server 400 uses the information in the connection request to generate an authentication code and receives a feedback message sent by the display device 200 when the authentication code is successfully verified.
[0157] Step S102: When the server 400 receives the feedback message, a control command to operate the display device 200 is sent to the server 400, so that the server 400 forwards the control command to the display device 200.
[0158] Since the remote communication method for display devices in this application embodiment can be applied to the display device 200, server 400 and terminal device 500 in the foregoing embodiments, other contents of the remote communication method for display devices in this application embodiment can be referred to the contents of the foregoing embodiments, and will not be repeated here.
[0159] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
[0160] For ease of explanation, the above description has been provided in conjunction with specific embodiments. However, the above exemplary discussion is not intended to be exhaustive or to limit the embodiments to the specific forms disclosed above. Various modifications and variations can be obtained based on the above teachings. The selection and description of the above embodiments are for the purpose of better explaining the principles and practical applications, thereby enabling those skilled in the art to better utilize the described embodiments and various different variations of embodiments suitable for specific use considerations.
Claims
1. A display device, characterized by comprising: The display device comprises: a display; a controller connected with the display, the controller being configured to: receive an authentication code sent by a server when an SSE connection with the server is established; the authentication code being generated by the server according to information in a connection request sent by a terminal device; the connection request including information of a target display device requested to communicate by the terminal device; split the authentication code into a combination of a digital key, a validity period key and a checksum according to a preset rule; obtain a candidate checksum of the combination of the digital key and the validity period key by using a verification algorithm; when the candidate checksum is the same as the checksum, determine whether a current date exceeds a preset valid date by using the validity period key; when the current date does not exceed the preset valid date, encrypt information in the connection request by using an encryption algorithm to generate a candidate digital key; if the candidate digital key is the same as the digital key, determine that the authentication code is verified successfully; when the verification is successful, send a feedback message to the server; receive a control instruction sent by the terminal device and forwarded by the server; the control instruction being used to indicate an instruction for controlling the display device on the terminal device.
2. The display device of claim 1, wherein, The controller is further configured to: combine the first and last digits of the authentication code as a checksum and place the checksum at the end of the remaining all strings to form a third candidate key; in the third candidate key, take out two digits at a second preset position as the last two digits of the validity period key and place the last two digits before the checksum as an offset of the second digit of the checksum to form a second candidate key; in the second candidate key, take out two digits at a first preset position as the first two digits of the validity period key and place the first two digits before the last two digits as an offset of the first digit of the checksum to form the combination of the digital key, the validity period key and the checksum; wherein the digital key includes eight digits, the validity period key includes four digits, and the checksum includes two digits.
3. A server, characterized by The display device comprises: a controller configured to: receive a connection request sent by a terminal device when an SSE connection with a display device is established; the connection request including information of a target display device requested to communicate by the terminal device; encrypt information in the connection request by using an encryption algorithm to generate a digital key; generate a validity period key for a preset valid date; obtain a checksum of the combination of the digital key and the validity period key by using a verification algorithm; obfuscate the digital key, the validity period key and the checksum according to a preset rule to obtain an authentication code and send the authentication code to the display device; the display device being used to verify the authentication code, and when the verification is successful, send a feedback message to the server; receive the feedback message sent by the display device; forward a control instruction sent by the terminal device to the display device.
4. The server of claim 3, wherein, The controller is further configured to: Combining the digital key, the validity period key and the check sum into a first candidate key in sequence; the digital key comprises eight digits, the validity period key comprises four digits, and the check sum comprises two digits; In the first candidate key, the first two digits of the validity period key are inserted into a first preset position as an offset of the first digit of the check sum, to generate a second candidate key; In the second candidate key, the last two digits of the validity period key are inserted into a second preset position as an offset of the second digit of the check sum, to generate a third candidate key; In the third candidate key, the two digits of the check sum are arranged in front of and behind other strings respectively, to generate an authentication code.
5. A terminal device, characterized by, Comprising: A controller configured to: When a display device is connected to a server through SSE, send a connection request to the server; the connection request comprises information of a target display device requested to communicate by the terminal device, and the server is configured to generate a digital key by encrypting the information in the connection request by using an encryption algorithm; and generate a validity period key for a preset validity date; Obtain a check sum of the combination of the digital key and the validity period key by using a check algorithm; obtain an authentication code by mixing the digital key, the validity period key and the check sum according to a preset rule; and receive a feedback message sent by the display device when the authentication code is checked successfully; When the server receives the feedback message, send a control instruction for operating the display device to the server, so that the server forwards the control instruction to the display device.
6. A display device remote communication method applied to a display device, characterized by, Comprising: When connected to a server through SSE, receive an authentication code sent by the server; The authentication code is generated by the server according to information in a connection request sent by a terminal device; the connection request comprises information of a target display device requested to communicate by the terminal device; Split the authentication code into a combination of a digital key, a validity period key and a check sum according to a preset rule; Obtain a candidate check sum of the combination of the digital key and the validity period key by using a check algorithm; When the candidate check sum is the same as the check sum, determine whether the current date exceeds a preset validity date by using the validity period key; When the current date does not exceed the preset validity date, encrypt the information in the connection request by using an encryption algorithm to generate a candidate digital key; If the candidate digital key is the same as the digital key, it is determined that the authentication code is checked successfully; When the checking is successful, send a feedback message to the server; Receive a control instruction sent by the terminal device and forwarded by the server; the control instruction is used to indicate an instruction for controlling the display device on the terminal device.
7. A display device remote communication method applied to a server, characterized by, Comprising: When connected to a display device through SSE, receive a connection request sent by a terminal device; The connection request comprises information of a target display device requested to communicate by the terminal device; Encrypt the information in the connection request by using an encryption algorithm to generate a digital key; Generate a validity period key for a preset validity date; obtaining a check sum of the combination of the digital key and the valid period key by using a check algorithm; obtaining an authentication code by mixing the digital key, the valid period key and the check sum according to a preset rule, and sending the authentication code to the display device; the display device is configured to check the authentication code, and send a feedback message to the server when the check is successful; receiving the feedback message sent by the display device; forwarding the control instruction sent by the terminal device to the display device.
8. A display device remote communication method applied to a terminal device, characterized by, comprising: sending a connection request to the server when the display device and the server are connected by SSE; the connection request includes information of a target display device requested to communicate by a terminal device, and the server is configured to generate a digital key by encrypting the information in the connection request by using an encryption algorithm; and generate a valid period key for a preset valid date; obtaining a check sum of the combination of the digital key and the valid period key by using a check algorithm; obtaining an authentication code by mixing the digital key, the valid period key and the check sum according to a preset rule; and receiving a feedback message sent by the display device when the display device successfully checks the authentication code; when the server receives the feedback message, sending a control instruction for operating the display device to the server, so that the server forwards the control instruction to the display device.
Citation Information
Patent Citations
Light-emitting diode (LED) display system controlled by cloud computing
CN102546787A
Security verification method and system for communication equipment, computer equipment and medium
CN110519764A
Controlling content on a display device
US20160050255A1