Linux系统之加密、解密、openssl的基本应用及CA的实现过程


简介

加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。

  加密技术包括两个元素:算法和**。算法是将普通的信息或者可以理解的信息与一串数字(**)结合,产生不可理解的密文的步骤,**是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。


分类:

对称加密:加密方解密方使用同一个口令

加密方法:

DES、AES、3DES、Blowfish、Twofish、IDEA、RC6、CASTS、Serpent

其中常见的为:

DES(数据加密标准):56为**

AES(高级加密标准):128位**

特性:

1、加密解密使用同一个口令

2、将原文分割成固定大小的数据块,对这些块进行加密

优点:加密效率高、计算量小、加密解密的速度很快

缺点:口令传输且口令较多,无法实现**交换

公钥加密:也叫非对称加密,公钥加密的加密和解密使用的不是同一个密码,而是一对密码中的一个,,它的秘钥是成对出现的,一个叫公钥,一个叫私钥,使用公钥加密的只能使用与之配对的私钥解密;反之,使用私钥加密的只能使用与之配对的公钥解密;用私钥加密是用来认证用户的,能实现所谓的电子凭证。

单向加密

加密方法:

RSA、EIGamal、DSA

其中DSA不能实现数据加密,只能实现身份认证

特性:可以实现**交换以及身份认证

缺点:花费时间长

在非对称加密长度中,最常用的就是2048位,虽然比对称加密安全,却花费了太多的时间,所以,我们通常用对称加密来实现数据的加密盒解密,而用非对称加密实现用户的身份认证。

单向加密:单向加密具有雪崩效应,只要输入的数据相同,输出的数据就相同;反之,如果输入不同,结果就有巨大不同,可以避免逆推。

加密算法:

MD5、MD4、SHA1、SHA512、CRC-32

特性:保证数据的完整性,不可逆


OpenSSL

作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的**和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

基本功能:

OpenSSL整个软件包由三个套件组成:

libcrypto:具有通用功能的加密库

libssl:用于实现TLS/SSL的功能

openssl:多功能命令工具,可以生产**、创建数字证书、手动加密解密数据

利用openssl加密解密技术常用的功能及算法:

对称加密:

算法:

DES、AES、3DES、Blowfish、Twofish、IDEA、RC6、CASTS、Serpent

工具:gpg、openssl enc

格式:

加密:openssl enc -des3 -a -salt -in /path/to/input_file -out /path/to/cipher_file

解密:openssl enc -d -des3 -a -salt -in /path/to/cipher_file -out /path/to/clear_file

例子:

加密:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

解密:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

-in:需要加密的文件

-out:需要解密的文件

-des3:算法,也可以使用以上列出的其它算法


单向加密:

算法:md5:128bits

sha1:160bits

sha512:512bits

工具:sha1sum,md5sum,cksum,openssl dgst

格式:

openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-out filename] /path/to/somefile

例子:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

CA的实现过程:

数字证书的格式:

x509,pkcs

x509格式:

公钥和有效期限;

持有者的个人合法身份信息;

证书的使用方式;

CA的信息;

CA的数字签名;

签名是用来验证证书的有效性和合法性;

证书签署请求:

生成一对**;

把所需的信息按固定格式制作成证书申请;

用openssl实现私有CA(自建CA并完成对服务器发证):

1、自建CA

生成**对儿:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

查看公钥的命令为:

openssl rsa -in private/cakey.pem -pubout -text -noout


生成自签证书:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

-new:新的自签证书

-x509:x509格式的证书

-key:私钥文件

-out:输出的证书文件

-days:有效期限为多少天


按需要填写证书内容:


Linux系统之加密、解密、openssl的基本应用及CA的实现过程

创建需要的文件:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

2、用openssl实现证书申请:

在主机上生成**,保存至应用此证书的服务的配置文件目录下

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

生成证书签署请求:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

将请求文件发往CA:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

CA端签署证书:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

将证书传回请求者:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

吊销证书:

Linux系统之加密、解密、openssl的基本应用及CA的实现过程

注意:吊销证书并不是必要步骤,是只有在证书过期或挂失的时候才会吊销。