如何保障企業級SOA的信息安全?
毋庸諱言,“安全”是當前信息技術應用領域熱門話題之一,無論是操作系統,還是應用軟件,安全總是作為一項重要考量,特別是在商業應用領域,信息安全是業務運作的基本要求之一。企業級SOA在提供價值鏈上企業之間信息共享和業務流程自動化的同時,也對信息安全提出新的挑戰。
基于企業級SOA更加容易實現跨越企業邊界的業務系統自動化和信息共享,開放的數據訪問和網絡服務調用給商業運作帶來便利,同時也更加容易受到攻擊,如果沒有提供良好的安全防護機制,開放網絡服務無疑等于打開了潘多拉寶盒。
網絡服務最常見的安全隱患大概就是信息泄露和欺詐,如果你和你的合作伙伴之間交易的敏感信息被競爭對手獲得,如果有人在網絡上以你的名義向你的供應商發送訂單,如果來自合作伙伴的發貨請求被人篡改,等等,所有這些都是商業活動中不希望發生的。當然,也不用為此因噎廢食,企業級SOA在一開始就應當考慮信息安全保證,在技術手段方面有各種有效的防范措施可選用。
針對信息泄露的問題,防范措施是多層次的。首先,要部署安全的網絡通訊基礎架構,特別是通過Internet的通訊,例如:采用加密和認證技術,在公共網絡上建立安全專用隧道的網絡,也就是常說的VPN;其次,網絡服務的訪問大多數通過HTTP協議,HTTP上實現的安全套接字層 (SecurITy Socket Layer, SSL)也是成熟的安全通訊方式;還有,針對XML處理專門制定的消息級別的XML加密和處理標準,它把消息轉換為一段經過加密的XML,消息仍然是XML格式的,但是使用加密算法將內容隱藏起。
這樣做的好處在于在獲得了安全性的同時系統仍然基于開放標準編碼XML消息,接收消息的系統可以把它當作XML來接收、解密和處理,而不依賴于定制或專有的消息傳遞標準。
針對欺詐問題,通過身份認證和消息的數字簽名來解決。身份認證保證授權的用戶能夠進行被授權的資源訪問。企業級SOA中身份認證不局限于單一安全控制域,往往需要實現跨企業安全控制域的認證活動,安全斷言標記語言(SecurITy Assertion Markup Language,SAML)標準提供了不同安全域之間認證的交互,通過一個標準的認證過程,多方可以達成一致,使用一組給定的標準來對一組指定的用戶進行身份驗證,參加這個過程的安全域組成一個身份聯邦(Identity Federation)。
聯邦身份認證結果以斷言方式加載在消息中,各個安全域都承認認證結果的合法性,所以安全斷言也實現了單點登錄,消息獲得的安全斷言,在整個身份聯邦中都是有效的,無需重復認證。除此之外,企業級SOA還引入網絡服務信賴(Web Service Trust)標準用以交換安全斷言令牌,再加上擴展訪問控制標記語言(eXtensible Access Control Markup Language, XACML)標準用以描述授權政策和規范授權決策處理,這些構成了完整的身份認證防線。
消息的數字簽名保證消息真正創建者身份的真實性以及消息在發送系統到接受系統之間傳輸時未被篡改。數字簽名是一種消息級的安全措施,它結合了數字證書密鑰和加密等安全方法。數字簽名是對身份和消息內容進行惟一的處理得到的一個基于密鑰的非常大的數。
舉一個簡單的例子來說明,如果你擁有一對密鑰(私有密鑰123和公有密鑰456),要發送消息ABC,對消息ABC的數字簽名就是用密鑰123對消息運行一個特殊的算法,得到唯一的一個數字x。
當消息ABC和數字簽名x到達接收方后,接收方能夠用你的公有密鑰456來驗證你是消息的真正創建者以及消息在傳輸過程中沒有改變。如果消息被改變了,那么惟一的數字簽名將不再與密鑰和用于創建密鑰的原始消息相匹配。
為此,數字簽名提供了個不可否認性,例如,數字簽名可以證明你的供應商收到的電子訂單確實是由你發出而且在傳輸中沒有被篡改過。針對企業級SOA,專門制定了處理XML消息級別的XML數字簽名標準。
上述措施已經公布為標準的部分,SAP NetWeaver平臺都能支持,用戶可以根據企業應用實際需要綜合運用上述手段為企業級SOA的信息安全提供保證。如同所有的安全問題一樣,企業級SOA的信息安全保證,在依賴足夠技術防護手段之外,最大的保證還是人的問題,由專業的人員制定合理的安全控制策略,配合全員安全意識提高,再輔以上面提到的種種技術手段運用,才能建立起企業級SOA信息安全保證的“萬里長城”。
【編輯推薦】