关于HTTPS的疑问

2013-10-11 11:40:33 +08:00
 revlis7
一般站点登录页面都会用https做加密,防止用户信息在传输过程中泄漏。但是假如两个请求的参数都相同的话,https加密后的数据是完全一样的吗?

假如说一个登陆请求明文是12345,加密后数据是ABCDE,如果这个加密数据被截获,我们不用去破解里面的具体信息,直接用拦截下的加密包伪造一个登陆请求,是否能够让登陆进行下去,并获得别人的帐号登录权限?

如果这种情况不会发生,那么是什么机制实现的呢?
3467 次点击
所在节点    问与答
11 条回复
binux
2013-10-11 11:53:21 +08:00
kurtis
2013-10-11 11:56:26 +08:00
咳, 我也不懂具体如何实现,但是不需要很复杂的设计就能防止你说的情况发生。

1. 由于全文加密,你不知道一个报文里哪段是加密的登陆口令。

2. 基于1,如果 每次连接都有内容更换,例如时间戳甚至加密密码本身,在没有原文的情况下,你无法构造出下次登录的报文。

3. 如果有量子计算技术,基本上目前的传统的密钥都会被破解。

4. 如果采用量子传输技术,一旦观察者开始观察报文,报文就被破坏了。

5. 所以量子技术才是王道。
est
2013-10-11 12:14:07 +08:00
> 直接用拦截下的加密包伪造一个登陆请求,是否能够让登陆进行下去,并获得别人的帐号登录权限?

SSL/TLS是 block cipher,当前加密block依赖上一个block的结果。所以你没法只替换掉某一个block,必须从第0个block全部重新开始加密。

所以整个加密体系就是,即便你只改变一个 bit 的信息,也会导致密文非常大程度的改变。
est
2013-10-11 12:17:16 +08:00
@kurtis 量子技术没有你吹嘘的那么安全。量子只保证了传输层的安全,但是安全体系又不止是传输层。


http://www.technologyreview.com/view/428202/quantum-cryptography-outperformed-by-classical-technique/

传统方法就可以破解量子通信
clino
2013-10-11 13:15:19 +08:00
"但是假如两个请求的参数都相同的话,https加密后的数据是完全一样的吗?"
不是很了解,但这个答案我觉得应该是不会一样的,上面那个wikipedia提到"客户端与服务器通过公钥保密协商共同的主私钥(双方随机协商)" ,可能是用这个方法吧
revlis7
2013-10-11 13:59:04 +08:00
其实我想解决的是如何识别请求者身份合法的问题,把自己给绕进去了。

对https来说,即使相同的数据,伪造请求的人拿到服务器响应的包也没用,因为没有私钥可以解密,所以这个应该不是问题。
BOYPT
2013-10-11 14:07:50 +08:00
啧。。这密码常识了好吧。

即使在简单的对称加密条件下,加盐值以避免相同明文生成的密文一样的做法很基础基础了好吧。

相同POST参数怎么可能会有相同报文。
revlis7
2013-10-11 15:18:16 +08:00
@BOYPT 我想问的不是密文破解的问题,而是对于两次完全相同请求,服务器是否可以有方法鉴别哪个是真实合法的问题,有点类似于中间人攻击,这个过程里并不需要去解密你的信息。
rankjie
2013-10-11 21:33:37 +08:00
每个客户和服务器通信使用的密钥都是不同的,所以相同数据在传递过程中的密文也不同
lehui99
2013-10-12 00:23:56 +08:00
参见rfc5246中6.1节的struct定义 http://tools.ietf.org/html/rfc5246#section-6.1
数据的加密包含服务器产生的随机数,每次连接服务器都会将重新产生的随机数通过之前协商好的密钥加密后发给客户端,重放攻击中的随机数是之前连接的随机数而不是本次连接的随机数,所以重放攻击无效。
即使劫持连接进行重放,因为有sequence number(是ssl的,不是tcp的seq),所以也无效。
BOYPT
2013-10-15 17:43:18 +08:00
@revlis7 两次完全相同的请求,第二次肯定是无效的,加密原理决定。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/85206

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX