SSL ***背景
? 企业出差员工,需要在外地远程办公,并期望能够通过Internet随时随地的远程访问企业内部资源。同时,企业为了保证内网资源的安全性,希望能对移动办公用户进行多种形式的身份认证,并对移动办公用户可访问内网资源的权限做精细化控制
? IPSec、L2TP等先期出现的***技术虽然可以支持远程接入这个应用场景,但这些***技术的组网不灵活;移动办公用户需要安装指定的客户端软件(SecoClient),导致网络部署和维护都比较麻烦;无法对移动办公用户的访问权限做精细化控制
? SSL ***作为新型的轻量级远程接入方案,可以有效地解决上述问题,保证移动办公用户能够在企业外部安全、高效的访问企业内部的网络资源
? FW作为企业出口网关连接至Internet,并向移动办公用户(即出差员工)提供SSL ***接入服务。移动办公用户使用终端(如便携机、PAD或智能手机)与FW建立SSL ***隧道以后,就能通过SSL ***隧道远程访问企业内网的Web服务器、文件服务器、邮件服务器等资源
传统***存在的问题
? IPSec ***可安全、稳定地在两个网络间传输数据,并保证数据的完整无缺,适用于处理总公司与分公司之间的信息往来及其他Site-to-Site应用场景由于IPSec是基于网络层的协议,很难穿越NAT和防火墙,特别是在接入一些防护措施较为严格的个人网络和公共计算机时,往往会导致访问受阻。移动用户使用IPSec ***需要安装专用的客户端软件,为日益增长的用户群发放、安装、配置、维护客户端软件已经使管理员不堪重负。因此,IPSec ***在Point-to-Site远程移动通信方面并不适用
? SSL ***是面向应用的***,具有更好的底层无关性。它的易用性、无客户端应用很好满足了远程访问的需要,保证移动用户随时随地建立安全可控的通信连接
SSL概述
? SSL(secure sockets layer)是一个安全协议,为基于TCP的应用层协议提供安全连接,SSL介于TCP/IP协议栈第四层和第七层之间。SSL可以为HTTP(Hypertext Transfer Protocol)协议提供安全连接。SSL协议广泛应用于电子商务、网上银行等领域,为网络上数据的传输提供安全性保证
? 到目前为止,SSL协议有三个版本,其中SSL2.0和SSL3.0得到广泛的应用,IETF基于SSL3.0推出了TLS1.0协议(也被成为SSL3.1)。随着SSL协议的不断完善,包括微软IE在内的愈来愈多的浏览器支持SSL,SSL协议成为应用最广泛的安全协议之一
? SSL ***是以SSL/TLS协议为基础,利用标准浏览器都内置支持SSL/TLS的现实优势,对其应用功能进行扩展的新型***。除了Web访问、TCP/UDP应用之外,SSL ***还能够对IP通信进行保护。SSL ***通信基于标准TCP/UDP,不受NAT限制,能够穿越防火墙,使用户在任何地方都能够通过SSL ***虚拟网关访问内网资源,使远程安全接入更加灵活简单,大大降低了企业部署维护***的费用
? SSL与IPSec安全协议一样,提供加密和身份验证。但是,SSL协议只对通信双方传输的应用数据进行加密,而不是对从一个主机到另一主机的所有数据进行加密。
SSL ***优势
? 无客户端的便捷部署
- 无需改变内网网络结构即可实现快速部署
- 节省投资,技术支持和管理成本
- 不存在网络地址转换(NAT)穿越问题
? 应用层接入的安全保护 - 用户只能通过SSL ***接入企业应用资源,一定程度遏制了网络病毒的传播
- 针对具体的应用资源的细粒度访问控制
? 企业延展的效率提升 - 任何时间,任何地点,任何设备的灵活安全接入
- 企业移动/远程员工可以随时随地安全接入企业内网
- 分支机构安全连接,合作伙伴业务流整合,用户服务远程支持
SSL协议提供的安全技术
? 身份认证
在建立SSL连接之前,客户端和服务器之间需要进行身份认证,认证采用数字证书,可以是客户端对服务器的认证,也可以是双方进行双向认证
? 机密性
采用加密算法对需要传输的数据进行加密
? 完整性
采用数据鉴别算法,验证所接收的数据在传输过程中是否被修改SSL ***原理
SSL协议结构可以分为两层
? 底层为SSL记录协议(SSL record protocol)
a) 主要负责对上层的数据进行分块、压缩、计算并添加MAC、加密,最后把记录块传输给对方
? 上层为SSL握手协议(SSL handshake protocol)、SSL密码变化协议(SSL change cipher spec protocol)和SSL警告协议(SSL alert protocol)
a) SSL握手协议:客户端和服务器通过握手协议建立一个会话。会话包含一组参数,主要有会话ID、对方的证书、加密算法列表(包括密钥交换算法、数据加密算法和MAC算法)、压缩算法以及主密钥。SSL会话可以被多个连接共享,以减少会话协商开销
b) SSL密码变化协议:客户端和服务器端通过密码变化协议通知接收方,随后的报文都将使用新协商的加密算法列表和密钥进行保护和传输
c) SSL警告协议:用来允许一方向另一方报告告警信息。消息中包含告警的严重级别和描述握手协议
? 在用SSL进行通信之前,首先要使用SSL的HandShake协议在通信两端握手,协商数据传输中要用到的相关安全参数(如加密算法、共享密钥、产生密钥所要的材料等),并对对端的身份进行验证
SSL 握手协议第一阶段
? 客户端首先发Client Hello消息到服务器端,服务器端收到hello消息后再发Server hello消息回应客户端
? 建立起安全能力属性,客户端发送一个client_hello消息,包括以下参数
a) 版本:消息中协议版本是两个byte长度分别表示主次版本。目前SSL拥有的版本有SSLv1 SSLv2以及TSLv1(既SSLv3)
b) 随机数: 32位时间戳+28字节随机序列,用于在后面计算所有消息的摘要或计算主密钥
c) 会话ID:SSL会话ID标识一次会话用,可以重用
d) 客户支持的密码算法列表(CipherSuite):密钥套件列表,列表中包含了Client端支持的所有密钥套件
e) 客户支持的压缩方法列表:客户端支持的压缩算法列表,填0表示空
? 当服务器收到client hello数据包后,服务器发送server_hello 并包括以下参数
a) 版本:服务器拿出client hello消息中的版本号,再看看自己支持的版本列表,选个两者都支持的最高版本号定为这次协商出来的SSL协议使用的版本
b) 服务器产生的随机数:此处产生的随机数与client hello消息中的类似
c) 会话ID:服务端检测到传过来的session ID是空或者检索session列表没有发现传过来的session id就会新建一个
d) 服务器从客户建议的密码算法中挑出一套(Ciphersuit )密码算法
e) 服务器从客户建议的压缩方法中挑出一个压缩算法SSL 握手协议第二阶段
服务器向客户端发送消息
Server certificate消息(可选)
? 一般情况下,除了会话恢复时不需要发送该消息,在SSL 握手的全流程中,都需要包含该消息。消息包含一个X.509证书,证书中包含公钥,发给客户端用来验证签名或在密钥交换时候给消息加密
注意: 华为产品做单向,只需要服务器向客户端提供认证
Server Key Exchange(可选)
? 根据之前在hello信息中包含的ciphersuit信息,决定了密钥交换方式(例如RSA或者DH),因此在server key exchange消息中便会包含完成密钥交换所需的一系列参数
Certificate Request(可选)
? 服务器端发出client cert request 消息,要求客户端发他自己的证书过来进行验证。该消息中包含server端支持的证书类型(RSA, DSA, ECDSA等。。。)和server端所信任的所有证书发行机构的DN(Distinguished Name)列表,客户端会用这些信息来筛选证书
Server Hello Done
? 该消息表示server已经将所有信息发送完毕,接下来等待client端的消息SSL 握手协议第三阶段
客户端收到服务器发送的一系列消息并消化后,发送客户端相应的消息给服务器
? Client certificate(可选)
? 如果在第二阶段server端要求发送客户端证书,客户端便会在该阶段将自己的证书发送过去。Server端在之前发送的certificate request消息中包含了server端所支持的证书类型和CA列表,因此客户端会在自己的证书中选择满足这两个条件的第一个证书发送过去。若客户没有证书,则发送一个no_certificate警告
? Client Key exchange
? 根据之前从server端收到的随机数,按照不同的密钥交换算法,算出一个pre-master,发送给server端,server端收到pre-master算出main master.而客户端当然也能自己通过pre-master算出main master.如此以来双方就算出了对称密钥
? Certificate verify(可选)
? 只有在客户端发送了自己证书到服务器端,这个消息才需要发送。其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名SSL 握手协议第四阶段
? 完成握手协议,建立SSL 连接
? 建立起一个安全的连接,客户发送一个change_cipher_spec消息,并且把协商得到的CipherSuite拷贝到当前连接的状态之中。然后,客户用新的算法、密钥参数发送一个finished消息,这条消息可以检查密钥交换和认证过程是否已经成功。其中包括一个校验值,对所有以来的消息进行校验。服务器同样发送change_cipher_spec消息和finished消息。握手过程完成,客户和服务器可以交换应用层数据SSL会话恢复
? 会话恢复是指只要客户端和服务器已经通信过一次,它们就可以通过会话恢复的方式来跳过整个握手阶段而直接进行数据传输
? SSL采用会话恢复的方式来减少SSL握手过程中造成的巨大开销
? 此功能从原来正常协调的13步,减少到只需要6步,大大减少了SSL ***隧道建立所需要的开销SSL记录协议
? SSL记录协议主要用来实现对数据块的分块、加密解密、压缩与解压缩、完整性检查及封装各种高层协议。在SSL协议中,所有的传输数据都被封装在记录中,SSL记录协议规定了记录头和记录数据的格式
? 每个SSL记录包含以下信息:内容类型;协议版本号,目前已有2.0和3.0版本;记录数据的长度;数据有效载荷:散列算法计算消息认证代码(Message Authenticate Code,简称MAC),用于进行数据完整性检查和解密
详细步骤描述如下:
(l)将上层分下来的数据包分成合适的数据块。但是每个数据块不得超过214字节。
(2)对每个数据块进行压缩,但是不能丢失数据信息
(3)计算压缩后的数据消息认证码MAC。并添加在压缩包后。添加后总长度不得
超过2262字节
(4)对于流加密,压缩保额和MAC以前被加密。对于分组加密,在MAC之后,加
密之前可以增加填充。填充由表示填充长度的字节跟着移动数目的填充字节组成
填充字节的数目视使得要加密的数据的总长度成为加密分组长度整数倍的最小数目
(5)给SSL添加一个首部。其中包括:内容类型、主要版本、次要版本、压缩长度
等信息
通过以上过程把原始的数据加密为SSL协议的记录集SSL ***功能介绍
a) 领先的虚拟网关
b) Web代理
c) 文件共享
d) 端口代理
e) 网络扩展
f) 用户安全控制
g) 完善的日志功能虚拟网关
? 每个虚拟网关都是独立可管理的,可以配置各自的资源、用户、认证方式、访问控制规则以及管理员等
? 当企业有多个部门时,可以为每个部门或者用户群体分配不同的虚拟网关,从而形成完全隔离的访问体系WEB代理
? 它将远端浏览器的页面请求(采用https协议)转发给web服务器,然后将服务器的响应回传给终端用户,提供细致到URL的权限控制,即可控制到用户对某一张具体页面的访问
Web代理有两种实现方式: Web-link和Web改写
? Web-link采用ActiveX控件方式,对页面进行转发
? Web改写方式采用脚本改写方式,将请求所得页面上的链接进行改写,其他网页内容不作修改
使用Web-link方式的优势
? 无需安装客户端,只需要标准的浏览器便可远程访问内网web资源 针对每个URL,为不同的用户分配不同的访问权限
实现过程:
a) 远程接入用户通过SVN网关对企业内网某一web页面发起访问请求
b) 内网服务器将请求结果返回给SVN,由SVN将获取的页面返回给用户
c) 对用户来说,SVN相当于web服务器,而对内部服务器来说,SVN又充当了客户端的角色文件共享
? 文件共享的主要功能是将不同的系统服务器(如支持SMB协议的Windows系统,支持NFS协议的Linux系统)的共享资源以网页的形式提供给用户访问 提供对内网文件系统的安全访问
? 采用协议转换技术,无需安装专用客户端,直接通过通用浏览器安全接入内部文件系统 将客户发起的文件共享请求转换成相应的协议格式,与服务器进行交互
文件共享实现过程
? 以访问内网Windows文件服务器为例
a) 客户端向内网文件服务器发起HTTPS格式的请求,发送到USG防火墙
b) USG防火墙将HTTPS格式的请求报文转换为SMB格式的报文
c) USG防火墙发送SMB格式的请求报文给文件服务器
d) 文件服务器接受请求报文,将请求结果发送给USG防火墙,用的是SMB报文
e) USG防火墙将SMB应答报文转换为HTTPS格式
f) 将请求结果(HTTPS格式)发送到客户端
文件共享应用特点
? 文件共享作为文件服务器的代理,使客户可以安全的访问内网文件服务器
? 当然,Ctrl+C等组合键无法使用端口转发
端口转发功能主要用于C/S等不能使用web技术访问的应用
? 支持静态端口的TCP应用
? 单端口单服务:一个服务对应一个端口
例如:Windows远程桌面、Telnet、SSH(Secure Shell)、VNC、ERP(Enterprise Resource Planning)、SQL(Structured Query Language) Server、iNotes、OWA(Outlook Web Access)、BOSS(Business and Operation Support System)
? 单端口多服务:多个服务对应一个端口
例如:Notes(多个数据库服务器对应一个端口)
? 多端口单服务:一个服务对应多个端口
例如:POP3(Post Office Protocol 3) Email(SMTP(Simple Message Transfer Protocol):25、POP3:110等)
? 支持动态端口的TCP应用
? 动态端口服务:一个服务对应多个动态变化的端口
例如:FTP被动模式、Oracle Manager
端口转发实现原理
a) 用户点击客户端页面“启动端口转发功能”按钮,自动安装运行一个Windows ActiveX控件,获取到管理端配置的端口转发资源列表(目的服务器IP、端口)。控件将客户端发起的TCP报文与资源列表进行比对,当发现报文的目的IP/Port与资源列表中的表项匹配,则截获报文,开启侦听端口(目的端口经过特定算法得出),并将目的地址改写为回环地址,转发到侦听端口
b) 对该报文加密封装,添加私有报文头,将目的地址设为SVN的IP地址,经由侦听端口发往SVN
c) SVN收到报文进行解密,发往真实的目的服务器端口
d) SVN收到服务器的响应后,再加密封装回传给用户终端的侦听端口
端口转发应用特点网络扩展
使用网络扩展功能后,远程客户端将获得内网IP地址,就像处于内网一样,可以随意访问任意内网资源。同时对其他正常操作不作影响,可以访问Internet和本地子网
管理员可以根据不同的应用场景配置相应的访问方式
? 分离模式:(Split Tunnel)用户可以访问远端企业内网(通过虚拟网卡)和本地局域网(通过实际网卡),不能访问Internet
? 全路由模式:(Full Tunnel)用户只允许访问远端企业内网(通过虚拟网卡),不能访问Internet和本地局域网
? 手动模式:(Manual Tunnel)用户可以访问远端企业内网特定网段的资源(通过虚拟网卡),对其它Internet和本地局域网的访问不受影响(通过实际网卡)。网段冲突时优先访问远端企业内网
网络扩展实现过程
a) 在客户端下载控件,安装虚拟网卡,虚拟网卡获得一个可被内网识别的IP地址
b) 客户端发起基于IP的内网应用,虚拟网关截获报文进行封装加密,发往USG防火墙
c) USG防火墙对报文解密后发往内网服务器
d) 内网服务器的响应报文发到USG防火墙,由USG防火墙进行封装加密,发往客户
? 用户使用SSL网络扩展功能前,首先需要在用户本地终端上安装虚拟网卡。虚拟网卡可以通过以下方式安装 登录虚拟网关的Web客户端页面,启动网络扩展功能 启动网络扩展服务后,虚拟网卡会自动向SVN申请一个虚拟IP地址。SVN支持通过以下方式给虚拟网卡分配IP地址
? DHCP
在SVN上配置企业内网的DHCP服务器IP地址。当SVN接收到申请IP地址的请求时,向内网的DHCP服务器请求IP地址,然后分配给客户端
? 地址池
企业划出一段连续、未使用的IP地址,用作分配给SVN用户的虚拟地址,在SVN上进行配置。IP地址可以随机分配,也可以将用户账号与某一IP地址绑定,则每次该用户启用网络扩展功能时,对用的都是同一内网IP地址。如果绑定的地址包含在地址池内,则该地址就被锁定了,不会分配给另一个用户
? 外部认证授权服务器
与外部认证授权服务器配合使用,当遇到申请IP地址的请求时,SVN向外部认证授权服务器请求IP地址,然后分配给客户端
全路由模式
? 完全屏蔽客户端原先可以访问的网络资源。除了访问远程企业内网资源外,其余网络资源均不可访问
分离模式
? 除了客户端原先可以访问的同一网段的资源,公网等其他资源均被屏蔽。这是因为公网等不同网段资源通过虚拟网卡转发时,由于源IP地址被赋值为虚拟IP地址,所以回复数据往往找不到正确的路由而不能通信成功
手动模式
? 除了增加对远程企业内网的访问权限外,不影响客户端原先可访问的网络资源,除非网络资源与远程企业内网冲突终端安全
? 终端安全是在请求接入内网的主机上部署一个软件,通过该软件检查终端主机的安全状况
? 终端安全包括:主机检查用户用来访问内网资源的主机是否符合安全要求
a) 检查用户用来访问内网资源的终端是否符合安全要求。主机检查功能基于角色进行访问控制
b) SVN可以针对杀毒软件、防火墙软件、操作系统、监听端口、进程、文件、注册表制定检查规则,在规则中要求接入终端安装指定的软件、操作系统、具有指定的进程、文件等特征,或者在规则中要求接入终端不能安装指定的软件、操作系统,不能具有指定的进程、文件等特征
c) SVN在检查规则基础上构建终端安全检查策略,每个检查策略可以包含一个或者多个检查规则,并通过对检查规则的组合可以制定出灵活的检查策略,以应对接入终端的各种情况
d) 启用主机检查情况下,用户经过SVN认证后,如果该接入终端首次登录则登录程序自动从SVN上下载终端安全检查程序。终端安全检查程序自动从SVN侧获得该用户的终端安全检查策略,并根据检查策略依次进行检查,并将各项规则的检查结果返回给SVN。SVN对检查结果进行分析,根据配置的终端安全策略决定是否允许用户接入
? 缓存清理清除接入虚拟网关的主机的访问痕迹
a) SVN可以在用户访问虚拟网关结束时,采用必要的手段清除终端上的访问痕迹(例如生成的临时文件、Cookie等),以防止泄密,杜绝安全隐患
b) SVN管理员可以根据需要选择是否启用终端缓存清理功能。SVN提供多种清除访问痕迹的选项,管理员可以根据所需要的安全等级灵活地选择需要清理的选项。此外,SVN还提供管理员自定义的选项,清除用户退出访问后终端中特定的文件
? 终端标识码是SVN从登录虚拟网关的客户端上收集的硬件信息。通过管理员的配置,控制用户只能在特定的终端上登录虚拟网关
? 通过配置,确保接入虚拟网关的主机符合安全要求
a) SVN提供用户账号与指定终端绑定功能。用户登录时,SVN的客户端软件将提取终端标识码,并发给SVN进行匹配,只有在匹配通过后才允许用户访问内网资源
b) 终端标识码的验证过程如下:管理员启用终端标识码验证
c) 用户登录时,客户端软件收集客户端的硬件信息,并将硬件信息转换成一个MD5值
d) 客户端与虚拟网关建立SSL连接,用户提交终端标识码,即将MD5值发送给虚拟网关
e) SVN收到MD5值进行解密
f) 管理员对用户提交的终端标识码进行审批,如果审批通过,允许用户登录虚拟网关认证授权
SVN支持通过LDAP(Lightweight Directory Access Protocol)协议进行远端认证
? ***DB 认证授权
? 第三方服务器认证授权(Radius、LDAP、AD、SecurID)
? 数字证书认证(X.509 / USB Key + X.509)
? 短信辅助认证
***DB 用于本地*** 数据库认证与授权,虚拟网关管理员通过用户和组管理来维护***DB。本地用户和组管理用于维护***DB。分组易于对用户进行管理,可以按组对用户集体授权。
SVN支持通过RADIUS(Remote Authentication Dial In User Service)协议进行远端认证,由网络接入服务器NAS(Network Access Server)作Client 端,与RADIUS 服务器通信。对于RADIUS 协议,可以采用标准RADIUS 协议,与iTELLIN/CAMS 等设备配合完成认证完善的日志功能
? 系统日志
系统重启记录,网口状态记录,温度告警记录,导入导出记录,系统管理员管理,虚拟网关管理等
? 用户日志
用户登录成功、失败记录,登陆后下线记录,用户修改密码,业务日志
? 虚拟网关管理员日志
管理员上线、下线记录,管理员登录失败记录,虚拟网关配置保存,用户管理,安全管理等
? 日志导出
日志的实时导出,文本格式的日志导出,命令行日志文件导出等
? 日志查询
Web页面日志分级查询,命令行日志查询SSL ***功能总结
SSL ***应用场景
典型网络位置
? SSL ***网关多部署于企业的网络出入口,应用服务器之前,介于远程用户和服务器之间,控制两者的通信
单臂组网模式
? 单臂和双臂组网的方式,多用于SVN设备,SVN单臂挂接在防火墙、路由器或交换机上,内网和Internet 都通过这个网口与SVN进行通信,这种模式称为单臂模式
? 在网络规划时,SVN的接口IP为内网IP地址,此地址需要能与所有被访问需求的服务器路由可达。防火墙上需配置nat server,将SVN的地址映射到防火墙的某一公网IP上。也可以只映射部分端口,如443。如果外网用户有管理SVN的需求,还需要映射SSH、Telnet等端口双臂组网模式
? SVN 双臂挂接在防火墙、路由器或交换机上。内网和Internet 都通过不同的网口与SVN进行通信,这种模式称为双臂模式
? 路由器和交换机之间处于连接状态。这是因为客户网络中可能有部分应用不需要经过SSL加密,而是直接通过防火墙访问外网。这时就需要在交换机和路由器上配置策略路由,需要建立SSL ***的流量就转发到SVN上,而普通的应用就直接通过防火墙访问外网运营商IDC应用
? 以上应用为SSL ***的运营模式。通过把SSL ***设备划分为数个虚拟设备,每个虚拟设备有自己的管理员及访问策略,依次来降低运营商的资金投入,做到设备使用率最大化
原文地址:https://blog.51cto.com/13817711/2475216