1. HTTP存在的安全性风险:
1) 通信过程使用明文,容易被窃听
2) 不验证通信方的身份,可能遭遇伪装
3) 不验证通信数据包的完整性,可能遭遇篡改
2. HTTP+加密+认证+完整性保护=HTTPS
HTTPS的缺点:
慢
比HTTP慢 2-100倍
主要是两点:
1)采用SSL进行通信,简历连接比TCP建立连接要慢很多,比企鹅增加了通信的数据量,会变慢
2)应用端和客户端需要进行加解密处理,增加了负载,会变慢.
贵
证书需要费用..
HTTPS的简单说明:
1 HTTPS使用SSL进行传输 不是一个新的协议,只不过HTTP直接使用TCP连接, HTTPS使用SSL SSL再进行TCP的连接处理.
2.非对称加密发送对称秘钥,对称秘钥(客户端与服务器端协商使用的密码)进行通信过程的加密
RSA算法以及ECC椭圆曲线算法 作为 非对称加密算法的两种典型(比特币用了ECC)
但是非对称加密算法有较高的性能损耗,所以加密古城中使用对称加密算法进行加密 解密 提高性能.
3. 证书来进行公开秘钥准确,以及确认客户端和服务器端的身份.
浏览器都会预制很多 可信任的根证书颁发机构.
证书的验证方式
需要证明自己的服务器加自己的公钥发送给受客户端信任的CA机构
CA机构用自己的私钥进行加密, 以及增加上公钥申请者的信息.制作成为服务器的证书信息
客户端获取到证书之后 使用浏览器内置的受新人的CA证书公钥进行解密证书, 验证证书与服务器信息是否匹配一致, 如果一致就是可以确认的服务器端
客户端使用上一步解密出来的服务器的公钥进行加密通信,发送到服务器端
服务器端使用自己的私钥进行解密,确认客户端发送过来的信息.
4. 自签名证书
这里一直有一点疑问,我自签名证书已经将独立CA的证书放到了服务器的受信任的根证书颁发机构中去了,但是依旧会提示我证书有问题.
之前使用OPENSSL生成过证书, 但是一直不太理解其中的含义.