【HTTPS】SSL握手层

HTTPS HTTPS是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,其所用的端口号是443。 SSL是安全套接层,是主要用于Web的安全传输协议,通过证书认证来确保客户端和网站服务器之间的通信数据是加密安全的。

两种加解密算法
  • 对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有:DES、AES、RC5、3DES等 对称加密的问题主要是共享密钥,除非你的计算机直到另一台计算机的私钥秘钥,否则无法对通信流进行加密解密。解决这个问题可以使用非对称加密。
  • 使用两个秘钥:公共秘钥和私有秘钥。私有秘钥由一方保存(一般是服务器保存),另一方任何人都可以获得公共秘钥。

这种秘钥成对出现(且公钥和私钥无法互相推知),加解密使用不同的秘钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对于对称加密而言速度较慢,典型的非对称加密算法RSA、DSA。

https的通信过程
  1. SSL客户端通过TCP和服务器建立连接后(443端口),并且在一般的tcp连接协商(握手)过程中请求证书。(即客户端发出一个消息给服务器,这个消息里面包含了自己可实现的算法列表和其他一些需要的消息,SSL服务器会回应一个数据包,这里面确定了这次通信所需要的算法,然后服务器向客户端返回证书(证书里面包含了服务器信息:域名。申请证书的公司,公共秘钥))。
  2. Client在收到服务器返回的证书后,判断签发这个证书的公共签发机构,并使用这个机构的公共秘钥确认签名是否有效,客户端还会确保证书中列出的域名是它正在连接的域名。
  3. 如果确认证书有效,那么生成对称秘钥并使用服务器的公共秘钥进行加密,然后发送给服务端。
  4. 服务端使用它的私钥对加密的对称秘钥进行解密可得到对称秘钥。
  5. 使用对称秘钥发送加密的密文。
https通信的优点
  • 客户端产生的秘钥只有客户端和服务器能得到;
  • 加密的数据只有客户端和服务端能得到明文;
  • 客户端到服务端的通信是安全的;
发布了341 篇原创文章 · 获赞 14 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/LU_ZHAO/article/details/105294940