openssl篇——1.概念认识

说明
  本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
  QQ 群 号:513683159 【相互学习】
  openssl官网
  什么是Openssl、linux openssl简单的介绍与实例讲解、openssl基本原理 + 生成证书 + 使用实例、
  SSL简介、SSL/TLS协议运行机制的概述、Linux自学笔记——OpenSSL命令行工具

一、什么是openssl?openssl-github、openssl官网

  一个强大的、开放源代码的、功能齐全的 传输层安全(TLS) / 安全套接字层(SSL)协议的工具包,实现一个完整的通用密码库,囊括:主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
  采用C语言作为开发语言,具有优秀的跨平台性。
  (一)目标
    保证信息:
      ①保密性(防止窃听、通信量分析)、
      ②完整性(防止更改、伪装、重放、否认)、
      ③可用性(拒绝服务[Dos])。
    可进行安全通信,避免窃听、确认连接身份等。
  (二)解决方案
    ①加密与解密:替换加密、置换加密、现代块加密
    ②服务:认证机制、访问控制机制
    ③密钥算法和协议:对称加密、公钥加密(非对称加密)、单向加密、认证协议
  (三)什么是SSL?
  1.描述:SSL = Secure Sockets Layer = 安全套接层协议
    位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。
    能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。
  2.历史
    由Netscape(网景)公司推出第一个Web浏览器的同时提出了SSL协议标准.
    TLS1.0与SSL3.0的差别非常微小。故:TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。
  3.目的
    通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现Internet上客户端和服务器之间的安全通讯(保密性和可靠性)。

二、openssl包含哪些组件?

  密码算法库、SSL协议库以及应用程序。

1️⃣密码算法库(libcrypto)

  实现各种因特网标准中广泛使用的密码算法,即:通用密码库,是TLS实现的基础,可单独使用。
  (1)功能
    对称加密、公钥加密(非对称加密算法)、密钥协议、证书处理、密码散列函数、密码伪随机数生成器、消息验证代码(MACS)、密钥派生函数(KDF)和各种实用程序。

  (2)算法

    1.对称加密算法(8种)
      加密解密均使用同一种密钥,包含:
      ①分组加密算法(7种):AES、DES、Blowfish、CAST、IDEA、RC2、RC5
      均支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式
      ②流加密算法(1种):RC4
    2.非对称加密算法(4种):
      加密解密使用不同种密钥,包含:
      DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)
      DH算法一般用户密钥交换,DSA算法一般只用于数字签名,RSA算法既可以用于密钥交换,也可以用于数字签名
    3.信息摘要算法:(5种)
      无论原始数据长度输出均为固定长度的密文,该过程不可逆,包含:
      MD2、MD5、MDC2、SHA(SHA1)和RIPEMD
      作用:数据完整性的验证(若数据遭更改则输出摘要不同)。

2️⃣SSL协议库(libssl)

  TLSv1.3以下所有TLS协议版本的实现。
  加密模块应用库,实现了ssl及tls。

3️⃣应用程序(openssl)

  多用途命令行工具,可用于加密、测试、分析。
  1.作用
    ①加解密、②消息摘要的计算、③创建X.509证书、CSR和CRLS、④关键参数的创建、⑤SSL/TLS客户端和服务器测试 等等。
  2.运行方式
    ①交互模式。
    ②批处理/命令行模式。

三、文献资料参考地址:

  1️⃣维基百科
  2️⃣手册
  3️⃣openssl命令行

你可能感兴趣的:(#,openssl,c语言,linux,运维)