数据加密类型及创建和申请CA证书

1.数据在互联网上传输必须保证以下3点特性:

 私密性:  数据加密

 完整性:   数据传输过程没有被人修改 

 身份验证: 确认对方的身份,防止中间人伪装***

2.私密性:数据加密应使用对称加密,特点速度快

      代表算法有:DES,3DES,AES,AES192,AES256,AES512,Blowfish

3.完整性:通过单向加密算法,提取数据特征码,特点是雪崩效应,定长输出,不可逆等

      代表算法有:MD5,SHA1,SHA192,SHA256,SHA384,CRC-32(检验)

4.身份验证:公/私钥加密:即为非对称加密码算法,产生密钥对,特点是速度慢

        发送方用对方的公钥加密,接收方用自己的私钥解密,即保证数据的私密性

        发送方用自己的私钥加密,接收方用对方的公钥解密,即保证数据的身份验证和私密性

      代表算法有:RSA(加密/签名),DSA(签名)

5.数据传输过程有2种方法:

  第一种:首先发送方与接收方通IKE协商生成对称的密钥,发送方或接收方按需各自生成一对非对称的公私钥,然后发送方对将要发送的数据,提取特征码,并用自己的私钥对特征码加密,即可保证数据的身份验证和私密性,再通过对称密钥对整个数据和特征码进行加密,即发送即可,接收方用协商成的对称密钥进行数据解密,用发送方的公钥对特征码进行解密校验完整性和身份验证

 第二种:首先发送方随机生成一个随机数,发送方或接收方按需各自生成一对非对称的公私钥,然后发送方对将要发送的数据,提取特征码,并用自己的私钥对特征码加密,即可保证数据的身份验证和私密性,再通过刚生成的随机数对整个数据和特征码进行加密,并且通过对方的公钥将随机数加密,放在整个数据后面一起发送即可,接收方用自己私钥的进行解密,得到发送方的随机数,再进行解密数据,最后用发送方的公钥对特征码进行解密校验完整性和身份验证

6.CA:Certificate Authority,简称CA证书,即证书颁发机构

 CA:证书格式有x509和pkcs12格式

 x509主要包括:公钥及有效期限,证书合法拥有者,证书使用说明,CA自身的信息,CA的签名

 PKI的实现方式有:TLS/SSL:也使用x509格式

             OpenGPG:格式与x509相似

 SSL:Secure Socket Layer,在应用层与传输层之间的半个层,叫做安全套接字层,也就是一种库

 例如:http明文协议通过调用SSL库,变成https加密协议

 由于SSL是一个公司开发,较不开放,而国际化标准组织就不舒服,应运产生更开放的加密机制TLS

 TLS:Transport Layer Security,叫传输层安全

  版本:TLSv1相当SSLv3版本

7.openssl工具:

  7.1.openssl ? 查看opessl简单帮助 ;man enc 查看enc帮助

   -e 加密,默认

   -d 解密

   enc 指定加密算法

   -salt 加盐,产生随机数

   -a: base64编码

 对fstab文件加密:

   openssl enc -des3 -salt -a -in fstab -out fstab.des3

 对fstab文件解密:

   openssl enc -des3 -d -salt -a -in fstab.des3 -out fstab


 7.2.提取指纹信息及特征码:

   md5sum fstab

   sha1sum fstab

   openssl dgst -md5 fstab

   openssl dgst -sha1 fstab

wKiom1c0LWmDJ7htAAIVBOcD1NQ839.jpg     7.3.对密码进行加密或hash,由于salt不一样,同样的密码造成加密后的结果不一样

   -1代表md5加密,man sslpasswd查找帮助得知:

   openssl passwd -1

   openssl passwd -1

   openssl passwd -1 -salt

wKiom1c0MDzgvylYAAGV-62ISLo307.jpg      7.4.生成指定位数的随机数,可当作密码使用

   openssl rand -base64 10

   openssl rand -base64 50

   openssl rand -base64 100

wKiom1c0Ml6DamJJAAKzExhEgtk853.jpg     8.openssl创建私有CA: 要想给其他机构颁发证书,首先自己必须有证书

 8.1.生成一对密钥: 密钥文件权限最好是600,man genrsa查看帮助,

    以下三种方法选其一生成私钥

   openssl genrsa 1024 > server.key ;   chmod 600 server.key 

   openssl genrsa -out server.key 1024; chmod 600 server.key 

   (umask 077; openssl genrsa -out server.key 1024)  #子shell运行,不影响父shell

   提取公钥:从私钥中提取公钥

   openssl rsa -in server.key  -pubout

 8.2.生成自签名证书

  openssl req -new -x509 -key server.key -out server.crt -days 365

  查看证书内容:openssl x509 -text -in server.crt

 8.3:创建一个完整的私有证书过程及步骤:

   cd /etc/pki/CA/

   (umask 077; openssl genrsa -out private/cakey.pem 1024)      #生成私钥

   openssl req -new -x509 -key private/cakey.pem -out cacert.pem  #用私钥创建CA证书

wKioL1c0d-Di9smiAAK1pLIqixY433.jpg

   mkdir certs newcerts crl

   touch index.txt

   touch serial

   echo 01 > serial

 注意:通过cat /etc/pki/tls/openssl.cnf查看创建私有CA证书所需环境

9.openssl申请证书:

  例如为https服务申请一个证书,简单步骤如下:

  cd /etc/httpd/ssl

  (umask 077; openssl genrsa -out httpd.key 2048 )   #生成私钥

  openssl req -new -key httpd.key -out httpd.csr    #用私钥申请证书,注意没有-x509

wKioL1c0d_ryzHGTAALFl1kgNro134.jpg

  openssl ca -in httpd.csr -out httpd.crt -days 365  #CA颁发机构对证书签名