summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2950.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2950.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2950.txt')
-rw-r--r--doc/rfc/rfc2950.txt283
1 files changed, 283 insertions, 0 deletions
diff --git a/doc/rfc/rfc2950.txt b/doc/rfc/rfc2950.txt
new file mode 100644
index 0000000..4b1bc37
--- /dev/null
+++ b/doc/rfc/rfc2950.txt
@@ -0,0 +1,283 @@
+
+
+
+
+
+
+Network Working Group J. Altman
+Request for Comments: 2950 Columbia University
+Category: Standards Track September 2000
+
+
+ Telnet Encryption: CAST-128 64 bit Cipher Feedback
+
+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.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2000). All Rights Reserved.
+
+Abstract
+
+ This document specifies how to use the CAST-128 encryption algorithm
+ in cipher feedback mode with the telnet encryption option. Two key
+ sizes are defined: 40 bit and 128 bit.
+
+1. Command Names and Codes
+
+ Encryption Type
+
+ CAST5_40_CFB64 8
+ CAST128_CFB64 10
+
+ Suboption Commands
+
+ CFB64_IV 1
+ CFB64_IV_OK 2
+ CFB64_IV_BAD 3
+
+2. Command Meanings
+
+ IAC SB ENCRYPT IS CAST5_40_CFB64 CFB64_IV <initial vector> IAC SE
+ IAC SB ENCRYPT IS CAST128_CFB64 CFB64_IV <initial vector> 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.
+
+
+
+Altman Standards Track [Page 1]
+
+RFC 2950 CAST-128 64 bit Cipher Feedback September 2000
+
+
+ IAC SB ENCRYPT REPLY CAST5_40_CFB64 CFB64_IV_OK IAC SE
+ IAC SB ENCRYPT REPLY CAST128_CFB64 CFB64_IV_OK IAC SE
+ IAC SB ENCRYPT REPLY CAST5_40_CFB64 CFB64_IV_BAD IAC SE
+ IAC SB ENCRYPT REPLY CAST128_CFB64 CFB64_IV_BAD 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).
+
+3. Implementation Rules
+
+ 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 CAST128 64 bit Cipher Feedback algorithm.
+
+ 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.
+
+ 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.
+
+ 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.
+
+ 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.
+
+
+
+
+
+
+
+Altman Standards Track [Page 2]
+
+RFC 2950 CAST-128 64 bit Cipher Feedback September 2000
+
+
+4. Algorithm
+
+ CAST 64 bit Cipher Feedback
+
+ key --->+------+
+ +->| CAST |--+
+ | +------+ |
+ | 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.
+
+ V0 = CAST(iV, key)
+ On = Dn ^ Vn
+ V(n+1) = CAST(On, key)
+
+5. Integration with the AUTHENTICATION telnet option
+
+ 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 (5) bytes, then the CAST128_CFB64
+ (CAST5_40_CFB64) option must not be offered or used as a valid telnet
+ encryption option.
+
+ If there are less than 32 (10) bytes of key data, the first 16 (5)
+ bytes of key data are used as keyid 0 in each direction. If there
+ are at least 32 (10) bytes of key data, the first 16 (5) bytes of key
+ data are used to encrypt the data sent by the telnet client to the
+ telnet server; the second 16 (5) bytes of key data are used to
+ encrypt the data sent by the telnet server to the telnet client.
+
+ Any extra key data is used as random data to be sent as an
+ initialization vector.
+
+6. Security Considerations
+
+ 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,
+
+
+
+Altman Standards Track [Page 3]
+
+RFC 2950 CAST-128 64 bit Cipher Feedback September 2000
+
+
+ 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.
+
+ 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.
+
+ Encryption modes using 40-bit keys are not to be considered secure.
+ The 40 bit key mode CAST5_40_CFB64 is listed here simply to document
+ the implementations that are already prevalent on the Internet but
+ have never been documented.
+
+7. Acknowledgments
+
+ 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.
+
+8. References
+
+ [1] Adams, C., "The CAST-128 Encryption Algorithm", RFC 2144, May
+ 1997.
+
+Author's Address
+
+ Jeffrey Altman, Editor
+ Columbia University
+ 612 West 115th Street Room 716
+ New York NY 10025 USA
+
+ Phone: +1 (212) 854-1344
+ EMail: jaltman@columbia.edu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Altman Standards Track [Page 4]
+
+RFC 2950 CAST-128 64 bit Cipher Feedback September 2000
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2000). All Rights Reserved.
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Altman Standards Track [Page 5]
+