第十五天:加密和安全技术-CA/OPENSSL
一、安全机制
1.1常见的安全攻击 STRIDE
Spoofing 假冒,钓鱼网站
Tampering 篡改
Repudiation 否认
Information Disclosure 信息泄漏
Denial of Service 拒绝服务
Elevation of Privilege 提升权限
1.2安全设计基本原则
使用成熟的安全系统
以小人之心度输入数据
外部系统是不安全的
最小授权
减少外部接口
缺省使用安全模式
安全不是似是而非
从STRIDE思考
在入口处检查
从管理上保护好你的系统
二、对称和非对称加密
1.1加密算法和协议
古代曾出现凯撒密码的加密方式,用于军事信息的加密处理
(1)对称加密
DES:Data Encryption Standard,56bits
3DES:
AES:Advanced (128, 192, 256bits)
Blowfish,Twofish
IDEA,RC6,CAST5
(2)非对称(公钥)加密
RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,可实现加密和数字签名
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准)
ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学,比RSA加密算法使用更小的密钥,提供相当的或更高等级的安全
(3)单向加密:单向哈希算法
![](https://img2024.cnblogs.com/blog/808098/202401/808098-20240128090343540-1441010739.png)
(4)加密方法
方法1:Pb{Sa[hash(data)]+data}
方法2:对称key{Sa[hash(data)]+data}+Pb(对称key)
(5)密码交换
三、CA和证书
1 中间人攻击
2、Public Key Infrastructure 公共密钥加密体系
PKI:Public Key Infrastructure 公共密钥加密体系
签证机构:CA(Certificate Authority)
注册机构:RA
证书吊销列表:CRL
证书存取库:
X.509:定义了证书的结构以及认证协议标准
版本号
序列号
签名算法
颁发者
有效期限
主体名称
证书类型:
证书授权机构的证书
服务器证书
用户证书
获取证书两种方法:
自签名的证书: 自已签发自己的公钥
使用证书授权机构:
生成证书请求(csr)
将证书请求csr发送给CA
CA签名颁发证书
3、安全协议 SSL/TLS
Handshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换
ChangeCipherSpec 协议:一条消息表明握手协议已经完成
Alert 协议:对握手协议中一些异常的错误提醒,分为fatal和warning两个级别,fatal类型错误会
直接中断SSL链接,而warning级别的错误SSL链接仍可继续,只是会给出错误警告
Record 协议:包括对消息的分段、压缩、消息认证和完整性保护、加密等
![](https://img2024.cnblogs.com/blog/808098/202401/808098-20240128122102547-1470180120.png)
4 、HTTPS
HTTPS 协议:就是“HTTP 协议”和“SSL/TLS 协议”的组合。HTTP over SSL 或 HTTP over TLS ,对http协
议的文本数据进行加密处理后,成为二进制形式传输
![](https://img2024.cnblogs.com/blog/808098/202401/808098-20240128122304520-145523850.png)
四、openssl
1、https://www.openssl.org/
libcrypto:用于实现加密和解密的库
libssl:用于实现ssl通信协议的安全库
openssl:多用途命令行工具
2、Base64 编码
Base64是网络上最常见的用于传输 8Bit 字节码的编码方式之一,Base64就是一种基于64个可打印字符
来表示二进制数据的方法
将每3个字节放入一个24位的缓冲区中,最后不足3个字节的,缓冲区的剩余部分用0来填补。然后每次
取出6位(2的6次方为64,使用64个字符即可表示所有),将高2位用0来填充,组成一个新的字节,计
算出这个新字节的十进制值,对应上面的编码表,输出相应的字符。这样不断地进行下去,就可完成对
所有数据的编码工作。
3、openssl 命令
(1)、openssl命令单向哈希加密
工具:openssl dgst
算法:md5sum, sha1sum, sha224sum,sha256sum…
dgst 命令:帮助:man dgst
(2)openssl 命令生成用户密码
passwd命令:帮助:man sslpasswd
(3)openssl命令生成随机数
(4) openssl命令实现 PKI
公钥加密:
算法:RSA, ELGamal
工具:gpg, openssl rsautl(man rsautl)
数字签名:
算法:RSA, DSA, ELGamal
密钥交换:
算法:dh
DSA:Digital Signature Algorithm
DSS:Digital Signature Standard
RSA:
openssl命令生成密钥对儿:man genrsa
4、建立私有CA实现证书申请颁发
建立私有CA:
OpenCA:OpenCA开源组织使用Perl对OpenSSL进行二次开发而成的一套完善的PKI免费软件
openssl:相关包 openssl和openssl-libs
证书申请及签署步骤:
1、生成证书申请请求
2、RA核验
3、CA签署
4、获取证书
(1)创建私有CA
(2)申请证书并颁发证书
5、吊销证书
6、 CentOS 7 创建自签名证书
#cd /etc/pki/tls/certs
#make
7、实战案例:在CentOS8上实现私有CA和证书申请
(1)创建相关目录
![](https://img2024.cnblogs.com/blog/808098/202401/808098-20240128132508063-992477206.png)
(2)创建CA的私钥
(3)给CA颁发自签名证书
(4)用户生成私钥和证书申请
(5) CA颁发证书
(6)查看证书
(7)将证书相关文件发送到用户端使用