数字证书
系列博文
- 信安小白,说明白渗透测试及信息安全
- 信安小白,一篇博文讲明白暴力破解和SQL注入
- 信安小白,一篇博文讲明白上传漏洞——获得shop靶机的Webshell
- 信安小白,一篇博文讲明白存储型、反射型XSS漏洞
- 信安小白,一篇博文讲明白CSRF攻击和防御
- 信安小白,科普一篇博文讲对称密码算法、非对称密码算法
- 信安小白,一篇博文讲明白数字签名
- 信安小白,一篇博文讲明白数字证书和PKI(公钥基础设施)
前言
必要参考:信安小白,一篇博文讲明白数字签名
从图中可知,传递合同的整个过程中最重要的部分,因此需要会话密钥进行AES加密信息,而会话密钥是用Bob的公钥进行RSA加密。因此用RSA算法加密AES算法密钥是安全的关键所在。也就是说:整个过程的信息安全机制在于如何将Bob的公钥,安全传输给Alice,用于加密AES算法密钥,同时Bob也需要Alice的公钥来验证签名。
公钥本身是公开的,Alice和Bob需要交换密钥进行操作。过程中会出现公钥在传输时被第三人替换,被中间人攻击的情况。
中间攻击: Tom截获两个人的公钥,同时发送自己的公钥给双方。Alice无法验证收到的公钥是否是Bob的。Alice将原本是Bob的公钥(其实是Tom的公钥)用于数据加密发送给Bob。Tom在中途截获了Alice发送的数据包,用自己的私钥进行解密,获得合同。如果合同被Tom修改后再次用Bob的公钥加密。这样Bob收到的合同与Alice最初发送的合同就不一样了,会存在很大隐患。
出现的问题:
Alice和Bob都以为是直接和对方进行秘密通信,实际上所有的信息都被Tom翻译过了,如何确认身份?或者说能否确认身份?(不能用发送私钥的方式确认身份,因为还需要使用公钥来解密进而确认身份,出现相同的问题!)
参照生活中我们会使用到的身份证——只能使用数字证书的方式解决以上问题
一、数字证书
参照身份证,证明每个人是唯一的。身份证号能证明我们每一个个体的身份,而数字证书上的证明就是公钥。身份证还需要公安局权威认证,因此数字证书也需要第三方权威颁发,这里的第三方就是CA认证。身份证还需要公安局盖章,证明是公安局签发用于防伪,而数字证书上需要第三方权威机构的数字签名用于防伪认证。
二、CA(Certification Authority)认证
CA----认证中心
- CA为电子商务、电子政务等网络环境中各个实体颁发数字证书,以证明身份的真实性,并负责在交易中检验和管理证书。
- CA对数字证书的签名使得第三者不能被伪造和篡改证书。
- CA认证是具有权威性、可信赖性、公证性的第三方机构。
数字证书模版:
2.1 CA认证信息
- 数字证书信息经过hash算法得到摘要1
- CA用自己的私钥对摘要进行签名
- 签名附在数字证书信息后面
- 接收方用CA公钥解密得到摘要1
- 接收方将数字证书信息进行hash得到摘要2
- 比对摘要1和摘要2验证
- CA是权威的机构因此公钥不是很容易会被篡改,就好比110号码是公安局的电话,没有人敢用110号码进行诈骗。
2.2 CA结构
2.3 一般的证书产生流程
个人先向注册机构进行证书申请,随后注册机构向证书认证机构提出申请,认证机构负责生产证书,从证书资料库发布证书(认证机构的数字签名)与个人绑定(个人公钥)交给注册机构,注册机构再交给个人。个人拿上证书进行数据传输,通过证书资料库进行证书状态查询,用自己的私钥进行证书确认。
2.4 完整流程
数字证书:发送方自己的数字证书(公钥)
图中没画Bob把自己的数字证书发送给Alice的过程,也少了双方数字证书的验证!
上图中整个过程的核心的部分是数字签名、数字证书、会话密钥的加密都需要用到的公钥算法(非对称加密算法)。对称加密算法只用于加密数据,非对称加密算法用的很多,基于公钥算法而展现的模式叫做PKI。
三、PKI,Public Key infrastructure ,公钥基础设施
- PKI是一组组件和规程
- PKI是一个用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施。
- PKI提供的服务:
-1. 认证服务
-2. 完整性
-3. 保密性
3.1 PKI/CA发展历程
- 20世纪80年代,美国学者提出了PKI的概念
- 为了推进PKI在联邦政府范围内的应用,1996年就成立了联邦PKI指导委员会
- 1996年,以Visa、MastCard、IBM、Netscape、MS、数家银行推出SET协议,推出CA和证书概念
- 1999年,PKI论坛成立
- 2000年4月,美国国防部宣布要采用PKI安全倡议方案。
- 2001年6月13日,在亚洲和大洋洲推动PKI进程的国际组织宣告成立,该国际组织的名称为“亚洲PKI论坛”,其宗旨是在亚洲地区推动PKI标准化,为实现全球范围的电子商务奠定基础
PKI的场景:
3.2 PKI权威机构
- 中国金融认证中心( China Finance Certification Authority 缩写 CFCA ),是由中国人民银行牵头,联合中国工商银行、等十二家商业银行参加建设,由银行卡信息交换总中心承建的。
- ICAO(国际民用航空组织International Civil Aviation Organization)制定了PKI数字证书的电子护照标准
- 每个香港公民一人一个智能身份证,每个智能身份证上配发一个全球通用的由香港邮政局颁发的个人数字证书
- 认证机构的严格层次结构
四、PKI应用和访问控制
4.1 网银安全流程
-
柜台注册,开通网银手机银行 ,获得U盾 (用户的私钥和用户的数字证书)
-
网银插件下载,手机银行登录
用户名、登录密码需要会话密钥加密(对称加密算法),随后需要RSA(非对称加密算法)加密会话密钥,用银行公钥加密。银行公钥从数字证书获得,存在网银插件里。同时使用安全输入键盘防止密码被记录。
网银插件下载:安全键盘、银行数字证书、安全插件 -
网银登录,查询账户余额
信息会用会话密钥加密。查询余额,查询的信息需要银行签名,比如打印各种信息银行会盖章。 银行数字签名用银行的私钥签,用银行的公钥来验证签名。
余额查询银行要签名并加密,会话密钥由客户端产生 -
转账,插入U盾
转账需要我们自己签字,需要自己的私钥来加密。U盾里存着我们自己的私钥,银行通过我们的数字证书获得公钥,用我们的公钥验证签名。插入U盾时,我们就会获得我们自己的数字签名。
U盾中存着我们自己的私钥和数字证书。
4.2 HTTPS(HTTP over SSL)
- SSL (Secure Sockets Layer)协议Internet网上安全通讯与交易的标准, 浏览器就支持此协议
- SSL协议使用通讯双方的客户证书以及CA根证书,在通讯双方间建立起了一条安全的、可信任的通讯通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。
- TLS(Transport Layer Security,传输层安全协议)是SSL3.0的后续版本,可以理解为SSL3.1
- 使用SSL协议时就是使用密文在传输了,不再使用明文传输!
4.2.1 SSL概述
SSL在应用层和传输层之间
一般查看网站都使用单向SSL功能:
就像网上银行的“查询余额服务”一样,只用查看服务器的数字证书,不会查看用户客户端自己的数字证书。会话密钥每次访问时都会重新获得!
双向认证 SSL 协议的具体过程:
相当于网上银行的转账过程,需要用户提供自己的数字证书进行交换。
- 浏览器发送一个连接请求给安全服务器。
- 服务器将自己的证书等信息发送给客户浏览器。
- 客户浏览器检查证书是否是由自己信赖的 CA 中心所签发的。如果是,就继续执行协议;如果不是,给出警告消息:警告客户这个证书不是可以信赖的,询问客户是否需要继续。
- 浏览器比较证书里的消息,例如域名和公钥,与服务器刚刚发送的相关消息是否一致,如果是一致的,客户浏览器认可这个服务器的合法身份。
- 服务器要求客户发送客户自己的证书。收到后,服务器验证客户的证书,如果没有通过验证,拒绝连接;如果通过验证,服务器获得用户的公钥。(单向认证没有)
- 浏览器告诉服务器自己所能够支持的通讯对称密码方案。
- 服务器从客户发送过来的密码方案中,选择一种密码方案通知浏览器。
- 浏览器针对这个密码方案,随机产生会话密钥,用服务器的公钥加过密后发送给服务器。
- 服务器接收到浏览器送过来的消息,用自己的私钥解密,获得
会话密钥。 - 服务器、浏览器接下来的通讯都是用对称密码算法加密。
常用的https不是双向的,没有 5
4.2.2 身份认证、密码安全传输和存储:
SSL协议(Https),保证我们发送的信息(比如:用户名和密码)都是会加密的,但到了服务器端是如何做到安全存储,如何验证我们是合法的呢?
身份认证有三个要素:
- 你所知道的:例如密码、身份证号码、密保问题等;
- 你拥有什么东西:例如手机短信验证码、一个动态口令卡、U盾;
- 你拥有什么特征:例如指纹、瞳孔等等。
登录密码安全存储:
服务器端不能明文存储用户名、密码等信息,必须采用MD5等方式的Hash运算得到的Hash值存储在服务器中,防止管理员看见我们用户的相关信息。Hash算法不可能还原,不可逆 得到明文,且具有 唯一性:密文修改一位,Hash值就会改变!
Hash算法的问题:
- 一一对应,在哈希算法被人知道的情况下,可以查表反查出密码(密码相对比较简单的时候)。
- 黑客手中也往往有一份碰撞库,可以用来尝试通过验证。
- 用户密码越简单,越容易暴力破解
拖库,查表法获得密码:
防止黑客利用用户“常用密码库”进行碰撞:
Hash + Salt (对密码进行一次哈希加密后,在哈希值中添加一串系统生成的随机数(无法获取),再进行一次哈希加密)无法用哈希表反查出密码。
4.3 身份认证方式举例
4.3.1 动态口令牌
通过认证服务器发放一次性口令卡,由于在认证服务器上拥有每一个口令卡的口令变化初始值(认证服务器管理员无法看到),这样发放到口令卡上的数字将和认证服务器上的初始值基于相同的算法进行同步变化。
4.3.2 指纹识别认证
指纹的三个特性是指纹识别技术的基础:
- 每个人的指纹形状终身不变,指纹的嵴线形状在一生中不会改变;具有一定的复原性和难以毁灭性。
- 每个人的指纹各不相同。
- 指纹的触物留痕:
人工采集时期—油墨;
电子化指纹采集设备—光学式、硅芯片式、超声波式。
4.3.3 虹膜识别认证
-
虹膜是环绕在瞳孔四周有色彩的部分。每一个虹膜都包含一个独一无二的基于像冠、水晶体、细丝、斑点、结构、凹点、射线、皱纹和条纹等特征的结
构。 -
每一个人的虹膜各不相同。一个人的左眼和右眼就可能不一样,即使是双胞胎的虹膜也可能不一样。
-
人的虹膜在出生后6-18个月成型后终生不再发生变化。
-
虹膜技术的优点:
识别精度高,错误率小于百万分之一;
稳定性好,两岁后虹膜终生不变,受损害的可能性小;
采集相对方便; -
虹膜技术的缺点:
很难将图像获取设备的尺寸小型化;
需要昂贵的摄像头聚焦;
黑眼睛极难读取;
需要较好光源。
4.3.4 视网膜识别认证
- 视网膜识别原理是通过分析视网膜上的血管图案来区分每个人的。视网膜扫描是用低强度红外线照亮视网膜,以拍摄下主要血管构成的图像。
- 由于视网膜位于眼球的后面,因此采集过程需要用户高度配合,要求站在2-3英寸的地方,保持静止1-2秒的时间。
- 更重要的是被辨识者对视网膜扫描技术的忧虑,担心会影响眼睛健康。由于这些原因视网膜识别技术并未成为生物识别技术中的主流技术。
4.3.5 脸型验证
- 脸形识别,不仅仅是比对,还包括捕捉。需要从一堆移动着的影像中,识别出哪里是人相,并且把人相分离出来,再进行脸形成像。
- 在面部被捕捉之后,一些核心特征点被记录,例如,眼睛,鼻子和嘴的位置以及它们之间的相对位置。热成像技术是通过分析由面部的毛细血管的血液产生的热线来勾画出面部图像。
4.3.6 掌形识别技术
手掌特征含手和手指的大小和形状。它包括长度、宽度、厚度以及手掌和除大拇指之外的其余四个手指的表面特征。掌形采集的原理是通过红外、CCD成像等方法获得手掌的三维图像,作为掌形特征处理的输入数据。