加密机制:
明文加密:
telnet ftp pop3
密码不可靠
sendmail NFS NIS
信息数据的不可靠
rsh rcp
验证的不可靠
实现安全的机制:
1
、随机数字生成器
(Random Number Generater)
/dev/random
系统初始化生成
软设备:生成随机数的字符设备
/dev/urandom--
》
entropy pool
熵池中生成随机数,熵池为空时
采用伪随机数机制
不安全
一般采用
random
cat /dev/random
2
、单项加密
单项加密:提取数据特征码
并不会对数据加密
特征:
任意输入,定长输出
雪崩效应
数据不可逆转
常见的算法:
md2 md5 mdc2 rmd160 sha sha1 ---> md5 sha1
3
、对称加密
:
DES 3DES AES Twofish RC6
4
、非对称加密:公钥加密
基于单向函数功能实现,密钥成对出现
加密组件:
openssl gpg(
文件加密
)
openssl rand 67
对
67
生成随机数
openssl rand -base64 67
将二进制转成
数字签名:发送方用私钥加密数据后发给接受方,接受方有对方的公钥解密
CA:
证书颁发机构
公信力的第三方
OpenCA
管理大量的
CA
证书
CA
命令:
# openssl genrsa 1024 > /root/http.key
生成密钥对
# openssl rsa -in /root/http.key -pubout
在密钥对导出公钥
# openssl req -new -key /root/http.key -out ./private/http.csr
生成
CA
申请
# openssl req -noout -in /root/http.csr -text
查看
CA
申请信息
自签证书:一般放在
/etc/pki/CA
# openssl req -new -x509 -key /private/http.key -out ./private/http.crt -days 3655
openssl
的配置文件:
/etc/pki/tls/openssl.cnf
可以配置证书默认选项
测试
CA
证书:
# cd /etc/pki/tls/certs
# make httpd.crt
生成证书
# make httpd.key
也可以生成私钥
吊销证书:
# openssl ca -revoke httpd.crt
更新证书列表:
#openssl ca -gencrl -out httpd.crl
OpenSSL
的相关配置
一、配置一个
CA
服务器
(192.168.0.21)
1
、生成密钥
# cd /etc/pki/CA
# openssl genrsa 1024 > private/cakey.pem
生成密钥对
# chmod 400 private/cakey.pem
2
、自签证书
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
根据实际情况填写相关信息
3
、编辑
openssl
的配置文件
/etc/pki/tls/openssl.cnf
# vim /etc/pki/tls/openssl.cnf
找到
[ CA_default ]
并更改
dir
的值
dir = /etc/pki/CA
4
、建立所需文件
# mkdir certs newcerts crl
# touch serial index.txt
# echo 01 > serial (16
进制
从
01
开始
)
二、配置客户端
提供
https
服务需要证书
客户端
ip 192.168.0.65
5
、新建并进入工作目录
# cd /etc/httpd
# mkdir certs
存放证书信息
# cd certs
6
、模拟客户机生成密钥
# openssl genrsa 1024 > httpd.key
# chmod 400 httpd.key
7
、生成并向
CA
服务器提交申请
# openssl req -new -key httpd.key -out httpd.csr
填写的信息要与
CA
保持一致
8
、将
CA
申请提交给
CA
服务器
# scp httpd.csr 192.168.0.21:/tmp
9
、在服务器端
192.168.0.21
签署证书
# cd /tmp
# openssl ca -in httpd.csr -out /etc/pki/CA/certs/httpd.crt
证书生成以后就可以直接发给客户端了
#scp /etc/pki/CA/certs/httpd.crt 192.168.0.65:/etc/httpd/certs/