最近一直在忙着做数据检控,趁着五一假期,可以静下来总结一下项目开发中学到的东西,在项目开始之前预言了很多协议,比如https、ftp、mysql、达梦、oracle等等。今天就先来说说https吧,独乐乐不如众乐乐,也希望大家多多分享、共同进步,下面是我总结的一些知识点。
一、http与https在网络传输中的安全性对比
1.http 协议:不安全,未加密
HTTP协议也就是超文本传输协议,是一种使用明文数据传输的网络协议。HTTP协议被用于在Web浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。
2.https 协议:安全,对请求报文和响应报文做加密
HTTPS是为了解决HTTP协议不安全缺陷而产生的,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密。在数据进行传输之前,对数据进行加密,然后再发送到服务器。这样,就算数据被第三者所截获,但是由于数据是加密的,所以你的个人信息仍然是安全的。
二、对称加密与非对称加密
2.1 对称加密
1.特点:
加解密使用相同秘钥(高效),适用于大量数据的加密场景 算法公开,安全性取决于秘钥大小,但秘钥越大效率越低,需要权衡在安全和效率中做权衡。
2.缺点:
算法本身安全,但使用场景不够安全,因为解密和加密都是同一个秘钥。
2.2 非对称加密
1.使用匹配的一对密钥来分别进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)
2.注意:公钥加密的数据只能用对应的私钥解密,同理,私钥加密的数据只能用对应的公钥解密
3.算法:RSA、ECC、Elgamal、背包算法、Rabin、D-H 等
4.特点:安全性高
5.缺点:加解密复杂,效率低,耗时较长
6.用法概要:加密:对数据做加密
签名:证明数据是谁发的
2.3 非对称加密用法
准备工作:
1.生成一对匹配的私钥和公钥 (ps:公钥其实是根据私钥生成的)
2.将公钥公布给外界
2.3.1 公钥加密
场景:用来针对互联网上加密数据传递。
少博用高少的公钥对数据进行加密,然后发给高少,高少用自己的私钥解密。
因为一个公钥加密的数据只有对应的私钥才能解密,所以密文很安全。
补充:如果要在网络上相互发送密文,可以让对方也发对方的公钥过来,用对方的公钥来加密。
2.3.2 私钥签名
场景:目的是为了将明文公布给别人,同时证明是自己发的;可以防止明文被篡改。
第一步:高少用高少的私钥对明文的hash值进行加密,把密文(签名)和明文(悄悄话)一起发给少博。
第二步: 少博用高少的公钥进行解密,解密后的明文hash值和接收到的明文的hash值进行对比,如果一样则是高少发的,否则证明有其他暗恋者。
三、https基本流程
3.1 https的大致流程如下:
1.操作系统内置权威证书认证机构(CA-CertificateAuthority)的机构证书X
2.服务器A获取认证证书:
生成自己的公钥A和私钥A
找认证机构生成服务器A证书,并保存在服务器中,证书(SSL)包含信息:服务器的域名、证书有效期、证书颁发机构、服务器自己的公钥A等
3.浏览器请求获取服务器A证书
4.浏览器用机构证书X解密服务器A证书:
解密成功:获取服务器A公钥(只要解密成功,就说明是 机构认证的)
解密失败:认证失败
5.浏览器 将自己的秘钥发给服务器:
使用对称加密算法生成会话秘钥B
使用服务器A公钥对会话秘钥B做加密,并发给服务器
6.浏览器和服务器使用浏览器会话秘钥B来对请求报文和响应报文做加密
3.2 https详细流程如下图:
3.3 证书认证机构
如果证书颁发机构过多的话,不容易识别,防伪和管理,于是形成了少数几家国际权威的证书颁发机构,这些机构非常权威,默认是所有人都可信的,它们成为根证书。
但是除了这些机构外,其他的机构也需要被信任,因而,需要这些权威的机构去授信颁发证书,于是就形成了一级证书机构,一级证书机构又可以继续授信下级机构,于是成为树状结构,对于任何一个组织到根证书就是链状结构。
=========================================================================
上述图片中的主角已提前沟通过,表示很开心出演男一男二号,请主角们放心已打码。
这些就是我对https协议原理的理解,希望对大家有所帮助,感谢大家的阅览,喜欢的朋友不妨点个赞,给我一些鼓励,我会不定时的更新,愿永无Bug。天行健,君子以自强不息!