一、SSL\\TLS协议是什么?
SSL英文全称为Secure Sockets Layer,译为安全套接层。
TLS英文全称为(Transport Layer Security,译为传输层安全,是SSL的继承者。
SSL\\TLS协议用来实现安全通信。
1990年,网景(Netscape)公司开发SSL v1版本;
1994年,开发SSL v2版本;
1995年,开发SSL v3版本;
1999年,开发TLS v1版本,SSL协议弃用;
2006年,开发TLS v2版本;
2018年,开发TLS v3版本。
虽然SSL已经被TLS取代,但习惯上仍称为SSL,如HTTP over SSL,MQTT over SSL。
SSL\\TLS协议在TCP\\IP协议栈的位置是怎样的呢?《图解HTTP》中一图很好地说明这个问题:

二、SSL\\TLS协议是如何工作的?
SSL\\TLS协议的工作流程同样在《图解HTTP》有精彩描述,网络上也有通俗解释,可见参考资料部分。这里不再描述,主要关注如下问题:
1.Web通信的证书是如何生成的?如何放置?
(1)使用openssl genrsa和openssl req命令生成
# 生成私钥*.key
openssl genrsa -des3 -out private.key 2048
# 生成请求证书*.csr
openssl req -new -key private.key -out cert.csr
# 采用自认证方式,生成服务端证书
openssl x509 -req -days 3650 -in cert.csr -signkey private.key -out server.crt
说明:server.crt中包含网站域名、公司等信息
(2)证书如何放置?
private.key和server.crt放置在服务端Web应用相应的目录中,服务端会通过Handshake:Certificate消息将server.crt证书相关信息发送给客户端。
- 密钥是如何生成的?又是如何加解密的?
从理论上来说,SSL\\TLS协议是先使用“非对称加密”实现“对称加密”的密钥交换,再使用“对称加密”进行安全通信。
(1)“对称加密”的密钥是如何生成的?
A. 客户端产生随机数C,并通过Client Hello发给服务端;
B. 服务端产生随机数S,并通过Server Hello发给客户端;
C. 客户端生成预主密钥(Pre-master secret),通过Client Key Exchange发给服务端;
D. 客户端和服务端通过随机数C、随机数S和Pre-master secret,按照某种算法生成master secret(主密钥),并推导出hash secret和session secret。
(2)进一步,如何对应用层(以HTTP为例)报文进行加解密呢?
A. 客户端使用协商好的对称加密算法加密HTTP报文,密钥为hash secret,生成报文摘要C(Message Authentication Code),然后再使用密钥session-secret加密HTTP报文和报文摘要C。
B. 服务端先使用session-secret解密,得到HTTP报文和报文摘要C,使用hash secret得到报文摘要
-
SSL
+关注
关注
0文章
132浏览量
26649 -
安全通信
+关注
关注
0文章
21浏览量
8651 -
TLS
+关注
关注
0文章
54浏览量
4870
发布评论请先 登录
关于蜂鸟E203内核运算算子K扩展的基础知识分享
mbedTLS软件包是怎样进行工作的呢
关于HTTPS 的 9 大经典问题 你都了解吗
基于C4.5决策树的HTTPS协议加密流量分类
HTTPS协议是什么?为什么安全?
HTTP和HTTPS的区别 HTTP协议请求类型
SSL网关是什么?SSL网关的功能作用
SSL 、IPSec、MPLS和SD-WAN的对比分析
https 的本质、证书验证过程以及数据加密
阿里云SSL证书优惠精选,WoSign SSL轻量化助力网站安全合规

SSL\TLS协议是什么?
评论