Skip to content

Instantly share code, notes, and snippets.

@gooooloo
Created September 18, 2015 12:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gooooloo/3f1845f10518e18655bb to your computer and use it in GitHub Desktop.
Save gooooloo/3f1845f10518e18655bb to your computer and use it in GitHub Desktop.

HTTPS in laymen's terms

###HTTP的问题:

  • 传输过程没加密
  • 不能确保对方是正牌的服务器
  • 不能确保传输过程中没有被调包

举个例子讲就是,你要让快递把一个包裹寄给你朋友。有如下问题:

  • 快递员随时可以打开包裹看到你包裹里的东西是什么。
  • 包裹可能被人冒领。
  • 包裹里的东西可能被调包一部分。

###可能的解决办法:

  • 首先考虑的是把包裹锁上,只有朋友才有钥匙去打开。但是我身边并没有锁,所以要先让朋友把那个锁寄过来。我收到锁,把包裹锁上,寄出去,只有朋友能打开。就解决第一个问题。

  • 但是在我收到那个锁的时候,怎么能知道那个锁是朋友给的呢?毕竟不是面对面给的,而是也只能通过快递。要是快递给了我一个他自己的锁,然后告诉我这个是朋友给的,我用那个锁,快递员就可以自己打开锁了。

  • 为了解决这个问题,我们让公证处来帮忙。朋友寄锁的时候,先去找当地的公证处,让公证处用他们的章证明这个锁是朋友的。然后通过快递寄给我。我收到后,先去我当地的公证处,让公证处证明我收到的章确实不是伪造的。然后我就可以放心的用朋友的锁了。

  • 到了这一步,问题的核心就是公证处必须够安全,没有人可以假冒公证处(我去的公证处不是别人假冒的),公证处的章也没有办法伪造。

###总结一下到目前为止的流程:

  1. 告诉朋友我要寄东西给他,让他寄个锁给我用。
  2. 朋友准备好所,去公证处盖章。
  3. 朋友把锁和章一起通过快递寄给我。
  4. 我收到后,去我当地的公证处检查那个章是不是正确的。
  5. 检查通过后,我把包裹锁上,再寄出去。
  6. 朋友收到后,打开锁。

###如果有坏人?

  • 坏人想偷看包裹内容?有锁!而且他没有钥匙。
  • 坏人想用自己的锁调包朋友的锁?有公证处的章!
  • 坏人想冒领包裹?他冒领到了也打不开锁。
  • 坏人想在包裹之外再加个定时炸弹一起送过来,然后宣称是我寄出去的?额,这个还没有解决。

###怎么保证我的包裹没有被加塞东西? 这个很容易,我再寄出去东西的时候,加上一个物件列表,一起放在被锁的包裹里。朋友打开锁和包裹后,检查物件,有不在我的物件列表里的,就知道这个快递被人做过手脚了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment