• 沒有找到結果。

跨網域之校務單一登入系統

N/A
N/A
Protected

Academic year: 2021

Share "跨網域之校務單一登入系統"

Copied!
73
0
0

加載中.... (立即查看全文)

全文

(1)

理學院網路學習學程

Cross Domain School Administrative-affair Single sign-on System

研 究 生:林裕峰

指導教授:蔡文能 教授

(2)

跨網域之校務單一登入系統

Cross Domain School Administrative-affair Single sign-on System

研 究 生:林裕峰 Student:Yung-Feng Lin

指導教授:蔡文能 Advisor:Wen-Nung Tsai

國 立 交 通 大 學

理學院 網路學習學程

碩 士 論 文

A Thesis

Submitted to Degree Program of E-Learning

College of Science

National Chiao Tung University

in Partial Fulfillment of the Requirements

for the Degree of

Master

In

Degree Program of E-Learning

July 2008

Hsinchu, Taiwan, Republic of China

中華民國九十七年五月

(3)

跨網域之校務單一登入系統

研究生:林裕峰

指導教授:蔡文能教授

國立交通大學理學院網路學習學程

摘 要

隨著網際網路的急速發展,教育行政部門為了提供多元化的網路服務,紛紛開發以網 頁為基礎的應用程式(Web-Based Application)來滿足使用者需求,但因每個網站系統開發 平台或語言的不同,因此擁有各自的安全認證的機制,導致使用者在取得每一項服務前, 均需提供系統不同的登入帳號、密碼等相關資訊,這對使用者來說是相當不便的;相對的, 若使用者把所有服務網站的帳號、密碼都設成一樣,在安全上將會有相當大的風險。再者, 國小行政人員每學年的工作通常都會有所調整及異動,面臨眾多網站的服務,行政人員往 往無法有效管理登入的帳號及密碼,造成業務移交不順利。 本研究將針對以上問題,提出一種以網頁為基礎,且能達到跨網域之校務單一登入系 統(Cross Domain School Administrative-affair Single sign-on System,CDSASS),讓 使用者只要通過一次身分認證,就可以取得不同網站系統的服務,而不需要再重複身分驗 證的動作。另外,我們依照國小的行政運作體制,以角色為基礎的存取控制(Role_Based Access Control,RBAC)整合使用者、群組、團隊與角色的對應關係,讓業務帳號、密碼移 交能夠更順利、簡便且任務執行上也更有效率。

(4)

Cross Domain School Administrative-affair Single

Sign-On System

Student: Yung-Feng Lin

Advisor: Wen-Nung Tsai

Degree Program of E-Learning

College of Science

National Chiao Tung University

ABSTRACT

With the rapid development of the Internet, educational and administrative

departments in order to provide a wide range of Internet services, have developed a

web-based applications to meet the needs of users, but each site or system

development platform for the different language, have their own security

authentication mechanisms, leading users to get each of the services, required a

different account, password and other information, which the user is very

inconvenient; As to, if all users of the site services account, password are set to the

same, the security will be considerable risks. Furthermore, the primary school

administrative staff of each school year, the work will normally be adjusted and

changes facing the many sites of service, executives are often unable to effectively

manage the login ID and password, resulting in the transfer of business is not

smooth.

This study will address the above problems, propose a web-based, and can

achieve Cross Domain School Administrative-affair Single sign-on System. Let

users only pass an identity authentication,can obtain the services of different sites,

and does not need to repeat movements that the identity verifies again. In addition,

we are according to the administrative operation system of the primary school,

role-based access control combine users, groups, teams and corresponding relation

of role, let business accounts, passwords to transfer more smooth and Easily, on the

implementation of tasks more efficient.

(5)

誌 謝

在此首先要感謝蔡文能教授兩年來的諄諄教誨,讓我在研究的過程中學到

了嚴謹的研究方法和正確的學習態度,使我獲益匪淺,在論文研究上由於老師

的啟發與幫助,才使得本論文能夠順利完成,在此由衷的感謝。在本論文撰寫

期間,我所服務的單位主管及同事們對本論文也提出許多寶貴的建議,另外也

包括我的兩位同學吳振遠與顏士哲,對本系統完成建置也貢獻良多。

最後,特別感謝我的另一半中文,謝謝妳對我的包容與支持,在我最無助

的時候給予我鼓勵,最盲目的時候給予我指引,最孤獨的時候給予我陪伴,最

失落的時候給予我慰藉,感謝妳無怨無悔的陪我渡過求學生涯。

林裕峯 謹誌

2008年5月

(6)

目錄

中文摘要 ··· i  英文摘要 ··· ii  誌 謝 ··· iii  目錄 ··· iv  表目錄 ··· v  圖目錄 ··· vi  第一章 緒論 ··· 1  1.1 研究動機 ··· 1  1.2 研究目的 ··· 2  1.3 研究範圍 ··· 3  1.4 章節介紹 ··· 3  第二章 背景知識 ··· 4 

2.1 網頁式單一登入(Web-Based Single Sign-On) ··· 4 

2.2 HTTP Cookie與Session ··· 6 

2.3 加解密技術 ··· 8 

2.4 安全通訊層(Secure Socket Layer) ··· 10 

2.5 角色為基礎的存取控制(Role-Based Access Control) ··· 11 

2.6 Transcoding Reverse Proxy ··· 12 

第三章 相關研究 ··· 14  3.1 跨網域單一登入機制之研究 ··· 14  3.2 Cookie認證之研究 ··· 21  3.3 單一登入使用RBAC之研究 ··· 25  第四章 跨網域校務單一登入系統(CDSASS) ··· 31  4.1 CDSASS概說 ··· 31  4.2 CDSASS架構 ··· 32  4.2 CDSASS運作流程 ··· 40  4.3 CDSASS安全性探討 ··· 44  第五章 系統建置與分析 ··· 47  5.1 系統建置環境 ··· 47  5.2 系統模組開發 ··· 49  5.3 CDSASS評估分析 ··· 58  第六章 結論與未來工作 ··· 60  6.1 結論 ··· 60  6.2 未來工作 ··· 62  參考文獻 ··· 63

(7)

表目錄

表 2.1 各Access Control策略應用於網站服務時之比較表 ... 12 表 4.1 代登入網站資料表結構 ... 35  表 4.2 使用者資料表結構 ... 36  表 4.3 授權與權限管理資料表 ... 37  表 4.4 登入階段之稽核記錄資料表結構 ... 39  表 4.5 資料異動之稽核記錄資料表結構 ... 39 表 5.1 系統建置硬體及軟體套件版本 ... 47  表 5.2 本系統所採用的加密演算法及其功能 ... 48 表 6.1 本研究與各學者所提之跨網域單一登入系統比較表 ... 61 

(8)

圖目錄

圖 2.1 多重登入示意圖 ... 5  圖 2.2 網頁式單一登入示意圖 ... 5  圖 2.3 Session認證流程圖 ... 7  圖 2.4 對稱式密碼演算法 ... 8  圖 2.5 非對稱式密碼演算法 ... 9  圖 2.6 單向雜湊函數 ... 10  圖 2.7 SSL協定架構圖 ... 10  圖 2.8 使用者、角色與權限關係示意圖 ... 11 

圖 2.9 Transcoding Reverse Proxy運作雛型 ... 12

圖 3.1 Microsoft .NET Passport使用者認證流程示意圖 ... 15 

圖 3.2 「建立於公開金鑰基礎建設的單一簽入系統」系統模型圖 ... 16 

圖 3.3 「一個開放的Web-Based Single Sign-On服務架構」互動流程圖 ... 17 

圖 3.4 使用者已通過認證,欲存取另一個網域應用系統之流程圖 ... 19 

圖 3.5 三種型態的Secure Cookie ... 22 

圖 3.6 A Secure Cookie Protocol ... 23 

圖 3.7 User-Pull架構合作圖 ... 26  圖 3.8 Server-Pull架構合作圖 ... 26  圖 3.9 DRBAC模型圖 ... 28  圖 3.10 階層的TT-RBAC ... 29 圖 4.1 系統示意圖 ... 31  圖 4.2 CDSASS系統架構圖 ... 32  圖 4.3 本系統之安全cookie協定 ... 33  圖 4.4 登入系統之認證流程圖 ... 34  圖 4.5 授權與權限管理資料表關聯圖 ... 38  圖 4.6 第一次登入系統之運作流程圖 ... 40  圖 4.7 已通過認證,再度登入系統之運作流程圖 ... 42 圖 5.1 使用者登入畫面 ... 49  圖 5.2 管理者操作畫面 ... 49  圖 5.3 SSL加密的登入畫面 ... 50  圖 5.4 代登入網站管理功能列表 ... 52  圖 5.5 桃園縣網路公文系統代理登入程式 ... 52  圖 5.6 定期填報業務提醒設定畫面 ... 53  圖 5.7 新增個人代登入服務網站畫面 ... 53  圖 5.8 使用者資料管理功能列表 ... 54  圖 5.9 角色維護管理功能選單 ... 55  圖 5.10 群組維護管理功能選單 ... 56  圖 5.11 團隊維護管理功能選單 ... 56  圖 5.12 任務指派功能選單 ... 57  圖 5.13 系統稽核畫面 ... 57

(9)

第一章 緒論

隨著網際網路的急速發展,教育行政部門依各自需求,開發以網頁為基礎的應用程式 (Web-Based Application)提供服務,導致使用者必須向各應用程式完成註冊,取得帳號、 密碼後,才能使用該網站提供的服務。在國小行政工作中,行政人員每天都要登入到教育 部或縣市教育局所建置的網站,進行查詢或填報作業等工作,但因每個網站系統開發平台 或語言的不同,因此擁有各自的安全認證的機制,導致使用者必須反覆的輸入帳號、密碼, 甚至為了方便使用相同的或過於簡單的帳號、密碼,造成資訊安全的一大漏洞。再者,行 政人員每學年的工作通常都會有所調整及異動,面臨眾多網站的服務,行政人員往往無法 有效管理登入的帳號及密碼,造成業務移交不順利。 單一登入(Single Sign-On,SSO)技術的出現[1],讓使用者只通過一次的身分驗證後, 即可存取所有已授權的網路資源,而不必再重複身分驗證的動作,且可以將帳號、密碼整 合為一組,提高使用者帳號、密碼的安全性,以及管理上的方便。另外,以角色為基礎的 存取控制(Role_Based Access Control,RBAC)[2]是一個管理方便、擴展性高以及具有彈 性的存取控制方法,正可以簡化職務異動的移交業務。不過由於大部分的單一登入系統建 置的成本太高,且傳統的 RBAC 並不適用於國小行政體系。因此本研究將針對此問題,提 出一個可解決這些問題的服務架構,並根據此一架構進行實作,來證明此一架構的可行性。

1.1 研究動機

隨著科技成熟的腳步加促,各教育部門也以電子化為目標,根據各自的需求,先後建 立多元的網路服務,但因為服務網站擁有各自的安全認證機制,因此各校行政人員得依照 各部門的要求,完成使用者註冊,才可使用該網站的服務。然而,時間一久,各部門建立 之網站系統越來越多,再加上校內發展的服務主機亦不在少數,造成使用者必須重複登入 並記憶多組帳號、密碼,才可以順利使用各項服務;而使用者為了怕忘記或方便起見,在 每個網站都使用同一組或過於簡單的帳號、密碼,這樣不僅造成了使用者的不便,也提高 了資訊安全上的風險。再者,由於國小教師人員編制的問題,行政人員的職務異動也相對 的頻繁,因此易造成帳號、密碼交接不實,影響業務之推展。 雖然很多學者提出跨網域單一登入的解決方法,不過其技術門檻與建置成本較高,亦 不見得適用於國小校務行政,因為教育部門所提供的服務網站並不允許更改其登入介面或

(10)

認證機制;傳統的 RBAC 提供了一個管理方便、擴展性高以及具有彈性的存取控制方法, 但應用在國小校務行政現場卻仍嫌不夠完備,例如:對於相同屬性的使用者,必須逐一指 派相同角色給他們,若使用者角色需異動時,仍要逐一重新指派角色,非常沒有效率。另 外在某些狀況下,上級指派之任務和填報工作需要各處室人員分工合作才能完成,而每個 人負責的任務則依照自身被指派的角色來決定,傳統的 RBAC 並無法達到分工合作的機制。 我們希望在不更動現有系統環境下,提供讓使用者只要成功登入一次網站,即可在不

同網站之間存取各種網路服務的架構,並透過整合群組(Groups)、團隊及任務(Teams and

Tasks)的概念,除了讓角色管理權限機制適用於國小校務行政,也讓行政人員之職務調整, 不必去交接各服務網站的帳號、密碼,只要調整新、舊任職者應有的職務即可,進而減輕 行政交接的繁瑣與提升行政工作效率。然而,運行此架構並不會增加學校經費負擔,亦不 需改變使用者之使用經驗,更不需修改服務網站認證機制,亦可達到跨網域單一登入的功 能。

1.2 研究目的

本研究的目的為利用現有的硬體設備,在不變更使用者環境、不增加額外費用,且兼 顧使用者經驗、安全性及易於部署的考量下,提出一個適用於國小行政現場的跨網域單一 登入系統架構。本系統架構預期可達到之功能如下:

1. 網頁式單一登入(Web-Based Single Sign-On)介面:

此功能提供使用者透過瀏覽器(Browser)便可由單一入口登入取得各網站服務, 而不需要記憶多組不同的帳號、密碼,以減少資安問題的發生。另外,管理者可 以進行使用者資料管理、代登入網站管理、授權與權限管理與稽核管理等功能。 2. 保有各網站的認證機制: 由於系統採用代理登入(Agents Sign)的方式來替使用者進行登入動作,因此可 以保有原服務網站的認證機制,而不需要進行登入介面的修改。 3. 富有彈性的權限管控機制: 我們依照國小的行政運作體制,以角色為基礎,運用使用者、群組、團隊與角色 的對應關係,搭配權限指派給角色的概念,讓業務帳號、密碼移交能夠更順利、 簡便且任務執行上也更有效率。 4. 行政業務定期填報通知 此系統除了省去記憶多組帳號、密碼的困擾,也提供行政人員自行針對業務需要,

(11)

設定每月定期填報的通知,以便提醒行政人員定期完成填報業務。 希望透過此架構提供的功能,來簡化行政業務,降低行政負擔,提高行政效率。最後, 我們也將根據此一系統架構進行實作,來證明此一架構的可行性。

1.3 研究範圍

本研究將範圍設定在桃園縣國小教育行政現場,並蒐集縣內相關的行政填報與個人服 務網站,再完成代理登入程式設計,以代替使用者進行登入服務網站的程序。另外,為了 不增加額外的費用,本文實作之系統,採用開放原始碼(Open Source)的伺服器軟體 (Apache)及伺服器端網頁程式語言(PHP)來設計跨網域單一登入系統,並以資料庫伺服 器(MySQL)來儲存相關資料,最後透過 Cookie來儲存相關的會議金鑰(Session Key), 再利用安全性高且被廣泛使用的 AES、RSA、SHA-1等三種演算法,來處理網頁內容與使用 者認證的加解密及驗證程序,以強化系統的安全性。

1.4 章節介紹

本論文共分為六個章節,第一章的緒論說明本篇論文研究的出發點,第二章則針對單 一登入的相關技術做說明。第三章將對各學者所提跨網域單一登入的方法分析比較。第四 章為我們所提出的跨網域單一簽入系統架構。第五章則對本研究所提的方法設計、實作, 並對系統做評估分析。最後,在第六章中依據先前章節所介紹之技術或系統,與本系統做 比較分析,並對本研究做結論與未來的研究方向。

(12)

第二章 背景知識

本章節主要介紹及說明本論文主題相關的理論與技術,其內容包括網頁式單一登入 (Web-Based Single Sign-On)所解決的問題及優點;HTTP Cookie 與 Session 運作模式有 何不同,並如何應用在身分認證上;對稱式加密演算法(Symmetric Cryptographic

Algorithm)、非對稱式加密演算法(Asymmetric Cryptographic Algorithm)與單向雜湊

函數(One-Way Hash Function)的介紹;安全通訊層(Secure Socket Layer)的架構與 提供的安全服務;角色為基礎的存取控制(Role-Based Access Control)與其他存取控制策 略的比較,最後談及 Transcoding Reverse Proxy 的運作模式與運用在單一登入上的特性。

2.1 網頁式單一登入(Web-Based Single Sign-On)

隨著網際網路的發達,更多網路應用程式(Web Application)被開發,並組成了龐大 的服務網路脈絡,讓使用者享受網路科技帶來之便利,也創造了龐大的商機。但由於服務 網站過於分散,且各自擁有獨立的資料庫與認證機制,讓使用者必須重複登入各網站,才 能取得權限使用該服務,其多重登入示意圖,如圖2.1。 分散的網路服務具有下列幾項缺點:[1] 1、使用者操作不便。 2、系統帳號、密碼管理不易,且造成資安問題的發生。 3、系統效能不佳。 4、系統管理成本增加。 5、異質系統資源整合不易。

(13)

圖 2.1 多重登入示意圖

「單一登入」(Single Sign-On,SSO)[1][5][19]即只要一組識別碼和密碼就可以讓 使用者登入不同的系統,使用者就不需要為了不同的系統記住多組識別碼和密碼。網頁式 單一登入系統(Web-Based Single Sign-On,WSSO)[3][24],是指使用者透過瀏覽器,在 經過一次的身分驗證後,便可以存取不同網站的系統資源,而不需要再重複輸入帳號、密 碼。由於以網頁為基礎(Web-Based)的介面,具有跨平台、介面簡單、無國界的特性,在加 上單一登入的優點: 1、使用者用一組帳號、密碼即可存取不同網站之服務,而不需要記憶多組帳號、密碼, 也不用反覆執行登入的動作,以節省使用者時間。 2、集中管理使用者帳號及密碼,以遏止資訊安全問題發生。 3、透過一次性認證,即可取得各網路應用程式資源,大大提升系統效能。 4、經由集中式的認證機制與權限控管,減少維護的時間,以降低管理成本。 5、串聯不同網域的網路應用程式,以整合異質系統之資源。

因此,很快的使網頁式單一登入系統(Web-Based Single Sign-On)被廣泛的應用。網頁 式單一登入示意圖如圖2.2。

(14)

2.2 HTTP Cookie與Session

隨著網際網路及全球資訊網的快速發展,越來越多人透過瀏覽器來尋找他們所需的服

務與資源,而瀏覽器主要是透過 HTTP 協定(Hypertext Transfer Protocol)來連結網頁 伺服器取得網頁;HTTP 是以請求與回應模型為基礎[3][26],即當用戶端透過瀏覽器發出 一個服務請求(Request),伺服器就會回應(Respose)該請求,當每次的請求與回應完 成後,使用者的瀏覽器和伺服器間的連線就會中斷,因此我們也稱 HTTP 是一種無狀態 (Stateless)的協定,而 Cookie 正是一種可以解決 HTTP 無狀態(Stateless)協定的 方法,且因為 Cookie 的傳遞都是透過 HTTP Header 來實行,所以也有人稱它為HTTP Cookie[4][27]。由於伺服器(Server端)可以透過 Cookie,將一小段資訊儲存在用戶端 的電腦裡(Client端),以便下次連線時可以存取,所以常被應用在認證、追蹤與記錄使 用者的資訊,因此很多網站都會使用 Cookie 來維持使用者的連線狀態。例如:線上購物 網站、線上銀行、個人化的服務網站(iGoogle)…等。 Cookie 一般而言可以分為持續性(Persistent)與暫時性(Transient),兩者的差 別在於持續性 Cookie (Persistent Cookie)會存在使用者的電腦,直到使用期限 (Expiration Date)到了或使用者自行刪除才會消失;而暫時性 Cookie (Transient Cookie)是暫存於伺服器中,一旦使用者關閉瀏覽器,暫時性 Cookie 就會消失,因此, 暫時性 Cookie 也常被稱為「Session Cookie」。

Cookie的規格有六個部分,這六個部分分別為:name、value、expire、domain、path、 secure,其結構分別描述如下:

‹Name

Name 是 Cookie 的名稱,其內容不可以包含逗號、分號及空白字元。 ‹Value

Value 是上述 Cookie name 的值,這個字串會以16進制編碼後存入 Cookie 。這些參 數中,只有 Name 和 Value 是必需的。

‹Expire

Expire 是設定 Cookie 使用期限的參數, Expire 的值必須符合 GMT 格式;若不指定 此參數,則 Cookie的使用期限,就是關閉瀏覽器時。

(15)

Domain 為設定那個網域可存取 Cookie,只有在與此設定相同的網域或子網域內才能 存取該 Cookie 。如果不指定此參數, Domain 就指定為設定該 Cookie 的網頁所在 的網域。

‹Path

Path 為指定可以存取該 Cookie 的有效路徑,URL 經過 Domain 的比對符合之後,再 與 Path 的設定比對,符合路徑的才能存取該 Cookie 。一般最常用的的 Path 設定 值為"/"。如果不指定此參數,Path 就指定為設定該 Cookie 的網頁所在的路徑。 ‹Secure

Secure 是指定是否使用安全認證,若 Secure 被設定,則Cookie只會在使用HTTPS (HTTP over SSL)的連線間傳輸。若以 PHP 語法來設定 Cookie 時,Secure 值為1,代 表須使用 HTTPS 連線;若為0,則代表不使用 HTTPS 。

Session 的功能和 Cookie 一樣,都是用來記錄使用者的習慣與資訊,而其不同點在 於,Cookie 的資訊是存在用戶端(Client),Session 是存在伺服器端(Server)。一般 來說,Session 在一段時間沒有再開啟另一個網頁,或是執行登出功能,工作階段就會結 束,為了能夠長期記錄這些資訊,Session 都會搭配 Cookie 來使用,因此 Session 也算

是一種 Cookie 的改良;不過有時用戶端會了安全考量,關閉瀏覽器 Cookie 的功能,使得

瀏覽器必須使用網址改寫(URL Rewriting)的方式來傳送 Session ID,也讓有心人士有機

會從網址列中取得某些資訊,進行進程追蹤,造成資訊安全問題。例如:

https://testsso.myftp.org/admin.php?sid=1A2A0BFA32B0025C8BA00A5E697A9D12

由於 Session 的資訊是儲存在伺服器端(Server),因此也常應用在使用者身分認證

上。透過 Session 認證流程如圖2-3。

(16)

1、用戶端在登入網頁中輸入帳號、密碼。

2、伺服器核對帳號、密碼與資料庫的資料是否一致。若不一致則重導回登入畫面。 3、伺服器產生一組隨機的 Session ID並經過 MD5加密後,存入 Cookie中回傳給用戶端。 4、用戶端透過瀏覽器使用 Cookie、POST 或 GET 的方式將加密過的Session ID傳給伺服

器並請求服務。

5、伺服器依照 Session ID 取出參數值,並確認用戶端是否已完成認證及 Session ID存 活時間是否過期。

6、回應請求的結果。

2.3 加解密技術

本節針對本系統會使用到的加解密技術分成三個部份作一簡單介紹。第一部分為對稱 式加密演算法;第二部分為非對稱式加密演算法;第三部分則為單向雜湊函數。

對稱式密碼演算法(Symmetric Cryptographic Algorithm)

對稱式密碼演算法,亦稱為私密金鑰加密演算法[15]。此方法在進行加、解密時,都 使用同一把金鑰。所以不知道金鑰的第三者,將無法得知加密後的資料內容,因此才被稱 為對稱式加密演算法。由於加、解密時都用同一把金鑰,所以處理速度快是其優點,但是 如何把金鑰安全的送到接收者的手上進行解密以及傳遞資料人數多時金鑰的管理,是此演 算法最大的問題所在。目前較為知名的對稱式加密演算法有DES、IDEA、Rijndael(AES)等。 圖 2.4 對稱式密碼演算法 資料來源:陳軒正(2004)[15]

(17)

非對稱式密碼演算法(Asymmetric Cryptographic Algorithm) 非對稱式密碼演算法,亦稱為公開金鑰密碼演算法[15],此方法在進行加、解密時,是 透過兩把不同的金鑰,而此兩把金鑰是唯一的配對關係,一把稱為公開金鑰(Public Key), 可以公開分享給人知道;另一把稱為私密金鑰(Private Key),由產生公開金鑰的使用者 擁有。經過公開金鑰加密的資料,只能用私密金鑰來解密。由於加、解密是使用不同的金 鑰,因此在處理的速度上比對稱式密碼演算法來得慢。目前較有名的非對稱密碼演算法有 RSA、ELGamal及Diffie-Hellman金鑰交換等。 圖 2.5 非對稱式密碼演算法 資料來源:陳軒正(2004)[15]

單向雜湊函數 (One-Way Hash Function)

所謂單向雜湊函數就是將任一長度的訊息 m,經過此函數的運算輸出 H(m),此輸出訊 息稱為雜湊值(Hash Value)、訊息摘要(Message Digest)或數位指紋(Digital Fingerprint),如圖2.6。 單向雜湊函數具有兩個特性: 1、單向性(One-Way)或不可逆: 想要在合理的時間範圍以及有限得資源限制下,由H(m)推算出m是不可行的。 2、抗碰撞性(Collision Resistance): 將任意兩訊息m,n經過單向雜湊函數運算後,不會產生相同的雜湊值。 所以此加密法常被應用在確保資料傳送的完整性、數位簽章及驗證訊息等。目前常見的單 向雜湊函數有MD5及SHA-1。

(18)

圖 2.6 單向雜湊函數

2.4 安全通訊層(Secure Socket Layer)

Secure Socket Layer(簡稱SSL)是Netscape所提出的一種網路通訊安全協

定[5] [28],其目的在確保通訊雙方資料傳輸之安全,以避免資料在傳輸過程中被攔截、 竊取或偽造,因此SSL廣泛被應用在網頁傳輸安全協定(HTTP + SSL = HTTPS)上。 SSL 是介於傳輸層(Transport Layer)與應用層(Application Layer)間的安全機 制,主要分為四個子協定:SSL 紀錄協定(SSL Record Protocol)、SSL 握手協定(SSL Handshake Protocol)、SSL 改變特定加密協定(SSL Change Cipher Spec Protocol)、 SSL 警報協定(SSL Alert Protocol),如圖 2.7。

圖 2.7 SSL 協定架構圖

透過 SSL 紀錄協定(SSL Record Protocol)及 SSL握手協定(SSL Handshake Protocol) 可達到下列三個目的:

1、身分驗證(Authentication):讓用戶端和伺服器可以互相驗證對方的身分。 2、訊息機密性(Confidentiality):提供通訊兩端一個經過加密具有機密性的連線。 3、訊息完整性(Integrity):透過雜湊函數加密,以確保訊息未被竄改。

(19)

2.5 角色為基礎的存取控制(Role-Based Access Control)

存取控制(Access Control)[16]是一種管理模式,詳細規定了使用者可以從事哪些

動作,並限制使用者做出危害系統安全的動作。存取控制在資訊管理中是一項非常重要的

課題,最基本的是「存取控制列表」,列出使用者對於那些物件有什麼權限。一般常見的存

取控制策略(Access Control Policy)[31]有:自由選擇存取控制、強制存取控制、以角色 為基礎的存取控制。

自由選擇存取控制(Discretionary Access Control,DAC)

在 DAC 中的環境中,資源的擁有者,可自行決定把權限轉移給他人,接受到權限的使 用者,不需要原資源擁有者的同意,就可以任意的將權限,再授與給其他的使用者。 強制存取控制(Mandatory Access Control,MAC)

強制存取控制是一種集中式的安全性控制,屬於管理者基礎的存取控制,所有資源都 交由特定的權限中心來管理,這個權限中心記錄著每位使用者所能使用的資源及每項資源 可以提供給哪些使用者來存取。

角色為基礎的存取控制(Role-Based Access Control,RBAC)

Role-Based Access Control(RBAC)[2][23]是在1992年被提出,與前面兩種存取控制 策略不同的地方在於,RBAC 是依照使用者的角色、職務來決定存取權限,而非他的身分, 且每個使用者可以擁有一個以上的角色,被授與此角色的使用者,就可取得此角色被授與 的資源,使用者、角色與權限的關係如圖2.8。同一個使用者能夠分屬於不同的角色,就如 同校園中,教師的身分不僅是教師,也同時是組長或主任。

圖 2.8 使用者、角色與權限關係示意圖

(20)

以上三種存取控制策略都有其適用範圍及優缺點,下列表格針對不同的存取策略應用 在服務網站上做一比較。

表 2.1 各 Access Control 策略應用於網站服務時之比較表

DAC MAC RBAC

權限管理基本單位 個人 個人 角色 是否可分類管理 否 否 是 權限設定複雜度 極高 高 低 可歸屬單一群組 否 否 是 可歸屬於多群組 否 否 是 整體管理複雜度 高 高 低 資料來源:李長庚(2002)[17]

2.6 Transcoding Reverse Proxy

Transcoding Reverse Proxy 又稱為 Transcoding Surrogate[6],當使用者透過瀏覽 器要求遠端主機的服務時,必須先透過 Transcoding Reverse Proxy 來代理使用者向遠端 主機要求存取服務,或代理使用者登入遠端主機,以便使用者執行接下來的動作。其運作 雛型如圖2.8:

(21)

Transcoding Reverse Proxy應用在單一登入上的特點:

1、 遠端服務主機,可保有本身的認證機制、存取規則和會期追蹤(Session-Tracking) 的方式。

2、非常容易部署(可用開放原始碼軟體架設)且可依安全等級,任意改變認證機制。 3、使用者的認證及授權皆由 Transcoding Reverse Proxy 來控制。

4、Transcoding Reverse Proxy 儲存使用者登入各遠端主機的帳號、密碼,以便代替使用 者登入遠端主機,達到單一登入的目的。

(22)

第三章 相關研究

本章共分為三個小節,在 3.1 節中,探討各學者所提的跨網域單一登入機制,並針對 其架構比較優缺點。在 3.2 節中,說明 Cookie 如何應用在身分認證上,並探討各學者所提 安全 Cookie 機制,做一安全性分析比較。在 3.3 節中,將探討使用者要透過何種方式取得 角色屬性以及何種類型的 RBAC 較能符合本系統之需求,並針對各學者所提之 RBAC 類型, 做一整理比較。

3.1 跨網域單一登入機制之研究

當使用者處於一個提供多種服務或系統的環境中,為了存取這些服務或系統,使用者 必須記憶不同的帳號、密碼,經過一次又一次的身分驗證,造成了使用者的不便。此時單 一登入概念的興起,造成各式網站整合單一登入蔚為風潮,其就是為了解決此問題,讓使 用者只要輸入一次帳號、密碼,經過一次的身分驗證程序,就可以取用各種服務或系統的 資源,節省使用者寶貴的時間,提升網路的安全,進而創造更大的商機。 目前最被廣泛使用的單一登入系統機制就是 Miscrosoft 於1999年所提出的 .NET Passport[8], .NET Passport是以密碼為基礎的單一登入服務(Password-Based Single Sign-In Service),採用麻省理工學院所提出的 「Kerberos」為其安全機制,其目的是 讓使用者只要以一組帳號與密碼就可以通行加入 Passport 的網站,並且能夠存取以 .NET Passport 為基礎的 Web Service,但由於 .NET Passport 本身仍有非常多的漏洞需要修 正,而這些漏洞也造成使用者的不安。因此有些隱私保護組織強烈要求美國聯邦貿易委員 會(FTC)讓 Microsoft 停止通過 Windows XP 和 Passport 認證服務去追蹤並且監視用 戶,避免引起嚴重的隱私權問題,故 Microsoft [28]在2006年將 .NET Passport做重大的 更新後,改名為 Windows Live ID。

由於 .NET Passport 採用 Kerberos 為其認證系統,因此系統採取可信任的第三者驗 證方式(Trust Third-Party Authentication)對使用者進行身分驗證,且為了不影響加 密效能,主要利用 DES(Data Encryption Standard)加密演算法來加解密私密金鑰,再 透過 Kerberos 提供跨網域的功能,讓 .NET Passport 的服務可以更安全、可靠、透明且 有彈性。不過因為 .NET Passport 在驗證使用者身分後,隨即簽發一組會議金鑰給使用 者,待合作網站接收到使用者會議金鑰後自行以和 .NET Passport 共同持有之私密金鑰作

(23)

對稱式加解密及驗證,於安全性上較為薄弱。

圖 3.1 Microsoft .NET Passport 使用者認證流程示意圖

Microsoft .NET Passport 使用者認證流程如圖3.1 所示: 1、 使用者連結到 .NET Passport 相關之合作網站請求服務。

2、 合作網站將使用者重導至 .NET Passport 驗證網站進行身份驗證。

3、 若使用者沒有.NET Passport 帳號則合作網站導引使用者至 .NET Passport 驗證網站 進行資料登錄。

4、 使用者取得 .NET Passport 的認證及授權。 5、 使用者持授權證明向合作網站請求服務。

6、 合作網站經由 .NET Passport Manager 判讀授權無誤後允許使用者進入。

由於 Kerberos 系統之中,仍是採用傳統密碼系統(Convention

Cryptosystems)[21],但隨著公開金鑰密碼系統(PKC,Public Key Cryptosystem)的發 明與公開金鑰基礎建設(PKI,Public Key Infrastructure)的建立,讓使用者認證服務與 資料的傳遞更加安全。因此朱建達[16]在2000年便提出以公開金鑰基礎建設(Public Key Infrastructure)來設計單一登入系統,透過 PKI 的機制讓訊息傳遞與資料交換過程中, 能夠確保資料完整性、資料來源辨識、資料隱密性、不可否認性等四種重要的安全保障。 朱建達所提之論文是將系統整合公開金鑰基礎建設,讓使用者先經過「認證伺服器」 (AS)驗證之後,取得一份由「憑證中心」(CA)所發的權限屬性票卷,透過此票卷便可 向「權限屬性伺服器」(PAS)取得登入「應用伺服器」(V)的帳號、密碼,最後藉由「代 理程式」(Agent)將取得的帳號、密碼轉換成為「應用伺服器」(V)可以接受的格式。 其系統模型如圖3.2。

(24)

圖 3.2 「建立於公開金鑰基礎建設的單一簽入系統」系統模型圖 資料來源:朱建達(2000)[16] 若依此建置單一登入系統,至少需要「認證伺服器」、「憑證中心」、「權限伺服器」、 「應用伺服器」四個伺服器與「代理程式」,此架構除了會增加管理上的難度,相對的建 置成本也會提高。 對於目前市面上各單一登入服務套件之間,使用者認證資訊無法相容、大量資料對資 料庫存取速度影響與缺乏內建的權限控制機制問題,李長庚[17]在2002年提出了「一個開 放的 Web-Based Single Sign-On 服務架構」以解決上述問題。在這個服務架構中,透過 專職對外聯繫的服務單位(SSO Embassy),來與其他的單一登入服務系統溝通,並採用以 角色為基礎的權限控制機制(Role-Based Access Control,RBAC)與LDAP(Lightweight Directory Access Protocol)搭配,來提供良好的權限控制機制。

在這個架構中有四個主要角色: 1、 系統服務單位(System Units): 系統服務單位中包含著本服務架構所提供的核心功能,諸如使用者認證、授權、 使用者資訊存放、以及對外部單一登入服務的溝通元件等,皆屬於系統服務單位。 2、 服務網站(Service Site): 即在本服務架構下提供使用者各項服務的服務網站。這些網站本身的認證資訊必 須記錄在系統服務單位中;並且,這些服務網站也必須記錄該服務網站所屬之服 務架構的相關資訊,如此方能建立可信任的關係,以利訊息交換。 3、 外部單一登入服務(Other SSO): 代表本服務單位所將與之互動的外部單一登入服務網域。

(25)

4、 使用者(Users):

即一般的使用者,泛指任何使用本服務架構、以及服務架構下之服務網站的使用 者。

圖 3.3 「一個開放的 Web-Based Single Sign-On 服務架構」互動流程圖 資料來源:李長庚(2002)[17]

此服務架構互動流程如圖3.3:

(1) 使用者透過 Service Sites 進行登入動作。

(2) Service Sites 將使用者所輸入的認證資料送至AC。

(3) AC 根據Service Sites 所傳來的使用者認證資訊,向LDAP 取得該使用者的資料。 (4) LDAP 傳回給AC 該使用者的資料,AC 則根據這份資料進行使用者身分認證動作。 若使用者所輸入的認證資料無誤,則繼續進行其他步驟。若使用者輸入的資料有 問題,那麼就直接進行步驟11,並傳回錯誤提示訊息。

(5) AC 向 RBAC 索取該使用者的使用權限資料。 (6) RBAC 將該使用者的權限資料傳回給AC。

(7) AC 根據該使用者的決定來判斷是否替使用者透過 SSOE 到Other SSO 進行跨網 域登入動作。若該使用者決定不進行此動作,則跳到步驟11,並繼續進行其餘的

步驟。

(8) SSOE 依據AC 的要求,向Other SSO 進行該使用者的登入動作。 (9) Other SSO 傳回該使用者登入動作的執行結果給SSOE。

(10) SSOE 將工作執行結果回報給AC。

(11) AC 將使用者登入等一連串動作之執行結果回報給Service Sites。

(26)

所提供之服務。 此篇論文所提的 SSOE(SSO Embassy)是為解決各個單一登入服務網站間資訊交換格 式不相容的解決方案。而為了提供使用者更多與外部單一登入服務溝通的選擇,需要實作 多個 SSOE 以提供使用者選擇,不過實作 SSOE 是複雜而且困難的。 另外在1999年V.Samar[3]提出的論文中提到 Cookie 能實現單一登入,主要是基於以 下幾點因素: ‹ Installation 利用 Cookie 來實現單一登入,客戶端無需安裝額外軟體。 ‹ User Experience 使用者的感受沒有改變或極小的改變,因為當伺服器從舊有的認證機制改變成單一登 入時,利用Cookie的方式可將認證機制模擬成舊有的方式,減少使用者適應新機制的 麻煩。

‹ Independence with the authentication mechanism

Cookie可以應用於各種認證機制。例如:透過http POST來傳遞username/password的 方式、Basic http authentication、http digest authentication、Secure-ID

authentication、PKI等。 ‹ Maintainability 由於 Cookie 的設定是由伺服器所控制,所以我們可以很容易的更改 Cookie 的格式 和內容,而無需要求客戶端升級或調整設定。當遇到任何安全上的問題時,也可以快 速的完成修復。 但由於 Cookie 本身的限制,使得V.Samar所提的機制只能局限於同一個網域內,因此 在2005年王雅苓[18]提出了「一個新的跨網域單一登入服務架構」,利用 Cookie Center 的觀念來解決 Cookie 無法跨網域傳遞的限制。在此服務架構中,主要是建基於 Cookie 和 LDAP 之上,並且讓每一個參與單一登入服務的網域,都建置一個 Cookie Center,以 便來發出認證的 Cookie 給它們自己網域的使用者。

(27)

圖 3.4 使用者已通過認證,欲存取另一個網域應用系統之流程圖

圖3.4為此作者所提之跨網域單一登入服務流程圖,而其運作流程如下所示: 1、 使用者存取受保護的應用系統Application 2(Domain C)。

2、 Application 2重導到Cookie Center,Cookie Center檢查有沒有cookie。 3、 使用者雖然已通過認證,但沒有Domain C的cookie,因此重導到Master Login。 4、 Master Login要求使用者傳送 Cookie。

5、 Master Login取得 Cookie(Domain Identity Authentication Center)。 6、 Master Login將取得的 Cookie值SingOnKey傳送到LDAP進行身分認證。 7、 認證成功,回傳OK。

8、 Master Login 將認證成功的訊息送給 Cookie Center。

9、 Cookie Center 收到後,送出一個名為SingOnKey、value為X的cookie給使用者。 本論文雖然透過認證中心(Authentication Center)及 Cookie Center 兩個元件來簡 化系統的架構,但因為每一個參與單一登入服務的網域,都必須建置一個 Cookie Center, 而且所有合作的 Cookie Center 皆要向憑證中心來確認使用者身分,所以此做法除了增加 管理者負擔外,也會加重網路流量的負荷。

最後,我們針對本節探討的四個服務架構,將其達到跨網域單一登入做法及缺點分析 彙整如下表3.1:

(28)

表 3.1 各服務架構之做法及缺點分析表 .Net Passport (1999)[8] 做法:採用Kerberos為其認證系統,並將經身分認證取得的會議金鑰送 交合作網站比對,以確認使用者的合法性。 缺點:合作網站利用與 .NET Passport 共同持有之私密金鑰作對稱式 加解密,以完成驗證驗證,在安全性上較為薄弱。 朱建達 (2000)[16] 做法:系統採用公開金鑰基礎建設,利用憑證中心來發給每個系統元件 和使用者一份憑證,讓雙方可以互相認證身分。 缺點:建置此架構至少需要「認證伺服器」、「憑證中心」、「權限伺服器」 三個伺服器與「代理程式」,而此架構除了會增加管理上的難度, 相對的建置成本也會提高。 李長庚 (2002)[17] 做法:實作SSOE來與其他單一登入服務交換使用者認證資訊,並內建角 色為基礎的權限控制機制,與利用LDAP快速查詢使用者資料的優 點來建置此架構。 缺點:要先與外部單一登入服務網站結為聯盟網域,且必須實作多個 SSOE,不過實作SSOE是複雜而且困難的。 王雅苓 (2005)[18] 做法:讓所有參與單一登入服務的網域,都建置一個Cookie Center, 透過Cookie Center向憑證中心確認使用者身分後,才發送該網 域合法的cookie給使用者,以解決cookie無法跨網域傳遞的問 題。 缺點:此做法除了增加管理者負擔外,也會加重網路流量的負荷。 對於表3.1所提到的缺點,為了能夠有效的解決這些問題,我們將實作一個跨網域單一 登入系統,使用單一的網頁管理介面,並利用代理登入的方法來達到跨網域的目的,以降 低管理者管理上的困難;而且各服務網站仍可保有原來的認證機制,進而提升認證安全; 相對的也降低了建置成本與網路流量。

(29)

3.2 Cookie認證之研究

Cookie是被發明應用在維持Server和Browser之間的狀態,也就是說使用者登入一個系 統,經過認證過程後,如果認證成功,伺服器會將認證字串(Message Authentication code,MAC)以Cookie的形式儲存在使用者的電腦中,待使用者再度登入同一個系統時,伺服 器會從cookie中取出先前發給使用者的認證字串並進行驗證,而無須使用者再次進行登入 的動作。不過若使用Cookie來驗證使用者身分,有一些安全上的議題是值得考慮的。 1、Clear Text Cookie:

未加密的cookie是很容易在傳送過程中,被攔截進而取得私密資料;即便是加密過的 cookie被攔截後,也能利用重送攻擊(replay attack)來欺騙伺服器,因此cookie中儲 存的內容與傳遞過程,已經出現了很大的漏洞。因此在設定cookie內容時,應該要避免 儲存一些私密資訊;並且在資料傳遞過程中,最好使用SSL加密傳輸,以補強cookie被 竊取的風險。

2、Cookie Storage Security

一般來說,使用者瀏覽器會將cookie存放在用戶端電腦中,此時惡意攻擊者便可透過外 掛程式或其他方法來竊取cookie,因此使用in-memory cookie或session cookie來儲存 資料比將cookie存放在用戶端電腦中安全許多。

3、Cookie Destination Control

當使用者透過瀏覽器要求伺服器派發cookie時,此cookie只能被與原伺服器同網域或子 網域之伺服器所存取,但是透過用戶端的網域名稱伺服器(Domain Name Server),卻可 以修改原本不隸屬於派發cookie伺服器的網域,造成不合法的伺服器取得該cookie,我

們也將此稱之為cookie-harvesting threat。 4、Client IP Address Restriction

在cookie中加入用戶端的 IP Address,可以避免伺服器遭受重送攻擊。不過在某些情 況下,此機制可能會遇到一些困難,例如:在Network Address Translation(NAT)的環 境中或使用者透過代理伺服器(Proxy Server)連接伺服器時,用戶端的 IP Address 可 能會因此而改變,造成利用 IP Address 來驗證cookie的合法性失效。

基於以上的問題,Joon S.Park and Ravi Sandhu[9]在2000年提出三種型態的Secure Cookie,用以驗證使用者是否為cookie持有人,以防cookie被有心人竊取、重送,這三種 型態的Secure Cookie分別為 Address-based authentication、Password-based

(30)

圖 3.5 三種型態的 Secure Cookie

資料來源:Joon S.Park and Ravi Sandhu(2000)[9]

Address-based authentication(IP_Cookie): 當用戶端透過瀏覽器向伺服器要求存取時,伺服器會立即取得用戶端的IP Address並 將之存入cookie(IP_Cookie)中。當用戶端再度向此伺服器要求存取時,伺服器會先核 對用戶端的IP Address是否與IP_Cookie中的IP值一致;如果相同,伺服器就會相信此 用戶端是IP_Cookie的真正擁有者。 Password-based authentication: 伺服器將用戶端提供的密碼經過 hash 函數的加密後,存放在cookie(Pswd_Cookie) 中。當用戶端向伺服器要求存取時,必須先輸入一串密碼,再經過 hash 函數的加密, 若此加密過的密碼與存放在Pswd_Cookie的密碼值相同,伺服器就會相信此用戶端是 Pswd_Cookie的真正擁有者。 Digital-signature-based authentication: 如果伺服器知道用戶端的public key,像DSA或RSA的技術,伺服器就可以確認使用者 是否為cookie真正的擁有者。

在2005年Alex X. Liu等人[10]針對 Joon S.Park and Ravi Sandhu 利用cookie所提出 的三種認證方法,提出一個Secure Cookie Protocol,以解決此三種認證機制較無效率與 不容易部署的問題,並滿足一個Secure Cookie Protocol該提供的四項服務:可認證性 (Authentication)、機密性(Confidentiality)、完整性(Integrity)、防止重送攻擊 (Anti-replay)。

(31)

認證性(Authentication):

Joon S.Park and Ravi Sandhu 所提出的三種Secure Cookie認證機制,在某些情況下, 會遇到一些困難。

IP_Cookie:由於IP_Cookie是透過IP位址(IP Address)來確認使用者身分,因此會有 會三個問題發生。

1、 惡意攻擊者利用IP偽造(IP Spoofing)的技術通過認證機制。

2、 用戶端透過DHCP(Dynamic Host Configuration Protocol)取得IP位址,導致IP 位址可能會變動。

3、 在NAT(Network Address Translator)或代理伺服器(Proxy Server)的環境下,其 他的用戶端可能也會取得相同的IP位址。 Pswd_Cookie:當用戶端瀏覽其他網站時,必須一再輸入密碼,以驗證用戶端的身分, 這也造成了使用者的不便。 Sing_Cookie:此機制是讓每個用戶端皆擁有一組公開金鑰與私密金鑰,並利用資料庫 的搜尋與公開金鑰加密演算法來完成身分認證,而此方法是不容易去部署且較耗費成 本的。

因此Alex X. Liu等人提出另一種Secure Cookie,如圖3.5,此方法則可以解決上列三

種認證機制所遇到的困難。

圖 3.6 A Secure Cookie Protocol 資料來源:Alex X. Liu等人(2005)[10] 機密性(Confidentiality):

在需要高等級得機密的環境中,Joon S.Park and Ravi Sandhu 利用伺服器隨機產生

的Session Key來加密cookie中的資料,再利用伺服器的公開金鑰(Public Key)來加密 Session Key,並存入cookie(Key_cookie)中。由於此種方法使用到公開金鑰的演算 法,因此會使得cookie protocol變的複雜且沒有效率。因此,Alex X. Liu等人利用 HMAC(user name | expiration time,sk)來當作加密金鑰 k,以確保資料的機密性, 而此方法有三個優點:

(32)

1、 密鑰唯一性:由於每位使用者的名稱與cookie過期時間皆不相同,因此產生的加

3、 及server key

態產生,因此加密金鑰 k 不用儲存在伺服器端或是cookie中。 密金鑰也會不同。

2、 密鑰不可偽造:因為server key是無法被得知的,因此加密金鑰k也就無法被偽造。 密鑰不用儲存:由於加密金鑰k是利用user name、expireation time

完整性(Intergrity):

Alex X. Liu等人利用金鑰雜湊訊息認證碼(keyed-hash message authentication code ,簡稱HMAC)來驗證資料是否有被竄改,只要cookie中的值有被修改過,其產生的HMAC

便會與原先在cookie中的HMAC不同。

防止重送攻擊(Anti-replay):

Alex X. Liu等人將 SSL 的session key加入到訊息認證碼(HMAC)中,再經由加密金鑰 k加密,如HMAC(user name | expiration time | data | session key,k),則此時HMAC

人所提的Secure Cookie Protocol加以簡化改良,詳細的設計將在 四章中加以說明。 就具有session 的特性,因此即使此cookie被竊取來進行重送攻擊,也無法成功。 即使各學者所提的安全Cookie,能有效的達到資料的可認證性、機密性、完整性與防 止重送攻擊,不過隨著科技日新月異,即使再安全的設計,總有被破解的一天,所以我們 儘可能不要把重要或敏感的資料存放在cookie中,以避免私密資料外洩的問題發生。最後, 我們針對Alex X. Liu等 第

(33)

3.3 單一登入使用RBAC之研究

由於網路服務的多元性,傳統的存取控制已經無法滿足現今的系統,主要是因為傳統 存取控制只有針對授權(Authorization)決定策略來決定使用者的權限,傳統的權限控管系 統,大多是使用者和權限直接對應,當使用者和權利都越來越多後,系統管理者要管理每 位使用者和權利之間的關係會增加許多的複雜度。由於 RBAC 將傳統指派權限給使用者的 方式,修改為使用者對應角色,角色對應權限,如此一來,當使用者權限有變動時,系統 管理者只要改變使用者和角色的對應即可,進而降低了管理上的成本。另外,因為 RBAC 包 含了三個基本安全原則:[2][11][20] 1、 最少權限(Last Privilege): 一個角色中會擁有許多不一樣的權限,一個使用者也可能被派發多個角色,權限會視 角色的需要來派發,而且擁有多重角色的使用者無法利用其他的角色來進行特定角色 的職務,以避免權限會遭到濫用或是發生衝突。 2、 責任區分(Separation of Duties): 這是屬於多人控制安全策略,對於有互斥性質的職務可以分配給不同的角色,並且限 制使用者取得相互斥的角色,以避免發生有舞弊的情況發生,例如出納與會計的職務 不能由同一個員工來擔任。 3、 資料抽象(Data Abstraction): 傳統的存取控制限定於實際的操作動作,如讀取、寫入等。RBAC可以利用語意的方式 來描述權限,如借款、貸款。 因此常被應用來提升存取控制的安全。 本篇論文除了探討如何使用安全 cookie 來認證使用者身分與利用代理登入的方式來 達到跨網域的單一登入,也期望藉由角色為基礎的存取控制(RBAC),來解決學校行政人員 業務帳號、密碼移交的不便。因此使用者要透過何種方式取得角色屬性以及何種類型的RBAC 較能適用本系統,將是現行需要解決的的兩個議題。 對於如何在網路上來取得使用者的角色屬性,在2001年Joon S. Park等人[12]提出兩 種方法,分別為User-Pull與Server-Pull架構,其架構圖如圖3.7和圖3.8。

(34)

圖 3.7 User-Pull 架構合作圖

資料來源:Joon S.Park et al.(2001)[12]

在User-Pull架構中,使用者透過瀏覽器(Browser)向Role Server取得授予的角色,並 儲存在使用者的主機中,接著將此角色與認證憑證一併提交給Web Server,待Web Server 確認認證憑證無誤後,便可讓使用者透過瀏覽器(Browser),來取得該角色所擁有的權限。

圖 3.8 Server-Pull 架構合作圖

資料來源:Joon S.Park et al.(2001)[12]

在Server-Pull架構中,使用者透過瀏覽器(Browser)將認證憑證提交給Web Server, 待Web Server確認認證憑證無誤後,Web Server即向Role Server請求取得授予使用者的角 色,接著使用者透過瀏覽器(Browser)請求服務時,Web Server便依照該使用者的角色,來

(35)

提供應有的權限。 User-Pull與Server-Pull架構最大的不同點在於,User-Pull架構是將Role Server所 授予的角色儲存在使用者主機中,而Server-Pull架構是儲存在Web Server中;由於 User-Pull架構是將授予的角色儲存在使用者主機中,因此使用者便可以利用此角色,在不 同連線要求中或在不同的網頁伺服器(Web Server)中傳遞角色,以取得各種服務,直到角 色的使用期限過期,這種方法雖然需要使用者的合作(例如:允許使用cookie),但因為角 色的可重複使用性,卻增強了網頁伺服器(Web Server)的效能。尤其對某些使用者而言, 為了方便在不同的網站中存取服務,因而必須維持他的角色或頻繁使用他的角色,而 User-Pull架構就是一個很好的解決方法。User-Pull與Server-Pull架構的比較,如表3.1。 表 3.2 User-Pull 與 Server-Pull 架構比較表 User-Pull架構 Server-Pull架構 使用者便利性(User's convenience) 低 高 網頁伺服器效能(Performance) 高 低 可重複使用性(Reusability) 高 低 角色新穎度(Role freshness) 低 高 單點故障(Single-point failure) 低 高

資料來源:Joon S.Park et al.(2001) [12]

隨著網路的發達,使用網路服務的人數大量增加,讓採用RBAC來管理使用者權限的網 路系統無法有效的減輕管理上的負擔,因此,在2005年Q. Li等人[13]提出一個以群組 (Groups)為概念,分散式的角色為基礎存取控制(Decentralized RBAC,DRBAC)模型,以解 決大量使用者對於傳統 RBAC 的衝擊。 分散式的角色為基礎存取控制(DRBAC)模型是由使用者(Users)、群組(Groups)、角色 (Roles)、權限(Permissions)和會期(Sessions)等五個元件組成,其模型如下圖3.8。

(36)

圖 3.9 DRBAC 模型圖 資料來源:Q. Li et al.(2005)[13] 由於傳統的RBAC是利用使用者對應角色,角色對應權限的方式來運作,一旦面臨大量 的使用者與角色之間關係的轉換配置時,就會大大降低處理效率。因此透過群組(Groups) 將具有相同屬性的使用者集合起來,並賦予群組(Groups)適當的角色,可以免去繁瑣的使 用者角色配置。 在國中、小行政體制中,常用團隊或社群來執行上級所交辦之任務,並利用群組的概 念將參與此團隊或社群的教師設定成群組角色,但是事實上,群組角色是讓每位教師所擁 有的權限都一樣,這樣的做法卻與實際運作情況不盡然相符。因為在同一團隊或社群的教 師,可能會透過分工合作的方式來執行任務,所以把這些教師設為同一個群組角色並不恰 當,因為每位老師都會有自己負責的任務。因此在2007年Wei Zhou等人[14]便提出了一個 以團隊與任務為基礎的角色存取控制(Team and Task Based RBAC Access Control,簡稱 TT-RBAC) 架構來實行權限控制與認證管理,TT-RBAC增加了團隊和任務(Team and Task) 兩元件,並整合NIST RBAC所提出的架構,因此TT-RBAC也承襲了RBAC角色階層的概念,透 過角色階層(Role Hierarchy)的概念,使高層的角色可以繼承低層角色的權限,例如:教 務主任擁有教學組長及訓導組長的權限。

(37)

角色(Roles)或任務(Tasks)被分配給某些團隊(Teams),接著權限(Permissions)再被分配 給角色(Roles)或任務(Tasks),因此使用者可執行的權限是由他被賦予的角色或隸屬的團 隊所決定,而此團隊被指派的任務,將決定參加此團隊的使用者所能執行的權限。例如: 某位教師擔任六年級導師的角色,又因其專長而參加數學領域這個團隊,接著教務處將數 學競賽這個任務指派給數學領域團隊來負責,而此團隊成員便各司其職,以完成此任務。 以TT-RBAC為核心加上階層概念的架構圖,如圖3.9所示。 圖 3.10 階層的 TT-RBAC

(38)

最後我們針對傳統RBAC、DRBAC與TT-RBAC的運作原理與缺點分析彙整如下表3.3: 表 3.3 傳統 RBAC、DRBAC 與 TT-RBAC 的運作原理與缺點分析表 傳統RBAC 原理: 利用角色來控管權限,再授予使用者應有的角色身分;而當使 用者更換職務時,只需要改變它原有的角色即可,不用逐一修 改使用者權限。 缺點: 若面臨大量的使用者與角色之間關係的轉換配置時,就會降低 處理效率。 DRBAC 原理:將具有相同屬性的使用者集合起來,並賦予群組(Groups)適當的 角色,免去繁瑣的使用者角色配置。 缺點:在合作式的環境中,群組的角色並無法有效的定義,每個角色所 被賦予的權限。 TT-RBAC 原理:使用者可執行的權限是由他被賦予的角色或隸屬的團隊所決定, 而此團隊被指派的任務,將決定參加此團隊的使用者所能執行的 權限。 缺點:並非任何情況下,團隊成員都需要利用合作的方式來完成任務。 為了能讓本系統存取控制與授權機制更加富有彈性,我們將整合DRBAC與TT-RBAC的優 點,讓相同屬性的使用者具有群組角色(Group role)的權限,而且在需要合作式的環境中, 也能利用團隊(Team)分工的方式來達成任務(Task),詳細的設計將在第四章中加以說明。

(39)

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

在過去網路尚未普及之前,文書資料或相關調查的傳遞上,均需親自或透過郵寄方式 來作業;但隨著科技網路蓬勃發展,教育行政部門依各自需求,先後建立許多網路應用程 式,讓行政人員透過網路即可完成資料傳送或填報作業,以提升行政效率;但由於教育部 門委由廠商或自行開發的平台或語言的不同,因此擁有各自的認證機制,導致使用者必須 反覆的輸入帳號、密碼,才能存取相關服務,造成使用者相當的不便。再加上行政人員職 務異動的頻繁,如何有效管理眾多登入的帳號、密碼,而讓各項業務執行得更順利,成了 另一個需要解決的問題。

4.1 CDSASS概說

本系統最重要的環節就是如何在不變更現有網路環境且不增加軟硬體經費下,讓使用 者只需要登入一次系統,便可取得不同網域的服務,並設計一套適合國小行政業務的權限 管理機制來提升行政效率。 基於以上問題,我們建置了一套能提升行政效率且兼具安全性的跨網域校務單一登入 系統(CDSASS),如圖4.1。希望藉由單一登入的技術與代理登入的方式,讓使用者只需要 登入一次系統,便可透過本系統來進行跨網域的代理登入作業,且不需要修改外部服務網 站的登入介面,以減少使用者需要記憶多組帳號、密碼而產生的資安問題。另外,本系統 以角色為基礎,運用使用者、群組、團隊與角色的對應關係,搭配權限指派給角色的概念, 讓國小行政業務帳號、密碼移交與填報作業能夠更順利、簡便且任務執行上也更有效率。 最後,透過系統稽核的功能來記錄使用者的行為,讓使用者非法竄改的登入密碼與角色權 限後,能修正回復為原本的資料,以確保系統的安全性。 圖 4.1 系統示意圖

(40)

4.2 CDSASS架構

我們透過邏輯設計上的差異性與階段性,將系統分割為兩個子系統:入口網站子系統 與安全存取控制子系統。而其主要核心功能由下列六個模組所組成:登入與登出模組、認 證模組、單一登入服務模組、使用者資訊儲存模組、授權與權限管理模組與稽核管理模組, 其系統架構如圖4.2。 圖 4.2 CDSASS 系統架構圖 接著我們將對此六個模組的工作內容與設計理念做深入的說明。 1. 登入與登出模組(Login Module ,LM): 工作內容:

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

(2) 必須提供資料安全傳輸管道,以確保資料不會在傳遞過程中被竄改或竊取。 (3) 提供刪除使用者端及伺服器端暫存資料之功能。

設計理念:

(41)

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

2. 認證模組(Authentiation Module ,AM): 工作內容: (1) 設定認證訊息與角色代碼於Cookie與Session中。 (2) 確認使用者送出的認證資料是否正確。 (3) 確認Session的合法性,並取得使用者角色身分。 設計理念: 雖然以 Cookie 來認證一直為人所詬病,不過考量簡化使用者登入步驟、提升行 政效率之因素,在此我們仍以 Cookie 來當作認證的一環。若是以系統的安全性為主 要考量的話,當然還是建議使用 Session Cookie的概念來執行認證程序。 使用者的登入模式可以分為首次登入與再度登入,而這兩種登入模式皆由認證模 組負責來核對與確認。 第一次登入系統: 當使用者透過 LM 將帳號、密碼傳送至 AM 後,AM 依據 LM 所傳送過來的帳號與 經過雜湊運算的密碼,和資料庫中存放使用者密碼的欄位值比對。若使用者輸入的認 證資料無誤,則由資料庫存放角色對應表中取得該使用者的角色代碼,連同認證成功 訊息一併存入session中,最後在cookie中存入經過雜湊運算的身分證字號、使用者IP 位址、cookie的有效時間、以k 當金鑰加密的session id及雜湊訊息確認碼(Hash Message Authetication Code ,HMAC),提供使用者再度登入系統時,僅需傳送cookie 值,系統便可確認使用者身分的合法性。本系統安全cookie 的協定格式如下圖4.3。

圖 4.3 本系統之安全 cookie 協定

(42)

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為使用者第一次登入與通過認證後,再度 登入系統之認證流程圖。

(43)

3. 單一登入服務模組(Single Sign-On Module ,SSOM): 工作內容: (1) 提供管理者代理登入網站資料之新增、修改、刪除等管理功能。 (2) 提供登入網站之帳號/密碼加密,以確保存入資料庫之帳號/密碼的私密性。 (3) 能夠代替使用者登入外部服務網站,而不需要再輸入帳號/密碼。 (4) 定時通知使用者完成業務填報。 設計理念: 單一登入服務模組為本系統的主要核心功能,提供使用者與外部服務網站溝通的 橋梁,因此資料庫中必須設計一個資料表,來存放網站基本資料、網站所屬部門、代 登入程式檔名與經過加密的外部服務網站帳號/密碼,以便管理者可以維護外部服務網 站的資料與代登入的帳號/密碼。本系統所設計的代登入網站資料表結構如表4.1。 表 4.1 代登入網站資料表結構 欄位名稱 欄位型態 欄位說明 site_id int 網站編號 site_name varchar 網站名稱 site_url varchar 網站網址 site_info varchar 網站說明 dept_id int 網站所屬部門編號 login_agent varchar 代登入的程式檔名 sso_id varchar 經過加密的帳號 sso_pd varchar 經過加密的密碼 在大部分的網站環境中,使用者欲使用網路服務前,必須要先呼叫網站的登入網頁, 接著透過 HTML 表單(Form)中的 POST 傳送方式,將表單中輸入的訊息傳遞出去,因此可 以不管外部服務網站的登入網頁是用何種語言所寫,只要取得外部服務網站登入表單所要 傳送的欄位參數,加入要傳送的參數值,設計出一個代理登入程式,替使用者進行代填帳 號/密碼的登入工作。另外,我們為了提升代理登入帳號/密碼的安全性,因此採用 AES 加 密演算法(Advanced Encryption Standard,又稱Rijndael加密法)來對代登入帳號/密碼 加密後才存入資料庫中,以抵抗目前已知的攻擊,強化系統的安全性,也避免影響到外部 服務網站的系統運作。

(44)

雖然我們利用代理登入的方式讓行政人員不用反覆輸入帳號、密碼,不過對於眾多服 務網站,行政人員也難免會有所疏失而忘記填報,所以也提供一個提醒的機制,讓行政人 員皆能順利完成業務。

4. 使用者資訊儲存模組(User Data Module , UDM): 工作內容: (1) 提供使用者維護個人基本資料與登入密碼之變更。 (2) 提供管理者修改、刪除與查詢使用者資料。 設計理念: 使用者在首次登入進行認證程序時,需要核對使用者輸入的帳號/密碼,以確認使 用者的身分是否合法,因此我們建立一個使用者資料表來儲存使用者的相關資訊,讓 使用者可以自行維護基本資料,而管理者也可以針對特定的使用者來進行資料異動的 工作。另外,為了確保資料的機密性,我們將 user_pass 欄位值透過SHA1的雜湊運算 後,才儲存到使用者資料表中。使用者資料表結構如下表4.2。 表 4.2 使用者資料表結構 欄位名稱 欄位型態 欄位說明 uid int 使用者編號 ID char 身分證字號 user_name varchar 使用者名稱 user_pass char 使用者密碼 user_cname varchar 使用者姓名 Email varchar 電子郵件 Dept_id int 使用者所屬部門編號 ip varchar 登入IP位址 last_login datetime 登入時間

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

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

(45)

(4) 提供管理者新增、修改、刪除群組及設定使用者與群組對應之功能。 (5) 提供管理者新增、修改、刪除群組及設定使用者與團隊對應之功能。 (6) 提供管理者新增與指派任務之功能。 設計理念: 授權與權限管理模組存放有系統架構中權限管理機制裡各個角色(Roles)、群組 (Groups)、團隊(Teams)、任務(Tasks)與其對應的權限資訊,因此 AM 要授權 使用者相關權限時,就必須從授權與權限相關資料表中取得資料。 由於在國小的行政環境中,會有一群人同時執行相同的工作或一群人分工合作執 行一件任務的情形,因此我們依此需求規劃出更符合校務行政現場的角色存取關係, 來取代傳統、群組或團隊的 RBAC 設計,在此我們共規劃了十個資料表來存放授權與 權限管理資料,表4.3簡略說明了每個資料表所存放的資料內容。 表 4.3 授權與權限管理資料表 資料表名稱 說明 role 角色編號與名稱 role_assign 使用者、群組、團隊與角色的對應關係 role_permiss 每個角色被賦予的權限 group 群組編號與名稱 group_mapping 使用者與群組的對應關係 team 團隊編號與名稱 team_mapping 使用者與團隊的對應關係 task 任務編號與名稱 task_assign 任務與執行團隊對應關係 task_permiss 每個任務被賦予的權限 此十個資料表是以不同功能做為切割資料表的依據,以方便管理者可以針對不同 的資料表來做角色指派與權限設定等維護工作,圖4.6是各資料表間交互參考的關聯 圖。

(46)

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

6. 稽核管理模組(Audit Management Module , AuM): 工作內容: (1) 提供管理者自行設定需稽核之項目。 (2) 紀錄使用者變更資料前的密碼、時間與來源IP。 (3) 紀錄管理者變更角色指派前之角色值。 (4) 紀錄管理者變更角色權限前之權限值。 (5) 紀錄管理者變更代登入網站資料之網站編號與變更前之代登入帳號/密碼。 設計理念: 在開放的網路環境中隨時都有許多事件發生,這包括合法與非法的所有行為,所 以沒有一套資訊系統可以保證百分之百的安全,因此必須採用一些事後補救的措施來 補強不足的部份,稽核最主要的目的也就是要記錄所有的事件,如使用者登入時間、 來源IP位址、密碼與角色變更、存取權限與代登入的帳號/密碼異動等,因此我們將稽

數據

圖 2.2 網頁式單一登入示意圖
圖 2.3 Session 認證流程圖
圖 2.6 單向雜湊函數
圖 2.8 使用者、角色與權限關係示意圖
+7

參考文獻

相關文件

建模時,若我們沒有實際的物理定律、法則可以應用,我們 可以構造一個經驗模型 (empirical model) ,由所有收集到

下列何者敘述錯誤?(A)鼎新 ERP 系統可以設定日期格式(西元\民國) (B)鼎新 ERP 系統可 以設定多種幣別資料 (C)鼎新 ERP 系統可以設計表單的簽核

數位計算機可用作回授控制系統中的補償器或控制

最後特別提出說明,本研究用戶端作業系統為 Win 2000 Professional,伺服 器端作業系統為 Windows 2000 Server 並啟動 Active Directory

 為了更進一步的提升與改善本校資訊管理系 的服務品質,我們以統計量化的方式,建立

由於 reduced echelon form 每一個 row 除了該 row 的 pivot 外, 只剩 free variables (其他的 pivot variable 所在的 entry 皆為 0), 所以可以很快地看出解的形式.. 而我們又知

化成 reduced echelon form 後由於每一個 row 除了該 row 的 pivot 外, 只剩 free variables (其他的 pivot variable 所在的 entry 皆為 0), 所以可以很快地看出解的形式..

之意,此指依照命令動作的意義。所謂伺服 系統,就是依照指示命令動作所構成的控制