📄 rfc3078.txt
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:刘梓超(zichao zi_chao@263.net)
译文发布时间:2001-4-12
版权:本翻译文档可以用于非商业用途自由转载,但必须保留本文档的翻译及组织信息。
Network Working Group G. Pall
Request for Comments: 3078 Microsoft Corporation
Category: Informational G. Zorn
Updates: 2118 cisco Systems
March 2001
RFC3078微软点到点加密(MPPE)协议
(RFC3078 Microsoft Point-To-Point Encryption (MPPE) Protocol)
本备忘录状态
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
版权声明
Copyright (C) The Internet Society (1999). All Rights Reserved.
摘要
点到点协议(PPP)提供一种在点到点链路上传送多协议数据报的标准方法。
PPP压缩控制协议提供了一种在PPP封装链路上协商和运用压缩协议的方法。
本文件描述的是利用微软点到点的加密法(MPPE)提高PPP封装包的保密性。
要求说明书
本文档中的关键字“或许”,“必须”,“必须不”,“可选的”,“建议”,“应该”和“不应该”在[5]中解释。
目录
1. 介绍 2
2. 配置选项格式 2
2.1. 选项协商 3
3. MPPE包 3
3.1.包格式 4
4. 初始会话密钥 5
5. 使用会话密钥初始化RC4 6
6. 加密数据 6
7. 改变密钥 6
7.1.无状态方式密钥的改变 6
7.2.状态方式密钥变化 6
7.3. MPPE密钥更换算法 6
8. 同步 7
8.1.无状态同步 8
8.2.状态同步 8
9. 安全性考虑 8
参考 9
鸣谢 9
作者地址 10
版权声明 10
致谢 11
1. 介绍
微软点到点加密方案是一种将点到点协议(PPP)包用加密形式表示的方法。
MPPE运用RSA RC4 [3]算法提供数据的保密性。用于初始化密码表的会话密钥的长度可以协商。 MPPE目前支持40位和128位的会话密钥。
MPPE会话密钥是经常变化的;变化的频率取决于任选项的协商,每个包都有可能不同。
MPPE在压缩控制协议的选项18[4]中协商。
2. 配置选项格式
描述
CCP配置选项在链路上对MPPE的使用进行协商。 缺省状态下(即,如果MPPE的协商没有进行),不使用加密法。 如果,MPPE协商进行了并且失败,那么链接应该被中断。
CCP配置选项格式如下所示。字段从左至右进行传输。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 类型 | 长 度 | 支持的bit数 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 支持的bit数 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
类型
18
长度
6
支持的Bit数
该字段有4个八位字节,最高八位字节在前。
3 2 1
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |H| |M|S|L|D| |C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
‘C’bit位被MPPC[4]使用,在本备忘录不作进一步的讨论。‘D’bit位被舍弃;虽然一些旧的端子可能会对这个选项进行协商,但这是不应该接受的。如果‘L’bit位被设置(对应于最低位的八位字节值为0x20),这表明发送端要求协商使用40位会话密钥。 如果‘S’bit位被设置(对应于最低位的八位字节值为0x40),这表明发送端要求协商使用128位会话密钥。如果‘M’bit位被设置(对应于最低位的八位字节值为0x80),这表明发送端要求协商使用56位会话密钥。如果‘H’bit位被设置(对应于最高八位字节的值为0x01),这表明发送端希望协商使用无状态方式,在这种方式中会话密钥在每个包传输之后变化(参见下面的节10)。在下面的讨论中,‘S’,‘M’和‘L’bit位有时被共同地作为“加密选项”。
所有其他的位保留并且必须设置为0。
2.1. 选项协商
MPPE选项如[2]的描述进行协商。特别地,协商发起端应该说明它所支持的所有的选项。
应答端应该用一个单一的加密选项进行否认(应该注意无状态方式也许总是需要协商,它独立并附加于一个加密选项)。如果应答端支持超过一种发起端所要求设置的加密选项,则它选择的选项应该是所能提供的“最健壮”的选项。
非正式的,MPPE加密选项的强度可以遵循如下表示方法:
最健壮的
128位加密(‘S’bit位被设置)
56位加密(‘M’bit位被设置)
40位加密(‘L’bit位被设置)
最虚弱的
这个描述考虑了大家公认的密码强度。
发起端应该发送另一个含有与应答端的否定同样选项的请求报文或者取消协商,终止连接。
3. MPPE包
在任何MPPE包被发送前,PPP必须为网络层协议阶段并且CCP控制协议必须为开放状态。
一个MPPE数据报被压缩在PPP信息域中。PPP协议字段注明所有加密的数据报类型为0x00FD。
在PPP链路上传送的MPPE数据报最大长度同一个PPP压缩包的信息域的最大长度一样。
仅PPP协议号在范围0x0021到0x00FA之间的包被加密。其他的包不通过MPPE处理程序并且同它们的原来的PPP协议号一同发送。
填料
建议MPPE不使用填充字段。如果发送端使用填充字段,它必须在链路控制阶段进行自描述填充配置选择[10]协商并且使用自描述填充。
可靠性和顺序性
MPPE方案不需要可靠链路。它依靠每个包所含的一个12位计数值来保持与加密表的同步。如果无状态方式没有被协商而且附在所收到包的数与所期待的数不符合,则接收端必须发送一个CCP重置请求包使RC4表重新同步。
MPPE需要包被顺序发送。
MPPE可以被用在一个可靠链路上,如“PPP可靠传输”[6]中所述,但是由于仅仅需要附加的计数,这样就增加了不必要的开销。
数据扩展
MPPE方案不扩展或压缩数据。从MPPE处理程序输入和输出的八位字节数是相同的。
3.1.包格式
MPPE包格式如下所示。字段从左至右进行传输。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP 协议 |A|B|C|D| 附加计数 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 加密的数据...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ppp协议
PPP协议字段在点到点协议封装[1]中描述。
当MPPE由PPP压缩控制协议成功协商后,该字段的值为0x00FD。当协议-字段-压缩协商后,这个值可以被压缩。
位A
该位表明加密表在包产生之前初始化。在解密包之前,接收端必须用当前的会话密钥再初始化它的表。在本文档中,该位被称为FLUSHED位。如果无状态选项已经被协商,该位必须在每个加密包中设置。要注意MPPC和MPPE都识别FLUSHED位;因此,如果无状态选项被协商,那么它同时适合与MPPC和MPPE。
位B
在MPPE中,该位没有任何意义。
位C
在MPPE中,该位没有任何意义。
位D
该位被设为1表明包被加密。该位被设为0表明这个包没有被加密。
附加计数
附加计数被用来保证包按正确次序发送,而且没有包被丢弃。它是一个单项增加的计数器,每发送一个包就增加1。当计数值到达4095(0x0FFF)时,被重置为0。
加密的数据
加密数据从协议字段开始。例如,一个IP信息包(0x0021后面是一个IP报头),MPPE处理程序便会首先加密协议字段然后加密IP报头。
如果包包含头压缩,MPPE处理程序在头压缩完成之后被应用并且也必须被用于压缩的头部。例如,如果一个包包含协议类型0x002D(一个压缩的TCP/IP头),MPPE处理程序便会首先加密0x002D然后加密压缩的Van-Jacobsen TCP/IP头。
实现注意事项
如果MPPE和MPPC在相同的链路进行协商,MPPE处理程序必须在MPPC处理程序之后由发送端激活,MPPE处理程序必须在MPPC处理程序以前由接收端激活。
4. 初始会话密钥
就当前的实现而言,初始会话密钥源自对等端的信任书;然而,其他的方法也是可能的。 例如,一些认证方法(如Kerberos[8]和TLS[9])作为认证的附加效果产生会话密钥;这些密钥在将来可能会被MPPE使用。为此,用来生成初始MPPE会话密钥的方法用分开的文档描述。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -