http 是建在 tcp 之上的传输, https 在 http 基础上加了一个 ssl 层保证了传输通道的安全(不知道我理解的对吧)。 那么如果直接通过 tcp 传输,怎么保证数据安全呢?
请大家解答下,谢谢
1
nbndco 2016-04-28 09:52:00 +08:00
ssl 通道建立了直接发不就完了
|
2
jasontse 2016-04-28 10:02:21 +08:00 via iPad
错了, HTTPS 的层级关系是 TCP ➡️ TLS ➡️ HTTP 。
TCP 负责传输, TLS 保证安全性, HTTP 才是内容。 |
3
shiji 2016-04-28 10:07:19 +08:00 1
1. TLS over TCP
2. 主流的其实都很安全。 |
5
firefox12 2016-04-28 10:27:46 +08:00 1
TCP 本身也有校验机制,可以保证一定概率 “意外”地被修改,但是无法保证 “故意的”被修改。
简单的比方,我们找顺丰送快递, 东西放在一个铁盒子里。 铁盒子可以保护东西被破坏。 对方打开铁盒子就可以拿到我们的东西。 这个铁盒子可以保护 10 吨的压力。 一般的情况是不会有问题的,但是也可能遇到 100 吨压力,就坏了。但是铁盒子不写名字,所以快递员 可以把铁盒子 里的东西换掉换成废纸,这点是铁盒子保护不了的。 如果要安全保证 怎么办, 我们送给顺丰的是一个 保险箱,东西放在保险箱里面。 保险箱直接放在铁盒子里面。 铁盒子受到 100 吨压力,就坏了,铁盒子 也会丢,但是不要紧里面的保险箱 谁都打不开,因为它们没钥匙。快递员没办法打开保险箱。 铁盒子 就是 tcp, 保险箱就是 tls. |
6
miyuki 2016-04-28 10:37:47 +08:00 via Android 1
|
7
tony1016 2016-04-28 12:03:40 +08:00
很简单的原理,把 TCP 装载的数据加密了,截获不就没用了嘛
|
8
paw 2016-04-28 18:46:56 +08:00
先 TCP 握手,建立数据通道 OK 后, TLS 再在 TCP 链路之上开始握手协商加密,完成之后, TCP 链路上的数据都是加密的
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html |