SSL网关是基于SSL/TLS 协议,在通信网络中构建安全通道的设备。SSL网关国密标准包括:
(1)GMT0024-2014 SSL V*N技术规范(密码产品类)
(2)GMT0025-2014 SSL V*N网关产品规范 (密码产品类)
(3)GM/T0028-2014 密码模块安全技术要求(安全1-4级)(密码产品类标准)
(4)GM/T0039-2015 密码模块安全检测要求(密码检测类)
GMT0024在参照RFC4346 TLS1.1,增加ECC和IBC认证模式和密钥交换模式,取消了DH密钥交换方式,增加了网关-网关协议。
密码算法-非对称密码算法(SM2、SM9和RSA)、分组密码算法(SM1、SM4、CBC工作模式)、密码杂凑算法(SM3、SHA1,用户对称密码生成和完整性校验)。
密钥种类-服务端密钥(非对称密钥对、签名对加密对、用于身份鉴别和预主密钥协商)、客户端密钥(同服务端密钥)、预主密钥(协商所得密钥素材,46字节随机数+2字节版本号)、主密钥(预主密钥、随机数、常量字符串生成的密钥素材-48字节)、工作密钥(加密密钥和校验密钥,加密方使用的工作密钥-写密钥,接收方使用的工作密钥-读密钥)-具体密钥长度有选用的密码算法决定。
SSL协议包括:
握手协议(身份鉴别、安全参数协商),负责协商出一个会话(会话标识、证书、压缩方法、密码规格、主密钥、重用标识)。
Client Hello和Server Hello消息中随机数为28字节,密码套件(密钥交换算法_加密算法_校验算法)定义如下:
当密钥交换协议是ECC/ECDHE/RSA时,服务端发送Certificate消息包含服务端签名证书和加密证书,并在随后的Server Key Exchange消息中使用服务端私钥对双方随机数和本端加密证书签名。(这里实际上就是客户端对服务器端进行身份鉴别)
当需要双向身份鉴别时,服务器端发送Cerfificate request消息给客户端,消息中包含要求客户端提供的证书类型列表。客户端就会发送Certificate消息包括客户端签名和加密密钥对,同时发送Certificate Verify消息,使用客户端的签名密钥签名。(这里实际上就是服务端对客户器端进行身份鉴别)
Finished消息包含的字符串是“client finished”和“server finished”,且被加密和完整性保护。
密码规格变更协议(通知安全参数变更),由一条消息组成,用当前的压缩算法和密码规格加密,如果是首次协商,则消息为明文。对于协商好的密钥,写密钥在次消息发送之后立即启用,读密钥在收到此消息之后立即启用。
报警协议(关闭通知和对错误进行报警),消息长度2个字节,报警级别和报警内容。对于致命级别的报警,通信双方应立即关闭连接,且该连接不能复用。
网关到网关协议(建立网关到网关的传输层隧道)
记录层协议(传输数据分段、压缩解压缩、加密解密、完整性校验等),先MAC再加密(明文消息M,hmac=HMAC(K1,M),密文消息M'=E(K2,M||hamc))。
SSL网关工作模式-客户端-服务端模式(必备)、网关-网关模式(可选)
访问控制功能-细粒度的访问控制功能,对网络访问控制到IP、端口,为web控制到URL,并能根据访问时间进行控制。
密钥更新-必备模式工作密钥不超过8小时,可选模式工作密钥不超过1小时。
安全管理要求-服务端密钥(签名证书、加密证书和加密密钥对的私钥能导入)、工作密钥(临时密钥,更新条件更新、连接断开设备断电销毁)。
配置数据安全-所有的配置数据应保证在设备中的完整性和可靠性。管理员身份鉴别。客户端安全(对客户端软件的签名-完整性)。
管理要求-日志管理(日志记录、查看和导出功能)、管理员管理(口令不小于8字符、错误口令次数不超过8次)。