Network Working Group J. Altman Request for Comments: 2948 Columbia University Category: Standards Track September 2000
Network Working Group J. Altman Request for Comments: 2948 Columbia University Category: Standards Track September 2000
Telnet Encryption: DES3 64 bit Output Feedback
Telnet加密:DES3 64位输出反馈
Status of this Memo
本备忘录的状况
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。
Copyright Notice
版权公告
Copyright (C) The Internet Society (2000). All Rights Reserved.
版权所有(C)互联网协会(2000年)。版权所有。
Abstract
摘要
This document specifies how to use the Triple-DES (data encryption standard) encryption algorithm in output feedback mode with the telnet encryption option.
本文档指定了如何在输出反馈模式下使用带有telnet加密选项的Triple DES(数据加密标准)加密算法。
Encryption Type
加密类型
DES3_OFB64 4
DES3_OFB64 4
Suboption Commands
子选项命令
OFB64_IV 1 OFB64_IV_OK 2 OFB64_IV_BAD 3
OFB64_IV 1 OFB64_IV_OK 2 OFB64_IV_BAD 3
IAC SB ENCRYPT IS DES3_OFB64 OFB64_IV <initial vector> IAC SE
IAC SB ENCRYPT是64_IV<初始向量>IAC SE的DES3_OFB64
The sender of this command generates a random 8 byte initial vector, and sends it to the other side of the connection using the OFB64_IV command. The initial vector is sent in clear text. Only the side of the connection that is WILL ENCRYPT may send the OFB64_IV command.
此命令的发送方生成一个随机的8字节初始向量,并使用OFB64_IV命令将其发送到连接的另一端。初始向量以明文形式发送。只有将加密的连接端可以发送OFB64_IV命令。
IAC SB ENCRYPT REPLY DES3_OFB64 OFB64_IV_OK IAC SE IAC SB ENCRYPT REPLY DES3_OFB64 OFB64_IV_BAD IAC SE
IAC SB加密应答DES3\U OFB64\U IV\U OK IAC SE IAC SB加密应答DES3\U OFB64\U IV\U BAD IAC SE
The sender of these commands either accepts or rejects the initial vector received in a OFB64_IV command. Only the side of the connection that is DO ENCRYPT may send the OFB64_IV_OK and OFB64_IV_BAD commands. The OFB64_IV_OK command MUST be sent for backwards compatibility with existing implementations; there really isn't any reason why a sender would need to send the OFB64_IV_BAD command except in the case of a protocol violation where the IV sent was not of the correct length (i.e., 8 bytes).
这些命令的发送方接受或拒绝在OFB64_IV命令中接收的初始向量。只有连接的加密端可以发送OFB64_IV_OK和OFB64_IV_BAD命令。必须发送OFB64_IV_OK命令,以便与现有实现向后兼容;发送方确实没有任何理由需要发送OFB64_IV_BAD命令,除非在违反协议的情况下发送的IV长度不正确(即8字节)。
Once a OFB64_IV_OK command has been received, the WILL ENCRYPT side of the connection should do keyid negotiation using the ENC_KEYID command. Once the keyid negotiation has successfully identified a common keyid, then START and END commands may be sent by the side of the connection that is WILL ENCRYPT. Data will be encrypted using the DES3 64 bit Output Feedback algorithm.
收到OFB64_IV_OK命令后,连接的WILL ENCRYPT端应使用ENC_keyid命令进行keyid协商。一旦keyid协商成功地识别了一个公共keyid,那么将加密的连接端可以发送START和END命令。数据将使用DES3 64位输出反馈算法进行加密。
If encryption (decryption) is turned off and back on again, and the same keyid is used when re-starting the encryption (decryption), the intervening clear text must not change the state of the encryption (decryption) machine.
如果关闭加密(解密)并再次打开,并且在重新启动加密(解密)时使用相同的密钥ID,则插入的明文不得更改加密(解密)计算机的状态。
If a START command is sent (received) with a different keyid, the encryption (decryption) machine must be re-initialized immediately following the end of the START command with the new key and the initial vector sent (received) in the last OFB64_IV command.
如果使用不同的密钥ID发送(接收)启动命令,则必须在使用新密钥和最后一个OFB64_IV命令中发送(接收)的初始向量的启动命令结束后立即重新初始化加密(解密)机器。
If a new OFB64_IV command is sent (received), and encryption (decryption) is enabled, the encryption (decryption) machine must be re-initialized immediately following the end of the OFB64_IV command with the new initial vector, and the keyid sent (received) in the last START command.
如果发送(接收)了新的OFB64_IV命令,并且启用了加密(解密),则必须在OFB64_IV命令结束后立即用新的初始向量重新初始化加密(解密)机器,并在最后一个START命令中发送(接收)keyid。
If encryption (decryption) is not enabled when a OFB64_IV command is sent (received), the encryption (decryption) machine must be re-initialized after the next START command, with the keyid sent (received) in that START command, and the initial vector sent (received) in this OFB64_IV command.
如果在发送(接收)OFB64_IV命令时未启用加密(解密),则必须在下一个START命令后重新初始化加密(解密)机器,在该START命令中发送(接收)keyid,并在此OFB64_IV命令中发送(接收)初始向量。
DES3 64 bit Output Feedback
DES3 64位输出反馈
key1 key2 key3 | | | v v v +-------+ +-------+ +-------+ +->| DES-e |->| DES-d |->| DES-e |-- + | +-------+ +-------+ +-------+ | +------------------------------------+ v INPUT ------------------------------------->(+) ----> DATA
key1 key2 key3 | | | v v v +-------+ +-------+ +-------+ +->| DES-e |->| DES-d |->| DES-e |-- + | +-------+ +-------+ +-------+ | +------------------------------------+ v INPUT ------------------------------------->(+) ----> DATA
Given: iV: Initial vector, 64 bits (8 bytes) long. Dn: the nth chunk of 64 bits (8 bytes) of data to encrypt (decrypt). On: the nth chunk of 64 bits (8 bytes) of encrypted (decrypted) output.
给定:iV:初始向量,64位(8字节)长。Dn:要加密(解密)的64位(8字节)数据的第n块。On:加密(解密)输出的第n块64位(8字节)。
V0 = DES-e(DES-d(DES-e(iV, key1),key2),key3) V(n+1) = DES-e(DES-d(DES-e(Vn, key1),key2),key3) On = Dn ^ Vn
V0 = DES-e(DES-d(DES-e(iV, key1),key2),key3) V(n+1) = DES-e(DES-d(DES-e(Vn, key1),key2),key3) On = Dn ^ Vn
As noted in the telnet ENCRYPTION option specifications, a keyid value of zero indicates the default encryption key, as might be derived from the telnet AUTHENTICATION option. If the default encryption key negotiated as a result of the telnet AUTHENTICATION option contains less than 16 bytes, then the DES3_OFB64 option must not be offered or used as a valid telnet encryption option.
如telnet加密选项规范中所述,keyid值为零表示默认加密密钥,这可能是从telnet身份验证选项派生的。如果由于telnet身份验证选项而协商的默认加密密钥包含少于16个字节,则不得提供或使用DES3_OFB64选项作为有效的telnet加密选项。
The following rules are to be followed for creating three DES encryption keys based upon the available encrypt key data:
根据可用的加密密钥数据创建三个DES加密密钥时,应遵循以下规则:
keys_to_use = bytes of key data / DES block size (8 bytes)
keys_to_use=密钥数据字节/DES块大小(8字节)
where the keys are labeled "key1" through "key6" with "key1" being the first 8 bytes; "key2" the second 8 bytes; ... and "key6" being sixth 8 bytes (if available).
其中键被标记为“key1”到“key6”,其中“key1”是前8个字节;“键2”第二个8字节。。。“key6”是第六个8字节(如果可用)。
When two keys are available:
当有两个键可用时:
. data sent from the server is encrypted with key1, decrypted with key2, and encrypted with key1;
. 从服务器发送的数据用key1加密,用key2解密,用key1加密;
. data sent from the client is encrypted with key2, decrypted with key1, and encrypted with key2
. 从客户端发送的数据使用key2加密,使用key1解密,然后使用key2加密
When three keys are available:
当有三个键可用时:
. data sent from the server is encrypted with key1, decrypted with key2, and encrypted with key3;
. 从服务器发送的数据用key1加密,用key2解密,用key3加密;
. data sent from the client is encrypted with key2, decrypted with key3, and encrypted with key1
. 从客户端发送的数据使用密钥2加密,使用密钥3解密,然后使用密钥1加密
When four keys are available:
当四个键可用时:
. data sent from the server is encrypted with key1, decrypted with key2, and encrypted with key3;
. 从服务器发送的数据用key1加密,用key2解密,用key3加密;
. data sent from the client is encrypted with key2, decrypted with key4, and encrypted with key1
. 从客户端发送的数据使用密钥2加密,使用密钥4解密,然后使用密钥1加密
When five keys are available:
当有五把钥匙可用时:
. data sent from the server is encrypted with key1, decrypted with key2, and encrypted with key3;
. 从服务器发送的数据用key1加密,用key2解密,用key3加密;
. data sent from the client is encrypted with key2, decrypted with key4, and encrypted with key5
. 从客户端发送的数据使用密钥2加密,使用密钥4解密,然后使用密钥5加密
When six keys are available:
当有六把钥匙可用时:
. data sent from the server is encrypted with key1, decrypted with key2, and encrypted with key3;
. 从服务器发送的数据用key1加密,用key2解密,用key3加密;
. data sent from the client is encrypted with key4, decrypted with key5, and encrypted with key6
. 从客户端发送的数据使用密钥4加密,使用密钥5解密,然后使用密钥6加密
In all cases, the keys used by DES3_OFB64 must have their parity corrected after they are determined using the above algorithm.
在所有情况下,DES3_OFB64使用的密钥必须在使用上述算法确定后进行奇偶校验。
Note that the above algorithm assumes that it is safe to use a non-DES key (or part of a non-DES key) as a DES key. This is not necessarily true of all cipher systems, but we specify this behaviour as the default since it is true for most authentication systems in popular use today, and for compatibility with existing implementations. New telnet AUTHENTICATION mechanisms may specify alternative methods for determining the keys to be used for this cipher suite in their specification, if the session key negotiated by that authentication mechanism is not a DES key and and where this algorithm may not be safely used.
注意,上述算法假设使用非DES密钥(或非DES密钥的一部分)作为DES密钥是安全的。这并不一定适用于所有密码系统,但我们将此行为指定为默认行为,因为它适用于当今流行的大多数身份验证系统,并且与现有实现兼容。如果由该认证机制协商的会话密钥不是DES密钥并且该算法可能无法安全使用,则新的telnet认证机制可以在其规范中指定用于确定该密码套件的密钥的替代方法。
Encryption using Output Feedback does not ensure data integrity; an active attacker may be able to substitute text, if he can predict the clear-text that was being transmitted.
使用输出反馈的加密无法确保数据完整性;如果主动攻击者能够预测正在传输的明文,则他可能能够替换文本。
The tradeoff here is that adding a message authentication code (MAC) will significantly increase the number of bytes needed to send a single character in the telnet protocol, which will impact performance on slow (i.e. dialup) links.
这里的权衡是,添加消息身份验证码(MAC)将显著增加telnet协议中发送单个字符所需的字节数,这将影响慢速(即拨号)链路的性能。
This option was originally drafted back when CPU speeds where not necessarily fast enough to do allow use of CFB. Since then, CPU's have gotten much faster. Given the inherent weaknesses in Output Feedback mode, perhaps it should be deprecated in favor of CFB modes?
该选项最初是在CPU速度不一定快到允许使用CFB时起草的。从那时起,CPU的速度变得更快了。考虑到输出反馈模式的固有弱点,也许应该反对使用CFB模式?
This document was based on the "Telnet Encryption: DES 64 bit Output Feedback" document originally written by Dave Borman of Cray Research with the assistance of the IETF Telnet Working Group.
本文档基于“Telnet加密:DES 64位输出反馈”文档,最初由Cray Research的Dave Borman在IETF Telnet工作组的协助下编写。
Author's Address
作者地址
Jeffrey Altman, Editor Columbia University 612 West 115th Street Room 716 New York NY 10025 USA
Jeffrey Altman,编辑哥伦比亚大学612西115街716室美国纽约州纽约市10025
Phone: +1 (212) 854-1344 EMail: jaltman@columbia.edu
Phone: +1 (212) 854-1344 EMail: jaltman@columbia.edu
Full Copyright Statement
完整版权声明
Copyright (C) The Internet Society (2000). All Rights Reserved.
版权所有(C)互联网协会(2000年)。版权所有。
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。
Acknowledgement
确认
Funding for the RFC Editor function is currently provided by the Internet Society.
RFC编辑功能的资金目前由互联网协会提供。