关于证书如何完成身份验证(SSL证书)
一、写在前面
SSL和IPsec是现在VPN技术中最为常见的,在云计算的应用环境中,SSL更受企业青睐,至于原因的话简单的说就是SSL更为简洁,不需要像IPsec那样需要额外安装客户端,这会带来软件维护升级的问题,现在多数的云计算的服务仅需要一台浏览器就可以访问,而几乎所有的浏览器都默认实现了SSL协议,也就意味着若是使用SSL协议客户几乎不用做任何改动,还像以前一样使用浏览器即可。还有些其他原因,在此不赘述,有想了解的可以自行百度。今天要讲的主要是SSL协议可以实现的身份认证这一功能。浏览器如何在通信开始前确认,要通信的对方就是想要通信的对方,而不是冒名顶替,书上说只需服务器将证书发送给浏览器即可,那么这一步骤具体是怎么样的?为什么这样就可以完成身份认证?不会担心其他网站的直接复制证书进行顶替?或者自己制作证书?
二、SSL身份认证
证书的颁发是由可信的第三方(常说的CA)进行的,若你有个域名想要为它申请证书(指通用的证书,不包括自己制作的情形),可以去网上提供证书服务的网站,根据你想要的证书级别交钱,接受审核(不同级别的证书需要经过的审核程度不同),获得证书了,注意证书内容主要包括,经摘要算法计算过得到的包含网站信息等内容摘要、摘要算法、公钥(服务器端)等,在证书中呈现的是对上述证书内容的使用CA私钥签名的内容。当客户端收到证书后,可以通过客户端浏览器内置的CA根证书,获得对应CA机构的公钥,然后使用公钥解开私钥,并根据此时通信对方的信息,使用摘要算法重新计算内容摘要,与使用公钥获得的内容摘要进行对比,若一致则可以确认通信对方的身份,否则认为对方是不可信的生成告警信息。
为什么不会但心其他网站直接复制证书?其他网站是可以复制但是在计算摘要的时候会出现不同,即证书认证没通过。恶意网站是否可以自己制作证书?可以制作证书,但是浏览器中不存在与恶意网站自己制作证书相对应的根证书,也就拿不到解开证书的公钥,证书认证依旧没有通过,依旧会生成告警信息。
但是如果想测试这一整个身份认证过程,你是可以自己生成CA根证书然后添加到浏览器中,然后再制作服务器端的证书,这样是可以通过身份认证的,但仅限添加了你自己制作了CA根证书的浏览器。