用戶認(rèn)證
用戶認(rèn)證是一種從數(shù)據(jù)庫(kù)到操作系統(tǒng)等各類軟件中都很常見(jiàn)的安全防范技術(shù)(參看圖A)。用戶認(rèn)證從概念上來(lái)說(shuō)是非常簡(jiǎn)單的:系統(tǒng)的每一位用戶都被分配了一個(gè)唯一的用戶名。對(duì)關(guān)聯(lián)該用戶名的資源或功能的訪問(wèn)都要接受特定口令的保護(hù)。因?yàn)榇蠖鄶?shù)用戶已經(jīng)非常習(xí)慣這種安全技術(shù),所以普遍存在的用戶認(rèn)證系統(tǒng)對(duì)Web服務(wù)的部署是非常有益的。不論你的Web服務(wù)是否正被其他Web開(kāi)發(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ù)庫(kù)中檢查用戶名是否存在。第二步則是保證所提供的口令同指定用戶名的口令匹配。如果這些檢查都得以通過(guò),那么Web方法的操作也才可以繼續(xù)進(jìn)行。如果在這些檢查步驟中哪怕只有一步過(guò)不去,則Web方法需要給主調(diào)函數(shù)發(fā)送錯(cuò)誤消息。
我們可以對(duì)這種技術(shù)做一點(diǎn)小小的改進(jìn),這就是常見(jià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ù)庫(kù)都能自動(dòng)地產(chǎn)生GUID,所以這也是最為流行的安全技術(shù)之一。不過(guò),這一技術(shù)也不是沒(méi)有問(wèn)題,其主要的缺點(diǎn)是用戶或者開(kāi)發(fā)人員很難記得GUID,特別容易敲錯(cuò)。
優(yōu)點(diǎn)
用戶認(rèn)證機(jī)制的主要優(yōu)點(diǎn)是它可以為創(chuàng)造出更復(fù)雜的授權(quán)方案提供選擇。記住,所謂的認(rèn)證(authentication)是證明用戶身份的過(guò)程,而授權(quán)(authorization)則是標(biāo)識(shí)認(rèn)證用戶可訪問(wèn)資源的過(guò)程。由于每一種Web方法都認(rèn)證提出請(qǐng)求的特定用戶,所以,創(chuàng)造出一種復(fù)雜的授權(quán)方案使得用戶只能使用部分Web方法是可能的。在這種情況下,證實(shí)用戶身份以后,每個(gè)Web方法都將檢查認(rèn)證用戶是否有權(quán)訪問(wèn)給定的Web方法。如果沒(méi)有相應(yīng)的授權(quán)權(quán)限,那么就應(yīng)該向用戶提出第3類錯(cuò)誤信息。
缺點(diǎn)
當(dāng)然,缺點(diǎn)也是有的。使用用戶認(rèn)證方案最明顯的問(wèn)題就是用戶在每次調(diào)用方法的時(shí)候必須包括一個(gè)或兩個(gè)附加參數(shù)。當(dāng)服務(wù)器端Web應(yīng)用(例如ASP或JSP)做這個(gè)工作時(shí)當(dāng)然不算什么問(wèn)題。然而,當(dāng)人們通過(guò)WSDL頁(yè)或類似的前端直接調(diào)用Web方法時(shí),這項(xiàng)工作就實(shí)在太令人感到乏味了。
另外還有個(gè)令人擔(dān)心的地方,在使用用戶認(rèn)證時(shí)需要在Web服務(wù)器上存儲(chǔ)用戶名/口令。由于這些信息通常存放在數(shù)據(jù)庫(kù)里,所以需要額外的存儲(chǔ)空間和服務(wù)請(qǐng)求,這就影響了Web服務(wù)的性能。同時(shí),存儲(chǔ)這類數(shù)據(jù)還可能把敏感的客戶信息暴露給企業(yè)職員和黑客。對(duì)那些把數(shù)據(jù)庫(kù)用做基本功能組成部分的Web服務(wù)而言,這一擔(dān)心倒還可以通過(guò)體系結(jié)構(gòu)和開(kāi)發(fā)的精心設(shè)計(jì)來(lái)解決。而對(duì)那些不需要數(shù)據(jù)庫(kù)的Web服務(wù)來(lái)說(shuō),僅僅是創(chuàng)造和維護(hù)用戶認(rèn)證的代價(jià)就夠受得了。
數(shù)字證書
保護(hù)Web服務(wù)安全的另一種技術(shù)就是數(shù)字證書了。數(shù)字證書是安裝在客戶機(jī)上的小型軟件,其作用是驗(yàn)證客戶的身份(參見(jiàn)圖B)。這種身份驗(yàn)證工作由第三方來(lái)完成,例如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)站來(lái)說(shuō)“要不接受要不拒絕”。每一種Web服務(wù)通常都會(huì)調(diào)用專門的單一函數(shù)對(duì)隨請(qǐng)求傳遞的證書進(jìn)行檢查。如果函數(shù)執(zhí)行結(jié)果表示沒(méi)有傳遞證書則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ù)的訪問(wèn)者仍然可以查看Web服務(wù)的WSDL頁(yè)或者有關(guān)的網(wǎng)頁(yè)。這一優(yōu)點(diǎn)的好處在于,有關(guān)的方法不再需要包含安全檢查代碼。如果你忘記在Web方法中包括這些檢查代碼,則該方法對(duì)任何想使用它的人都可用。
因?yàn)槟惚仨氃诿總(gè)Web方法中包含認(rèn)證代碼,所以許多開(kāi)發(fā)者趁機(jī)拓展了以上描述數(shù)字證書的簡(jiǎn)單用途。數(shù)字證書能在客戶機(jī)上保存用戶個(gè)人的大概的信息,因此這些代碼在功能上類似于用戶認(rèn)證所需的代碼。通常包含在數(shù)字證書中的常見(jiàn)信息就是用戶的電子郵件地址。由于郵件地址的唯一性,所以它也可以很方便地用做數(shù)據(jù)庫(kù)內(nèi)的標(biāo)識(shí)鍵。而且,因?yàn)樽C書既安全又唯一,所以用戶無(wú)需提供口令。這樣一來(lái),用戶這一方就不需要再做其他操作了,什么審核什么方法級(jí)的授權(quán)頁(yè)通通不需要用戶來(lái)關(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ù)字證書,可我要想通過(guò)自家電腦訪問(wèn)Web服務(wù)卻還得再安裝第二張證書。最后,數(shù)字證書從來(lái)不為認(rèn)證目的而從用戶那里獲取輸入信息;認(rèn)證的是某臺(tái)機(jī)器而非坐在這部機(jī)器前的人。如果某人坐在我的計(jì)算機(jī)旁,Web服務(wù)會(huì)假設(shè)是我正在使用服務(wù)。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:用戶認(rèn)證和數(shù)字證書為Web服務(wù)保安全
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112189505.html