###HTTP的问题:
- 传输过程没加密
- 不能确保对方是正牌的服务器
- 不能确保传输过程中没有被调包
举个例子讲就是,你要让快递把一个包裹寄给你朋友。有如下问题:
- 快递员随时可以打开包裹看到你包裹里的东西是什么。
- 包裹可能被人冒领。
- 包裹里的东西可能被调包一部分。
###可能的解决办法:
-
首先考虑的是把包裹锁上,只有朋友才有钥匙去打开。但是我身边并没有锁,所以要先让朋友把那个锁寄过来。我收到锁,把包裹锁上,寄出去,只有朋友能打开。就解决第一个问题。
-
但是在我收到那个锁的时候,怎么能知道那个锁是朋友给的呢?毕竟不是面对面给的,而是也只能通过快递。要是快递给了我一个他自己的锁,然后告诉我这个是朋友给的,我用那个锁,快递员就可以自己打开锁了。
-
为了解决这个问题,我们让公证处来帮忙。朋友寄锁的时候,先去找当地的公证处,让公证处用他们的章证明这个锁是朋友的。然后通过快递寄给我。我收到后,先去我当地的公证处,让公证处证明我收到的章确实不是伪造的。然后我就可以放心的用朋友的锁了。
-
到了这一步,问题的核心就是公证处必须够安全,没有人可以假冒公证处(我去的公证处不是别人假冒的),公证处的章也没有办法伪造。
###总结一下到目前为止的流程:
- 告诉朋友我要寄东西给他,让他寄个锁给我用。
- 朋友准备好所,去公证处盖章。
- 朋友把锁和章一起通过快递寄给我。
- 我收到后,去我当地的公证处检查那个章是不是正确的。
- 检查通过后,我把包裹锁上,再寄出去。
- 朋友收到后,打开锁。
###如果有坏人?
- 坏人想偷看包裹内容?有锁!而且他没有钥匙。
- 坏人想用自己的锁调包朋友的锁?有公证处的章!
- 坏人想冒领包裹?他冒领到了也打不开锁。
- 坏人想在包裹之外再加个定时炸弹一起送过来,然后宣称是我寄出去的?额,这个还没有解决。
###怎么保证我的包裹没有被加塞东西? 这个很容易,我再寄出去东西的时候,加上一个物件列表,一起放在被锁的包裹里。朋友打开锁和包裹后,检查物件,有不在我的物件列表里的,就知道这个快递被人做过手脚了。