小白眼中的https👀

453 阅读3分钟

https的作用

将SSL引入http,在两个系统(比如客户端和服务端)中可以传输信息的同时保证安全性,即使传输过程中被别人截胡,别人也看不出什么,因为传输的信息都被加密了。

和http的区别

  1. 加密和不加密的文本传输
  2. http默认端口80 https默认端口443
  3. 网址开头不一样
  4. 数据传输更快因为信息被加密后减小了体积

对称加密和非对称加密

对称加密:双方握有同一个key,可以事先双方协定好。这个key可以同时用来加密和解密。

非对称加密: 一对🔑,公钥和私钥; 公钥可以解密私钥加密的信息,私钥也可以解密公钥的信息,公钥可以分享给任何人。有的时候比如第一次沟通,双方无法见面的情况下就要用到非对称加密。

举例利用非对称加密客户端到服务端的请求安全。

  1. 客户端向服务端发送连接请求。
  2. 服务端将公钥发送给客户端,同时保留一份私钥。
  3. 客户端收到公钥后将待发送的信息利用公钥加密发给服务端。
  4. 服务端利用私钥将客户端发来的信息进行解密。

这个过程是为了保证客户端到服务端的信息不被拦截。黑客如果在第三部拦截的话,他没有私钥解密不了信息。但是存在一个问题,如果第二部被黑客拦截了,黑客将自己的公钥发送给客户端,客户端然后就会将自己的信息用黑客的公钥加密发送的时候再被黑客拦截信息就被黑客知道了。

证书的作用

要能保证我收到的公钥是要能和我想沟通的人对的上。所以就会想到在这个公钥上加上签名,表明这个人的身份。但是就比如说你想和小明沟通上。当你第一次和小明沟通的时候,你无法确认你收到的签名是不是小明签的。

为什么不能确认是小明:小明的签名里说我就是小明。那小黑也可以发个签名说我是小黑。

怎么做:引入第三方机构证明小明就是小明;就好像身份证一样,这是国家机构证明你的个人身份。

伪造证书

伪造证书本身是不困难;但是浏览器只能信任某些权威机构签发的证书。这些权威机构的算法很复杂,保证了不会被轻易伪造签名。

SSL具体如何工作

ssl Secure Socket Layer . 它是一个传输加密的机制,信息在两个系统之间传输时它来保证传输的安全性,比如什么用户信息,银行卡账号密码。 ssl通讯主要分为两个步骤

  1. ssl 握手
  2. 实际数据传输

ssl握手

握手阶段是非对称加密,实际数据传输过程是对称加密。

  1. 客户端发送客户端的ssl版本号,密码设置(cipher settings)给到服务器
  2. 服务器应答服务器的ssl版本号,密码设置。ssl 证书(里面包含有公钥)
  3. 客户端在CA处验证ssl证书。验证成功后往下走,验证失败则抛错
  4. 客户端创建一个session key。以刚刚验证过的公钥加密发送给服务器。
  5. 服务器用对应的私钥解密出session key.并且用session key 加密后的信息告知客户端。 key是用于后续传输数据的对称加密的key。非对称加密的公钥和私钥这个时候就不使用了。

实际数据传输

用上面得到的session key 对称加密进行传输。

参考链接

medium.freecodecamp.org/https-expla…

Learn Https