免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6414 | 回复: 1
打印 上一主题 下一主题

F5 BIGIP-LTM SSL应用加速技术白皮书 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-11 13:36 |只看该作者 |倒序浏览

简介:F5 BIGIP-LTM SSL应用加速技术白皮书 1 SSL加速原理 1.1 SSL简要介绍 SSL是被设计用来保证信息安全的一个协议,它依赖于可靠的TCP协议来传输数据。它的特点之一是独立于上层的应用层协议(如:HTTP,FTP,TELNET ...
关键字:
SSL

加速

F5

BIGIP

1 SSL加速原理
1.1 SSL简要介绍
SSL是被设计用来保证信息安全的一个协议,它依赖于可靠的TCP协议来传输数据。它的特点之一是独立于上层的应用层协议(如:HTTP,FTP,TELNET等),这些应用层协议可以透明使地用SSL协议。SSL协议可以协商一个对称加密算法和会话密钥,同时可以在通信之前认证服务器的合法性。
SSL协议提供了一种“管道式安全”,它具有三个特征:
 管道是保密的,保密性是通过使用加密技术来保证的,在通过一个简单的握手过程之后获得一个共同的密钥,作为对称加密算法的密钥。
 管道是认证过的,服务器端总是需要把自己的证书递交给客户端,以便客户端对服务器进行认证。服务器可以选择是否需要客户端递交证书。
 管道是可靠的,消息的传输包含了消息完整性检查。

SSL协议实际上由两个协议构成,位于下面的一层为SSL记录协议(SSL Record Protocol),其上为SSL控制协议(SSL Control Protocols),SSL记录协议用于封装上层发送和接收的所有数据,当然包括 SSL控制协议的数据, SSL控制协议包含:
 SSL握手协议(SSL Handshake Protocol)
 SSL密钥交换协议(SSL Change Ciphers Specification)
 SSL报警协议(SSL Alert Protocol)
SSL的握手过程是建立SSL的主要加密和安全参数的过程,它是SSL的控制协议执行的控制功能。握手过程体现在浏览器使用HTTPS访问WEB服务器时,包括以下步骤:
1浏览器向安全WEB服务器发出一个HTTPS的请求,比如:
https://www.f5.com.cn

2 该WEB服务器将它的证书递交给浏览器的SSL模块。
3 浏览器检查服务器递交的证书的有效性,比如有效日期和证书的签名等。如果该证书不是被一个浏览器已经信任的发证结构(CA)签发的证书,浏览器将弹出一个对话框来提示用户是否信任该WEB站点证书。如果用户选择不信任该证书,浏览器会选择自动中止该连接。
4 浏览器将把从WEB站点证书里取得的站点名称和浏览器的URL 里的域名相对照,如果相符,浏览器将认为站点为真正的站点。
5 浏览器将自己支持的一系列算法发送给服务器。
6 如果服务器需要客户端递交证书,浏览器将把自己的证书发送给服务器,服务器检查递交的证书,并且检查该证书是否为自己已经信任的发证机构(CA)发放的证书。如果不是,服务器将自动中止该次连接。
7 服务器端选择自己和客户端共同支持的加密算法,然后发送给客户端。
8   浏览器产生一个会话密钥,然后把该密钥通过服务器的公钥加密后传给服务器。
9   服务器接收到该加过密的会话密钥后用自己的私钥解密,得到会话密钥的明文。
10 客户端和服务器使用刚才协商的会话密钥对应用层的数据进行加解密,对传输的数据进行安全保护。
典型的SSL应用部署如下:


1.2 BIGIP SSL 加速
在SSL处理过程中,所有的传输内容均采用加密算法处理。其中最重要的两个部分为SSL握手时交换秘钥的非对称加密和数据传输时的对称加密。
在现有的系统中,通常非对成加密采用1024位的密钥进行加解密,因此对服务器的CPU占用率非常高。在一台最新型号的双Xeon服务器上,大约每秒钟400次非对称加解密就能导致CPU占用率100%。同时对称加密通常采用128位,最高256位加密的加解密也会导致服务器CPU占用率居高不下,同样的服务器SSL流量大约能达到150Mbps。因此当我们在部署SSL应用时,必须考虑到以下参数:
 TPS:Transection Per Second,也就是每秒钟完成的非对称加解密次数
 Bulk:SSL对称加解密的吞吐能力,通常以Mbps来进行衡量。
当SSL的客户端压力超过400TPS时,单台服务器就很难处理请求了。因此,必须采用SSL加速设备来进行处理。
BIGIP-LTM/ACC系列可从最低2000TPS到64000TPS实现全硬件处理SSL非对称加密和对称加密流量。其实现的结构如下:

所有的SSL流量均在BIGIP上终结,BIGIP与服务器之间可采用HTTP或者弱加密的SSL进行通讯。这样,就极大的减小了服务器端对HTTPS处理的压力,可将服务器的处理能力释放出来,更加专注的处理业务逻辑。
在BIGIP可处理单向SSL连接,双向SSL连接。并且可同时处理多种类型和多个应用的SSL加解密处理。
采用BIGIP 实现SSL加速的性能如下表:


在BIGIP新的硬件平台BIGIP 8400和8800上,SSL加速的处理能力还会有成倍的提高。由于采用了独立的安全NP硬件加速SSL流量,基本上对于SSL的流量可实现“零”CPU占用率。因此,当采用内置模式时,SSL加解密动作基本不会影响到负载均衡的处理能力。
1.3 BIGIP SSL加速产品系列
产品型号 配置 功能
BIGIP 3400-ACC 8个10/100/1000M电口,2个可选光纤接口 自带5000TPS SSL加速License,带宽控制,500Mbps HTTP压缩,内存Cache
BIGIP 1500-LTM 4个10/100/1000M电口,2个可选光纤接口 自带100TPS SSL加速License,服务器负载均衡,最大支持2000TPS,500Mbps SSL Bulk
BIGIP 3400-LTM 8个10/100/1000M电口,2个可选光纤接口 自带100TPS SSL加速License,服务器负载均衡,最大支持5000TPS,1Gbps SSL Bulk
BIGIP 6400-LTM
16个10/100/1000M电口,4个可选光纤接口 自带100TPS SSL加速License,服务器负载均衡,最大支持15000TPS,2Gbps SSL Bulk
BIGIP 6800-LTM
16个10/100/1000M电口,4个可选光纤接口 自带100TPS SSL加速License,服务器负载均衡,最大支持20100TPS,2Gbps SSL Bulk
BIGIP 8400-LTM
12个10/100/1000M光/电口,2个可选10G光纤接口 自带100TPS SSL加速License,服务器负载均衡,最大支持22000TPS,2.5Gbps SSL Bulk
除BIGIP 3400-ACC之外,其他的产品系列均可根据客户需求增加SSL处理能力和选配其他功能模块,包括HTTP压缩、内存Cache、带宽控制、IP V6等。
2 主要实现功能
2.1 核心功能
 客户机到BIGIP端到端加密通道
BIGIP采用标准的SSL加密通道协议。可以和标准的浏览器配合,支持SSL/TLS各版本的协议标准。在客户端和BIGIP之间建立安全的SSL/TLS加密通道。保证在通道内传输的HTTP请求的安全性,实现对应用安全的完整保护。
 证书认证功能
在BIGIP中可导入X509证书,可实现单向认证、双向认证。BIGIP可以提供给客户端自身的证书以供客户端认证。也可以要求客户端提交证书进行验证。确保SSL交易的完整性和不可抵赖性。
 服务器SSL传输
通常情况下,客户端与BIGIP采用SSL连接,BIGIP与后台服务器采用HTTP连接。在某些安全要求较高的场合下,需要BIGIP与后台服务器也采用HTTPS加密传输,以保证数据传输的全路径安全加密传输。BIGIP可支持与后台服务器多种加密算法的连接方式。
 资源访问控制
在BIGIP中可对客户端可访问资源和不可访问资源进行灵活的定义访问权限控制。可通过客户端是否有证书、Cookie、访问的URL等进行判断,然后确定用户是否有对该资源的访问权限。将不安全和越权访问直接进行控制。
 证书信息透传
由于信息安全的完整性要求,当服务器端在收到用户请求时,需要对客户端进行再次确认。以确认用户是通过安全网关访问。BIGIP可以将客户端证书进行解析,将服务器所需要的所有信息以HTTP URI参数或者HTTP Header等方式传递给后台服务器,以提供服务器二次认证的信息。
 多应用系统支持
在BIGIP可以支持不限数量的应用系统,并且可以同时支持单向、双向认证方式。便于SSL加解密的集中控制。同时,BIGIP还可以同时支持非HTTPS应用如HTTP、SMTP、POP3、DNS等应用的集群方式。提供用户最大的灵活性和安全性。
 完善的日志输出
在BIGIP上可提供多种类型的日志输出:
用户访问日志:可以记录用户的所有访问HTTP请求,并将其存放在BIGIP或者远端Syslog服务器上。
错误信息日志:用户未提交证书、提交证书过期或已吊销等,均将被BIGIP记录在日志中,以提供审计查询。
管理员操作日志:将管理员的所有操作均记录下来,以提供审计查询或系统配置回溯。
系统日志:BIGIP自身的系统运行状态,后端服务器的Down/UP状态等。
 安全加密级别控制
BIGIP可支持以下加密协议:
SSLv2
TLSv1
SGC/设置
RFC 2246中描述的所有标准协议扩展和密码
AES(在RFC 3268中进行了描述)
   从现有的128位加密方式一直到AES 256位的加密算法,BIGIP均可提供全硬件加速支持
 用户自定义功能
BIGIP内置有iRules可编程控制语言,具有50多个事件、200多个函数,允许用户对流量进行任意处理。典型的诸如客户端三次握手完成、SSL握手、客户端证书提交、SSL握手完成等BIGIP均有对应的事件处理。并且丰富的函数和过程也可以对数据进行灵活处理,比如查找、比对、修改等,然后可以根据查找比对的结果作出相应的处理。
2.2 附加功能
 服务器负载均衡和健康检查
考虑到后台服务器所承受的压力和冗余性,BIGIP可以在完成SSL加解密的同时,对后台服务器进行负载均衡,同时检查服务器的真实可用性。以确保交易的不间断性。
 服务器慢启动和停机维护
当后台有多台应用服务器,新节点加入或者恢复时,BIGIP可以通过慢启动方式来保证服务器的压力逐步增加,以避免新服务器压力过载。当服务器需要停机维护时,BIGIP可以允许当前的用户连接不中断,而新的请求分配到其他服务器上。保证当前用户访问的不中断,这样,大大减小了维护的压力。
 应用兼容性
BIGIP可与多种应用系统进行配合,具有极高的兼容性。现有的系统包括IIS、Apache、TomCat、WebLogic、WebSphere等系统BIGIP都可以实现无缝的配合。
 多结构支持
BIGIP可支持负载均衡内置SSL加速方式以实现应用的统一管理,简单维护。也可以支持SSL加速外挂方式以实现系统良好的扩充性和高性能。
 灵活的CRL验证机制
BIGIP可支持3种方式的CRL(用户吊销列表)验证
文件方式:将CRL以文件方式加载到BIGIP内存中。
OCSP:通过OCSP认证网关进行客户端证书认证。
CRLDP:通过CRL Distributing Point去读取LDAP或者HTTP服务器上的CRL列表。
 透明SSL模式支持
在透明SSL加速模式中,客户端通过域名HTTPS直接访问后台的WEB服务器。在流量通过BIGIP时,BIGIP截获HTTPS流量,并对其进行解密,然后将请求发送到后端服务器的HTTP端口。在服务器处理完成后,将页面内容返回给BIGIP,由BIGIP进行加密后返回给Client端。这样对于客户端来说根本感觉不到BIGIP的存在。
 客户端IP透传
BIGIP 可以不改变客户端源地址直接将请求发送到服务器上,以提供服务器日志和审计需要,也可以将客户端源地址插入到HTTP Header中提供给后台的服务器进行处理。
 多CA支持
在BIGIP上的同一个虚拟服务器中,可以支持多个CA所颁发的客户端证书认证、CRL访问控制和客户端证书选择。多CA支持通常用于用户在不改变原有系统的情况下,加入新的CA认证体系,而不让原有的用户感觉到任何改变。实现系统的透明迁移。
 应用优化
在BIGIP中拥有许多专利技术的应用优化功能,包括TCP Express、HTTP压缩、HTTP缓存、访问链接聚合等。一方面提高了用户的响应速度,另一方面减小了服务器端的压力。同时,HTTP压缩等功能还减小了带宽的占用,直接为企业减小了带宽租借费用。
 带宽控制
BIGIP灵活的七层带宽控制模块,可灵活的根据用户的特征、访问的应用等进行应用的优先级处理,保证关键业务的带宽使用。
2.3 产品特性
 专用硬件平台提供高性能SSL加速
BIGIP内置高速安全NP硬件处理芯片,可完全支持SSL握手时的非对称加解密和SSL数据传输时的对称加解密。实现CPU的”零”占用率。
 透明和兼容性
BIGIP默认工作在透明模式,在服务器端接收的HTTP请求看上去全部来源于真实的客户端。BIGIP极高的兼容性,保证了和后台的多种业务系统对接时的易于部署。
 易用性
BIGIP具备iControl二次开发接口,用户可灵活实现BIGIP上数据的采集和设备控制。简洁的配置界面和对象式的Profile定义也使管理变得轻松和简单。
 高安全性
强大的硬件平台和高效的软件设计,保证在BIGIP后台的服务器避免DDOS攻击。ASM模块的加入进一步保证了用户的系统免受各种针对HTTP应用的攻击手段。
 高可扩展性
由于负载均衡和SSL加速功能的合二为一,BIGIP可以进行多种组合方式,确保后台服务的高可扩展性和自身的高可扩展性。
 高可靠性
完善的负载均衡算法、服务器健康检查以及自身的高可用性设计,都充分保证了系统的高可靠性。
3 BIGIP SSL加速典型部署结构
3.1 内置SSL加速的结构:


如图:HTTPS流量到达BIGIP上的VS,由VS处理之后转换成HTTP流量直接发往服务器,服务器处理完成后返回给BIGIP,然后由BIGIP加密后返回给用户。
3.2 外挂SSL加速器的结构:
通常情况下,考虑到系统的可扩展性,可采用独立的设备分别实现服务器的负载均衡和SSL加速,同时负责服务器负载均衡的BIGIP LTM也实现了SSL加速用BIGIP LTM的负载均衡。建议的系统结构图如下:


在外挂方式下,通常加速器直接连接在BIGIP上,这样可以节省核心交换机的端口,减少数据包的往返传输。根据实际情况的不同,也可将加速器直接连接在主干交换机上。但无论如何连接,实际的数据流程如下:

上下的两台BIGIP LTM实际为同一台设备。采用外挂方式下,HTTPS流量首先到达实现负载均衡功能的BIGIP LTM,然后由BIGIP LTM 分配到多台用于SSL加速的ACC3400或BIGIP LTM上,在SSL加速器处理完成后,将HTTP流量返回到负责负载均衡的BIGIP LTM,并由BIGIP LTM发往后端的服务器,再后端服务器处理处理完成后原路返回。
4 SSL的认证模式
4.1 单向认证模式
在采用单向认证时,主要是客户端验证服务器端是否合法。在建立SSL握手的时候,服务器将其证书传送给客户端进行验证。客户端主要验证有三个方面:
1、 服务器证书是否在有效时间内
即服务器证书的有效时间与当前时间相比较,如果过期,则认为该证书已经失效。
2、 服务器证书中的域名是否与用户访问的域名一致
即客户端访问的域名,如在浏览器中填入:https://www.adntech.com,则访问的域名为
www.adntech.com
。服务器的证书中的域名必须与此域名一致。
3、 服务器证书是否由浏览器认可的根证发放
在主流的浏览器软件包括IE和Mozila的版本中,均已经内置了全球主流的CA系统的根证书。用户也可以自行安装可信任的根证书,比如CFCA、信安以及各地CA中心的自建系统的根证书。浏览器将使用内置的根证书对服务器返回的服务器证书进行验证。
如果验证全部通过,则SSL握手成功,浏览器将直接发送HTTP请求到服务器请求内容。如果任何一项没有通过,浏览器则会弹出错误提示,由用户选择是否继续进行。该提示如下:


其中,黄色带惊叹号的标志为验证失败。绿色标志为验证成功。
单向认证的流程如下:

4.2 双向认证模式
   在双向认证模式下,除客户端验证服务器端是否合法外,服务器端也需要验证客户端是否为合法用户。服务器端需要安装颁发客户端证书的CA的根证书和中间证书,要求客户端提交客户端证书,并通过已经安装的根证书和中间证书对客户端证书进行逐级验证。以确定客户端是否为合法用户。
当客户端连接一个双向认证模式的VS时,除了客户端验证服务器端是否安全外,还需要进行以下步骤:
1、 客户端弹出证书选择框,该证书选择框内列出服务器端,也就是BIGIP上所支持的CA所发布的证书。
2、 客户端选择证书然后提交。
3、 BIGIP验证客户端提交的证书是否由所信任的CA所发布。
4、 如果配置了证书吊销列表,BIGIP将根据客户端证书中提供的CRL发布点,验证客户端提交的证书是否已经被作废。如果作废或者证书已经过期,则BIGIP将拒绝该用户登录。
双向认证的流程如下:

现在国内的主流CA系统为CFCA和信安的证书系统。下面就针对这两种证书体系进行分别介绍。
4.2.1 CFCA系统
CFCA为银行业的官方证书机构,在国内有较多的用户。CFCA的证书系统中,分为Entrust CA和新的国产CA两个系统。
其中Entrust CA为3级结构,其结构如下:

国产CA为两级结构,结构如下:

在对CFCA Client证书进行验证的时候,BIGIP需要进行多级认证。BIGIP现支持的最大多级认证深度为9级。以Entrust CA三级证书为例,其验证流程如下:
 验证Client Certificate是否由PCA认可
 验证PCA是否由OCA认可
 验证RCA是否是自签发证书并存放在BIGIP的可信任证书列表(Trusted Authorities)中。
如果三级认证均通过,则验证该客户端为合法客户。
4.2.2 信安系统
信安的系统为单级证书体系,在各大银行通常是自建CA。所以通常情况下根证书均为银行特有,在配置时需要向客户配合提供根证书。在配置信安系统的时候,只需要将提供的根证书配置为Trusted Authorities即可。注意根证书必须为PEM格式,经常可能能拿到手的证书为DER格式。
5 基本功能及配置
5.1 证书的导入
5.1.1 服务器证书的生成和导入
 如果由BIGIP来生成服务器证书
需要通过以下步骤。
选择Local Traffic-〉SSL Certificates-〉Create


注意Common Name一定要设置为准备用来使用的域名。
点击Finish继续:


点击Download Xin_an_server.csr到本地硬盘,然后把csr文件提交给CA,就可以得到相应的证书了。
完成后,在SSL Ceritificates 的页面中能看到一个只有key的条目:


在从CA得到证书后,导入到相应的名字即可。
 如果已经具备服务器证书和私钥
需要通过以下步骤进行导入
选择Local Traffic->SSL Certificates ->Import
选择导入的项目


通常先导入证书:


在导入证书成功后,再点击导入的证书然后导入相应的key文件。
5.1.2 根证及中间证书的导入
对于单级证书模式,将PEM格式的根证直接导入即可:


对于多级证书模式,需要将在整个链上的多个证书进行Boundle。Boundle的方式为将多个证书粘贴拷贝到一起,然后全部导入:
-----BEGIN CERTIFICATE-----
MIICvDCCAiWgAwIBAgIEPPx1qzANBgkqhkiG9w0BAQUFADAgMQswCQYDVQQGEwJD
TjERMA8GA1UEChMIQ0ZDQSBSQ0EwHhcNMDIwNjA0MDczOTIwWhcNMjIwNjA0MDgw
OTIwWjAgMQswCQYDVQQGEwJDTjERMA8GA1UEChMIQ0ZDQSBSQ0EwgZ8wDQYJKoZI
hvcNAQEBBQADgY0AMIGJAoGBALjj9EbWFRz6rj4a42KpSB+jPqoHnkjmr3S69P4A
icz9r6ZfFat1SvjJAG4XjB69ejGczrP2Acp3JVyH3jDMXSa4EfEfw/Erom1ILaWy
jKTl/Cs78oJMjGyiZT5CJ14gH6o9rVYMEr2FjH6a7SJKJ/P/YBiQzNh6h97gynIy
J5ChAgMBAAGjggEBMIH+MBEGCWCGSAGG+EIBAQQEAwIABzBCBgNVHR8EOzA5MDeg
NaAzpDEwLzELMAkGA1UEBhMCQ04xETAPBgNVBAoTCENGQ0EgUkNBMQ0wCwYDVQQD
EwRDUkwxMCsGA1UdEAQkMCKADzIwMDIwNjA0MDczOTIwWoEPMjAyMjA2MDQwODA5
MjBaMAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBQAmjTyUflTFGF0bnKhBt7HgXAb
vDAdBgNVHQ4EFgQUAJo08lH5UxRhdG5yoQbex4FwG7wwDAYDVR0TBAUwAwEB/zAd
BgkqhkiG9n0HQQAEEDAOGwhWNi4wOjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEA
Jv+gsBZv4egVVt7qPYUM8M0rfT2TjUd/vm7l7kmfGHLz2hJR2fMhgMXo8sxPBA6D
L3ZW08X+UA5Gsa34enwtkDEVTe1Nvpz6L+W1C9hWpzyKsK0HQbrC5xTLAcEl7nlt
Zb/JN44RbcevYcdAt3SyOAaoOtGljBQwFI0TFdMwHrg=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICezCCAeSgAwIBAgIEPPyMXjANBgkqhkiG9w0BAQUFADAgMQswCQYDVQQGEwJD
TjERMA8GA1UEChMIQ0ZDQSBSQ0EwHhcNMDQwODEwMDgzNjM3WhcNMTQwNzI1MTYw
MDAwWjAkMQswCQYDVQQGEwJDTjEVMBMGA1UEChMMQ0ZDQSBURVNUIENBMIGfMA0G
CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYrs50M7hq8y0LzFjfN3UPQzGiBg1kLinP
qJcSx7oRXey15WpLLMLthcfp9Gn/7uXmtNL6athr91YXzrB3Rcp53U3zqScGE9h2
ktFQ3SNdZP6c/VSQ+27pAVxWRUC+F6pmUsno+jd1mftYjhKRV8yvCRpSV6HDzhLK
83xbkoCfiQIDAQABo4G9MIG6MEIGA1UdHwQ7MDkwN6A1oDOkMTAvMQswCQYDVQQG
EwJDTjERMA8GA1UEChMIQ0ZDQSBSQ0ExDTALBgNVBAMTBENSTDEwCwYDVR0PBAQD
AgEGMB8GA1UdIwQYMBaAFACaNPJR+VMUYXRucqEG3seBcBu8MB0GA1UdDgQWBBRG
ctwlcp8CTlWDtYD5C9vpk7P0RTAMBgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQM
MAobBFY2LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GBAJ69l0Y1K+ayEvojzBHfzozM
f0a0aQMaEbiil+RJQ8lvwWHZOeaRTcJOxyiPoQ5DZqhEusXavFPX4J/mE3H5PCnV
5tF7tSO7vEguhs8m2IXxrOZCpKmCJVevNdV9x0m9eD629NVJGf683raMx39Ft4HQ
FaLT+EXbnSAWvYemPyOW
-----END CERTIFICATE-----
导入后,BIGIP会自动识别其为一个Boundle Certificate:


同时,自动识别出Boundle中的各级证书。

在处理多级证书和多CA时,通常会用到Boundle证书方式。
5.2 Client SSL Profile的配置
Client SSL Profile的配置,是应用SSL加速功能中最重要的一个环节。
5.2.1 单向认证方式
单向认证模式下,需要配置的内容较少:


 Certificate:服务器证书
 Key:服务器证书对应的Key
 Chain:如果服务器证书为多级证书体系,则将中间证书添加在这里。如果是单级证书体系,则不需要任何配置。
5.2.2 双向认证方式
在双向认证模式下,则需要配置BIGIP验证Client证书的部分:

在双向认证时,需要配置以下内容:
Trusted Certificate Authorities:客户端证书的根证书
Client Certificate:这里有两种模式可以选择
      Require:客户端必须提交证书,通常都采用这种方式
      Request:客户端可提交证书,也可不提交证书
Advertised Certificate Authorities:在客户端连接时,服务器发送到客户端的信息,该信息使在客户端弹出的证书选择列表中只包含选中的根证书所颁发的客户端证书。配置时注意如果有中间证书,则一定要选择根证书和中间证书的Boundle。
5.3 CRLDP配置
在国内现有系统中,多采用CRLDP方式进行客户端吊销证书验证。BIGIP可配置多个CRLDP服务器,并根据客户端提交的证书信息CRLDP说明去查找不同的CRLDP服务器。
CRLDP配置步骤为:
 创建一个CRLDP Server:需要填入CRLDP Server IP地址、端口,CRLDP Server的BaseDN。如果是信安系统,还需要选择ReverseDN为Enable。
 创建一个CRLDP Confiruation:需要填入CRLDP的更新间隔时间,通常为30分钟,即1800秒,并选择一个或多个CRLDP Server。
 创建一个CRLDP Profile:选择一个CRLDP Configuration并配置一个auth rule,通常情况下均采用系统默认值。
 将CRLDP profile与VS关联:在VS配置的authentication profile中选择刚才创建的CRLDP Profile。
在配置CRLDP完成后,BIGIP接收到客户端证书后,将根据证书中的CRLDP信息查找相应的CRLDP服务器,并比较客户的Subject是否存在于吊销列表中。如果在吊销列表中,则直接中断客户端连接。如果有特殊需求,也可以通过配置将未通过验证的客户请求重定向到指定的错误页面上。
5.4 ACL访问控制
在BIGIP中,可通过灵活的Rules来实现用户的访问控制,通常访问控制可分为两种模式:
 允许指定的URI访问允许,关闭其他的所有URI访问
 关闭指定的URI访问允许,开放其他所有的URI访问
典型的Rules如下:
if { $the_uri starts_with "/common" or $the_uri starts_with "/AdditionalCode" } {
   return
}
if { $the_uri starts_with "/xxx.html" or $the_uri starts_with "/eb" } {
   HTTP::redirect "
http://172.30.4.98/err.html
"
}
5.5 证书内容添加到HTTP Header
在实际应用中,通常需要将证书中的一些字段如subject,Expire Date,Issue Date等信息插入到HTTP header中,传递给后台的服务器,以便于服务器对用户进行识别。
在BIGIP中,可以将证书中的任何字段添加到HTTP Header并传递到后台服务器。添加方法需要通过rules进行。
Rules实例如下:
when CLIENTSSL_CLIENTCERT {
session add ssl [SSL::sessionid] [SSL::cert 0]
}
when HTTP_REQUEST {
set id [SSL::sessionid]
set cert [session lookup ssl $id]
HTTP::header insert subject [X509::subject $cert]
HTTP::header insert not_valid_before [X509::not_valid_before $cert]
HTTP::header insert not_valid_after [X509::not_valid_after $cert]
}
该Rule运行后,在服务器端收到的HTTP请求如下:
GET / HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: 192.168.150.17
Connection: Keep-Alive
subject: /CN=04350140n/OU=NET_CONN/O=F5/C=CN
not_valid_before: Feb 23 05:43:47 2005 GMT
not_valid_after: Feb 23 05:43:47 2007 GMT
参考BIGIP reference Guide,我们可以添加更多的内容到HTTP Header中。
5.6 指定出错页面处理
对于出错页面的处理有两种方式
 直接由HTTP::response处理。
Rule如下:
when HTTP_REQUEST {
HTTP::respond 200 content "Apology Page抱歉,您访问的页面未经授权。."
}
 通过HTTP redirect实现:
Rule如下:
when HTTP_REQUEST {
HTTP::redirect
http://172.30.4.98/err.html
}
5.7 同VS多CA支持
在一些系统中,由于历史原因,可能会需求同一个VS支持两套或多套CA系统。
 服务器证书处理
在任何情况下,针对一个VS,服务器证书只能有一个。
 服务器中间证书处理
由于服务器证书只有一个,所以服务器中间证书也只能有一个,将相应的服务器中间证书配置到Chain即可。
 客户端证书根证处理
对客户端证书的根证书,则需要将多个CA的根证书包括中间证书,全部Boundle到一个CA Boundle中。并添加在Trusted Authorities中。
 客户端弹出证书选择框处理
客户端弹出证书选择框是由Advertaise Certificate配置选项所决定,在此应当和Trusted Autorities选择同样的CA Boundle。
 CRLDP的处理
配置多个CRLDP Server,添加到同一个CRLDP Configuration中,BIGIP可以根据客户端证书提供的CRL Distribution Point自动选择相应的CRLDP Server来进行验证。
5.8 透明SSL处理
在透明SSL模式下,需要通配符证书支持,比如*.f5.com.cn,则所有和f5.com.cn后缀的域名,均用此服务器证书可以验证通过。
在透明SSL模式下,BIGIP需进行以下配置:
1、 导入通配符证书
以下是一个标准的通配符证书:


2、 创建一个Client SSL Profile包含通配符证书
3、 创建一个Pool包含所有的服务器
4、 创建一个Network VS,包含有所有的服务器地址,并使用相应的Client SSL Profile。
5、 创建Rules绑定在Network VS上。
Rule如下:
when CLIENT_ACCEPTED {
use node [ IP::local_addr ] 80
}
该Rule的主要作用为将用户的请求转发到相应节点的80端口上。
其他的处理与普通的单向或双向处理相同。
6 问与答
 问:能不能在HTTPS VS上实现诸如Virtual Host功能?比如根据不同的域名,提供不同的Server端证书和不同的采用客户端证书验证系统。
答:不能。我们可以在HTTP VS上,通过对用户提交请求中的HTTP header中的HOST来判断用户请求的域名。然后定义到不同的Pool中,实现Virtual Host功能。但对于HTTPS连接,SSL是在HTTP请求之前进行的。也就是说在双方进行握手连接时,服务器端,也就是BIGIP根本不可能知道用户要访问的域名,因为此时完全没有HTTP请求发送。所以对于一个VS,BIGIP只能返回一个服务器证书供客户端验证。从另外一个角度讲,每张证书都和每个域名所对应,所以不可能用一张证书去对应多个域名。
 问:客户端证书体系和服务器证书必须是由一个CA发布吗?
答:客户端证书和服务器证书完全没有关系。不必是一个CA发布的。
 问:我已经向我的CA申请了新的服务器证书,该证书也在有效期内,并且正确的配置了BIGIP,但我在浏览的时候始终提示“该证书由您没有选定的信任公司颁发”。
答:这是由于您的CA的根证书不在浏览器中的“受信任的证书颁发机构”列表中。用户需要安装根证才能不提示该对话框。
 问:我拿到的证书无法用文本编辑器打开,里面全部都是乱码,看不到—BEGIN—等。
答:这种情况下,多半拿到的是DER格式的证书。需要上传到BIGIP上,用OpenSSL的命令进行以下转换。命令如下:
openssl crl -inform DER -in temp.crl -outform PEM -out pem.crl
其中,temp.crl为输入文件,pem.crl为输出文件。
 问:为什么我在浏览器里查看我的证书,得到证书无效的信息,如下图:



答:该问题是因为在安装证书的时候,没有把证书颁发机构的根证书装入的原因。在安装根证书后,就可以显示出证书的正确信息了。通常情况下,在安装证书“.pfx”文件时,都会将证书颁发机构的根证书装入。
7 附录:
7.1 典型应用案例
 客户需求:
某大型金融机构原采用BIGIP 5100实现SSL加速。从业务的发展速度规划,该机构需要在新的系统下能达到原系统性能的10倍以上,并且系统需要考虑到冗余和管理性的综合要求,在系统中的设备数量尽量减少。
 解决方案简介及示意拓扑
   
在该机构的新一代业务系统建设中,共采用了4台BIGIP 6400。其中两台BIGIP采用高可用性结构负责服务器负载均衡,另外外挂的两台BIGIP 6400负责SSL加速,两台BIGIP 6400 同时工作。
 客户得到的益处和典范效应
该系统为国内第一个采用F5 BIGIP V9系列的SSL加速系统。BIGIP 6400具有强大的SSL处理能力,最大可处理15,000 TPS,2Gbps的流量。可以在2-3年内满足该金融机构的扩展需求。为其飞速发展的网上交易业务提供有效的支撑平台。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/36243/showart_398587.html

论坛徽章:
0
2 [报告]
发表于 2008-07-31 20:39 |只看该作者
把俺写的文章贴到这里来,还冒名出处,无耻!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP