在Linux下的安全工具openssl
【安全特性】
1、保密性:数据保密性、隐私性
2、完整性:数据完整性、系统完整性
3、可用性
4、真实性:确保数据发送方不是被替换的
5、可追溯性
【安全***】
被动***:窃听
主动***:伪装、重播、消息修改、拒绝服务
【安全服务】
认证、访问控制、数据保密性、数据完整性、不可否认性
【安全机制】
加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证
【密码算法和协议】
对称加密、公钥加密、单向加密、认证协议
Linux上公用的加密解密工具:gpg、openssl
【Openssl的组成】
1、openssl 多用途命令工具(各功能用子命令实现)
2、/usr/lib/libcrypto 公共加密库
3、Libssl ssl协议的实现
【用openssl实现对称加密】
语法格式:openssl enc -des 3 -a -salt -in源文件-out目标文件(存放生成的密码)
例:
上述例子是加密过程,我们再来演示一下解密过程。
例
【用openssl实现单向加密】
语法格式:openssl dgst [-md5 | -sha1] [-out文件路径]文件路径
【生成随机数】
Openssl rand -base64 | hex 4
Openssl passwd -1 -salt‘openssl rand -hex 4’
【生成密钥】
语法格式:openssl genrsa [-out文件路径]长度
(umask 077; openssl genrsa -out /root/key 1024)
提出公钥:openssl rsa -in /root/key -pubout
【使用openssl创建私有CA】
CA服务1、CA自身生成密钥
2、给自己发证书(字签证书)
通信节点:1、生成密钥文件
2、生成证书签署请求
3、把请求发给CA
CA服务:1、验证请求信息
2、签署证书
3、把签好的证书发给节点
实际过程:建立CA服务器:1、生成密钥
cd /etc/pki/CA
(umask 077; openssl genrsa -out private/cakey.pem 2048)
2、生成证书签署请求
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3000
3、初始化工作环境
touchu /etc/pki/CA/{index.txt,serial}
echo 00 > /etc/pki/CA/serial
二、节点申请证书
1、节点生成请求
生成密钥对:(umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
生成证书签署请求:openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr
三、CA签署证书请求
openssl ca -in /path/to/somefile.csr -out /path/to/somefile.crt -days N
【吊销证书】
一、节点
1、获取证书serial
openssl x509 -in /path/to/certificate_file.crt -noout -serial -subject
二、 CA
2、根据节点提交的serial和subject信息来验正与index.txt文件中的信息是否一致;
3、吊销证书
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
4、生成吊销证书的编号(如果是第一次吊销)
echo 00 > /etc/pki/CA/crlnumber
5、更新证书吊销列表
cd /etc/pki/CA/crl/
openssl ca -gencrl -out thisca.crl
查看crl内容:openssl crl -in /path/to/crlfile.crl -noout -text