https

HTTP 传输面临的风险有:

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,因此有可能遭遇伪装
  • 无法证明报文的完整性所以有可能已遭篡改

https概念

HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
在这里插入图片描述

HTTP+ 加密 + 认证 + 完整性保护 =HTTPS

 HTTPS 比 HTTP 要慢 2 到 100 倍

 与纯文本通信相比,加密通信会消耗更多的CPU 及内存资源。

 要进行 HTTPS 通信,证书是必不可少的。而使用的证书必须向认证机构(CA)购买。

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

https原理

https是不是绝对安全

这个的答案是否定的,HTTPS只是解决了数据在传输过程中的安全性和保密性,这一点用一般的wireshark就能验证(注意这里指的是一般)。如果是服务器或者证书出现问题那么https是肯定解决不了的。

先来说说对称加密和非对称加密

对称加密

就是通信的双方使用的是同一套算法,比如说对一个文件进行用这个算法进行加密,那么用这个算法或者这个算法的逆过程就能解密,这样带来的开销往往会小一些

非对称加密

为什么会出现非对称加密,就是因为对称加密的算法是可以被攻破的,(最坏的情况下穷举攻击能攻破的),就比如说当初密码学刚刚产生的时候的凯撒密码,如下:
abcd

进行加密之后变为:
efgh

我们很容易就能够猜出来就是由明文的每个字符+4就变成了密文,这样如果算法被攻破的话,密码也就随之知道了。

非对称加密分为两个密钥:公钥和私钥。公钥是谁都能有,用于对信息加密,只有私钥才能解密。如果想进一步了解,可以看看我以前写过的一篇关于RSA的的文章(要有一定的数论基础哟):RSA非堆成加密算法的实现

如果您了解了非对称加密算法,就知道这个算法相对于对称加密算法来说,是十分浪费时间和资源的

https要知道的几个加密算法

  • 握手的时候使用的非对称加密算法 ,用来加密握手之后的请求和应答
  • 传输信息的时候使用的对称加密,
  • 保证数据的完整性用的是hash算法(数字签名)

HTPS的工作过程

  1. 客户端发送自己支持的加密规则给服务器,代表告诉服务器要进行连接了
  2. 服务器从中选出一套加密算法和hash算法以及自己的身份信息(地址等)以证书的形式发送给浏览器,证书中包含服务器信息,加密公钥,证书的办法机构
  3. 客户端收到网站的证书之后要做下面的事情:
    • 验证证书的合法性
    • 如果验证通过证书,浏览器会生成一串随机数,并用证书中的公钥进行加密
    • 用约定好的hash算法计算握手消息,然后用生成的密钥进行加密,然后一起发送给服务器
  4. 服务器接收到客户端传送来的信息,要求下面的事情:
    • 用私钥解析出密码,,用密码解析握手消息,验证hash值是否和浏览器发来的一致
    • 使用密钥加密消息,回送
  5. 如果计算法hash值一致,握手成功
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章