Network Working Group                                           J. Altman
Request for Comments: 2947                            Columbia University
Category: Standards Track                                  September 2000
        
Network Working Group                                           J. Altman
Request for Comments: 2947                            Columbia University
Category: Standards Track                                  September 2000
        

Telnet Encryption: DES3 64 bit Cipher 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 cipher feedback mode with the telnet encryption option.

本文档指定了如何在密码反馈模式下使用带telnet加密选项的Triple DES(数据加密标准)加密算法。

1. Command Names and Codes
1. 命令名和代码

Encryption Type

加密类型

DES3_CFB64 3

DES3_CFB64 3

Suboption Commands

子选项命令

CFB64_IV 1 CFB64_IV_OK 2 CFB64_IV_BAD 3

CFB64_IV 1 CFB64_IV_OK 2 CFB64_IV_BAD 3

2. Command Meanings
2. 命令含义

IAC SB ENCRYPT IS DES3_CFB64 CFB64_IV <initial vector> IAC SE

IAC SB ENCRYPT是DES3_CFB64 CFB64_IV<初始向量>IAC SE

The sender of this command generates a random 8 byte initial vector, and sends it to the other side of the connection using the CFB64_IV command. The initial vector is sent in clear text. Only the side of the connection that is WILL ENCRYPT may send the CFB64_IV command.

此命令的发送方生成一个随机的8字节初始向量,并使用CFB64_IV命令将其发送到连接的另一端。初始向量以明文形式发送。只有将加密的连接端可以发送CFB64_IV命令。

IAC SB ENCRYPT REPLY DES3_CFB64 CFB64_IV_OK IAC SE IAC SB ENCRYPT REPLY DES3_CFB64 CFB64_IV_BAD IAC SE

IAC SB加密回复DES3_CFB64 CFB64_IV_正常IAC SE IAC SB加密回复DES3_CFB64 CFB64_IV_坏IAC SE

The sender of these commands either accepts or rejects the initial vector received in a CFB64_IV command. Only the side of the connection that is DO ENCRYPT may send the CFB64_IV_OK and CFB64_IV_BAD commands. The CFB64_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 CFB64_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).

这些命令的发送方接受或拒绝在CFB64_IV命令中接收的初始向量。只有连接的加密端可以发送CFB64_IV_OK和CFB64_IV_BAD命令。CFB64_IV_OK命令必须发送,以便与现有实现向后兼容;发送方确实没有任何理由需要发送CFB64_IV_BAD命令,除非在违反协议的情况下发送的IV长度不正确(即8字节)。

3. Implementation Rules
3. 实施细则

Once a CFB64_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 Cipher Feedback algorithm.

收到CFB64_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 CFB64_IV command.

如果使用不同的密钥ID发送(接收)启动命令,则必须在使用新密钥和最后一个CFB64_IV命令中发送(接收)的初始向量的启动命令结束后立即重新初始化加密(解密)计算机。

If a new CFB64_IV command is sent (received), and encryption (decryption) is enabled, the encryption (decryption) machine must be re-initialized immediately following the end of the CFB64_IV command with the new initial vector, and the keyid sent (received) in the last START command.

如果发送(接收)了新的CFB64_IV命令,并且启用了加密(解密),则必须在CFB64_IV命令结束后立即使用新的初始向量重新初始化加密(解密)计算机,并在最后一个START命令中发送(接收)keyid。

If encryption (decryption) is not enabled when a CFB64_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 CFB64_IV command.

如果发送(接收)CFB64_IV命令时未启用加密(解密),则必须在下一个START命令后重新初始化加密(解密)计算机,在该START命令中发送(接收)keyid,并在此CFB64_IV命令中发送(接收)初始向量。

4. Algorithm
4. 算法

DES3 64 bit Cipher 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)
   On = Dn ^ Vn
   V(n+1) = DES-e(DES-d(DES-e(On, key1),key2),key3)
        
   V0 = DES-e(DES-d(DES-e(iV, key1),key2),key3)
   On = Dn ^ Vn
   V(n+1) = DES-e(DES-d(DES-e(On, key1),key2),key3)
        
5. Integration with the AUTHENTICATION telnet option
5. 与身份验证telnet选项集成

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_CFB64 option must not be offered or used as a valid telnet encryption option.

如telnet加密选项规范中所述,keyid值为零表示默认加密密钥,这可能是从telnet身份验证选项派生的。如果由于telnet身份验证选项而协商的默认加密密钥包含少于16个字节,则不得提供或使用DES3_CFB64选项作为有效的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_CFB64 must have their parity corrected after they are determined using the above algorithm.

在所有情况下,DES3_CFB64使用的密钥必须在使用上述算法确定后进行奇偶校验。

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

注意,上述算法假设使用非DES密钥(或非DES密钥的一部分)作为DES密钥是安全的。这并不一定适用于所有密码系统,但我们将此行为指定为默认行为,因为它适用于当今流行的大多数身份验证系统,并且与现有密码系统兼容

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密钥并且该算法可能无法安全使用,则新的telnet认证机制可以在其规范中指定用于确定该密码套件的密钥的替代方法。

6. Security Considerations
6. 安全考虑

Encryption using Cipher Feedback does not ensure data integrity; the active attacker has a limited ability to modify text, if he can predict the clear-text that was being transmitted. The limitations faced by the attacker (that only 8 bytes can be modified at a time, and the following 8-byte block of data will be corrupted, thus making detection likely) are significant, but it is possible that an active attacker still might be able to exploit this weakness.

使用密码反馈进行加密无法确保数据完整性;如果主动攻击者能够预测正在传输的明文,则其修改文本的能力有限。攻击者面临的限制(一次只能修改8个字节,并且以下8个字节的数据块将被破坏,从而有可能被检测到)非常重要,但活动攻击者仍有可能利用此弱点进行攻击。

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协议中发送单个字符所需的字节数,这将影响慢速(即拨号)链路的性能。

7. Acknowledgments
7. 致谢

This document was based on the "Telnet Encryption: DES 64 bit Cipher 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编辑功能的资金目前由互联网协会提供。