文章目录
1. http/https
http | https(http+ssl) | |
---|---|---|
安全性 | 明文传输,不安全 | 加密传输,使用会话密钥进行对称加密,减少加密耗费时间 |
状态 | 无状态 | 无状态 |
2. ssl四次握手
客户端 | 服务端 |
---|---|
1.支持的协议版本,比如TLS 1.0版 2.一个客户端生成的随机数,稍后用于生成"对话密钥" 3.支持的加密方法,比如RSA公钥加密 4.支持的压缩方法 | |
1.确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。 2.一个服务器生成的随机数,稍后用于生成"对话密钥" 3.确认使用的加密方法,比如RSA公钥加密 4.服务器证书 | |
验证服务器证书 1.一个随机数pre-master key。该随机数用服务器公钥加密,防止被窃听 2.编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥(客户端+服务端+pre-master key)发送 3.客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验 4.发送证书及相关信息(非必须,如果服务器要求的话,会发送客户端证书) | |
1.编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥(客户端+服务端+pre-master key)发送 2.服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验 |
-
为什么要有第三个随机数pre-master key的存在?
答:SSL协议不信任每个主机都能产生完全随机的随机数,如果随机数不随机,那么pre master secret就有可能被猜出来,因此必须引入新的随机因素,那么客户端+服务器+pre-master key三个随机数一同生成的密钥就不容易被猜出了
3. tcp/udp
tcp三次握手、四次挥手
tcp | udp | |
---|---|---|
共同点 | 同属于tcp/ip协议簇 | |
是否连接 | 通信之前要建立安全连接,三次握手连接 | 无需连接 |
传输可靠性 | 可靠 | 不可靠 |
速度 | 慢 | 快 |
数据量 | 大量 | 少量 |
4. 常见密钥算法
对称加密算法 | 非对称加密算法 | |
---|---|---|
算法举例 | DES:密钥长度64位,有效长度56位,每第8位为奇偶校验位 AES:密钥长度有128、192和256位 SM1、SM4、SM7:密钥长度均为 128 位 | RSA:密钥长度1024、2048位 SM2:密钥长度256位 |
优点 | 加密速度快,适合加密大量数据 | 1.密钥安全 2.可以用来签名 |
缺点 | 1.需要保障密钥安全 2.无法用于签名和抗抵赖 | 加密速度慢 |
算法 | 密钥长度 | 密文长度 |
---|---|---|
SM4 | 16字节 | 16字节 |
SM2 | 32字节 |
分组模式
5. 常见hash算法
特点:输出长度为定值,单项不可逆,有一定碰撞几率
算法及摘要值长度:
- md5:16/32字节(128/256位)
- sha1:20字节(160位)
- sha224、sha256、sha384、sha512
- SM3:32字节(256位)
6. 常见密码标准体系
7. openssl API
8. adobe pdf数字签名
9. 数字签名
私钥签名,公钥认证
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oxjXPGzs-1619620383516)(C:\Users\Sharm\AppData\Roaming\Typora\typora-user-images\image-20210424170059871.png)]
10. 数字信封
数字信封包括:
被加密的内容
被加密的对称密钥
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I1N1PSgT-1619620383517)(C:\Users\Sharm\AppData\Roaming\Typora\typora-user-images\image-20210424173517229.png)]
11. 数字证书
x509 v3格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5oSggGuJ-1619620383519)(C:\Users\Sharm\AppData\Roaming\Typora\typora-user-images\image-20210424173600974.png)]
证书格式
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate, ---签名原文
signatureAlgorithm AlgorithmIdentifier,---签名算法
signature BIT STRING ---签名值
}
证书请求格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ew432ffE-1619620383522)(C:\Users\Sharm\AppData\Roaming\Typora\typora-user-images\image-20210424174155965.png)]
CertificationRequest ::= SEQUENCE {
certificationRequestInfo CertificationRequestInfo, ---请求原文
signatureAlgorithm AlgorithmIdentifier, ---签名算法
signature BIT STRING ---签名值
}
CertificationRequestInfo ::= SEQUENCE {
version INTEGER { v1(0) } ,
subject Name,
subjectPKInfo SubjectPublicKeyInfo,
attributes [0] Attributes
}
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier {{IOSet}},
subjectPublicKey BIT STRING
}