免費 Wi-Fi 下的 https 安全嗎?
@雲舒 說的一句話我很喜歡,黑客擅長劍法,取上將首級,安全擅長兵法,保一城安危
借這個機會,想跟大家探討一下劍法
從銀行的角度來講,壓根是不信任客戶的環境的,因為客戶可能手機有root許可權、有木馬、被監聽著鍵盤、下載的APP不是官方市場獲得、鏈路層網路層應用層全都受到欺騙,業務要求擺在那,我不能說安卓的root環境安全問題嚴重我就不讓客戶用了,安全問題還是得解決,還是得避免客戶被欺詐,被欺詐了能抓到人,自從去年有網銀APP漏洞被發布到烏雲上以來,銀監會對這新領域從來沒有松過手
對雲舒的問題,我的回答是「是」。除了這些以外,還有加殼防反編譯、防篡改、內置軟鍵盤、內置公鑰等等。
黑客沒有機會協商密鑰,也沒有機會解開密文
==================
那網銀APP是不是就無懈可擊了呢?在wifi下用網銀是不是保證安全?
顯然不是,我自知APP的設計不是完美的,單看這加固搞了多久搞了幾輪就知道,然後還有更粗暴的辦法,既然你的APP這麼討厭,我只要把你的APP幹掉,重新給你裝一個假的APP,然後連接我的假伺服器就可以了,誰讓你的手機已經被我控制了呢?你能發現這個APP是假的嗎?如果是瀏覽器更簡單,就像雲舒說的,偽造公共wifi,給你個釣魚網站,你知道在手機瀏覽器上手工校驗網址和證書需要幾步操作嗎?在這環境下,基於手機的強效認證也沒用。我並不需要攻陷一個安全專家,我只需要姜太公釣魚
我以前說,攻防是密不可分,不斷交替不斷進步的,它的終點可能是防禦勝,因為在信息對等的情況下防禦一方掌握更多資源。但是進攻從未停止,因為信息其實並不對等,我根本沒機會抵達那個終點,進攻使用了什麼手段,這信息本身是有價值的。說不定我以為我的城市固若金湯,劍客已經可以召喚衛星炮,隨時把我轟成渣。
我的興趣是攻擊,職業是防禦,一方面,藉此地與各位互相探討明面的技術,另一方面,我知道奧博士提出的其實是個眾測項目,但遺憾他出的錢加個0都不夠,如是不能公開討論的部分,歡迎私信聯繫,不論是作為知識還是作為藝術我都會尊重
==================
為求不摺疊,最後點一下題:
這問題本身,是早有答案了的,不要隨便去連公共wifi,尤其是那些沒許可權控制的手機(最新的安卓系統能實現的)
WiFi里的貓膩 - 懶人在思考 - 知乎專欄
通過一次次的新聞、科普,無非是希望能提高公眾的安全意識
用戶隱私早淪陷了(二) - 懶人在思考 - 知乎專欄
這些都是 @餘弦 年初的科普文章了
謝謝
不安全。
可以用中間人方式,對ssl通信進行破壞,這種工具很多年前就有黑客編寫出來了。
如果實在是忍不住想蹭網,你就加上個VPN吧,儘管VPN也是可以破解的……
友情提示,公共場合請不要隨意開啟WIFI,因為你不知道你會被多少餓狼盯上
做移動開發時,經常利用wifi自建熱點抓包,所以很負責任的告訴你,未必安全,下面慢慢說
首先
什麼是HTTPS?
引用維基百科的介紹,全稱:安全超文本傳輸協議,即http協議的安全版本,通過TLS/SSL實現加密傳輸。此處省略一萬字介紹,反正我也記不清,大家自己看維基好了 ^_^
那麼
HTTPS安全么?
https是挺安全的,但並非無懈可擊,具體繼續看
1.TLS/SSL之下的數據
儘管是https工作在TLS/SSL上的數據是安全的,但是工作在TLS/SSL層之下的數據是不安全的,參考SSL/TLS所在位置,例如抓包軟體能夠輕鬆截獲你與哪些伺服器進行了通信,換句話說,伺服器地址暴露了。
2.中間人攻擊
開發中難免遇到http抓包的需求,有時遇到https的請求,一般抓包方式就沒法正確截獲數據了。不過通過偽造證書,https的包也是可以抓的,參見iOS抓包利器Charles 。難道https如此脆弱?既然https能輕易被抓包,還要來幹啥?
先看下原理,首先charles偽裝成服務端和客戶端通信,並同時偽裝成客戶端與伺服器通信,充當中間角色,從而截獲數據,如圖:
這種方式起效的前提是代碼關閉了證書驗證:AFNetWorking中的allowInvalidCertificates,所以release時記得打開證書驗證,這樣偽造的證書就不被接受了。
好了,看起來安全了?等等,allowInvalidCertificates只是實現了拒絕不受信任的證書,注意,重點是信任,如果證書是受到信任的呢?雖然可能性有點小,不過假設有一個攻擊者手上擁有一個受信任的證書,首先iPhone信任的證書包括一些預裝的證書iOS 8 中可用的受信任根證書的列表,和用戶自己安裝的證書。那麼即使開啟了證書allowInvalidCertificates,中間人攻擊依然能夠發生。這時候就需要開啟SSL Ping Mode了
AFNetWorking里通過AFURLConnectionOperationSSLPinningMode設置
原理是把證書打包或者公鑰打包在APP中,在NSURLConnectionDelegate協議中的connection:willSendRequestForAuthenticationChallenge:中檢測證書是否沒被篡改。
到此為止,用戶的信息基本能保證安全了,但是還是不提倡對介面做簽名演算法等處理,加大攻擊者對介面的攻擊難度,下面繼續聊。
瀏覽器訪問的安全
好,以上方法加工做的APP在公共WIFI下傳輸足夠保證用戶數據傳輸的安全了,那麼非APP呢,例如瀏覽器會如何?
其實瀏覽器和APP差不多,也有類似的證書驗證功能,例如我們訪問 https://www.12306.com
會發現如圖提示:
同樣訪問百度會是這樣:
注意地址欄的鎖頭的顏色,這個很關鍵!關鍵!關鍵!重要的話說三遍,哈哈
和iOS一樣,如果wifi要進行https中間人攻擊(截獲數據),就得偽造證書,然後瀏覽器就會產生提醒,所以為了安全起見,公用wifi下面請勿訪問證書有問題的網站。特別是金錢敏感網站,例如支付寶,銀行等。
你又會問,為啥我在家訪問 https://www.12306.com 也是紅色的?這就得說下證書的問題了,因為12306使用的CA證書是一個叫SRCA的,這個CA瀏覽器不信任。
具體又得說到瀏覽器驗證網站證書有效性的過程了
引用知乎另一問題的答案:
第一步:Trusted CA向vendor廠商提供CA根證書。
第二步:Trusted CA給site提供站證書。
第三步:vendor廠商的瀏覽器在用https訪問的時候會檢查站證書的合法性。
chrome不信任SRCA,所以就鎖就紅了,
一句話總結是,綠色的基本可以安全訪問,紅色的建議留點心。
防禦
如果緊急情況下非要訪問下這種證書不受信任https呢?建議走Cisco IPSec VPN出去(前提是你的VPN服務商也是安全的),具體原因是Cisco IPSec全加密鏈接,你所有的網路請求都不會被暴露了。
---------------------------------
更多安全問題,歡迎來踩 博客
安全。
我看上面好多人解釋的都是手機APP是不是安全,但是題主問的是「免費Wi-Fi下的HTTPS是否安全」。換句話說就是:有中間人攻擊的情況下,HTTPS是否安全。
可以肯定的說HTTPS是安全的。HTTPS的設計初衷就是為了讓人在有攻擊的網路環境下保證安全。使用TLS1.2+AES-GCM+完全正向保密+SHA2證書,不用RC4。這些都做到的話TLS協議本身是沒有已知漏洞的。sslstrip是對明文內容的攻擊。
當然HTTPS安全,不代表用公共Wi-Fi上網安全。像其他答案中說的,系統被植入木馬、釣魚網站、APP漏洞,這些會威脅到安全,但這些與HTTPS無關,而且系統要是有木馬,在哪上網都危險,釣魚網站也同理。
我的建議是在用公共Wi-Fi時,盡量只上HTTPS的網站。至少我在公共場所用電腦上網時,直接封鎖80埠,以避免誤入不加密網站。另外非常希望更多網站支持全站HTTPS,特別是網銀為啥就不能從首頁起HTTPS?非常不安全
下面這篇文章里有詳細說明:
別上「綿羊牆」多丟臉啊! (發布時間:2014年9月25日)
2002年美國第十界黑客大會上,一群參加的黑客偶然坐到一起,將一些在大會現場上網,但卻在使用不安全口令的人的用戶名和密碼寫在餐廳的紙盤子上,並將這些紙盤子貼在牆上,還在牆上寫了個大大的「Sheep」。黑客們這樣做,一方面是想教育人民「你很可能隨時都被監視」,另一方面也是想給那些參會的人難堪:能來參加黑客大會的人,還如此不注意安全,難怪被貼到綿羊牆上。
自從,Wall of Sheep ,也就是綿羊牆,成為在西方舉行的各種黑客大會或安全大會上經常出現的趣味活動。黑客們每次都會想出各種新的花樣在大會現場製造陷阱,入侵或竊聽參會者的電腦、手機和上網活動,並將攻擊的幾個過投影展示在綿羊牆上。
2014年互聯網安全大會上的綿羊牆
2014互聯網安全大會最好玩的是會場3樓那堵綿羊牆wall of sheep。由於會場提供了開放的WiFi網路,不加密的網路會話可以被監聽,因此主辦方搞了一個「綿羊牆」,它會監聽整個WiFi網路,抽取其中明文傳輸的賬號、密碼和URL,自動發到IRC頻道里(當然,賬號和密碼打上了部分掩碼)。綿羊牆上時時發出一個個HTTP會話和郵箱登陸的賬號密碼,讓大家真正感受到無線網路攻擊的危險,也主動地讓一些可能遭到攻擊的聽眾發現問題,還讓一些沒做好加密的網路服務提供商和客戶端軟體原形畢露。
沃通(WoSign)提醒現場的小夥伴們 :
- 遠離無線網路,關閉藍牙:黑客行為隨時隨地都在進行著。
- 加密信息:不希望第三方也知道的話,所有必須發生的消息一定要加密。
- 別收禮:任何人遞來的U盤都可能是竊取你個人信息的必殺器。
- 那些沒做好加密的網路服務提供商和客戶端軟體趕緊支持HTTS加密,別上「綿羊牆」多丟臉啊!
先說下個人的結論:沒啥緊急的事盡量不用免費WIFI,但真要有緊急事情需要在免費WIFI環境下用網銀也是可以的!
沒有什麼東西是絕對安全的,任何技術都存在不安全的因素,汽車不安全、自行車也會爆胎讓你摔倒,甚至走路都會被天下掉下來的東西砸傷,但你會選擇不在戶外走路嗎?
這個問題假期間引發很大的討論,主要是針對網銀吧,免費 Wi-Fi 下的 https理論上肯定是存在被攻擊的可能,但那是理論上的,實際要產生有很多限制因素:
比如某位黑客膽大包天,觸犯法律風險之外,真的決定這麼做了,參考一些專家列的攻擊方式,要想成功攻擊需要滿足以下部分條件:
1 想辦法讓自己的免費WIFI吸引到他人的注意,這樣信號就需要弄的比較強
2 想辦法搞什麼DNS欺騙之類的,可能這類純技術活對於黑客來說這步反而簡單
3 用SSL欺騙,需要你的網銀客戶端沒有合理的校驗了SSL證書,雖然沒有統計,但我相信大部分網銀客戶端應該實現了合理校驗,所以也就是說要成功的攻擊,必須恰恰好你裝的是少部分沒有合理校驗SSL證書的網銀客戶端
4 替換ssl為http的,需要你的安全意識薄弱,注意不到發生的異常或注意到也忽略掉了!
5 弄個釣魚網站,我相信黑客這麼做也累,國內股份制銀行、信用卡中心、城商行加一塊上百家,我想黑客也沒有那個精力對每家銀行全部製作各自對應的釣魚網站,那麼為了提高效率,可能是選擇某一個或幾個銀行的頁面來製作釣魚網站,那麼如果你用的正好不是這個銀行的,那麼你也不會有事
6 萬一你手機上有什麼安全軟體,可能安全軟體對釣魚網站也會有存在告警,那麼就需要你對這個告警也無視
可能還有什麼0day之類的大殺器,看知乎很多人說一個0day能買幾十萬到幾百萬,那似乎也用不著用在這個場合,花這個精力去竊取網銀口令不如直接去賣0day好了
等等等等,總之,需要滿足一系列條件,你的網銀才真的可能被成功攻擊!你覺的這個成功率會有多少?
免費WIFI肯定不安全,什麼明文的電子郵件口令啥的很容易就被竊取,但用了HTTPS會大大增加攻擊成功的難度,降低可能性,所以我覺的正確做法是:沒啥緊急的事盡量不用免費WIFI,但真要有緊急事情需要在免費WIFI環境下用網銀也是可以的!對於上面這一堆長篇大論,我只問三個問題:
1,免費wifi和收費wifi的安全性有什麼差異?
2,免費wifi和你的辦公室網路的安全性有什麼差異?
3,https的安全性在上述環境中有何不同?
免費(無接入認證)的wifi和收費(有密碼?)的wifi安全性與你辦公室網路的安全性區別不大,就是一個屋裡是陌生人一個是你同事的差別。
推薦閱讀:
※路由器真的會成為網速的瓶頸嗎?
※當用戶接入WiFi後,iOS、WP、MIUI、EMUI、VIBEUI、Flyme等是否會自動加密數據保護用戶賬戶安全?
※如何有效增強家裡路由器的 Wi-Fi 信號?
※在公共 Wi-Fi 上使用網銀安全嗎?怎樣加強其安全性?
※為什麼手機比電腦接收 Wi-Fi 要信號要差?