• 沒有找到結果。

CDSASS架構

第四章 跨網域校務單一登入系統(CDSASS)

4.2 CDSASS架構

我們透過邏輯設計上的差異性與階段性,將系統分割為兩個子系統:入口網站子系統 與安全存取控制子系統。而其主要核心功能由下列六個模組所組成:登入與登出模組、認 證模組、單一登入服務模組、使用者資訊儲存模組、授權與權限管理模組與稽核管理模組,

其系統架構如圖4.2。

圖 4.2 CDSASS 系統架構圖

接著我們將對此六個模組的工作內容與設計理念做深入的說明。

1. 登入與登出模組(Login Module ,LM):

工作內容:

(1) 提供各種使用者登入方式,例如:傳統的帳號/密碼、Certificate 認證、Smart Card 等。

(2) 必須提供資料安全傳輸管道,以確保資料不會在傳遞過程中被竄改或竊取。

(3) 提供刪除使用者端及伺服器端暫存資料之功能。

設計理念:

每個單一登入服務的網站都必須設計使用者登入的頁面,本系統是採用帳號/密碼

的登入方式,並在連線過程中,採用SSL加密通道,來確保資料傳輸的安全性。當使用 者執行登出動作時,LM 便會刪除 Cookie 與 Session 中的資料,防止資料外洩的可 能性。若使用者未執行登出動作,因Cookie 與 Session均有時間限制,故超過時間限 制時,Cookie 與 Session 便會自動失效。

2. 認證模組(Authentiation Module ,AM):

工作內容:

(1) 設定認證訊息與角色代碼於Cookie與Session中。

(2) 確認使用者送出的認證資料是否正確。

(3) 確認Session的合法性,並取得使用者角色身分。

設計理念:

雖然以 Cookie 來認證一直為人所詬病,不過考量簡化使用者登入步驟、提升行 政效率之因素,在此我們仍以 Cookie 來當作認證的一環。若是以系統的安全性為主 要考量的話,當然還是建議使用 Session Cookie的概念來執行認證程序。

使用者的登入模式可以分為首次登入與再度登入,而這兩種登入模式皆由認證模 位址、cookie的有效時間、以k 當金鑰加密的session id及雜湊訊息確認碼(Hash Message Authetication Code ,HMAC),提供使用者再度登入系統時,僅需傳送cookie 值,系統便可確認使用者身分的合法性。本系統安全cookie 的協定格式如下圖4.3。

圖 4.3 本系統之安全 cookie 協定

我們所設計的安全Cookie Protocol與 Alex[10] 在2005年所提的安全Cookie

Protocol,加密金鑰都是獨一無二,對於本系統來說,每一個使用者的身分證字號和 Cookie 有效期限是不同的,因此產生出來的加密金鑰也將不同;而且加密金鑰都無法偽造,因為 加密金鑰有一般使用者無法得知的server key。不過在Cookie中存放重要資料仍是較不恰 當的做法,即使資料是加密過的,因為加密過的資料只需要花費多一點的時間即可破解,

但對於本系統所設計的安全cookie protocol,惡意攻擊者若取得加密過的session id,但 無法在cookie或session過期的時間內解出,進行重送攻擊,取得的session id也不具任何 意義;另外為了防止重送攻擊,我們也在cookie中加入的IP值,若使用者來源IP與cookie 中的IP值不符的話,也是無法登入本系統。

已通過認證,再度登入系統:

當使用者通過帳號/密碼認證再度登入時,AM 會先比對使用者IP是否與Cookie中的IP 值相符,再利用雜湊訊息確認碼檢查使用者所傳送的cookie是否合法,若cookie合法,則 將存放在cookie中的session id解密後,可依此session id存取伺服器中session的認證訊 息與授權的角色權限;若cookie不合法或session存活時間逾期,則將使用者重導至登入頁 面,讓使用者重新輸入帳號/密碼認證。下圖4.4為使用者第一次登入與通過認證後,再度 登入系統之認證流程圖。

圖 4.4 登入系統之認證流程圖

3. 單一登入服務模組(Single Sign-On Module ,SSOM): login_agent varchar 代登入的程式檔名 sso_id varchar 經過加密的帳號 密演算法(Advanced Encryption Standard,又稱Rijndael加密法)來對代登入帳號/密碼 加密後才存入資料庫中,以抵抗目前已知的攻擊,強化系統的安全性,也避免影響到外部 服務網站的系統運作。

雖然我們利用代理登入的方式讓行政人員不用反覆輸入帳號、密碼,不過對於眾多服 工作。另外,為了確保資料的機密性,我們將 user_pass 欄位值透過SHA1的雜湊運算 後,才儲存到使用者資料表中。使用者資料表結構如下表4.2。

last_login datetime 登入時間

5. 授權與權限管理模組(Authorization and Privilege Management Module ,APM):

工作內容:

(1) 提供管理者新增、修改、刪除與啟用角色之功能。

(2) 提供管理者角色權限設定之功能。

(3) 提供管理者指派角色值給使用者、群組、團隊之功能。

(4) 提供管理者新增、修改、刪除群組及設定使用者與群組對應之功能。

(5) 提供管理者新增、修改、刪除群組及設定使用者與團隊對應之功能。

(6) 提供管理者新增與指派任務之功能。

設計理念:

授權與權限管理模組存放有系統架構中權限管理機制裡各個角色(Roles)、群組

(Groups)、團隊(Teams)、任務(Tasks)與其對應的權限資訊,因此 AM 要授權 使用者相關權限時,就必須從授權與權限相關資料表中取得資料。 role_permiss 每個角色被賦予的權限

group 群組編號與名稱

group_mapping 使用者與群組的對應關係 team 團隊編號與名稱

team_mapping 使用者與團隊的對應關係 task 任務編號與名稱

task_assign 任務與執行團隊對應關係 task_permiss 每個任務被賦予的權限

此十個資料表是以不同功能做為切割資料表的依據,以方便管理者可以針對不同 的資料表來做角色指派與權限設定等維護工作,圖4.6是各資料表間交互參考的關聯 圖。

圖 4.5 授權與權限管理資料表關聯圖

6. 稽核管理模組(Audit Management Module , AuM):

工作內容:

(1) 提供管理者自行設定需稽核之項目。

(2) 紀錄使用者變更資料前的密碼、時間與來源IP。

(3) 紀錄管理者變更角色指派前之角色值。

(4) 紀錄管理者變更角色權限前之權限值。

(5) 紀錄管理者變更代登入網站資料之網站編號與變更前之代登入帳號/密碼。

設計理念:

在開放的網路環境中隨時都有許多事件發生,這包括合法與非法的所有行為,所 以沒有一套資訊系統可以保證百分之百的安全,因此必須採用一些事後補救的措施來 補強不足的部份,稽核最主要的目的也就是要記錄所有的事件,如使用者登入時間、

來源IP位址、密碼與角色變更、存取權限與代登入的帳號/密碼異動等,因此我們將稽

核的事件分成兩個階段來執行,分別為登入階段與資料異動階段。當使用者輸入的帳

相關文件