数字证书双向认证

上传人:ldj****22 文档编号:35544667 上传时间:2018-03-17 格式:DOCX 页数:28 大小:1,021.01KB
返回 下载 相关 举报
数字证书双向认证_第1页
第1页 / 共28页
数字证书双向认证_第2页
第2页 / 共28页
数字证书双向认证_第3页
第3页 / 共28页
数字证书双向认证_第4页
第4页 / 共28页
数字证书双向认证_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《数字证书双向认证》由会员分享,可在线阅读,更多相关《数字证书双向认证(28页珍藏版)》请在金锄头文库上搜索。

1、1.CA 认证原理1.1. 概念数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载体,依靠数字证书,我们可以构建一个简单的加密网络应用平台,数字证书就好比我们生活中的身份证,现实中,身份证由公安机关签发,而网络用户的身份凭证由数字证书颁发认证机构CA 签发,只有经过 CA 签发的证书在网络中才具备可认证性,CA 并不是一个单纯的防御手段,它集合了多种密码学算法:消息摘要算法:MD5、和 SHA(对数字证书本省做摘要处理,用于验证数据完整服务器)对称加密算法:RC2、RC4、IDEA、DES、AES(对数据进行加密/解密操作,用于保证数据保密服务)非对称加密算法:RSA

2、、DH(对数据进行加密/解密操作,用于保证数据保密服务)数字签名算法:RSA、DSA(对数据进行签名/验证操作,保证数据的完整性和抗否认性)。证书的签发过程实际上是对申请数字证书的公钥做数字签名,证书的验证过程实际上是对数字证书的公钥做验证签名,其中还包含证书有效期验证,通过 CA 数字证书,我们对网络上传输的数据进行加密/解密和签名/验证操作,确保数据机密性、完整性、抗否认性、认证性,保证交易实体身份的真实性,保证网络安全性。所有证书有多种文件编码格式,主要包括:CER 编码(规范编码格式):是数字证书的一种编码格式,它是 BER(基本编码格式)的一个变种,比 BER 规定得更严格DER(卓

3、越编码格式):同样是 BER 的一个变种,与 CER 的不同在于,DER 使用定长模式,而 CER 使用变长模式。所有证书都符合公钥基础设施(PKI)制定的 ITU-T X509 国际标准,PKCS(公钥加密标准)由 RSA 实验室和其他安全系统开发商为促进公钥密码的发展而制定的一系列标准,比如:PKCS#7(密码消息语法标准-文件后缀名:.p7b、.p7c、.spc)、PKCS#10(证书请求语法标准-文件后缀名:.p10、.csr)、PKCS#12(个人信息交换语法标准-文件后缀名:.p12、.pfx)等,在获得数字证书后,可以将其保存在电脑中,也可以保存在 USB Key 等相应的设备中

4、。1.2.1.2. SSL/TLSSSL/TLS 原理原理我们先来看一个简单的证书机构签发的流程:这里的认证机构如何是证书申请者本身,将获得自签名证书。当客户端获得服务器下发的数字证书后,即可使用数字证书进行加密交互:数字证书的应用环境是在 https 安全协议中,使用流程远比上述加密交互流程复杂,但是相关操作封装在传输层,对于应用层透明,在 https 安全协议中使用非对称加密算法交换密钥,使用对称加密算法对数据进行加密/解密操作,提高加密/解密效率。要获得数字证书,我们需要使用数字证书管理工具:KeyTool 和 OpenSSL 构建 CSR(数字证书签发申请),交由 CA 机构签发,形成

5、最终的数字证书,这里我们不对 KeyTool 做讲解(KeyTool 不含有根证书,因此 KeyTool 没有办法作为CA),网上资料对 keytool 讲解的也挺多的,我们下面针对 OpenSSL 进行讲解。在我们搭建 OPEN SSL 环境前,我们要知道 HTTPS 协议和 SSL/TLS 协议,简单的说,HTTPS 就是 HTTP+SSL(secure socket layer)/TLS(Transport Layer Security)协议,HTTPS 协议为数字证书提供了最佳的应用环境,HTTPS 协议一般在服务器中配置,如 HTTP 服务器 APACHE、TOMCAT 等。SSL:

6、位于 TCP/IP 中的网络传输层,作为网络通讯提供安全以及数据完整性的一种安全协议。TLS:作为 SSL 协议的继承者,成为下一代网络安全性和数据完整性安全协议SSL 共有 3 个版本:1.0、2.0、3.0,TLS 也有 1.0、2.0、3.0,通常我们说的SSL/TLS 协议指的是 SSL3.0/TLS1.0 的网络传输层安全协议SSL/TLS 协议分为两层:记录协议:建议在可靠的传输协议之上,为高层协议提供数据封装、压缩、加密等基本功能的支持握手协议:建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等经过了 SSL/TLS 握手

7、协议交互后,数据交互双方确定了本次会话使用的对称加密算法以及密钥,就可以开始进行加密数据交互了,以下是握手协议服务器端和客户端构建加密交互的相关流程图: 协商算法协商算法1、 随机数为后续构建密钥准备2、 其他信息包括服务器证书、甚至包含获取客户端证书的请求验证算法验证算法如果服务器端回复客户端时带有其他信息,则进入数字证书验证阶段客户端验证服务器端证书:服务器端验证客户端证书:产生密钥产生密钥当服务器端和客户端经过上述流程后,就开始密钥构建交互了,服务器端和客户端最初需要主密钥为构建会话密钥做准备:上述 5、6 不存在次序关系,因为是异步完成 会话密钥会话密钥 完成上述主密钥构建操作后,服务

8、器端和客户端将建立会话密钥,完成握手协 议:加密交互加密交互上述服务器端和客户端完成了握手协议以后就进入正式会话阶段,如果上述流程中有任何一端受到外界因素干扰发生异常,则重新进入协商算法阶段,下面流程表现进入会话阶段后,服务器端和客户端将使用会话密钥进行加密交互:2.OpenSSL 实现双向认证OpenSSL 是一个开放源代码软件包,实现了 SSL 以及相关加密技术,是最常用的证书管理工具,OpenSSL 功能远胜于 KeyTool,可用于根证书(KeyTool 不含有,因此 KeyTool 没有办法作为 CA)、服务器证书、客户证书的管理。在 OpenSSL 官网下载:http:/www.o

9、penssl.org/source 下载最新的源码,官网还提供了 windows 版的二进制发行版地址:http:/ 准备工作选择适合自己操作系统的版本进行下载后,安装操作与普通软件一样,没有什么区别设置环境变量:打开配置文件 openssl.cfg(%OpenSSL_Home%binopenssl.cfg),找到配置CA_default:变量 dir,它指向的是 CA 工作目录,可以对其进行修改2.2. Cmd 创建命令整个 bat 文件的创建过程我们可以把它想象成这样一种场景:高考结束,教育局来颁发毕业证书给各个学校,各个学校在把证书发给学生,具体步骤如下:1) 教育局先有空白证书了2)

10、教育局又有自己的公章3) 让各个学校可以拥有毕业证发放申请4) 对空白的毕业证盖上了教育局的公章,并可以交给已经申请的学校5) 申请的学校拿到了盖有教育局的毕业证后,准备对其盖上自己的公章6) 学校在教育局已经盖上教育局公章的毕业证上又盖上了自己学校的公章7) 准备把毕业证发给学校申请毕业的学生们8) 申请毕业的学生拿取自己的学生证和身份证准备领取毕业证9) 来到学校教务处,填写单据申请学校发放毕业证10) 教育局已经转交学校来发放毕业证,此时学校把毕业证发放给申请学生11) 学生认为盖有教育局的公章和学校的公章的毕业证是有效的/构建ca子目录(证书创建时,用到下述目录,最终在certs目录中

11、获得证书文件)echo 构建已发型证书存放目录 certsmkdir certsecho 构建新证书存放目录 newcertsmkdir newcertsecho 构建私钥存放目录 privatemkdir privateecho 构建证书吊销列表存放目录 crlmkdir cr1 /构建相关文件,完成后可以进行证书的构建和签发工作echo 构建索引文件 index.txtecho 0index.txtecho 构建序列号文件 serialecho 01serial/构建根证书 echo 构建随机数 private/.randopenssl rand -out private/.rand 10

12、00/构建根证书私钥echo 构建根证书私钥 private/ca.key.pemopenssl genrsa -aes256 -out private/ca.key.pem 2048/完成密钥构建操作后,需要生成根证书签发申请文件ca.csr/生成根证书签发申请echo 生成根证书签发申请 private/ca.csropenssl req -new -key private/ca.key.pem -out private/ca.csr -subj “/C=CN/ST=HUBEI/L=WUHAN/O=YALE/OU=YALE/CN=*.qiujinyong.org“/执行完后此处又要输入根证

13、书密码/得到根证书签发申请文件后,可以将其发送给CA机构签发,也可以自行签发根证书echo 签发根证书 private/ca.cer openssl x509 -req -days 1000 -sha1 -extensions v3_ca -signkey private/ca.key.pem -in private/ca.csr -out certs/ca.cer/执行完后此处又要输入根证书密码echo 根证书转换 private/ca.p12openssl pkcs12 -export -cacerts -inkey private/ca.key.pem -in certs/ca.cer

14、-out certs/ca.p12/执行完后此处又要输入根证书密码/构建服务器证书echo 构建服务器私钥 private/server.key.pemopenssl genrsa -aes256 -out private/server.key.pem 2048/服务器证书签发申请echo 生成服务器证书签发申请 private/server.csropenssl req -new -key private/server.key.pem -out private/server.csr -subj “/C=CN/ST=HUBEI/L=WUHAN/O=YALE/OU=YALE/CN=“/执行完后此

15、处又要输入根证书密码/根证书签发服务器证书 echo 签发服务器证书 private/server.ceropenssl x509 -req -days 3650 -sha1 -extensions v3_req -CA certs/ca.cer -CAkey private/ca.key.pem -CAserial ca.srl -CAcreateserial -in private/server.csr -out certs/server.cer/执行完后此处又要输入根证书密码/将OpenSSL产生的数字证书转换为PKCS#12编码格式echo 服务器证书转换 private/server

16、.p12openssl pkcs12 -export -clcerts -inkey private/server.key.pem -in certs/server.cer -out certs/server.p12/执行完后此处又要输入根证书密码/构建客户证书echo 产生客户私钥 private/client.key.pemopenssl genrsa -aes256 -out private/client.key.pem 2048/执行完后此处又要输入根证书密码/产生客户证书签发申请echo 生成客户证书签发申请 client.csropenssl req -new -key private/client.key.pem -out private/client.csr -subj “/C=CN/ST=HUBEI/L=WUHAN/O=YALE/OU=YAL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号