加密和解密技术基础与OpenSSL(3)


5、单向加密:即提出数据指纹(即特征码);只能加密,不能解密;
 特性:定长输出、雪崩效应;
 功能:数据完整性的验证;
 算法:
          md5:Message Digest(消息摘要) 5(版本号), 128bits
          sha1:Secure Hash Algorithm 1, 160bits
          sha224, sha256, sha384, sha512


6、证书
将自己的公钥给CA进行特殊加工,通过特殊加工的公钥称之为 证书

7、PKI:Public Key Infrastructure
     公钥基础设施:    
                         签证机构:CA
                         注册机构:RA
          证书吊销列表:CRL
          证书存取库:CB
    
            X.509v3:定义了证书的结构以及认证协议标准
    版本号
    序列号
    签名算法ID
    发行者名称
    有效期限
    主体名称
    主体公钥
    发行者的惟一标识
    主体的惟一标识
    扩展
    发行者的签名
    
 
   
8、SSL/TLS
     SSL: 安全套接字层(ssl 1.0, ssl 2.0, ssl 3.0)
     TLS:传输层安全 (tls 1.0, tls 1.1, tls 1.2, tls 1.3)  
    
协议的开源实现:OpenSSL
                 *提供了加密解密库:libencrypto库
  *libssl库
  *openssl多用途命令行工具

 


OpenSSL使用详解  


1、SSL会话主要三步:
  第一步:客户端向服务器端索要并验正证书;
  第二步:双方协商生成“会话密钥”;
  第三步:双方采用“会话密钥”进行加密通信;
   
2、SSL Handshake Protocol:会话阶段(为会话的前两步)
    第一阶段:ClientHello(客户端向服务器端发送加密通信请求):
     向服务器端发送自己支持的协议版本,比如tls 1.2;
     客户端生成一个随机数,稍后用户生成“会话密钥”
     向服务器端发送自己支持的加密算法,比如AES、3DES、RSA;
     向服务器端发送自己支持的压缩算法;
     
    第二阶段:ServerHello(服务器端回应客户端)
     向客户端确认使用的加密通信协议版本,比如tls 1.2;
     服务器端生成一个随机数,稍后用于生成“会话密钥”
     向客户端确认使用的加密方法;
     发送服务器证书;
     
    第三阶段:
     客户端验正服务器证书,在确认无误后取出其公钥;(发证机构、证书完整性、证书持有者、证书有效期、吊销列表)    
     客户端发送以下信息给服务器端:
      一个随机数;(秘钥,用于服务器上的公钥加密)
      编码变更通知,表示随后的信息都将用双方商定的加密方法和密钥发送;
      客户端握手结束通知;
      
    第四阶段:
     收到客户端发来的第三个随机数pre-master-key后,计算生成本次会话所有到的“会话密钥”;
     向客户端发送如下信息:
      编码变更通知,表示随后的信息都将用双方商定的加密方法和密钥发送;
      服务端握手结束通知;
    
3、PKI:公钥基础设施(其功能主要是维护证书提供证书的,发放证书只是PKI中的一个功能)
   签证机构:CA
   注册机构:RA
   证书吊销列表:CRL
   证书存取库
  
4、OpenSSL功能应用
 (1)组件:
                         libcrypto, libssl主要由开发者使用;
          openssl:多用途命令行工具;
   
 (2)openssl子命令:(当输入一个错误命令时,会跳出一个子命令使用提示窗口eg:openssl  ?)
  许多子命令,分为三类:
   标准命令:enc, ca, req, genrsa, ...
   消息摘要命令(dgst子命令)
   加密命令(enc子命令)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9039919e2fc36a10f176334514e2403b.html