1.http与https
1.http与https的区别
1.http:
- http是一种明文传输,当传入过程中被黑客拦截了,就会导致传输过程中的数据给泄漏了。即黑客可能获取了你的用户密码等等
- http对报文直接传输,不用加密和解密,相对来说要信息传输快一点,但是不安全。
- http默认端口号为80
- http 不用收费。
2.https: - https是一种经过加密处理的传输协议,相对http来说,传输的数据为经过加密的密文,即使被黑客拦截,信息也是比较安全的。
- https要收费。
- https默认端口为443
2.加密的方式
- 对称加密:
加密和解密使用的同一个密钥
当客户端和服务器建立链接时,在传输数据之前客户端和浏览器约定密钥为XXX
后面客户端和服务器都使用密钥加密即可。
缺陷: 若果黑客在客户端和服务器交流密钥中获取到了一个加密的密钥,后续传输的数据对于黑客来说也是可见。
- 非对称加密(公私钥)
公钥加密,私钥解密,或者公钥加密,私钥解密
建立通信:
1.服务器端会给一个公钥给客户端
2.客户端用服务器给的公钥去加密 后续交流的对称加密的密钥
3.服务器通过自己的私钥解密数据,获取客户端用公钥加密的密文,获取对称加密的密钥。
4.后面客户端和服务器就可以使用对称加密的密钥去加密传输的数据。
破解点:
中间人攻击,
具体步骤:
1.中间人将自己的公钥发送给客户端,客户端使用中间人的密钥进行加密自己的对称密钥KEY1,中间人可以获取用户的对称密钥,并使用服务器真正的公钥密钥去加密对称密钥KEY1。
2.服务器和客户端都以为自己和对面链接上了,开始使用对称密钥key1加密传输的数据,其实经过了一个中间人的处理,中间人还是可以获取服务器和客户端传递的所有内容。
- CA认证证书颁发机构
CA认证的具体过程:
服务端: server 客户端:client
1.server 将自己的公钥发送给CA机构,并产生一个公钥SP key的hash值,CA机构用自己的私钥进行对server的公钥 SP key产生的hash进行加密,将加密后的密文和hash一起返回给服务器端生成一个证书。
2.当客户端访问一个服务器之后,服务器会把他的证书发送过去,客户端会用自己存储的CA的公钥对证书的CA私钥加密后的(SP key)公钥进行解密,得到服务器的公钥的hash值,与证书中的hash值做比较,如果正确就表示是一个可信的证书,从而获取了一个可信的服务端公钥。
接着重复上面的过程进行正常的服务端客户端通信即可。