学校门户网站建设费用,网站开发专业就业前景分析,lamp网站开发,专业优定软件网站建设目录 1.预备知识
1.1.加密和解密
1.2.常见加密方式
1.2.1.对称加密
1.2.2.非对称加密
编辑
1.3.数据摘要#xff08;数据指纹#xff09;和数据签名
1.4.证书
1.4.1.CA认证
1.4.2.证书和数字签名
2.HTTPS协议
2.1.自行设计HTTPS加密方案
2.1.1.只使用对称加密 …目录 1.预备知识
1.1.加密和解密
1.2.常见加密方式
1.2.1.对称加密
1.2.2.非对称加密
编辑
1.3.数据摘要数据指纹和数据签名
1.4.证书
1.4.1.CA认证
1.4.2.证书和数字签名
2.HTTPS协议
2.1.自行设计HTTPS加密方案
2.1.1.只使用对称加密
2.1.2.只使用非对称加密
2.1.3.双方都使用非对称加密
编辑
2.1.4.双方使用非对称和对称加密
2.1.5.上述4种方案的漏洞
2.2.合适的HTTPS方案 1.预备知识
1.1.加密和解密
加密就是把明文带传输的信息通过密钥生成密文只有通过密钥才能解析解密就是将明文通过密钥解析成明文而密钥是加密、解密过程中的中间数据用来将明文变为密文密文恢复为明文
1.2.常见加密方式
1.2.1.对称加密 1.2.2.非对称加密 1.3.数据摘要数据指纹和数据签名
数据摘要是一种映射机制并不是一种加密方式我们知道一段数据可以通过hash函数映射为一个值当这个值改变时所对应的hash映射值会产生改变。并且即使是一篇文章中我们只修改了一个单词最终hash映射值也会产生不同。 通过这个原理数据指纹的应用如下 1.4.证书
1.4.1.CA认证 如图 当某一个公司搭建自己的网站时需要将自己的公司信息、网络域名……给CA机构进行备案、审核获得一个CA的证书这时CA机构会形成CA机构的公钥和私钥并将公钥写进证书中发送给服务器作为服务器的通信证书。接着服务器、客户端进行通信时需要基于这个证书进行通信 CA是一个权威机构规定了所有服务器如果要上线一定需要CA证书。 为什么需要证书 这需要结合2.1.这个模块进行学习所以看到这里大家先跳过等到结束2.1.模块化再来体会一下证书的作用。
1.4.2.证书和数字签名
我们在2.1.学习结束后发现单纯通过加密解密的过程中无法避免中间人篡改、访问数据。这时我就需要结合证书中的信息和数字签名加密后的数据指纹来解决“公钥合法性的问题” 目前我们需要解决的问题是如何确定公钥的合法性可能被中间人篡改所以我们接着数字指纹并加密成数字签名将其和服务器提供给CA认证的明文信息结合为证书。 我们在数字指纹的学习中知道完全相同的数据通过相同的哈希算法获得的散列值一定是不变的在明白了这一点后我们发现只要我们判断数字指纹的值和明文信息映射后的散列值是一致的即可保证公钥的合法性 当客户端获取到证书时将这个结构化数据分成“数字签名”和“明文信息”因为CA的公钥是全球统一的也就是我们可以通过数字签名读取到里面的散列值内容但是我们无法修改需要有CA的私钥才能够修改接着我们对明文信息通过开放的哈希算法进行计算出散列值最终比较这两个散列值 如果这两个散列值不同表示明文信息已经被修改公钥可能有问题 那么回到中间人的角色
中间人修改明文信息时一定会导致散列值不同这时浏览器能够识别到中间人无法修改数字签名中的散列值为自己修改明文信息后的散列值中间人可以自己获得证书替换数字签名和明文信息这里会出现两个问题第一中间人的信息就被获取了另外因为服务器对应网络域名是固定的也就是中间人的网址一定和目标服务器的网站不同这时用户可以发现目标收到了篡改
讲到了这里我们发现了通过证书的引入中间人无论做出什么行为都无法再次在客户端、服务端未知的状态下修改公钥并且读取信息也就是公钥的合法性得到了保证 总结证书能够解决公钥合法性的原因 明文信息的散列值加密是通过CA认证的私钥全球只有CA机构可以修改这个数字签名数字指纹实现了只有完全相同的一份数据通过哈希映射的散列值才相同证书中的网址是独有的所有的浏览器都能够通过内置的CA公钥读取到数字签名中的散列值 那么讲到这里我们就知道如何自定合适的HTTPS方案了
2.HTTPS协议
首先HTTPS协议也是应用层协议他是在HTTPS协议的基础上添加了一个加密层防止HTTP协议中明文传输内容收到修改和盗取。
这里需要注意的是HTTP协议和HTTPS协议需要配对使用
2.1.自行设计HTTPS加密方案
2.1.1.只使用对称加密 2.1.2.只使用非对称加密 2.1.3.双方都使用非对称加密 2.1.4.双方使用非对称和对称加密 2.1.5.上述4种方案的漏洞
我们综合以上4种加密方式发现2.1.3.和2.1.4.可行但是会出现安全问题本质上还是不可行的但是理论上并没有错误这是因为我们默认中间人只对密文进行访问也就是在传输秘钥结束后才开始对传输数据进行读取。而实际上中间人可能在传输秘钥的过程中就对传输数据进行读取、修改也就是对秘钥进行了修改…… 最终我们发现因为有中间人的存在他可以把自己的秘钥传给服务器、客户端而服务器客户端并不知道这个传来的密钥究竟是对方的还是中间人的所以以上我们设计的4中方案都不可信 那么我们如果设计一个合适的HTTPS方案就需要确定公钥的合法性
2.2.合适的HTTPS方案 证书验证非对称加密对称加密