[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

TWI472189B - Network monitoring system and method for managing key - Google Patents

Network monitoring system and method for managing key Download PDF

Info

Publication number
TWI472189B
TWI472189B TW101100468A TW101100468A TWI472189B TW I472189 B TWI472189 B TW I472189B TW 101100468 A TW101100468 A TW 101100468A TW 101100468 A TW101100468 A TW 101100468A TW I472189 B TWI472189 B TW I472189B
Authority
TW
Taiwan
Prior art keywords
key
dynamic module
client
client program
control system
Prior art date
Application number
TW101100468A
Other languages
Chinese (zh)
Other versions
TW201330549A (en
Inventor
Min Chih Kao
Original Assignee
Ind Tech Res Inst
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to TW101100468A priority Critical patent/TWI472189B/en
Publication of TW201330549A publication Critical patent/TW201330549A/en
Application granted granted Critical
Publication of TWI472189B publication Critical patent/TWI472189B/en

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

網路監控系統及管理金鑰的方法Network monitoring system and method for managing keys

本發明是有關於一種網路監控機制,且特別是有關於一種針對客戶端程式被安裝在不被信任環境的網路監控系統及管理金鑰的方法。The present invention relates to a network monitoring mechanism, and more particularly to a method for a network monitoring system and a management key for a client program to be installed in an untrusted environment.

監視控制和資料獲取(supervisory control and data acquisition,SCADA)系統是一種具有監控程式以及資料收集能力的網路監控系統。目前,SCADA系統已廣泛應用於電力、瓦斯及自來水等基礎設施的監控。早期SCADA系統為封閉系統,只使用一組帳號及密碼進行認證,客戶端程式與主控台之間不需金鑰管理技術及強化的認證協定。為此,已經有許多方案提供強化的認證協定及傳輸層安全(Secure Sockets Layer,SSL)連線。然而,目前金鑰的管理還是存有問題,大部分的實作都將金鑰靜態地放在客戶端程式,因而造成安全漏洞。The supervisory control and data acquisition (SCADA) system is a network monitoring system with monitoring programs and data collection capabilities. At present, SCADA systems have been widely used in the monitoring of infrastructure such as electricity, gas and water. The early SCADA system was a closed system, and only a set of accounts and passwords were used for authentication. There is no need for key management technology and enhanced authentication agreement between the client program and the console. To this end, there are already many options for providing enhanced authentication protocols and Secure Sockets Layer (SSL) connections. However, there are still problems with the management of the current key, and most of the implementations statically place the key on the client program, thus creating a security hole.

舉例來說,類似於SCADA系統的軟體市集(APP market)、數位著作權管理(Digital Rights Management,DRM)系統及先進讀表基礎建設(Advanced Metering Infrastructure,AMI)系統等,這些系統的客戶端程式是安裝於開放的系統,並且配備屬於網路服務提供廠商的金鑰,以防止合法用戶非法使用。For example, similar to the SCADA system's APP market, Digital Rights Management (DRM) system and Advanced Metering Infrastructure (AMI) system, the client program of these systems. It is installed in an open system and is equipped with a key belonging to the network service provider to prevent illegal use by legitimate users.

例如,AMI系統的應用方面,以智慧電表而言,一般智慧電表為安裝於戶外的設備,而智慧電表中安裝有客戶端程式,並且在客戶端程式中儲存有一金鑰,以避免用戶篡改傳送內容。另外,軟體市集及DRM的金鑰亦是存在於用戶主機的客戶端程式中,以避免用戶非法使用軟體、內容。For example, in the application of the AMI system, in the case of a smart meter, a general smart meter is a device installed outdoors, and a smart meter has a client program installed therein, and a key is stored in the client program to prevent the user from tampering with the transfer. content. In addition, the software market and DRM keys are also stored in the client program of the user host to prevent users from illegally using software and content.

然而,上述作法使得金鑰的保護更形困難。因為軟體市集及DRM系統將金鑰放在用戶主機的客戶端程式中,以致於無法抵擋逆向工程等攻擊。而在AMI系統中,智慧電表及中繼設備都設置在戶外,使得即使配備有智慧卡,依然無法做有效的存取控制,因為存取控制的密碼沒有人可以鍵入,倘若由遠端來執行則亦會遇到如何保護金鑰的問題。However, the above practices make the protection of the keys more difficult. Because the software market and DRM system put the key in the client program of the user host, it can not resist attacks such as reverse engineering. In the AMI system, the smart meter and the relay device are set outdoors, so that even if equipped with a smart card, effective access control cannot be performed because no password can be typed by the access control password, if executed by the remote end. You will also encounter the problem of how to protect the key.

由於金鑰是安全協定的基礎,尤其是客戶端程式被安裝在不被信任的環境,倘若將金鑰直接放在客戶端程式是相當不安全。因此,如何管理金鑰為整體系統的安全性的重要關鍵之一。Since the key is the basis of the security agreement, especially if the client program is installed in an untrusted environment, it is quite insecure if the key is placed directly on the client program. Therefore, how to manage the key is one of the important keys to the security of the overall system.

本發明提供一種網路監控系統及其管理金鑰的方法,針對客戶端程式被安裝在不被信任的環境,造成金鑰保護的困難,提出基於動態模組及協定的金鑰保護機制,以抵擋靜態分析並減緩動態攻擊。The invention provides a network monitoring system and a method for managing the key thereof, and the key protection mechanism based on the dynamic module and the agreement is proposed to solve the problem that the client program is installed in an untrusted environment and the key protection is caused. Resist static analysis and mitigate dynamic attacks.

本發明提出一種管理金鑰的方法,適於網路監控系統,此網路監控系統包括主控系統以及客戶端裝置。管理金鑰的方法包括:客戶端裝置執行客戶端程式以向主控系統註冊,使得主控系統產生動態模組;主控系統傳送動態模組至客戶端裝置;客戶端裝置透過客戶端程式驗證動態模組;客戶端裝置透過動態模組驗證客戶端程式;在客戶端程式驗證無誤之後,客戶端裝置透過動態模組與主控系統執行金鑰交換程序,以產生客戶端裝置與主控系統之間的共享金鑰。The invention provides a method for managing a key, which is suitable for a network monitoring system, and the network monitoring system comprises a master control system and a client device. The method for managing the key includes: the client device executes the client program to register with the master control system, so that the master control system generates the dynamic module; the master control system transmits the dynamic module to the client device; and the client device verifies through the client program. The dynamic module; the client device verifies the client program through the dynamic module; after the client program is verified, the client device performs a key exchange process with the master control system through the dynamic module to generate the client device and the master control system. The shared key between.

本發明提出一種網路監控系統,包括客戶端裝置以及主控系統。客戶端裝置設置在私有網路(private network)中,其中私有網路架構在公眾網路(public network)上,並且,客戶端裝置安裝有客戶端程式。而主控系統透過公眾網路連接至私有網路以與客戶端裝置連線。主控系統包括完整性驗證器、動態模組產生器以及認證伺服器,個別功能介紹下:The invention provides a network monitoring system, which comprises a client device and a master control system. The client device is set in a private network, wherein the private network is on a public network, and the client device is installed with a client program. The master control system is connected to the private network through a public network to connect with the client device. The main control system includes an integrity verifier, a dynamic module generator and an authentication server.

● 完整性驗證器功能有二。首先,此完整性驗證器會產生驗證資訊,這些資訊會放入動態模組,讓動態模組可以對客戶端程式做近端的完整性驗證(此種近端完整性驗證可稱為近端鑑認)。再者,此完整性驗證器會透過動態模組做遠端完整性驗證(此種遠端完整性驗證可稱為遠端鑑認),而此遠端驗證只發生在近端的完整性驗證成功之後。● There are two integrity verifier functions. First, the integrity verifier generates verification information, which is put into the dynamic module, so that the dynamic module can perform near-end integrity verification on the client program (such near-end integrity verification can be called near-end Identification). Furthermore, the integrity verifier performs remote integrity verification through the dynamic module (such remote integrity verification can be referred to as remote authentication), and this remote verification only occurs in the near-end integrity verification. After success.

● 動態模組產生器會產生動態模組,此動態模組除了包含上述驗證資訊,還包含一動態認證程序。當近端及遠端驗證成功後,此動態認證程序將與認證伺服器做認證及金鑰交換。● The dynamic module generator generates a dynamic module. In addition to the above verification information, the dynamic module also includes a dynamic authentication program. After the near-end and far-end verification is successful, the dynamic authentication program will perform authentication and key exchange with the authentication server.

● 認證伺服器會與上述的動態模組執行認證程序,並共同產生金鑰供客戶端程式使用。● The authentication server will perform the authentication process with the above dynamic module and jointly generate the key for the client program to use.

在本發明之一實施例中,上述動態模組包括數位簽章(digital signature)、暫時金鑰、記憶體佈置資訊、校驗預設結果以及暫時識別碼。數位簽章是由私密金鑰(private key)對此動態模組(除數位簽章之外)的內容所做的簽章,而此私密金鑰與客戶端程式中的公開金鑰(public key)為金鑰對(key pair)。其中,當產生動態模組時,動態模組產生器除了將上述資訊放入動態模組之外,還會將暫時金鑰、記憶體佈置資訊以及校驗預設結果傳送給完整性驗證器,並且將暫時識別碼資訊傳送至認證伺服器。In an embodiment of the invention, the dynamic module includes a digital signature, a temporary key, a memory arrangement information, a verification preset result, and a temporary identification code. A digital signature is a signature made by a private key to the content of the dynamic module (except the digital signature), and the private key and the public key in the client program (public key) ) is a key pair. Wherein, when the dynamic module is generated, the dynamic module generator transmits the temporary key, the memory arrangement information, and the verification preset result to the integrity verifier in addition to the above information. And the temporary identification code information is transmitted to the authentication server.

在本發明之一實施例中,上述客戶端程式依據公開金鑰來驗證動態模組中的數位簽章。In an embodiment of the invention, the client program verifies the digital signature in the dynamic module according to the public key.

在本發明之一實施例中,在動態模組驗證無誤之後,動態模組自客戶端程式中取得客戶端識別碼,並且隨機產生記憶體位置,而傳送記憶體位置以及記憶體佈置資訊給客戶端程式,使得客戶端程式依據記憶體位置以及記憶體佈置資訊,計算一驗證碼,並傳送驗證碼給動態模組。而動態模組依據暫時金鑰以及客戶端識別碼產生客戶端金鑰,並且依據驗證碼與客戶端金鑰產生校驗結果,以比對校驗結果與校驗預設結果。In an embodiment of the present invention, after the dynamic module is verified, the dynamic module obtains the client identification code from the client program, and randomly generates the memory location, and transmits the memory location and the memory layout information to the client. The end program causes the client program to calculate a verification code based on the memory location and the memory layout information, and transmit the verification code to the dynamic module. The dynamic module generates a client key according to the temporary key and the client identification code, and generates a verification result according to the verification code and the client key, so as to compare the verification result with the verification preset result.

在本發明之一實施例中,完整性驗證器會隨機產生一記憶體位置,並傳送記憶體位置以及記憶體佈置資訊給客戶端程式,使得客戶端程式依據記憶體位置以及記憶體佈置資訊,計算一驗證碼,並傳送驗證碼給完整性驗證器;而完整性驗證器會依據驗證碼與暫時金鑰計算校驗結果,以比對校驗結果與校驗預設結果。In an embodiment of the present invention, the integrity verifier randomly generates a memory location, and transmits the memory location and the memory layout information to the client program, so that the client program arranges information according to the memory location and the memory. A verification code is calculated and the verification code is transmitted to the integrity verifier; and the integrity verifier calculates the verification result according to the verification code and the temporary key to compare the verification result with the verification preset result.

在本發明之一實施例中,在客戶端程式驗證無誤之後,動態模組傳送暫時識別碼以及第一數值給認證伺服器,並且認證伺服器傳送第二數值給動態模組;而動態模組產生第三數值,並透過公開金鑰將第三數值加密而獲得秘密數值,以傳送秘密數值至認證伺服器;而認證伺服器依據私密金鑰將秘密數值解密而獲得第三數值,使得認證伺服器與動態模組依據第一數值、第二數值以及第三數值來產生共享金鑰。In an embodiment of the present invention, after the client program is verified to be correct, the dynamic module transmits the temporary identification code and the first value to the authentication server, and the authentication server transmits the second value to the dynamic module; and the dynamic module Generating a third value and encrypting the third value through the public key to obtain a secret value to transmit the secret value to the authentication server; and the authentication server decrypts the secret value according to the private key to obtain the third value, so that the authentication servo The dynamic module generates a shared key according to the first value, the second value, and the third value.

基於上述,本發明可避免將金鑰直接儲存在客戶端程式上,在客戶端程式欲與主控系統通訊時,才由主控系統來取得一動態模組。並且,在客戶端程式與動態模組相互驗證無誤之後,方可透過動態模組來與主控系統進行金鑰交換程序。據此,可抵擋靜態分析並減緩動態攻擊。Based on the above, the present invention can avoid storing the key directly on the client program, and when the client program wants to communicate with the host control system, the master control system obtains a dynamic module. Moreover, after the client program and the dynamic module are mutually verified, the key exchange program can be performed with the master control system through the dynamic module. As a result, static analysis can be resisted and dynamic attacks can be mitigated.

為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。The above described features and advantages of the present invention will be more apparent from the following description.

金鑰保護技術比較偏向系統安全,在不同的主機系統就會有不同的做法與安全性。而目前常見的網路監控系統中,由於客戶端裝置的使用者通常擁有系統管理者的權限,可以對客戶端程式進行各種分析,因此主控端所能提供的安全保障非常有限。為此,本發明提出一種管理金鑰的方法,避免將共享金鑰直接儲存在客戶端程式。為了使本發明之內容更為明瞭,以下特舉實施例作為本發明確實能夠據以實施的範例。Key protection technology is biased towards system security, and there are different practices and security in different host systems. In the current common network monitoring system, since the user of the client device usually has the authority of the system administrator, various analysis can be performed on the client program, so the security provided by the host terminal is very limited. To this end, the present invention proposes a method of managing a key to avoid storing the shared key directly in the client program. In order to clarify the content of the present invention, the following specific examples are given as examples in which the present invention can be implemented.

第一實施例First embodiment

圖1是依照本發明第一實施例的網路監控系統之管理金鑰流程的示意圖。請參照圖1,網路監控系統包括主控系統110以及客戶端裝置120。在此,客戶端裝置120中安裝有一客戶端程式。1 is a schematic diagram of a management key process of a network monitoring system in accordance with a first embodiment of the present invention. Referring to FIG. 1, the network monitoring system includes a main control system 110 and a client device 120. Here, a client program is installed in the client device 120.

以網路監控系統為SCADA系統為例,主控系統110包括SCADA系統的主控台(Master Station)以及人機介面,客戶端裝置120則為SCADA系統的遠端終端單元(Remote Terminal Unit,RTU)。SCADA系統的遠端終端單元一般會配備感測器(Sensor)來擷取資料,並使用各類網路技術將資料傳回主控台,最後以人機介面顯示給管理人員判讀。Taking the network monitoring system as an example of the SCADA system, the main control system 110 includes a master station and a human machine interface of the SCADA system, and the client device 120 is a remote terminal unit (RTU) of the SCADA system. ). The remote terminal unit of the SCADA system is generally equipped with a sensor to retrieve data, and uses various network technologies to transmit the data back to the main console, and finally displays it to the management personnel through the human-machine interface display.

在本實施例中,客戶端程式中不直接儲存金鑰資訊,而是以金鑰初始程序(包括鑑證與金鑰交換(key exchange)兩個功能)來取代,並且,此金鑰初始程序亦不會直接儲存在客戶端程式,而是放入一動態模組中,待客戶端裝置120欲與主控系統110通訊時,客戶端程式才由主控系統110來取得此動態模組。In this embodiment, the key information is not directly stored in the client program, but is replaced by a key initial procedure (including two functions of authentication and key exchange), and the initial procedure of the key is also It is not stored directly in the client program, but is placed in a dynamic module. When the client device 120 wants to communicate with the main control system 110, the client program acquires the dynamic module by the main control system 110.

詳細地說,在步驟S131中,當客戶端裝置120欲與主控系統110通訊時,客戶端程式會向主控系統110註冊,使得主控系統110產生動態模組。接著,在步驟S133中,主控系統110將動態模組傳送客戶端裝置120。In detail, in step S131, when the client device 120 wants to communicate with the main control system 110, the client program registers with the main control system 110, so that the main control system 110 generates a dynamic module. Next, in step S133, the main control system 110 transmits the dynamic module to the client device 120.

之後,在步驟S135中,客戶端程式會驗證動態模組,以確保動態模組是由主控系統110所傳送。然後,在動態模組驗證無誤,執行步驟S137,動態模組驗證客戶端程式,以確保客戶端程式的完整性。舉例來說,這樣的驗證可分成兩類,對於AMI系統,可以對整個客戶端裝置120的記憶體進行核對和(checksum)檢查。另外,對於DRM系統或軟體市集系統,由於客戶端裝置120屬於使用者,因此只能針對客戶端程式來作完整性驗證。此外,還可在動態模組中設置一個時限,只要驗證計算所花費的時間超過時限,便視為失敗。Thereafter, in step S135, the client program verifies the dynamic module to ensure that the dynamic module is transmitted by the master system 110. Then, in the dynamic module verification, step S137 is executed, and the dynamic module verifies the client program to ensure the integrity of the client program. For example, such verification can be divided into two categories, and for the AMI system, the memory of the entire client device 120 can be checked for checksum. In addition, for the DRM system or the software marketplace system, since the client device 120 belongs to the user, the integrity verification can only be performed for the client program. In addition, you can set a time limit in the dynamic module, as long as the time spent verifying the calculation exceeds the time limit, it is considered a failure.

另外,當動態模組佈署至客戶端裝置120之後,會先在客戶端裝置120執行近端鑑認(local attestation),由動態模組來驗證客戶端程式。若是成功,還可進一步由主控系統110執行遠端鑑認(remote attestation),以由主控系統110再一次來驗證客戶端程式。In addition, after the dynamic module is deployed to the client device 120, a local attestation is performed on the client device 120, and the client program is verified by the dynamic module. If successful, remote attestation may be further performed by the host system 110 to verify the client program again by the host system 110.

當客戶端程式驗證無誤,執行步驟S139,透過動態模組與主控系統110來執行金鑰交換程序,藉以產生主控系統110及客戶端裝置120之間的共享金鑰。金鑰交換程序類似於傳輸層安全(Secure Sockets Layer,SSL)協定的金鑰交換程序,不同的地方在於,本發明的程序使用暫時的識別碼,暫時的金鑰以及密碼演算法,都是動態模組產生器隨機產生,以避免攻擊者可透過攔截封包的方式累積相關知識。When the client program is verified, step S139 is executed to execute the key exchange program through the dynamic module and the main control system 110, thereby generating a shared key between the main control system 110 and the client device 120. The key exchange program is similar to the key exchange program of the Secure Sockets Layer (SSL) protocol. The difference is that the program of the present invention uses a temporary identification code, a temporary key and a cryptographic algorithm, which are dynamic. The module generator is randomly generated to prevent the attacker from accumulating relevant knowledge by intercepting the packet.

在獲得共享金鑰之後,便可透過共享金鑰來導出其他不同金鑰。例如,訊息認證碼(Message Authentication Code,MAC)金鑰、加密金鑰(encryption key)以及在每一次連線所需要的金鑰等等。這些金鑰將不會以任何形式持續儲存於客戶端裝置120中,而是每次在執行客戶端程式時,經過上述流程來動態產生,進而減少被攻擊的機會。After the shared key is obtained, the different keys can be derived through the shared key. For example, a Message Authentication Code (MAC) key, an encryption key, and a key required for each connection. These keys will not be continuously stored in the client device 120 in any form, but will be dynamically generated each time the client program is executed, thereby reducing the chance of being attacked.

第二實施例Second embodiment

圖2A~圖2F是依照本發明第二實施例的管理金鑰的方法流程的示意圖。在本實施例中,網路監控系統200包括主控系統210以及至少一客戶端裝置,在此列出客戶端裝置220、230、240為例。在此僅為舉例說明,並不以此限制客戶端裝置的數量。2A-2F are schematic diagrams showing a flow of a method for managing a key in accordance with a second embodiment of the present invention. In this embodiment, the network monitoring system 200 includes a master control system 210 and at least one client device, and the client devices 220, 230, 240 are listed here as an example. This is for illustrative purposes only and does not limit the number of client devices.

在此,客戶端裝置220、230、240架構於私有網路(private network)250中,而私有網路250則是架構於公眾網路(public network)260上。其中,公眾網路260例如為網際網路(Internet)。私有網路250是一種常用於連接中、大型企業或團體與團體間的私人網路的通訊方法。而私有網路250透過網路服務提供者(Internet Service Provider,ISP)280連線至公眾網路260。例如,利用穿隧(tunneling)技術、加解密等安全技術,在公眾網路260上,建構出虛擬的私有網路250,以達到私有網路250的安全與便利性。另外,閘道器(gateway)270是用以連線兩個網路,也就是私有網路250與公眾網路260。而在其他實施例中,主控系統210與客戶端裝置120之間亦可透過其他任一網路系統來進行溝通,並不以此為限。Here, the client devices 220, 230, 240 are architected in a private network 250, while the private network 250 is architected on a public network 260. The public network 260 is, for example, the Internet. Private network 250 is a communication method commonly used to connect private networks between medium and large enterprises or between groups and groups. The private network 250 is connected to the public network 260 via an Internet Service Provider (ISP) 280. For example, a virtual private network 250 is constructed on the public network 260 by using security technologies such as tunneling technology, encryption and decryption, etc., to achieve the security and convenience of the private network 250. In addition, a gateway 270 is used to connect two networks, namely a private network 250 and a public network 260. In other embodiments, the main control system 210 and the client device 120 can communicate with each other through any other network system, and is not limited thereto.

主控系統210包括動態模組產生器211、完整性驗證器213以及認證伺服器215。其中,動態模組產生器211用以產生動態模組,完整性驗證器213用以驗證客戶端程式221的完整性,認證伺服器215用以執行金鑰交換程序。在此,動態模組產生器211、完整性驗證器213以及認證伺服器215可以是設置在同一台設備中;亦或是分別設置於三台設備中;或者,動態模組產生器211設置在一台設備上,而完整性驗證器213以及認證伺服器215則設置在另一台設備上。The main control system 210 includes a dynamic module generator 211, an integrity verifier 213, and an authentication server 215. The dynamic module generator 211 is used to generate a dynamic module, the integrity verifier 213 is used to verify the integrity of the client program 221, and the authentication server 215 is used to execute a key exchange program. Here, the dynamic module generator 211, the integrity verifier 213, and the authentication server 215 may be disposed in the same device; or may be respectively disposed in three devices; or, the dynamic module generator 211 is disposed in On one device, the integrity verifier 213 and the authentication server 215 are placed on another device.

為了方便說明,本實施例以客戶端裝置220為例來說明管理金鑰的方法各步驟,由於客戶端裝置230、240的動作與客戶端裝置220相同,故不另再一一詳述。For convenience of description, the present embodiment uses the client device 220 as an example to describe the steps of the method for managing the key. Since the operations of the client devices 230 and 240 are the same as those of the client device 220, they are not described in detail.

請參照圖2A,在客戶端裝置220中執行客戶端程式221向動態模組產生器211註冊,如步驟A所示,使得動態模組產生器211產生一動態模組。舉例來說,當客戶端裝置220啟動客戶端程式221時,客戶端程式221可向主控系統210發出一註冊請求,並且註冊請求中包括了一客戶端識別碼,以供主控系統210識別此註冊請求是由何處所傳送。Referring to FIG. 2A, the client program 221 is executed in the client device 220 to register with the dynamic module generator 211. As shown in step A, the dynamic module generator 211 generates a dynamic module. For example, when the client device 220 launches the client program 221, the client program 221 can issue a registration request to the master control system 210, and the registration request includes a client identification code for the master control system 210 to identify. Where is this registration request sent?

接著,請參照圖2B,當動態模組產生器211接收到註冊請求時,便會動態產生一動態模組223,並且將動態模組223傳送至客戶端裝置220,如步驟B所示。在此,動態模組223例如為一動態連結庫(dynamic library),其包含了鑑證與金鑰交換兩個功能。Next, referring to FIG. 2B, when the dynamic module generator 211 receives the registration request, a dynamic module 223 is dynamically generated, and the dynamic module 223 is transmitted to the client device 220, as shown in step B. Here, the dynamic module 223 is, for example, a dynamic library, which includes two functions of authentication and key exchange.

舉例來說,動態模組產生器211會動態產生一鑑證程式以及一金鑰交換協定程式,並將鑑證程式以及金鑰交換協定程式放入動態模組223中,以傳送至客戶端裝置220。其中,鑑證程式包含可以驗證客戶端程式221完整性的資訊,而為了避免事先運算及重送攻擊,這些資訊也是動態產生。例如,鑑證程式可以是由核對和(checksum)函數實作,其是由基本的算術運算指令隨機建立,同時核對和函數也可包含一個時限,當核對和函數計算核對和的時間超過時限,便會被視為失敗。而金鑰交換協定程式則是用來產生客戶端程式221與認證伺服器215的共享金鑰。For example, the dynamic module generator 211 dynamically generates an attestation program and a key exchange protocol program, and places the attestation program and the key exchange protocol program into the dynamic module 223 for transmission to the client device 220. The forensic program contains information that can verify the integrity of the client program 221, and this information is dynamically generated in order to avoid prior calculations and resend attacks. For example, the attestation program can be implemented by a checksum function, which is randomly established by basic arithmetic operations instructions, and the checksum function can also contain a time limit. When the checksum and the function calculate the checksum time exceeds the time limit, Will be considered a failure. The key exchange protocol program is used to generate a shared key between the client program 221 and the authentication server 215.

另外,動態模組產生器211在產生動態模組223時,還會產生暫時金鑰、記憶體佈置資訊、校驗預設結果以及暫時識別碼等資訊,並將這些資訊放在動態模組223中。並且,在產生動態模組223時,動態模組產生器221還會一併將暫時金鑰、記憶體佈置資訊以及校驗預設結果傳送給完整性驗證器213,並且將暫時識別碼資訊傳送至認證伺服器215。In addition, when the dynamic module generator 211 generates the dynamic module 223, information such as a temporary key, a memory arrangement information, a verification preset result, and a temporary identification code are generated, and the information is placed in the dynamic module 223. in. Moreover, when the dynamic module 223 is generated, the dynamic module generator 221 also transmits the temporary key, the memory arrangement information, and the verification preset result to the integrity verifier 213, and transmits the temporary identification code information. To the authentication server 215.

例如,鑑證程式內含暫時金鑰、記憶體佈置資訊以及校驗預設結果等資訊,而金鑰交換協定程式內含暫時識別碼。在產生動態模組223之後,動態模組產生器221會分別複製鑑證程式以及金鑰交換協定程式,以將鑑證程式傳送給完整性驗證器213,而將金鑰交換協定程式傳給認證伺服器215,以待後續使用。For example, the forensic program contains information such as temporary keys, memory placement information, and verification preset results, and the key exchange protocol program contains temporary identification codes. After the dynamic module 223 is generated, the dynamic module generator 221 copies the forensic program and the key exchange protocol program, respectively, to transmit the forensic program to the integrity verifier 213, and transmits the key exchange protocol program to the authentication server. 215, for later use.

當客戶端裝置220接收到動態模組223之後,請參照圖2C,客戶端程式221會去驗證動態模組223,如步驟C所示。例如,客戶端程式221會依據自身所具有的公開金鑰(public key)來驗證動態模組223中的數位簽章(digital signature)。舉例來說,假設客戶端程式221與主控系統210之間的加密方式為非對稱式加密,並且假設客戶端程式221中具有一公開金鑰,而主控系統210中具有一私密金鑰(private key),即,上述公開金鑰與私密金鑰為金鑰對(key pair)。在主控系統210產生動態模組223時,會利用其私密金鑰來實現一數位簽章。據此,當客戶端裝置220接收到動態模組223時,客戶端程式221便可利用其公開金鑰來驗證此數位簽章,藉以驗證動態模組223的身分。After the client device 220 receives the dynamic module 223, referring to FIG. 2C, the client program 221 will verify the dynamic module 223, as shown in step C. For example, the client program 221 verifies the digital signature in the dynamic module 223 based on its own public key. For example, assume that the encryption mode between the client program 221 and the main control system 210 is asymmetric encryption, and it is assumed that the client program 221 has a public key, and the main control system 210 has a private key ( Private key), that is, the above public key and private key are key pairs. When the master system 210 generates the dynamic module 223, it will use its private key to implement a digital signature. Accordingly, when the client device 220 receives the dynamic module 223, the client program 221 can use the public key to verify the digital signature, thereby verifying the identity of the dynamic module 223.

在動態模組223驗證無誤之後,結合客戶端程式221與動態模組223。例如,以動態連結(dynamic linking)方式或程式碼注入(code injection)方式,結合客戶端程式221與動態模組223。而結合的方式會因目標平台不同而不同。另外,倘若動態模組223的驗證未通過,則停止後續其他動作。After the dynamic module 223 is verified, the client program 221 and the dynamic module 223 are combined. For example, the client program 221 and the dynamic module 223 are combined in a dynamic linking manner or a code injection manner. The way of combining will vary depending on the target platform. In addition, if the verification of the dynamic module 223 does not pass, the subsequent other actions are stopped.

然後,請參照圖2D,動態模組223會去驗證客戶端裝置221,如步驟D所示。例如,利用動態模組223中的鑑證程式來驗證客戶端程式221的完整性。進一步地說,動態模組223會隨機產生一記憶體位置,並將記憶體位置以及記憶體佈置資訊傳送給客戶端程式221。而客戶端程式221便可依據記憶體位置以及記憶體佈置資訊,計算出一驗證碼,並將驗證碼傳送給動態模組223。之後,動態模組223依據驗證碼與暫時金鑰來計算一校驗結果,以比對校驗結果與動態模組223中的校驗預設結果。倘若計算出的校驗結果與校驗預設結果相同,表示驗證無誤。倘若校驗結果與校驗預設結果不同,表示驗證錯誤。此時,便停止後續其他動作。Then, referring to FIG. 2D, the dynamic module 223 will verify the client device 221 as shown in step D. For example, the integrity of the client program 221 is verified using the attestation program in the dynamic module 223. Further, the dynamic module 223 randomly generates a memory location and transmits the memory location and the memory layout information to the client program 221. The client program 221 can calculate a verification code according to the memory location and the memory arrangement information, and transmit the verification code to the dynamic module 223. Thereafter, the dynamic module 223 calculates a verification result according to the verification code and the temporary key to compare the verification result with the verification preset result in the dynamic module 223. If the calculated verification result is the same as the verification preset result, the verification is correct. If the verification result is different from the verification preset result, it indicates a verification error. At this point, the subsequent actions are stopped.

底下即以動態模組223以及客戶端裝置221為例,再舉一例來說明,圖3是依照本發明第二實施例之透過動態模組驗證客戶端程式流程的示意圖。在本實施例中,動態模組223所攜帶的驗證資訊是由動態模組產生器211提供。在此,動態模組223所攜帶的驗證資訊包括暫時金鑰K、記憶體佈置資訊(如,記憶體位置函數Address)以及校驗預設結果PRE_RESULT。The dynamic module 223 and the client device 221 are taken as an example to illustrate the following. FIG. 3 is a schematic diagram of the process of verifying the client program through the dynamic module according to the second embodiment of the present invention. In this embodiment, the verification information carried by the dynamic module 223 is provided by the dynamic module generator 211. Here, the verification information carried by the dynamic module 223 includes a temporary key K, a memory arrangement information (eg, a memory location function Address), and a verification preset result PRE_RESULT.

請參照圖3,在步驟S301中,動態模組223向客戶端程式221要其客戶端識別碼SN,透過客戶端識別碼SN來取出相對應的資訊。並且,依據暫時金鑰K以及客戶端識別碼SN產生客戶端金鑰KEY,以待後續使用。在此,客戶端識別碼SN例如為事先放入客戶端程式221的序列號。Referring to FIG. 3, in step S301, the dynamic module 223 requests the client identifier SN to the client program 221 to retrieve the corresponding information through the client identifier SN. Moreover, the client key KEY is generated according to the temporary key K and the client identifier SN for later use. Here, the client identification code SN is, for example, a serial number that is previously placed in the client program 221.

接著,在步驟S303中,動態模組223亂數產生m個隨機參數r1 ~rm 。並且,在步驟S305中,依據記憶體位置函數Address以及隨機參數r1 ~rm ,計算出客戶端裝置220的記憶體位址區塊Mi =Address(ri ),其中,i=1~m。藉此,使得客戶端程式231依據Mi 來取出對應的記憶體位址區塊。Next, in step S303, the dynamic module 223 randomly generates m random parameters r 1 to r m . In addition, in step S305, the memory address block M i =Address(r i ) of the client device 220 is calculated according to the memory location function Address and the random parameters r 1 to r m , where i=1~m . Thereby, the client program 231 causes the corresponding memory address block to be retrieved according to M i .

之後,在步驟S307中,客戶端程式231依據所取出的記憶體位址區塊Mi ,利用客戶端程式231的核對和函數checksum來計算各記憶體位址區塊的核對和Vi =checksum(Mi ,Size)。其中,變數Size為一固定常數,例如為記憶體取樣大小。然後,在步驟S309中,計算各記憶體位址區塊的驗證碼Q=V1 ⊕V2 …⊕VmThen, in step S307, the client program 231 uses the checksum of the client program 231 and the function checksum to calculate the checksum of each memory address block and V i =checksum(M) according to the extracted memory address block M i . i , Size). Wherein, the variable Size is a fixed constant, such as a memory sampling size. Then, in step S309, the verification code Q = V 1 ⊕ V 2 ... ⊕ V m of each memory address block is calculated.

而後,在步驟S311中,客戶端程式221將驗證碼Q傳送至動態模組223。在此,更可設定一時限T1,當動態模組223在時限T1內未接收到驗證碼Q,即判定驗證失敗。之後,在步驟S313中,動態模組223依據暫時金鑰K以及驗證碼Q,並且利用一雜湊函數(hash function)H來計算校驗結果RESULT,以比較校驗結果RESULT以及校驗預設結果PRE_RESULT。其中,RESULT=H(H(Q),KEY),KEY=SN⊕K。Then, in step S311, the client program 221 transmits the verification code Q to the dynamic module 223. Here, a time limit T1 can be set. When the dynamic module 223 does not receive the verification code Q within the time limit T1, it is determined that the verification fails. Thereafter, in step S313, the dynamic module 223 calculates the verification result RESULT according to the temporary key K and the verification code Q, and uses a hash function H to compare the verification result RESULT and verify the preset result. PRE_RESULT. Among them, RESULT=H(H(Q), KEY), KEY=SN⊕K.

客戶端識別碼SN為事先放入客戶端程式的序列號,而暫時金鑰K則是動態產生並放入動態模組223。當動態模組產生器211在準備好這些參數後,會將暫時金鑰K、雜湊函數H及其他相關函數放入動態模組223,並在估算時限T1後,也將時限T1放入動態模組223。The client identifier SN is a serial number that is previously placed in the client program, and the temporary key K is dynamically generated and placed in the dynamic module 223. When the dynamic module generator 211 prepares these parameters, the temporary key K, the hash function H and other related functions are placed in the dynamic module 223, and after the time limit T1 is estimated, the time limit T1 is also placed in the dynamic mode. Group 223.

當客戶端程式221驗證動態模組223成功之後,動態模組223還會連接至主控系統210的完整性驗證器213來驗證客戶端程式221。返回圖2E,由主控系統210的完整性驗證器213來驗證客戶端程式221,如步驟E所示。具體而言,完整性驗證器213會隨機產生一記憶體位置,並傳送記憶體位置以及記憶體佈置資訊給客戶端程式221,使得客戶端程式221依據記憶體位置以及記憶體佈置資訊,計算一驗證碼,並傳送驗證碼給完整性驗證器213。並且,完整性驗證器213會依據驗證碼與暫時金鑰來計算校驗結果,以比對校驗結果與校驗預設結果。After the client program 221 verifies that the dynamic module 223 is successful, the dynamic module 223 is also connected to the integrity verifier 213 of the main control system 210 to verify the client program 221. Returning to Figure 2E, the client program 221 is verified by the integrity verifier 213 of the host system 210, as shown in step E. Specifically, the integrity verifier 213 randomly generates a memory location, and transmits the memory location and the memory layout information to the client program 221, so that the client program 221 calculates a memory location and memory layout information. The verification code is transmitted and the verification code is transmitted to the integrity verifier 213. Moreover, the integrity verifier 213 calculates the verification result according to the verification code and the temporary key to compare the verification result with the verification preset result.

舉例來說,圖4是依照本發明第二實施例之透過完整性驗證器來驗證客戶端程式流程的示意圖。在本實施例中,步驟S401~S413分別與步驟S301~S313相同或相似,故在此不再詳述。For example, FIG. 4 is a schematic diagram of verifying a client program flow by a transparency integrity verifier according to a second embodiment of the present invention. In this embodiment, steps S401 to S413 are the same as or similar to steps S301 to S313, respectively, and therefore will not be described in detail herein.

請參照圖4,在步驟S401中,完整性驗證器213向客戶端程式221要其客戶端識別碼SN,藉以依據暫時金鑰K以及客戶端識別碼SN產生客戶端金鑰KEY。接著,在步驟S403中,完整性驗證器213亂數產生m個隨機參數r1 ~rm 。並且,在步驟S405中,計算出記憶體位址區塊Mi =Address(ri ),其中,i=1~m。之後,在步驟S407中,客戶端程式231依據所取出的記憶體位址區塊,計算各記憶體位址區塊的核對和Vi =checksum(Mi ,Size)。其中,變數Size為一固定常數。然後,在步驟S409中,計算各記憶體位址區塊的驗證碼Q=V1 ⊕V2 …⊕VmReferring to FIG. 4, in step S401, the integrity verifier 213 requests the client identifier SN to the client program 221 to generate the client key KEY based on the temporary key K and the client identifier SN. Next, in step S403, the integrity verifier 213 generates m random parameters r 1 to r m in a random number. And, in step S405, the memory address block M i = Address(r i ) is calculated, where i=1~m. Thereafter, in step S407, the client program 231 calculates the collation of each memory address block and V i =checksum(M i , Size) according to the extracted memory address block. Wherein, the variable Size is a fixed constant. Then, in step S409, the verification code Q = V 1 ⊕ V 2 ... ⊕ V m of each memory address block is calculated.

而後,在步驟S411中,客戶端程式221將驗證碼Q傳送至完整性驗證器213。在此,更可設定一時限T2,當完整性驗證器213在時限T2內未接收到驗證碼Q,即判定驗證失敗。之後,在步驟S413中,完整性驗證器213依據暫時金鑰K以及驗證碼Q,並且利用一雜湊函數H來計算校驗結果RESULT,以比較校驗結果RESULT以及校驗預設結果PRE_RESULT。Then, in step S411, the client program 221 transmits the verification code Q to the integrity verifier 213. Here, a time limit T2 can be set. When the integrity verifier 213 does not receive the verification code Q within the time limit T2, it is determined that the verification fails. Thereafter, in step S413, the integrity verifier 213 calculates the verification result RESULT based on the temporary key K and the verification code Q, and uses a hash function H to compare the verification result RESULT and the verification preset result PRE_RESULT.

也就是說,當動態模組223佈署出去後,會依照上述步驟S301~S309來驗證客戶端程式231的完整性,並檢查計算時間是否在時限T1內,此為近端鑑認。倘若成功還會進行遠端鑑認,如步驟S401~S413。待近端鑑認與遠端鑑認皆成功,方執行金鑰交換程序。如此分散式結構,可以減低通訊及後端主控系統210的負擔。That is to say, after the dynamic module 223 is deployed, the integrity of the client program 231 is verified according to the above steps S301 to S309, and it is checked whether the calculation time is within the time limit T1, which is the near-end authentication. If successful, remote authentication will be performed, such as steps S401~S413. After the near-end authentication and the remote authentication are successful, the key exchange program is executed. Such a decentralized structure can reduce the burden on the communication and backend master control system 210.

返回圖2F,在客戶端程式221驗證無誤之後,客戶端裝置221透過動態模組223與主控系統210的認證伺服器215執行金鑰交換程序,如步驟F所示,以產生客戶端裝置220與主控系統210之間的共享金鑰。Returning to FIG. 2F, after the client program 221 is verified to be correct, the client device 221 performs a key exchange process with the authentication server 215 of the master control system 210 via the dynamic module 223, as shown in step F, to generate the client device 220. A shared key with the master system 210.

舉例來說,圖5是依照本發明第二實施例之執行金鑰交換程序的示意圖。請參照圖5,在步驟S501中,動態模組223會傳送暫時識別碼以及第一數值給認證伺服器215。在此,第一數值可以為動態模組223亂數產生的數值。當認證伺服器215接收到暫時識別碼時,依據動態模組產生器211在產生動態模組223時所產生之暫時識別碼來識別動態模組223的身分。For example, FIG. 5 is a schematic diagram of an execution key exchange procedure in accordance with a second embodiment of the present invention. Referring to FIG. 5, in step S501, the dynamic module 223 transmits the temporary identification code and the first value to the authentication server 215. Here, the first value may be a value generated by the random number of the dynamic module 223. When the authentication server 215 receives the temporary identification code, the identity of the dynamic module 223 is identified according to the temporary identification code generated by the dynamic module generator 211 when the dynamic module 223 is generated.

並且,在步驟S503中,認證伺服器215傳送第二數值給動態模組223。同樣地,第二數值亦可以為認證伺服器215亂數產生。另外,在步驟S505中,動態模組223產生第三數值,並透過公開金鑰將第三數值加密而獲得秘密數值。之後,在步驟S507中,將秘密數值傳送至認證伺服器215。而認證伺服器215在接收到秘密數值之後,便可依據公開金鑰對應的私密金鑰來將秘密數值解密而獲得第三數值。And, in step S503, the authentication server 215 transmits the second value to the dynamic module 223. Similarly, the second value can also be generated by the authentication server 215. In addition, in step S505, the dynamic module 223 generates a third value and encrypts the third value through the public key to obtain a secret value. Thereafter, in step S507, the secret value is transmitted to the authentication server 215. After receiving the secret value, the authentication server 215 can decrypt the secret value according to the private key corresponding to the public key to obtain the third value.

據此,動態模組223以及認證伺服器215中便分別具有第一數值、第二數值以及第三數值。在步驟S509及步驟S511中,動態模組223與認證伺服器215便可依據第一數值、第二數值以及第三數值來產生共享金鑰。之後,便可透過共享金鑰來導出其他不同金鑰。Accordingly, the dynamic module 223 and the authentication server 215 respectively have a first value, a second value, and a third value. In step S509 and step S511, the dynamic module 223 and the authentication server 215 can generate the shared key according to the first value, the second value, and the third value. After that, you can export other different keys through the shared key.

值得注意的是,為了避免金鑰交換過程被分析,動態模組223所攜帶的金鑰交換協定程式中亦有時間限定,只要接收回應的時間超過時間限定,暫時識別碼以及隨機產生的數值便會被取消。It is worth noting that in order to avoid the key exchange process being analyzed, the key exchange protocol program carried by the dynamic module 223 also has a time limit, as long as the time for receiving the response exceeds the time limit, the temporary identification code and the randomly generated value are Will be cancelled.

綜上所述,上述實施例中,不在客戶端程式中直接儲存金鑰資訊,而是而是以金鑰初始程序(包括鑑證與金鑰交換(key exchange)兩個功能)來取代,並且,此金鑰初始程序亦不會直接儲存在客戶端程式,而是放入一動態模組中,待客戶端程式欲與主控系統通訊時,客戶端程式才由主控系統來取得此動態模組。由於鑑證與金鑰交換兩個功能都是由主控系統動態產生,據此,可避免攻擊者事先分析動態模組程式碼或是收集要求/回應(request/response)結果,攻擊者便無法累積動態模組的知識。另外,動態模組中包括了近端鑑認、遠端鑑認以及金鑰交換等功能,在近端鑑認成功之後,再進行遠端鑑認以及金鑰交換,如此分散式結構,可以減低通訊及主控系統的負擔。此外,透過時限限制,亦能夠避免攻擊者的分析。In summary, in the above embodiment, the key information is not directly stored in the client program, but is instead replaced by a key initial procedure (including two functions of authentication and key exchange), and The initial program of the key is not stored directly in the client program, but is placed in a dynamic module. When the client program wants to communicate with the host system, the client program obtains the dynamic mode by the master control system. group. Since both the authentication and key exchange functions are dynamically generated by the master control system, the attacker can not be accumulated by avoiding the attacker analyzing the dynamic module code or collecting the request/response result in advance. Knowledge of dynamic modules. In addition, the dynamic module includes functions such as near-end authentication, remote authentication, and key exchange. After the near-end authentication is successful, remote authentication and key exchange are performed. This decentralized structure can be reduced. The burden of communication and master control systems. In addition, the analysis of the time limit can also avoid the analysis of the attacker.

雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。Although the present invention has been disclosed in the above embodiments, it is not intended to limit the invention, and any one of ordinary skill in the art can make some modifications and refinements without departing from the spirit and scope of the invention. The scope of the invention is defined by the scope of the appended claims.

110、210...主控系統110, 210. . . Master control system

120、220、230、240...客戶端裝置120, 220, 230, 240. . . Client device

211...動態模組產生器211. . . Dynamic module generator

213...完整性驗證器213. . . Integrity verifier

215...認證伺服器215. . . Authentication server

221...客戶端程式221. . . Client program

223...動態模組223. . . Dynamic module

250...私有網路250. . . Private network

260...公眾網路260. . . Public network

270...閘道器270. . . Gateway

280...網路服務提供者280. . . Network service provider

S131~S139...第一實施例的網路監控系統之管理金鑰流程的各步驟S131~S139. . . Each step of the management key process of the network monitoring system of the first embodiment

A~F...第二實施例的管理金鑰的方法各步驟A~F. . . Method for managing a key in the second embodiment

S301~S313...第二實施例之透過動態模組驗證客戶端程式流程的各步驟S301~S313. . . The steps of verifying the client program flow through the dynamic module in the second embodiment

S401~S413...第二實施例之透過完整性驗證器來驗證客戶端程式流程的各步驟S401~S413. . . The pass integrity verifier of the second embodiment is used to verify the steps of the client program flow

S501~S511...第二實施例之執行金鑰交換程序的各步驟S501~S511. . . Steps of executing the key exchange program of the second embodiment

圖1是依照本發明第一實施例的網路監控系統之管理金鑰流程的示意圖。1 is a schematic diagram of a management key process of a network monitoring system in accordance with a first embodiment of the present invention.

圖2A~圖2F是依照本發明第二實施例的管理金鑰的方法流程的示意圖。2A-2F are schematic diagrams showing a flow of a method for managing a key in accordance with a second embodiment of the present invention.

圖3是依照本發明第二實施例之透過動態模組驗證客戶端程式流程的示意圖。3 is a schematic diagram of a process of verifying a client program through a dynamic module according to a second embodiment of the present invention.

圖4是依照本發明第二實施例之透過完整性驗證器來驗證客戶端程式流程的示意圖。4 is a schematic diagram of verifying a client program flow by a transparency integrity verifier according to a second embodiment of the present invention.

圖5是依照本發明第二實施例之執行金鑰交換程序的示意圖。Figure 5 is a schematic diagram of an execution key exchange procedure in accordance with a second embodiment of the present invention.

S131~S139...第一實施例的網路監控系統之管理金鑰流程的各步驟S131~S139. . . Each step of the management key process of the network monitoring system of the first embodiment

Claims (17)

一種管理金鑰的方法,適於一網路監控系統,該網路監控系統包括一主控系統以及一客戶端裝置,而該方法包括:該客戶端裝置執行一客戶端程式以向該主控系統註冊,使得該主控系統產生一動態模組;該主控系統傳送該動態模組至該客戶端裝置;該客戶端裝置透過該客戶端程式驗證該動態模組;該客戶端裝置透過該動態模組驗證該客戶端程式;在該客戶端程式驗證無誤之後,該客戶端裝置透過該動態模組與該主控系統執行一金鑰交換程序,以產生該客戶端裝置與該主控系統之間的一共享金鑰。A method for managing a key is adapted to a network monitoring system, the network monitoring system comprising a master control system and a client device, and the method comprises: the client device executing a client program to the master The system is registered to enable the master control system to generate a dynamic module; the master control system transmits the dynamic module to the client device; the client device verifies the dynamic module through the client program; the client device transmits the dynamic module The dynamic module verifies the client program; after the client program is verified, the client device performs a key exchange process with the master control system through the dynamic module to generate the client device and the master control system. A shared key between. 如申請專利範圍第1項所述之管理金鑰的方法,其中該客戶端裝置設置在一私有網路中,並且該私有網路架構在一公眾網路上,使得該客戶端裝置透過該私有網路連接至該公眾網路以與該主控系統連線。The method of managing a key according to claim 1, wherein the client device is disposed in a private network, and the private network is configured on a public network, so that the client device transmits the private network. The road is connected to the public network to connect to the main control system. 如申請專利範圍第1項所述之管理金鑰的方法,其中該主控系統包括一動態模組產生器、一完整性驗證器以及一認證伺服器,其中該動態模組產生器用以產生該動態模組,該完整性驗證器用以驗證該客戶端程式,該認證伺服器用以執行該金鑰交換程序。The method for managing a key according to claim 1, wherein the master control system comprises a dynamic module generator, an integrity verifier, and an authentication server, wherein the dynamic module generator is configured to generate the key A dynamic module, the integrity verifier is used to verify the client program, and the authentication server is configured to execute the key exchange program. 如申請專利範圍第1項所述之管理金鑰的方法,其中在該主控系統傳送該動態模組至該客戶端裝置的步驟之前,更包括;產生該動態模組一數位簽章,該數位簽章是由一私密金鑰所實現,而該私密金鑰與該客戶端程式中的一公開金鑰為一金鑰對。The method for managing a key according to claim 1, wherein before the step of transmitting the dynamic module to the client device, the method further includes: generating a digital signature of the dynamic module, The digital signature is implemented by a private key that is a key pair with a public key in the client program. 如申請專利範圍第4項所述之管理金鑰的方法,其而該客戶端裝置透過該客戶端程式驗證該動態模組的步驟包括:該客戶端程式依據該公開金鑰來驗證該動態模組中的該數位簽章。The method for managing a key as described in claim 4, wherein the step of the client device verifying the dynamic module through the client program comprises: the client program verifying the dynamic mode according to the public key The digital signature in the group. 如申請專利範圍第1項所述之管理金鑰的方法,其中該動態模組中包括一暫時金鑰、一記憶體佈置資訊以及一校驗預設結果,而該客戶端裝置透過該動態模組驗證該客戶端程式的步驟包括:該動態模組隨機產生一記憶體位置,並傳送該記憶體位置以及該記憶體佈置資訊給該客戶端程式;該客戶端程式依據該記憶體位置以及該記憶體佈置資訊,計算一驗證碼,並傳送該驗證碼給該動態模組;以及該動態模組依據該驗證碼與該暫時金鑰計算一校驗結果,以比對該校驗結果與該校驗預設結果。The method for managing a key as described in claim 1, wherein the dynamic module includes a temporary key, a memory arrangement information, and a verification preset result, and the client device transmits the dynamic mode The step of verifying the client program includes: the dynamic module randomly generates a memory location, and transmits the memory location and the memory arrangement information to the client program; the client program is based on the memory location and the The memory arrangement information, calculating a verification code, and transmitting the verification code to the dynamic module; and the dynamic module calculates a verification result according to the verification code and the temporary key, to compare the verification result with the Verify the preset results. 如申請專利範圍第6項所述之管理金鑰的方法,其中在該動態模組依據該驗證碼與該暫時金鑰計算該校驗結果的步驟之前,更包括:該動態模組自該客戶端程式中取得一客戶端識別碼;依據該暫時金鑰以及該客戶端識別碼產生一客戶端金鑰,使得該動態模組依據該驗證碼與該客戶端金鑰產生該校驗結果。The method for managing a key according to claim 6 , wherein before the step of calculating the verification result by the dynamic module according to the verification code and the temporary key, the method further comprises: the dynamic module from the client A client identifier is obtained in the terminal program; a client key is generated according to the temporary key and the client identifier, so that the dynamic module generates the check result according to the verification code and the client key. 如申請專利範圍第1項所述之管理金鑰的方法,其中在執行該金鑰交換程序的步驟之前,更包括:當該客戶端裝置透過該動態模組驗證該客戶端程式成功時,由該主控系統驗證該客戶端程式,而該步驟包括:該主控系統隨機產生一記憶體位置,並傳送該記憶體位置以及一記憶體佈置資訊給該客戶端程式;該客戶端程式依據該記憶體位置以及該記憶體佈置資訊,計算一驗證碼,並傳送該驗證碼給該主控系統;以及該主控系統依據該驗證碼與一暫時金鑰計算一校驗結果,以比對該校驗結果與一校驗預設結果。The method for managing a key according to claim 1, wherein before the step of executing the key exchange procedure, the method further comprises: when the client device verifies that the client program succeeds through the dynamic module, The master control system verifies the client program, and the step includes: the master control system randomly generates a memory location, and transmits the memory location and a memory arrangement information to the client program; the client program is configured according to the a memory location and the memory arrangement information, calculating a verification code, and transmitting the verification code to the main control system; and the main control system calculates a verification result according to the verification code and a temporary key to compare The verification result is combined with a verification preset result. 如申請專利範圍第1項所述之管理金鑰的方法,其中在並傳送該驗證碼給該主控系統的步驟之後,更包括:當該主控系統在一時限內未接收到該驗證碼,判定該客戶端程式驗證失敗。The method for managing a key according to claim 1, wherein after the step of transmitting the verification code to the main control system, the method further comprises: when the main control system does not receive the verification code within a time limit , to determine that the client program verification failed. 如申請專利範圍第1項所述之管理金鑰的方法,其中該客戶端裝置透過該動態模組與該主控系統執行該金鑰交換程序,以產生該終端單元與該主控系統之間的該共享金鑰的步驟包括:該動態模組傳送一暫時識別碼以及一第一數值給該主控系統;該主控系統傳送一第二數值給該動態模組;該動態模組產生一第三數值,並透過一公開金鑰將該第三數值加密而獲得一秘密數值,而傳送該秘密數值至該主控系統;該主控系統依據該公開金鑰對應的一私密金鑰來解密該秘密數值而獲得該第三數值;以及該主控系統與該動態模組依據該第一數值、該第二數值以及該第三數值來產生該共享金鑰。The method for managing a key according to claim 1, wherein the client device performs the key exchange procedure with the main control system through the dynamic module to generate a relationship between the terminal unit and the main control system. The step of sharing the key includes: transmitting, by the dynamic module, a temporary identification code and a first value to the main control system; the main control system transmitting a second value to the dynamic module; the dynamic module generates a a third value, and encrypting the third value by a public key to obtain a secret value, and transmitting the secret value to the master control system; the master control system decrypts according to a private key corresponding to the public key Obtaining the third value by the secret value; and the master control system and the dynamic module generate the shared key according to the first value, the second value, and the third value. 如申請專利範圍第1項所述之管理金鑰的方法,其中在該客戶端裝置透過該客戶端程式驗證該動態模組的步驟之後,更包括:以一動態連結方式或一程式碼注入方式,結合該客戶端程式與該動態模組。The method for managing a key according to claim 1, wherein after the step of verifying the dynamic module by the client device, the method further comprises: using a dynamic link or a code injection method. , combining the client program with the dynamic module. 一種網路監控系統,包括:一客戶端裝置,設置在一私有網路中,其中該私有網路架構在一公眾網路上,並且,該客戶端裝置安裝有一客戶端程式;以及一主控系統,透過該公眾網路連接至該私有網路以與該客戶端裝置連線,該主控系統包括:一動態模組產生器,用來產生一動態模組;一完整性驗證器,用來驗證該客戶端程式;以及一認證伺服器,用來執行一金鑰交換程序以與該客戶端程式產生一共享金鑰;其中,該客戶端裝置執行該客戶端程式向該動態模組產生器註冊,以自該動態模組產生器接收該動態模組,並且,透過該客戶端程式驗證該動態模組;而在該動態模組驗證無誤之後,該客戶端裝置透過該動態模組驗證該客戶端程式,並且該主控系統透過該完整性驗證器驗證該客戶端程式;而在該客戶端程式驗證無誤之後,該客戶端裝置透過該動態模組與該認證伺服器執行該金鑰交換程序以產生該共享金鑰。A network monitoring system includes: a client device disposed in a private network, wherein the private network is on a public network, and the client device is installed with a client program; and a host system Connecting to the private network through the public network to connect with the client device, the master control system includes: a dynamic module generator for generating a dynamic module; and an integrity validator for Verifying the client program; and an authentication server for executing a key exchange program to generate a shared key with the client program; wherein the client device executes the client program to the dynamic module generator Registering to receive the dynamic module from the dynamic module generator, and verifying the dynamic module through the client program; and after the dynamic module is verified, the client device verifies the dynamic module through the dynamic module a client program, and the master system verifies the client program through the integrity verifier; and after the client program is verified to be correct, the client device transmits the Module to the authentication server executes the key exchange procedure to generate the shared key. 如申請專利範圍第12項所述之網路監控系統,其中該動態模組包括一數位簽章、一暫時金鑰、一記憶體佈置資訊、一校驗預設結果以及一暫時識別碼,而該數位簽章是由一私密金鑰所實現,而該私密金鑰與該客戶端程式中的一公開金鑰為一金鑰對;其中,當產生該動態模組時,該動態模組產生器將該暫時金鑰、該記憶體佈置資訊以及該校驗預設結果傳送給該完整性驗證器,並且將該暫時識別碼資訊傳送至該認證伺服器。The network monitoring system of claim 12, wherein the dynamic module comprises a digital signature, a temporary key, a memory arrangement information, a verification preset result, and a temporary identification code, and The digital signature is implemented by a private key, and the private key is a key pair with a public key in the client program; wherein, when the dynamic module is generated, the dynamic module generates The temporary key, the memory arrangement information, and the verification preset result are transmitted to the integrity verifier, and the temporary identification code information is transmitted to the authentication server. 如申請專利範圍第13項所述之網路監控系統,其中該客戶端程式依據該公開金鑰來驗證該動態模組中的該數位簽章。The network monitoring system of claim 13, wherein the client program verifies the digital signature in the dynamic module according to the public key. 如申請專利範圍第13項所述之網路監控系統,其中在該動態模組驗證無誤之後,該動態模組自該客戶端程式中取得一客戶端識別碼,並且隨機產生一記憶體位置,而傳送該記憶體位置以及該記憶體佈置資訊給該客戶端程式,使得該客戶端程式依據該記憶體位置以及該記憶體佈置資訊,計算一驗證碼,並傳送該驗證碼給該動態模組;而該動態模組依據該暫時金鑰以及該客戶端識別碼產生一客戶端金鑰,並且依據該驗證碼與該客戶端金鑰產生該校驗結果,以比對該校驗結果與該校驗預設結果。The network monitoring system of claim 13, wherein after the dynamic module is verified, the dynamic module obtains a client identification code from the client program, and randomly generates a memory location. And transmitting the memory location and the memory arrangement information to the client program, so that the client program calculates a verification code according to the memory location and the memory arrangement information, and transmits the verification code to the dynamic module. And generating, by the dynamic module, a client key according to the temporary key and the client identifier, and generating the verification result according to the verification code and the client key, to compare the verification result with the Verify the preset results. 如申請專利範圍第13項所述之網路監控系統,其中該完整性驗證器會隨機產生一記憶體位置,並傳送該記憶體位置以及該記憶體佈置資訊給該客戶端程式,使得該客戶端程式依據該記憶體位置以及該記憶體佈置資訊,計算一驗證碼,並傳送該驗證碼給該完整性驗證器;而該完整性驗證器會依據該驗證碼與該暫時金鑰計算一校驗結果,以比對該校驗結果與該校驗預設結果。The network monitoring system of claim 13, wherein the integrity verifier randomly generates a memory location, and transmits the memory location and the memory arrangement information to the client program, so that the client The terminal program calculates a verification code according to the memory location and the memory arrangement information, and transmits the verification code to the integrity verifier; and the integrity verifier calculates a school according to the verification code and the temporary key. The result is compared with the check result and the check preset result. 如申請專利範圍第13項所述之網路監控系統,其中在該客戶端程式驗證無誤之後,該動態模組傳送該暫時識別碼以及一第一數值給該認證伺服器,並且該認證伺服器傳送一第二數值給該動態模組;而該動態模組產生一第三數值,並透過該公開金鑰將該第三數值加密而獲得一秘密數值,而傳送該秘密數值至該認證伺服器;而該認證伺服器依據該私密金鑰來解密該秘密數值而獲得該第三數值,使得該認證伺服器與該動態模組依據該第一數值、該第二數值以及該第三數值來產生該共享金鑰。The network monitoring system of claim 13, wherein the dynamic module transmits the temporary identification code and a first value to the authentication server after the client program is verified, and the authentication server Transmitting a second value to the dynamic module; and the dynamic module generates a third value, and encrypting the third value through the public key to obtain a secret value, and transmitting the secret value to the authentication server And the authentication server decrypts the secret value according to the private key to obtain the third value, so that the authentication server and the dynamic module generate the first value, the second value, and the third value according to the first value, the second value, and the third value. The shared key.
TW101100468A 2012-01-05 2012-01-05 Network monitoring system and method for managing key TWI472189B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101100468A TWI472189B (en) 2012-01-05 2012-01-05 Network monitoring system and method for managing key

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101100468A TWI472189B (en) 2012-01-05 2012-01-05 Network monitoring system and method for managing key

Publications (2)

Publication Number Publication Date
TW201330549A TW201330549A (en) 2013-07-16
TWI472189B true TWI472189B (en) 2015-02-01

Family

ID=49225898

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101100468A TWI472189B (en) 2012-01-05 2012-01-05 Network monitoring system and method for managing key

Country Status (1)

Country Link
TW (1) TWI472189B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI514189B (en) * 2013-07-22 2015-12-21 Ind Tech Res Inst Network certification system and method thereof
TWI694349B (en) * 2019-01-22 2020-05-21 開曼群島商現代財富控股有限公司 Threshold signature system with prevent memory dump and method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200505199A (en) * 2003-07-16 2005-02-01 zhao-jia Xu System for performing authentication in wireless local area network
TW201135508A (en) * 2009-06-11 2011-10-16 Microsoft Corp Key management in secure network enclaves

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200505199A (en) * 2003-07-16 2005-02-01 zhao-jia Xu System for performing authentication in wireless local area network
TW201135508A (en) * 2009-06-11 2011-10-16 Microsoft Corp Key management in secure network enclaves

Also Published As

Publication number Publication date
TW201330549A (en) 2013-07-16

Similar Documents

Publication Publication Date Title
CN102624740B (en) A kind of data interactive method and client, server
CN103581108B (en) Login authentication method, login authentication client, login authentication server and login authentication system
CN101005361B (en) Server and software protection method and system
CN114499895B (en) Data trusted processing method and system fusing trusted computing and block chain
CN100496025C (en) Ternary equal identification based reliable network access control method
CN109361668A (en) A kind of data trusted transmission method
US10263782B2 (en) Soft-token authentication system
US9300639B1 (en) Device coordination
CN101682628A (en) Secure communications
CN107438230A (en) Safe wireless ranging
US20100250949A1 (en) Generation, requesting, and/or reception, at least in part, of token
CN110267270A (en) A kind of substation's inner sensor terminal access Border Gateway authentication intelligence contract
CN105681470A (en) Communication method, server and terminal based on hypertext transfer protocol
CN109040079A (en) The establishment of live streaming chained address and verification method and related device
CN102025503A (en) Data security implementation method in cluster environment and high-security cluster
CN111314381A (en) Safety isolation gateway
CN109309645A (en) A kind of software distribution security guard method
EP2827529B1 (en) Method, device, and system for identity authentication
Aung et al. Ethereum-based emergency service for smart home system: Smart contract implementation
CN106657002A (en) Novel crash-proof base correlation time multi-password identity authentication method
CN116633530A (en) Quantum key transmission method, device and system
Badar et al. Secure authentication protocol for home area network in smart grid-based smart cities
JP2002529778A (en) Incorporating shared randomness into distributed encryption
CN110519222A (en) Outer net access identity authentication method and system based on disposable asymmetric key pair and key card
TWI472189B (en) Network monitoring system and method for managing key