不只是工程師才要懂的 App 資訊安全:取得資安檢測合格證書血淚史(iT邦幫忙鐵人賽系列書)
內容描述
本書內容改編自第12屆 IT 邦幫忙鐵人賽,Security 組優選網路系列文章
《看完眼眶濕濕的App開發者慘烈對抗險惡資安環境血與淚的控訴!》
平時也不可鬆懈!使用手機時也可以進行的資安措施揭開加解密演算法的神秘面紗,並教導讀者如何使用
嚴密防堵駭客破解手機App,全面保護手機資訊安全講解程式發布安全、敏感性資料保護等資安檢測項目
用幽默詼諧的方式介紹艱澀難懂的演算法和如何破解及保護 App,也是台灣第一本,詳細介紹 App 資安檢測項目,並如何通過檢測取得證書,並加料許多即使是一般使用者也受用無窮的保護手機資訊安全的觀念。
書籍特色:
大家都該懂得手機資安保護
◾ 該不該 JB 或 Root,危害是什麼
◾ 公用 Wi-Fi 好危險
◾ 簡訊驗證安全嗎
◾ 權限隨便給,就會被人看光光
資安檢測,從菜鳥到專家
◾ 資安檢測怎麼誕生的
◾ 怎麼查找自己所需的規範文件
◾ 怎麼取得資安檢測通過證書和標章
◾ 逐項講解資安檢測項目和技巧
神祕的加密學,就這樣趕鴨子上架
◾ 實作各種雜湊演算法,且運用於電子簽章
◾ 從原理到實作講解對稱加密演算法,公開金鑰演算法
◾ 在各種情境下使用混合加密系統
手機 App 是怎麼破解,又該怎麼保護
◾ 駭客是如何脫殼,反編譯
◾ 使用憑證綁定確保通訊安全
◾ 混淆程式碼保護你的 App
◾ 攔截通訊傳遞資料
目標讀者:
一般使用者
◾ 可以了解什麼樣的 App 是否安全,該怎麼保護自己的個資。
一般 App 開發者
◾ 可以學到 SSL 數位憑證觀念, 怎麼將資料加密和怎麼攔截網路傳輸資料。
資深 App 開發者
◾ 了解駭客是如何使用「敲殼、逆向、滲透」破解 App,又該如何保護 App。
專業推薦:
作者跟大家介紹如何使用工具監看網路封包,同時也介紹各種常見的加密演算法的理論與實作,口吻輕鬆有趣,搭配圖解說明,不管你是一般的 App 使用者或是開發者,相信都能在此書中學得資安相關技能,以及保護自己或保護 App 的方式。
高見龍
五倍紅寶石程式資訊教育 負責人
作者透過自身經驗與學習,解析當前市面上流行的攻擊手法,讓讀者可以快速的理解各種攻擊手法以及相對應的防範措施該如何進行,並且分享了取得資安檢測合格證書辛苦的經驗與歷程給大家。這絕對是一本不能錯過的好書。
Paul Li
Yahoo 奇摩 Lead Engineer
目錄大綱
第 1 章 行動應用基本資安規範
1-1 行動應用基本資安規範
1-1-1 App 資安檢測起源
1-1-2 如何判斷一個 App 是否需要資安檢測
1-2 如何查詢已通過國家認證資安檢測
1-3 如何取得合格證書及標章
1-3-1 申請程序說明
1-3-2 哪找資安檢測實驗室?
1-3-3 檢測時發生的(趣事)?
1-4 資安規範文件到底要怎麼看
1-4-1 如何判斷所需文件
1-4-2 挑選最新制度規範步驟
1-4-3 制度規範說明懶人包
第 2 章 資安檢測
2-1 暈頭轉向資安檢測項目表
2-1-1 資安檢測項目表
2-1-2 App 送測分類檢查
2-1-3 檢驗項目查核表
2-1-4 小結及反思
2-2 資安檢測 (I) 4.1.1.行動應用程式發布安全
2-2-1 檢測項目4.1.1清單列表
2-2-2 檢測項目4.1.1必要檢測
2-2-3 檢測項目4.1.1參考項目(沒做也不會有問題)
2-3 資安檢測 (II) 4.1.2 安全敏感性資料保護
2-3-1 檢測項目4.1.2總覽
2-3-2 檢測項目4.1.2必要檢測
2-3-3 檢測項目4.1.2參考項目
2-4 資安檢測 (III) 4.1.3.交易資源控管安全
2-4-1 檢測項目4.1.3總覽
2-4-2 檢測項目4.1.3必要檢測
2-4-3 檢測項目4.1.3參考項目
2-4-4 交易前進行確認補充說明
2-5 資安檢測 (IV) 4.1.4.行動應用程式使用者身分鑑別、授權與連線管理安全
2-5-1 檢測項目4.1.4總覽
2-5-2 檢測項目4.1.4必要檢測
2-5-3 檢測項目4.1.4參考項目
2-6 資安檢測 (V) 4.1.5.行動應用程式碼安全
2-6-1 檢測項目4.1.5總覽
2-6-2 檢測項目4.1.5必要檢測
2-6-3 檢測項目4.1.5參考項目
2-7 資安檢測 (VI) 4.2.2.伺服器端安全檢測
2-7-1 檢測項目4.2.2總覽
2-7-2 檢測項目4.2.2必要檢測
2-7-3 檢測項目4.2.2參考項目
2-8 資安檢測小結
第 3 章 網路抓包怎麼抓
3-1 網路流量數據分析
3-1-1 什麼是嗅探器 (Sniffers)
3-1-2 什麼是 Web Proxy / Http Proxy
3-1-3 Web Proxy / Http Proxy 原理和運作方式
3-1-4 推薦 Web Proxy / Http Proxy 工具
3-1-5 Http Proxy 為什麼重要,跟資安有什麼關係?
3-2 Charles Web Debugging Proxy
3-2-1 Charles 介紹
3-2-2 Charles 操作教學
3-2-3 HTTPS 攔截
3-2-4 Charles 攔截 HTTPS 運作原理
3-2-5 安裝 Charles CA 憑證
3-2-6 啟用 https 攔截(Enable SSL)
3-2-7 使用 Charles 小結
3-3 使用 Charles - 攔截手機流量
3-3-1 手機跟電腦使用相同 Wi-Fi
3-3-2 手機使用電腦分享出來的網路 (MAC 共享網路)
3-3-3 手機攔截 HTTPS
3-3-4 攔截手機流量小結
3-4 Burp Suite
3-4-1 Burp Suite 簡介
3-4-2 使用 Burp Suite 的姿勢
3-4-3 Burp Proxy 設定
3-4-4 電腦代理伺服器設定
3-4-5 Intercept 全部攔截並處理
3-4-6 瀏覽捕獲資料
3-4-7 使用 Burp 攔截 HTTPS
3-4-8 代理伺服器疑難排解
3-4-9 Burp Suite小結
3-5 方便控管代理伺服器的 SwitchyOmega - 擴充軟體
第 4 章 密碼學三劍客
4-1 其實只是換件衣服 - 編碼(Encode)
4-1-1 Base64
4-1-2 URL Encode
4-1-3 霍夫曼編碼(Huffman Coding)
4-2 什麼都能尬的果汁機 - 雜湊 Hash
4-2-1 雜湊函數(Hash Function)
4-2-2 雜湊表(Hash Table)
4-2-3 雜湊常用演算法(Algorithm)
4-2-4 雜湊函式的應用
4-2-5 雜湊使用小知識 - 加鹽(salt)
4-3 幫訊息申請一個簽證 - 訊息鑑別碼 MAC
4-3-1 訊息鑑別碼 (MAC)介紹
4-3-2 金鑰雜湊訊息鑑別碼 (HMAC)
4-3-3 使用 HMAC
4-4 來談談很厲害又神祕的密碼學 – 茅塞頓開
4-4-1 用簡易流程了解加密運作
4-4-2 對稱金鑰加密
4-4-3 常用對稱加密演算法
4-4-4 公開金鑰加密
4-4-5 常用非對稱加密演算法
4-5 對稱式加密演算法 - DES & 3DES
4-5-1 3DES 簡易圖解加密流程
4-5-2 3DES 使用金鑰注意事項
4-5-3 DES 和 3DES 安全性
4-6 使用 3DES(實戰篇)
4-6-1 iOS
4-6-2 NodeJS / ES6
4-6-3 Android / JAVA
4-6-4 3DES 踩坑
4-6-5 沒有未來的 3DES
4-7 對稱式加密演算法 - 大家都愛用的 AES
4-7-1 AES 簡介
4-7-2 AES 加密流程
4-7-3 AES 金鑰使用說明
4-8 使用 AES(實戰篇)
4-8-1 iOS Swift
4-8-2 NodeJS / ES6
4-8-3 Android / JAVA
4-8-4 什麼時候採用對稱加密
4-9 加密模式 - 使用加密要注意的那些眉眉角角(一)
4-9-1 加密模式(mode of operation)
4-9-2 各種加密模式優缺點
4-9-3 該選哪個加密模式
4-10 為什麼要有初始向量 - 使用加密要注意的那些眉眉角角(二)
4-10-1 加密圖片演示
4-10-2 初始向量(initialization vector , IV)需要加密嗎?
4-10-3 小夥伴好奇怎麼產生加密圖片?
4-11 填充模式- 使用加密要注意的那些眉眉角角(三)
4-11-1 各種填充模式(Padding)
4-11-2 PKCS#5 和 PKCS#7 到底哪裡不同 要怎麼選?
4-12 非對稱式加密演算法 - RSA (觀念篇)
4-12-1 RSA 簡介
4-12-2 觀念和名詞定義 – 大家都不想看
4-12-3 RSA 簡易運作原理及流程
4-12-4 RSA 金鑰產生方式
4-12-5 加解密方式
4-12-6 RSA 安全性
4-13 非對稱式加密演算法 - RSA (實戰篇)
4-13-1 iOS / Swift
4-13-2 NodeJS / ES6
4-13-3 Android
4-13-4 金鑰格式
4-13-5 使用 RSA 容易掉入陷阱,又該怎麼爬出來
4-14 非對稱式加密演算法 - 橢圓曲線密碼學 (觀念篇)
4-14-1 ECC 簡介
4-14-2 RSA vs ECC 孰優孰劣
4-14-3 觀念及名詞定義
4-14-4 橢圓曲線定義及特性
4-14-5 橢圓曲線(ECC)在密碼學上的應用
4-14-6 橢圓曲線(ECC)簡易定義及運作流程
4-14-7 橢圓曲線加解密演算法原理(ECIES)
4-14-8 橢圓曲線數位簽章演算法原理(ECDSA)
4-14-9 橢圓曲線迪菲-赫爾曼金鑰交換原理(ECDH)
4-14-10 橢圓曲線(ECC)安全性
4-14-11 有限域橢圓曲線計算輔助工具
4-14-12 有什麼功能或服務應用橢圓曲線(ECC)
4-15 非對稱式加密演算法 - 橢圓曲線密碼學 (實戰篇)
4-15-1 iOS - Swift
4-15-2 NodeJS / ES6
4-15-3 Android - Kotlin
4-15-4 其它語言 ECC 套件推薦
4-15-5 利用 OpenSSL 命令使用 ECC
4-16 混血的就是萌 - 混合加密系統
4-16-1 混合加密系統介紹
4-16-2 混合加密系統加密流程圖解說明
4-16-3 混合加密系統特性
4-16-4 混合加密系統實際範例
第 5 章 App 要更安全,還能做什麼
5-1 憑證綁定(Certificate Pinning)-綁起來
5-1-1 憑證是什麼?
5-1-2 數位憑證申請流程說明
5-1-3 檢查憑證有效流程
5-1-4 為什麼要憑證綁定
5-1-5 憑證綁定 Certificate Pinning – iOS 實例
5-1-6 憑證綁定 Certificate Pinning – Android 實例
5-1-7 WebView 內連線可以做憑證綁定嗎?
5-1-8 使用 OpenSSL 進行憑證格式轉換
5-2 手機螢幕截圖安全性問題,小心被看光光
5-2-1 複習資安檢測文件 - 安全敏感性資料保護
5-2-2 如何觸發 Anddroid 非使用者主動截圖
5-2-3 實作- iOS 截圖偵測
5-2-4 實作-Android 偵測截圖
5-2-5 Android 禁止截圖
5-3 通通脫掉 - 反編譯 Decompiling
5-3-1 反編譯(Decompiling) - 砸殼
5-3-2 反編譯(Decompiling) - Class-Dump
5-3-3 反編譯(Decompiling) -進行反編譯
5-3-4 逆向及反編譯工具
5-4 要別人看不懂,自己也看不懂的 - 混淆 Obfuscation
5-4-1 字串混淆(Obfuscated String)
5-4-2 程式碼混淆(CodeObfuscation)
5-4-3 程式碼邏輯混淆(Obfuscator)
5-4-4 Android 混淆機制+
第 6 章 疏忽這些小事情,等於資料拱手給人
6-1 一不注意就被偷走帳號密碼的 - 剪貼簿
6-1-1 如何自保剪貼簿資料
6-2 該不該破解(Root/JB)手機呢 - 裝置遭破解的偵測
6-2-1 該不該 root 或 JB 呢
6-2-2 破解手機的風險提醒及限制使用
6-3 公共Wi-Fi好危險-免費的最貴
6-3-1 如何安全使用公共 Wi-Fi
6-4 手機這些權限,你真的同意了嘛
6-4-1 按下「接受」,手電筒 App 就知道你在哪裡!跟誰講電話
6-4-2 別以為你沒裝手電筒,就沒事了
6-4-3 別以為 iOS 就可以躲過一劫
6-4-4 不爽不要用,你能拿我怎樣
6-5 簡訊驗證一點都不安全,被人偷看了還不自知
6-5-1 案例一
6-5-2 案例二
6-5-3 案例三
附錄:參考資源
作者介紹
楊士逸 (羊小咩) 著
現任某知名電子支付和第三方支付中高階經理人,偶爾客串各種產業技術顧問,擁有專案管理師(PMP)及敏捷專案管理師證照(CSM),擅長 Web 及 App 領域等技術,主要負責專案執行、系統分析、架構規劃及維護、研發循環,品質管制及稽核作業,致力於實踐各種支付環境和金融服務,以提供更安全及便利的支付體系。
喜歡唬爛及誤人子弟,曾擔任 iOS iPlayground 2019,iPlayground 2020講者,出沒 iOS Taipei、CocoaHeads Taipei、NodeJS 等社群,偶爾分享些有的沒的。不定期參與資安研討會,以及配合參與主管機關金管會或銀行局有關支付、資訊安全、法規修改等討論議題,讓自己在金融資訊安全等領域貢獻些綿薄之力。