宁波网站建设方案联系方式,免费的小程序商店,私自使用他人图片做网站宣传,丽水网站建设哪家好HTTP的安全问题#xff1f;
我们都知道HTTP是不安全的#xff0c;而HTTPS是安全的#xff0c;那HTTP有哪些安全问题呢#xff1f;#xff08;考虑传输过程以及响应方#xff09; 明文传输#xff0c;有窃听风险#xff1a;HTTP协议无法加密数据#xff0c;所有通信数…HTTP的安全问题
我们都知道HTTP是不安全的而HTTPS是安全的那HTTP有哪些安全问题呢考虑传输过程以及响应方 明文传输有窃听风险HTTP协议无法加密数据所有通信数据都在网络中明文传输通过网络的嗅探设备及一些技术手段就可轻易窃听并还原HTTP报文内容。 无法验证数据完整性有篡改风险HTTP协议无法证明通信的报文完整性发送方发出的请求和接收方接收到的响应是前后相同的没有被篡改的。 无法验证通信方身份有冒充风险在请求或响应到达接收方这段时间内请求或响应被第三方拦截伪造之后再次发出通信双方也无法知晓。 HTTPS如何解决的 混合加密明文解决窃听风险 摘要算法为数据生成一个唯一的指纹通过指纹验证报文完整性解决篡改风险 将服务器公钥放入到数字证书中并把证书注册到CA解决了冒充风险。 混合加密
HTTPS采用了非对称加密和对称加密结合的方式 TLS握手期间采用非对称加密交换交换随机数生成会话密钥 此后的通信过程采用对称加密的会话密钥进行加密 为什么用混合加密
对称加密虽然加密、解密的运算速度快但是如果在HTTP明文传输密钥那密钥可能会被窃取也就相当于没有加密
所以在对称加密之前用非对称密钥加密随机数生成一个对称加密的会话密钥保证这个会话密钥不会被窃取。 那为什么不直接用非对称密钥加密来进行通话的数据加密呢
那是因为非对称密钥加密、解密的运算速度会比对称加密慢对于数据通信我们自然不希望加密、解密的运算速度比传输的RRT还长。 非对称加密和对称加密的区别 非对称加密发送方用接收方的公钥加密接收方用私钥解密或者发送方用自己的私钥加密接收方用自己的公钥解密 对称加密双方用同一对密钥进行加密和解密 摘要算法
以下的指纹、hash值都是一个意思。
为了保证传输的内容不被篡改我们需要对内容计算出一个「指纹」这个哈希值是唯一的且无法通过哈希值推导出内容。然后同内容一起传输给对方接收方再次计算数据的hash值和指纹比对相同说明数据没有被篡改但是不能说明内容和hash值没有一起被篡改也就是消息来源是正确的吗这时候就要用到非对称加密 公钥加密私钥解密。这个目的是为了保证内容传输的安全保证只有私钥拥有者才能获取到数据 私钥加密公钥解密。这个目的是为了保证消息不会被冒充保证消息来源是正确的
对指纹用私钥加密然后客户端有对应的公钥就可以解密比对数据的hash值和指纹相同则说明内容没有被篡改。 数字证书认证机构CA
万一公钥是被伪造的呢这时候就需要有第三方的验证。
CA是第三方权威机构服务端把「个人信息 公钥」打包成一个数字证书放到CACA会用自己的私钥加密数字证书得到一个数字签名客户端收到数字证书后先去CA验证是否合法用CA的公钥解密比对hash值如果验证成功就可以获取到服务端的公钥。 HTTPS建立连接流程
TLS握手在TCP三次握手之后那RSA算法举例主要分为以下几个步骤 客户端发送请求询问服务端用哪些密码套件和TLS版本 服务端ACK确认密码套件和TLS版本同时会向客户端发送自己的数字证书有服务端的公钥客户端收到之后进行验证数字证书有效从中获取到服务端公钥用公钥加密一个随机数发送给服务端服务端收到后用自己的私钥解密得到随机数用这个随机数生成一个对称的会话密钥 客户端发送请求请求之后的会话都用这个会话密钥服务端响应ACK 服务端发送请求请求之后的会话都用这个会话密钥客户端响应ACK TLS握手完成HTTPS建立连接完成 如何验证数字证书有效
正如前面的摘要算法以及CA提到的会对原文生成一个指纹CA用私钥加密这个指纹得到数字签名服务端同样对原文生成一个指纹用CA公钥解密数字签名得到一个hash值比对hash值和指纹如果相同则说明验证成功。 HTTPS真的安全吗
当有第三方在客户端和服务端中间第三方伪造服务端和客户端TLS握手同时第三方伪造客户端和服务端TLS握手不就会产生问题吗
换个问题表述可以理解为第三方冒充的问题主要是数字证书的信任问题当你点击一个有风险的连接浏览器会弹出警告这时候如果你点击拒绝访问自然TLS握手失效也就不会有后面的数据通信过程或者是电脑中病毒了被第三方恶意植入了它的证书浏览器不会弹出风险警告那么通信也不再安全。