网络安全协议SSL的知识梳理
来源:互联网 发布:怎么查网络ip地址 编辑:程序博客网 时间:2024/05/20 07:36
背景
在上信息安全课程的时候,经常听到SSL层协议为web安全提供一种安全保障机制,但是该协议的具体操作过程以及对协议的格式不甚了解。现所看论文是对网络安全协议验证方法的研究,并使用CSP(通信顺序进场)语言对SSL协议进行了描述,在对抽象语言进行理解之前,我想首先得理清SSL的具体过程。
协议简介
- 安全套接字(Secure Socket Layer,SSL)协议是一种用于Web浏览器与Web服务器之间安全交换信息的加密协议,提供三个基本的安全服务:完整性、保密性、认证性。
- 秘密性: SSL客户机和服务器之间传送的数据经过了加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文信息
- 完整性: SSL利用散列(HASH)函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输的信息全部到达目的地,可以避免服务器和客户机之间的信息受到破坏。
- 认证性:利用证书技术和可信的第三方认证,可以让客户机和服务器相互识别对方的身份。
SSL于1994年被一位名为Netscape的人开发的,专门用来保护Web的通信, 后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议。目前有三个版本:2、3、3.1,最常用的是1995年发布的第三版本。
SSL协议位于可靠的传输层协议(如:TCP)之上,应用层(如:HTTP)之下。使用TCP来提供一种可靠的端到端的安全服务,它是客户/服务器应用之间的通信不被攻击窃听,并且始终对服务器进行认证,还可以选择对客户进行认证。
协议体系结构
SSL协议由两层组成,分别由SSL记录层协议和SSL握手协议组成。同时由两层子协议同时作用,如图所示:
0x01: SSL握手协议
作用时间
客户机和服务器用SSL连接通信时使用的”第一个”子协议。在应用层发送报文之前实行。功能
协商SSL协议的版本、协商加密套间、协商密钥参数、验证通讯双方的身份或仅验证服务器身份(可选)、建立SSL连接握手流程(以单方向认证为例)
形象化比喻:
C(Client): 我想和你进行安全通话,我的对称算法有DES,RC5,秘钥交换算法有RSA和DH,摘要算法有MD5和SHA。
S(Server): 我们用DES-RSA-SHA这对组合。这是我的证书C,你拿去验证我的身份。 ——协商SSL协议的版本
C: (通过CA验证S证书的真实性,若有误,发出警告断开连接)下面我要用你的公钥进行加密,给你发消息了。
消息内容:生成per_master_secret(用于对初始化向量和hmac密钥进行加密),使用S的公钥对per_master_secret加密后发送给S
C:我说完了(使用公钥加密) ——认证身份&&生成ClientKeyExchangeS: (用私钥进行解密获得per_master_secret)生成初始化向量、hmac秘钥、加密密钥,并用per_master_secret进行加密后发送给C
S:我说完了 ——协商完毕一套加密算法SSL会话建立完毕,应用层可以开始发送数据!
SSL握手协议报文格式
3个字段:Type,Length,ContentType:(1字节)该字段指明使用的SSL握手协议报文类型
1) hello_request:
2) client_hello:
3) server_hello:
4) certificate:
5) server_key_exchange:
6) certificate_request:
7) server_done:
8) certificate_verify:
9) client_key_exchange:
10) finished: 引用块内容Length:(3字节)以字节为单位的报文长度。
Content:(≥1字节):对应报文类型的的实际内容、参数详情可见 SSL报文详解
0x02:SSL握手协议
作用时间
作用于所有的SSL通信,记录协议封装上层的握手协议、警告协议、改变密码格式协议、应用数据协议功能
1) 分组、组合
2) 压缩、解压缩
3) 以及消息认证
4) 加密传输等记录流程
SSL记录报头
总结
本文只是对SSL整个架构的简单理解,其中涉及到的具体操作(如密钥的生成、DES的加密),都是涉及到密码学的非常复杂的过程,如有兴趣,可以参考博文SSL协议详解,其中有更详细的说明。
- 网络安全协议SSL的知识梳理
- 【网络安全】SSL/TLS协议运行机制的概述
- SSL 网络安全协议 HTTPS
- CA加密,网络安全HTTPS SSL-安全传输协议SSL和TLS及WTLS的原理
- CA加密,网络安全HTTPS SSL-安全传输协议SSL和TLS及WTLS的原理
- 网络安全协议比较(PKI SSH SSL SET)
- SSH、PKI、SET、SSL网络安全协议比较
- 网络安全协议比较(PKI SSH SSL SET)
- 网络安全协议比较(PKI SSH SSL SET)
- share_ptr 的 知识梳理
- 知识系统的梳理
- 网络安全 SSL
- Wifidog的协议梳理
- 自己收集的网络安全知识
- 网络安全协议之比较(SSH、 PKI、SET、SSL)
- 网络安全协议之比较(SSH、 PKI、SET、SSL)
- 网络安全协议之比较(SSH、 PKI、SET、SSL)
- 网络安全协议比较(PKI SSH SSL SET)
- GOlang设计模式
- 图片缓存框架Picasso的学习和使用
- 缓存服务器memcached性能测试
- 插入排序java实现
- Maven学习总结(25)——Eclipse Maven Update 时JDK版本变更问题
- 网络安全协议SSL的知识梳理
- button点击设置背景色
- 换个姿势聊聊自定义 View
- spark 安装 for mac
- 系统新消息
- AndroidStudio 修改 Master Password
- 4、Oracle PL/SQL编译错误查看与处理
- spring 配置文件浅析
- 重写view画圆中间文字