監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

用戶認(rèn)證和數(shù)字證書為Web服務(wù)保安全

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

AMTeam.org

用戶認(rèn)證和數(shù)字證書為Web服務(wù)保安全

這是Web服務(wù)安全體系結(jié)構(gòu)系列技術(shù)文章中的第二篇。第一部分介紹了一家虛構(gòu)的公司:因特網(wǎng)字典公司(TIDC)及其客戶RegalResearch.com。RegalResearch公司采用了一種Web服務(wù)把TIDC的功能集成進(jìn)它自己的網(wǎng)站。第一篇文章介紹了保證TIDC Web服務(wù)安全的IP阻塞技術(shù)。在本文里,我們繼續(xù)討論另外兩種技術(shù):用戶認(rèn)證和數(shù)字證書。

用戶認(rèn)證
用戶認(rèn)證是一種從數(shù)據(jù)庫到操作系統(tǒng)等各類軟件中都很常見的安全防范技術(shù)(參看圖A)。用戶認(rèn)證從概念上來說是非常簡(jiǎn)單的:系統(tǒng)的每一位用戶都被分配了一個(gè)唯一的用戶名。對(duì)關(guān)聯(lián)該用戶名的資源或功能的訪問都要接受特定口令的保護(hù)。因?yàn)榇蠖鄶?shù)用戶已經(jīng)非常習(xí)慣這種安全技術(shù),所以普遍存在的用戶認(rèn)證系統(tǒng)對(duì)Web服務(wù)的部署是非常有益的。不論你的Web服務(wù)是否正被其他Web開發(fā)人員或者一般公眾使用,這種安全機(jī)制都很容易得到理解。

圖A

 

用戶認(rèn)證可以實(shí)現(xiàn)Web方法的單獨(dú)使用

給Web服務(wù)應(yīng)用用戶認(rèn)證安全機(jī)制非常簡(jiǎn)單:每一種Web方法調(diào)用都要求額外的兩個(gè)參數(shù)即可,這就是用戶名和口令。只要調(diào)用了Web方法,第一步就是在數(shù)據(jù)庫中檢查用戶名是否存在。第二步則是保證所提供的口令同指定用戶名的口令匹配。如果這些檢查都得以通過,那么Web方法的操作也才可以繼續(xù)進(jìn)行。如果在這些檢查步驟中哪怕只有一步過不去,則Web方法需要給主調(diào)函數(shù)發(fā)送錯(cuò)誤消息。


我們可以對(duì)這種技術(shù)做一點(diǎn)小小的改進(jìn),這就是常見的用戶識(shí)別碼,通常的用戶識(shí)別碼就是一個(gè)全局唯一標(biāo)識(shí)符(GUID)。在這種情況下,除了標(biāo)準(zhǔn)參數(shù)之外Web方法還會(huì)接受參數(shù)UserID。這種途徑同采用用戶名/口令組合機(jī)制同樣有效,這是因?yàn)镚UID很難復(fù)制。在大多數(shù)情況下,隨機(jī)找出用戶的GUID比基于字符串的口令要難得多。因?yàn)樵S多數(shù)據(jù)庫都能自動(dòng)地產(chǎn)生GUID,所以這也是最為流行的安全技術(shù)之一。不過,這一技術(shù)也不是沒有問題,其主要的缺點(diǎn)是用戶或者開發(fā)人員很難記得GUID,特別容易敲錯(cuò)。

優(yōu)點(diǎn)

用戶認(rèn)證機(jī)制的主要優(yōu)點(diǎn)是它可以為創(chuàng)造出更復(fù)雜的授權(quán)方案提供選擇。記住,所謂的認(rèn)證(authentication)是證明用戶身份的過程,而授權(quán)(authorization)則是標(biāo)識(shí)認(rèn)證用戶可訪問資源的過程。由于每一種Web方法都認(rèn)證提出請(qǐng)求的特定用戶,所以,創(chuàng)造出一種復(fù)雜的授權(quán)方案使得用戶只能使用部分Web方法是可能的。在這種情況下,證實(shí)用戶身份以后,每個(gè)Web方法都將檢查認(rèn)證用戶是否有權(quán)訪問給定的Web方法。如果沒有相應(yīng)的授權(quán)權(quán)限,那么就應(yīng)該向用戶提出第3類錯(cuò)誤信息。

缺點(diǎn)

當(dāng)然,缺點(diǎn)也是有的。使用用戶認(rèn)證方案最明顯的問題就是用戶在每次調(diào)用方法的時(shí)候必須包括一個(gè)或兩個(gè)附加參數(shù)。當(dāng)服務(wù)器端Web應(yīng)用(例如ASP或JSP)做這個(gè)工作時(shí)當(dāng)然不算什么問題。然而,當(dāng)人們通過WSDL頁或類似的前端直接調(diào)用Web方法時(shí),這項(xiàng)工作就實(shí)在太令人感到乏味了。

另外還有個(gè)令人擔(dān)心的地方,在使用用戶認(rèn)證時(shí)需要在Web服務(wù)器上存儲(chǔ)用戶名/口令。由于這些信息通常存放在數(shù)據(jù)庫里,所以需要額外的存儲(chǔ)空間和服務(wù)請(qǐng)求,這就影響了Web服務(wù)的性能。同時(shí),存儲(chǔ)這類數(shù)據(jù)還可能把敏感的客戶信息暴露給企業(yè)職員和黑客。對(duì)那些把數(shù)據(jù)庫用做基本功能組成部分的Web服務(wù)而言,這一擔(dān)心倒還可以通過體系結(jié)構(gòu)和開發(fā)的精心設(shè)計(jì)來解決。而對(duì)那些不需要數(shù)據(jù)庫的Web服務(wù)來說,僅僅是創(chuàng)造和維護(hù)用戶認(rèn)證的代價(jià)就夠受得了。

數(shù)字證書

保護(hù)Web服務(wù)安全的另一種技術(shù)就是數(shù)字證書了。數(shù)字證書是安裝在客戶機(jī)上的小型軟件,其作用是驗(yàn)證客戶的身份(參見圖B)。這種身份驗(yàn)證工作由第三方來完成,例如Verisign公司就可以采用產(chǎn)業(yè)標(biāo)準(zhǔn)的加密技術(shù)為每個(gè)客戶創(chuàng)建一張唯一的證書。隨后,在客戶請(qǐng)求某種Web服務(wù)時(shí)證書也會(huì)被傳遞。Web服務(wù)對(duì)數(shù)字證書進(jìn)行檢查并依此作出反應(yīng)。

圖B

 

數(shù)字證書安全地識(shí)別用戶

數(shù)字證書在使用方式上類同于IP阻塞,對(duì)整個(gè)網(wǎng)站來說“要不接受要不拒絕”。每一種Web服務(wù)通常都會(huì)調(diào)用專門的單一函數(shù)對(duì)隨請(qǐng)求傳遞的證書進(jìn)行檢查。如果函數(shù)執(zhí)行結(jié)果表示沒有傳遞證書則Web服務(wù)失敗并且返回一條適當(dāng)?shù)腻e(cuò)誤消息。如果證書存在,那么函數(shù)功能則照常執(zhí)行。在這種情形下,數(shù)字證書同IP阻塞在服務(wù)器端的配置和維護(hù)的簡(jiǎn)易性方面倒是完全一樣的,而且配置非常靈活。

優(yōu)點(diǎn)

數(shù)字證書相比IP阻塞具有更為顯著的優(yōu)點(diǎn)。同用戶認(rèn)證一樣,對(duì)數(shù)字證書的安全檢查直到實(shí)際調(diào)用Web方法的時(shí)候才進(jìn)行。這樣服務(wù)的訪問者仍然可以查看Web服務(wù)的WSDL頁或者有關(guān)的網(wǎng)頁。這一優(yōu)點(diǎn)的好處在于,有關(guān)的方法不再需要包含安全檢查代碼。如果你忘記在Web方法中包括這些檢查代碼,則該方法對(duì)任何想使用它的人都可用。

因?yàn)槟惚仨氃诿總€(gè)Web方法中包含認(rèn)證代碼,所以許多開發(fā)者趁機(jī)拓展了以上描述數(shù)字證書的簡(jiǎn)單用途。數(shù)字證書能在客戶機(jī)上保存用戶個(gè)人的大概的信息,因此這些代碼在功能上類似于用戶認(rèn)證所需的代碼。通常包含在數(shù)字證書中的常見信息就是用戶的電子郵件地址。由于郵件地址的唯一性,所以它也可以很方便地用做數(shù)據(jù)庫內(nèi)的標(biāo)識(shí)鍵。而且,因?yàn)樽C書既安全又唯一,所以用戶無需提供口令。這樣一來,用戶這一方就不需要再做其他操作了,什么審核什么方法級(jí)的授權(quán)頁通通不需要用戶來關(guān)心了。這是提高用戶友好性的一大舉措。

缺點(diǎn)

數(shù)字證書的主要缺點(diǎn)就是安裝比較困難。大多數(shù)用戶很不情愿因?yàn)闉g覽某個(gè)網(wǎng)站就得下載并安裝數(shù)字證書,因此在某些狀況下(例如,B2B通訊和安全的內(nèi)聯(lián)網(wǎng))就限制了證書的可行性。數(shù)字證書還把用戶限制在了單一計(jì)算機(jī)上。即使我已經(jīng)在工作用計(jì)算機(jī)上安裝了一張數(shù)字證書,可我要想通過自家電腦訪問Web服務(wù)卻還得再安裝第二張證書。最后,數(shù)字證書從來不為認(rèn)證目的而從用戶那里獲取輸入信息;認(rèn)證的是某臺(tái)機(jī)器而非坐在這部機(jī)器前的人。如果某人坐在我的計(jì)算機(jī)旁,Web服務(wù)會(huì)假設(shè)是我正在使用服務(wù)。

繼續(xù)

在這一系列的最后一篇文章中,我們將主義比較以上三種保護(hù)付費(fèi)Web服務(wù)的安全技術(shù),然后,再討論下其他提供一般Web服務(wù)安全性的技術(shù)。

發(fā)布:2007-03-25 10:35    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
上海OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢