本文共 2542 字,大约阅读时间需要 8 分钟。
http | https(http+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三个随机数一同生成的密钥就不容易被猜出了
tcp三次握手、四次挥手
tcp | udp | |
---|---|---|
共同点 | 同属于tcp/ip协议簇 | |
是否连接 | 通信之前要建立安全连接,三次握手连接 | 无需连接 |
传输可靠性 | 可靠 | 不可靠 |
速度 | 慢 | 快 |
数据量 | 大量 | 少量 |
对称加密算法 | 非对称加密算法 | |
---|---|---|
算法举例 | DES:密钥长度64位,有效长度56位,每第8位为奇偶校验位AES:密钥长度有128、192和256位SM1、SM4、SM7:密钥长度均为 128 位 | RSA:密钥长度1024、2048位SM2:密钥长度256位 |
优点 | 加密速度快,适合加密大量数据 | 1.密钥安全2.可以用来签名 |
缺点 | 1.需要保障密钥安全2.无法用于签名和抗抵赖 | 加密速度慢 |
特点:输出长度为定值,单项不可逆,有一定碰撞几率
算法:
私钥签名,公钥认证
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oxjXPGzs-1619620383516)(C:\Users\Sharm\AppData\Roaming\Typora\typora-user-images\image-20210424170059871.png)]
数字信封包括:
被加密的内容
被加密的对称密钥
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I1N1PSgT-1619620383517)(C:\Users\Sharm\AppData\Roaming\Typora\typora-user-images\image-20210424173517229.png)]
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 }
转载地址:http://jzqgn.baihongyu.com/