信息系統安全——Web Service的安全調用

前言

信息化已經深入國家行政機關、企事業實際業務之中,下屬機構通過信息系統服務接口,定期向上級單位或監管部門提供業務數據、調查數據。在實際調用過程中,比較常用的是Web Service方法來傳遞數據,本篇就討論此接口的安全調用。

瞭解Web Service

這裡涉及到軟件開發的知識,能使得運行在不同機器上的不同應用無須藉助附加的、專門的第三方軟件或硬件, 就可相互交換數據或集成。簡單的說就是在兩個不同的軟件項目間,搭建數據傳輸的方法。Web Service也很容易部署, 因為它們基於一些常規的產業標準以及已有的一些技術,諸如標準通用標記語言下的子集XML、HTTP。Web Service減少了應用接口的花費。

信息系統安全——Web Service的安全調用

威脅Web Service

Web Services是在開放的Internet上運行的,這種環境即使受到防火牆的保護,也依然會受到黑客、計算機病毒的攻擊。而且在商業環境中,每個Web服務的狀態都可能涉及經濟利益和商業機密,如網絡購物服務中有電子貨幣信息;信息查詢服務中有商業機密(如價格、貨物種類等)。在Web Services運行過程中,對其狀態的非法讀取和惡意修改都將對安全性構成嚴重的威脅。

眾所周知,Web服務是使用XML進行數據交換的,而XML在默認情況下是明文編碼的;同時,大部分Web服務使用HTTP協議作為傳輸協議,同樣,HTTP也是使用明文方式來傳輸數據的。這就造成了在不加密的傳輸協議上傳輸不加密的信息,從而使信息傳輸的保密性受到威脅。比如,接口服務被非法調用,通過接口服務對數據進行篡改、信息系統入侵。儘管在生產環境中,大多數都建立VPN通道來承載接口調用,但依託於VPN機制進行內部攻擊的情況還是無法杜絕。所以,關鍵應在Web Service服務端建立認證機制,從源頭上解決非法調用的漏洞。

那麼,從哪些方面來保障調用的安全性呢?我們來參下《網絡等級保護標準2.0》,Web Service的調用,已經跨越了網絡和通信安全範疇,對它安全技術的參考範疇主要集中在設備和計算安全、應用和數據安全層級上。上圖中,在技術要求部分,通過身份鑑別和訪問控制方面,進行對訪問Web Service資源權限的控制。本篇也會通過列舉

身份鑑別和訪問控制兩個方案,來部署安全的Web Service調用。如果你對軟件工程瞭解,更加容易理解本篇內容。

訪問控制

在這裡,我叫它代碼安全。完全通過代碼的方式來建立訪問控制認證。最常用的是使用 SoapHeader(SOAP 標頭)自定義訪問控制,SoapHeader 多數情況下用來傳遞用戶身份驗證信息。下面,我將介紹如何編寫訪問控制。

首先,我們先部署一個Web Service服務,這裡用到Windows IIS。

1、Web Service站點部署

>編寫一個Web Service服務代碼,兩三年沒寫過代碼了,好親切啊!

信息系統安全——Web Service的安全調用

>在IIS建立站點:

信息系統安全——Web Service的安全調用

把先前生成的代碼,複製到站點目錄中。同時將身份驗證改為匿名認證。

信息系統安全——Web Service的安全調用

>在瀏覽器中打開.asmx文件,如果顯示下圖,Web Service部署成功

信息系統安全——Web Service的安全調用

2、編寫Web Service訪問控制

>在Web Service項目中,建立MySoapHeader.cs類文件,用以初始化登陸信息

信息系統安全——Web Service的安全調用

>在調用服務前,加入用戶訪問控制

信息系統安全——Web Service的安全調用

上圖中,只有用戶名和密碼都為test,才可以調用,這裡也可以擴展為生物識別方法。

3、客戶端調用

這裡,我們分別使用正確和錯誤的信息

信息系統安全——Web Service的安全調用

信息系統安全——Web Service的安全調用

信息系統安全——Web Service的安全調用

只有提供正確的登錄信息才能調用相應服務。

身份鑑別

這種方案,是基於 Windows身份驗證為Web services 配置傳輸層安全機制。當你通過 HTTP 協議去訪問一個使用 Windows身份驗證保護的資源時,服務器通常會在 HTTP 請求的 Response 中加入一個"401 需要身份驗證"的 Header,來通知客戶提供用戶憑證,以使用資源。如果你正在使用 Internet Explorer 或者 Mozilla Firefox 這樣的可視化瀏覽器來訪問需要認證的資源,瀏覽器會彈出一個窗口,讓你輸入用戶名和密碼,如果所輸入的用戶名在資源使用者的驗證列表,並且密碼完全正確,此時,用戶才可以訪問受限的資源。

信息系統安全——Web Service的安全調用

>認證基本流程

信息系統安全——Web Service的安全調用

>Web services 客戶端訪問受限 Web services 服務流程

信息系統安全——Web Service的安全調用

下面就介紹下如何部署基於Windows身份驗證的Web Service服務。

>首先,需要在操作系統建立一個用戶,用來做身份驗證。本例用戶名為wsuser。

>在IIS管理器中配置身份驗證為Windows身份驗證

信息系統安全——Web Service的安全調用

>客戶端編寫服務認證

信息系統安全——Web Service的安全調用

> 客戶端調用

信息系統安全——Web Service的安全調用

這裡,我們使用正確window用戶信息

信息系統安全——Web Service的安全調用

信息系統安全——Web Service的安全調用



分享到:


相關文章: