当前位置: 首页 > news >正文

根证书的应用和信任基础

文章目录

  • 前言
  • 信任链
  • 根证书
  • 应用及分析
    • 建行网银证书
    • 神奇的12306
    • ESET SSL Filter CA
  • 总结

前言

人生在世总要相信点什么,信亲人、信朋友、信你面前的陌生人,即便这些你都不信,也要信自己吧,假如连自己都不信了,那在地球上恐怕很难生存了。

我们把钱存入银行,因为我们相信当我们需要用钱时可以通过银行卡把钱取出来;我们拿着车票准时来到候车大厅,因为我们相信除非特殊情况,我们买的那趟车绝不会提前丢下我们而去;遇到纠纷我们会选择打官司,因为我们相信法官最后会给我们公正的判决结果。

生活中我们信任自己的经验,信任自己的亲人朋友,并依赖这些信任来做许多事情,这些信任是我们正常生活学习的前提,缺了这些我们将寸步难行。而在网络中我们同样需要信任,这些信任是筑造网络社会的基石。

有些信任是有条件的,比如银行贷款时不能通过空口白话就借来白花花的银子,而抵押物是贷款银行为了相信你附加的筹码;有些信任是无条件的,比如前面一篇总结 《认证、HTTPS、证书的基本含义》中提到的根证书,我们必须无条件信任,否则我们将置身于网络猜疑的海洋之中,无法正常利用网络带给我们的便利。

信任链

我们常听说 HTTPS 更加安全,它是通过非对称加密技术,让我们可以在不确定的网络环境中可以确认对方的身份,安全传输密钥,但这一切都是有前提的,你得相信你的操作环境是安全的,你没有被人监控,你的电脑没有被人控制,你的数据没有被人篡改,抛开环境谈安全都是耍流氓~

好了,我们可以回顾一下,要想验证一个网站的身份,我们需要得到网站的公钥,如果可以解开网站拿私钥加密的消息,我们就证明了网站的身份,而网站的公钥不能由网站直接发给我们,需要找权威机构给它证明,相当于找了个担保人。

权威机构会用自己的私钥把网站的信息和公钥合在一起生成证书,当我们访问网站时首先得到这个证书,然后用权威机构的公钥来解开证书内容,得到网站的信息和网站的公钥,然后进行信息比对和公钥解密来认证身份,这时我们需要思考,权威机构的公钥从哪里来?

权威机构可以找更加权威的机构按照相同的方式给它做证书,这样一环一环的就走下去,形成了信任链,然后就无穷无尽了,一个权威机构给另一个权威机构证明,我可以玩到天荒地老,到底什么时候是个头啊,其实我们可以人为的确定一个,那就是根证书,他不需要找别的人给它证明,如果一个网站证书最终信任链顶端是有效的根证书,那么网站身份被确认。

根证书

接下来看看根证书在哪呢?它内置在我们的浏览器(Firefox)和操作系统中,我们需要无条件的信任,从理论上讲没办法判断根证书的真假,它是自证清白的。这里需要注意,根证书不止有一个,它可以有很多个,“根”只是说明信任链到此为止,整条信任链上的节点都是“可信”的。所以说还是不要随意安装根证书,因为有了它就可以在你的电脑为所欲为。

说到这里有些人会想,根证书内置在操作系统和浏览器(Firefox)中,如果我下载一个被恶意修改的浏览器岂不是危险了,这种担心是有必要的,所以请尽量在正规网站下载,可是怎么证明哪些网站是正规网站呢?可以使用系统自带的根证书判断。

如果我的系统是盗版系统,根证书被人改过,那不是更危险了,事实确实如此,算了吧,还是暂时不相信网络了,我去买个系统光盘吧(不知道现在还有没有人用光盘装系统),可是卖你光盘的人能保证光盘的内容不被篡改吗?你说那不能,因为他是微软高级经理的小舅子,应该不能卖盗版碟吧。

即使光盘不是盗版的,但是制作光盘的内容有没有人动过手脚呢?这些我们还是无法确认,我们能做的只是尽可能的在正规渠道购买正版系统,这种情况遇到证书被篡改的情况很小,然后就无条件相信这个系统了,这就是我文章开头说的,我么总要信点什么,试想如果盖茨在 Windows 操作系统的证书中留有后门,你又能做些什么呢,所以还是不要纠结了,既然用就在正常使用的前提下信任它。

应用及分析

说是应用,实际上我只是想吐槽而已,在吐槽之前我们应该了解,证书可以跟各大证书机构(也就是各种CA)来买,也可以自己生成,可能有人会想了,自己生成挺好啊,不用花钱谁还买啊?可是刚刚说过了,跟CA买的证书都是操作系统内置证书认证过的,自己生成的证书操作系统和浏览器可不认,那怎么办呢?

干脆自己安装个根证书,自己给自己认证得了,用户岂是你想让安装就安装的,别说,还真是这样,只要你说的情况很危急,必须安装,那么大多数的小白用户是会自动安装的,这时你想到了谁?

不知道大家想到了谁,反正我是想到了建行网银证书和令人“可歌可气”的12306,接下来简单扒一扒他们两个的故事…

建行网银证书

最先接触的证书就是建行网银证书,我的第一代网银盾用了将近10年,去年才刚刚升级成2代,可以说真的是太稳定了,不知道做网银的产品经理是谁,你简直就是程序员的福音,在2020年的今天打开建行的官网,首页倒是好看了许多,但是有些内容,比如证书安装、U盾介绍的页面还是原来丑丑的样子。

ccb2

之前办理U盾时还花钱,根本都不懂啊,使用U盾必须装证书啊,不装就不安全啊,现在回想起来,和我说这话的人可能根本就不懂什么是安全,什么是不安全,反正装就是了,每次付款都要启动建行验证程序,这也是我手动安装过的次数最多的证书,是它开启了我网上购物的里程。

已经2020年了,打开建行的官网依旧提示我正在使用不安全的连接,使用网银依旧让我自己安装证书,可能作为一个大银行,官方网站迟迟不启用 HTTPS,使用网银盾坚持要用户自己安装证书,应该不仅仅是证书价格的问题,可能还有什么其他的原因。

ccb3

神奇的12306

毕业后直接在12306买票的次数就少了,现在一般使用 APP 来解决,前一阵发现12306居然不要求自己安装证书了,仔细一查原来从2017年开始,12306官网就购买了 DigiCert Inc 认证的证书,确实是一个进步的boy,终于舍得花点钱买证书了,作为一个巨大型的网站,它方便了人们购票的方式,是值得歌颂和称赞的,但是每次购票前还要安装烦人的证书,确实挺令人生气的。

12306_0

原来“根证书”3个红字显示在页面正中间,确实起到了提醒的作用,挺扎眼的,不过那已经一去不复返了,我再放个图,大家一起回顾一下。

12306

ESET SSL Filter CA

最后放一个例子,让你感受下根证书的威力,ESET是总部位于斯洛伐克布拉迪斯拉发的一家世界知名的电脑安全软件公司,主要做杀毒软件,前不久复习 HTTPS 知识的时候发现,我访问各大网站的证书全都变成了 ESET SSL Filter CA,这是什么鬼,难道 ESET SSL Filter CA 是个特别大的证书机构?

当时还没有意识到是杀毒软件的证书,以为大家都是买的这家证书,后来发现不太对,百度、谷歌、GitHub、Stack Overflow,怎么都是一样的证书,继续深究才发现被“窃听”了。

我们知道使用 HTTPS 通信因为使用了非对称加密,没有私钥是无法窃听加密内容的,但是这款杀毒软件做到了,它有一个HTTPS 内容过滤的功能,做了我的电脑和各大网站的中间人,按理说 HTTPS 是可以检测出中间人的,但是这款软件在电脑中安装了根证书,所有浏览器认为它是合法的,理论上可以窃听你所有内容,甚至为所欲为。

总结

  • 信任不仅是人类社会的基石,在网络世界同样重要
  • 证书之间的层层信任构成了信任链,而根证书是不需要被其他人证明的
  • 不要随意安装来历不明的根证书,那样可能会使的电脑更容易遭受到攻击

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

若衣食无忧,谁甘愿拼搏!努力鞭策自己无非是为了挣得可以选择生活的权利~

相关文章:

  • Shell脚本中获取命令运行结果、特殊变量使用、条件判断等常用操作
  • gdb调试解决找不到源代码的问题
  • GDB调试指北大全
  • 小白眼中的docker究竟是个什么东西
  • GDB调试指北-启动GDB并查看说明信息
  • Redis源码-BFS方式浏览main函数
  • GDB调试指北-启动调试或者附加到进程
  • Python中时间戳、时间字符串、时间结构对象之间的相互转化
  • git log根据特定条件查询日志并统计修改的代码行数
  • C++中优先队列priority_queue的基础用法
  • C++求解组合数的具体实现
  • 东拉西扯01世界的沧海桑田
  • Go语言在解决实际问题时的优点与不便
  • 使用Spreadsheet Compare工具对比Excel文件差异
  • linux环境下使用sort命令完成常见排序操作
  • 分享的文章《人生如棋》
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 《Java编程思想》读书笔记-对象导论
  • Apache Spark Streaming 使用实例
  • Brief introduction of how to 'Call, Apply and Bind'
  • ESLint简单操作
  • Golang-长连接-状态推送
  • JavaScript设计模式与开发实践系列之策略模式
  • js算法-归并排序(merge_sort)
  • Linux各目录及每个目录的详细介绍
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • passportjs 源码分析
  • Sequelize 中文文档 v4 - Getting started - 入门
  • vue-cli在webpack的配置文件探究
  • 关于使用markdown的方法(引自CSDN教程)
  • 力扣(LeetCode)56
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 三分钟教你同步 Visual Studio Code 设置
  • 深入 Nginx 之配置篇
  • 实现菜单下拉伸展折叠效果demo
  • 使用权重正则化较少模型过拟合
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 以太坊客户端Geth命令参数详解
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #android不同版本废弃api,新api。
  • #数学建模# 线性规划问题的Matlab求解
  • $NOIp2018$劝退记
  • (1)STL算法之遍历容器
  • (arch)linux 转换文件编码格式
  • (Ruby)Ubuntu12.04安装Rails环境
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十)c52学习之旅-定时器实验
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)关于多人操作数据的处理策略
  • (转载)(官方)UE4--图像编程----着色器开发
  • ******IT公司面试题汇总+优秀技术博客汇总