网络防御(9)

.一、SSL工作过程是什么?

SSL位于应用层和传输层之间,它能够为基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议本身分为两层:

上层为SSL握手协议(SSL handshake protocol)、SSLpassword变化协议(SSL change cipher spec protocol)和SSL警告协议(SSL alert protocol)。

底层为SSL记录协议(SSL record protocol)。

1.SSL握手协议:是SSL协议很重要的组成部分。用来协商通信过程中使用的加密套件(加密算法、密钥交换算法和MAC算法等)、在server和client之间安全地交换密钥、实现server和client的身份验证。

2.SSLpassword变化协议:client和server端通过password变化协议通知对端。随后的报文都将使用新协商的加密套件和密钥进行保护和传输。

3.SSL警告协议:用来向通信对端报告告警信息,消息中包括告警的严重级别和描写叙述。

4.SSL记录协议:主要负责对上层的数据(SSL握手协议、SSLpassword变化协议、SSL警告协议和应用层协议报文)进行分块、计算并加入MAC值、加密。并把处理后的记录块传输给对端。

SSL握手过程

SSL通过握手过程在client和server之间协商会话參数,并建立会话。会话包括的主要參数有会话ID、对方的证书、加密套件(密钥交换算法、数据加密算法和MAC算法等)以及主密钥(master secret)。通过SSL会话传输的数据,都将採用该会话的主密钥和加密套件进行加密、计算MAC等处理。

不同情况下,SSL握手过程存在差异。

以下将分别描写叙述以下三种情况下的握手过程:

仅仅验证server的SSL握手过程

验证server和client的SSL握手过程

恢复原有会话的SSL握手过程

仅仅验证server的SSL握手过程

仅仅须要验证SSLserver身份,不须要验证SSLclient身份时,SSL的握手过程为:

(1) SSLclient通过Client Hello消息将它支持的SSL版本号、加密算法、密钥交换算法、MAC算法等信息发送给SSLserver。

(2) SSLserver确定本次通信採用的SSL版本号和加密套件,并通过Server Hello消息通知给SSLclient。假设SSLserver同意SSLclient在以后的通信中重用本次会话,则SSLserver会为本次会话分配会话ID。并通过Server Hello消息发送给SSLclient。

(3) SSLserver将携带自己公钥信息的数字证书通过Certificate消息发送给SSLclient。

(4) SSLserver发送Server Hello Done消息。通知SSLclient版本号和加密套件协商结束。開始进行密钥交换。

(5) SSLclient验证SSLserver的证书合法后,利用证书中的公钥加密SSLclient随机生成的premaster secret,并通过Client Key Exchange消息发送给SSLserver。

(6) SSLclient发送Change Cipher Spec消息,通知SSLserver兴许报文将採用协商好的密钥和加密套件进行加密和MAC计算。

(7) SSLclient计算已交互的握手消息(除Change Cipher Spec消息外全部已交互的消息)的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并加入MAC值、加密等),并通过Finished消息发送给SSLserver。SSLserver利用相同的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比較,假设二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。

(8) 相同地。SSLserver发送Change Cipher Spec消息,通知SSLclient兴许报文将採用协商好的密钥和加密套件进行加密和MAC计算。

(9) SSLserver计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并加入MAC值、加密等),并通过Finished消息发送给SSLclient。SSLclient利用相同的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比較,假设二者相同。且MAC值验证成功。则证明密钥和加密套件协商成功。

SSLclient接收到SSLserver发送的Finished消息后。假设解密成功,则能够推断SSLserver是数字证书的拥有者,即SSLserver身份验证成功,由于仅仅有拥有私钥的SSLserver才干从Client Key Exchange消息中解密得到premaster secret,从而间接地实现了SSLclient对SSLserver的身份验证。

二、 SSL预主密钥有什么作用

预主密钥结合前面发的客户端随机数和服务器端随机数衍生出一个主密钥。

然后主密钥会衍生出三个东西:

共享密钥(对称加密的密钥)

完整性的密钥(认证密钥)

初始化向量

三、 SSL VPN主要用于那些场景?

SSL VPN 适用于 client to lan 的场景

四、 SSL VPN的实现方式有哪些?详细说明

1、虚拟网关

SSL VPN每个虚拟网关可以独立管理,可以配置各自的资源,用户、认证方式,访问控制及管理员,并且相互隔离。

2、web代理

实现方式

web-link:使用activeX控件方式,对页面进行请求

web列表:将所请求页面上的链接进行改写,其他内容不变

五、SSL VPN客户端安全要求有哪些?

1、使用SSL 协议进行认证和加密

没有采用SSL 协议的VPN产品自然不能称为SSL VPN,其安全性也需要进一步考证。

2、直接使用浏览器完成操作,无需安装独立的客户端

即使使用了SSL 协议,但仍然需要分发和安装独立的VPN客户端 (如Open VPN)不能称为SSL VPN,否则就失去了SSL VPN易于部署,免维护的优点了。

六、SSL VPN的实现,防火墙需要放行哪些流量?

1、SSL/TLS流量

防火墙需要允许SSL/TLS协议的流量通过,以确保SSL VPN连接能够建立和正常运行。这包括标准的SSL端口(例如443端口)和其他配置的SSL VPN使用的端口。

2、VPN协议流量

根据所选择的SSL VPN解决方案,防火墙需要放行相应的VPN协议流量。常见的SSL VPN协议有OpenVPN、IPsec、L2TP等。

3、认证流量

SSL VPN通常涉及用户身份验证,防火墙需要放行与认证相关的流量。这可能包括基于用户名和密码的身份验证流量或其他类型的身份验证流量(如证书、令牌等)。

4、内部资源访问流量

一旦SSL VPN连接建立成功,防火墙需要允许SSL VPN客户端通过SSL VPN隧道访问内部受限资源的流量。这可能涉及到内部服务器、数据库、文件共享等的流量。

5、DNS流量

防火墙需要允许出站的DNS流量,以确保SSL VPN客户端能够正确解析域名。

相关推荐
长弓三石31 分钟前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
xianwu54335 分钟前
反向代理模块
linux·开发语言·网络·git
follycat38 分钟前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
xiaoxiongip6662 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
JaneJiazhao2 小时前
HTTPSOK:智能SSL证书管理的新选择
网络·网络协议·ssl
CXDNW2 小时前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0
无所谓จุ๊บ2 小时前
树莓派开发相关知识十 -小试服务器
服务器·网络·树莓派
道法自然04022 小时前
Ethernet 系列(8)-- 基础学习::ARP
网络·学习·智能路由器
EasyCVR3 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
明月看潮生4 小时前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学