一、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命令生成
# 生成私钥*.keyopenssl genrsa -des3 -out private.key 2048# 生成请求证书*.csropenssl 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得到报文摘要
用于链路级模拟的NVIDIA Sionna
惠普暗影精灵Reactor评测:加入可调掌托,性价比超高
导致pcb开路的原因
PI新品:集成氮化镓开关的高效、可编程开关IC
整合SAR转换器 ADC简化信号调节路径
SSL\TLS协议是什么?
一文介绍ADC的DC指标
中美贸易摩擦升级,智能手机市场股价几乎全线受牵连
华为方舟编译器详细解读 真的比安卓快吗
Intel被指蓄意减产导致奔腾G4560涨价 解释回应因需求太旺
小米也被曝将亲自入局造车,新一代“科技围猎场”已成型
变频器驱动电机异常噪音的原因及解决方法
基于DSP+FPGA的实时图像去雾增强系统设计
PCB清洁是不可避免的一项任务
低延迟HTTP ABR流媒体传输协议
虹科数字化仪——机械测量的最佳方案!(二)
国家发改委:优先发展5G商用的重点应用场景
引领数字化转型丨中兴通讯召开2022年度5G峰会暨用户大会
三相视在功率计算公式_三相电功率计算公式
软通动力子公司推出“致远”开发板并通过OpenHarmony兼容性测评