标签:完成 就是 权限 完整 http请求 md5 sha one 包含
在HTTP协议中有可能存在信息窃听或者身份伪装等问题,使用HTTPS协议通信机制可以有效地防止这些问题。
按照TCP/IP协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。即便是加密处理后的通信,也会被窥视到通信的内容,但是加密后,可能让人无法破解报文信息的含义,但是加密后的报文信息本身还是会被看到的。这里有两种不同形式的加密方式,通信加密和内容加密。
HTTP协议中没有加密机制,但是可以通过可SSL【Secure Socket Layer —— 安全套接字层 注:TLS前身】或者TLS【Transport layer Security——安全传输层协议】的组合使用,来加密通信内容。使用SSL建立安全的通信线路后,就可以在这条线路上进行HTTP通信了。
只对HTTP协议传输的内容本身进行加密。即把HTTP报文中的内容进行加密处理,报文的首部不加密,报文主体会加密。
HTTP协议实现非常简单,不论是谁发送过来的请求都会返回响应【不考虑Web服务器限制访问的情况】。因此会存在以下几种隐患:
因此,为了解决这些问题,有以下几种方法。
SSL不仅提供了加密处理的功能,还是用了一种被称为证书的手段,可以用于确认通信的双方。证书需要由值得信任的三方进行颁发,用以证明通信双方是真实存在的。
请求或者响应在传输途中,遭遇到攻击者拦截并且篡改内容的攻击称为中间人攻击【MITM】。
HTTPS其实就是先和SSL进行通信,再由SSL和TCP进行通信
加密和解密使用同一个密钥的方式成为共享密钥加密,也被叫做对称密钥加密。可是密钥要怎么发送呢,既然密钥都能安全发送了,是不是数据也可以不通过加密就可以安全发送呢?
非对称加密使用两把密钥,一把是公钥,一把是私钥。使用非对称加密的双方,发送方使用公钥对数据进行加密,接收方使用私钥进行解密。
非对称加密还存在一个问题,那就是无法证明公开密钥的正确性。比如,如果打算和某台服务器建立公开密钥加密方式下的通信时,怎样证明收到的公开密钥就是服务器一开始发行的公开密钥呢?
为了解决这个问题,可以使用由数字证书认证机构和其相关机关颁发的公开密钥证书。服务器可以将这份公钥证书发送给客户端,以进行公开密钥加密方式通信。
标签:完成 就是 权限 完整 http请求 md5 sha one 包含
原文地址:https://www.cnblogs.com/zerodsLearnJava/p/12416981.html