一、三种加密方式

   1.对称加密

     工作机制:需要对加密和解密使用相同密钥加密算法。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。将原文分割成固定大小的数据块,对这些进行加密,前后块可能还有关联。

     优点和使用范围:对称密码技术进行安全通信前需要以安全方式进行密钥交换,且它的规模复杂对称密码技术的优点在于效率高,算法简单,系统开销小,适合加密大量数据。对称密钥算法具有加密处理简单,加解密速度快,密钥较短,发展历史悠久等优点。

     缺点:加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题

     算法:DES(56bits),3DES, AES(128bits), Blowfish,Twofish, IDEA, RC6, CAST5, Serpent

加密解密、Openssl、自建CA_第1张图片`

   2.公钥加密(非对称加密)(解决了对称加密需要传递秘钥的缺点)

     工作机制:非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。

     优点和使用范围:非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。

     缺点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得非对称加密算法比对称加密算法慢三个数量级(1000)。

     算法:RSA, EIGamal, DSA


加密解密、Openssl、自建CA_第2张图片



   3.单向加密(hash加密)

     工作机制:不是用来加密数据的,是用来实现抽取数据摘要的技术。数据摘要是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。 消息摘要采用单向Hash 函数将需加密的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是"真身"的"指纹"了。

     优点和使用范围:HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到哈希值相同的两个不同的输入消息,在计算上是不可能的。所以数据的哈希值,即消息摘要,可以检验数据的完整性

     算法:MD5,SHA1,SHA512,CRC-32


二、加密(保证私密性、身份验证、数据完整性)

   1.生成一段数据;

   2.使用单向加密算法,抽取数据的特征码;(保证完整性)

   3.使用私钥加密特征码,然后附加在数据后面;(保证身份认证)

   3.使用对称加密算法,加密数据和私钥加密的特征码;(保证加密速度)

   4.使用对方公钥加密对称加密的密码;(保证私密性)


三、SSL

   SSL 是一个缩写,代表的是 Secure Sockets Layer。它是支持在 Internet 上进行安全通信的标准,并且将数据密码术集成到了协议之中。数据在离开您的计算机之前就已经被加密,然后只有到

达它预定的目标后才被解密。证书和密码学算法支持了这一切的运转,使用 OpenSSL,您将有机会切身体会它们。

   理论上,如果加密的数据在到达目标之前被截取或窃听,那些数据是不可能被破解的。不过,由于计算机的变化一年比一年快,而且密码翻译方法有了新的发展,因此,SSL 中使用的加密协议被破解的可能性也在增大。可以将 SSL 和安全连接用于 Internet 上任何类型的协议,不管是 HTTP、POP3,还是 FTP。还可以用 SSL 来保护 Telnet 会话。虽然可以用 SSL 保护任何连接,但是不必对每一类连接都使用 SSL。如果连接传输敏感信息,则应使用 SSL。


四、Openssl

   openSSL 不仅仅是 SSL。它可以实现消息摘要、文件的加密和解密、数字证书、数字

签名和随机数字。

   OpenSSL是套开放源代码的SSL套件,其函式库是以C语言所写成,实作了基本的传输层资料加密功能。包含以下三部分:  

       1.libcryto:通用功能的加密库,众多软件要想实现加密机制直接可以调用这个库,而且调用机制也特别简单;

       2.libssl:用于实现TSL/SSL的功能;(更多TSL/SSL机制可参考)

       3.openssl:多功能命令工具。生成秘钥,创建数字证书,手动加密解密数据


五、数字证书

   (公钥加密的重要应用)让第三方机构能够用一种比较可靠的手段,将申请者的公钥安全的分发出去的一种机制。

   证书格式:x509、pkcs

        x509格式:

   公钥和有效期限:

   持有者的个人合法身份信息:(主机名)

   证书的使用方式:

   CA的信息:

   CA的数字签名:

补充:

           CA,身份认证机构 (Certificate Authority)

           数字签名,即私钥加密,公钥解密。若使用公开的公能够解密,即可确定密钥串的主人,用以完成身份认证。

           通过证书可以向CA查看此公钥是否被CA认可,即为,合法公钥。


     谁给CA发证:自签署证书。CA的证书内置于操作系统。


六、openssl的基本应用

   1.对称加密:

       算法:DES  3DES  AES  Blowfish  Twofish  RCG  CAST5

       工具: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

例:

加密解密、Openssl、自建CA_第3张图片

加密解密、Openssl、自建CA_第4张图片

   2.单向加密:

       特性:One-Way  ,  Collision-free

       算法:md5:128bits

              sha1:160bits

       工具:sha1sum  ,md5sum , cksum , openssl dgst

#openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1]    [-out filename]

       例:

wKiom1MynjDiBp7_AABUGa5oO3s030.jpg


七、使用openssl自建CA

   注:把openssl当CA使用,只能用于测试,功能小而单一;如果真的需要更大范围的CA应用,

       需要使用基于openssl的openCA.

1.服务端自签CA(用openssl实现私有CA)

      a.查看配置文件        

vim /etc/pki/tls/openssl.conf

        与ca相关的配置

加密解密、Openssl、自建CA_第5张图片

       b.生成秘钥对:(公钥是从私钥中按某种格式提取出来的)

cd /etc/pki/CA
openssl   genrsa    -out private/cakey.pem  2048

加密解密、Openssl、自建CA_第6张图片

       为避免此种情况发生,可使用子shell

加密解密、Openssl、自建CA_第7张图片

       查看公钥:(man rsa)(非必要的步骤)

加密解密、Openssl、自建CA_第8张图片

wKiom1MyrBPj38ebAACsgOwOUGw229.jpg

加密解密、Openssl、自建CA_第9张图片

       c.生成自签证书:(man req)

加密解密、Openssl、自建CA_第10张图片

           生成几个配置文件中需要的文件(这步CentOS6,可省)

wKiom1Mywpvz3ayGAACzeH_fcRk636.jpg

   2.客户端实现证书申请(另外一台主机)

       私钥放服务器的配置文件中(这里以httpd为例)

加密解密、Openssl、自建CA_第11张图片

       生成证书请求

加密解密、Openssl、自建CA_第12张图片

       请请求传给CA签署

加密解密、Openssl、自建CA_第13张图片

   3.服务器端签署证书

加密解密、Openssl、自建CA_第14张图片

加密解密、Openssl、自建CA_第15张图片

           传递给客户端

加密解密、Openssl、自建CA_第16张图片

   4.客户端查看证书

wKioL1Myz0Xi16w9AABRulkw6ME047.jpg

   5.服务器端吊销证书(一般用不着)

wKiom1My0W3TrF5DAACldsv5IXA718.jpg