楼主,你的命题是伪命题
我来解释一下web安全传送体系,
web安全传送的基础功能是https,
https的安全是建立在一定的基础安全之上的,如果你把这个安全基础给剥离了,再来研究它的安全性,就没有必要了,
https安全的基础 是,
1.dns安全,确保用户访问的是正确的url
2.证书安全,确保用户访问对应的url证书合法。不正确的证书,浏览器会提示
3.用户操作安全,不被人身威胁,并且对于不合法的url能正确认知
4.用户不被诱导至错误操作
如果以上4个保证不了,https自然就不安全了。
在实际使用中
https通过数学算法来保证证书不被经易伪造,并通过这个不易伪造的证书来确保url不易伪造性,因为证书中包含url
如果你伪造一个证书,并伪造一个web服务器,通过修改dns让用户来访问你的伪造web,那么,因为你的证书是伪造的,所以用户那里会提示,按照https初忠,用户发现伪造的web,就应该了解它是不安全的。
所以,楼主中所讲的https部分,我不是很同意你的意见。https本身是安全的,你的试验,是一个不安全的基础上去讨论https安全,就像v校所说的,只要能注入并hook,所谓的安全都不存在了。如果能注入hook,那么,说明这个基础是不安全的。那么,在这个不安全基础上的东西,自然就不安全了。楼主并不能说明淘宝的登陆方式采用https而不安全。要是按楼主这么想法,现在这个世界上,如果在时间上不作限制,是没有安全而言,跟本就不存在所谓的绝对安全,
然而遗憾的是登陆数据包是可以被截获的,即便使用了https加密通道。
我很遗憾地告诉 你,在安全的基础 上时,你是不能截获https明文数据的,你的方法1中,是建立在一个不安全的基础 上,那就是用户认为你的代理就是合法web的基础上,你的命题是伪命题
现在的网络安全,是在一定时效与成本内,它是安全的。
所以,楼主 的解决方案,如果在楼主的命题基础 上,还是不安全,为什么不安全呢,下面给你讲解。
首先,一个不安全的基础 就是,我能架设代理,并且让你访问我,而且认为我就是真的服务器。
你的方法如下
一家韩国游戏公司的登陆设计可以用来参考。登陆地址https://nid.naver.com/nidlogin.login
他的登陆过程分为两步, 首先从www.nid.naver.com/login/ext/keys.nhn 获取公钥加密key
然后利用上一步得到的key加密用户名和密码,提交加密后的用户名和密码到www.nid.naver.com/nidlogin.login。由此得到的登陆信息是动态变化的,不可重放
我的代理中生成公钥和私钥。
当你访问www.nid.naver.com/login/ext/keys.nhn 获取公钥加密key (当然,这是我的代理哟)
我把我生成的公钥地给人你,你加密吧,加密后发给我,我用私钥解码,就能得到你的用户名密码,有了用户名,密码,你不让去登陆真正的web吗?
评价你的解决方案:多此一举