GB/T36968-2018

信息安全技术IPSecVPN技术规范

Informationsecuritytechnology—TechnicalspecificationforIPSecVPN

本文分享国家标准信息安全技术IPSecVPN技术规范的全文阅读和高清PDF的下载,信息安全技术IPSecVPN技术规范的编号:GB/T36968-2018。信息安全技术IPSecVPN技术规范共有52页,发布于2019-07-01
  • 中国标准分类号(CCS)L80
  • 国际标准分类号(ICS)35.040
  • 实施日期2019-07-01
  • 文件格式PDF
  • 文本页数52页
  • 文件大小3.99M

以图片形式预览信息安全技术IPSecVPN技术规范

信息安全技术IPSecVPN技术规范


国家标准 GB/T36968一2018 信息安全技术IPSecVPN技术规范 nformationseeurityteehnology一IechniealspeeifieationforIPSeeVPN 2018-12-28发布 2019-07-01实施 国家市场监督管理总局 发布 币国国家标准化管理委员会国家标准
GB/36968一2018 目 次 前言 范围 2 规范性引用文件 术语和定义 缩略语 密码算法和密钥种类 5.1密码算法 5.2密钥种类 协议 密钥交换协议 6l 6.2安全报文协议 30 IPSecVPN产品要求 39 39 7.1产品功能要求 .2产品性能参数 40 7.3安全管理要求 40 PSecVPN产品检测 42 8.1产品功能检测 42 8.2产品性能检测 43 8.3安全管理检测 44 附录A(资料性附录) PSecVPN概述 45 参考文献 9
GB/36968一2018 前 言 本标准按照GB/T1.1一2009给出的规则起草 请注意本文件的某些内容可能涉及专利 本文件的发布机构不承担识别这些专利的责任 本标准由全国信息安全标准化技术委员会(SAC/TC260)提出并归口 本标准起草单位:无锡江南信息安全工程技术中心、国家密码管理局商用密码检测中心、上海格尔 软件股份有限公司、北京数字认证股份有限公司山东得安信息技术有限公司、北京天融信网络安全技 术有限公司、华为技术有限公司、深信服科技股份有限公司、深圳奥联信息安全技术有限公司、成都卫士 通信息产业股份有限公司、北京三未信安科技发展有限公司 本标准主要起草人:刘平、徐文耀、周国良,郑强、李述胜、马洪富,罗鹏、李金国、王雨晨、林国强、 但波、罗俊、许永欣
GB/36968一2018 信息安全技术IPSecVPN技术规范 范围 本标准规定了IPSeeVPN的技术协议、产品要求和检测方法 本标准适用于IPSecVPN产品的研制、检测,使用和管理 规范性引用文件 下列文件对于本文件的应用是必不可少的 凡是注日期的引用文件,仅注日期的版本适用于本文 件 凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件 GB/T20518信息安全技术公钥基础设施数字证书格式 GB/T25056信息安全技术证书认证系统密码及其相关安全技术规范 GB/T32905信息安全技术SM3密码杂凑算法 GB/T32907信息安全技术SM4分组密码算法 GB/T32915信息安全技术二元序列随机性检测方法 GB/T32918(所有部分信息安全技术sM2椭圆曲线公钥密码算法 GB/T35276信息安全技术SM2密码算法使用规范 RFC2408互联网安全联盟和密钥管理协议(InternetSeeurityAssociationandKeyManagement Protocol RFC3947密钥交换过程中NAT穿越协商(NegotiationofNAT-TraversalintheIKE) RFC3948IPSecESP包的UDP封装(UDPEncapsulationofIPsecESPPackets) 术语和定义 下列术语和定义适用于本文件 3.1 安全联盟 securityass0ciation 两个通信实体经协商建立起来的一种协定,它描述了实体如何利用安全服务来进行安全的通信 注安全联盟包括了执行各种网络安全服务所需要的所有信息,例如P层服务(如头鉴别和载荷封装传输层和 应用层服务或者协商通信的自我保护 3.2 互联网安全联盟和密钥管理协议intemetsuwrityastihatamdkey managementprotol 个在互联网环境中建立安全联盟和进行密钥管理的协议 它定义了建立,协商、修改和删除安全 联盟的过程和报文格式,以及交换密钥产生和鉴别数据的载荷格式 这些格式为传输密钥和鉴别信息 提供了一致的框架 3.3 载荷payload ISAKMP通信双方交换消息的数据格式,是构造ISAKMP消息的基本单位
GB/T36968一2018 3.4 PSec协议 nternetPotoeoSeeurity -种开放标准的框架结构,通过使用加密的安全服务以确保在公开网络上进行保密而安全的通信 可以端至端的层面上提供数据完整性保护,数据源鉴别、载荷机密性和抗重放攻击等安全服务 3.5 鉴别头 authenticationheader -种协议,用于提供P数据包的数据完整性、数据源鉴别以及抗重放攻击的功能,但不提 IPSec的 供数据机密性的功能 3.6 封装安全载荷 encapsulatingsecuritypayload PSec的一种协议,用于提供IP数据包的机密性、数据完整性以及对数据源鉴别以及抗重放攻击 的功能 3.7 虚拟专用网 virtualprivatenetwork 使用密码技术在通信网络中构建安全通道的技术 缩略语 下列缩略语适用于本文件 AH;鉴别头(AuthenticationHeader) CBC:(密码分组的)密码分组链接(工作方式)(CipherBloeckChaining ESP;封装安全载荷(EncapsulatingSeeurityPayload) HMAC;带密钥的杂凑运算(Keyed-HashMessageAuthenticationCode) PSec;IP安全协议(InternetProtocolSecurity) Pv4;互联网通信协议第四版(InternetProtocolversion4) InternetProtocolversion6 IPv6;互联网通信协议第六版(Inm anmdKeyMlanagemenm SsAKMP;互联网安全联盟和密钥管理协议(Inm nternet Security Association Protocol V;初始化向量(InitializationVeetor AuthenticationCode MAC:消息认证码(Message NAT;网络地址转换(NetworkAdressTranslation) SA安全联盟(SecurityAssociation) UDP;用户数据报协议(UserDatagramProtocol VPN;虚拟专用网(VirtualPrivateNetwork 密码算法和密钥种类 5 5.1密码算法 PSecVPN应支持国家密码管理主管部门批准的非对称密码算法、,对称密码算法、密码杂凑算法 和随机数生成算法 各算法及使用要求如下 -非对称密码算法应当支持SM2椭圆曲线密码算法,用于实体鉴别、数字签名和数字信封等 SM2算法的使用要求见GB/T32918. 对称密码算法应当支持SM4分组密码算法,用于密钥交换数据的加密保护和报文数据的加密
GB/36968一2018 保护 算法的工作模式应当支持CBC模式 SM4算法的使用要求见GB/T32907 -密码杂凑算法应当支持SM3密码杂凑算法,用于完整性校验 SM3算法的使用要求见 GB/T32905 随机数生成算法生成的随机数应能通过GB/T32915规定的检测 5.2密钥种类 PSecVPN使用下列密钥: 一设备密钥非对称算法使用的公私钥对,包括签名密钥对和加密密钥对,用于实体验证、数字签 名和数字信封等 工作密钥;在密钥交换第一阶段得到的密钥,用于会话密钥交换过程的保护 会话密钥:在密钥交换第二阶段得到的密钥,用于数据报文及报文MAC的加密 协议 6.1密钥交换协议 6.1.1概述 密钥交换协议定义了协商,建立、修改、删除安全联盟的过程和报文格式 协议报文使用UDP协 议500端口进行传输 本章用到的符号如下: HDR:一个ISAKMP头 HDR*;表示ISAKMP头后面的载荷是加密的 Di:发起方的标识载荷 Dr;响应方的标识载荷 HAsHi;发起方的杂凑载荷 HASHr:响应方的杂凑载荷 HASH -;双方进行协商交互时的中间Hash数据 sSIGi发起方的签名载荷 SIGr;响应方的签名载荷 CERT -sig-r:签名证书载荷 CERT -ene_r;加密证书载荷 MsgID消息标识号 Ni;发起方的Nonce载荷 Nr:响应方的Nonce载荷

_b:载荷

的主体,就是没有ISAKMP通用头的载荷 pub_i;发起方公钥 pub_r;响应方公钥 prv_i;发起方私钥 prvy_r;响应方私钥 CKY-I:ISAKMP头中的发起方cookie CKY-R:;ISsAKMP头中的响应方cookie. xly:x与y串接 [刘:x为可选
GB/T36968一2018 Asymmetrie_Enerypt(msg,pub_key);使用非对称算法Asymmetrie,pub_key作为密钥对输人信 息 msg_b进行加密,其输出为msg的通用载荷头和密文串接 如SM2_Enerypt(Ski,pub_key)表示使 用SM2算法,使用公钥pub_key对Ski_b进行加密,其输出为Ski的通用载荷头和密文串接 Asymmetrie_Signmsg,priv_key);使用非对称算法Asymmetric,priv_key作为密钥对msg进行 数字签名 >nerypt(msg,key):使用对称算法Symmetrie,key作为密钥对输人信息msg_b进行 symmetrie_En 加密,其输出为msg的通用载荷头和密文串接 如SM4_EneryptG t(Ni,key)表示使用SM4算法,使用 key作为密钥对NLb进行加密,其输出为Ni的通用载荷头和密文串接 HASH(msg);使用密码杂凑算法对msg进行数据摘要运算 PRF(key,msg);使用密钥key对消息msg进行数据摘要运算 6.1.2交换阶段及模式 密钥交换协议包括第一阶段和第二阶段 在第一阶段交换中,通信双方建立了一个ISAKMP安全联盟 该安全联盟是协商双方为保护它们 之间的通信而使用的共享策略和密钥 用这个安全联盟来保护IPSec安全联盟的协商过程 SAKMP安全联盟可以用于建立多个IPSec安全联盟 该阶段使用主模式实现通信双方的身份鉴别 和密钥交换,得到工作密钥,该工作密钥用于保护第二阶段的协商过程 在第二阶段交换中,通信双方使用第一阶段ISAKMP安全联盟协商建立IPSee安全联盟,IPSec安 全联盟是为保护它们之间的数据通信而使用的共享策略和密钥 该阶段使用快速模式实现通信双方 PSee安全联盟的协商,确定通信双方的IPSec安全策略及会话密钥 6.1.3交换 6.1.3.1概述 交换使用标准ISAKMP载荷语法、属性编码、消息的超时和重传以及通知消息 SA载荷采用的载荷封装形式为;变换载荷封装在建议载荷中,建议载荷封装在SA载荷中 本标 准不限制发起方可以发给响应方的提议数量,如果第一阶段交换中有多个变换载荷,应将多个变换载荷 封装在一个建议载荷中,然后再将它们封装在一个SA载荷中 安全联盟的定义参见附录A,有关变换 载荷、建议载荷,SA载荷等的具体定义见6.1.5 在安全联盟的协商期间,响应方不能修改发起方发送的任何提议的属性 否则,交换的发起方应终 止协商 6.1.3.2第一阶段主模式 主模式是一个身份保护的交换,其交换过程由6个消息组成 双方身份的鉴别采用数字证书的 方式 本阶段涉及的消息头及载荷的具体内容见6.1.5 主模式的交换过程如下: 消息序列 发起方i 方向 响应方R HDR.SA HDR,SA,CERT_sig_r,CERT_enc-_r HDR.XCHi.SIGi HDR,XCHr,SIGr HDR关,HASHi
GB/36968一2018 HDR*,HASHr 消息1:发起方向响应方发送一个封装有建议载荷的SA载荷,而建议载荷中又封装有变换载荷 消息2;响应方发送一个sA载荷以及响应方的签名证书和加密证书,该载荷表明它所接受的发起 方发送的SA提议 SA载荷的具体内容见6.1.5.6 消息3和消息4;发起方和响应方交换数据,交换的数据内容包括Nonce身份标识(ID)等载荷 Nonce是生成加密密钥和认证密钥所必需的参数;ID是发起方或响应方的标识 这些数据使用临时密 钥sk进行加密保护,sk用对方加密证书中的公钥加密保护,并且,双方各自对数据进行数字签名 使 用sM2算法进行加解密和数字签名验签的具体要求见GB/T35276 发起方交换的数据如下 xCHi=Asymmetrie_Enerypt(Skipubr)|Symmetric_Enerypt(Ni,Sski)|Symmetrie_Encrypt IDi,Ski)CERT_sig_iCERT_enei SIGib=Asymmetrie_Sign(SkL_bNiL_bIDbCERT_ene_Lb,priv_) 响应方交换的数据如下: tNr,Skr XCHr Symmetrie Asymmetric_Eacrypt(Skr,pub_i)|symmetriec_Enrypt( Encryp(Dr,Sskr) SIGr_b=Asymmetrie_Sign(Skr_b|Nr_bIDr_bCERT_ene_r_b,privy_r) 上述过程中使用的非对称密码算法、对称密码算法和密码杂凑算法均由消息1和消息2确定 临 时密钥sk由发起方和响应方各自随机生成,其长度应符合对称密码算法对密钥长度的要求 对称密码运算使用CBC模式,第一个载荷的V值为0;后续的IV使用前面载荷的最后一组密文 加密前的交换数据应进行填充,使其长度等于对称密码算法分组长度的整数倍 所有的填充字节 的值除最后一个字节外都是0,最后一个填充字节的值为不包括它自己的填充字节数 Di和IDr的类型应使用D_DER_AsN1_DN 如果对方证书已经在撤销列表中,系统应发送INVALID_CERTIFICATE通知消息 消息3和消息4交互完成后,参与通信的双方生成基本密钥参数SKEYID以生成后续密钥 SKEYID_d,SKEYID_a,SKEYID_e,计算方法分别如下 SKEYID=PRF(HAsSH(NLbNr_b),CKY-IlCKY-R) SKEYID_d=PRF(SKEYID,CKY-ICKY-R0) SKEYID_a=PRF(SKEYID,SKEYID_dlCKY-ICKY-R1) DLalcKY-1 CKY-R2 SKEYID_e=PRF(SKEYD,SKEYID 上述计算公式中的值0,l,2是单个字节的数值 SKEYID_e是ISAKMPSA用来保护其消息机密性所使用的工作密钥 SKEYID_a是ISAKM sA用来验证其消息完整性以及数据源身份所使用的工作密钥 SKEYID_d用于会话密钥的产生 所有sKEYID的长度都由PRF函数的输出长度决定 如果PRF函数的输出长度太短,不能作为 个密钥来使用,则SKEYID_e应进行扩展 例如,HHMAC的一个PRF可产生128比特的输出,但密 码算法要求用到大于128比特的密钥的时候,sKEYID_e就需要利用反馈及连接方法加以扩展,直到满 足对密钥长度的要求为止 反馈及连接方法如下 K=K1|K2K3 K1=PRF(SKEYID_e,0) K2=PRF(SKEYID_e,K1) K3=PRF(SKEYID_e,K2) 最后从K的起始位置开始取密码算法的密钥所需要的位数 消息5和消息6发起方和响应方鉴别前面的交换过程 这两个消息中传递的信息使用对称密码算
GB/T36968一2018 法加密 对称密码算法由消息1和消息2确定,密钥使用sSKEYID_e 对称密码运算使用CBC模式, 初始化向量IV是消息3中的Ski和消息4中的Skr串连起来经过Hash运算得到的,即 V一HASH(Ski_blSkr_b Hash算法由消息1和消息2确定 加密前的消息应进行填充,使其长度等于对称密码算法分组长度的整数倍 所有的填充字节的值 都是0 报头中的消息长度应包括填充字节的长度,因为这反映了密文的长度 为了鉴别交换,发起力产生HAsH响应方产生HASHr.,计算公式如下 HAsHi=PRF(SKEYID,CKY-1CKY-RSAi_bIDi_b HASHr=PRF(sKEYID,CKY-RlCKY-1lsAr_b|IDr_b 6.1.3.3第二阶段快速模式 快速模式交换依赖于第一阶段主模式交换,作为IPSecSA协商过程的一部分协商IPSecSA的安 全策略并衍生会话密钥 快速模式交换的信息由ISAKMPSA来保护,即除了ISAKMP头外所有的载 荷都要加密 在快速模式中,一个Hash载荷应紧跟在ISAKMP头之后,这个Hash用于消息的完整性 校验以及数据源身份验证 在第二阶段,载荷的加密使用对称密码算法的CBC工作模式,第1个消息的IV是第一阶段的最后 -组密文和第二阶段的MsglD进行Hash运算所得到的,即 IV=HAsH(第一阶段的最后一组密文|MsgID) 后续的IV是前一个消息的最后 一组密文 消息的填充和第一阶段中的填充方式相同 在ISAKMP头中的MsgID唯一标识了一个正在进行中的快速模式,而该ISAKMPSA本身又由 IsAKMP头中的cookie来标识 因为快速模式的每个实例使用一个唯一的Iv,这就有可能基于一个 ISAKMPsA的多个快速模式在任一时间内同时进行 在快速模式协商中,身份标识ID缺省定义为ISAKMP双方的IP地址,并且没有强制规定允许的 协议或端口号 如果协商双方需要指定ID,则双方的身份应作为I[Di和ID被依次传递 响应方的本 地安全策略将决定是否接受对方的身份标识D 如果发起方的身份标识ID由于安全策略或其他原因 没有被响应方所接受,则响应方应该发送一个通知消息类型为INVALID_ID_INFORMATION(18)的 通知载荷 在通信双方之间有多条隧道同时存在的情况下,身份标识ID为对应的IPSecSA标识并规定通信 数据流进人对应的隧道 本阶段涉及的消息头及载荷的具体内容见6.1.5 快速模式的交换过程如下: 方向 消息序列 发起方 响应方 HIDR关,HIASHH_l, SA,Ni,IDci,IDcr] HDR关,HASH_2,SA,Nr,IDci,IDer HDR养,HAsHH_3 消息1;发起方向响应方发送一个杂凑载荷、一个SA载荷(其中封装了一个或多个建议载荷,而每 个建议载荷中又封装一个或多个变换载荷、一个Nonce载荷和标识载荷 杂凑载荷中消息摘要的计算方法如下 HASH_1=PRF(SKEYID_a,MsgID|NLbSA[|IDiDr] 消息2;响应方向发起方发送一个杂凑载荷、一个SA载荷、一个Nonee载荷和标识载荷 杂凑载荷中消息摘要的计算方法如下 HASH_2=PRF(SKEYID_a,MsgIDNi_blSA|Nr_b[IIDi|ID]
GB/36968一2018 消息3;发起方向响应方发送一个杂凑载荷,用于对前面的交换进行鉴别 杂凑载荷中消息摘要的计算方法如下 HAsH_3一PRF(sKEYD_a.,oMsglD|N_blNE-b) 最后,会话密钥素材定义为: KEYMAT=PRF(SKEYID_d,protocolSP1Ni_b|N_b) 其中,protocol和SP1从协商得到的ISAKMP建议载荷中选取 用于加密的会话密钥和用于完整性校验的会话密钥按照算法要求的长度从KEYMAT中依次选 取 先选取用于加密的会话密钥,后选取用于完整性校验的会话密钥 当PRF函数的输出长度小于KEYMAT需要的密钥素材长度时,需要利用反馈及连接方法加以扩 展,直到满足对密钥长度的要求为止 即: KEYMAT=K1|K2K3 其中: K1=PRF(SKEYID_d,protoeollSPlNiL_blNr_b K2=PRF(SKEYID_d,K1protocolSPINiL_b|N_b K3=PRF(SKEYID_d,K2lprotocollSPINiL_b|Nr_b) 单个SA协商产生两个安全联盟 一个人,一个出 每个SA(一个由发起方选择,另一个由响 应方选择)的不同的SPI保证了每个方向都有一个不同的KEYMAT 由SA的目的地选择的SPI,被 用于衍生该SA的KEYMAT 6.1.3.4ISAMP信息交换 如果安全联盟已经建立,则ISAKMP信息交换过程如下所示 发起方 方向 响应方 HDR*,HASH_1,N/D 其中,N/D是一个IsAKMP通知载荷,或是一个ISsAKMP删除载荷 HASH_1的计算方法为 HASH_1=PRF(SKEYID_a,MsglDN/D 其中,MsgID不能与同一个IsAKMPsA保护的其他第二阶段交换的MsgID相同 这个消息的加密使用对称密码算法的cBc工作模式.其密钥使用sEYDe.,初始化向量V是第 -阶段的最后一组密文相MAsglD进行Hash运算所得到的,即 HAsH(第一阶段的最后一组密文IMeglD) 消息的填充和第一阶段中的填充方式相同 如果ISAKMP安全联盟在信息交换时还没有建立,则消息以明文发送,即 响应方 发起方 方向 HDR,N 6.1.4NAT穿越 IPSec穿越NAT特性让PSec数据流能够穿越网络中的NAT设备 NAT穿越由3个部分组成: 首先判断通信的双方是否支持NAT穿越,其次检测双方之间的路径上是否存在NAT,最后决定如何 使用UDP封装来处理NAT穿越 实现NAT穿越的NAT_D载荷分别添加在第一阶段交换过程中消息3和消息4的载荷之后,这些 载荷是独立的,不参与交换过程的所有密码运算 支持NAT穿越的第一阶段交换过程如下:
GB/T36968一2018 消息序列 发起方 方向 响应方 HDR,SA,VID HDR.SA,VID HDR,XCHi,SIGi, NAT_D,NAT_D HDR,XCHr,SIGr,NAT_D,NAT_D HDR关井,HASHi HDR关井,HASHr 注:井标志说明如果NAT存在,这些包将被发送到修改后的端口 如果需要,NAT_OA载荷分别添加在第二阶段交换过程中消息1和消息2的载荷之后,同第二阶 段的消息载荷一起参与密码运算 实现NAT穿越的处理过程和消息格式按RFC3947的规定执行 6.1.5密钥交换的载荷格式 6.1.5.1消息头格式 密钥交换协议消息由一个定长的消息头和不定数量的载荷组成 消息头包含密钥交换协议用来保 持状态并处理载荷所必须的信息 ISAKMP的头格式如图1所示 发起方cookie 响应方cookie 下一个载荷 版本号 交换类型 标志 消息D 长度 图1IsAMP头格式 个唯一 发起方oolkie;这个字段是- 一的8字节比特串,由发起方随机生成 响应方cookie.这个字段是 一的8字节比特串,由响应方随机生成 一个唯- ookie的生成方法应依据RFC2408中2.5.3要求生成 下一个载荷:这个字段为1个字节,说明消息中的第一个载荷的类型 载荷类型的定义如表l 所示 表1载荷类型的定义 值 下一个载荷 无(None) 安全联盟(SecurityAssociation 建议(Proposal 变换Transform
GB/T36968一2018 加密比特;这是标志字段中的最低有效比特 当这个比特被置为1时,该消息头后面所有的载 荷都采用ISsAKMPsA中指定的密码算法加密 当这个比特被置为0时,载荷不加密 -提交比特:这是标志字段的第2个比特,本标准中其值为0. -仅鉴别比特;这是标志字段的第3个比特,本标准中其值为0. 消息ID;这个字段的长度为4字节,第一阶段中该字段为0,在第二阶段为发起方生成的随机数 它作为唯一的消息标志,用于在第二阶段的协商中标识协议状态 长度:这个字段的长度为4字节,长度数值以字节为单位,计算范围包含消息头和载荷在内的整个 消息 6.1.5.2通用载荷头 每个载荷由通用载荷头开始 通用载荷头定义了载荷的边界,所以就可以联接不同的载荷 通用 载荷头的定义如图2所示 保留 下一 -个载树 载荷长度 图2通用载荷头格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义. 保留;这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,计算范围包含通用载荷头在内的 整个载荷 6.1.5.3SA载荷 SA载荷用于协商安全联盟,并且指定协商所基于的解释域DO 载荷的格式依赖于它使用的 DO1,本载荷的类型值为1 SA载荷的格式如图3所示 下一个载荷 保留 载荷长度 解释域DoD 情形 图3sA载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留;这个字段的长度为1个字节,其值为0 载荷长度:这个字段的长度为2个字节,长度数值以字节为单位.计算范围包括SA载荷、所有建议 载荷和所有与被提议的安全联盟有关的变换载荷 解释域(DoI);这个字段长度为4个字节,其值为无符号整数,它指定协商所基于的DO1,这个字段 的值为1 情形;这个字段长度为4个字节,表明协商发生时的情形,用来决定需要的安全服务的信息 定义 如下 SIT_IDENTITY_ONLY:其值为1 表明SA将由一个相关的标识载荷中的源标识信息来 10
GB/36968一2018 标识 -SIT_SECRECY:其值为2 表明SA正在一个需经标记的秘密的环境中协商 -SIT_INTEGRITY:其值是4 表明SA正在一个需经标记的完整性环境中协商 本标准默认采用sIT_IDENTITY_ONLY情形 6.1.5.4建议载荷 建议载荷用于密钥交换的发起方告知响应方它优先选择的安全协议以及希望协商中的sA采用的 相关安全机制,本载荷的类型值为2 建议载荷的格式如图4所示 一个载荷 保留 载荷长度 建议号 协议ID SP长度 变换数 变长的SP 图4建议载荷格式 下一个载荷;这个字段的长度为1个字节,如果后面还有建议载荷,其值为2,否则应为0. 保留这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示整个建议载荷的长度,计 算范围包括通用载荷头、建议载荷所有与该建议有关的变换载荷,该长度仅用于标示本建议载荷的 长度 建议号:这个字段的长度为1个字节,用于表示本建议载荷的建议编号 多个建议的建议号相同表 示这些建议是“逻辑与”的关系,不同表示这些建议是“逻辑或”的关系;单调递增的建议号表示对建议的 优先选择顺序,建议号越小优先权越高 协议ID;这个字段的长度为1个字节,用于表示协议标识符 协议标识符的定义如表3所示 表3协议标识符的定义 协议标识符 描述 RESERVED 未分配 PROTO_ISAKMP ISAKMP的协议标识符 PROTO_IPSee_AH AH的协议标识符 PROTO_IPSec_ESP ESP的协议标识符 P压缩的协议标识符 PROTO_IPCOMP sP1长度;这个字段的长度为1个字节,长度数值以字节为单位,用于表示sP的长度 在第一阶 段该长度为0,在第二阶段该长度为4 变换数.这个字段的长度为1个字节,标示建议的变换载荷个数 变长的sP,在第一阶段没有这个字段,在第二阶段这个字段的长度为4个字节,其内容是该建议 的提出者产生的随机数 6.1.5.5变换载荷 变换载荷用于密钥交换的发起方告知响应方为一个指定的协议提供不同的安全机制,本载荷的类 11
GB/T36968一2018 型值为3 变换载荷的格式如图5所示 下一个载荷 保留 载荷长度 变换号 变换ID 保留2 SA属性 图5变换载荷格式 下一个载荷;这个字段的长度为1个字节,如果后面还有变换载荷,其值为3,否则应为0 保留;这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示本变换载荷的长度 计 算范围包括通用载荷头、变换载荷和所有的SA属性载荷 变换号;这个字段的长度为1个字节,用于表示本变换载荷的变换编号 单调递增的变换号表示对 变换的优先选择顺序,变换号越小优先权越高 变换ID;这个字段的长度为1个字节,用于表示建议协议的变换标识符 在第一阶段该字段的值 为1,在第二阶段根据不同的协议选用不同的变换ID AH协议的变换ID的定义如表4所示,ESsP协 议的变换ID的定义如表5所示 表4AH协议的变换ID的定义 值 变换ID 描述 REsERVED 未使用 0、1 AHSM3 使用带256比特sM3密码杂凑算法的HMAc 20 表5ESP协议的变换ID的定义 值 变换ID 描述 REsERVED 未使用 ESPSM4 129 sM4分组密码算法 保留2:这个字段的长度为2个字节,其值为0 SA属性;该字段的长度是可变的,用于表示本变换的SA属性 该字段的具体定义见6.1.5.6 6.1.5.6SA属性载荷 SA属性载荷只能用于变换载荷之后,并且没有通用载荷头,用于描述SA属性的数据结构,本载荷 的类型值为14 SA属性载荷的格式如图6所示 12
GB/T36968一2018 属性类型 属性值 属性类型 属性长度 属性值 图6SA属性载荷格式 属性类型:这个字段的长度为2个字节,用于表示属性类型 该字段的最高有效比特(比特0)如果 为0,属性值是变长的,并且本载荷有3个字段,分别是属性类型、属性长度和属性值 如果属性类型最 高有效比特为1,属性值是定长的并且本载荷仅有2个字段,分别是属性类型和属性值 如果属性类型 是变长的,并且属性值能在两个字节中表示,那么变长的属性可以用定长表示 第一阶段密钥交换属性类型的定义如表6所示 表6第一阶段密钥交换属性类型的定义 分类 值 长度 加密算法 定长 Hash算法 定长 鉴别方式 定长 交换群描述 定长 交换群类型 定长 群索数/不可约多项式 变长 变长 群产生器1 群产生器2" 变长 变长 群曲线A 群曲线B l0 变长 SA生存期类型 定长 SA 生存期(SALfeDuration) 12 变长 13 伪随机函数(PRF 定长 密钥长度 定长 15 字段大小 定长 变长 16 群顺序 17 块大小 定长 0 非对称算法类型 定长 第二阶段密钥交换属性类型的定义如表7所示 13
GB/T36968一2018 表7第二阶段密钥交换属性类型的定义 分类 值 长度 SA生存类型(SALifeType 定长 SA生存期SALifeDuration) 变长 定长 组描述(GroupDescription 定长 封装模式(EncapsulationMode) 定长 鉴别算法(AuthenticationAlgorithmm 密钥长度(KeyLength) 定长 密钥轮数(KeyRounds 定长 压缩字典长度(CompressDietionarySize 定长 私有压缩算法(CompressPrivateAlgorithm 变长 属性值,这个字段如果是定长的,其长度为2个字节 如果是变长的,其长度由属性长度字段指定 属性长度:当属性值是变长时,该字段用于表示属性值的长度 第一阶段加密算法属性值的定义如表8所示 表8第一阶段加密算法属性值的定义 值 可选择算法的名称 描述 ENC_ALGSM4 SM4分组密码算法 129 第一阶段密码杂凑算法属性值的定义如表9所示 表9第一阶段密码杂凑算法属性值的定义 值 名称 描述 HASH_AIG_SM3 SM3密码杂凑算法 20 第一阶段鉴别方式属性值的定义如表10所示 表10第一阶段鉴别方式属性值的定义 值 名称 描述 ULMETHODDE 公钥数字信封鉴别方式 10 SA生存期类型属性值的定义适用于第一阶段和第二阶段,如表11所示 表11sA生存期类型属性值的定义 值 名称 描述 sA_LD_TYPEsEc 秒 sA_LD_TYPE_K 千字节 14
GB/36968一2018 第一阶段公钥算法类型属性值的定义如表12所示 表12第一阶段公钥算法类型属性值的定义 值 名称 描述 sYMME:TRIc_sM2 sM2椭圆曲线密码算法 第二阶段封装模式属性值的定义如表13所示 表13第二阶段封装模式属性值的定义 值 名称 描述 RESERVED 使用 ENc_MoDE_TUNNEL 隧道模式 ENC_MoDETRNs 传输模式 ENC_MO)DE_UDPTUNNELRFC NAT穿越隧道模式 ENC_MODEUDPTRNsRFC NAT穿越传输模式 第二阶段鉴别算法属性值的定义如表14所示 表14第二阶段鉴别算法属性值的定义 名称 描述 值 RESERVED 使用 HMAC_SM3 SM3密码杂凑算法的HMAC 20 6.1.5.7 标识载荷 标识载荷用于通信双方交换身份信息,该信息用于确认通信双方的身份,本载荷的类型值为5 标 识载荷的格式如图7所示 下一个载荷 保留 载荷长度 标识类型 协议D 端口 标识数据 图7标识载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为O 载荷类型由表1定义 保留:这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于包含通用载荷头在内的整个 载荷长度 标识类型:这个字段的长度为1个字节,用于表示标识数据字段中的身份信息类型 标识类型的定 义如表15所示 15
GB/T36968一2018 表15标识类型的定义 ID类型 描 述 值 RESERVED 未使用 DIPv4ADDR 个单独的4字节IPv4地址 IDFQDN 完全合格的域名字符串 D_USER_FQDN 完全合格的用户名字符串 D_IPv4_ADDR_SUBNET 带有4字节子网掩码的IPv4地址 ID_IPv6_ADDR 个单独的16字节IPv6地址 ID_IPv6_ADDRR_SUBNET 个带有16字节子网掩码的IPv6地址 ID_IPv4_ADDR_RANGE -个lPv4的地址范围 D_IPv6_ADDR_RANGE 个IPv6的地址范围 ID_DER_AsN1_DN -个AsN.1X.500的文本编码 IDDER_ASN1_GN 10 一个AsN.1x.500的二进制编码 1m ID_KEY_ID 用于传递特定厂商信息的字节流 在第一阶段可以使用的标识类型为 D_IPv4__ADDR D_IPv6_ADDR ID_DER_ASN1_DN D_DER_ASN1_GN D_FQDN D_USER_FQDN D_KEY_ID 在第二阶段可以使用的标识类型为 D_IPv4_ADDR D_IPv6_ADDR D_IPv4_ADDR_sUBNET D_IPv6_ADDR_sUBNET D_IPv4_ADDR_RANG;E D_IPv6_ADDR_RANGE 协议ID这个字段的长度为1个字节,用于表示一个IP协议的上层协议号 值为0表明忽略这个 字段,在第一阶段这个值应为0 在第二阶段是用户配置的安全策略五元组的协议,值为0表明忽略这 个字段 端口;这个字段的长度为2个字节,用于表示一个上层协议的端口 值为0表明忽略这个字段,在 第 -阶段这个值应为0 在第二阶段是用户配置的安全策略五元组的端口,值为0表明忽略这个字段 标识数据;这个字段是变长的,用于表示与ID类型字段相对应的标识信息 6.1.5.8证书载荷 证书载荷用于通信双方交换证书以及证书相关信息,本载荷的类型值为6 证书载荷的格式如图8所示 16
GB/T36968一2018 下一个载荷 保留 载荷长度 证书编码 证书数据 图8证书载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留;这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 证书编码;这个字段的长度为1个字节,用于表示证书数据字段的证书编码类型 证书编码类型定 义如表16所示 表16证书编码类型定义 证书类型 值 X.509签名证书 x.509加密证书 在本标准中,只能使用X.509格式的签名证书和加密证书 证书数据;这个字段是变长字段,证书的结构及定义见GB/T20518 6.1.5.9杂凑载荷 杂凑载荷的内容是在SA协商过程中选定的密码杂凑算法生成的数据,本载荷的类型值为8 杂凑 载荷的格式如图9所示 一个载荷 保留 载荷长度 杂凑数据 图g杂凑载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留:;这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 杂凑数据;这个字段的长度是变长的,其内容为密码杂凑算法生成的数据 6.1.5.10签名载荷 签名载荷的内容是在SA协商过程中的数字签名算法生成的数据,本载荷的类型值为9 签名载荷 的格式如图10所示 17
GB/T36968一2018 下一个载荷 保留 载荷长度 签名数据 图10签名载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留;这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,数值长度以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 签名数据;这个字段的长度是变长的,其内容为签名算法生成的数据 6.1.5.11 Nonce载荷 Nonce载荷的内容是用于保护交换数据的随机数据,本载荷的类型值为10 Nonce载荷的格式如 图11所示 一个载荷 保留 载荷长度 Nonce数据 图11Nome载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留;这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,数值长度以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 Nonce数据;这个字段的长度是变长的,其内容为随机数 6.1.5.12通知载荷 通知载荷用于传送通知数据,本载荷的类型值为11,通知载荷的格式如图12所示 载荷长度 下一个载荷 保留 解释域(DoD 协议ID sP长度 通知消息类型 安全参数索引sP 通知数据 图12通知载荷格式 18
GB/36968一2018 入 一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留;:这个字段的长度为1个字节,其值为0. 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 解释域(DO);这个字段的长度为4个字节,这个字段的值为 1 协议ID;这个字段的长度为1个字节,用于表示协议标识符 协议标识符的定义如表3所示 SPI长度;这个字段的长度为1个字节,长度数值以字节为单位,用于表示SP的长度 在第一阶 段该长度为0,在第二阶段该长度为4 通知消息类型:这个字段的长度为2个字节,用于表示通知消息类型 通知消息的错误类型如 表17所示,通知消息的状态类型如表18所示 表17通知消息的错误类型 通知类型 值 描述 INVALI_PAYLoAD_TYPE 无效的载荷类型 DO1_NOT_SUPPORTED 不支持的D(O1 sIrUATIoN_NoT_sUPPoRTED 不支持的sITUATIoN INVALID_COOKIE 无效的cookie NVAL.ID_MANJoR_VERsION 无效的主版本 INVALID_MINOR_VERSION 无效的微版本 IVALD_ExCHANGE_TYPE 无效的交换类型 INVALID_FLAGS 无效的标志 INVALD_MEssAGE_ID 无效的消息ID INVALID_PR0TOcOLID 无效的协议号 l0 11 INVALID_SP1 无效的SP 12 INVALlD_TRANsFoRM_ID 无效的变换号 ATTRIBUTES_NOT_SUPPORTED 不支持的属性 13 No_PROPOsAL_CHOSsEN 建议不被接受 BAD_PROPOSAI_SYNTAX 错误的建议语法 15 PAYI .OADMALFORMED 错误的载荷格式 16 INVALID_KEY_INF(ORMATl(ON 无效的密钥信息 17 INVALD_ID_INFORMATIoN 无效的D信息 INVALID_CERT_ENCODING 无效的证书编码 19 INVALID_CERTIFICATE 无效的证书 20 21 CERTTYPEUNSUPPORTED 不支持的证书类型 INVALID_CERT_AUTHORITY 无效的证书机构 22 19
GB/T36968一2018 表17(续 通知类型 描述 INVAL.ID_HASH_INFORMATION 无效的Hash信息 23 AUTHENTIcATIoN_FALIED 失败的鉴别 2 INVALID_SGNATURE 无效的签名 25 26 ADDREsS_NoTIFIcAToN 地址通知 NOTIFY_SA_LIFETIME 安全联盟生存周期通知 27 证书不可用 CERTFIcATE_UNAVAL.ABLE 28 UNSUPPORTED_EXCHANGE_TYPE 不支持的交换类型 29 30 UNEQUAlPAYIOAD_LENGTHS 错误的载荷长度 RESERVED 保留 318191 PRIVATE 私有 819216383 表18通知消息的状态类型 通知类型 已连接 16384 1638524575 保留将来使用 特定于DO的编码 2457632767 私有(将来使用 3276840959 4096065535 保留(将来使用 SP;在第一阶段没有这个字段 在第二阶段这个字段的长度为4个字节,其内容是接收方建议载 荷中的SPI值 通知数据;这个字段是变长的,用于传送通知消息类型对应的通知数据 6.1.5.13删除载荷 删除载荷用于通知对方某个sA已经取消,本载荷的类型值为12 删除载荷的格式如图13所示 一个载截 保留 载荷长度 下一 解释域(DoD 协议ID sP长度 sP数目 安全参数索引SPI 图13删除载荷格式 20
GB/36968一2018 入 一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留;:这个字段的长度为1个字节,其值为0. 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 解释域(DOD):这个字段的长度为4个字节,其值为1 协议ID;这个字段的长度为1个字节,用于表示要删除的sA的协议标识符 协议标识符的定义如 表3所示 sPI长度;这个字段的长度为1个字节,长度数值以字节为单位用于表示sP的长度 删除第 阶段的sA时该长度为16,删除第二阶段的sA时该长度为4 sPI数目这个字段的长度为2个字节,用于表示本载荷中包含的SI数目. 安全参数索引(SP):这个字段是变长的,用于表示被删除SA的SPI 这个字段的长度由SPI长度 字段和sPI数目字段的值决定 6.1.5.14厂商ID载荷 厂商ID载荷用于传递厂商自定义的常量,本载荷的类型值为13 厂商ID载荷的格式如图14 所示 下一个载荷 保留 载荷长度 厂商D(VD) 图14厂商ID载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留:这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 厂商ID(VID);这个字段是变长的,其内容为厂商ID串的杂凑值 6.1.5.15NAT_D载荷 NAT_D载荷用于检测两个密钥交换通信方之间是否存在NAT设备,以及检测NAT设备的确切 位置,本载荷的类型值为20 NAT_D载荷的格式如图15所示 一个载荷 保留 载荷长度 载荷内容 图15NAT_D载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留;这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示包含通用载荷头在内的 21
GB/T36968一2018 整个载荷长度 载荷内容:这个字段是变长的,其内容为 HASH(CKY-IlCKY-RIP|Port 6.1.5.16NAT_oA载荷 NAT_OA载荷用于密钥交换第二阶段中,当使用传输模式穿越NAT时需要传送这个载荷,本载 荷的类型值为21 NAT_OA载荷的载荷格式如图16所示 下一个载荷 保留 载荷长度 D类型 保留2 NAT_oA数据 图16NAr_oA载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留;这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 ID类型;这个字段的长度为1个字节,其值为表15中的ID_IPV4_ADDR的值或ID_IPv6_ADDR 的值 保留2:这个字段的长度为3个字节,其值为0 NAT_OA数据;这个字段的值是4字节IPv4地址或16字节IPv6地址 6.1.5.17对称密钥载荷 对称密钥载荷用于在密钥交换第一阶段时,传递数字信封中的对称密钥,本载荷的类型值为128 对称密钥载荷的格式如图17所示 一个载荷 保留 载荷长度 对称密钥密文 图17对称密钥载荷格式 下一个载荷;这个字段的长度为1个字节,标识了本载荷后下一个载荷的类型 如果当前载荷是最 后一个,则该字段将被置为0 载荷类型由表1定义 保留:这个字段的长度为1个字节,其值为0 载荷长度;这个字段的长度为2个字节,长度数值以字节为单位,用于表示包含通用载荷头在内的 整个载荷长度 对称密钥密文;这个字段的长度是可变的,其内容为由公钥加密的对称密钥 22
GB/36968一2018 6.1.6密钥交换的数据包格式 6.1.6.1概述 密钥交换消息是基于UDP传输的,使用UDP500端口或者4500端口 在UDP500端口上发送 的密钥交换消息直接跟在UDP报头后面 在UDP4500端口上发送的密钥交换消息,需要在UDP头 与密钥交换消息之间插人4个全0的字节 每一条密钥交换消息以消息头HDR作为开始标志 每个HDR后可以有一个或者多个载荷 如 果有多个载荷,则用每一个载荷内的“下一个载荷”字段进行标识,如果“下一个载荷”字段为0,说明消 息结束 在本条的所有图中,“下一载荷”用“NP”来表示 6.1.6.2主模式消息1的数据包格式 主模式消息1的数据包的格式如图18所示,其中SA载荷中应当支持SM4-SM3变换载荷 发起方cookie 响应方cookie NPSA: 版本号:0xl 交换类型 标志: 消息ID;0 长度 NP:0 保留 载荷长度 Dol:1 情形:1 n o 载荷长度 NPNU儿L 保留 建议号1 SPI长度0 协议 ID 变换载有数 NP变换; 保留;0 载荷长度 变换号1 变换ID: 保留 首逃变换中各属性载荷 NPNU川,0 保留,0 载荷长度 变换号2 变换ID:1 保留 备选变换中各属性载荷 图18主模式消息1的数据包格式 23
GB/T36968一2018 6.1.6.3主模式消息2的数据包格式 主模式消息2的数据包的格式如图19所示 发起方cookie 响应方cookie NPSA 版本号0xI1 交换类型 标志 0 消息D 长度 0 NP:6 保留 载荷长度 Dol:1 情形 wNPNUL0 保留0 载荷长度 建议号1 协议ID SP长度0 变换载荷数 NPNULL:0 保图:0 载荷长度 保留2 变换号1 变换ID 变换中各属性载荷 NP证书 6 保留:0 载荷长度 证书编码 证书数据4 签名谜书数始 0 NPNULL; 保留 载荷长度 证书编码 证书数据5 加密证书数据 图19主模式消息2的数据包格式 6.1.6.4主模式消息3的数据包格式 使用证书鉴别的主模式消息3数据包的格式如图20所示 24
GB/T36968一2018 发起方cookie 响应方cookie 交换类型 NP对称密钥:128 版本号:0xl 标志 消息ID:0 长度 10 NPNonce: 保留:0 载荷长度 受公钥加密的对称密钥 NP标识 保留:0 载荷长度 受对称密钥加密的Noncce数据 NP证书6 保留 载荷长度 D类型 协议ID:0 渊口: 受对称密钥加密的标识数据 NP证书:6 保留:0 载荷长度 证书编码:4 证书数据4 签名证书数据 NPNULL:9 保留:0 载荷长度 证书编码:5 证书数据5 加密证书数据 NPNULL:0 保留:o 载荷长度 签名数据 图20主模式消息2的数据包格式 6.1.6.5主模式消息4的数据包格式 主模式消息4数据包的格式如图21所示 25
GB/T36968一2018 发起方cookie 响应方cookie NP对称密钥:128 版本号:0x1m1 交换类型 标志:0 消息ID:0 长度 NPNonce10 保留:0 载荷长度 受公钥加密的对称密钥 NP标识 保留:0 载荷长度 受对称密钥加密的Nonee数据 NP签名 保留:0 载荷长度 D类型 协议ID;0 端口; 受对称密钥加密的标识数据 NPNULL 保留:0 载荷长度 签名数据 图21主模式消息4的数据包格式 6.1.6.6主模式消息5的数据包的格式 主模式消息5的数据包的格式如图22所示 发起方cookie 响应方cookie NP杂凑 版本号:0xl1 交换类型 标志 消息ID:0 长度 NPNULL 保留0 载荷长度 杂凑较荷 图22主模式消息5的数据包格式 6.1.6.7主模式消息6的数据的包格式 主模式消息6的数据包的格式如图23所示 26
GB/T36968一2018 发起方cokie 响应方cookie NP杂凑,8 版本号:0xI1 标志: 交换类型 消息ID:o 长度 NPNULL:0 保留 o 载荷长度 杂凑载荷 图23主模式消息6的数据包格式 6.1.6.8快速模式消息1的数据包格式 快速模式消息1的数据包的格式如图24所示,其中SA载荷中有一个EsP协议建议,建议中有 两种变换 27
GB/T36968一2018 发起方cookie 响应方cookie NP杂凑 版本号:0xl1 交换类型 标志 消息ID:随机产生 长度 保留, 载荷长度 NPSA 杂凑载荷 NPNonce:10 保留;0 载荷长度 DOHl 情形 NPNULL:0 保留 载荷长度 建议号1 协议ID SP长度 变换载荷数 SPI NP变换 保留, 载荷长度 变换D:128 变换号1 保留2 首选变换中各属性载荷背 NPNU儿L0 保留: 载荷长度 变换号" 变换ID:128 保留2 备选变换中各属性载荷 NP标识 保留 载荷长度 Nonce数据 NP标识 保留 载荷长度 协议ID0 端口;o D类型 标识数纲 o 保留 载荷长度 协议ID0 端口:0 D类型 标识数据 图24快速模式消息1的数据包格式 28
GB/36968一2018 6.1.6.9快速模式消息2的数据包格式 快速模式消息2的数据包的格式如图25所示,其中选择了一种变换 发起方cookie 响应方cookie NP杂凑:8 版本号:0xIl1 交换类型 标志:1 消息ID:随机产生 长度 NPSA 保留:0 载荷长度 杂凑载荷 NPNonce:10 保留:0 载荷长度 Dol: 情形 NPNULL:0 保留:0 载荷长度 建议号1 协议ID. SP长度 变换载荷数 SP 保留:0 荷长度 NPNULL; 变换号 变换ID:128 保留2 变换中各属性载背 保留:0 载荷长度 NP标识 Nonc数据 NP标识 保留:0 载荷长度 ID类型 协议D% 卷口 标识数据 NPNULL:0 保留:0 载荷长度 ID类型 协议ID:0 端口 标识数据 图25快速模式消息2的数据包格式 29
GB/T36968一2018 6.1.6.10快速模式消息3的数据包格式 快速模式消息3的数据包的格式如图26所示 发起方cookie 响应方cookie NP杂凑 版本号:0xll 交换类型 标志 消息D随机产生 长度 NPNULL;0 保留 载荷长度 新建外部IP头 图26快速模式消息3的数据包格式 6.2安全报文协议 6.2.1鉴别头协议AH 6.2.1.1概述 鉴别头协议AH用于为IP数据报文提供无连接的完整性、数据源鉴别和抗重放攻击服务 AH为 IP头提供尽可能多的鉴别,同时为上层协议数据提供鉴别 对于抗重放攻击服务,AH依靠一个单调 递增的抗重放攻击序列号来完成 AH不能提供机密性服务,因此本标准规定AH不能单独使用,而应 和封装安全载荷协议ESP嵌套使用 6.2.1.2AH头格式 AH头格式见图27,该格式里的所有字段都是强制的,并且被包括在完整性校验值(cV)计算中 AH头紧跟在IP协议头(IPv4,JIPv6,或者扩展)之后,在P协议头中的协议字段(IPv4)或者下 一个头 (IPv6,扩展)字段的值是51 个头 载荷长度 保留 安全参数索引sPI 序列号 鉴别数据变长的 图27AH头格式 下一个头;下一个头是一个1字节的字段,该字段指定了鉴别头后面下一个载荷的类型 这个字段 的值是由Interne分配数字机构(IANA)的最新“分配数字”[STD-2]中定义的IP协议数字集合分 配的 30
GB/36968一2018 载荷长度;载荷长度是一个1字节的字段,该字段的值是AH头的长度减去2,长度值以4字节为 单位 保留:保留字段是一个2字节的字段,留给将来使用 该字段应被设置成0,并且参与完整性校验 值ICV的计算 安全参数索引(SPI);安全参数索引sP是一个4字节值,它与目的IP地址和安全协议共同标识了 这个数据报文的安全联盟 从1至255范围内的SPI值是保留给将来使用的,0值保留给本地的特定 实现使用并且不能在网络上传送,通信协商得到的SP1值不能小于256 序列号;序列号是一个无符号的4字节单调递增计数器,发送方对使用该sA的每个数据报文进行 计数,接收方应检测这个字段来实现sA的抗重放攻击服务 发送方的计数器和接收方的计数器在建 立一个SA时被初始化为0,该序列号在一个SA生存期内不能循环使用,在这个计数器溢出之前,通信 的双方应协商出一个新的sA来使这个字段复位为0. 鉴别数据:鉴别数据是一个变长字段,它是一个完整性校验值ICV,用于校验整个IP报文的完整性 可变字段除外) 该字段的长度应是4字节的整数信.具体长度取决于所使用的完整性校验算法 6.2.1.3鉴别头AH的处理 6.2.1.3.1AH头的位置 AH头在传输模式和隧道模式中分别有不同的放置位置 在IP环境中使用传输模式.A头应放在原P头之后,上层协议EsP之前,如图28所示 原IP头 协议头 数据 P4封装前 (所有选项) ESP 原IP头 协议头 A! 数据 IP4封后 (所有选项 (ESP 新IP报文中的认证范围 I4的AH传输模式 图28 在IPv6环境中使用传输模式.AH头被看作是一个端到端的载荷,因而应该出现在逐跳(Hop y-Hop).路由(Routng)和分片扩展头(FragmentationExtensonheaders)之后 目的选项扩展头 (DestinationOptionsExtensionHeader)既可以出现在AH头之前,也可以在AH头之后 如图29 所示 31
GB/T36968一2018 扩展头 协议头 数据 IP6封装前 原IP头 (如果存在 (ESP) 扩展头 协议头 AH 数据 IP6封装后 原P头 (如果存在 ESP 新P报文中的认证范围 扩展头 协议头 AH P6封装后 原P头 数据 ESP (如果存在》 新IP报文中的认证范围 图29IPv6的AH传输模式 在隧道模式中,AH头保护整个IP报文,包括整个原IP报文以及新建外部IP头的部分字段 图30和图31分别表示了隧道模式中典型的IPv4和IPv6报文的AH头的位置 原IP头 协议头 数据 IP4封装前 所有选项 (EsP)y 原P头 新建外部IP头 协议头 数据 AH IP4封装后 (所有选项 (所有选项 ESP) 新P报文中的认证范围 图30IPv4的AH隧道模式 扩展头 协议头 数据 Pv6封装前 原IP头 如果存在) (ESP 扩展头 扩展头 协议头 数据 AH Pv6封装后 新建外部1P头 原IP头 (如果存在 如果存在 (ESP 新IP报文中的认证范围 图31IPv6的AH隧道模式 6.2.1.3.2出站报文处理 6.2.1.3.2.1概述 出站报文的处理包括查找SA、产生序列号、计算完整性校验值、鉴别数据字段的填充和分片等 32
GB/36968一2018 过程 6.2.1.3.2.2查找SA 应根据本地策略查找sA,只有当一个IPSec实现确定了报文与该SA相关联后,AH才应用于一 个出站报文 否则应开始新的密钥交换过程,建立SA 6.2.1.3.2.3产生序列号 当建立一个sA时,发送方的序列号计数器初始化为0,每发送一个报文之前,该计数器加1,并且 把这个计数器值赋予序列号字段 当该计数器计数达到最大值前,应生成新的sA 6.2.1.3.2.4计算完整性校验值IcCV 接收方采用指定的完整性校验算法对报文计算ICV IPv4和Pv6的ICV计算方法分别如下所述: Pv生中的IcV计算 IPv4基本头字段.,IPv4头的选项、AH头和上层协议数据都参与IcV计算 Pv4基本头字段中,直接参与计算的字段为版本(Version).IPv4头长度(HeaderLength) 总长度(TotalLength),标识(Identifieation),协议(Protocol),源地址(SoureeAddress)、目的 地址(DestinationAddress) IPv4基本头字段中在计算IcV之前设置为“0”的字段为;服务类型(Tos)标志(Flags),片 偏移(FragmentOfset)、生存时间(TTL),首部校验和(HeaderChecksum) Pv4头的整个选项被看作一个单元,选项中的类型和长度字段在传送中是不变的,但如果有 -个字段是属于可变的,则整个选项用于计算ICV时都要清“o” 整个AH头参与1IcV计算,其中完整性校验值字段在计算IcV之前置“0”,在计算后,将计算 得到的值赋于该字段 整个上层协议数据直接参与IcV计算 IPv6中的IcV计算 b Pv6基本头字段、,IPv6扩展头、AH头和上层协议数据都参与IcV计算 Pv6基本头字段中,直接参与计算的字段为;版本(Version)、载荷长度(Payloadlength)、下 个头(NextHeader)、源地址(SourceAddress)、没有路由扩展头的目的地址(Destination Address Pv6基本头字段中,在计算ICV之前设置为“0”的字段为;类别(Class)流标签(Flowl.abel、 跳极限(HopLimit) Pv6的扩展头中,在逐跳(Hopby-Hop)和目的扩展头(DestinationExtensionHeaders)中的 Pv6选项包含有一个比特,该比特指出选项在传送过程期间是否会改变 对于在路由过程中 内容可能变换的任何选项,整个“选项数据(OptionData)”字段在计算和校验ICV时应被当作 零值的字节串对待 选项类型(OptionType)和选项数据长度(OptDatalen)被包括进1CV 计算 由比特位确定为不变的所有选项都被包括进ICV计算 整个AH头参与IcV计算,其中鉴别数据字段在计算ICV之前置“o”,在计算后,将计算得到的值 赋于该字段 整个上层协议数据直接参与ICV计算 6.2.1.3.2.5鉴别数据的填充 鉴别数据字段应确保是4字节(IPv4)或8字节(IPv6)的整数倍,否则需要填充 填充应放在鉴别 数据字段的最末端,其内容由发送方任意选择,并且参与ICV计算 33
GB/T36968一2018 6.2.1.3.2.6分片 个IPSec实现在AH处理之后,如果发现IP数据报文长度超过输出接口的MTU值,则对处理 后的数据报文进行分片 6.2.1.3.3入站报文处理 6.2.1.3.3.1概述 人站报文的处理包括重组、查找sA,验证序列号和验证完整性校验值等过程 6.2.1.3.3.2重组 如果需要,在AH处理之前要进行IP数据报文重组 AH不处理分片报文,如果提供给AH处理 的一个报文是一个分片的IP数据报文,接收方应丢弃该报文 6.2.1.3.3.3查找SA 当收到一个包含AH头的报文时,接收方应根据目的IP地址、AH和SPI来查找SA,查找失败则 丢弃该报文 6.2.1.3.3.4验证序列号 所有AH实现应支持抗重放攻击服务,在SA建立时,接收方序列号计数器应初始化为O 对于每 个接收到的报文,接收方应确认报文包含一个序列号,并且该序列号在这个SA生命期中不重复,否则 应丢弃该报文 如果该序列号超出接收窗口有效检查范围的高端值,则对报文进行完整性校验 如果校验通过,接 收窗口应相应调整;如果校验不通过则丢弃该报文 接收窗口的大小默认为64 6.2.1.3.3.5验证完整性校验值 接收方采用指定的完整性校验算法对报文计算IcV,计算方法和参与计算的内容与出站报文计算 ICV的一致 计算的结果与报文中的ICV进行比较 如果一致,则接收到的数据报文是有效的,否则 接收方应将收到的数据报文丢弃 6.2.1.3.3.6匹配安全策略 检查数据包是否符合设置的安全策略要求 6.2.2封装安全载荷ESP 6.2.2.1 概述 封装安全载荷EsP提供了机密性,数据源鉴别,无连接的完整性,抗重放攻击服务和有限信息流量 的保护 当ESP单独使用时,应同时选择机密性和数据源鉴别服务,当ESP和AH结合使用时不应选 择数据源鉴别服务 6.2.2.2ESP头 6.2.2.2.1ESP头格式 ESP头格式见图32,其位置紧接在IPv4、IPv6或者扩展协议之后,在头中的协议(IPv4)字段或者 34
GB/36968一2018 下一个头(IPv6,扩展)字段的值是50 安全参数索引sPI 序列号 载荷数据(变长 填充变长 填充长度 个头 鉴别数据变长 图32ESP头格式 6.2.2.2.2安全参数索引sPI 安全参数索引SP是一个4字节值,它与目的IP地址和安全协议共同标识了这个数据报文的安全 联盟 从1至255范围内的sP1值是保留给将来使用的,0值保留给本地的特定实现使用并且不能在 网络上传送,通信协商得到的sPI值不能小于256 6.2.2.2.3序列号 序列号是一个无符号的4字节单调递增计数器,发送方对使用该SA的每个数据报文进行计数,接 收方应检测这个字段来实现SA的抗重放攻击服务 发送方的计数器和接收方的计数器在建立一个 SA时被初始化为0,该序列号在一个SA生存期内不能循环使用,在这个计数器溢出之前,通信的双方 应协商出一个新的SA来使这个字段复位为0. 6.2.2.2.4载荷数据 载荷数据是一个变长的字段,它包含初始化向量IV和下一个头字段所描述的数据,其长度单位为 字节 IV应置于载荷数据首部 6.2.2.2.5填充字段 如果载荷数据的长度不是加密算法的分组长度的整数倍,则需要对不足的部分进行填充,填充以字 节为单位 如果需要,也可以提供更多的填充数据,但应符合加密算法分组长度的要求 填充的方法和内容应由指定的加密算法规定 如果加密算法没有规定,则附加在报文之后的第一 个字节为1,后续的填充字节按单调递增的顺序拼凑 6.2.2.2.6填充长度 填充长度字段指出了填充字节的个数 有效值范围是0至255,其中0表明没有填充字节 6.2.2.2.7下一个头 下一个头是一个1字节的字段,该字段指定了ESP头后面下一个载荷的类型 这个字段的值是由 nterne et分配数字机构IANA)的最新“分配数字”[STD-2]中定义的P协议数字集合分配的 35
GB/T36968一2018 6.2.2.2.8鉴别数据 鉴别数据是一个变长字段,它是一个完整性校验值ICV,是对ESP报文去掉ICV外的其余部分进 行完整性校验计算所得的值 该字段的长度由选择的完整性校验算法决定 鉴别数据字段是可选的 只有当sA选择了完整性校验服务时才包含鉴别数据字段 6.2.2.3封装安全载荷ESP的处理 6.2.2.3.1ESP头的位置 ESP头在传输模式和隧道模式中分别有不同的放置位置 在IPv4环境中使用传输模式,EsP应放在IP头和它包含的所有选项之后和上层协议之前,如图 33所示,图中“数据”包含“载荷数据”和“填充”,“ESP尾”包含“填充长度”和“下一个头”字段 原IP头 协议头 数据 P封装前 (所有选项) (如UDp 原P头 协议头 ESP P4封装后 数据 ESP尾 ESP认证数据 所有选项 (如UDP) 加密范围 认证范围 图33IP4的ESP传输模式 在IPv6环境中使用传输模式,ESP被看作是一个端到端的载荷,因而应该出现在逐跳(Hopby Hop)、路由(Routing)和分片扩展头(FragmentationExtensionheaders)之后,如图34所示,图中“数据” 包含“载荷数据”和“填充”,“ESP尾”包含“填充长度”和“下一个头”字段 扩展头 协议头 P6封装前 原P头 数据 (如果存在) (如UDP 逐跳、目的选项、 扩展头 协议头 m6封转后 原IP头 ESP 数据 ESP尾 ESP认证数据 如果存在 如UDP) 路由、分片 加密范围 认证范围 图34IPv6的ESP传输模式 在IPv!和IPv6中使用隧道模式,ESP保护包括原内部IP头在内的整个原IP报文,分别如图35 和图36所示,图中“数据”包含“载荷数据”和“填充”,“ESP尾”包含“填充长度”和“下一个头”字段 36
GB/36968一2018 协议头 原IP头 P4封装前 数据 (所有选项 如UDP) 新建外部P头 原IP头 协议头 P4封帖后 数据 ESP尾 ESP认证数据 ESP 所有选项) (所有选项 如UDp 加密范围 认证范围 图35IPv4的ESP隧道模式 扩展头 协议头 P6封装前 原IP头 数据 (如果存在) 如UDP 协议头 扩展头 扩展头 Pv6封装后 新建外部1p 原IP头 数据 ES呢 ESP认证数 ESP 如果存在 (如果存在(如UDP) 加密范围 认证范围 图36IP6的EsP隧道模式 6.2.2.3.2出站报文处理 6.2.2.3.2.1概述 出站报文的处理包括查找SA、封装、加密报文、产生序列号、计算完整性校验值和分片等过程,并 按照由6.2.2.3.2.2至6.2.2.3.2.7的顺序进行处理 6.2.2.3.2.2查找sA 应根据本地策略查找SA,只有当一个IPSec实现确定了报文与该SA相关联后,ESP才应用于 个出站报文 否则应开始新的密钥交换过程,建立sA 6.2.2.3.2.3封装 在传输模式中,将原始上层协议封装到ESP载荷字段中 在隧道模式中,将整个原始IP数据报文封装到ESP载荷字段中 37
GB/T36968一2018 6.2.2.3.2.4加密报文 首先对报文舔加所有需要的填充,然后使用由SA指定的密钥、加密算法算法模式和IV进行加 密,加密范围包括载荷数据、填充、填充长度和下一个头 6.2.2.3.2.5产生序列号 当建立一个SA时,发送方的序列号计数器初始化为0,每发送一个报文之前,该计数器加1,并且 把这个计数器值插人到序列号字段中 当该计数器计数达到最大值前,应生成新的sA 6.2.2.3.2.6计算完整性校验值 如果SA提供完整性校验服务,发送方在除去鉴别数据字段的EsP报文上计算lIcV 将计算后得 到的值赋于鉴别数据字段 6.2.2.3.2.7分片 个IPsec实现在EsP处理之后,如果发现P数据报文长度超过输出接口的MrU值,则对处理 后的数据报文进行分片 6.2.2.3.3入站报文处理 6.2.2.3.3.1概述 人站报文的处理包括重组、查找SA,验证序列号、验证完整性校验值、解密报文和重构等过程,并 按由6.2.2.3.3.2至6,2.2.3.3.7的顺序进行处理 6.2.2.3.3.2重组 如果需要,在ESP处理之前要进行IP数据报文重组 ESP不处理分片报文,如果提供给ESP处 理的一个报文是一个分片的IP数据报文,接收方应丢弃该报文 6.2.2.3.3.3查找sA 当收到一个包含ESP头的报文时,接收方应根据目的IP地址、ESP和SP来查找SA,查找失败则 丢弃该报文 6.2.2.3.3.4验证序列号 所有ESP实现应支持抗重放攻击服务,在sA建立时,接收方序列号计数器应初始化为o 对于每 个接收到的报文接收方应确认报文包含一个序列号,并且该序列号在这个sA生命期中不重复任何已 接收的其他报文的序列号,否则应丢弃该报文 如果该序列号超出接收窗口有效检查范围的高端值,则对报文进行完整性校验 如果校验通过,接 收窗口应相应调整;如果校验不通过则丢弃该报文 接收窗口的大小默认为64 6.2.2.3.3.5验证完整性校验值 接收方采用指定的完整性校验算法对报文计算ICV,计算方法和参与计算的内容与出站报文计算 ICV的一致 计算的结果与报文中的ICV进行比较 如果一致,则接收到的数据报文是有效的,否则 接收方应将收到的数据报文丢弃 38
GB/36968一2018 6.2.2.3.3.6解密报文 使用SA指定的密钥、加密算法、算法模式和IV,对接收报文的加密部分进行解密 根据解密后报 文中填充数据的长度及内容判断是否解密成功,解密失败则丢弃该报文 6.2.2.3.3.7重构 对解密成功的报文,重构原始IP数据报文 6.2.3NAT穿越 为了穿越NAT,在UDP报文中封装和解封装ESP报文的方法按RFC3948的要求实现 6.2.4匹配安全策略 检查数据包是否符合设置的安全策略要求 SeeVP产品要求 7.1产品功能要求 7.1.1随机数生成 IPSeeVPN产品应具有随机数生成功能,在使用随机数前能对生成的随机数进行偏“0”,偏“1” “0,1”平衡等常规检测,并提供检测接口,能通过检测接口对IPSecVPN产品所生成的随机数进行样本 采集,随机数检验应符合GB/T32915的要求 7.1.2密码算法 PSecVPN产品应支持国密SM2,SM3,SM4算法,并将国密算法作为默认密码套件使用 7.1.3工作模式 IPSecVPN产品工作模式应支持隧道模式和传输模式,其中隧道模式是必备功能,用于主机和网 关实现,传输模式是可选功能,仅用于主机实现 7.1.4密钥交换 IPSeeVPN产品应具有密钥交换功能,通过协商产生工作密钥和会话密钥 密钥交换协议应按照6.1的要求进行 7.1.5安全报文封装 安全报文封装协议分为AH协议和ESP协议 AH协议应与ESP协议嵌套使用,这种情况下不启用ESP协议中的验证操作 ESP协议可单独使用,这种情况下应启用ESP协议中的验证操作 安全报文封装协议应按照6.2的要求进行 7.1.6NAT穿越 IPSecVPN产品应支持ESP单独使用时NAT穿越 NAT穿越协议应按照6.2.3的要求进行 39
GB/T36968一2018 7.1.7鉴别方式 IPSecVPN产品应具有实体鉴别的功能,身份鉴别数据应支持数字证书方式 7.1.8IP协议版本支持 PSecVPN产品应支持IPv4协议或IPv6协议 7.1.9抗重放攻击 PSecVPN产品在安全报文传输阶段应具有对抗重放攻击的功能 7.1.10密钥更新 eVPN产品应具有根据时间周期和报文流量两种条件进行工作密钥和会话密钥的更新功能 IPSec 其中根据时间周期条件进行密钥更新为必备功能,根据报文流量条件进行密钥更新为可选功能 工作密钥的最大更新周期不大于24h 会话密钥的最大更新周期不大于1h. 7.2产品性能参数 7.2.1加解密吞吐率 加解密吞吐率是指分别在64字节以太帧长和1428字节(IPv6是1408字节)以太长时,IPSec VPN产品在丢包率为0的条件下内网口上达到的双向数据最大流量 产品应满足用户网络环境对网 络数据加解密吞吐性能的要求 7.2.2加解密时延 加解密时延是指分别在64字节以太帧长和1428字节(IPv6是1408字节)以太帧长时,IPSec VPN产品在丢包率为0的条件下,一个明文数据流经加密变为密文,再由密文解密还原为明文所消耗 的平均时间 产品应满足用户网络环境对网络数据加解密时延性能的要求 7.2.3加解密丢包率 加解密丢包率是指分别在64字节以太帧长和1428字节(IPv6是1408字节)以太帧长时,在 IPsecVPN产品内网口处于线速情况下,单位时间内错误或丢失的数据包占总发数据包数量的百分 比 产品应满足用户网络环境对网络数据加解密丢包率性能的要求 7.2.4每秒新建连接数 1、的时间单位内能够建立隧道数目的最大值 产品应满 每秒新建连接数是指IPSecVPN产品在1 足用户网络环境对每秒新建连接数性能的要求 7.3安全管理要求 7.3.1密钥管理 7.3.1.1 设备密钥 设备密钥是非对称密钥,包括签名密钥对和加密密钥对 签名密钥对由IPSecVPN产品自身产生,其公钥应能被导出,由外部认证机构签发签名证书 40
GB/36968一2018 加密密钥对由外部密钥管理机构产生并由外部认证机构签发加密证书 加密密钥对的私钥保护方 法见GB/T25056 签名证书、加密证书和加密密钥对的私钥应能被导人IPSecVPN产品中 在IPSecVPN产品中,设备密钥的私钥应有安全保护措施 设备密钥应按设定的安全策略进行更新 设备密钥可以安全形式进行备份,并在需要时能够恢复 7.3.1.2工作密钥 工作密钥在密钥交换的第一阶段产生,产生后应保存在易失性存储器中,达到其更新条件后应立即 更换,在连接断开、设备断电时应销毁 7.3.1.3会话密钥 会话密钥在密钥交换的第二阶段产生,产生后应保存在易失性存储器中,达到其更新条件后应立即 更换,在连接断开、设备断电时应销毁 7.3.2数据管理 7.3.2.1 配置数据管理 所有的配置数据应保证其在设备中的完整性、可靠性 应有管理界面对配置数据进行配置和管理 管理员进人管理界面应通过身份鉴别 7.3.2.2日志管理 IPSecVPN产品应提供日志功能,日志可被查看、导出 日志内容包括 操作行为,包括登录认证,参数配置,策略配置、密钥管理等操作 aa b) 安全事件,安全联盟的协商成功,协商失败、过期等事件 异常事件,解密失败,完整性校验失败等异常事件的统计 c 7.3.3管理员角色管理 PSecVPN产品应设置管理员,进行设备参数配置、策略配置、设备密钥的生成、导人、备份和恢复 等操作 管理员应持有表征用户身份(如证书、公私钥对等)信息的硬件装置,与登录口令相结合登录系 统,进行管理操作前应通过身份鉴别 登录口令长度应不小于8个字符 登录失败重试次数不应超过8次 7.3.4设备管理 7.3.4.1硬件安全 PSecVPN产品应提供安全措施,保证密码算法,密钥,关键数据的存储安全 所有密码运算应在独立的密码部件中进行 除必需的通信接口和管理接口以外,不提供任何可供调试、跟踪的外部接口 内部的调试、检测接 口应在产品定型后封闭 7.3.4.2软件安全 所有的安全协议及管理软件应自主实现 1
GB/T36968一2018 操作系统应进行安全加固,裁减一切不需要的模块,关闭所有不需要的端口和服务 任何操作指令及其任意组合,不能泄露密钥和敏感信息 7.3.4.3设备初始化 IPSeeVPN产品的初始化,除必须由厂商进行的操作外,参数的配置、安全策略的配置、密钥的生 成和管理管理员的产生等均应由用户完成 7.3.4.4注册和监控 IPSecVPN产品可具有向管理中心进行注册的功能,同时接受管理中心对其运行状态的实时监控 管理 与管理中心的通信应采用加密通道和身份鉴别等安全措施 7.3.4.5设备自检 应对密码运算部件等关键部件进行正确性检查 应对存储的密钥等敏感信息进行完整性检查 在检查不通过时应报警并停止工作 7.3.4.6设备物理安全防护 在工艺设计、硬件配置等方面要采取相应的保护措施,保证设备基本的物理安全防护功能 PSecVPN产品检测 8 8.1产品功能检测 8.1.1随机数功能 按照GB/T32915的要求提取样本,并按照该标准的相关要求进行检测,检测结果应合格 8.1.2密码算法 测试设备在出厂状态下,建立一条IPSec配置,查看其密码套件配置选项,默认使用的算法应当为 国密算法 8.1.3工作模式 将测试设备与被测设备均设置为隧道模式,应能成功完成密钥交换,建立IPSec隧道进行通信 被测设备支持传输模式时,将测试设备与被测设备均设置为传输模式,应能成功完成密钥交换,进 行通信 将测试设备与被测设备一方设置为隧道模式,另一方设置为传输模式,密钥交换应失败,无法建立 IPSec隧道进行通信 8.1.4密钥交换 密钥交换的检测按8.1.3的方法进行 对密钥交换过程进行网络数据截获,查看其过程应符合6.1 的要求,应能正确进行加解密通信 该项测试通过,可以间接证明设备采用的对称密码算法、非对称密 码算法和密码杂凑算法的实现正确性 42
GB/36968一2018 8.1.5安全报文封装协议 将测试设备与被测设备的安全报文封装协议均配置为ESP协议,对通信的报文进行网络数据截 获,查看其封装格式应符合6.2的要求,应能正确进行加解密通信 将测试设备与被测设备的安全报文封装协议均配置为AH协议嵌套ESP协议,对通信的报文进行 网络数据截获,查看其封装格式应符合6.2的要求,应能正确进行加解密通信 8.1.6NAT穿越 将待检测设备放在NAT下,与检测中心设备进行隧道测试,建立ESP协议的隧道模式的IPSec VPN,测其功能是否完成,该项检测是必备检测 按6.2.3的方法进行密钥交换 对密钥交换过程进行网络数据截获,查看其过程应符合7.1.4的要 求,应能正确进行加解密通信;对加密通信的报文进行网络数据截获,查看其封装格式应符合7.1.5的 要求 8.1.7鉴别方式 按产品提供的鉴别方式,按7.1.4的方法进行密钥交换,应能成功完成协商过程,建立IPSsec隧道进 行通信 产品应支持基于数字证书进行鉴别的方式 8.1.8IP协议版本支持 在IPv4或者IPv6的环境下,按7.1.4的方法进行密钥交换,应能成功完成协商过程,建立IPsec隧 道进行通信 8.1.9抗重放攻击 利用测试设备或网络报文截获工具重放报文传输阶段的安全报文,在被测设备的内网口应不能检 测到重放的数据报文 8.1.10密钥更新 在被测设备上分别设定工作密钥和会话密钥的更新周期,当满足更新条件时,使用网络报文截获工 具应能分别看到相应的第一阶段和第二阶段的密钥的协商过程 如果设备具有根据流量更新密钥的功能,在被测设备上设定会话密钥的流量更新条件,当满足更新 条件时,使用网络报文截获工具应能看到第二阶段的密钥的协商过程 8.2产品性能检测 8.2.1加解密吞吐率 按7.2.1的要求进行测试,记录测试结果 8.2.2加解密时延 按7.2.2的要求进行测试,记录测试结果 8.2.3加解密丢包率 按7.2.3的要求进行测试,记录测试结果 43
GB/T36968一2018 8.2.4每秒新建连接数 按7.2.4的要求进行测试,统计1min时间内建立的IPSec隧道数,得到每秒新建连接数,并记录 结果 8.3安全管理检测 8.3.1密钥管理 在被测设备的管理界面上进行设备密钥的产生或导人,备份和恢复以及更新操作 应符合7.3.1.l 的要求 8.3.2数据管理 8.3.2.1 配置数据管理 通过管理界面对配置数据进行配置和管理,结果应符合7.3.2.1的要求 8.3.2.2日志管理 查看并导出日志记录,结果应符合了3.2.2的要求 8.3.3 管理员角色管理 用非法的身份或错误的口令登录,系统应拒绝;当连续重试次数到达系统设定的限制值时系统应 锁定 用合法的身份和正确口令登录,应能进人管理界面,进行相应的管理操作 8.3.4设备管理 8.3.4.1硬件安全 审查厂商提供的设计文档和厂商提交的产品安全性承诺,应符合7.3.4.1的要求 8.3.4.2软件安全 使用扫描工具探测系统的端口和服务,并审查厂商提供的设计文档和厂商提交的产品安全性承诺 应符合7.3.4.2的要求 8.3.4.3设备初始化 对设备进行初始化操作,结果应符合7.3.4.3的要求 8.3.4.4注册和监控 当系统有管理中心时,进行设备的注册状态监控等管理操作 结果应符合7.3.4.4的要求 8.3.4.5设备自检 对设备进行自检操作,结果应符合7.3.4.5的要求 44
GB/36968一2018 附录 A (资料性附录) IPSecVPN概述 A.1概述 本附录概要介绍了IPSec基础构架、基本概念和基本内容,详细内容参见RFC4301 IPSec是为IPv4和IPv6数据报文提供高质量的、可互操作的、基于密码学安全性的协议 IPSee 通过使用鉴别头(AH)和封装安全载荷(ESP)两种安全协议,以及密钥交换协议来实现这些目标 AH协议提供数据源鉴别、数据完整性以及抗重放服务 ESP协议提供数据保密性、数据源鉴别、 数据完整性以及抗重放服务 对于AH和EsP,都有传输和隧道两种封装模式 密钥交换协议用于协 商AH和ESP协议所使用的密码算法和密钥 PSec允许系统或网络的用户和管理员控制安全服务提供的服务范围 例如,一个组织的安全策 略可能规定来自特定子网的数据流应该使用AH和ESP保护,并使用SM4分组密码算法加密 另 方面,策略可能规定来自另一个站点的数据流应该只用EsP保护,并使用sM4分组密码算法加密 通 过使用安全联盟(SA),IPSec能够区分不同的数据流,并提供相应的安全服务 A.2安全联盟及安全联盟数据库 A.2.1概述 安全联盟(SA)是IPSeeVPN的基础 AH和ESP都使用了安全联盟,而且密钥交换协议的 主要功能就是建立和维护安全联盟 所有AH和ESP的实现都应支持安全联盟 下面分别描述了安 全联盟管理的各个方面,定义了安全联盟策略管理,通信处理、安全联盟管理技术所需的特性 A.2.2定义和范围 -个安全联盟为一个方向上传输的数据流提供AH或ESP协议的一种安全服务 如果AH和 ESP同时被用于保护一个数据流,那么应该创建多个SA来提供对数据流的保护 为了保护两台主机 之间或两个安全网关之间的双向通信,需要两个安全联盟,每个方向一个 安全联盟由三元组唯一标 识,该三元组包括安全参数索引SP)、目的IP地址(单播地址)和安全协议(AH或ESP)标识符 sA有传输和隧道两种模式 传输模式sA是两台主机间的一个安全联盟 在IPv4环境中 传输模式安全协议头紧接在IP头和任意选项之后,且在任何更高层协议之前例如TCP或UDP) 在 Pv6环境中,安全协议头出现在基本IP头和扩展之后,但可能出现在目的地选项之前或之后,并在更 个传输模式sA仅为那些更高层协议提供安全服务,,而并不为 高层协议之前 在ESP的情况下, ESP头之前的IP头或任意扩展头提供服务 在AH情况下,这种保护也被扩展到IP头的可选部分、扩 展头的可选部分和可选项包含在IPv4头、IPv6逐跳扩展头,或IPv6目的扩展头中) 隧道模式sA是运用于一个IP隧道的sA.只要一个安全联盟的任意一端是一个安全网关,SA就 应是隧道模式 这里有一个指定了IPSec处理目的地的“外部”IP头,加上一个指定了报文最终目的地 的内部IP头 安全协议头出现在外部IP头之后和内部IP头之前 如果在隧道模式中使用AHH,部分 外部IP头将受到保护,同样所有隧道里的IP报文也受到保护 如果使用ESP,则仅对隧道里的报文给 予保护,而不保护外部头 45
GB/T36968一2018 A.2.3安全联盟的功能 个SA所提供的安全服务集依赖于所选择的安全协议、SA模式、SA端点和对协议范围内可选服 务的选择 ESP为数据流提供加密服务,同时也提供鉴别服务 ESP所提供的鉴别范围比AH所提供的要 窄,即EsP头“外面”的P头不受保护 如果使用EsP,则两个安全网关之间的EsP(隧道模式)sA能提供数据流保密 隧道模式的使用 允许内部P头被加密,也就隐藏了通信源和目的地的标识 而且,也可以使用EsP载荷填充来隐藏报 文的大小,进一步隐藏通信的外部特性 保护范围较小的sA比保护范围更大的sA更容易受到流量 分析的攻击 A.2.4安全联盟的组合 当单一的SA不能满足有更高安全要求的数据流时,需要采用多个SA的组合来实现必要的安全 策略,这个组合称为安全联盟束或SA束 安全联盟可以通过两种方式组合成束:传输邻接和迭代隧 道 传输邻接指的是对同一个IP数据包使用多于一个传输模式的安全协议 这种联合AH和ESP的 方法只允许一级的联合,更多的嵌套并不能产生更多的好处 迭代隧道指的是通过IP隧道实现的安全 协议的多层次应用 这种方法允许多重嵌套 这两种方式也可以再组合,例如,一个sA束可以由一个隧道模式sA和一个或两个传输模式SA 依次应用而构成 迭代隧道也能发生在任何隧道源或目的端点都不相同的地方 A.3安全联盟数据库 A.3.1概述 在IPseeVPN实现中,处理P通信的大量绸节主要是一个本地事情,本标准并不做绸节上的规 定 但是本标准规定了一套SPD元素集标准,以保证实现的可操作性和最低限度的管理能力,这对于 保证使用本标准的IPSecVPN设备之间的互通是必须的 下面描述了处理IP数据流的一个通用模 式,该模式仅作参考,服从本标准的实现并不需要在细节上和这个模式相一致,但是应实现该模式所描 述的所有功能 这一模型中有两个名义上的数据库安全策略数据库和安全联盟数据库 前者定义策略,这些策略 决定所有IPSec实现人站和出站的IP通信的处理 后者包括和每一个安全联盟有关的参数 本章定 义了选择符、IP集和高层协议域值的概念,策略数据库通过使用这些值来把通信映射到一个策略,也就 是一个sA或SA束 因为用作选择符的许多字段具有方向性,所以每一个激活了IPSec的接口要求名 义上分开人站和出站数据库 A.3.2安全策略数据库 安全策略数帮库(sPD)定义了哪些服务以何种方式提供给P数据包 本标准并不强制规定安全 策略数据库以及其接口的实现方式 但是,任何服从本标准的实现应提供本条描述的最小管理功能,以 保证系统管理员能正确配置IPSe策略 对于实现了IPSec的设备上,所有的数据包处理过程中都应查阅SPD 因此,SPD要求对于人站 和出站数据包要有不同的人口 另外,对于每个激活了IPSec的接口,应提供一个名义上独立的sPD. 它应区分受IPSee保护的数据包和允许绕过IPSec的数据包 对于任何出站或人站的数据包,这里有 三种可能的处理选择;丢弃,绕过IPSec或使用IPSec处理 第一种选择是指根本不准许数据包离开主 机、穿过VPN网关 第二种选择指的是允许数据包通过但不受IPSec保护 第三种选择指对数据包使 46
GB/36968一2018 用IPSec保护,在这种情况下,SPD应指出对数据流提供的安全服务、采用的协议、使用的算法等 对于IPSec实现,应要有一个管理接口,该接口允许用户或系统管理员管理sSPD 管理接口应允许 用户定义进人或离开系统的数据流的处理方法 SPD的管理接口应允许创建与6.1.5.7定义的选择符 一致的人口,并且应支持这些人口的排序 SPD包括一个有序的策略人口列表 策略人口由一个或多个选择符标识,这些选择符定义了哪些 数据流应该应用该策略 每个人口包括一个标识,该标识指出匹配这一策略的通信是否允许绕过、丢弃 或进行IPSec处理 如果需要进行IPSec处理,则人口应包括一个SA或SA束的详细说明,其列举了 PSec的协议、模式和使用的算法,以及是否需要嵌套使用sA 策略人口还应规定如何从SPD和报文 中的值衍生得到一个新的安全联盟数据库人口值,可以有: 使用报文自身拥有的值 b)使用和策略人口相关的值两种选择 如果策略人口相关的值是个单值,则a)和b)没什么区别 但是,如果选择符的允许值是一个范围 对IP地址)或通配符时,那么在一个范围的情况下b)将激活对任何在该选择符范围值之内拥有一个 选择符值的报文使用这个sA,而不仅仅是带有触发创建SA的选择符值的报文 在通配符的情况下 )允许对有该选择符任何值的报文使用这个sA SPD人口应被排序,并且总以相同顺序进行搜索,因此第一个相匹配的人口始终都会被选择 当 一个安全策略要求按照一定的顺序,对数据流序应用多个sA时,SPD中的策略人口应规定如何使用这 些sA的顺序 A.3.3选择符 SA或sA束可以是细致的或者是粗略的 例如,一对VPN网关之间的所有数据流可以基于单个 sA来传输,也可以为每一对通信主机指派一个sA,SA管理应支持下面的选择符参数 目的IP地址(IPv4或IPv6);这可以是单个IP地址(单播)、一个地址范围(包含高值和低值 aa 地址加掩码、或一个通配符地址 注意这一选择符同sA的<目的IP地址、,IPSec协议、sPI> 三元组中的“目的IP地址”字段有概念上的不同 当一个封装在隧道中的报文到达了隧道的 终点时,它的SPI/目的地址/协议被用来在SAD中寻找这个报文的SA 这一目的地址来自 于封装的外部IP头 b)源IP地址(IPv4或IPv6);这可以是一个单一IP单播地址、一个地址范围(包含高值和低值 地址加掩码,或一个通配符地址 名字(Name);域名字符串如:foo.bar.com或者用户名字符串如;mozart@foo.bar.com. c 传输层协议;是从IPv4的“协议"或者IPv6的“下一个头”字段得到的 其可以是一个单独的 d 协议号 源和目的(如TCP/IP)端口:;这些可能是特殊的UDP/TCP端口值或是一个通配的端口 注 意,在收到一个具有ESP头的报文的情况下有可能无法得到源端口和目的端口 因此,应该 支持一个不透明的值 A.3.4安全联盟数据库 每个IPSec实现都有一个名义上的安全联盟数据库(SAD),它的每个人口都定义了与一个SA相 关的参数 每个SA在SAD中都有一个人口,对于出站处理,SAD人口可以从SPD的人口得到 如果 一个SPD人口现在没有指向一个适合该报文的SA,实现就应为该SPD人口创建一个适当的SA或SA 束,并把SPD人口和该SAD人口关联到一起 对于人站处理,SAD中的每个人口根据一个目的lP地 址、IPSec协议类型和SPI进行索引 对于人站处理,下面的报文字段用于在SAD查找SA 47
GB/T36968一2018 外部头中的目的IP地址;IPv4或IPv6目的地址 a D)IPSsee协议:AH或ESP,用作一个在这个数据库中查找SA的索引 c SPI:4字节的值,用于区别有相同的目的地和相同的IPSec协议不同的SA 对于每个选择符,SAD中的sA人口应包含一个或多个在创建SA时协商的值 对于发送者,这些 值用于决定哪个SA应该被使用,对于响应方,这些值用于核对人站报文中的选择符值是否与SA的选 择符值相匹配 下面的SA字段用在进行IPSec的处理中 序列号计数器:用于产生AH或ESP头中的序列号 aa b 序列号计数器溢出标志;用于指示序列号计数器的溢出是否应该产生一个日志记录,并且阻止 用该SA继续传输报文 抗重放窗口:包括一个计数器和一个检测窗口,用于判断一个人站AH或ESP报文是否是 -个重放报文 AH鉴别算法和密钥 d ESP加密算法、密钥、IV模式和IV EsP鉴别算法和密钥,如果不选择鉴别服务,该字段为空 安全联盟生存期;可使用秒或千字节作为单位 g IPSsec协议模式;隧道模式或者传输模式 h 48
GB/36968?2018 RFC4301SecurityArchitectureforthelnternetProtocol [[2]RFC4302IPAuthenticationHeader [3]RFC4303 PEneapsu llatingSecurityPayload [4]RFC4308CryptographieSuitesforIPsee [5 RFC4309 AdvancedEn Using" StandardAES)ccCMModewithIPseeEncapsula- ncryption ingStcurityPasyload(EsP

IPSecVPN技术规范GB/T36968-2018

随着网络技术的不断发展,网络攻击也变得越来越普遍和严重。信息安全已经成为网络建设和维护中至关重要的一环。其中,虚拟专用网络(VPN)是保护网络数据不被非法获取、篡改或破坏的一种有效方法。而IPSecVPN作为VPN的一种,因其高效、灵活、安全等特点,被广泛应用于企业级网络。 GB/T36968-2018是我国信息安全技术中关于IPSecVPN技术规范的权威标准。该标准全面规定了IPSecVPN的安全架构、加密算法、访问控制、密钥管理等方面的技术要求和实施指导。接下来,我们将从以下几个方面对该标准进行详细介绍: 1. 安全架构 GB/T36968-2018规定了IPSecVPN必须采用基于公共密钥基础设施(PKI)的安全架构,包括认证头、加密负载、完整性保护等多个层次的安全措施。这些措施能够有效防止攻击者篡改、重放或伪造VPN通信数据。 2. 加密算法 IPSecVPN使用的加密算法是保障VPN信息安全的关键。GB/T36968-2018规定了IPSecVPN必须采用AES-256对VPN数据进行加密,保证数据在传输过程中不被窃听、解密或修改。 3. 访问控制 访问控制是IPSecVPN实现安全通信的重要手段之一。GB/T36968-2018规定了IPSecVPN必须采用安全策略集(SPD)、安全关联(SA)和认证头(AH)等方式来实现对VPN通信的严格访问控制。 4. 密钥管理 密钥管理是IPSecVPN安全性的重要保障。GB/T36968-2018规定了IPSecVPN必须采用IKEv2协议进行密钥交换和管理,确保VPN通信数据的机密性和完整性。 除此之外,GB/T36968-2018还规定了IPSecVPN的实施指导、测试与评估、报告格式等方面的内容。通过遵循该标准,企业可以建立高效、安全的IPSecVPN网络,有效保护企业的核心数据资产。 综上所述,GB/T36968-2018是我国关于IPSecVPN技术规范的权威标准,为企业实现安全、高效的IPSecVPN提供了重要的技术支持和指导。企业在实施IPSecVPN时应该充分考虑该标准的内容,并严格按照要求进行实施与管理,以确保企业信息安全得到有效保障。

和信息安全技术IPSecVPN技术规范类似的标准

信息安全技术术语

青少年社会工作服务指南
上一篇 本文分享国家标准青少年社会工作服务指南的全文阅读和高清PDF的下载,青少年社会工作服务指南的编号:GB/T36967-2018。青少年社会工作服务指南共有9页,发布于2019-07-01
纳米技术原子力显微术测定纳米薄膜厚度的方法
本文分享国家标准纳米技术原子力显微术测定纳米薄膜厚度的方法的全文阅读和高清PDF的下载,纳米技术原子力显微术测定纳米薄膜厚度的方法的编号:GB/T36969-2018。纳米技术原子力显微术测定纳米薄膜厚度的方法共有9页,发布于2018-12-28 下一篇
相关推荐