4.6 認證機制
4.6.2 雲端系統認證機制
因 GUI 可連向認證伺服器取得模擬能力資訊,我們希望透過 GUI 將此資訊 傳給模擬引擎。模擬能力資訊是敏感資料,若有惡意使用者在傳輸過程中假造,
則可非法使用模擬能力。因此除了要有讓模擬引擎取得模擬能力的機制外,我們 還需要一些方式保護模擬能力資訊。
認證伺服器使用 RSA 加密演算法作為非對稱式加密的演算法,對模擬能力 資訊進行加密及一些處理後產生「雲端憑證(Cloud Certificate)」。接著傳輸雲端 憑證至模擬引擎,模擬引擎驗證並解開此雲端憑證、取得模擬資訊能力,之後進 行模擬。由於 GUI 已經經過認證伺服器的認證且雲端憑證難以假造,模擬引擎 可信任此模擬能力資訊。我們以此方式保護模擬能力資訊、避免惡意使用者假造,
並讓模擬引擎可以得到使用者可使用的模擬能力。
以下說明實作細節。
首先說明認證伺服器產生雲端憑證的方式。認證伺服器以自己的私有金鑰
(private key)加密模擬能力資料及模擬設定檔的 SHA1 值,此為 Message 部分。
接著計算 Message 的 SHA1 值再以私有金鑰加密,此為 Signature 部分。Message 加上 Signature 即為我們的雲端憑證,此雲端憑證為二進位資料(binary data)。 產生流程如圖 4-6 所示:
60
圖 4-6、認證伺服器產生雲端憑證
接著說明雲端系統如何驗證雲端憑證。雲端系統收到模擬工作時 Manager 會驗證雲端憑證的正確性,驗證成功後從雲端憑證取出模擬設定檔的 SHA1 值,
與 GUI 於工作要求中所附的模擬設定檔 SHA1 值比對無誤後才是合法的模擬工 作,若驗證失敗或比對 SHA1 失敗則丟棄此模擬工作。模擬引擎啟動時會驗證雲 端憑證的正確性,驗證成功後從雲端憑證中取得模擬能力資訊進行模擬。圖 4-7 為驗證雲端憑證的方式:
61
圖 4-7、雲端系統驗證雲端憑證
1 從雲端憑證取出 Message 及 Signature 兩部分。實作上我們在雲端憑證的前八 個 byte 記錄 Message 及雲端憑證的長度,以此長度資訊區分出 Message 及 Signature。
2 計算 Message 的 SHA1 值,得到 hash’。
3 以公開金鑰解密 Signature,得到 hash。此為認證伺服器產生雲端憑證時計算 出的 Message 的 SHA1 值。
4 比較 hash 及 hash’是否相同。如果相同則驗證成功,表示此為合法的雲端憑 證。如果不同則驗證失敗,此憑證為非法。
62
如果雲端憑證驗證成功,則以認證伺服器的公開金鑰對 Message 解密,即可 從 Message 中取出模擬能力資訊及模擬設定檔的 SHA1 值,如圖 4-8 所示:
圖 4-8、由雲端憑證取得模擬能力
在非對稱式加密系統的觀念中,私有金鑰可用來識別一個人、組織或一台機 器。因為私有金鑰應被擁有人妥善保管、僅擁有人會持有此金鑰,而公開金鑰則 任何人皆可取得。若一段加密後的訊息可用公開金鑰解密,代表此段訊息必為私 有金鑰持有人所加密。
在我們的認證機制中,認證伺服器擁有一私有金鑰,對應的公開金鑰則寫於 模擬引擎及 Manager 的程式碼中,不完全對外公開。如果模擬引擎及 Manager 可用公開金鑰解開收到的 Signature,表示此 Signature 確實由認證伺服器加密。
模擬引擎及 Manager 解密 Signature 得到一雜湊值(hash value),與自行計算 Message 的雜湊值進行比較,如果相符代表 Message 及 Signature 並未被竄改,且 此雲端認證確實由認證伺服器發出。
我們的公開金鑰並未完全公開,但此處假設惡意使用者擁有認證伺服器的公 開金鑰。以下以三種情境說明惡意使用者無法偽造雲端憑證。
63
情境一情境一 情境一情境一
惡意使用者可修改 Signature,使用公開金鑰解密修改過的 Signature 得到一 偽造雜湊值。但因為雜湊函數的特性,惡意使用者難以變造出可計算出假造雜湊 私有金鑰,無法產生對應的 Signature。
情境三
1 GUI 與認證伺服器(License Server)互相認證對方是合法 GUI、認證伺服器。
此步驟使用原有認證機制中的功能進行,在此不多加說明。
2 GUI 傳送 license key 及模擬設定檔的 SHA1 值給認證伺服器。
64
3 認證伺服器查詢認證資料庫,取得模擬能力資訊,依前述方式產生「雲端憑 證」。
4 認證伺服器回傳雲端憑證給 GUI。
5 GUI 傳送模擬工作,將模擬設定檔連同雲端憑證傳送至雲端。
6 Manager 收到後將雲端憑證存於資料庫。
7 Manager 要求 Dispatcher 開始工作,Dispatcher 從資料庫取出雲端憑證。
8 Dispatcher 將雲端憑證傳給 Coordinator。
9 Coordinator 將雲端憑證存於一暫存檔中,並將暫存檔路徑存於環境變數。
10 Coordinator fork 出的模擬引擎由環境變數取得暫存檔路徑、讀取雲端憑證進 行驗證。
上述傳遞如圖 4-9 所示。
65
圖 4-9、雲端憑證於各軟體元件的傳遞
66
第 第
第 第5章 章 章 模擬效能測量 章 模擬效能測量 模擬效能測量 模擬效能測量
設計與實作此雲端系統後,我們希望了解此雲端系統的效能。由於使用者使 用此雲端系統時在乎的是執行模擬工作的時間長度,因此我們以測量執行模擬的 時間作為效能指標,觀察這個網路模擬雲端系統的效能。