0 引言
網絡的出現,方便了信息的流動.降低了人與人之間,以及企業之間信息流動的成本。為了充分發揮網絡在信息交互過程中的作用,就需要在網絡基礎架構之上,構建各式各樣的網絡服務,以支撐日常的應用。目前各式各樣的網絡應用隨處可見,但是多為封閉的系統.而為了更好的支持各種應用場景.經常需要對多個系統進行集成,在多個服務之間進行數據交換,協作完成共同的任務。Web Service正是為了處理這一問題而提出的構建在現有網絡標準之上的、松耦合、跨平臺、跨語言的數據交換和通信的標準方法。
Web Service系統利用互聯網為用戶提供服務,但是其關注與構建系統之間通信的協議,專注于數據描述(XML)和交換(SOAP),以及服務的描述(WSDL)與發布(UDDI),而對安全性的支持較為欠缺,使軟件處于巨大的風險之中,需要在應用中加以解決。
1 Web Service安全問題描述
在日常應用中,Web Service的安全威脅主要來自以下幾方面:
(1)數據的保密性無法保證
在網絡安全中,要求信息不能夠泄漏給未經授權的用戶及惡意訪問者,而Web Service運行在Internet之上,利用XML定義數據交換的格式,并利用SOAP進行數據交換.整個過程都是通過網絡明文進行傳輸,容易被惡意用戶監聽和竊取。另外,由于Web Service的接口描述暴露在網絡之上,也存在被惡意用戶惡意調用的可能。
(2)數據的完整性無法保證
信息的完整性.要確保信息不會被未被授權用戶修改,確保信息在存儲、傳輸過程中不被修改、偽造和丟棄。而Web Service數據交換過程采用明文傳輸,該特性使得數據的完整性無法保證,能夠被惡意用戶修改,或偽造。
另外,在Web Service中沒有提供相關的方法,對用戶的身份進行必要的校驗,也缺乏必要的權限控制,容易造成未授權操作,從而泄漏系統的信息,甚至危及系統的安全。
(3)缺乏必要的身份驗證機制
Web Services并未定義相關的方法,對調用方以及服務提供方的身份進行必要的確認,從而無法保證Web服務的合法性,危及系統的安全。
(4)缺乏可擴展可靈活部署的加密方法
在日常的應用中.通常采用SSL協議,對Web Service數據傳輸過程進行加密和保護,但是利用SSL進行加密操作時,會頻繁的進行加密解密操作,從而影響系統的通信性能,降低系統的性能。該問題在PDM系統中表現尤為突出。PDM系統中傳輸的多為體積龐大的工程設計文件,采用SSL的方法,會對系統的性能帶來極大的影響。而在處理用戶登錄信息、密鑰傳輸等問題時,SSL又是一個成熟的方法。因此在應用中需要更具實際情況,靈活的選擇加密方法。
針對以上問題.在綜合考慮了可使用性、性能、私密性等因素后,設計和實現了一套傳輸層加密方法,根據PDM系統的特點,針對不同的需要,采用不同的方法對數據進行加密操作,并應用在了實際的PDM系統中。
2 傳輸層加密方法
2.1 概述
在PDM(Product Data Management,產品數據管理)系統中,主要需要面對兩種數據。一種是設計的文檔、圖紙等二進制數據信息,這些數據數據量大,變化較快,并且這些數據往往具有一定的時間效應.只需要保證一定的時效范圍內不被破解.無法獲取即可,因此,針對這部分數據,可以采用簡單的加密方式,確保在可容忍的時間范圍內,無法被破解即可。因此在傳送大數量信息時,采用了RC2加密算法進行加密操作.其特點是加解密速度快,而且形成的加密文件體積并不會增大。在加密的過程中,如果傳輸的是比較大的圖紙類文件,要先進行壓縮。如果是數據庫的表文件,則轉換成XML文件,然后再進行加密。
除文檔數據外,主要為系統內部的通信協作及信息交換,相比設計文檔數據,這部分數據數據量小,但經常包含較為敏感的用戶信息,如密鑰信息、權限信息等,針對這部分數據,需要進行較為嚴格的加密,確保訪問時經過授權,且無法被監聽與破解。兼顧到身份驗證的需要,這部分基于開源的CA中心,對用戶證書進行發放和管理。在數據通信過程中,利用證書對交換的信息進行加密操作,從而保證數據的完整性。
傳輸層加密的體系結構如圖1所示。
圖1 傳輸層加解密體系結構
圖中,業務邏輯為實際的應用邏輯,在傳輸過程中,會調用下層的安全服務,對傳輸數據進行處理,確保服務的安全性。
安全服務模塊為系統提供加密解密服務及數字簽名的校驗,向應用的業務邏輯提供安全服務。安全模塊具備RSA、RC2和M123三套數據加解密方法組。其中,M123加解密方法是一個自定義的對稱密鑰加密算法,該算法利用三個數字(m1,m2,m3)作為密鑰,利用自定義的加密算法,根據(m1,m2,m3)生成相應的密文,同時在每次加密后,利用Feistel結構,對密鑰進行混淆和輪替。M123加密方法主要用于對交換的密鑰進行加密,增加密鑰交換的安全性。
密鑰及證書管理模塊主要負責處理證書的請求,密鑰交換。對稱密鑰管理模塊主要用于對稱密鑰的生成及管理,證書文件主要用于獲取本身私鑰及向CA請求上層安全模塊需要的證書信息。
2.2 服務器端密鑰生成及交換
服務端在服務啟動后,會隨機生成RC2加密密鑰和M123加密密鑰。在密鑰生成過程中,為了避免偽隨機帶來的問題,會利用隨機數、機器碼、機器時鐘、加密算法的名稱及當前時間綜合生成源串,對該源串利用MD5算法生成摘要后,作為密鑰。
在每個用戶登錄后,服務端向證書中心請求該用戶的證書信息,利用證書對RC2加密密鑰和M123加密密鑰進行加密,并對加密后的數據進行簽名,后發送給用戶,用于用戶的密鑰交換。
服務器端的密鑰生成及交換過程如圖2所示。
圖2 服務器端的密鑰生成及交換過程
為了提高系統的安全性,對于服務器端的對稱加密密鑰均設置了超時時間,當超時后,服務器端會重新生成新的密鑰。
2.3 客戶端密鑰請求及交換流程
客戶端在登錄后.會接收服務器端發送的RC2密鑰和M123密鑰,同時在每次請求是隨機生成RC2密鑰�?蛻舳穗S機數生成的過程中的源碼,除了與服務器端相同的因素外,還增加了用戶名、用戶密碼的md5值及客戶端ip等信息,以增大隨機性及源碼的復雜度。
客戶端密鑰交換的過程中,會利用服務端的RC2密鑰和M123密鑰對生成的RC2密鑰進行加密,并做數字簽名后,附加在請求中,發送給服務端。在此過程中,并未利用服務端證書對加密后的密鑰信息進行再次加密,是為了避免頻繁的密鑰交換給服務器帶來過大的壓力。客戶端的密鑰生成及交換過程如圖3所示。
圖3 客戶端的密鑰生成及交換過程
同樣,為了保證安全性,客戶端的密鑰也規定了一定的有效時間,會定時進行更新�?蛻舳说拿荑用于加密客戶端與服務器間的每次請求。
2.4 整體流程分析
下面將對本方法的整體流程其進行詳細描述。
(1)服務端生成加密密鑰
服務端啟動服務的時,會自動生成RC2密鑰及M123密鑰。
(2)客戶登錄并獲取服務器端加密密鑰
客戶在登錄時,會對登錄密碼進行摘要操作,并利用服務器端證書文件加密密鑰信息,傳輸給服務端,服務端對解密并驗證密碼通過后,服務端將獲取該用戶的證書文件,加密密鑰傳遞給客戶方。
(3)客戶端請求業務處理
當客戶在一段時間內,第一次發起請求時,客戶端生成隨機的RC2密鑰,利用該RC2密鑰對請求進行加密,同時利用服務端的RC2密鑰及M123密鑰對客戶端的RC2密鑰進行加密,附加在請求信息中發送給服務方。此過程中,需要對信息整體添加數字簽名。
(4)服務端響應請求
服務方收到請求后,利用自身保留的RC2密鑰及M123密鑰,解密報文巾的密鑰信息,獲取客戶端的RC2密鑰,利用客戶湍的RC2密鑰解密請求內容,并進行處理。完成處理邏輯后,服務端利用客戶端的RC2密鑰加密結果,并添加簽名信息后,將數據返回客戶端。
3 總結
利用該方案,減少了加密及解密過程中的數據交換,同時確保了關鍵信息的保密性、完整性,確保了web Service整個請求過程中的安全性。選取該方案的主要優勢在于:
(1)性能好:在用戶登錄時,以及小數據量的交換時,使用RSA加密,整體速度不受影響,經測試能達到客戶要求。
(2)安全性好:由于密鑰具有一定的時效性,攻擊者即使截獲了一個文件并成功解密,也無法利用一直的密鑰,解密以后數據。
(3)加密流程是自定義:如果不了解具體項目傳輸層加密的思想,即使截獲了數據,也很難利用通常的思維進行解密,加大了解密的難度。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/