在開發藍象安全雲的過程中,我們學習了iOS的生物驗證登錄技術(包括Touch ID 和 Face ID)。然後對比了一些常用的App的指紋登錄功能,發現很多並沒有充分利用iOS的安全能力。跟大家分享一下相關的知識,也希望我們使用的App也能夠越來越安全。
登錄驗證
為什麼要登錄驗證
早期的互聯網服務大多是沒有登錄的,主要是靜態內容,大家瀏覽。後來有一些簡單的論壇,聊天室等動態服務,這個時候就需要密碼進行身份認證了。再後來登錄作為身份驗證的方式就廣泛應用到很多很多互聯網服務了。
密碼登錄的安全問題
然而登錄要做到安全非常不容易。賬號密碼一旦落入他人之手,就可能泄露所有信息,甚至被用來詐騙。密碼登錄的安全問題有哪些呢?
1. 使用HTTP登錄驗證,而不是HTTPS
很多知名的大公司,包括前些年QQ也採用這種方式登錄,自己設計了方法來加密用戶輸入的密碼,通過HTTP方式提交到伺服器驗證,後來也放棄了。
一定要使用HTTPS驗證用戶名和密碼
一定要使用HTTPS驗證用戶名和密碼
一定要使用HTTPS驗證用戶名和密碼
2. 使用HTTPS登錄驗證,但是登錄頁面本身是HTTP
有些技術人員認為只要登錄驗證使用HTTPS,保證用戶名密碼不會泄露就安全了,登錄框用HTTP也可以,還可以節省伺服器資源,畢竟HTTPS握手很耗CPU。
這是一個很常見的錯誤,因為HTTP不安全,伺服器通過HTTP發送給用戶的網頁,很容易被嵌入JS代碼。大家對運營商嵌入網頁的廣告一點都不陌生吧,如果用戶使用了不安全的無線路由器,或者沒有密碼保護的免費Wi-Fi,試想一下,如果被嵌入惡意JS代碼,那輸入的用戶名密碼就暴露了!暴露了!暴露了!