什么是自签名数字证书?

来自:车小胖谈网络 (微信号:chexiaopangnetwork),作者:车小胖谈网络

问题描述

网站使用自签名证书,如果浏览器端不信任证书,如何交换对称密码?

我想咨询一下,关于网页使用自签名证书,如果用户在浏览器没有选择信任网站的证书,会如何进行对称秘钥的交换?这个时候是明文交换对称秘钥吗?


正文

最近华为事件的不断升级,让国人认识到科技的威力,谁在全球科技的竞争中处于弱势,将会遭受到强势一方的肆意蹂躏,这不是我们想要的结果。我们想要的结果是,我们有能力将对手按倒在地不断摩擦!强大是为了更好地保护自己,人民生活幸福,是为了避免被按倒在地摩擦的悲惨命运!

 

与其喊一万遍这样的口号,还不如踏踏实实学点技术,当有越来越多的人能够静下心来研究技术了,科技整体实力上升了,才能科技竞争中立于不败之地!

 

什么是证书?

每一个成年人都有一张身份证,这个身份证就是一张证书,以用来证明每个公民的身份。

 

身份证里有一块迷你芯片,存储着身份证的信息,为了防止被篡改,通常存储的内容有写保护措施。换句话说,身份证里的信息只能读取不能写入。

 

为了防止伪造,可以使用公安系统的私钥,对身份证信息进行签名。

 

公民的身份可以让公安局来证明,那公安局的身份谁来证明?

 

公安局使用自签名证书,那什么是自签名证书?

 

顾名思义,就是自己证明自己的证书,用自己的私钥给自己的证书签名。

 

逻辑不对啊,自签名证书,怎么证明他就是公安局的呢?

 

公安局的身份无法证明,公安局的身份基于信任!

 

你不信不要紧,只要银行信任他就行了。

 

银行如何信任公安局的自签名证书?

只要预先安装在银行系统的电脑里,准确地说,把公安局的自签名证书复制到电脑的证书仓库里,就是信任公安局的自签名证书了。


 

 

自签名证书里都有啥?

如图所示,这个就是自签名证书,证书的颁发者与证书的使用者相同,除了自签名部分是私钥加密的,其它部分全部为明文,包括公钥也是明文。


 

当柜员拿到小明的身份证,通过读卡器读出芯片中的公安局的签名(公安局私钥加密),然后根据到证书仓库里搜索,找到公安局的自签名证书,如上图所示,用明文的公钥尝试解密签名,解得开,证明这张身份证确实是公安局颁发的,可以继续读取身份证的其它信息。解不开,说明是伪造的。

 

读者只要将上文里的公安局用CA替换掉,就可以用这个故事来尝试理解目前互联网的数字证书的认证原理。

 

什么是CA?

CA就是类似公安局的证书颁发机构,他们的身份已经被操作系统信任了,并安装在证书的仓库里。


什么是根证书?

CA通常使用自签名证书,被操作系统信任了,他们就是根证书,因为他们是证书链的最顶端,其它的二级证书、三级证书,都是他们的孩子、孙子,所以这些自签名证书称自己为根(Root)证书,是非常形象的。

 

三级证书由二级证书机构颁发,二级证书由根证书颁发,根证书由操作系统信任,这个就是数字证书的信任链条。

 

写完背景知识,再来回答这个问题就非常简单了。

 

浏览器没有信任证书?

这个说法不是很恰当,准确的说,是网站的自签名证书没有复制到浏览器所在电脑的数字证书仓库里。当服务器将自己的自签名证书提交给浏览器审查时,浏览器无法在仓库里搜索到,所以浏览器无法校验对方的证书是否真实有效。

 

当无法校验对方证书(Certificate Verify)时,浏览器发送Alert报文报错(Fatal Error),致命性的错误,然后连接断开。

 

网站如何使用自签名证书?

一些银行早期曾使用过自签名证书,需要用户访问他们的http网站,先行下载并安装自签名证书,相当于信任了这些自签名的证书,然后就可以通过https访问网银了。

 

随意安装自签名的证书的安全风险大,一个机构如果将自己的根证书(自签名证书)潜伏在用户证书仓库里,随后颁发任何虚假证书,浏览器都会相信并与之建立安全加密通信,而用户压根觉察不到任何异常,这是很危险的!

推荐↓↓↓
黑客技术与网络安全
上一篇:无线上网,有哪些安全隐患? 下一篇:五分钟知识科普:什么是 RSA 算法