觀點

手機應用程式安裝程式碼簽章 帶來安心下載

2011 / 05 / 09
Jay Schiavo
手機應用程式安裝程式碼簽章  帶來安心下載

市場調查機構ABI指出,智慧型手機用戶在2009年下載近24億次應用程式,預估2010年時會超過60億次的下載數量。隨著應用程式持續擴充智慧型手機功能,為使用者帶來無限可能,智慧型手機應用程式成長的規模和速度,和個人電腦帶來的革命相比,可說是有過之而無不及。

行動系統服務業者已將應用程式軟體下載視為重要的營收來源,而手機應用程式(mobile app)開發商也急於滿足這群廣大的行動消費者的需求。行動通訊的發展儘管帶來可觀的商機,但程式漏洞或惡意程式碼等風險也相對提高,這些風險不僅會威脅到使用者的下載意願,也會影響到網路安全。手機應用程式發行業者和開發人員需要區隔其開發的合法軟體與惡意軟體、並保護開發的應用程式不被篡改,另外就是在不影響其已發行應用程式情況下,持續改善程式並阻絕惡意程式碼。

目前,Windows Phone 7的Marketplace手機應用軟體市集,已採用程式碼簽章技術來控制核准上傳的軟體,嘗試解決使用者的安全疑慮。


什麼是程式碼簽章?

在傳統的軟體傳輸模式中,買方藉由確認下載來源來判斷應用程式的可信度。然而,經由行動通訊網路所下載的軟體,因為發行商的身份難以確定,所以潛在風險較高。當在無線網路環境下不小心下載惡意軟體,不僅會讓個別用戶的智慧型手機曝露於危險中,也可能影響整體手機網路,讓所有應用程式訂閱用戶都曝露在惡意攻擊、服務中斷的危機中,並可能嚴重損害網路服務業者的信譽,甚至因此危及其財務或股價表現。

手機平台業者有責任保護其智慧型手機用戶,如上述的手機應用程式商店就使用程式碼簽章技術。這個技術是以數位簽章來簽署手機軟體程式碼,並提供「數位拆封授權(digital shrink-wrap)」機制,不只能驗證程式碼的來源,也能確認該程式碼在傳送過程中未被修改。
程式碼簽章是以公開金鑰加密系統(public key cryptography) 技術為基礎,開發人員或軟體發行商以個人金鑰將數位簽章加入程式碼,而手機軟體平台,在使用者下載軟體過程中,以公開金鑰加密系統比對亂數密碼驗證簽章有效來確認下載。

這種嵌入於數位簽章中的亂數密碼,可以用來確認檔案的內容,並且驗證程式碼在簽署後,不會遭受更改或損壞。手機用戶端可驗證檔案內容和軟體完整性,應用程式發行業者也能撤銷被盜用的認證以進行有效處理。傳統的程式碼簽章憑證是開發商用相同的數位簽名來簽署所有程式碼。但行動通訊的模式帶來不同挑戰,將應用程式傳送給手機用戶的方式與管理需要特別的方法,才能讓開發商和發行業者必須在不影響其它發行版本或合法發行的應用程式下,能夠輕鬆回收有錯誤或被盜用的程式碼。

手機應用程式碼簽章運作包含兩項數位憑證,其一用來識別發行商,其二為確認內容。應用程式發行商用發行商身分(Publisher ID)簽署程式碼,然後透過安全平台將程式碼上傳至憑證授權中心(CA, Certificate Authority)進行程式碼簽章驗證,一旦發行商的程式碼簽章確認有效,即依其發行與應用程式資訊產生一組獨一無二的內容身分證明(Content ID),然後憑證授權中心將再度簽署此內容識別證明,確認此內容的安全性並同意在平台發行。例如在手機軟體市集上,該軟體若使用不確定的API程式(API, Application Programming Interface),將會透過第三方單位評估其安全性再發出(Content ID)。

另外,因為其只在用戶端裝置層級執行查核,並不會讓使用者在手機上看到重新簽署過程,這對於開發商和網路業者來說相當便利,透過單一的內容身分證明,可識別並且召回有缺陷的程式碼,而且不會影響其餘應用程式,讓網路業者擁有更多的控制及網路防護。一般來說,來自信任來源並具有簽章的程式碼會被自動接受,否則安全性警告會出現並促使使用者查看簽章資訊來決定是否信任此程式碼。有些網路業者藉由只接受簽署程式碼簽章的應用程式來降低其風險,免於存取具有不確定API的程式。

如何建立信心,跨越信任門檻

驗證發行流程對程式開發商來說相當重要,因此在簽署過程中需要非常謹慎小心。其中需要憑證授權中心在過程中,負責確認使用簽章單位是否為合法註冊單位,憑證授權中心將會收集有關應用程式發行商和所屬組織的資訊來驗證身份。根據其所提供的資訊,以及資訊查證的難易度,需要幾小時到數天不等的驗證過程。理想情況下,憑證授權中心會聯繫聯絡人來確認組織資料,確保要求憑證組織的可信度。以賽門鐵克VeriSign為例,安侯建業聯合會計師事務所(KPMG)會進行年度審查來協助確定憑證授權中心發出憑證流程的完整性,來確保身分資料的正確性。
對於想在微軟Windows Phone Marketplace軟體市集上發行應用程式的開發商來說,他們的軟體必須經過VeriSign的程式碼簽章程序以獲得憑證。在應用程式上架到軟體市集前,每一個應用程式內容的更新都必須獲得程式碼簽章。然後微軟會密切監控在軟體市集中的應用程式是否有任何違規行為,並且在監測到違規行為時,可撤銷與惡意內容相關的憑證。 

注重數位安全、掌握手機應用商機

數位科技改變日常生活,帶動消費者對手機應用程式的需求。手機應用程式的程式碼簽章能夠保障智慧型手機用戶與系統服務業者,確保「殺手級」手機應用程式被安全的下載和執行,將網路和用戶受到攻擊的風險降到最低。

作者現為賽門鐵克VeriSign程式碼簽章產品總監