隨著移動商務從口號變為現實,交易安全性對移動使用者與無線應用開發人員成為重要議題。網路整體安全強度取決於最薄弱環節,移動商務網路中最弱一環是客戶端設備。無線訊號可截取本質與手持設備有限記憶體、運算能力,使無線系統極易受資料竊賊攻擊。但客戶端非唯一弱點。Web 服務技術成為網際網路重要組件,無線網路面臨全新弱點:Web 服務用開放通訊協定、在組織防火牆外運行,企業部署時造成實際安全威脅。解決方案正形成中,Web 服務本身可提供安全方案。新規範計劃標準化整合 XML 訊息傳遞的先進安全方案(Kerberos 認證授權、數位憑證、數位簽章、公/私鑰加密)。可互操作 Web 服務將這些方案作為產品服務供應商實用程式。但即使出現有希望方案,開發平台選擇對有效保護無線應用及網路仍舉足輕重。
本文重點討論 Java 2 Platform, Micro Edition(J2ME)開發優缺點。簡述 J2ME 基礎與優勢,深入研究基於 J2ME 應用相對於 WAP 與本機應用的潛在安全優勢,說明 J2ME 平台當前可用應用安全模型及對未來趨勢適宜性。提出增強 J2ME 應用網路與資料安全性可能方法。總結用 J2ME 技術開發用於最小無線設備高階安全應用可行性。全文主要集中當前與即將推出(2.0)MIDP 規範,假定 MIDP 為最廣泛使用的 J2ME 設定檔。因 Web 服務承諾在移動商務與無線安全發展扮演重要角色,全文討論包含 Web 服務技術,但不深入探討,詳細請參考參考資料。
用 Java 平台開發無線設備最大優點:產生可在多平台運行的可移植代碼。但各種無線設備在記憶體、處理能力、電池壽命、顯示器大小、網路頻寬等能力差異極大。無法將成熟機頂盒應用全功能移植至蜂巢式電話。即使類似設備(PDA、高階智慧型手機),建立可移植性常使一設備超負荷、另一利用不足。真正可移植性僅能在多組類似設備間實現。因認識到單一規格不適合所有設備,J2ME 設計在可移植性與可用性間取得平衡。
J2ME 分為配置與設定檔。配置包含一系列設備的 Java 語言核心庫。目前兩種配置:
每個配置上有多個設定檔。設定檔定義更高階、特定設備 API 庫,含 GUI、聯網、持久儲存 API。每設定檔有獨立運行環境,適合一系列類似設備。為特定設定檔寫的 Java 應用可在所有該設定檔支援的硬體/OS 平台移植。移動資訊設備設定檔(MIDP)與 PDA 設定檔是 CLDC 兩重要設定檔。基礎設定檔與個人設定檔是 CDC 兩重要設定檔。個人設定檔建構於基礎設定檔上,在高階 PDA 運行,配置完全兼容 Java 2 虛擬機實現。個人設定檔應用可利用所有基於 J2SE 領域的安全管理器、大量可用於 J2SE 應用的密碼學與安全庫。總之,個人設定檔提供成熟安全方案,類似 J2SE 應用方案。實現安全 MIDP 應用困難得多,因 CLDC 數學運算能力有限、底層設備處理能力不足。但 MIDP 設備使用最廣,故在該設備啟用安全應用重要。本文主要集中討論 MIDP 應用安全挑戰與當前可用或開發中方案。
經驗顯示:本機應用與 J2ME 應用均比無線應用協定(WAP)構建應用提供更多特性與安全性。但 WAP 是瘦客戶端開發協定,J2ME 是專用於智慧應用開發平台。無論用 J2ME 或本機技術構建,智慧應用比 WAP 應用多提供安全優勢:
Java 平台主要優點:允許編寫可移植應用。可移植性源於執行模型:運行時用 JVM 將 Java 位元碼處理成機器碼,在硬體上提供相容層。執行模型還引入本機應用缺乏的重要安全優勢:
智慧、注重可用性設計與 Java 內建執行模式賦予 J2ME 應用顯著效能與安全優勢。但 J2ME 不完美。後節研究 J2ME 安全框架優缺點,特別應用於 MIDP 應用。先研究應用安全性,繼續討論網路與資料安全性。
JVM 提供服務防止惡意代碼進入企業系統。位元碼驗證過程保證應用不存取記憶體空間或使用其域外資源,防止應用重載 Java 語言核心庫(繞過其他應用級安全措施方法)。但因高昂計算開銷,MIDP VM 不在運行時執行完整位元碼驗證。相反,應用開發人員必須在部署到移動設備前,在開發平台或預備區預先驗證類。預驗證優化執行流,建立應用中包含指令目錄的堆疊映射,加入經預驗證類檔。運行時 MIDP VM 迅速線性掃描位元碼,將每個有效指令與適合堆疊映射項匹配。
因 MIDP 缺乏完整安全模型,為將潛在安全風險降至最低,禁用部分 J2SE 特性。如防止非法重載核心類,MIDP VM 不允許使用者定義類載入器。MIDP 也不支援 Java Native Interface (JNI) 或反射。即使採取適當安全措施,非所有通過位元碼驗證代碼都被允許運行。代碼簽章是 J2ME 應用安全策略下一重要元素。
參考 Java Applet 使用數位簽章與安全沙箱確保網路代碼安全:
註:每個權限域包含存取特定 API 規則集。如不允許來自較不瞭解來源應用讀/寫本地儲存裝置或建立任意網路連線。可用相同方式對基於 J2ME/CDC 移動代碼簽章發送。理論上也可同樣保護 MIDP 應用。但因處理能力與記憶體有限,MIDP 1.0 規範中尚不可用基於域安全管理器。當前 MIDP VM 僅提供最小安全沙箱。如 MIDlet 套件只能存取自己創建的持久記錄存儲。即將推出 MIDP 2.0 規範將需支援域安全模型,含基於域安全管理器、應用代碼簽章、數位憑證驗證功能。為更好支援安全移動代碼保障,MIDP 2.0 將正式包含無線下載(OTA)保障規範。MIDP 2.0 OTA 規範描述誰擁有安裝刪除無線應用權限;什麼操作必須使用者確認、哪些可自動完成;必須向使用者提供哪些警告;更新應用時共享哪些資料。
可透過建立點對點安全連線保證網路與資料安全性。如 SSL/TLS(安全通訊協定)允許在網際網路主機間開啟安全通訊端。連線握手時,SSL 利用公鑰演算法與數位憑證在陌生各方間建立信任、交換當前會話私鑰。於是 SSL 通訊雙方用快速私鑰演算法加密解密通訊資料。SSL 協定支援認證、資料完整性、機密性。電子商務應用中,基於 SSL 的安全 HTTP(HTTPS)已成傳輸敏感資料標準協定。
J2SE 以通用連接框架提供優秀透明 HTTPS 支援。所有 J2ME/CDC 應用有權存取 HTTPS 功能,但 MIDP 1.0 規範不正式要求 HTTPS 支援。考慮 HTTPS 在移動商務顯而易見重要性,許多 MIDP 設備供應商已將 HTTPS 支援加入自家 MIDP 運行時實現。Sun Microsystems 也在 J2ME Wireless Toolkit 1.0.2 及後續版本加入 HTTPS 支援。即將推出 MIDP 2.0 規範中,HTTPS 支援將成正式需求。
雖 HTTPS/SSL 協定流行強大,但原為有線網際網路設計。將 SSL 應用於新一代動態無線應用時,出現嚴重問題:
J2ME 應用可在 HTTP 協定上用 XML 資料格式與後端伺服器及其他 J2ME 應用通訊。遺憾額外標籤使 XML 對有限無線頻寬成相當龐大格式。儘管如此,XML 提供重要優勢:極健壯、易被人理解的訊息格式,也是新一代開放、可互操作 Web 服務選定通訊資料格式。故使用 J2ME 無線設備必須有處理 XML 能力以存取 Web 服務世界。此時 XML 優勢遠勝頻寬開銷。
MIDP 應用支援 XML 困難,因 CLDC 基礎類字串功能有限。幸運的是,MIDP 應用已有幾個第三方輕量級 XML 解析器可用。kXML 套件(Enhydra 開發)提供簡單 API for XML (SAX) 與有限 Document Object Model (DOM) 能力。kXML 還包含特殊工具 kSOAP,用於為 Web 服務解析 SOAP 訊息。原計劃內建輕量級 XML 解析支援用於 MIDP 2.0 規範,近期變更計劃。JSR 118 專家組決定在即將推出 JSR 172 J2ME Web 服務規範(參考資料)包含 XML 解析支援,該規範還將包含用於 CDC 與 CLDC 應用的基於 XML 遠程程序呼叫(RPC)。
XML 是 J2ME 無線應用與後端服務間資料通訊選定格式。為提供端對端安全,需確保 XML 文檔安全。故需特殊 XML 標準將安全性中繼資訊關聯單個文檔。已提出幾個 XML 安全協定支援 XML 應用通訊資料安全性:
所有上述安全協定可綁定至 Web 服務訊息傳遞協定。如將 SAML 片段嵌入 SOAP 訊息頭認證授權所請求服務存取;將 XML 數位簽章片段嵌入 SOAP 頭認證訊息中信用卡號。因缺乏 XML 與密碼 API,當前 MIDP 1.0 規範不支援安全 XML 標準。實際上即使 MIDP 2.0 也不包含通用密碼 API。使開發人員只能仰賴第三方庫(如 Bouncy Castle 輕量級密碼學套件)在 MIDP 應用支援安全 XML。對 CDC 與 CLDC 設備,JSR 177 提出用 SIM 卡的安全性與信任服務 API。結合 SAML 或 WS-Security,新 API 能支援自動識別與單點登入 Web 服務。
雖情況複雜,仍可結論:相較 WAP 與本機應用開發方式,J2ME 確實提供許多優勢,含安全優勢。高階 CDC 個人設定檔賦予無線應用 J2SE 全部功能,大多數情況下含嚴格安全需求下實現成熟應用能力。安全性 API 方面,當前 MIDP 1.0 規範支援不足。但在第三方庫與廠商支援幫助下,發現可用 MIDP 1.0 實現安全應用。即將推出 MIDP 2.0 規範承諾提供核心安全 API 組,應允許創建具更高階靈活安全特性的移動商務應用。開發移動商務應用時,最重要考量因素之一是它們將如何適應 Web 服務領域。Web 服務技術快速發展,整個網際網路領域隨之發展。本文花時間討論應用於基於 J2ME 應用開發的 Web 服務技術。鼓勵您從參考資料部分參考資料開始,深入研究此主題。