IPSEC VPN技术规范.docx
- 文档编号:6752468
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:60
- 大小:69.02KB
IPSEC VPN技术规范.docx
《IPSEC VPN技术规范.docx》由会员分享,可在线阅读,更多相关《IPSEC VPN技术规范.docx(60页珍藏版)》请在冰豆网上搜索。
IPSECVPN技术规范
IPSecVPN技术规范
江苏先安科技有限公司
2008年1月
目次
目次......................................................................I前言......................................................................II引言.....................................................................III
1范围......................................................................1
2规范性引用文件.............................................................1
3术语与缩略语...............................................................1
3.1术语.....................................................................1
3.2缩略语...................................................................2
4密码算法和密钥种类.........................................................3
4.1密码算法.................................................................3
4.2密钥种类.................................................................3
5协议......................................................................3
5.1密钥交换协议.............................................................3
5.2安全报文协议............................................................29
6IPSecVPN产品要求........................................................37
6.1产品功能要求............................................................37
6.2产品性能要求............................................................38
6.3安全管理要求............................................................38
7IPSecVPN产品检测........................................................39
7.1产品功能检测............................................................39
7.2产品性能检测............................................................40
7.3安全管理检测............................................................41
8合格判定..................................................................41
1范围
本规范对IPSecVPN的技术协议、产品管理和检测进行了规定,可用于指导IPSecVPN产品的研制、检测、使用和管理。
2规范性引用文件
下列文件中的条款通过本规范的引用而成为本规范的条款。
凡是注明日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。
凡是不注明日期的引用文件,其最新版本适用于本规范。
GB/T20518-2006《信息安全技术公钥基础设施数字证书格式》
《随机数检测规范》
RFC4301《因特网安全协议体系》RFC4302《IP认证头协议》RFC4303《IP封装安全载荷协议》RFC3947《在IKE中协商NAT穿越》
RFC3948《UDP封装IPsecESP报文》
3术语与缩略语
3.1术语
本规范使用下列术语:
3.1.1密码算法cryptoalgorithm
描述密码处理过程的一组运算规则或规程。
3.1.2密码杂凑算法cryptographichashalgorithm
又称为密码散列算法或密码哈希算法。
它是将一任意长的比特串映射到一个固定长的比特串的运算。
满足下列两个特性:
(1)为一个给定的输出找出能映射到该输出的一个输入是计算上不可行的;
(2)为一个给定的输入找出能映射到同一个输出的另一个输入是计算上不可行的。
3.1.3非对称密码算法/公钥密码算法asymmetriccryptographicalgorithm/publickeycryptographicalgorithm加密和解密使用不同密钥的密码算法。
其中一个密钥(公钥)可以公开,另一个密钥(私
钥)必须保密。
由公钥求解私钥在计算上是不可行的。
3.1.4对称密码算法symmetriccryptographicalgorithm
加解密使用相同密钥的密码算法。
密钥必须保密。
3.1.5分组密码算法blockcipheralgorithm
又称块密码算法,一种对称密码算法,将明文划分成固定长度的分组在密钥控制下进行加密。
3.1.6密码分组链接工作模式cipherblockchaining(CBC)
分组密码算法的一种工作模式,当前的明文分组与前一密文分组进行异或运算后再进行加密。
3.1.7初始化向量initializationvector/initializationvalue(IV)
在密码变换中,为增加安全性或使密码设备同步而引入的用作数据变换的起始点的数。
3.1.8数据源鉴别dataoriginauthentication
确认接收到的数据的来源是所声称的。
3.1.9数字证书digitalcertificate
1
由证书认证机构签名的包含公开密钥拥有者的信息和公开密钥、签发者信息、有效期以及一些扩展信息的数字文件。
3.1.10安全联盟securityassociation(SA)
是两个通信实体经协商建立起来的一种协定,它描述了实体如何利用安全服务来进行安全的通信。
安全联盟包括了执行各种网络安全服务所需要的所有信息,例如IP层服务(如头认证和载荷封装)、传输层和应用层服务或者协商通信的自我保护。
3.1.11互联网安全联盟和密钥管理协议Internetsecurityassociationandkeymanagementprotocol(ISAKMP)互联网安全联盟和密钥管理协议定义了建立、协商、修改和删除安全联盟的过程和报文
格式,并定义了交换密钥产生和认证数据的载荷格式。
这些格式为传输密钥和认证信息提供了一致的框架。
3.1.12载荷payload
是ISAKMP通信双方交换信息的传输形式,是构造ISAKMP消息的基本单位。
3.1.13IP安全协议IPsecurity(IPSec)
一套用于保护IP通信的安全协议。
它是IPv4的一个可选协议系列,也是IPv6的组成部分之一,是一个网络层协议,只负责其下层的网络安全,并不负责其上层应用的安全。
它提供了两种安全机制:
认证(authentication)与加密。
3.1.14认证authentication
认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭到篡改。
3.1.15加密encipherment/encryption
对数据进行密码变换以产生密文的过程。
3.1.16认证头authenticationheader(AH)
属于IPSec的一种协议,用于提供IP数据包的数据完整性、数据源鉴别以及抗重放攻击的功能,但不提供数据机密性的功能。
3.1.17封装安全载荷encapsulatingsecuritypayload(ESP)
属于IPSec的一种协议,用于提供IP数据包的机密性、数据完整性以及对数据源鉴别以及抗重放攻击的功能。
3.1.18虚拟专用网络virtualprivatenetwork(VPN)
一种在公共通信基础网络上通过逻辑方式隔离出来的网络。
它是一组封闭的网络网段,即使通信与开放系统或其他VPN共享同一主干网络,其通信也是保持分离的。
所谓“虚拟”指网络连接特性是逻辑的而不是物理的。
在一个虚拟网内,所有用户共享相同的安全策略、优先级服务和管理策略。
VPN技术可用于网关与网关之间的连接、网关与端点之间的连接、端点与端点之间的连接。
3.1.19IPSec实现IPSecimplementation
具体实现IPSecVPN协议的软硬件产品。
3.2缩略语
本规范使用下列缩略语:
CBC密码分组链接工作模式IV初始化向量
ISAKMP互联网安全联盟和密钥管理协议SA安全联盟
VPN虚拟专用网络IPSecIP安全协议
2
AH认证头
ESP封装安全载荷NAT网络地址转换
HMAC带密钥的杂凑运算
4密码算法和密钥种类
4.1密码算法
IPSecVPN使用国家密码管理局批准的非对称密码算法、对称密码算法、密码杂凑算法和随机数生成算法。
算法及使用方法如下:
——非对称密码算法使用1024比特RSA算法或256比特SM2椭圆曲线密码算法,用于实体验证、数字签名和数字信封等。
——对称密码算法使用128比特分组的SM1分组密码算法,用于密钥协商数据的加密保护和报文数据的加密保护。
算法的工作模式使用CBC模式。
——密码杂凑算法使用SHA-1算法或SM3密码杂凑算法,用于对称密钥生成和完整性校验。
其中,SM3算法的输出为256比特。
——随机数生成算法生成的随机数应能通过《随机数检测规范》规定的检测。
4.2密钥种类
IPSecVPN使用下列密钥:
——设备密钥:
非对称算法使用的公私钥对,用于实体验证、数字签名和数字信封等。
——工作密钥:
在密钥协商第一阶段得到的密钥,用于会话密钥协商过程的保护。
——会话密钥:
在密钥协商第二阶段得到的密钥,用于数据报文的加密和完整性保护。
5协议
5.1密钥交换协议
密钥交换协议定义了协商、建立、修改、删除安全联盟的过程和报文格式。
协议报文使用UDP协议500端口进行传输。
本章节用到的符号如下:
HDR:
一个ISAKMP头。
HDR*:
表示ISAKMP头后面的载荷是加密的。
SA:
带有一个或多个建议载荷的安全联盟载荷。
IDi:
发起方的标识载荷。
IDr:
响应方的标识载荷。
HASHi:
发起方的杂凑载荷。
HASHr:
响应方的杂凑载荷。
SIGi:
发起方的签名载荷。
SIGr:
响应方的签名载荷。
CERT:
证书载荷。
Ni:
发起方的nonce载荷。
Nr:
响应方的nonce载荷。
_b:
载荷
的主体,就是没有ISAKMP通用头的载荷。
pub_i:
发起方公钥。
pub_r:
响应方公钥。
prv_i:
发起方私钥。
prv_r:
响应方私钥。
3
CKY-I:
ISAKMP头中的发起方cookie。
CKY-R:
ISAKMP头中的响应方cookie。
x|y:
x与y串接。
[x]:
x为可选。
Asymmetric_Encrypt(msg,pub_key):
使用非对称算法Asymmetric,pub_key作为密钥对输入信息msg_b进行加密,其输出为msg的通用载荷头和密文串接。
如RSA_Encrypt(Ski,pub_key)表示使用RSA算法,使用公钥pub_key对Ski_b进行加密,其输出为Ski的通用载荷头和密文串接。
Asymmetric_Sign(msg,priv_key):
使用非对称算法Asymmetric,priv_key作为密钥对msg进行数字签名。
Symmetric_Encrypt(msg,key):
使用对称算法Symmetric,key作为密钥对输入信息msg_b进行加密,其输出为msg的通用载荷头和密文串接。
如SM1_Encrypt(Ni,key)表示使用SM1算法,使用key作为密钥对Ni_b进行加密,其输出为Ni的通用载荷头和密文串接。
Hash(msg):
使用密码杂凑算法对msg进行数据摘要运算。
PRF(key,msg):
使用密钥key对消息msg进行数据摘要运算。
5.1.1交换阶段及模式
5.1.1.1交换阶段密钥交换协议包括第一阶段和第二阶段。
在第一阶段交换中,通信双方建立了一个ISAKMPSA。
该SA是协商双方为保护它们之间
的通信而使用的共享策略和密钥。
用这个SA来保护IPSecSA的协商过程。
一个ISAKMPSA可以用于建立多个IPSecSA。
在第二阶段交换中,通信双方使用第一阶段ISAKMPSA协商建立IPSecSA,IPSecSA是为保护它们之间的数据通信而使用的共享策略和密钥。
5.1.1.2交换模式本规范规定了两种交换模式,分别为主模式和快速模式。
主模式用于第一阶段交换,实现通信双方的身份认证和密钥协商,得到工作密钥,该工
作密钥用于保护第二阶段的协商过程。
快速模式用于第二阶段交换,实现通信双方IPSecSA的协商,确定通信双方的IPSec安全策略及会话密钥。
5.1.2交换交换使用标准ISAKMP载荷语法、属性编码、消息的超时和重传以及通知消息。
安全联盟SA采用的载荷封装形式为:
变换载荷封装在建议载荷中,建议载荷封装在安全
联盟载荷中。
本规范不限制发起方可以发给响应方的提议数量,如果第一阶段交换中有多个变换载荷,应将多个变换载荷封装在一个建议载荷中,然后再将它们封装在一个安全联盟载荷中。
有关变换载荷、建议载荷、安全联盟载荷等的具体定义见本规范5.1.4。
在安全联盟的协商期间,响应方不能修改发起方发送的任何提议的属性。
否则,交换的发起方应终止协商。
5.1.2.1第一阶段-主模式
主模式是一个身份保护的交换,其交换过程由6个消息组成。
双方身份的认证可采用公私密钥对或数字证书的方式。
如果采用公私密钥对的方式,通信双方应事先配置好对方的公钥;如果采用数字证书的方式,发起方应首先拥有响应方的数字证书,并在消息3中发送本方的数字证书。
本阶段涉及的消息头及载荷的具体内容见本规范5.1.4。
主模式的交换过程如下:
4
消息序列
发起方
方向
响应方
1
HDR,SA
---->
2
<----
HDR,SA
3
HDR,XCHi,SIGi
---->
4
<----
HDR,XCHr,SIGr
5
HDR*,HASHi
---->
6
<----
HDR*,HASHr
消息1发起方向响应方发送一个封装有建议载荷的安全联盟载荷,而建议载荷中又封
装有变换载荷。
消息2响应方发送一个安全联盟载荷,该载荷表明它所接受的发起方发送的SA提议。
安全联盟载荷的具体内容见本规范5.1.4.3。
消息3和4发起方和响应方交换数据,交换的数据内容包括nonce、身份标识(ID)、可选的证书等载荷。
Nonce是生成加密密钥和认证密钥所必需的参数;ID是发起方或响应方的标识。
这些数据使用临时密钥Sk进行加密保护,Sk用数字信封保护,最后,双方各自对数据进行数字签名后再加密。
发起方交换的数据如下:
XCHi=Asymmetric_Encrypt(Ski,pub_r)|Symmetric_Encrypt(Ni,Ski)|Symmetric_Encrypt(IDi,Ski)[|Symmetric_Encrypt(CERT,Ski)]
SIGi_b=Asymmetric_Sign(Hash(Ski_b|Ni_b|IDi_b[|CERT_b]),priv_i)响应方交换的数据如下:
XCHr=Asymmetric_Encrypt(Skr,pub_i)|Symmetric_Encrypt(Nr,Skr)|Symmetric_Encrypt(IDr,Skr)
SIGr_b=Asymmetric_Sign(Hash(Skr_b|Nr_b|IDr_b),priv_r)上述过程中使用的非对称密码算法、对称密码算法和密码杂凑算法均由消息1和消息2
确定。
临时密钥Sk由发起方和响应方各自随机生成,其长度应符合对称密码算法对密钥长度的要求。
对称密码运算使用CBC模式,第一个载荷的IV值为0;后续的IV使用前面载荷的最后一组密文。
加密前的交换数据应进行填充,使其长度等于对称密码算法分组长度的整数倍。
所有的填充字节的值除最后一个字节外都是0,最后一个填充字节的值为不包括它自己的填充字节数。
当使用证书进行身份验证时,Idi和Idr的类型应使用ID_DER_ASN1_DN。
如果对方证书已经在撤销列表中,系统应发送INVALID_CERTIFICATE通知消息。
消息3和消息4交互完成后,参与通信的双方生成基本密钥参数SKEYID,以生成后续密钥
SKEYID_d、SKEYID_a、SKEYID_e,计算方法分别如下:
SKEYID=PRF(Hash(Ni_b|Nr_b),CKY-I|CKY-R)SKEYID_d=PRF(SKEYID,CKY-I|CKY-R|0)
SKEYID_a=PRF(SKEYID,SKEYID_d|CKY-I|CKY-R|1)SKEYID_e=PRF(SKEYID,SKEYID_a|CKY-I|CKY-R|2)上述计算公式中的值0,1,2是单个字节的数值。
SKEYID_e是ISAKMPSA用来保护其消息机密性所使用的工作密钥。
SKEYID_a是ISAKMPSA用来验证其消息完整性以及数据源身份所使用的工作密钥。
SKEYID_d用于会话密钥的产生。
5
所有SKEYID的长度都由PRF函数的输出长度决定。
如果PRF函数的输出长度太短,不能作为一个密钥来使用,则SKEYID_e应进行扩展。
例如,HMAChash的一个PRF可产生128比特的输出,但密码算法要求用到320比特的密钥。
那么,SKEYID_e就需要利用反馈及连接方法加以扩展,直到满足对密钥长度的要求为止。
反馈及连接方法如下:
K=K1|K2|K3…
K1=PRF(SKEYID_e,0)K2=PRF(SKEYID_e,K1)K3=PRF(SKEYID_e,K2)
…最后从K的起始位置开始取密码算法的密钥所需要的位数。
消息5和6发起方和响应方认证前面的交换过程。
这两个消息中传递的信息使用对称密码
算法加密。
对称密码算法由消息1和消息2确定,密钥使用SKEYID_e。
对称密码运算使用CBC模式,初始化向量IV是消息3中的Ski和消息4中的Skr串连起来经过hash运算得到的,即:
IV=Hash(Ski|Skr)Hash算法由消息1和消息2确定。
加密前的消息应进行填充,使其长度等于对称密码算法分组长度的整数倍。
所有的填充
字节的值都是0。
报头中的消息长度应包括填充字节的长度,因为这反映了密文的长度。
为了认证交换,发起方产生HASH_I,响应方产生HASH_R,计算公式如下:
HASH_I=PRF(SKEYID,CKY-I|CKY-R|SAi_b|IDi_b)HASH_R=PRF(SKEYID,CKY-R|CKY-I|SAi_b|IDr_b)
5.1.2.2第二阶段-快速模式
快速模式交换依赖于第一阶段主模式交换,作为IPSecSA协商过程的一部分协商IPSecSA的安全策略并衍生会话密钥。
快速模式交换的信息由ISAKMPSA来保护,即除了ISAKMP头外所有的载荷都要加密。
在快速模式中,一个HASH载荷应紧跟在ISAKMP头之后,这个HASH用于消息的完整性校验以及数据源身份验证。
在第二阶段,载荷的加密使用对称密码算法的CBC工作模式,第1个消息的IV是第一阶段的最后一组密文和第二阶段的MsgID进行hash运算所得到的,即:
IV=Hash(第一阶段的最后一组密文|MsgID)后续的IV是前一个消息的最后一组密文。
消息的填充和第一阶段中的填充方式一样。
在ISAKMP头中的MsgID唯一标识了一个正在进行中的快速模式,而该ISAKMPSA本身又由
ISAKMP头中的cookies来标识。
因为快速模式的每个实例使用一个唯一的IV,这就有可能基于一个ISAKMPSA的多个快速模式在任一时间内同时进行。
在快速模式协商中,身份标识ID缺省定义为ISAKMP双方的IP地址,并且没有强制规定允许的协议或端口号。
如果协商双方需要指定ID,则双方的身份应作为IDi和IDr被依次传递。
响应方的本地安全策略将决定是否接受对方的身份标识ID。
如果发起方的身份标识ID由于安全策略或其它原因没有被响应方所接受,则响应方应该发送一个通知消息类型为INVALID_ID_INFORMATION(18)的通知载荷。
在通信双方之间有多条隧道同时存在的情况下,身份标识ID为对应的IPSecSA标识并规定通信数据流进入对应的隧道。
本阶段涉及的消息头及载荷的具体内容见本规范5.1.4。
快速模式的交换过程如下:
6
消息序列
发起方
方向
响应方
1
HDR*,HASH
(1),SA,Ni
[,IDci,IDcr]
---->
2
<----
HDR*,HASH
(2),SA,Nr
[,IDci,IDcr]
3
HDR*,HASH(3)
---->
消息1发起方向响应方发送一个杂凑载荷、一个安全联盟载荷(其中封装了一个或多
个建议载荷,而每个建议载荷中又封装一个或多个变换载荷)、一个nonce载荷和标识载荷。
杂凑载荷中消息摘要的计算方法如下:
HASH
(1)=PRF(SKEYID_a,MsgID|SA|Ni[|IDi|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IPSEC VPN技术规范 VPN 技术规范