https是基于http和SSL/TLS实现的一个协议,他能够保证在网络上传输的数据都是加密的,从而保证数据安全。浏览器
接下来咱们从http协议开始,提出想法并逐步进行分析,最终实现Https。安全
在https诞生以前,全部网站都使用http协议,而http协议在数据传输的过程当中都是明文,因此可能存在数据泄露和篡改。服务器
为了防止数据泄露和篡改,咱们对数据进行加密,如:生成一个对称密码【DKUFHNAF897123F】,将对称秘钥分别交给浏览器和服务器端,他们之间传输的数据都使用对称秘钥进行加密和解密。网络
请求和响应流程以下:并发
如此一来,数据传输都是密文,解决了明文传输数据的问题。可是,这么干有bug。网站
为了解决对称秘钥动态性以及让客户端和服务端安全的获取对称秘钥,能够引入非对称秘钥机制。加密
如此一来,解决了 动态对称秘钥 和 数据加密的问题,由于每一个用户的对称秘钥都是随机生成且传输的过程当中都使用公钥加密(公钥加密的数据只有私钥能解密),全部黑客没法截获对称秘钥。而数据传输是经过对称秘钥加密过的,因此黑客即便能获取数据也没法去解密看到真实的内容。 看似无懈可击,可是,这么干仍是又bug。spa
若是黑客在上图 【步骤2】劫持,黑客把本身的公钥返回给客客户端,那么客户端会使用黑客的公钥来加密对称秘钥,黑客在【步骤6】截获请求,使用本身的私钥获取对称秘钥,后面过程全都会完蛋...3d
使用 ca 证书能够解决黑客劫持的问题。blog
如此一来,就解决了黑客劫持的问题,由于即便黑客劫持后的给浏览器即便返回了证书也没法经过校验,同时浏览器也会提示错误信息。
注意:https是基于http和SSL/TLS实现的一个协议,其中前9个步骤称为是SSL/TLS过程,以后的传输数据利用的就是http协议(收发数据)。
以上就是Https的实现原理,https能够保证数据安全,但由过程须要反复加密解密全部访问速度会有所降低(鱼和熊掌不能兼得)。