说到信息加密就离不开加密算法,所谓加密算法其实就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。主要有对称加密、非对称加密和单项加密。

对称加密:
   
    通信的双方使用方式用同样的密钥进行加密和解密。密钥实际上是一种算法,通信发送方使用这种算法加密数据,接收方再以同样的算法解密数据。
由于在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。
   
      优点:算法公开、计算量小、加密速度快、加密效率高;
缺点:通信双方都使用同样钥匙,安全性得不到保证;用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。
     
      常见的对称加密算法有:DES、AES、3DES等。

非对称加密:

    非对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。
   
    简单的说也就是如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。
优点:非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要;
缺点:但加密和解密花费时间长、速度慢,因此它不适合于对文件加密而只适用于对少量数据进行加密。
      常见的非对称加密有:DSA、RSA等。
  
单向加密:
 
    单向加密是指通过提取特征值的方法对数据进行加密,此种加密不可逆,且具有“雪崩效应”即元数据有一点点改变就会引起加密后的密码变化很大。
   
常见的单项加密算法有:
    MD5:MD5 -- message-digest algorithm 5 (信息-摘要算法)缩写,广泛用于加密、解密技术和数据的校验。
    SHA1:(Secure Hash Algorithm,安全散列算法),数字签名等密码学应用中重要的工具,被广泛地应用于电子商务等信息安全领域。
他们都具有定长输出的特点,md5的输出长度为128位,sha1的输出长度为160位。

PKI
  
  PKI(Public Key Infrastructure)。是基于公开密钥理论和技术建立起来的安全体系,是提供信息安全服务具有普遍性的安全基础设施。该体系在统一的安全认证标准和规范基础上提供了在线身份认证,是CA认证、数字证书、数字签名以及相关的安全应用组件的集合。PKI的核心是解决信息网络空间中的信任问题,确定信息网络、信息空间中各种经济、军事、和管理行为行为主体(包括组织和个人)身份的唯一性、真实性和合法性。是解决网上身份认证、信息完整性和抗抵赖等安全问题的技术保障体系。管理PKI的机构即为CA中心。

  作为一个安全基础设施的全功能的PKI由一系列组件和服务构成:
  1. 证书机构
  2. 证书库
  3. 证书撤消
  4. 密钥备份和恢复
  5. 自动密钥更新
  6. 密钥文档管理
  7. 交差认证
  8. 支持不可否认
  9. 时间戳
  10. 客户端软件
  
    什么是数字证书? 
  数字证书就是网络通讯中标志通讯各方身份信息的一系列数据,其作用类似于现实生活中的×××。它是由一个权威机构发行的,人们可以在交往中用它来识别对方的身份。 

  最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUT X.509国际标准。   

  使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:信息除发送方和接收方外不被其它人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。

Linux服务器实现CA功能

    在linux服务器上实现CA功能需要使用到Openssl,Openssl是一个基于密码学的安全开发包,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

1.在服务器生成供CA使用的openssl证书
cd /etc/pki/CA
(umask 66; open; openssl genrsa 2048 > private/cakey.pem)
#先生成CA的密钥
openssl req –new –x509 –key –days 3650 private/cakey.pem –out cacert.pem    
#向自己提出发证请求

2.配置CA
CA的配置文件位于/etc/pki/CA/openssl.conf中
mkdir certs crl newcert
touch index.txt
echo “01” > serial
#创建几个CA配置文件中要用到的目录

3.将收到的签名请求(.csr)做成证书
openssl ca –in web.csr –out web.crt

客户端证书的获得:


1.针对需要证书的服务建立对应目录
mkdir /etc/httpd/ssl

2.生成httpd的公钥
(umask 66; openssl genrsa 2048 > web.key)

3.生成签名(.csr)文件
openssl req –new –key web.key –out web.csr

4. 将生成的签名.csr文件发送给CA