51信用卡到底安全吗?这个从普通用户角度除了看厂家的宣传,其实很难理解。
让我们从专业角度分析一下。
两个存在安全隐患的地方,email导入账单与网银导入账单。
邮箱导入账单
用户输入邮箱与密码
如果APP将邮箱与密码发到后台服务器上,并且保存起来(以便今后后台可以自动抓取账单),
那么安全问题很明显,因为后台实际保存了用户密码,一旦后台被(内部或外部)非法侵入,
用户邮箱密码即告泄露。
这里有一点需要注意,大多数网站,虽然有用户注册登录系统,但后台并没有保存用户密码,
而仅仅保存了单向加密后的结果(比如md5),简单说可以验证密码但无法获得密码。
因此即便这些网站被黑,也不会发生密码泄露问题。至于早年CSDN直接保存用户密码导致泄露则纯粹属于技术实现问题。
所以从理论上,如果采用这种模式,就存在无法克服的固有安全缺陷。
如果要避免这个问题,则必须修改模式,有如下几种方式:
1.后台不能自主去读取email,每次都必须由app发送密码。
也就是要么每次用户输入密码,要么将密码保存在前端APP,总之不能保存在后台。
如果保存在APP上,要保证手机丢失,手机被黑,邮箱密码依然不泄露,
邮箱密码保存因为只能用双向加密(必须还原成明文提交到后台),
所以双向加密的密钥就必须至少部分由用户掌握而非保存在手机里,
那么每次用户必须输入一个APP自身密码,或者是一个手势图形密码。
理论上,APP保证每次进入都获得仅仅用户所知的一个密钥,
通过这个密钥即可自动解开加密保存的邮箱密码,然后通过安全通道发送给51信用卡后台,
51信用卡后台使用这个密码去对应邮箱服务商获取email账单,使用后即丢弃。
这样安全有保证了,唯一损失的就是无法自动抓取账单了,用户必须至少定期登录一下APP。
2.email获取完全不通过后台
直接在APP去获取email,获得后可以将email发送给后台解析。
这种模式的好处是,51信用卡完全不会触碰到用户的邮箱密码了。
当然同样,APP也需要用户登录才可能自动解开保存的邮箱密码,然后去自动抓取email。
3.改进模式
不需要用户输入APP密码或手势。
手机APP首先获得一个随机的key1,保存在本地,并与邮箱口令明文一起发送给后台,
后台再随机生成一个key2,使用key1+key2来对称加密邮箱口令,保存后台。
这样,今后要且只要手机APP将key1发送给后台,后台就可以解出邮箱密码明文。
注意:这里key1无需加密即可保存在手机上。
黑客要同时拿到手机端的key1与后台的key2,才可以解开邮箱密码。
相比原来,51信用卡内贼实际是无法防范的,现在内贼必须先设法获得用户手机上的key1。
而黑客攻破用户手机后,也必须再攻破51信用卡后台。
当然理论上安全性,还是不如依赖只有用户知道的密码,因为至少在理论上,
只要用户APP密码足够复杂,经过对称加密的邮箱密码是无法破解的,即便把用户手机与51信用卡的服务器送给黑客。
但是实际环境中,这个用户设置的APP密码强度本身能有多高呢?
因为每次要用户输入一遍,显然大多数人不会设置很复杂了。
所以也许这种模式相对更简便安全一些。
key1和key2还可以定期不定期的更换,进一步加强安全性。
4.将银行账单email,改成或转发到51信用提供的邮箱
银行将账单直接发给51信用卡后台,完全不存在用户告知其他邮箱密码的风险了。
其实这本是51信用卡这类应用的正途,但是显然因为大众要便捷性(其实是对安全的无知),
加上前期技术难度,这种最安全的模式并没有创业者选择。
无法知道51信用卡的实现细节,也许还有类似csdn那样直接密码保存明文呢?
作为对普通用户的忠告,你非要用,最好选这种方式。
记住一点:那里的密码只能告诉那里,其他地方绝对不要输入。
51信用卡使用网银密码的安全问题
http://blog.csdn.net/qq_16414307/article/details/48493003
版权声明:本文为博主原创文章,未经博主允许不得转载。