网页设计素材网站,wordpress文章审核发邮件,江阴设计公司,安全联盟网站认证部分内容来源#xff1a;小林coding 详细解析
Http的风险
HTTP 由于是明文传输#xff0c;所以安全上存在以下三个风险#xff1a;
1.窃听风险
比如通信链路上可以获取通信内容#xff0c;用户号容易没。
2.篡改风险
比如强制植入垃圾广告#xff0c;视觉污染#…部分内容来源小林coding 详细解析
Http的风险
HTTP 由于是明文传输所以安全上存在以下三个风险
1.窃听风险
比如通信链路上可以获取通信内容用户号容易没。
2.篡改风险
比如强制植入垃圾广告视觉污染用户眼容易瞎。
3.冒充风险
比如冒充淘宝网站用户钱容易没 HTTPS如何解决风险
HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议可以很好的解决了上述的风险
1.信息加密
交互信息无法被窃取但你的号会因为「自身忘记」账号而没。
2.校验机制
无法篡改通信内容篡改了就不能正常显示但百度「竞价排名」依然可以搜到垃圾广告。
3.身份证书
证明淘宝是真的淘宝网但你的钱还是会因为「剁手」而没。 HTTP是如何解决上面三个风险的
1.混合加密消息保密
HTTPS 采用的是对称加密非对称加密结合的「混合加密」方式 会话开始时使用非对称加密公钥算法
发送方使用接收方的公钥加密一个对称密钥私钥称为会话密钥。由于非对称加密解决了密钥交换的安全问题这个过程确保了会话密钥的安全传输。 会话过程中使用对称加密私钥算法
一旦会话密钥安全地传输到接收方后续的通信就使用这个对称密钥私钥进行加密明文数据和解密。由于对称加密速度快适合大量数据的加密这提高了通信的效率 你妈个比说这么多sb专业名词能不能说点人话
人话我们发送方和接收方都用私钥加密数据因为快然后我们要用接收方的公钥加密发送方的私钥然后把发送方机密后的私钥发送到接收方用让他的公钥解开从而用发送方的私钥解开加密数据
一句话我们都用私钥加密只是私钥传输给对方使用的时候为了防止泄漏所以我们加密 采用「混合加密」的方式的原因
1.对称加密私钥只使用一个密钥运算速度快密钥必须保密无法做到安全的密钥交换。
2.非对称加密公钥使用两个密钥公钥和私钥公钥可以任意分发而私钥保密解决了密钥交换问题但速度慢 2.摘要算法签名算法数字签名防止签名伪造
我们要判断内容是否被篡改
为了保证传输的内容不被篡改我们需要对内容计算出一个「指纹」然后同内容一起传输给对方。
对方收到后先是对内容也计算出一个「指纹」然后跟发送方发送的「指纹」做一个比较如果「指纹」相同说明内容没有被篡改否则就可以判断出内容被篡改了。
那么在计算机里会用摘要算法哈希函数来计算出内容的哈希值也就是内容的「指纹」
这个哈希值是唯一的且无法通过哈希值推导出内容 私钥是由服务器端保管然后服务器端会向客户端颁发对应的公钥。如果客户端收到的信息能被公钥解密就说明该消息是由服务器发送的。
例子
引入了数字签名算法后你就无法模仿你爸爸的字迹来请假了你爸爸手上持有着私钥你老师持有着公钥。这样只有用你爸爸手上的私钥对请假条进行「签名」老师通过公钥看能不能解出这个「签名」如果能解出并且确认内容的完整性就能证明是由你爸爸发起的请假条这样老师才允许你请假否则老师就不认
如何避免【伪造签名】
使用非对称算法公钥加密
那为了避免这种情况计算机里会用非对称加密算法来解决共有两个密钥
一个是公钥这个可以公开给所有人的一个是私钥这个必须由本人管理不可泄露。
这两个密钥可以双向加解密的比如可以用公钥加密内容然后用私钥解密也可以用私钥加密内容公钥解密内容。
流程的不同意味着目的也不相同 一般私钥和公钥都是一对多的关系
公钥加密私钥解密保证安全
这个目的是为了保证内容传输的安全因为被公钥加密的内容其他人是无法解密的只有持有私钥的人才能解密出实际的内容。 私钥加密公钥解密防止伪造确认身份
这个目的是为了保证消息不会被冒充因为私钥是不泄露的如果公钥能正常解密出私钥加密的内容就能证明消息是来源于持有私钥身份的人发送的。 一般我们不会用私钥加密和公钥解密实际传输的内容因为非对称加密的计算比较耗费性能的所以非对称加密算法的重点主要在于通过「私钥加密公钥解密」的方式来确认消息的身份我们常说的数字签名算法就是用的这种方式不过对内容的签名本身而是对内容的哈希值加密 3.数字证书防止公钥伪造
前面我们知道
可以通过哈希算法来保证消息的完整性可以通过数字签名来保证消息的来源可靠性能确认消息是由持有私钥的一方发送的 但是这还远远不够还缺少身份验证的环节万一公钥是被伪造的呢
还是请假的例子虽然你爸爸持有私钥老师通过是否能用公钥解密来确认这个请假条是不是来源你父亲的。
但是我们还可以自己伪造出一对公私钥啊
例子
你找了个铁匠偷偷把老师桌上和你爸爸管家的公钥换成了你的公钥那么下次你在请假的时候你继续模仿你爸爸的字迹写了个请假条然后用你的私钥做了【数字签名】。
但是老师并不知道自己的公钥已经被掉包了所以他还是按照往常一样用公钥解密由于这个公钥和你的私钥是配对的老师当然能通过这个被掉包的公钥解密出来并且确认了内容的完整性于是老师就会以为是你父亲写的请假条又允许你请假了。
好家伙为了一个请假真的是上智斗勇。
后面的老师和父亲发现了你伪造公私钥的事情后决定重新商量一对策略来应对你这个臭家伙。
正所谓魔高一尺道高一尺
既然伪造公私钥那么随意所以你爸爸把他的公钥注册到警察局警察局用他们自己的私钥对你父亲的公钥做了个数字签名
然后把你爸爸的「个人信息 公钥 数字签名」打包成一个数字证书也就是说这个数字证书包含你爸爸的公钥。
这样你爸爸如果因为家里确实有事要向老师帮你请假的时候不仅会用自己的私钥对内容进行签名还会把数字证书给到老师。
老师拿到了数字证书后首先会去警察局验证这个数字证书是否合法因为数字证书里面有警察局的数字签名警察局的公钥是全世界公认合法的用自己的公钥解密如果解密成功就说明这个数字证书是警察局签发的老师就会信任数字证书里的公钥是你爸爸的公钥然后用这个公钥解密你爸爸的签名。
由于通过警察局验证了数字证书是合法的那么就能证明这个公钥就是你父亲的于是老师就可以安心的用这个公钥解密签名如果能解密出来就证明是你爸爸写的请假条。
正是通过了一个权威机构来证明你爸爸的身份所以你的伪造公私钥这个小伎俩就没用了。
在计算机里这个权威的机构就叫做CA数字证书认证机构将服务器的公钥放到数字证书中由数字证书认证机构颁发的中只要证书是可信的公钥就是可信的
总结我们要去权威机构去注册 简短总结
Http存在安全问题
例如
1.明文传输存在的窃听风险
2.传输数据的篡改风险
3.公钥修改的冒充风险
我们用混合加密公私钥混合使用来解决明文传输的数据窃听风险
发送方的私钥加密数据然后发送给接收方
发送方的私钥通过接收方的公钥加密数据然后把自己的加密的私钥传过去
接收方用自己的私钥解开发送方加密传过来的私钥用这个发送方私钥来解开加密的数据
通过摘要算法数字签名解决数据篡改的风险
加密内容唯一Hash值【指纹】发送过去发送方对内容做运算算出【指纹】判断指纹是否相同
我们会把我们的数据通过摘要算法做一个运算得到一个【Hash运算值】这个值就是一个【指纹】
然后我们会通过【数字签名】什么是【数字签名】
就是我们在通过密钥加密我们还是用混合加密我们的唯一的【Hash运算值】得到的就是我们的数字签名。
这样子就可以得到我们当前内容的唯一Hash值加密Hash值防止我们的唯一Hash值被篡改
同时接收方通过同样的哈希算法对内容进行计算再跟我加密传过来的Hash值进行对比
我们可以知道
可以通过哈希算法来保证消息的完整性可以通过数字签名来保证消息的来源可靠性能确认消息是由持有私钥的一方发送的
通过数字证书防止公钥被篡改和冒充的风险
我们刚刚都是公钥合法的情况但是公钥被伪造了呢
例如我们伪造一个和官方网站一模一样的网站
所以说我们会有个【合法注册中心】也就是CA数字证书认证机构
我们一般「个人信息 公钥 数字签名」打包成一个数字证书然后去CA验证只要证书是可信的那么我们的公钥就是可信的
总结我们要去权威机构去注册我们的合法公钥信息