TW201330549A - 網路監控系統及管理金鑰的方法 - Google Patents

網路監控系統及管理金鑰的方法 Download PDF

Info

Publication number
TW201330549A
TW201330549A TW101100468A TW101100468A TW201330549A TW 201330549 A TW201330549 A TW 201330549A TW 101100468 A TW101100468 A TW 101100468A TW 101100468 A TW101100468 A TW 101100468A TW 201330549 A TW201330549 A TW 201330549A
Authority
TW
Taiwan
Prior art keywords
key
dynamic module
client
client program
control system
Prior art date
Application number
TW101100468A
Other languages
English (en)
Other versions
TWI472189B (zh
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/zh
Publication of TW201330549A publication Critical patent/TW201330549A/zh
Application granted granted Critical
Publication of TWI472189B publication Critical patent/TWI472189B/zh

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一種網路監控系統及管理金鑰的方法。網路監控系統包括主控系統以及客戶端裝置。客戶端裝置執行客戶端程式以向主控系統註冊,使得主控系統產生動態模組,並傳送動態模組至客戶端裝置。而客戶端裝置透過客戶端程式驗證動態模組,之後再透過動態模組驗證客戶端程式。在驗證無誤之後,客戶端裝置透過動態模組與主控系統執行金鑰交換程序,以產生客戶端裝置與主控系統之間的共享金鑰。

Description

網路監控系統及管理金鑰的方法
本發明是有關於一種網路監控機制,且特別是有關於一種針對客戶端程式被安裝在不被信任環境的網路監控系統及管理金鑰的方法。
監視控制和資料獲取(supervisory control and data acquisition,SCADA)系統是一種具有監控程式以及資料收集能力的網路監控系統。目前,SCADA系統已廣泛應用於電力、瓦斯及自來水等基礎設施的監控。早期SCADA系統為封閉系統,只使用一組帳號及密碼進行認證,客戶端程式與主控台之間不需金鑰管理技術及強化的認證協定。為此,已經有許多方案提供強化的認證協定及傳輸層安全(Secure Sockets Layer,SSL)連線。然而,目前金鑰的管理還是存有問題,大部分的實作都將金鑰靜態地放在客戶端程式,因而造成安全漏洞。
舉例來說,類似於SCADA系統的軟體市集(APP market)、數位著作權管理(Digital Rights Management,DRM)系統及先進讀表基礎建設(Advanced Metering Infrastructure,AMI)系統等,這些系統的客戶端程式是安裝於開放的系統,並且配備屬於網路服務提供廠商的金鑰,以防止合法用戶非法使用。
例如,AMI系統的應用方面,以智慧電表而言,一般智慧電表為安裝於戶外的設備,而智慧電表中安裝有客戶端程式,並且在客戶端程式中儲存有一金鑰,以避免用戶篡改傳送內容。另外,軟體市集及DRM的金鑰亦是存在於用戶主機的客戶端程式中,以避免用戶非法使用軟體、內容。
然而,上述作法使得金鑰的保護更形困難。因為軟體市集及DRM系統將金鑰放在用戶主機的客戶端程式中,以致於無法抵擋逆向工程等攻擊。而在AMI系統中,智慧電表及中繼設備都設置在戶外,使得即使配備有智慧卡,依然無法做有效的存取控制,因為存取控制的密碼沒有人可以鍵入,倘若由遠端來執行則亦會遇到如何保護金鑰的問題。
由於金鑰是安全協定的基礎,尤其是客戶端程式被安裝在不被信任的環境,倘若將金鑰直接放在客戶端程式是相當不安全。因此,如何管理金鑰為整體系統的安全性的重要關鍵之一。
本發明提供一種網路監控系統及其管理金鑰的方法,針對客戶端程式被安裝在不被信任的環境,造成金鑰保護的困難,提出基於動態模組及協定的金鑰保護機制,以抵擋靜態分析並減緩動態攻擊。
本發明提出一種管理金鑰的方法,適於網路監控系統,此網路監控系統包括主控系統以及客戶端裝置。管理金鑰的方法包括:客戶端裝置執行客戶端程式以向主控系統註冊,使得主控系統產生動態模組;主控系統傳送動態模組至客戶端裝置;客戶端裝置透過客戶端程式驗證動態模組;客戶端裝置透過動態模組驗證客戶端程式;在客戶端程式驗證無誤之後,客戶端裝置透過動態模組與主控系統執行金鑰交換程序,以產生客戶端裝置與主控系統之間的共享金鑰。
本發明提出一種網路監控系統,包括客戶端裝置以及主控系統。客戶端裝置設置在私有網路(private network)中,其中私有網路架構在公眾網路(public network)上,並且,客戶端裝置安裝有客戶端程式。而主控系統透過公眾網路連接至私有網路以與客戶端裝置連線。主控系統包括完整性驗證器、動態模組產生器以及認證伺服器,個別功能介紹下:
● 完整性驗證器功能有二。首先,此完整性驗證器會產生驗證資訊,這些資訊會放入動態模組,讓動態模組可以對客戶端程式做近端的完整性驗證(此種近端完整性驗證可稱為近端鑑認)。再者,此完整性驗證器會透過動態模組做遠端完整性驗證(此種遠端完整性驗證可稱為遠端鑑認),而此遠端驗證只發生在近端的完整性驗證成功之後。
● 動態模組產生器會產生動態模組,此動態模組除了包含上述驗證資訊,還包含一動態認證程序。當近端及遠端驗證成功後,此動態認證程序將與認證伺服器做認證及金鑰交換。
● 認證伺服器會與上述的動態模組執行認證程序,並共同產生金鑰供客戶端程式使用。
在本發明之一實施例中,上述動態模組包括數位簽章(digital signature)、暫時金鑰、記憶體佈置資訊、校驗預設結果以及暫時識別碼。數位簽章是由私密金鑰(private key)對此動態模組(除數位簽章之外)的內容所做的簽章,而此私密金鑰與客戶端程式中的公開金鑰(public key)為金鑰對(key pair)。其中,當產生動態模組時,動態模組產生器除了將上述資訊放入動態模組之外,還會將暫時金鑰、記憶體佈置資訊以及校驗預設結果傳送給完整性驗證器,並且將暫時識別碼資訊傳送至認證伺服器。
在本發明之一實施例中,上述客戶端程式依據公開金鑰來驗證動態模組中的數位簽章。
在本發明之一實施例中,在動態模組驗證無誤之後,動態模組自客戶端程式中取得客戶端識別碼,並且隨機產生記憶體位置,而傳送記憶體位置以及記憶體佈置資訊給客戶端程式,使得客戶端程式依據記憶體位置以及記憶體佈置資訊,計算一驗證碼,並傳送驗證碼給動態模組。而動態模組依據暫時金鑰以及客戶端識別碼產生客戶端金鑰,並且依據驗證碼與客戶端金鑰產生校驗結果,以比對校驗結果與校驗預設結果。
在本發明之一實施例中,完整性驗證器會隨機產生一記憶體位置,並傳送記憶體位置以及記憶體佈置資訊給客戶端程式,使得客戶端程式依據記憶體位置以及記憶體佈置資訊,計算一驗證碼,並傳送驗證碼給完整性驗證器;而完整性驗證器會依據驗證碼與暫時金鑰計算校驗結果,以比對校驗結果與校驗預設結果。
在本發明之一實施例中,在客戶端程式驗證無誤之後,動態模組傳送暫時識別碼以及第一數值給認證伺服器,並且認證伺服器傳送第二數值給動態模組;而動態模組產生第三數值,並透過公開金鑰將第三數值加密而獲得秘密數值,以傳送秘密數值至認證伺服器;而認證伺服器依據私密金鑰將秘密數值解密而獲得第三數值,使得認證伺服器與動態模組依據第一數值、第二數值以及第三數值來產生共享金鑰。
基於上述,本發明可避免將金鑰直接儲存在客戶端程式上,在客戶端程式欲與主控系統通訊時,才由主控系統來取得一動態模組。並且,在客戶端程式與動態模組相互驗證無誤之後,方可透過動態模組來與主控系統進行金鑰交換程序。據此,可抵擋靜態分析並減緩動態攻擊。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
金鑰保護技術比較偏向系統安全,在不同的主機系統就會有不同的做法與安全性。而目前常見的網路監控系統中,由於客戶端裝置的使用者通常擁有系統管理者的權限,可以對客戶端程式進行各種分析,因此主控端所能提供的安全保障非常有限。為此,本發明提出一種管理金鑰的方法,避免將共享金鑰直接儲存在客戶端程式。為了使本發明之內容更為明瞭,以下特舉實施例作為本發明確實能夠據以實施的範例。
第一實施例
圖1是依照本發明第一實施例的網路監控系統之管理金鑰流程的示意圖。請參照圖1,網路監控系統包括主控系統110以及客戶端裝置120。在此,客戶端裝置120中安裝有一客戶端程式。
以網路監控系統為SCADA系統為例,主控系統110包括SCADA系統的主控台(Master Station)以及人機介面,客戶端裝置120則為SCADA系統的遠端終端單元(Remote Terminal Unit,RTU)。SCADA系統的遠端終端單元一般會配備感測器(Sensor)來擷取資料,並使用各類網路技術將資料傳回主控台,最後以人機介面顯示給管理人員判讀。
在本實施例中,客戶端程式中不直接儲存金鑰資訊,而是以金鑰初始程序(包括鑑證與金鑰交換(key exchange)兩個功能)來取代,並且,此金鑰初始程序亦不會直接儲存在客戶端程式,而是放入一動態模組中,待客戶端裝置120欲與主控系統110通訊時,客戶端程式才由主控系統110來取得此動態模組。
詳細地說,在步驟S131中,當客戶端裝置120欲與主控系統110通訊時,客戶端程式會向主控系統110註冊,使得主控系統110產生動態模組。接著,在步驟S133中,主控系統110將動態模組傳送客戶端裝置120。
之後,在步驟S135中,客戶端程式會驗證動態模組,以確保動態模組是由主控系統110所傳送。然後,在動態模組驗證無誤,執行步驟S137,動態模組驗證客戶端程式,以確保客戶端程式的完整性。舉例來說,這樣的驗證可分成兩類,對於AMI系統,可以對整個客戶端裝置120的記憶體進行核對和(checksum)檢查。另外,對於DRM系統或軟體市集系統,由於客戶端裝置120屬於使用者,因此只能針對客戶端程式來作完整性驗證。此外,還可在動態模組中設置一個時限,只要驗證計算所花費的時間超過時限,便視為失敗。
另外,當動態模組佈署至客戶端裝置120之後,會先在客戶端裝置120執行近端鑑認(local attestation),由動態模組來驗證客戶端程式。若是成功,還可進一步由主控系統110執行遠端鑑認(remote attestation),以由主控系統110再一次來驗證客戶端程式。
當客戶端程式驗證無誤,執行步驟S139,透過動態模組與主控系統110來執行金鑰交換程序,藉以產生主控系統110及客戶端裝置120之間的共享金鑰。金鑰交換程序類似於傳輸層安全(Secure Sockets Layer,SSL)協定的金鑰交換程序,不同的地方在於,本發明的程序使用暫時的識別碼,暫時的金鑰以及密碼演算法,都是動態模組產生器隨機產生,以避免攻擊者可透過攔截封包的方式累積相關知識。
在獲得共享金鑰之後,便可透過共享金鑰來導出其他不同金鑰。例如,訊息認證碼(Message Authentication Code,MAC)金鑰、加密金鑰(encryption key)以及在每一次連線所需要的金鑰等等。這些金鑰將不會以任何形式持續儲存於客戶端裝置120中,而是每次在執行客戶端程式時,經過上述流程來動態產生,進而減少被攻擊的機會。
第二實施例
圖2A~圖2F是依照本發明第二實施例的管理金鑰的方法流程的示意圖。在本實施例中,網路監控系統200包括主控系統210以及至少一客戶端裝置,在此列出客戶端裝置220、230、240為例。在此僅為舉例說明,並不以此限制客戶端裝置的數量。
在此,客戶端裝置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之間亦可透過其他任一網路系統來進行溝通,並不以此為限。
主控系統210包括動態模組產生器211、完整性驗證器213以及認證伺服器215。其中,動態模組產生器211用以產生動態模組,完整性驗證器213用以驗證客戶端程式221的完整性,認證伺服器215用以執行金鑰交換程序。在此,動態模組產生器211、完整性驗證器213以及認證伺服器215可以是設置在同一台設備中;亦或是分別設置於三台設備中;或者,動態模組產生器211設置在一台設備上,而完整性驗證器213以及認證伺服器215則設置在另一台設備上。
為了方便說明,本實施例以客戶端裝置220為例來說明管理金鑰的方法各步驟,由於客戶端裝置230、240的動作與客戶端裝置220相同,故不另再一一詳述。
請參照圖2A,在客戶端裝置220中執行客戶端程式221向動態模組產生器211註冊,如步驟A所示,使得動態模組產生器211產生一動態模組。舉例來說,當客戶端裝置220啟動客戶端程式221時,客戶端程式221可向主控系統210發出一註冊請求,並且註冊請求中包括了一客戶端識別碼,以供主控系統210識別此註冊請求是由何處所傳送。
接著,請參照圖2B,當動態模組產生器211接收到註冊請求時,便會動態產生一動態模組223,並且將動態模組223傳送至客戶端裝置220,如步驟B所示。在此,動態模組223例如為一動態連結庫(dynamic library),其包含了鑑證與金鑰交換兩個功能。
舉例來說,動態模組產生器211會動態產生一鑑證程式以及一金鑰交換協定程式,並將鑑證程式以及金鑰交換協定程式放入動態模組223中,以傳送至客戶端裝置220。其中,鑑證程式包含可以驗證客戶端程式221完整性的資訊,而為了避免事先運算及重送攻擊,這些資訊也是動態產生。例如,鑑證程式可以是由核對和(checksum)函數實作,其是由基本的算術運算指令隨機建立,同時核對和函數也可包含一個時限,當核對和函數計算核對和的時間超過時限,便會被視為失敗。而金鑰交換協定程式則是用來產生客戶端程式221與認證伺服器215的共享金鑰。
另外,動態模組產生器211在產生動態模組223時,還會產生暫時金鑰、記憶體佈置資訊、校驗預設結果以及暫時識別碼等資訊,並將這些資訊放在動態模組223中。並且,在產生動態模組223時,動態模組產生器221還會一併將暫時金鑰、記憶體佈置資訊以及校驗預設結果傳送給完整性驗證器213,並且將暫時識別碼資訊傳送至認證伺服器215。
例如,鑑證程式內含暫時金鑰、記憶體佈置資訊以及校驗預設結果等資訊,而金鑰交換協定程式內含暫時識別碼。在產生動態模組223之後,動態模組產生器221會分別複製鑑證程式以及金鑰交換協定程式,以將鑑證程式傳送給完整性驗證器213,而將金鑰交換協定程式傳給認證伺服器215,以待後續使用。
當客戶端裝置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的身分。
在動態模組223驗證無誤之後,結合客戶端程式221與動態模組223。例如,以動態連結(dynamic linking)方式或程式碼注入(code injection)方式,結合客戶端程式221與動態模組223。而結合的方式會因目標平台不同而不同。另外,倘若動態模組223的驗證未通過,則停止後續其他動作。
然後,請參照圖2D,動態模組223會去驗證客戶端裝置221,如步驟D所示。例如,利用動態模組223中的鑑證程式來驗證客戶端程式221的完整性。進一步地說,動態模組223會隨機產生一記憶體位置,並將記憶體位置以及記憶體佈置資訊傳送給客戶端程式221。而客戶端程式221便可依據記憶體位置以及記憶體佈置資訊,計算出一驗證碼,並將驗證碼傳送給動態模組223。之後,動態模組223依據驗證碼與暫時金鑰來計算一校驗結果,以比對校驗結果與動態模組223中的校驗預設結果。倘若計算出的校驗結果與校驗預設結果相同,表示驗證無誤。倘若校驗結果與校驗預設結果不同,表示驗證錯誤。此時,便停止後續其他動作。
底下即以動態模組223以及客戶端裝置221為例,再舉一例來說明,圖3是依照本發明第二實施例之透過動態模組驗證客戶端程式流程的示意圖。在本實施例中,動態模組223所攜帶的驗證資訊是由動態模組產生器211提供。在此,動態模組223所攜帶的驗證資訊包括暫時金鑰K、記憶體佈置資訊(如,記憶體位置函數Address)以及校驗預設結果PRE_RESULT。
請參照圖3,在步驟S301中,動態模組223向客戶端程式221要其客戶端識別碼SN,透過客戶端識別碼SN來取出相對應的資訊。並且,依據暫時金鑰K以及客戶端識別碼SN產生客戶端金鑰KEY,以待後續使用。在此,客戶端識別碼SN例如為事先放入客戶端程式221的序列號。
接著,在步驟S303中,動態模組223亂數產生m個隨機參數r1~rm。並且,在步驟S305中,依據記憶體位置函數Address以及隨機參數r1~rm,計算出客戶端裝置220的記憶體位址區塊Mi=Address(ri),其中,i=1~m。藉此,使得客戶端程式231依據Mi來取出對應的記憶體位址區塊。
之後,在步驟S307中,客戶端程式231依據所取出的記憶體位址區塊Mi,利用客戶端程式231的核對和函數checksum來計算各記憶體位址區塊的核對和Vi=checksum(Mi,Size)。其中,變數Size為一固定常數,例如為記憶體取樣大小。然後,在步驟S309中,計算各記憶體位址區塊的驗證碼Q=V1⊕V2…⊕Vm
而後,在步驟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。
客戶端識別碼SN為事先放入客戶端程式的序列號,而暫時金鑰K則是動態產生並放入動態模組223。當動態模組產生器211在準備好這些參數後,會將暫時金鑰K、雜湊函數H及其他相關函數放入動態模組223,並在估算時限T1後,也將時限T1放入動態模組223。
當客戶端程式221驗證動態模組223成功之後,動態模組223還會連接至主控系統210的完整性驗證器213來驗證客戶端程式221。返回圖2E,由主控系統210的完整性驗證器213來驗證客戶端程式221,如步驟E所示。具體而言,完整性驗證器213會隨機產生一記憶體位置,並傳送記憶體位置以及記憶體佈置資訊給客戶端程式221,使得客戶端程式221依據記憶體位置以及記憶體佈置資訊,計算一驗證碼,並傳送驗證碼給完整性驗證器213。並且,完整性驗證器213會依據驗證碼與暫時金鑰來計算校驗結果,以比對校驗結果與校驗預設結果。
舉例來說,圖4是依照本發明第二實施例之透過完整性驗證器來驗證客戶端程式流程的示意圖。在本實施例中,步驟S401~S413分別與步驟S301~S313相同或相似,故在此不再詳述。
請參照圖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…⊕Vm
而後,在步驟S411中,客戶端程式221將驗證碼Q傳送至完整性驗證器213。在此,更可設定一時限T2,當完整性驗證器213在時限T2內未接收到驗證碼Q,即判定驗證失敗。之後,在步驟S413中,完整性驗證器213依據暫時金鑰K以及驗證碼Q,並且利用一雜湊函數H來計算校驗結果RESULT,以比較校驗結果RESULT以及校驗預設結果PRE_RESULT。
也就是說,當動態模組223佈署出去後,會依照上述步驟S301~S309來驗證客戶端程式231的完整性,並檢查計算時間是否在時限T1內,此為近端鑑認。倘若成功還會進行遠端鑑認,如步驟S401~S413。待近端鑑認與遠端鑑認皆成功,方執行金鑰交換程序。如此分散式結構,可以減低通訊及後端主控系統210的負擔。
返回圖2F,在客戶端程式221驗證無誤之後,客戶端裝置221透過動態模組223與主控系統210的認證伺服器215執行金鑰交換程序,如步驟F所示,以產生客戶端裝置220與主控系統210之間的共享金鑰。
舉例來說,圖5是依照本發明第二實施例之執行金鑰交換程序的示意圖。請參照圖5,在步驟S501中,動態模組223會傳送暫時識別碼以及第一數值給認證伺服器215。在此,第一數值可以為動態模組223亂數產生的數值。當認證伺服器215接收到暫時識別碼時,依據動態模組產生器211在產生動態模組223時所產生之暫時識別碼來識別動態模組223的身分。
並且,在步驟S503中,認證伺服器215傳送第二數值給動態模組223。同樣地,第二數值亦可以為認證伺服器215亂數產生。另外,在步驟S505中,動態模組223產生第三數值,並透過公開金鑰將第三數值加密而獲得秘密數值。之後,在步驟S507中,將秘密數值傳送至認證伺服器215。而認證伺服器215在接收到秘密數值之後,便可依據公開金鑰對應的私密金鑰來將秘密數值解密而獲得第三數值。
據此,動態模組223以及認證伺服器215中便分別具有第一數值、第二數值以及第三數值。在步驟S509及步驟S511中,動態模組223與認證伺服器215便可依據第一數值、第二數值以及第三數值來產生共享金鑰。之後,便可透過共享金鑰來導出其他不同金鑰。
值得注意的是,為了避免金鑰交換過程被分析,動態模組223所攜帶的金鑰交換協定程式中亦有時間限定,只要接收回應的時間超過時間限定,暫時識別碼以及隨機產生的數值便會被取消。
綜上所述,上述實施例中,不在客戶端程式中直接儲存金鑰資訊,而是而是以金鑰初始程序(包括鑑證與金鑰交換(key exchange)兩個功能)來取代,並且,此金鑰初始程序亦不會直接儲存在客戶端程式,而是放入一動態模組中,待客戶端程式欲與主控系統通訊時,客戶端程式才由主控系統來取得此動態模組。由於鑑證與金鑰交換兩個功能都是由主控系統動態產生,據此,可避免攻擊者事先分析動態模組程式碼或是收集要求/回應(request/response)結果,攻擊者便無法累積動態模組的知識。另外,動態模組中包括了近端鑑認、遠端鑑認以及金鑰交換等功能,在近端鑑認成功之後,再進行遠端鑑認以及金鑰交換,如此分散式結構,可以減低通訊及主控系統的負擔。此外,透過時限限制,亦能夠避免攻擊者的分析。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
110、210...主控系統
120、220、230、240...客戶端裝置
211...動態模組產生器
213...完整性驗證器
215...認證伺服器
221...客戶端程式
223...動態模組
250...私有網路
260...公眾網路
270...閘道器
280...網路服務提供者
S131~S139...第一實施例的網路監控系統之管理金鑰流程的各步驟
A~F...第二實施例的管理金鑰的方法各步驟
S301~S313...第二實施例之透過動態模組驗證客戶端程式流程的各步驟
S401~S413...第二實施例之透過完整性驗證器來驗證客戶端程式流程的各步驟
S501~S511...第二實施例之執行金鑰交換程序的各步驟
圖1是依照本發明第一實施例的網路監控系統之管理金鑰流程的示意圖。
圖2A~圖2F是依照本發明第二實施例的管理金鑰的方法流程的示意圖。
圖3是依照本發明第二實施例之透過動態模組驗證客戶端程式流程的示意圖。
圖4是依照本發明第二實施例之透過完整性驗證器來驗證客戶端程式流程的示意圖。
圖5是依照本發明第二實施例之執行金鑰交換程序的示意圖。
S131~S139...第一實施例的網路監控系統之管理金鑰流程的各步驟

Claims (17)

  1. 一種管理金鑰的方法,適於一網路監控系統,該網路監控系統包括一主控系統以及一客戶端裝置,而該方法包括:該客戶端裝置執行一客戶端程式以向該主控系統註冊,使得該主控系統產生一動態模組;該主控系統傳送該動態模組至該客戶端裝置;該客戶端裝置透過該客戶端程式驗證該動態模組;該客戶端裝置透過該動態模組驗證該客戶端程式;在該客戶端程式驗證無誤之後,該客戶端裝置透過該動態模組與該主控系統執行一金鑰交換程序,以產生該客戶端裝置與該主控系統之間的一共享金鑰。
  2. 如申請專利範圍第1項所述之管理金鑰的方法,其中該客戶端裝置設置在一私有網路中,並且該私有網路架構在一公眾網路上,使得該客戶端裝置透過該私有網路連接至該公眾網路以與該主控系統連線。
  3. 如申請專利範圍第1項所述之管理金鑰的方法,其中該主控系統包括一動態模組產生器、一完整性驗證器以及一認證伺服器,其中該動態模組產生器用以產生該動態模組,該完整性驗證器用以驗證該客戶端程式,該認證伺服器用以執行該金鑰交換程序。
  4. 如申請專利範圍第1項所述之管理金鑰的方法,其中在該主控系統傳送該動態模組至該客戶端裝置的步驟之前,更包括;產生該動態模組一數位簽章,該數位簽章是由一私密金鑰所實現,而該私密金鑰與該客戶端程式中的一公開金鑰為一金鑰對。
  5. 如申請專利範圍第4項所述之管理金鑰的方法,其而該客戶端裝置透過該客戶端程式驗證該動態模組的步驟包括:該客戶端程式依據該公開金鑰來驗證該動態模組中的該數位簽章。
  6. 如申請專利範圍第1項所述之管理金鑰的方法,其中該動態模組中包括一暫時金鑰、一記憶體佈置資訊以及一校驗預設結果,而該客戶端裝置透過該動態模組驗證該客戶端程式的步驟包括:該動態模組隨機產生一記憶體位置,並傳送該記憶體位置以及該記憶體佈置資訊給該客戶端程式;該客戶端程式依據該記憶體位置以及該記憶體佈置資訊,計算一驗證碼,並傳送該驗證碼給該動態模組;以及該動態模組依據該驗證碼與該暫時金鑰計算一校驗結果,以比對該校驗結果與該校驗預設結果。
  7. 如申請專利範圍第6項所述之管理金鑰的方法,其中在該動態模組依據該驗證碼與該暫時金鑰計算該校驗結果的步驟之前,更包括:該動態模組自該客戶端程式中取得一客戶端識別碼;依據該暫時金鑰以及該客戶端識別碼產生一客戶端金鑰,使得該動態模組依據該驗證碼與該客戶端金鑰產生該校驗結果。
  8. 如申請專利範圍第1項所述之管理金鑰的方法,其中在執行該金鑰交換程序的步驟之前,更包括:當該客戶端裝置透過該動態模組驗證該客戶端程式成功時,由該主控系統驗證該客戶端程式,而該步驟包括:該主控系統隨機產生一記憶體位置,並傳送該記憶體位置以及一記憶體佈置資訊給該客戶端程式;該客戶端程式依據該記憶體位置以及該記憶體佈置資訊,計算一驗證碼,並傳送該驗證碼給該主控系統;以及該主控系統依據該驗證碼與一暫時金鑰計算一校驗結果,以比對該校驗結果與一校驗預設結果。
  9. 如申請專利範圍第1項所述之管理金鑰的方法,其中在並傳送該驗證碼給該主控系統的步驟之後,更包括:當該主控系統在一時限內未接收到該驗證碼,判定該客戶端程式驗證失敗。
  10. 如申請專利範圍第1項所述之管理金鑰的方法,其中該客戶端裝置透過該動態模組與該主控系統執行該金鑰交換程序,以產生該終端單元與該主控系統之間的該共享金鑰的步驟包括:該動態模組傳送一暫時識別碼以及一第一數值給該主控系統;該主控系統傳送一第二數值給該動態模組;該動態模組產生一第三數值,並透過一公開金鑰將該第三數值加密而獲得一秘密數值,而傳送該秘密數值至該主控系統;該主控系統依據該公開金鑰對應的一私密金鑰來解密該秘密數值而獲得該第三數值;以及該主控系統與該動態模組依據該第一數值、該第二數值以及該第三數值來產生該共享金鑰。
  11. 如申請專利範圍第1項所述之管理金鑰的方法,其中在該客戶端裝置透過該客戶端程式驗證該動態模組的步驟之後,更包括:以一動態連結方式或一程式碼注入方式,結合該客戶端程式與該動態模組。
  12. 一種網路監控系統,包括:一客戶端裝置,設置在一私有網路中,其中該私有網路架構在一公眾網路上,並且,該客戶端裝置安裝有一客戶端程式;以及一主控系統,透過該公眾網路連接至該私有網路以與該客戶端裝置連線,該主控系統包括:一動態模組產生器,用來產生一動態模組;一完整性驗證器,用來驗證該客戶端程式;以及一認證伺服器,用來執行一金鑰交換程序以與該客戶端程式產生一共享金鑰;其中,該客戶端裝置執行該客戶端程式向該動態模組產生器註冊,以自該動態模組產生器接收該動態模組,並且,透過該客戶端程式驗證該動態模組;而在該動態模組驗證無誤之後,該客戶端裝置透過該動態模組驗證該客戶端程式,並且該主控系統透過該完整性驗證器驗證該客戶端程式;而在該客戶端程式驗證無誤之後,該客戶端裝置透過該動態模組與該認證伺服器執行該金鑰交換程序以產生該共享金鑰。
  13. 如申請專利範圍第12項所述之網路監控系統,其中該動態模組包括一數位簽章、一暫時金鑰、一記憶體佈置資訊、一校驗預設結果以及一暫時識別碼,而該數位簽章是由一私密金鑰所實現,而該私密金鑰與該客戶端程式中的一公開金鑰為一金鑰對;其中,當產生該動態模組時,該動態模組產生器將該暫時金鑰、該記憶體佈置資訊以及該校驗預設結果傳送給該完整性驗證器,並且將該暫時識別碼資訊傳送至該認證伺服器。
  14. 如申請專利範圍第13項所述之網路監控系統,其中該客戶端程式依據該公開金鑰來驗證該動態模組中的該數位簽章。
  15. 如申請專利範圍第13項所述之網路監控系統,其中在該動態模組驗證無誤之後,該動態模組自該客戶端程式中取得一客戶端識別碼,並且隨機產生一記憶體位置,而傳送該記憶體位置以及該記憶體佈置資訊給該客戶端程式,使得該客戶端程式依據該記憶體位置以及該記憶體佈置資訊,計算一驗證碼,並傳送該驗證碼給該動態模組;而該動態模組依據該暫時金鑰以及該客戶端識別碼產生一客戶端金鑰,並且依據該驗證碼與該客戶端金鑰產生該校驗結果,以比對該校驗結果與該校驗預設結果。
  16. 如申請專利範圍第13項所述之網路監控系統,其中該完整性驗證器會隨機產生一記憶體位置,並傳送該記憶體位置以及該記憶體佈置資訊給該客戶端程式,使得該客戶端程式依據該記憶體位置以及該記憶體佈置資訊,計算一驗證碼,並傳送該驗證碼給該完整性驗證器;而該完整性驗證器會依據該驗證碼與該暫時金鑰計算一校驗結果,以比對該校驗結果與該校驗預設結果。
  17. 如申請專利範圍第13項所述之網路監控系統,其中在該客戶端程式驗證無誤之後,該動態模組傳送該暫時識別碼以及一第一數值給該認證伺服器,並且該認證伺服器傳送一第二數值給該動態模組;而該動態模組產生一第三數值,並透過該公開金鑰將該第三數值加密而獲得一秘密數值,而傳送該秘密數值至該認證伺服器;而該認證伺服器依據該私密金鑰來解密該秘密數值而獲得該第三數值,使得該認證伺服器與該動態模組依據該第一數值、該第二數值以及該第三數值來產生該共享金鑰。
TW101100468A 2012-01-05 2012-01-05 網路監控系統及管理金鑰的方法 TWI472189B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101100468A TWI472189B (zh) 2012-01-05 2012-01-05 網路監控系統及管理金鑰的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101100468A TWI472189B (zh) 2012-01-05 2012-01-05 網路監控系統及管理金鑰的方法

Publications (2)

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

Family

ID=49225898

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101100468A TWI472189B (zh) 2012-01-05 2012-01-05 網路監控系統及管理金鑰的方法

Country Status (1)

Country Link
TW (1) TWI472189B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI514189B (zh) * 2013-07-22 2015-12-21 Ind Tech Res Inst 網路認證系統及其方法
TWI694349B (zh) * 2019-01-22 2020-05-21 開曼群島商現代財富控股有限公司 防止記憶體傾印的門檻式簽章系統及其方法

Family Cites Families (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
US9742560B2 (en) * 2009-06-11 2017-08-22 Microsoft Technology Licensing, Llc Key management in secure network enclaves

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI514189B (zh) * 2013-07-22 2015-12-21 Ind Tech Res Inst 網路認證系統及其方法
TWI694349B (zh) * 2019-01-22 2020-05-21 開曼群島商現代財富控股有限公司 防止記憶體傾印的門檻式簽章系統及其方法

Also Published As

Publication number Publication date
TWI472189B (zh) 2015-02-01

Similar Documents

Publication Publication Date Title
CN111708991B (zh) 服务的授权方法、装置、计算机设备和存储介质
CN102624740B (zh) 一种数据交互方法及客户端、服务器
CN103581108B (zh) 一种登录验证方法、客户端、服务器及系统
CN101005361B (zh) 一种服务器端软件保护方法及系统
CN105103488B (zh) 借助相关联的数据的策略施行
CN114499895B (zh) 一种融合可信计算与区块链的数据可信处理方法及系统
CN109361668A (zh) 一种数据可信传输方法
CN109687965B (zh) 一种保护网络中用户身份信息的实名认证方法
US9300639B1 (en) Device coordination
US10263782B2 (en) Soft-token authentication system
CN101682628A (zh) 安全通信
CN107438230A (zh) 安全无线测距
CN110267270A (zh) 一种变电站内传感器终端接入边缘网关身份认证智能合约
US20100250949A1 (en) Generation, requesting, and/or reception, at least in part, of token
CN105681470A (zh) 基于超文本传输协议的通信方法、服务器、终端
CN109040079A (zh) 直播链接地址的组建和验证方法及相应装置
CN102025503A (zh) 一种集群环境下数据安全实现方法和一种高安全性的集群
CN111314381A (zh) 安全隔离网关
Aung et al. Ethereum-based emergency service for smart home system: Smart contract implementation
CN109309645A (zh) 一种软件分发安全保护方法
CN112422500A (zh) 跨平台数据传输方法以及装置、存储介质、电子装置
CN106657002A (zh) 一种新型防撞库关联时间多密码的身份认证方法
CN116633530A (zh) 量子密钥传输方法、装置及系统
Badar et al. Secure authentication protocol for home area network in smart grid-based smart cities
JP2002529778A (ja) 共有無作為性の分散暗号化への組み込み