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