目录
安全套接字层(SSL)
Web应用安全
Web安全威胁
基于应用层实现Web安全,用应用层协议实现安全,如PGP SMIME为邮件安全,SET为http安全,ssh为登录
基于传输层实现Web安全,用传输层协议实现安全,因为直接改造tcp udp不现实,所以在传输层和应用层间 加上一层,称为ssl 安全套接字层,tls认为是ssl的另一个版本。可支持所有使用tcp的网络应用
ssl是最广泛使用的。
基于网络层实现Web安全,如果把安全的功能往下,就是放在网络层,IPSec
简化的SSL
- https就用了ssl
- 加密放窃听、伪造、防止篡改、身份认证(可选功能)
简化ssl过程
- 握手(handshake): Alice和Bob利用他们的 证书、私钥认证(鉴别)彼此,以及交换 共享密钥。因为公钥计算量太大,所以用对称秘钥加密数据,但对称秘钥第一次要用非对称传输
- 密钥派生(key derivation): Alice和Bob利用 共享密钥派生出一组密钥
- 数据传输(data transfer): 待传输数据分割成 一系列记录
- 连接关闭(connection closure): 通过发送特 殊消息,安全关闭连接
- Alice hello
- bob给了证实
- Alice用ca认证证书,从证书里拿到bob公钥
- Alice用公钥加密 对称主密钥,发送给bob
密钥派生,实际用主密钥产生4个秘钥。
- Kc是对称秘钥,客户端用它加密数据,当然服务端也知道它,否则无法解密数据
- Mc,我的理解是 上一章学过的 MAC散列计算用到的 认证秘钥,mac散列计算 除了用报文还用一个 认证秘钥
- 那这四个秘钥是什么时候 cs互相传输的?没讲,只说了传输主密钥,可能是cs两端各自生成的?实际情况复杂的多,这里只是简化的学习
简化的SSL : 数据记录
把tcp的报文分割 后传输,mac在每个分片 都要有。保证接收方接受数据更快,即时消息应用如qq能即时显示
简化的SSL : 序列号
重放攻击,在mac计算散列时,把序号也计算进去
简化的SSL : 控制信息
mac散列计算再加 type,这些都是简化的ssl,为了方便学习,真实更复杂
实际SSL层
协议栈
ssl握手、警告、更改密码、http都被封装到了ssl记录协议。
客户端发起连接,提供密码选项,服务端选一个
SSL更改密码规格协议,通信中修改秘钥组、加密策略。有个contentType,被封装到记录协议
SSL警告协议,有个contentType,被封装到记录协议
SSL握手协议
SSL握手过程
这个过程重点
第56,客户端把之前发送的所有消息计算了MAC散列,发送给服务端;服务端同样对之前自己发送的所有消息计算MAC。因为在第5步前,除了发送预主密钥都是明文传输。
为什么客户端、服务端各传送一个随机数?
ssl握手消息,不包含握手成功后的应用数据传输
完成握手后,就可以传输应用数据
SSL记录协议
记录协议是把握手、数据都封装了
ssl握手和tcp握手?两者顺序
tcp在ssl下层,所以必须在tcp的三次握手成功后,ssl才开始握手。
ssl握手完,应用层的数据就被 ssl分块加密了。
如果tcp想断开连接,也必须先让ssl断开,上图中ssl发送警告包含关闭连接信息,ssl断开后,才进行tcp四次挥手
密钥派生
预主密钥先产生主密钥,主密钥再和新的随机数产生密钥块,密钥块再有那4个密钥。
客户端和服务端都进行了这个过程,并且输入输出全部一样!才能保证互相能加密解密。
标签:ssl,握手,tcp,秘钥,计网,SSL,密钥,接字 来源: https://blog.csdn.net/u014203449/article/details/118393787
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。