Https简述

Https简述

众所周知Https比Http安全,可是Https安全在哪,他为啥安全????

在网络上传输数据肯定要对数据加密,Http这样裸奔肯定是不安全的,被别人监听以及篡改我们都无法得知。Https安全至少要加密吧。

什么是对称加密?

需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
因此加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。
总结来说就是:信息传递双方使用相同的密钥来加密以及解密,加密解密速度快。

什么是非对称加密?

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
总结来说就是:两者的密钥不同。

我们怎样才能构造一个安全的传输方式?

方案一:
我们直接使用明文传输数据,这也就是Http所做的,这样毫无安全性可言。
方案二:
我们使用对称的加密方式,这样我们就可以做到数据的密文传输。但是这样有一个弊端,就是客户端与服务器端第一次交流使用明文沟通确定要使用的密钥时,容易被监听以及篡改。
方案三:
我们使用非对称的加密方式,客户端使用网站提供的公钥对数据加密,网站使用自己的私钥对数据解密,但是非对称加密的加密解密速度比较慢,能不能有种跟好的方案解决问题。
方案四:
既然只是用对称加密第一次传输时不安全,那我们可不可以利用非对称加密来传输我们对称加密的密钥(对称加密的密钥一般为16位:可以由26个数字和字母构成)。客户端使用网站提供的公钥来对对称加密的密钥就行加密,网站使用自己的密钥来对第一次非对称传输的私钥进行解密。这样来你这就秘密地拿到了双方的以后交流对称加密的密钥。
但是这样有个问题,公钥是公开在网上的,但我们在去拿公钥的时候,攻击者可以将我们请求的公钥就行拦截换成它的公钥。方案三也同样存在这种问题。

现在的问题是,怎样安全的拿到公钥?

CA机构

CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。在SET交易中,CA不仅对持卡人、商户发放证书,还要对获款的银行、网关发放证书。
CA是证书的签发机构,它是PKI的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。

任何正版操作系统都会将所有主流CA机构的公钥内置到操作系统当中,所以我们不用额外获取,解密时只需遍历系统中所有内置的CA机构的公钥,只要有任何一个公钥能够正常解密出数据,就说明它是合法的

方案五:
首先网站的管理员要想CA机构申请证书,CA机构会把我们网站的公钥以及网站的域名有效时长等信息来制作证书,并通过自己的私钥对其加密,然后传给网站管理员,网站管理员则将这些信息,放在网站上,当有请求来的时候将该加密信息返回。客户端会遍历计算机系统内嵌的各个CA机构的公钥对其解密,如果解密成功就可以拿到网站的证书以及域名等信息,我们可以根据解密得到的域名等信息跟自己请求的网站域名的信息对比,判断是否遭到了中间人攻击,没有解密成功则网站有问题。
这样我们就可以安全的拿到网站的公钥,并基于方案四,进行安全的数据传输 即HTTPS。

posted @ 2020-11-18 15:11  沙雕货  阅读(86)  评论(0编辑  收藏  举报