详述—SSL

SSL协议可用于保护正常运行于TCP之上的任何应用协议,如HTTP、FTP、SMTP或Telnet的通信,最常见的是用SSL来保护HTTP的通信;
SSL协议的优点在于它是与应用层协议无关的。高层的应用协议(如HTTP、FTP、Telnet等)能透明地建立于SSL协议之上;
SSL协议在应用层协议之前就已经完成加密算法、通信密钥的协商以及服务器的认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的安全性。

SSL解决的问题(功能):
客户对服务器的身份认证:
SSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性。
服务器对客户的身份认证:
也可通过公钥技术和证书进行认证,也可通过用户名,password来认证。
建立服务器与客户之间安全的数据通道:
SSL要求客户与服务器之间的所有发送的数据都被发送端加密、接收端解密,同时还检查数据的完整性
SSL在协议栈的位置:
在这里插入图片描述
SSL协议主要通过三个协议实现:
SSL握手协议:SSL握手协议被封装在记录协议中,该协议允许服务器与客户机在应用程序传输和接收数据之前互相认证、协商加密算法和密钥。在初次建立SSL连接时,服务器与客户机交换一系列消息。
SSL修改密文协议:保障SSL传输过程的安全性,客户端和服务器双方应该每隔一段时间改变加密规范。
SSL报警协议:SSL报警协议是用来为对等实体传递SSL的相关警告。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。
在这里插入图片描述
SSL结构协议可分为两层:
SSL记录协议(SSL Record Protocol):建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议实际上是SSL握手协议、SSL修改密文协议、SSL警告协议和SSL记录协议组成的一个协议族。

SSL连接的建议,主要依靠SSL握手协议,简短的一句话就可以概括SSL握手协议的基本设计思路:采用公钥加密算法进行密文传输

(1)服务器将其公钥告诉客户端时,如何保障改公钥不在网络传输中被篡改?
解决办法:引入数字证书。将服务器的公钥放入服务器的证书中,服务器的证书通过CA认证,主要证书可信,那么公钥就可信。

(2)公钥加密算法安全性高,但也由于两端各自使用自己的私钥解密,导致算法复杂、加解密计算量大,如何提升效率?
解决办法:引入一个新的“会话密钥”。客户端与服务器采用公钥加密算法协商出“会话密钥”,而后续的数据报文都使用此“会话密钥”进行加解密(即对称密钥)。对称加密运算速度快,大大提升了加解密的运算效率。
在这里插入图片描述
SSL VPN概述:
SSL VPN是一种远程安全接入技术,因为采用SSL协议而得名。因为Web浏览器都内嵌支持SSL协议,使得SSL VPN可以做到“无客户端”部署,从而使得远程安全接入的使用非常简单,而且整个系统更加易于维护。SSL VPN一般采用插件系统来支持各种TCP和UDP的非Web应用,使得SSL VPN真正称得上是一种VPN,并相对IPSec VPN更符合应用安全的需求,成为远程安全接入主要手段和选择。
在这里插入图片描述
在这里插入图片描述
如图所示:SSL-VPN客户端与SSL-VPN服务器建立了会话链接,总部网络中的SSL-VPN服务器上的页面表单有订单提交和财务报表的链接;首先客户端以自身为源目的为SSL-VPN服务器开启访问,SSL-VPN服务器接收到后发现访问的是某个内部服务器,就会将源改为SSL-VPN服务器目的为内部服务器开启访问,内部服务器再将访问的数据返回给SSL-VPN服务器,SSL-VPN服务器再向客户端返回访问数据,这里SSL-VPN服务器起到了一个代理的作用。
WEB代理的缺点:只能是WEB套WEB。
有点:穿透性强,有浏览器就可以实现,很适合移动端办公。
在这里插入图片描述
在这里插入图片描述
为什么会需要端口映射?
WEB套WEB只能在HTTP服务下完成,如果我们需要访问的是FTP服务器这时候就无法实现,当然我们访问的不可能是一台FTP服务器,于是我们需要新的技术SSL-VPN端口映射技术。
如图所示SSL-VPN的端口映射:首先客户端需要装一个应用程序里面记录了HOST表,该程序能通过访问自己的127.0.0.0网段实际访问到服务器的服务器的端口号;就像FTP1->127.0.0.2->2021,此时服务器也做了端口映射服务,将FTP1的TCP21映射为2021当服务器发现有人访问2021端口时就会去访问FTP1服务器,访问FTP2同理。(颗粒度不高)
在这里插入图片描述
在这里插入图片描述
如图一所示:
首先PC下载一个客户端,客户端会自动创建一个虚拟网卡,该虚拟网卡的地址是由SSL-VPN的服务器通过地址池分配得来的,该虚拟网卡还会自动产生一条默认路由指向虚拟网卡的网关(SSL-VPN服务器),有了这张网卡我们可以理解为和server做了一个隧道,然后想去SSL-VPN的路由可以都指向该虚拟网卡,然后将这些数据封装在SLL的后边,传出去;SSL-VPN将本地的地址池的包头去掉解掉SSL封装漏出内部网头正常路由,最终到达要访问的目的服务器;
抽象的理解为卡车里边运送一辆小汽车,当UDP数据+IP+二层封装来到虚拟网卡时,直接将二层封装解开,把UDP+IP直接封装在SLL-VPN中然后套个分配的IP头部发送出去。
在这里插入图片描述
在这里插入图片描述
简单分析:
首先PC或者PHONE设备下载好了SSL-VPN的客户端,然后进行访问某网站,客户端会同个WEB代理或者端口映射或者IP链接发送出去,这张图应该应用的是WEB代理,由于是SSL-VPN客户端所以会给请求的数据包封装在SSL下,经过防火墙时进行内网到公网的NAT转换,因为SSL-VPN是通过TCP建立的端到端的链接隧道,所以转发的数据来到公网时首先将公网头解开,发现了一串域名,于是通过DNS域名解析到SERVER的IP地址,ISP负责提供各种信号和中转,当然为了安全起见,网站也会向CA机构申请证书给客户提供安全性的保证,当请求的数据来到了SERVER端的边界路由器时正常路由给某个SSL-VPN核心服务器(通过统一资源定位符URL实现),其收到后解开SSL封装发现访问的是自己的内部服务器,便会将数据转发给内部服务器,请求实现。

猜你喜欢

转载自blog.csdn.net/qq_43166593/article/details/85143647
SSL
今日推荐