课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
大家在浏览一些网页的时候应该会遇到过浏览器提示说网页不安全不被信任等提示消息,这些说的就是网站证书没有被信任,今天我们就通过案例分析来简单了解一下,浏览器是如何确保CA证书的合法性。
1.证书包含什么信息?
颁发机构信息
公钥
公司信息
域名
有效期
指纹
......
2.证书的合法性依据是什么?
先,机构是要有认证的,不是随便一个机构都有资格颁发证书,不然也不叫做机构。
另外,证书的可信性基于信任制,机构需要对其颁发的证书进行信用背书,只要是机构生成的证书,我们就认为是合法的。
所以机构会对申请者的信息进行审核,不同等级的机构对审核的要求也不一样,于是证书也分为免费的、便宜的和贵的。
3.浏览器如何验证证书的合法性?
浏览器发起HTTPS请求时,服务器会返回网站的SSL证书,浏览器需要对证书做以下验证:
1.验证域名、有效期等信息是否正确。证书上都有包含这些信息,比较容易完成验证;
2.判断证书来源是否合法。每份签发证书都可以根据验证链查找到对应的根证书,操作系统、浏览器会在本地存储机构的根证书,利用本地根证书可以对对应机构签发证书完成来源验证;
3.判断证书是否被篡改。需要与CA服务器进行校验;
4.判断证书是否已吊销。通过CRL(CertificateRevocationList证书注销列表)和OCSP(OnlineCertificateStatusProtocol在线证书状态协议)实现,其中OCSP可用于3步中以减少与CA服务器的交互,提高验证效率
以上任意一步都满足的情况下浏览器才认为证书是合法的。
这里插一个我想了很久的但其实答案很简单的问题:
既然证书是公开的,如果要发起中间人攻击,我在官网上下载一份证书作为我的服务器证书,那客户端肯定会认同这个证书是合法的,如何避免这种证书冒用的情况?
其实这就是非加密对称中公私钥的用处,虽然中间人可以得到证书,但私钥是无法获取的,一份公钥是不可能推算出其对应的私钥,中间人即使拿到证书也无法伪装成合法服务端,因为无法对客户端传入的加密数据进行解密。
4.只有认证机构可以生成证书吗?
如果需要浏览器不提示安全风险,那只能使用认证机构签发的证书。但浏览器通常只是提示安全风险,并不限制网站不能访问,所以从技术上谁都可以生成证书,只要有证书就可以完成网站的HTTPS传输。例如早期的12306采用的便是手动安装私有证书的形式实现HTTPS访问。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。