用戶認證
用戶認證是一種從數據庫到操作系統等各類軟件中都很常見的安全防范技術(參看圖A)。用戶認證從概念上來說是非常簡單的:系統的每一位用戶都被分配了一個唯一的用戶名。對關聯該用戶名的資源或功能的訪問都要接受特定口令的保護。因為大多數用戶已經非常習慣這種安全技術,所以普遍存在的用戶認證系統對Web服務的部署是非常有益的。不論你的Web服務是否正被其他Web開發人員或者一般公眾使用,這種安全機制都很容易得到理解。
圖A
用戶認證可以實現Web方法的單獨使用
給Web服務應用用戶認證安全機制非常簡單:每一種Web方法調用都要求額外的兩個參數即可,這就是用戶名和口令。只要調用了Web方法,第一步就是在數據庫中檢查用戶名是否存在。第二步則是保證所提供的口令同指定用戶名的口令匹配。如果這些檢查都得以通過,那么Web方法的操作也才可以繼續進行。如果在這些檢查步驟中哪怕只有一步過不去,則Web方法需要給主調函數發送錯誤消息。
我們可以對這種技術做一點小小的改進,這就是常見的用戶識別碼,通常的用戶識別碼就是一個全局唯一標識符(GUID)。在這種情況下,除了標準參數之外Web方法還會接受參數UserID。這種途徑同采用用戶名/口令組合機制同樣有效,這是因為GUID很難復制。在大多數情況下,隨機找出用戶的GUID比基于字符串的口令要難得多。因為許多數據庫都能自動地產生GUID,所以這也是最為流行的安全技術之一。不過,這一技術也不是沒有問題,其主要的缺點是用戶或者開發人員很難記得GUID,特別容易敲錯。
優點
用戶認證機制的主要優點是它可以為創造出更復雜的授權方案提供選擇。記住,所謂的認證(authentication)是證明用戶身份的過程,而授權(authorization)則是標識認證用戶可訪問資源的過程。由于每一種Web方法都認證提出請求的特定用戶,所以,創造出一種復雜的授權方案使得用戶只能使用部分Web方法是可能的。在這種情況下,證實用戶身份以后,每個Web方法都將檢查認證用戶是否有權訪問給定的Web方法。如果沒有相應的授權權限,那么就應該向用戶提出第3類錯誤信息。
缺點
當然,缺點也是有的。使用用戶認證方案最明顯的問題就是用戶在每次調用方法的時候必須包括一個或兩個附加參數。當服務器端Web應用(例如ASP或JSP)做這個工作時當然不算什么問題。然而,當人們通過WSDL頁或類似的前端直接調用Web方法時,這項工作就實在太令人感到乏味了。
另外還有個令人擔心的地方,在使用用戶認證時需要在Web服務器上存儲用戶名/口令。由于這些信息通常存放在數據庫里,所以需要額外的存儲空間和服務請求,這就影響了Web服務的性能。同時,存儲這類數據還可能把敏感的客戶信息暴露給企業職員和黑客。對那些把數據庫用做基本功能組成部分的Web服務而言,這一擔心倒還可以通過體系結構和開發的精心設計來解決。而對那些不需要數據庫的Web服務來說,僅僅是創造和維護用戶認證的代價就夠受得了。
數字證書
保護Web服務安全的另一種技術就是數字證書了。數字證書是安裝在客戶機上的小型軟件,其作用是驗證客戶的身份(參見圖B)。這種身份驗證工作由第三方來完成,例如Verisign公司就可以采用產業標準的加密技術為每個客戶創建一張唯一的證書。隨后,在客戶請求某種Web服務時證書也會被傳遞。Web服務對數字證書進行檢查并依此作出反應。
圖B
數字證書安全地識別用戶
數字證書在使用方式上類同于IP阻塞,對整個網站來說“要不接受要不拒絕”。每一種Web服務通常都會調用專門的單一函數對隨請求傳遞的證書進行檢查。如果函數執行結果表示沒有傳遞證書則Web服務失敗并且返回一條適當的錯誤消息。如果證書存在,那么函數功能則照常執行。在這種情形下,數字證書同IP阻塞在服務器端的配置和維護的簡易性方面倒是完全一樣的,而且配置非常靈活。
優點
數字證書相比IP阻塞具有更為顯著的優點。同用戶認證一樣,對數字證書的安全檢查直到實際調用Web方法的時候才進行。這樣服務的訪問者仍然可以查看Web服務的WSDL頁或者有關的網頁。這一優點的好處在于,有關的方法不再需要包含安全檢查代碼。如果你忘記在Web方法中包括這些檢查代碼,則該方法對任何想使用它的人都可用。
因為你必須在每個Web方法中包含認證代碼,所以許多開發者趁機拓展了以上描述數字證書的簡單用途。數字證書能在客戶機上保存用戶個人的大概的信息,因此這些代碼在功能上類似于用戶認證所需的代碼。通常包含在數字證書中的常見信息就是用戶的電子郵件地址。由于郵件地址的唯一性,所以它也可以很方便地用做數據庫內的標識鍵。而且,因為證書既安全又唯一,所以用戶無需提供口令。這樣一來,用戶這一方就不需要再做其他操作了,什么審核什么方法級的授權頁通通不需要用戶來關心了。這是提高用戶友好性的一大舉措。
缺點
數字證書的主要缺點就是安裝比較困難。大多數用戶很不情愿因為瀏覽某個網站就得下載并安裝數字證書,因此在某些狀況下(例如,B2B通訊和安全的內聯網)就限制了證書的可行性。數字證書還把用戶限制在了單一計算機上。即使我已經在工作用計算機上安裝了一張數字證書,可我要想通過自家電腦訪問Web服務卻還得再安裝第二張證書。最后,數字證書從來不為認證目的而從用戶那里獲取輸入信息;認證的是某臺機器而非坐在這部機器前的人。如果某人坐在我的計算機旁,Web服務會假設是我正在使用服務。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/
本文標題:用戶認證和數字證書為Web服務保安全