加密和解密技术基础与OpenSSL(4)


  a、对称加密:
   工具:openssl  enc,  gpg
   支持的算法:3des, aes, blowfish, towfish
         enc命令:(-e表示加密,-d表示解密)
    加密:~]# openssl  enc  -e  -des3  -a  -salt  -in fstab   -out fstab.ciphertext
    解密:~]# openssl  enc  -d  -des3  -a  -salt  -out fstab   -in fstab.ciphertext
                  b、单向加密:(计算特征码)
   工具:openssl dgst, md5sum, sha1sum, sha224sum, ...
   dgst命令:
    ~]# openssl  dgst  -md5  /PATH/TO/SOMEFILE
  c、生成用户密码:
   工具:passwd, openssl  passwd
               openssl  passwd  -1  -salt  SALT
                 d、生成随机数:
   工具:openssl  rand
   ~]# openssl  rand  -hex  NUM
   ~]# openssl  rand  -base  NUM
  e、公钥加密:
   加密解密:
    算法:RSA,ELGamal
    工具:openssl  rsautl, gpg
   数字签名:
    算法:RSA, DSA, ELGamal
    工具:
   密钥交换:
    算法:DH
    
   生成密钥:
    生成私钥: ~]# (umask 077;  openssl  genrsa  -out  /PATH/TO/PRIVATE_KEY_FILE  NUM_BITS)
    提出公钥: ~]#  openssl  rsa  -in  /PATH/FROM/PRIVATE_KEY_FILE  -pubout
    
                  f、Linux系统上的随机数生成器:
            /dev/random:仅从熵池返回随机数;随机数用尽,阻塞;
           /dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞;
   伪随机数不安全;
   
   熵池中随机数的来源:
    硬盘IO中断时间间隔;
    键盘IO中断时间间隔;
 


5、CA有两种: 公共信任的CA,私有CA;
    (1)私有CA:在私有范围内建立通信时可以建立私有CA:
         openssl(小范围内测试,直接使用此工具)
                                                                  openssl命令:
                              配置文件:/etc/pki/tls/openssl.cnf
         OpenCA(一个开源的CA工具,维护大量CA)
   
                             
   
                a、构建私有CA:(94分钟)
  在确定配置为CA的服务上生成一个自签证书,并为CA提供所需要的目录及文件即可;
  步骤:
     (1) 生成私钥;
            ~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
                                          查看:~]# ls   /etc/pki/CA/private
                    (2) 生成自签证书的命令;
            ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
       -new:生成新证书签署请求;
       -x509:生成自签格式证书,专用于创建私有CA时;
       -key:生成请求时用到的私有文件路径;
       -out:生成的请求文件路径;如果自签操作将直接生成签署过的证书;
       -days:证书的有效时长,单位是day;
                                        需要完善的信息:
                                        Country Name (2 letter code) [XX]:CN(所在国家)
                                        State or Province Name (full name) []:Beijing(所在省市)
                                        Locality Name (eg, city) [Default City]:beijing(所在城市)
                                        Organization Name (eg, company) [Default Company Ltd]:magedu(组织机构、公司名称)
                                        Organizational Unit Name (eg, section) []:ops(所属部门)
                                        Common Name (eg, your name or your server's hostname) []:ca.magedu.com(服务器名称)
                                        Email Address []:acadmin@magedu.com

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9039919e2fc36a10f176334514e2403b.html