加密算法与CA证书(CA,SSL/TLS,HTTPS,openssl)
加密算法
安全
信息安全:
保密性,完整性,可用性,可控制性
常见安全技术:
认证,授权,审计,安全通信
对称加密算法
加密和解密使用同一个**
特性:效率高
缺点:**分发,数据来源无法确认
算法:DES,3DES等
非对称加密算法
通讯双方都拥有公钥和私钥
特性:数据加密,公钥加密需使用私钥解密,反之亦然
数字签名,接受者可以确认发送者身份
缺点:**长,算法复杂,效率低
算法:RSA,DSA
非对称加密实现加密
1传输数据给2,使用2的公钥加密,2使用2的私钥解密,不保证数据来源
非对称加密实现数字签名
1传输数据给2,使用1的私钥加密,2使用1的公钥解密,不保证数据安全
单向散列算法:哈希算法
特性:任意长度数据生成固定长度摘要
数据稍微不同,摘要完全不同
数据不可逆,不能通过摘要生成数据
可以保证数据完整性
算法:sha1,md5
数字签名
通讯: a → b
a使用哈希算法计算数据生成摘要,再使用自己的私钥加密
b使用a的公钥解密,再使用哈希算法得到摘要,相同则确认数据安全和数据来源
数据加密
通讯: a → b
a使用对称**加密数据名,再使用b的公钥加密
b使用b的私钥加密,再使用对称**解密
综合加密算法
对称key{Sa[hash(data)]+data}+Pb(对称key)
a使用哈希算法生成摘要,再使用私钥a加密数据和摘要,再使用对称**加密,最后使用公钥b加密对称**
b使用私钥b解密,再使用对称**解密,再使用公钥a解密,哈希算法得到摘要,摘要信息相等到数据
密码交换
方式: HE
公钥加密
DH:回话**,迪菲赫尔曼
中间人攻击
MITM,中间人
client向server请求公钥,中间人用自己的假公钥换掉server的真公钥
clinet使用假公钥加密的数据y,中间人使用假**查看修改为x,再使用server真公钥加密
server查看到的是中间人的x数据
CA和证书
PKI:公共**加密体系
证书: 由证书签证机构CA颁发,对公钥进行签名和认证,保证公钥的唯一性和合法性
证书结构:X509格式
版本,序列,签名算法,颁发者,使用者,有效期,公钥
签证机构:CA
吊销列表:CRL
证书类型:证书授权机构的证书,服务器证书,用户证书
证书获取方式: 自签名证书,证书机构颁发的证书
安全协议SSL/TLS
安全通讯协议,实现认证,机密性,完整性校验,重放保护
工作在TCP/IP分层的应用层和传输层之间
**交换+签名
ECDHE**交换,RSA数字签名
ECDHE**交换,ECDSA数字签名
HTTPS协议★
HTTPS协议: 就是“HTTP”和“TLS”的组合。
在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性
过程:
1,客户端发起HTTPS请求
2,采用HTTPS协议的服务器必须要有数字证书,如果为自签名证书,需要客户端通过验证才能访问,如果是受信任的公司申请的证书则不会提示
3,服务器传输证书给客户端
4,客户端通过TLS协议解析服务器证书,验证公钥是否有效,颁发机构以及过期时间等,如果异常,提示证书存在问题。如果证书没有问题,生成随机值,使用证书中的公钥进行非对称加密。
5,客户端将加密信息(加密后的随机值等)传输给服务器
6,服务器端通过私钥解密得到随机值
7,服务器端通过随机值对数据进行对称加密发送给客户端
8,客户端使用之前生成的随机值解密数据,得到数据
OpenSSL
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联网的网页服务器上
base64编码
使用64个可打印字符表示二进制数据
ascii码,base64码
例:
echo -n Man | base64
TWFu
echo TWFu | base64 -d
Man
echo 'ibase=16;obase=2;4D' | bc
1001101
openssl实现对称加密
OpenSSL enc
加密: openssl enc -e -des3 -a -salt -in ff -out ff.key
解密: openssl enc -d -des3 -a -salt -in ff.key -out ff
openssl实现单向加密(哈希算法)
openssl dgst
算法: md5 ,sha1 ,sha256等
openssl dgst -md5 f2
MD5(f2)= e96f0d57478f3e285dddeb719694cc7a
openssl dgst -sha1 f2
SHA1(f2)= 9217e55181ef60bd14397fb67c59bfd08fbc2ab4
openssl dgst -sha256 f2
SHA256(f2)= 5904729472824dd37ff04493d9411f8a0a1d7a61e7c583890bb6f2dd20602a5f
openssl实现KPI
生成私钥
openssl genrsa -out ff.key
生成使用对称**加密的私钥
openssl genrsa -out ff.key -des 1024
chmod 600 ff.key
将加密对称秘钥key解密
openssl rsa -in ff.key –out ff2.key
通过私钥提取公钥
openssl rsa -in ff.key –pubout –out ffg.key
openssl创建私有CA实现证书申请颁发
Windows 查看证书需使用crt 后缀
windows添加证书需放入受信任区域
*.baidu.com 泛域名证书
openssl配置文件,CA相关信息
/etc/pki/tls/openssl.conf
policy 选项则代表证书与CA证书的同步关系
CA配置文件
/etc/pki/CA/
index.txt 证书数据库文件,包括证书状态等
serial 下一个证书编号文件
cacert.pem CA自签名证书文件
/private/cakey.pem CA私钥文件
/certs/ 证书颁发文件夹
/newcerts/ 新证书颁发文件夹
crl.pem 吊销证书列表
crlnumber 证书吊销编号文件
创建私有CA
yum install openssl -y &>/dev/null
#创建CA需要的文件
mkdir -pv /etc/pki/CA/{certs,crl,newcerts,private} &>/dev/null
chmod 600 /etc/pki/CA/private
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial
#生成证书私钥
openssl genrsa -out /etc/pki/CA/private/cakey.pem &>/dev/null
#生成CA自签名证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem <<EOF
CN 国家代码
beijing 省
beijing 市
yun 组织
it 部门
www.ssy.org 使用者,网址
/n 邮箱
EOF
用户申请证书并颁发证书
#生成使用证书需要的私钥文件
openssl genrsa -out /data/mysql.key 1024
#生成证书申请文件
openssl req -new -key /data/mysql.key -out /data/mysql.csr <<EOF
CN
beijing
beijing
yun
it
www.shishengyun.com
EOF
#CA为申请者颁发证书
openssl ca -in /data/mysql.csr -out /etc/pki/CA/certs/mysql.crt -days 365
证书吊销
openssl ca -revock /etc/pki/CA/certs/mysql.crt
指定第一个证书吊销编号
echo 01 > /etc/pki/CA/crlnumber
生成或更新证书吊销列表
openssl ca -gencrl -out /etc/pki/CA/crl.pem
#查看证书状态
cat /etc/pki/CA/index.txt
#查看证书
openssl x509 -in mysql.crt -noout -text
上一篇: openssl建立tls双向验证连接方法
下一篇: OPENSSL X509证书验证