用戶標識:html
username
password
設備標識:java
deviceid // imei/macaddr/flashid/rfid/buildid/uuid
phonenumber
手防禦層級逐漸加深,原創文章,轉載請註明出處,不然可能追責。c++
=================算法
一層防禦安全
目的:防君子服務器
方法:經過用戶名和密碼登陸。用戶名爲身份,密碼用來驗證身份。分佈式
二層防禦ui
目的:防空中抓包加密
方法:明文的用戶名和密碼經過算法進行加密傳輸 [對稱加密/非對稱加密/AES/RSA...]spa
三層防禦
目的:防有ROOT權限病毒程序 (自動保存功能會將密碼保存在本地,具備root權限的用戶能夠拿到)
方法:對本地保存的密碼進行加密 [Base64/md5/AES],這樣拿到的是加密後的密碼,沒有算法也不能逆向出原密碼。
參考:http://blog.csdn.net/hengyunabc/article/details/34623957
四層防禦
目的:防算法、密鑰被代碼逆向破解
說明:java代碼很容易被反編譯,黑客拿到算法代碼,反求出原密碼
方法:
1. 能夠考慮jni調用c\c++算法實現,arm的指令集反編譯後難懂,增長破解難度
2. 硬件加密,將算法和密鑰、ID放在專有硬件中,也就是所謂的加密芯片。
將原文經過接口傳入加密芯片,返回密文和密鑰。
五層防禦
目的:防分佈式暴力破解
說明:參照DES的不安全性文章
方法:
1. 用AES替代DES,128位替代64等,增長計算量
2. 採用非對稱加密,RAS,結合硬件加密技術,將原文經過接口傳入加密芯片,返回密文和隨機公鑰(此處要保證公鑰的數量和不重複性)
六層防禦
目的:防止密文被截獲、轉發
說明:服務器向車輛發出控制指令時,生成的隨機公鑰+密文可能會被空中抓包截獲,黑客稍後轉發指令,可實現對車輛的控制
方法:
1. 生成的公鑰在時間上具備時效性,超時則被丟棄
2. 隨機公鑰只能被使用一次或者幾回,完成操做後被丟棄,不可複用
七層防禦
目的:防止種種種種
說明:再好的安全體系也有漏洞
方法:
1. 加入異常監控裝置,實時提醒用戶存在異常,必要的時候可關閉可能會發生危險的功能
2. 法律和輿論
附錄
AES加密避免踩坑的方法:http://www.myhack58.com/Article/html/3/92/2015/67908.htm
移動App該如何保存用戶密碼:http://blog.csdn.net/hengyunabc/article/details/34623957
物聯網安全實戰,小米上榜:http://drops.wooyun.org/tips/10109
============================================
安全會是車聯網永恆不變的話題,路漫漫其修遠...