关于数字证书理解的简单整理以及12306站点证书简单分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sundacheng1989/article/details/25540601

首先简单理解一下什么是数字证书。这里是一篇英文文档,描写叙述的非常形象。形象的描写叙述了什么是公钥。什么是私钥。假设确保数字证书的可靠性等。

以下。我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。


一般我们电脑的浏览器中都有一些受信任的证书颁发机构列表, 里边存储的都是一些机构的信息。这些机构都是权威的。当然能够通过安装软件的方式。来添加证书颁发机构,比方中国银行的根证书软件,阿里巴巴的根证书软件。

默认我们觉得这些软件都是从官网下载的,是绝对的没被篡改的,可靠的。简单来讲,根证书存在的意义,就是验证偶尔从网络上传到浏览器的数字证书的真假。


当我们向一个站点发起加密訪问协议后,站点会返回一个数字证书M给你。那么我们怎么确定这个证书M没有在途中被人篡改过呢?这里就用到了根证书。

站点返回来的数字证书都是一定格式的,记录了站点的名称,公钥,以及证书颁发机构A。并且有的地方,是用这个机构A的私钥加密过的。我们的浏览器会依据这个证书写着的颁发机构A,去“受信任的证书颁发机构”列表中,找到这个机构A。然后通过本机中存储的关于机构A的信息,去检查这个证书有没有被篡改过。


有人说,怎么依据根证书去验证数字证书M有没有被篡改过呢?事实上这里也用到了对称加密。假设根证书对某个站点颁布了数字证书。就是用自己的私钥加密根证书的部分内容。这个根证书颁发机构把自己的公钥放入到软件中。安装到客户计算机中。用户收到安全证书M后。会用根证书机构的公钥去解密这个证书。假设能解开,说明没有被改动过。假设不能解开,说明别改动了,不安全了。



比方说,证书传送途中。被某个组织截获。他们想篡改。并且他们也篡改了。可是注意如今有一点,他们篡改之后是须要加密的。因为终于的浏览器是会用公钥解密的。他们此时仅仅能用根证书机构的私钥加密,终于的浏览器才会打开,才不会察觉。用不论什么其它的私钥加密,浏览器都是打不开的。

而此时他们又没有根证书机构的私钥,所以就无法篡改了。一旦篡改就会被发现。

继续回到样例中。此时,浏览器收到站点的安全证书。通过根证书列表查看验证。证明了这个证书是安全的。可靠的。

client就能够使用证书中的server公钥,对信息进行加密。然后与server交换加密信息。步骤例如以下图

首先。client向server发出加密请求。

server用自己的私钥加密网页以后。连同本身的数字证书,一起发送给client。

client(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。client会依据这张列表。查看解开数字证书的公钥是否在列表之内。

假设数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用。浏览器会发出警告。

假设这张数字证书不是由受信任的机构颁发的,浏览器会发出还有一种警告。

假设数字证书是可靠的,client就能够使用证书中的server公钥。对信息进行加密。然后与server交换加密信息。



下边是关于12306站点证书的一些看法,部分转载。

12306站点买票。会出现证书过期或者是不可靠等提示,这里原因是什么?


大家都知道https的网页是加密的,是须要证书的,网购火车票的网址是http://www.12306.cn/mormhweb/kyfw/。这个是http的普通网页,没有加密,是明文传输的。不须要证书。可是他里面有个iframe,也就是嵌套了还有一个网页,地址是https://dynamic.12306.cn/otsweb/。这里就是https的了。

可是假设使用Chrome、Firefox或者IE8、9等浏览器都会显示这个站点的证书有安全问题。

因为dynamic.12306.cn使用的是SRCA颁发的证书。这个证书在我们的计算机中是默认不被信任的,也就是不安全的。

Chrome:

 

IE9:

什么是SRCA?SRCA就是Sinorail Certification Authority,中文名叫中铁数字证书认证中心,简称中铁CA。

这是个铁道部自己搞的机构,相当于是自己给自己颁发证书,当然不会被信任。

很多其它信息请见这个机构的站点。

于是,12306就在首页显著位置标明:为保障您顺畅购票,请下载安装根证书。

一般人假设看到这个肯定会依照要求下载安装的。下载后解压里面有个“SRCA根证书安装说明手冊.doc”,这个doc格式我就先不吐槽了,还是先说说内容吧。

这个文档一开头就有这么一段话:

尊敬的用户:

您如今安装的是中铁数字证书认证中心(中铁CA。SRCA)的根证书,完毕这个操作能够使您的购票体验更为顺畅,同一时候获得一个更安全的网络购票环境。

中铁CA是由工业和信息化部审批通过的合法电子认证服务机构。该产品及相关操作不会对您的计算机构成危害,请您放心使用。

安装了你的证书会使我的网络购票更顺畅更安全?我怎么不知道证书还有这种奇妙的能力?是不是Windows优化大师、360之类的软件都应该集成一个安装SRCA的证书的功能啊?

再看后面,“该产品及相关操作不会对您的计算机构成危害,请您放心使用。

”怎么感觉好像是此地无银三百两呢?

玩笑话就讲到这里吧。以下来说说安装了这个证书究竟会有什么危害。

以下因为涉及到一些password学的知识,限于篇幅和本人的表达能力。可能解释得不是非常清晰,假设有什么不明确的地方建议学习一下这篇文章,图文并茂,解释得比較清晰。

假设你依照这个文档的步骤安装了SRCA的根证书的话。那么以后全部SRCA颁发的证书在你的电脑上都会被觉得是安全的。这有什么危害呢?首先SRCA是一个体制内的部门。所以他全然有可能会被有关部门控制。

假设有关部门利用SRCA的私钥伪造了一个Gmail的证书,然后有关部门再通过电信运营商或者某墙拦截下来你和Gmailserver之间的全部通信,然后把自己伪造的证书发给你,因为你安装了SRCA的根证书。你就会觉得这个证书是安全的。也就是说你就会以为你收到的内容是Gmailserver发送的。这样有关部门就在你和Gmailserver之间充当了一个中间人的角色。这样你和Gmailserver之间的全部加密通信就都神不知鬼不觉得被有关部门监听了。他们就能够得到你的邮件的内容甚至还有可能得到Gmail的password。这就是著名的中间人攻击(MITM)。

这里仅仅是以Gmail为例,因为有关部门多次试图获得一些异见人士的Gmail邮件内容,就不具体说了。

说完了安装证书的危害,那么为什么不使用VeriSign这个受信任的机构颁发的证书呢?

有些人就開始出来为铁道部辩护了。说铁道部不愿意花钱买证书,或者技术人员提出了要购买证书的要求可是领导不懂这些所以不允许等等。

我最開始也觉得这个是有可能的。毕竟这是在天朝。可是后来我发现https://epay.12306.cn/这个完毕订票后用来支付的二级域名就是用的VeriSign颁发的证书。那为什么登陆账号以及订票不使用这个VeriSign的证书呢?

因为我实在无法找出合理的解释,所以我仅仅好觉得是这种:铁道部因为某个特殊的原因,希望大家在自己的电脑上面安装SRCA的根证书,可是他自己也知道使用自签名的证书是有危急的,只是登陆和订票部分仅仅是涉及到用户的隐私问题而已,即使有安全问题也无所谓的。天朝的p民本来就没有什么隐私的。可是支付部分涉及到钱,假设出了事儿就比較麻烦。所以支付部分还是使用了VeriSign的证书。


转载于:https://www.cnblogs.com/xfgnongmin/p/10739855.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac中安装Node和版本控制工具nvm遇到的坑

首先说说常规的安装 1. 下载nvm,使用nvm来管理Node版本 官方文档 windows 版本  https://github.com/coreybutler/nvm-windows mac 版本    https://github.com/creationix/nvm#install-script 命令行 尽量不要用brew,免得掉坑 curl -o- https://raw.githubu…

wepy - 与原生有什么不同(x.wpy)使用实例

源码 1 <template>2 <view classmark wx:if"{{showMark}}">3 <view animation"{{animationData}}" class"animCat">4 <image src"http://osk1hpe2y.bkt.clouddn.com/18-5-30/34559443.jpg"></…

CSS实现div梯形分割

原理 使用的border边框属性结合svg 转换 详见代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>css实现div边框斜角</title><style type"text/css"> .labels {display: i…

算法学习——决策单调性优化DP

update in 2019.1.21 优化了一下文中年代久远的代码 的格式…… 什么是决策单调性&#xff1f; 在满足决策单调性的情况下&#xff0c;通常决策点会形如1111112222224444445555588888..... 即不可能会出现后面点的决策点小于前面点的决策点这种情况。 那么这个性质应该如何使用…

SVG画一个箭头

参考菜鸟手册&#xff1a; https://www.runoob.com/svg/svg-tutorial.html 打开菜鸟中的在线工具 在可视化截图拖拉元素绘制箭头 点击command U 查看源码 将源码拷入html代码中&#xff0c;查看效果 最后&#xff0c;贴出源码供大家参考 <!DOCTYPE html> <…

数字签名与HTTPS详解

因为HTTP协议本身存在着明文传输、不能很好的验证通信方的身份和无法验证报文的完整性等一些安全方面的确点&#xff0c;所以才有了HTTPS的缺陷。HTTPS确切的的说不是一种协议&#xff0c;而是HTTP SSL (TSL)的结合体。HTTP报文经过SSL层加密后交付给TCP层进行传输。SSL(安全套…

WPF效果(GIS三维续篇)

去年这个时候简单的摸索了一下三维的GIS相关的东西,也就是仅仅玩耍了一把,这次来点真正用的上的干货效果效果&#xff1a; 1、加载自定义百度样式的瓦片效果 2、加载自定义百度样式的缩放效果 3、快速手动进去咱的大帝都 4、加载海量Mark效果 5、加载海量Mark和简单模型效果 6、…

[19/04/23-星期二] GOF23_创建型模式(工厂模式、抽象工厂模式)

一、工厂模式(分为&#xff1a;简单工厂模式、工厂方法模式、抽象工厂模式) 实现了创建者和调用者的分离 核心本质&#xff1a;1、实例化对象&#xff0c;用工厂方法代替new操作&#xff1b;2、将选择实现类、创建对象统一管理和控制&#xff0c;从而将调用者跟实现类解耦。 简…

Chrome浏览器12px问题-webkit-text-size-adjust: none 已失效的解决方案

对于早期的chrome, 如果要想显示12px以下的字体&#xff0c;一般通用的方案都是在对应的元素中添加 div {-webkit-text-size-adjust: none; }但是我今天遇到的需求&#xff0c;添加了之后没有反应&#xff0c;而且浏览就根本不支持这种写法。 在网上看到了博客《Chrome浏览器…

深入理解vue中的slot与slot-scope

写在前面 vue中关于插槽的文档说明很短&#xff0c;语言又写的很凝练&#xff0c;再加上其和methods&#xff0c;data&#xff0c;computed等常用选项在使用频率、使用先后上的差别&#xff0c;这就有可能造成初次接触插槽的开发者容易产生“算了吧&#xff0c;回头再学&#…

关于Java抽象类,接口与实现接口及派生类继承基类

1. 抽象类 抽象类就是有一个或多个方法只被声明而未被实现。 抽象方法的声明以分号结束&#xff0c;并且用关键字abstract来说明它以标识它为抽象方法。 格式&#xff1a; public abstract class 类名{ 定义变量// 抽象方法// } 2. 接口是抽象类的一种&#xff0c;之包含常量…

Luogu P1471 方差

题目传送门 开了十倍空间才过是什么鬼&#xff1f;该不会我线段树炸了吧……细思极恐 平均数都会求&#xff0c;维护区间和&#xff0c;到时候除一下就好了。 方差的求法如下(用的Luogu的图片) 因为要维护一个平方&#xff0c;我们可以考虑使用van♂完全平方公式将它拆开&#…

Android SDK 2.3/3.0/4.0/4.2 下载与安装教程

Eclipse下搭建Android开发环境教程&#xff1a;http://dev.son1c.com/show/1253.html Google已经发布了Android SDK 4.2版本.下面给朋友们介绍一下安装 Android 模拟器 Emulator模拟器的方法: 1、首先确定安装了Java JDK&#xff0c;如果没有&#xff0c;可以去http://www.ora…

浏览器渲染原理与过程

一、浏览器如何渲染网页 要了解浏览器渲染页面的过程&#xff0c;首先得知道一个名词——关键路径渲染。关键渲染路径&#xff08;Critical Rendering Path&#xff09;是指与当前用户操作有关的内容。例如用户在浏览器中打开一个页面&#xff0c;其中页面所显示的东西就是当前…

深入理解CSS盒模型 - 程序猿的程 - 博客园

深入理解CSS盒模型 本文是学习中传思客在慕课网开的课程《前端跳槽面试必备技巧》的学习笔记。课程地址&#xff1a;https://coding.imooc.com/class/evaluation/129.html#Anchor。 如果你在面试的时候面试官让你谈谈对盒模型的理解&#xff0c;你是不是不知从何谈起。这种看似…

线程死锁问题

1 package com.demo.bingfa;2 3 /**4 * java并发编程中&#xff0c;死锁的概念5 *6 * 我们启用了两个线程&#xff0c;分别抢占2个资源&#xff0c;但这两个资源又分别被不同的对象&#xff08;字符串&#xff09;锁住了。7 * 当第一个线程调用 resource1 方法&#xff0c;…

使用PM2搭建在线vue.js开发环境(以守护进程方式热启动)

项目以vue.jslayUI的作为前端开发技术栈&#xff0c;需要有一个在线的环境供项目成员实时查看效果&#xff0c;总不能每次都webpack打包发布后才能看到效果吧&#xff01;刚开始就简单使用npm run dev命令热启动&#xff0c;但是shell命令窗口退出后&#xff0c;热启动也就失效…

zabbix实现mysql数据库的监控

先来介绍zabbix中几个常用的术语&#xff1a; 主机&#xff08;host&#xff09;&#xff1a; 要监控的网络设备&#xff0c;可由ip或DNS名称指定。 主机组&#xff08;host group&#xff09;&#xff1a; 主机的逻辑容器&#xff0c;可以包含主机和模板&#xff…

VSCode配合eslint进行JavaScript质量检查

写在开始前&#xff1a;如有不准确的地方希望大家提出&#xff0c;文章可以改知识不能错。 创建一个项目 这里已node项目为例 npm init 根据提示填写相关信息 安装eslint npm install eslint --save也可以全局安装 npm install eslint -g初始化 eslint文件 eslint --init执行命…

未找到导入的项目,请确认 Import 声明中的路径正确

VS2017打开以前vs版本开发的项目 <Import Project"$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project"$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" /> 修改V12…