Re: [問題] 跟Web Server之傳遞資料的方式
※ 引述《flyroy (伕萊羅伊)》之銘言:
: 請問大家在寫Android時,遇到需傳遞密碼之類的資料是怎麼傳遞
: 目前想法是先用AES加密後在用BASE64加密成字串傳到WEB SERVER
: SERVER接到在轉回來,有更好的方式可推薦嗎?
: 如果與Server連結改用SSL方式傳遞
: 是不是就可以不用像上面方法這麼麻煩?
在internet上傳輸資料就會有被竊聽、竊取的風險
這樣的攻擊行為通常被稱為 中間人攻擊 MITM(Man in the middle)
所以為了確保資料安全,通常會使用SSL/TLS協議來做基本的保護
(其實不太想寫SSL,因為SSL 3.0也是不安全的,漏洞為Poodle)
使用了TLS協議做傳輸也不代表資料就是安全的,其實還是會有MITM的問題
只要中間人使用自己的憑證做攻擊照樣能看到傳輸的資料
現今的瀏覽器通常遇到自簽的憑證或是不合法的憑證都會跳一個訊息
"此網站的安全性憑證有問題",不過使用者大多還是會按"繼續瀏覽此網站"
所以在Client端的應用程式上我們可以這樣做:
1.Https握手時檢查Server端給的x509憑證上的公鑰是否正確
2.資料本身做加密(對稱或非對稱加密)
不過之前自己分析了台灣許多的APP(行動銀行、行動支付)
行動銀行APP也都只有使用SSL/TLS協議而已,而且敏感資料也不加密
只有少數的行動支付APP才有做上面講的那二種做法
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.31.21
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1453187269.A.E7B.html
※ 編輯: MIM23 (220.135.31.21), 01/19/2016 15:12:39
→
01/19 15:20, , 1F
01/19 15:20, 1F
→
01/19 15:21, , 2F
01/19 15:21, 2F
→
01/19 15:22, , 3F
01/19 15:22, 3F
→
01/19 15:23, , 4F
01/19 15:23, 4F
→
01/19 15:24, , 5F
01/19 15:24, 5F
→
01/19 15:26, , 6F
01/19 15:26, 6F
→
01/19 15:26, , 7F
01/19 15:26, 7F
→
01/19 15:28, , 8F
01/19 15:28, 8F
原來如此,感謝高手補充
我的做法是強制讓Android信任不合法的憑證方式去監看封包
這種方式不會跳SSLHandshakeException,當然不可否認這種是比較特殊的做法
但有些程式是檢查公鑰不同就中斷了,就無法偷看程式送了什麼
OWASP http://tinyurl.com/kz8jovw
※ 編輯: MIM23 (220.135.31.21), 01/19/2016 16:05:23
推
01/20 12:56, , 9F
01/20 12:56, 9F
推
01/21 22:41, , 10F
01/21 22:41, 10F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章