知识积累:CA详解

全部证书有多种文件编码格式,主要包括:算法

CER编码(规范编码格式):是BER(基本编码格式)的一个变种,比BER规定得更严格
DER编码(卓越编码格式):是BER(基本编码格式)的一个变种,  比BER规定得更严格安全

*CER的不一样在于,DER使用定长模式,而CER使用变长模式。服务器

全部证书都符合公钥基础设施(PKI)制定的ITU-T X509国际标准,PKCS(公钥加密标准)由RSA实验室和其余安全系统开发商为促进公钥密码的发展而制定的一系列标准网络

好比:socket

PKCS#7(密码消息语法标准----文件后缀名:.p7b、.p7c、.spc)工具

PKCS#10(证书请求语法标准----文件后缀名:.p十、.csr)编码

PKCS#12(我的信息交换语法标准----文件后缀名:.p十二、.pfx)等加密

在得到数字证书后,能够将其保存在电脑中,也能够保存在USB Key等相应的设备中。spa

 简单的证书机构签发的流程:开放源代码

  

数字证书的应用环境是在https安全协议中,使用流程远比上述加密交互流程复杂

可是相关操做封装在传输层,对于应用层透明,在https安全协议中使用非对称加密算法交换密钥,使用对称加密算法对数据进行加密/解密操做,提升加密/解密效率

 数字证书管理工具:KeyTool和OpenSSL构建CSR(数字证书签发申请),交由CA机构签发,造成最终的数字证书

这里咱们不对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:位于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记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等

协商算法                       验证算法 客户端验证服务器端证书                 服务器端验证客户端证书:                              产生密钥

    

会话密钥                                           加密交互

  1.  随机数为后续构建密钥准备
  2. 其余信息包括服务器证书、甚至包含获取客户端证书的请求
  3. 若是服务器端回复客户端时带有其余信息,则进入数字证书验证阶段
  4.  当服务器端和客户端通过上述流程后,就开始密钥构建交互了,服务器端和客户端最初须要主密钥为构建会话密钥作准备:
  5. 完成上述主密钥构建操做后,服务器端和客户端将创建会话密钥,完成握手协议:
  6. 上述服务器端和客户端完成了握手协议之后就进入正式会话阶段,若是上述流程中有任何一端受到外界因素干扰发生异常,则从新进入协商算法阶段,下面流程表现进入会话阶段后,服务器端和客户端将使用会话密钥进行加密交互:

  OPEN SSL 环境搭建

基础原理中咱们提到了两种认证服务,单项认证服务和双向认证服务,咱们就以双向认证服务举例说明。

OpenSSL是一个开放源代码软件包,实现了SSL以及相关加密技术,是最经常使用的证书管理工具,OpenSSL功能远胜于KeyTool,可用于根证书(KeyTool不含有,所以KeyTool没有办法做为CA)、服务器证书、客户证书的管理。

相关文章
相关标签/搜索