我们先来介绍一下SSL协议。
SSL(安全套接字层):介于传输层和上层应用层协议之间的协议。为两台机器之间提供安全通道的协议。
1、SSL握手协议
SSL握手协议被封装在SSL记录协议中,该协议允许服务器与客户端在应用程序传输和接收数据之前互相认证、协商加密算法和密钥。在初次建立SSL连接时,服务器与客户机交换一系列消息
2、SSL修改密文协议
保障SSL传输过程中的安全性,客户端和服务器双方应该每隔一段时间改变加密规范
3、SSL警告协议
用来为对等体传递SSL的相关警告。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。
4、SSL记录协议
负责对上层的数据进行分块、压缩、计算并添加MAC(散列算法计算消息认证代码) 、加密,最后把记录块传输给对方。
SSL连接的建立,主要依靠SSL握手协议,采用公钥加密算法(也就是非对称加密算法)进行密文传输。服务器端将其公钥告诉客户端,然后客户端采用服务器的公钥加密信息,服务端收到密文后,用自己的私钥解密。
握手第一阶段
建立起安全能力属性,客户端发送一个clienthello消息,包括支持的版本、随机数(用于计算后面所有消息的摘要或主密钥)、会话ID、客户端支持的密码算法列表和压缩方法列表。
服务器收到以上信息的clienthello消息后,服务器发送serverhello消息,包括服务器选择的版本号、服务器产生的随机数、会话ID;服务器从客户端的密码算法中挑出一套密码算法和一个压缩算法。
握手第二阶段:
服务器向客户端发送消息。Certificate消息(包含证书,证书中有公钥,用来验证签名)、server key exchange(此消息中包含完成密钥交换所需的参数)、certificate request(服务端要求客户端发他自己的证书来过来进行验证)、serverhello done(表示所有信息发送完毕,接下来等待客户端信息)。
握手第三阶段
客户端接收到服务器发送的一系列消息并解析后,将本端相应的消息发送给服务器。Certificate(如果第二阶段服务器要求发送客户端证书,该阶段客户端将自己的证书发送过去)、client key exchange(根据之前收到的随机数,产生pre-master发送给服务器,服务器收到后算出main master,客户端自己通过pre-master算出main master)、certificate verify(只有客户端发送了自己证书到服务端,才需要发送,包含一个签名)
握手第四阶段:
建立一个安全的连接,客户端发送一个Change Cipher Spec消息,并且把协商得到的 CipherSuite拷贝到当前连接的状态之中。然后,客户端用新的算法、密钥参数发送一个 Finished消息,这条消息可以检查密钥交换和认证过程是否已经成功。其中包括一个校验值,对客户端整个握手过程的消息进行校验。服务器同样发送Change Cipher Spec消息和Finished消息。握手过程完成,客户端和服务器可以交换应用层数据进行通信。
会话恢复:客户端和服务器已经通信过一次,可以通过会话恢复来跳过握手阶段直接进行数据传输。
SSL与IPsec 安全协议一样,提供加密和身份验证。SSL协议只对通信双方传输的应用数据进行加密,而不是对从一个主机到另一个主机的所有的数据进行加密。
IPsec Virtual Private Network可安全、稳定地在两个网络间传输数据,并保证数据的完整性,适用于总公司和分公司之间的信息往来及其他site-to-site应用场景。由于IPsec是基于网络层的协议,很难穿越NAT和防火墙,所以IPsec Virtual Private Network并不适合point-to-site场景。
SSL Virtual Private Network一般采用插件系统来支持各种TCP和UDP的非web应用,使得SSL Virtual Private Network真正称得上是一种Virtual Private Network,并相对于IPsec Virtual Private Network 更符合应用安全的需求,成为远程接入的主要手段和选择。SSL Virtual Private Network通信基于标准TCP/UDP,不受NAT限制,能够穿越防火墙。
1、WEB应用
WEB应用通过SSL设备将内网服务转换成HTTPS协议;支持类型:HTTP,HTTPS,MAIL,FileShare。注意:客户端接入SSL Virtual Private Network访问WEB应用,不能打开新窗口输入地址访问,只能点击链接或者利用WEB全网服务的地址栏访问。
案例:
1、客户端和SSL设备建立SSL Virtual Private Network链接,SSL Virtual Private Network中新建OA系统的资源。SSL VIRTUAL PRIVATE NETWORK设备把Server的服务转换为Client浏览器可以打开的链接,如:http://172.172.3.100,转换为:https://202.96.137.88/web/1/http/0/172.172.3.100/
2、客户端登录Virtual Private Network后,点击资源连接列表,访问OA资源。访问的是https://202.96.137.88 /web/1/http/0/172.172.3.100/。走Virtual Private Network流量,把数据包抓取并封装到隧道中。
3、数据发送到SSL Virtual Private Network设备后,SSL Virtual Private Network解封装,原本的HTTPS协议转换成HTTP,将源IP改为Virtual Private Network设备自身IP(默认)或用户的虚拟IP并把原始数据包发送给OA服务器。【修改源IP是为了解决路由回包的问题】
2、TCP应用
问题:web资源无法支持Telnet应用类型,可以使用TCP应用
TCP应用的实现是通过在client安装proxy控件,由控件抓取访问服务器的TCP连接并对数据进行封装,将普通的TCP连接转换成SSL协议数据实现。支持类型:所有基于TCP传输协议的应用。(可以发布成web资源的都可以发布成TCP资源)
案例:出差的用户通过SSL Virtual Private Network安全接入使用内网的OA系统;总部发布的是OA系统的TCP应用资源。
1、客户端和SSL设备建立SSL Virtual Private Network链接,SSL Virtual Private Network中新建OA系统的资源
2、客户端安装ProxyIE控件(必须在资源已经建立的情况下安装该控件,新建资源则要退出重新登录以更新ProxyIE控件)。该控件可以辨别哪些流量走VIRTUAL PRIVATE NETWORK隧道。
3、客户端登录Virtual Private Network后,访问172.172.3.100。
4、ProxyIE识别该数据包是访问TCP应用资源,是VIRTUAL PRIVATE NETWORK流量,把数据包抓取并封装到隧道中。将普通的TCP连接转换成SSL数据,把原来的整个数据包加密封装到新数据包的应用层数据中。
5、数据发送到SSL Virtual Private Network设备后,SSL Virtual Private Network解封装,将源IP改为Virtual Private Network设备自身IP(默认)或用户的虚拟IP并把原始数据包发送给OA服务器。【修改源IP是为了解决路由回包的问题】
3、L3 Virtual Private Network应用
问题:当TCP和web资源无法支持时,使用L3 Virtual Private Network应用。
L3 Virtual Private Network应用的实现是通过在client安装虚拟网卡,虚拟网卡在客户端生成路由表指向虚拟网卡,由虚拟网卡抓取访问服务器的数据,进行封装后通过虚拟网卡和SSL设备建立的隧道将数据传递到server。支持类型:所有基于TCP、UDP、ICMP的应用。建议:基于UDP、ICMP的应用或server需主动访问client端的应用的时候使用L3 Virtual Private Network资源。
案例:
1、客户端和SSL设备建立SSL Virtual Private Network链接,SSL Virtual Private Network中新建OA系统的资源
2、客户端安装虚拟网卡控件(必须在资源已经建立的情况下安装该控件,新建资源则要退出重新登录以更新虚拟网卡控件)。该控件可以把去往L3 Virtual Private Network资源的路由条目下发到客户端的本地路由表中。
3、客户端登录Virtual Private Network后,访问172.172.3.100。通过查询路由表,客户端发现去往172.172.3.100的数据包应该给虚拟网卡进行处理。
4、虚拟网卡对数据包进行封装并送入SSL Virtual Private Network隧道。将普通的TCP连接转换成SSL数据,把原来的整个数据包加密封装到新数据包的应用层数据中,源IP改为虚拟网卡IP。
5、数据发送到SSL Virtual Private Network设备后,SSL Virtual Private Network解封装,将源IP改为Virtual Private Network设备自身IP(默认)或用户的虚拟IP并把原始数据包发送给OA服务器。【修改源IP是为了解决路由回包的问题】
4、远程应用
问题:某些B/S架构的应用需要在客户端浏览器安装插件才能访问,但是该插件对手机或者平板不兼容,可以通过远程应用发布方式来使用
采用基于服务器计算的应用模式,应用程序的安装、配置、管理、维护以及应用的执行均集中在服务器上进行,用户通过远程客户端登录服务器进行操作,输入输出的内容通过网络传输到客户端。
客户端无需安装应用程序,只需要安装Easyconnect客户端,终端服务器需要安装remote server agent组件。减少C/S应用系统使用的局限性,提高易用性。
案例:
1、通过终端服务器登录SSL Virtual Private Network,并通【SSL Virtual Private Network设置】-【终端服务器管理】-下载终端服务器程序,并在服务器上双击运行安装。
2、【SSL Virtual Private Network设置】-【终端服务器管理】-新建-服务器,填写Windows server 的IP地址、用户名和密码,点击“测试链接”测试SSL Virtual Private Network设备与终端服务器的连接情况。正常会提示“连接并认证终端服务器成功”。点击“添加预设”,选择要发布的应用程序
3、完成后保存;点击“立即生效”后;可查看已添加的终端服务器在线状态,
4、配置资源的一些参数
5、配置好后,可在资源组里面查看配置好的远程应用资源。登录后成功后,点击该远程应用资源,即可打开发布的远程引用资源。
6、移动终端通过easyconnect登陆成功,在资源页面,点击远程资源,即可打开发布的远程应用资源