HTTPS与CA机构
不安全的Http协议
我们在接入互联网的时候,正常访问的情况下,http没法去保证在互联网的传递过程当中这份数据的安全性。
为了保证数据的安全性,那我们就势必要增加一层安全的协议,
那这种安全的协议。就要基于 http ,或者基于 TCP。
假如说所有人都是坏人,拦截了我们的数据,第一次请求我们是从443端口去把公钥下载到我们的客户端的。
那么,下载这个公钥的过程要经历所有的互联网,那一旦路由网关把公钥拦截了。他在本地留了一份公钥,
并自己生成一份密钥对将公钥发给你,当你要填账号密码时,拿着他给你的公钥加密,他又拿着他的私钥解密
,再用服务器的公钥加密发给服务端,这样就被别人拦截了。比如钓鱼网站,客户端请求服务器,我不让你请求服务器,我直接给了你一个假冒的站点。所以非对称加密算法在这,也是不安全的。
ca机构参与保证互联网安全
要保证互联网安全,引入真正的第三方机构CA。这个机构在中间起到的作用就是对于这个银行卡进行认证,也就是对于我们下发的非对称加密的这个公钥进行认证。它在认证公钥的过程当中是怎么认证的呢?
首先,这个 CA 机构想要对这个公钥进行认证,其中公钥是由我们的服务器端生成的。CA 机构也有自己运行的这套系统和服务器,我们把公钥提交给这个 CA 机构。机构进行一次认证,
CA 机构对于公钥的认证过程,先识别一下提交者是不是一个正常的提交者,所以要提交一系列的资料。
比如我们要提交我当前的这个公钥所绑定对应服务器的这个域名或者 IP 地址,然后当前这个公司是什么公司,以及有可能会交一些费用,最重要的是CA 机构一定要认证一下你真正是当前网站的所有者。一般在认证的时候。我们的CA机构会认证一下,比如给你下发一个文件,这个文件里边儿我记了一堆乱七八糟的数,比如二十位的随机字符。要求你放在某一个文件夹下或者目录下。你把它传上去,CA去访问一下这个地址,如果传上去了,你告诉我,如果你没传上去或者是你根本就没有这个权限传上去,那么这个服务器它根本就不是你的。这个域名也不是你的,除非他服务器被这个拦截者黑了,正常情况下,他传不上去,他没有这个权限,一旦认证了,他有这个权限。那接下来CA会对你提交上来的这个公钥,再进行一次包装和加密。这一层加密同样是非对称加密。这个非对称加密是靠 CA 机构自己的私钥。第二,私钥使用非对称加密算法执行了一次加密,然后接下来给你生成了一份,这东西就叫证书,也就是我们现在所看到这些网站的证书。
服务器端拿到这个证书之后。再有用户请求我443端口想要这个公钥的话,再次下发就下发证书。其实就是我们的操作系统里边内置了 CA 机构的公钥。他拿 CA 机构的公钥能够正常的解开这个证书,说明在中间过程当中是没有被篡改的。
因为 CA 机构在下发的这个证书里边。如果拦截者想把这个证书解开,他是可以解开的。但是他想要再次加密的话,他得有 CA 机构的私钥才能加密成 CA 机构。CA 机构的私钥是不可能丢的。