用户标识:
username
password
设备标识:
deviceid // imei/macaddr/flashid/rfid/buildid/uuid
phonenumber
手防护层级逐渐加深,原创文章,转载请注明出处,否则可能追责。
=================
一层防护
目的:防君子
方法:通过用户名和密码登录。用户名为身份,密码用来验证身份。
二层防护
目的:防空中抓包
方法:明文的用户名和密码通过算法进行加密传输 [对称加密/非对称加密/AES/RSA...]
三层防护
目的:防有ROOT权限病毒程序 (自动保存功能会将密码保存在本地,具有root权限的用户可以拿到)
方法:对本地保存的密码进行加密 [Base64/md5/AES],这样拿到的是加密后的密码,没有算法也不能逆向出原密码。
参考:http://blog.csdn.net/hengyunabc/article/details/34623957
四层防护
目的:防算法、密钥被代码逆向破解
说明:java代码很容易被反编译,黑客拿到算法代码,反求出原密码
方法:
1. 可以考虑jni调用cc++算法实现,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
============================================
安全会是车联网永恒不变的话题,路漫漫其修远...