课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的用户都是通过网络来获取自己需要的信息的,而为了保障网络安全,程序员也使用了许多不同的防护方法,今天我们就简单来了解一下,数字证书的概念与作用分享。
数字证书用于解决HTTP协议中身份容易被伪造的问题。
前面提到HTTPS采用非对称加密算法传输会话密钥。一般是服务器将公钥对外公布,客户端利用此公钥加密会话密钥,然后服务器通过私钥解密得到会话密钥,此时双方即协商好了用于对称加密传输数据的密钥。
但是万一服务器的公钥是被黑客伪造的呢?比如的『中间人攻击』问题:
客户端发送的请求被中间人(黑客)劫持(如使用DNS劫持),所有请求均发送至中间人。
中间人假装自己是正规网站(服务器),向客户端返回自己的公钥2,并索要正规网站的公钥1。
客户端使用中间人的公钥2加密会话密钥1,并发送至中间人。
中间人使用自己的私钥2解密得到会话密钥1,同时假装自己是客户端,使用正规网站的公钥1加密会话密钥2(可以与会话密钥1相同)并发送至正规网站。
客户端使用会话密钥1对数据进行加密,并发送至中间人。
中间人使用会话密钥1对数据进行解密,得到明文数据!(实现了窃听)
中间人使用会话密钥2对数据(可能是篡改的)进行加密,并发送至正规网站。
此时,客户端与服务器的通信再无安全性可言!中间人不仅能够窃听到消息内容,还能够进行篡改!
客户端如何知道自己所拥有的公钥是来自于正规网站而不是中间人呢?这时候就需要数字证书了!
数字证书的概念就像是我们的身份证一样,专门用于验证通信实体的身份。咱们的身份证是去派出所申请的,而数字证书则需要向认证中心(CertificationAuthority,CA)申请,而且是需要收费的!
通过数字证书解决中间人攻击的具体过程为:
服务器(正规网站)先生成一对公钥和私钥,然后将域名、申请者、公钥(注意不是私钥,私钥是无论如何也不能泄露的)等信息整合在一起,生成.csr文件,并将此文件发给认证中心CA。
CA收到申请后,会通过各种手段验证申请者的信息,如无异常,则使用摘要算法得到.csr中明文信息的一个摘要,再用CA自己的私钥对这个摘要进行加密,生成一串密文,密文也称为数字签名。数字证书即包含此数字签名和.csr中明文信息。CA把这个证书返回给申请人。
为了防止中间人攻击,客户端要求服务器发送其证书,并进行验证。
客户端在验证证书时,把证书里的签名与及明文信息分别取出来,然后会用自身携带的CA机构的公钥去解密签名,得到摘要1,再利用摘要算法得到明文信息的摘要2,对比摘要1和摘要2,如果一样,说明证书是合法的,也就是证书里的公钥是正确的,否则说明证书不合法。
浏览器如何得到认证中心的公钥呢?万一此公钥是被伪造的呢?为了防止套娃,实际电脑操作系统中会内置这些认证中心的公钥!因而无需担心认证中心公钥被伪造的问题。
Chrome浏览器一旦发现一个网站数字证书无效,就会生成如下界面进行提示,如果用户强制访问,则存在一定的风险。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。