1.对称加密算法特性
常见对称加密算法:DES、AES
2.非对称加密特性
常见非对称加密算法:RSA、DSA、ECC
3.单向哈希算法特性
常见算法:md5、sha1、sha224、
常见工具:md5sum、openssl
CA和证书
获取证书方法
自签名的证书:自己签发自己的公钥
使用证书授权机构:生成证书请求、将证书请求csr发送给CA、CA签名颁发证书
X.509证书结构
版本号、序列号、签名算法、颁发者、有效期限、主体名称
安全协议SSL/TLS
SSL/TLS组成
Handshake协议:包括协商安全参数和密码套件、服务器身份认证、密钥交换
ChangeCipherSpec协议:一条消息表明握手协议已经完成
Alert协议:对握手协议中一些异常的错误提醒,分为fatal和warning两个级别
Record协议:包括对消息的分段、压缩、消息认证和完整性保护、加密等
HTTPS
HTTPS协议:就是http协议和SSL/TLS协议的组合
OpenSSL加密工具
包括三个组件
libcrypto:用于实现加密和解密的库
libssl:用于实现ssl通信协议的安全库
openssl:多用途命令行工具
openssl命令
openssl的配置文件 /etc/pki/tls/openssl.cnf
两种运行模式:交互模式和批处理模式
三种子命令:标准命令、消息摘要命令、加密命令
openssl命令单向哈希加密
工具:openssl dgst
算法:md5sum,sha1sum,sha224sum,sha256sum
openssl dgst [-hex默认] /PATH/SOMEFILE
补充知识:
MAC:单向加密的一种延伸应用
HMAC:使用哈希算法
openssl命令生成用户密码
openssl passwd
openssl命令生成随机数
随机数生成器:伪随机数字,利用键盘和鼠标,块设备中断生成随机数
/dev/random 仅从熵池返回随机数:随机数用尽,阻塞
/dev/urandom 从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞
openssl rand -base64|-hex NUM
openssl命令实现PKI(公共密钥加密体系)
生成私钥
openssl genersa -out /PATH/TO/PRIVATEKEY.FILE [-aes128] [-aes256]
解密加密的私钥
openssl rsa -in /PATH/TO/PRIVATEKEY.FILE -out /PATH/TO/PRIVATEKEY2.FILE
从私钥中提取公钥
openssl rsa -in PRIVATEKEY.FILE -puboot -out PUBLUICKEY.FILE
建立私有CA实现证书申请颁发
证书申请及签署步骤
1.生成证书申请请求
2.RA核验
3.CA签署
4.获取证书
openssl配置文件的三种策略
match:要求盛情填写的信息跟CA设置信息必须一致
optional:可有可无,跟CA设置信息可不一致
supplied:必须填写这项申请信息
创建私有CA
创建CA所需要的文件
生成证书索引数据库文件
touch /etc/pki/CA/index.txt
指定第一个颁发证书的序列号
echo 01 > /etc/pki/CA/serial
生成CA私钥
cd /etc/pki/CA/
openssl genersa -out private/cakey.pem 2048
生成CA自签名证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
-new:生成新证书签署请求
-x509:专用于CA生成自签证书
-key:生成i请求时用到的私钥文件
-days n:证书的有效期限
-out :证书保存路径
申请证书并颁发证书
为需要使用证书的主机生成私钥
openssl genrsa -out /data/test.key 2048
为需要使用证书的主机生成证书申请文件
openssl req -new -key /data/test.key -out /data/test.csr
在CA签署证书并将证书颁发给请求者
openssl ca -in /data/test.csr -out /etc/pki/CA/certs/test.crt -days 100
注:默认要求国家,省,公司名称三项必须和CA一致
查看证书中的信息
openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates
查看指定编号的证书装态
openssl -ca -status SERIAL
吊销证书
在客户端获取要吊销的证书的serial
openssl x509 -in /PATH/FROM/CERT_FILE -noot -serial -subject
在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt的信息一致,吊销证书
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
指定第一个吊销证书的标号,注意:第一次更新证书吊销列表前,才需要执行
echo 01 > /etc/pki/CA/crlnumber
更新证书吊销列表
openssl ca -gencl -out /etc/pki/CA/crl.pem
查看crl文件
openssl crl -in /etc/pki/CA/crl.pem -noout -text