安全的app開發 確保優質的服務 -淺談app的開發 ... - fisc€¦ · 圖3...

10
www.fisc.com.tw 45 安全的 APP 開發 確保優質的服務-淺談 APP 的開發與安全〡資訊分享 安全的 APP 開發 確保優質的服務 -淺談 APP 的開發與安全 張婷婷 / 財金資訊公司研發部設計二組高級工程師 一、 前言 Apple 公司於 2008 7 月 建 立「App Store」,供使用者下載遊戲、日程管理、詞 典、圖庫及其他各種 APP 應用程式。截至 2015 3 月止,iOS 版的「App Store」可供 下載的 APP 數已超過 120 萬個,總下載次數 超過 650 億人次。 Google 陣 營 的「Android Market」則 2008 10 月 正 式 上 線, 提 供 使 用 者 下載 APP 應 用 程 式。 嗣 於 2012 3 月, Google 整合旗下 Android 電子市場、Play 樂、Play 圖 書、Play 書報攤、Play 電影等 平 台 為「Google Play」。 根 據 APP 調查公 appFigures 所 提 供 資 料 顯 示,「Google Play」上的 APP 數量在 2015 年已將近 150 萬個,超越「App Store」約 17%方便與豐富的 APP 應用程式,促使使用 者的習慣逐漸自桌上型或筆記型電腦轉向行動 裝置發展,而 APP 領域則為開發者可盡情與 盡力廣耕與深耕的新大陸。 由於開發人員在開發程式時,多著重在 APP 的功能、效能等議題,較少注意安全上 的問題,然而 APP 已占據生活中不可或缺的 區塊,加以越來越多的駭客想從中進行破壞與 牟利,資安問題層出不窮,爰此,如何加強管 APP 的安全性成為重要的考量。 二、 APP 的開發類型 目前 APP 的開發模式,主要分成三種類 型: ( ) 原生應用程式 (Native App) APP 的開發工作最初是以 Native App 主,使用行動裝置之作業系統本身所提供的 SDK (Software Development Kit) 或所建議 的方式進行開發作業,如此可使 Native APP 的執行效能高,並且易於使用行動裝置上的 相機、GPS、通知鈴聲等功能;如:iOS 統使用 Object-C 語言及 Xcode 進 行 開 發; Android 系統則使用 Java 語言及 Eclipse畫面複雜的遊戲 APP 需要確保畫面流動 順暢,以芬蘭 Rovio 娛樂公司於 2009 12 月推出,最著名的憤怒鳥 (Angry Birds) 遊戲 (如圖 1 所示)為例,即使用能夠發揮執行效 能的 Native APP 開發,至今在「App Store付費下載該遊戲的人次已超過 1,200 萬次,若 包含其他平台的總下載量則超過 10 億次。

Upload: others

Post on 06-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

www.fisc.com.tw ■ 45

安全的 APP開發 確保優質的服務-淺談 APP的開發與安全〡資訊分享

安全的APP開發 確保優質的服務 -淺談APP的開發與安全

張婷婷 / 財金資訊公司研發部設計二組高級工程師

一、 前言

Apple 公 司 於 2008 年 7 月 建 立「App

Store」,供使用者下載遊戲、日程管理、詞

典、圖庫及其他各種 APP應用程式。截至

2015年 3月止,iOS版的「App Store」可供

下載的 APP數已超過 120萬個,總下載次數

超過 650億人次。

Google 陣 營 的「Android Market」 則

在 2008 年 10 月正式上線,提供使用者

下載 APP 應用程式。嗣於 2012 年 3 月,

Google整合旗下 Android 電子市場、Play 音

樂、Play 圖書、Play 書報攤、Play 電影等

平台為「Google Play」。根據 APP調查公

司 appFigures 所提供資料顯示,「Google

Play」上的 APP數量在 2015年已將近 150

萬個,超越「App Store」約 17%。

方便與豐富的 APP應用程式,促使使用

者的習慣逐漸自桌上型或筆記型電腦轉向行動

裝置發展,而 APP領域則為開發者可盡情與

盡力廣耕與深耕的新大陸。

由於開發人員在開發程式時,多著重在

APP的功能、效能等議題,較少注意安全上

的問題,然而 APP已占據生活中不可或缺的

區塊,加以越來越多的駭客想從中進行破壞與

牟利,資安問題層出不窮,爰此,如何加強管

控 APP的安全性成為重要的考量。

二、 APP的開發類型

目前 APP的開發模式,主要分成三種類

型:

(一 ) 原生應用程式 (Native App)

APP的開發工作最初是以 Native App為

主,使用行動裝置之作業系統本身所提供的

SDK (Software Development Kit) 或所建議

的方式進行開發作業,如此可使 Native APP

的執行效能高,並且易於使用行動裝置上的

相機、GPS、通知鈴聲等功能;如:iOS系

統使用 Object-C語言及 Xcode進行開發;

Android系統則使用 Java語言及 Eclipse。

畫面複雜的遊戲 APP需要確保畫面流動

順暢,以芬蘭 Rovio娛樂公司於 2009年 12

月推出,最著名的憤怒鳥 (Angry Birds) 遊戲

(如圖 1所示)為例,即使用能夠發揮執行效

能的 Native APP開發,至今在「App Store」

付費下載該遊戲的人次已超過 1,200萬次,若

包含其他平台的總下載量則超過 10億次。

Page 2: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

46 ■ 財金資訊季刊 / No.83 / 2015.07

資訊分享〡安全的 APP開發 確保優質的服務-淺談 APP的開發與安全

圖 1 Angry Birds 遊戲畫面

(二 ) 網頁應用程式 (Web App)

Native App在開發語言及工具的選擇性

受制於系統,也因此影響 APP應用程式的可

攜性,使開發者的維護工作非常辛苦,故不少

開發者選擇以較具開放性的Web App做為開

發工具,如此,可在不同作業系統上皆以相同

的前端網頁技術進行開發,避免維護多套程式

碼的困擾;使用者亦無須至「App Store」或

「Google Play」商店進行下載,只須打開瀏

覽器即可執行程式,不受系統平台的限制。

Web App的應用服務相當多,如 Google

系列目前大量以 HTML5開發Web App服務

程式,無論用 iPhone或 Android手機,透過

瀏覽器連上 Gmail,就可使用各種Web應用

程式。Web App之弱點為執行速度較 Native

App慢,硬體的支援程度也無法達到最佳狀

況,且用戶端顯示畫面容易因行動裝置或瀏覽

器的不同而出現差異,如圖 2所示。

圖 2 左圖為以 Safari開啟 Gmail畫面,右圖為以 APP開啟信件畫面

(三 ) 混合式應用程式 (Hybrid App)

在 HTML5規範越趨成熟後,結合前述兩

種開發方式之優點的 Hybrid App誕生,此種

方式是指以Web App開發前端使用者介面,

透過框架工具 (HTML5/HTML、JavaScript、

CSS等 ) 與行動裝置硬體設備互動,也可以

原生程式碼做成 Native App的外殼,同時上

Page 3: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

www.fisc.com.tw ■ 47

安全的 APP開發 確保優質的服務-淺談 APP的開發與安全〡資訊分享

架至「App Store」或「Google Play」商店供

使用者下載使用。Hybrid App因包含 Native

App及Web App的開發方式,開發作業較具

彈性也較能增進使用者體驗。

早期 Facebook(如圖 3)的設計係採

Hybrid App,即結合 HTML與 Native進行開

發,但近年來,其新版 APP逐漸減少 HTML

的比例,而以 Native方式代替,再次說明

Hybrid雖有 Native的外殼,但在效能上仍不

及純正的 Native。

圖 3 Facebook的 APP畫面

高的 APP,如遊戲、動畫等等。

2. APP可直接使用行動裝置系統本身所提

供的手勢操作方式,使用者比較容易上手

使用,如:連續點擊、放大畫面等。

3. 可使用行動裝置上的硬體功能,如:相

機功能、GPS定位功能等等,又如美食

APP依定位功能提供使用者當下所在位

置附近的美食地圖。

4. 可在離線狀態下執行。

5. 在「App Store」或「Google Play」等商

店上架時,可設定為須付費之 APP,或

是提供免費安裝但執行特殊功能時,要求

使用者付費的 APP,以賺取收入。

缺點:

1. 維護人力成本高:在不同作業系統須使用

不同的開發語言及 SDK開發。

2. APP的上架作業複雜:如果功能更新,

程式修改後須重新送審、上架,較為耗費

時程,且使用者亦須重新下載才得使用新

功能。

3. 增加 APP的上架費用:須付費予官方

(iOS:$99美金 /年繳;Android:$25美

金 /次 )。

(二 ) Web App

優點:

1. 開發者僅須維護一套前端網頁,即可在不

同的行動裝置上使用。

2. 開發期間僅須透過行動裝置的瀏覽器即可

進行測試,可節省於受測的不同行動裝置

逐一進行安裝作業的測試時間。

3. 任何錯誤修正或功能更新,只須於後端伺

服器主機進行修改即可,無須再經送審、

上架等作業,其後使用者造訪網頁時即能

使用最新功能畫面。

三、 APP開發方式優缺點比較

開發 APP時,如何依其需要選用適合的

方式 ,謹就前述三種開發方式的優缺點,進

行分析比較如下供參。

(一 ) Native App

優點:

1. 效能高故執行速度快,畫面流動順暢,適

合處理大量數據的資料,或是畫面複雜度

Page 4: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

48 ■ 財金資訊季刊 / No.83 / 2015.07

資訊分享〡安全的 APP開發 確保優質的服務-淺談 APP的開發與安全

4. 可提供 QRCode連結方式,使用者可用

行動裝置掃瞄後直接進入Web App。

缺點:

1. 使用者無法在離線狀態下執行 Web

App,如果畫面上要呈現的圖片較多,將

使用大量網路頻寬,執行速度較慢。

2. 無法使用行動裝置上的硬體設施,使用者

僅得瀏覽行動版網頁,與行動裝置本身關

連不大。

3. 雖然理論上僅須維護一份程式碼,但因行

動裝置上的瀏覽器種類繁多,各廠家瀏覽

器對畫面程式的支援有所不同,部分功能

須針對瀏覽器進行不同的處理。

(三 ) Hybrid App

優點:

可綜合運用各廠家之長,依需要創造產品。

缺點 (限制 ):

因為「App Store」的審核較為嚴格,在

Hybrid的架構中,如果皆為Web畫面連結的實

作,而少有應用行動裝置原生 SDK的部分,於

送審時可能被「App Store」駁回,不允許上架。

在大略說明各開發方式的優缺點之後,彙

整其各項比較如下表,APP開發架構則如圖 4

所示:

比較項目 Native App Web App Hybrid App開發工具 Objective-C, Java HTML5, CSS, JavaScript All the aforementioned

發佈位置App Store

Google PlayWeb

App StoreGoogle Play

開發成本 較高 較低 中

維護成本 較高 較低 中

效能 較快 較慢 中

網路連線 Online and offline Mostly online Online and offline行動裝置使用 高 低 高

圖 4 APP開發架構示意圖 (資料來源:Salesforce developer)

Page 5: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

www.fisc.com.tw ■ 49

安全的 APP開發 確保優質的服務-淺談 APP的開發與安全〡資訊分享

四、 APP的安全保障

隨著 APP日益普及與所扮演角色日重,

APP的安全性已受到高度重視,中華民國銀

行商業同業公會全國聯合會於 103年底,訂

定「金融機構提供行動裝置應用程式注意事

項」,藉以提供電子銀行、消費、儲值、第三

方支付等金融業務,除應符合「金融機構辦理

電子銀行業務安控作業基準」外,亦須特別注

意相關事項,摘要說明如下:

(一 ) 應針對應用程式檢視系統所需最小權

限,並進行存取控制。

(二 ) 於行動裝置上如有必要儲存敏感資料,

應採取加密或亂碼化等相關機制保護,

以有效防範資料外洩。

(三 ) 應針對應用程式進行原始碼掃描、黑箱

測試或滲透測試,並針對中、高風險弱

點及可影響敏感資料被竊取或竄改之弱

點進行改善。

(四 ) 啟動應用程式時,如經偵測行動裝置疑似

遭破解,應提示使用者注意風險(如圖5)。

圖 5 當行動裝置疑遭破解時之提醒畫面。

(五 ) 於安裝或首次啟動應用程式時,應提示

使用者於行動裝置上安裝防毒軟體(如

圖 6)。

圖6 防毒軟體之提示訊息 (當系統未遭破解時 )

(六 ) 採用憑證技術進行傳輸加密時,應用程

式應建立可信任憑證清單,並驗證完整

憑證鏈及其憑證有效性。

(七 ) 採用空中傳輸 (OTA,Over-The-Air) 方

式下載敏感資料前,應確認使用者身分

(如密碼 ),並採用嚴密的技術防護措施,

且能有效防範相關資料被竊取。

(八 ) 採用空中傳輸方式下載敏感資料時,應

確認行動裝置及應用程式之正確性,並

進行端點 (銀行端 ) 對端點 (應用程式 )

全程加密防護。

(九 ) 採 用 安 全 儲 存 媒 介 (SE,Secure

Element) 作為儲存裝置時,應確認使

用者指定之安全儲存媒介編號 (如 SE

ID)、並於 SE內增設存取控管,限制由

可信任應用程式存取。

(十 ) 採用近距離無線通訊 (NFC,Near Field

Page 6: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

50 ■ 財金資訊季刊 / No.83 / 2015.07

資訊分享〡安全的 APP開發 確保優質的服務-淺談 APP的開發與安全

(十一 ) 應於官網上提供應用程式之名稱、版

本與下載位置。

圖 7 全國繳費網官方網站之 QRCode連結。

Communication) 技術進行付款交易資料

傳輸前,應經由使用者人工確認。

五、 如何選擇 APP開發方式

當要開始製作 APP時,建議就下列幾個

方向考慮:

(一 ) 運作效能

資源較為足夠的桌上型電腦,執行應用程

式較不容易發生效能議題,在資源有限的行動

裝置上,效能就非常的重要,而 Native App

在效能方面的表現較佳。

(二 ) APP內容變化性

Native App 及 Hybrid App 的 APP, 都

須經「App Store」及「Google Play」商店

進行審核及上架作業,如果 APP的內容須經

常或大幅變化,則逐次送審耗費相當多的人

力及時間,Web App在這方面就較為方便,

而 Hybrid App則可把變化較大的部分由Web

App的方式實作,可降低此一困擾。

(三 ) 是否需要使用行動裝置的功能

在 APP的設計中,如須用到行動裝置的

相機或掃瞄等功能, Web App無法滿足此需

求,如果希望能有較強大的功能整合,須往

Native App方向思考。

(四 ) 使用者介面的複雜性

雖然Web App的程式碼可以跨平台處理,

在不同的行動裝置上呈現,但是Web的使用

者介面設計能力通常較為單薄,無法進行太複

雜的畫面實作,如須呈現較為複雜細緻的使用

者互動介面,建議使用Native App進行設計。

(五 ) 公司預算及維運人力考量

如果公司有預算、維運成本的考量,Web

App的開發時間較短,同一套程式碼亦可跨平

台運作,且無須向「App Store」及「Google

Play」商店繳交年費,整體所需成本較低。

Page 7: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

www.fisc.com.tw ■ 51

安全的 APP開發 確保優質的服務-淺談 APP的開發與安全〡資訊分享

六、 「e-Bill全國繳費網」APP開發案例

本公司提供的「e-Bill全國繳費網」APP

(e-Bill APP) 具備五大功能,包含行動繳費、

常繳帳單、帳單管家、訊息公告、個人設定等,

整體設計考量如下:

(一 ) 行動繳費功能為Hybrid方式

由於 e-Bill APP持續增加繳費項目,且各

繳費項目亦新增事業單位或參加金融機構,如

使用 Native App方式,須重新送審上架,費

力費時,故前端繳費項目及輸入資訊頁面,採

用Web App方式開發;在執行付款交易時,

因提供使用者以行動金融卡進行支付作業,須

與行動裝置上的「t wallet」互動,故執行繳費

作業時採 Native App方式。

圖 8~9 e-Bill APP繳費項目一覽表,因變化多,採Web App開發方式。

圖 10~11 繳費內容輸入頁面,因各費用詳細內容差異大,採Web App開發方式。

Page 8: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

52 ■ 財金資訊季刊 / No.83 / 2015.07

資訊分享〡安全的 APP開發 確保優質的服務-淺談 APP的開發與安全

(二 ) 在常繳帳單、帳單管家及個人設定等

作業,使用Native App方式開發

此功能因為需要使用手機的行事曆、通知

作業等,另外須使用作業系統的相關資訊,且

圖 12~13 採用活期性帳戶及行動金融卡繳費之資料輸入頁面一致化, 並須採用行動裝置,故以 Native App方式開發。

使用者介面設計較為複雜,故採取 Native App

方式,使用者可有較好的操作體驗,也提高操

作效能。

圖 14~15 帳單管家及個人設定輸入頁面,此部分採用作業系統之行事曆及通知功能, 故以 Native App方式開發。

Page 9: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

www.fisc.com.tw ■ 53

安全的 APP開發 確保優質的服務-淺談 APP的開發與安全〡資訊分享

(三 ) 訊息公告採用Web App方式開發

訊息公告部分僅為內容公告,因無複雜的

使用者介面,且內容變化性大,又須即時顯

示,因此採用Web App方式進行開發。

圖16 訊息公告畫面,採Web App開發方式。

七、 APP開發的未來趨勢

目前 Hybrid App因為開發語言的進入門

檻較低,較常成為開發者的首選,而 Hybrid

App的使用者體驗又比Web App貼近行動裝

置,也較易獲得使用者的喜愛。

2014年 10月底,W3C (World Wide Web

Consortium) 宣布 HTML5正式定稿,各廠行動

裝置的規格與效能,隨著市場競爭與科技進步

而大幅升級,包括 CPU速度的提升 (依 Apple

官方說法,從 iPhone 4s到 iPhone 6,CPU速

度提升 7.5倍 )、WebView內嵌瀏覽器性能的

增加 (Android目前的WebView以 Chromium

取代 Android WebKit瀏覽器,效能大幅提升 )、

PhoneGap等相關產品技術成熟等,都推動

HTML5在Web App上的大量使用。對程式開

發者來說,HTML5能夠做到 App的跨平台,

降低開發維護成本,又能快速地進行修補更新

作業,減少客訴。HTML5使得Web App原本

最為人垢病的效能、使用者體驗問題都大量地

降低,有機會顛覆 Native App的地位。

Native App亦出現變革,在 Apple 2014年

WWDC (Worldwide Developers Conference) 年

會中,Apple宣布將以最新的程式語言 Swift取

代 Objective-C。Swift的強項包括:(1) Swift

的執行速度比 Objective-C更快;(2) 在程式的

撰寫上,Swift比 Objective-C簡潔易懂,開發

者更容易入門;(3) Swift的程式語言安全性高

於 Objective-C;(4) 透過 Xcode 6新版提供

的 Playgrounds工具撰寫 Swift程式,可立即

檢視程式結果。對於開發者來說,原本 Native

App在開發語言的學習、測試環境的佈建等困

難度明顯降低,而原本 Native App在效能的

優勢又再提高,Native App的未來發展,依舊

相當令人期待。

八、 結語

依據蘋果公司所發布的數字顯示,

在 2013 至 2014 年度間,該公司在「App

Store」中增加約 40萬個 iOS的應用程式;

而「Google Play」的成長量就更為驚人,在

2014年的成長率達到 50%,至於 APP的數

量也是第一年超過「App Store」,可理解的

原因包括:(1) Android的市場占有率已遠超

過 iOS系統;(2) 在 APP送審上,「Google

Play」所需時間較短,而「App Store」審查

嚴格,耗費時間較久。由此可見,全球 APP

的數量以非常迅速的速度成長著。

Page 10: 安全的APP開發 確保優質的服務 -淺談APP的開發 ... - FISC€¦ · 圖3 Facebook的APP 畫面 高的APP,如遊戲、動畫等等。 2. APP可直接使用行動裝置系統本身所提

54 ■ 財金資訊季刊 / No.83 / 2015.07

資訊分享〡安全的 APP開發 確保優質的服務-淺談 APP的開發與安全

在這樣大量的 APP市場中,各個 APP是

否能夠吸引足夠的關注度,讓使用者願意下載

並持續使用,是提供者能否保持該 APP存續

的課題。許多 App 應用,包括一開始廣受熱

愛的實用工具類及遊戲類,還有照片分享、購

物,或社交類 App應用,都逐漸出現應用倦

怠的趨勢,或是轉移到其他類似而功能更多與

變化更大的產品上。

因此,一位 APP開發設計人員在初始設

計階段就要做好完整的規劃,確認 APP的關

鍵特性,務必在效能與操作體驗上滿足使用者

需求,此外,在 APP上架後,也要針對內容

不斷加強,推陳出新,更要隨時注意 iOS及

Android所宣布關於新增的 SDK功能,才能

在APP上提供使用者新的體驗及更多的資訊,

以維持使用者的積極參與。

圖 17 APP歷年數量統計圖 (資料來源:App01.com)

※參考文獻 /資料來源:1. 中華民國銀行商業同業公會全國聯合會:金融機構提供行動裝置應用程式注

意事項。

2. Salesforce developer: Native, HTML5, or Hybrid: Understanding Your Mobile Application Development Options。

3. WWDC 2014: Apps。4. App01.com。5. Techcrunch.com: 「Google Play」

Quarterly App Revenue More Than Doubled Over Past Year, Thanks To Games, Freemium Apps。

6. 維基百科:「App Store」;「Google Play」。

7. 數位時代:HTML5來了!原生 App世界將被顛覆。