軟體開發 Web Service Security (1)

基本介紹

教學目標

雲端運算與 Web Service 是有關聯性,一般來說,新技術的專有名詞,背後一定有歷史的演進,IT 技術是根據商業環境所做的改變,因此當學習新技術時,要同時學習技術的來源,如何使用技術以及技術未來的趨勢發展。

重點概念

企業應用

在使用 Web Service 之前,皆是透過中介軟體使得企業系統之間很順利的傳遞資料,例如: RMI 和 CORBA ,但系統之間是如何傳遞資料的呢?更進一步的探討,伺服器 A 要如何將資料傳送給伺服器 B 呢?先想辦法建立連線,簡單來說可以伺服器 A 先遠端登入,將檔案傳送到遠端,儲存在共享資料夾,在分享給對方,但是要手動,且伺服器 B 是否能正常且安全的開啟就無從得知,所以是否能自動化。

要考量如何傳送大量資訊,伺服器 A 是否能確保資訊已經正確完整傳送給伺服器 B,所以 Web Service 主要是伺服器與伺服器進行傳送大量的資訊,搭配時間的配置,達到全自動的
資訊傳送。

一般來說接生意訂單的流程,在大公司會經過許多的伺服器,而要如何透過中介軟體讓伺服器間彼此能正常溝通,或者透過 Web Service 為企業進行改進,使得 IT 人員藉由在配合商業模式改變,為企業產生更高的收益,讓 IT 人員產生更高的價值,除了技術之外還需考量 Global Localization,更進一步了解當地文化、避免完全橫向移植,以及保留被併購企業的核心價值。

當商業行為改變時,會有新的商業模式和環境,當流程系統的管理是 Web-based 則要使用 Web Service ,也就是 Workflow Management Applications,此外當需要減少溝通的成本,增加利潤,事先得知資訊和警訊,則必需要與內部的系統或上下流廠商要進行整合,也就是 Involve multi-domains (公司部門和相關公司),要如何在國際間上中下流相關廠商更有效的提供更詳細的資訊進行溝通,則必須使用 Web Service ,當有商業環境的需求,則 Web Service 將可以達到彈性的符合下一代商業環境的需求,帶來更多的效益。

此外對於 IT 專業人員而言,互通性就和安全性和可靠性一樣重要。這是由於技術異質性的增加,導致其 IT 基礎結構的內部和邊緣有更大的複雜性。當組織試圖將處理程序效能最佳化時,就帶來更大的資料和資訊整合上的需求。異質性也導致必須確保其解決方案可以成功 地運作於混合的 IT 環境中的資訊技術廠商更大的需求。為了滿足這些需求,解決互通性,以便更完善地連接人員、資料和不同的系統。

設計實作

但一般在設計實作 Web Service 時,皆會假設的環境是有一台伺服器,所有與伺服器與其有連線的電腦,就是公司的電腦,能存取伺服器的使用者,就是公司的使用者,但真的安全嗎?當與不確定來源伺服器的存取,則 Security Model 就必須做改變,或者當應因全球化的商業模式,則內部伺服器必須將資料傳送給外部伺服器,就必須考量資訊安全策略的問題,而要設計實作符合資訊安全的 Web Service ,最基本要確保三個特性。

  1. 機密性 (Confidentiality) ,基本應用就是加密 (Crypto)。
  2. 完整性 (Integrity) ,基本應用就是雜湊 (Hash)。
  3. 可用性 (Availability) ,基本應用就是避免被攻擊 (DoS)。

可用性在軟體工程中,則是談能提供服務的時間,在可信賴系統中,主要談容錯的問題。

接著 Web Service 不是做網站,不是有人在半自動的使用,而是伺服器進行全自動化的使用,但若是從應用程式的角度來看,就必須考慮識別確認 (Identification)、驗證檢查 (Authentication),以及授權權限 (Authorization),最後在使用 Web Service 必須先確認 Service Provider,接著再檢查提供的資訊是否正確,並且確認安全目標。

  1. 要提供訊息完整和機密的安全機制 (Mechanisms)。
  2. 確保服務的結果,要符合相關協定政策 (Policies)。
  3. 當資訊被搜尋時,必須是正確且被授權的 (Service Discovery)。

相關議題

此外研究安全議題,個人和伺服器的隱私,是最近幾年的趨勢,是一體兩面,當要提供 Web Service 則必需確認身份,但當伺服器儲存夠多的資訊,則會侵犯隱私,因此這不僅是技術能解決的問題,還需從管理政策方面去考量。主要透過加解密保護隱私,有機制可讓使用者進行同意,此外每個人的隱私標準不一致,最後當使用隱私相關資訊時,事後若有需求,則要強制刪除相關記錄。

最後再根據 OWASP 的 Web Service Security Cheat Sheet 在開發安全 Web Service 進行確認。

相關資源