1
binux 2013-10-11 11:53:21 +08:00 1
|
2
kurtis 2013-10-11 11:56:26 +08:00 1
咳, 我也不懂具体如何实现,但是不需要很复杂的设计就能防止你说的情况发生。
1. 由于全文加密,你不知道一个报文里哪段是加密的登陆口令。 2. 基于1,如果 每次连接都有内容更换,例如时间戳甚至加密密码本身,在没有原文的情况下,你无法构造出下次登录的报文。 3. 如果有量子计算技术,基本上目前的传统的密钥都会被破解。 4. 如果采用量子传输技术,一旦观察者开始观察报文,报文就被破坏了。 5. 所以量子技术才是王道。 |
3
est 2013-10-11 12:14:07 +08:00 1
> 直接用拦截下的加密包伪造一个登陆请求,是否能够让登陆进行下去,并获得别人的帐号登录权限?
SSL/TLS是 block cipher,当前加密block依赖上一个block的结果。所以你没法只替换掉某一个block,必须从第0个block全部重新开始加密。 所以整个加密体系就是,即便你只改变一个 bit 的信息,也会导致密文非常大程度的改变。 |
4
est 2013-10-11 12:17:16 +08:00 2
@kurtis 量子技术没有你吹嘘的那么安全。量子只保证了传输层的安全,但是安全体系又不止是传输层。
http://www.technologyreview.com/view/428202/quantum-cryptography-outperformed-by-classical-technique/ 传统方法就可以破解量子通信 |
5
clino 2013-10-11 13:15:19 +08:00
"但是假如两个请求的参数都相同的话,https加密后的数据是完全一样的吗?"
不是很了解,但这个答案我觉得应该是不会一样的,上面那个wikipedia提到"客户端与服务器通过公钥保密协商共同的主私钥(双方随机协商)" ,可能是用这个方法吧 |
6
revlis7 OP 其实我想解决的是如何识别请求者身份合法的问题,把自己给绕进去了。
对https来说,即使相同的数据,伪造请求的人拿到服务器响应的包也没用,因为没有私钥可以解密,所以这个应该不是问题。 |
7
BOYPT 2013-10-11 14:07:50 +08:00
啧。。这密码常识了好吧。
即使在简单的对称加密条件下,加盐值以避免相同明文生成的密文一样的做法很基础基础了好吧。 相同POST参数怎么可能会有相同报文。 |
8
revlis7 OP @BOYPT 我想问的不是密文破解的问题,而是对于两次完全相同请求,服务器是否可以有方法鉴别哪个是真实合法的问题,有点类似于中间人攻击,这个过程里并不需要去解密你的信息。
|
9
rankjie 2013-10-11 21:33:37 +08:00 via iPhone
每个客户和服务器通信使用的密钥都是不同的,所以相同数据在传递过程中的密文也不同
|
10
lehui99 2013-10-12 00:23:56 +08:00 via Android
参见rfc5246中6.1节的struct定义 http://tools.ietf.org/html/rfc5246#section-6.1
数据的加密包含服务器产生的随机数,每次连接服务器都会将重新产生的随机数通过之前协商好的密钥加密后发给客户端,重放攻击中的随机数是之前连接的随机数而不是本次连接的随机数,所以重放攻击无效。 即使劫持连接进行重放,因为有sequence number(是ssl的,不是tcp的seq),所以也无效。 |