RFC 3365

Strong Security Requirements for Internet Engineering Task Force Standard Protocols

πŸ“… published August 2002, from ietf

RFC 3365: Strong Security Requirements for Internet Engineering Task Force Standard Protocols ✨

Okay bestie, RFC 3365 is a Best Current Practice (BCP 61) πŸ’… by J. Schiller from the Massachusetts Institute of Technology πŸŽ€, published in August 2002. It doesn't obsolete or update any other RFCs, since its title block doesn't list any. The whole point is strong security for IETF standard protocols πŸ”.

Status of This Memo ✨

This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements. Distribution of this memo is unlimited.

Copyright (C) The Internet Society (2002). All Rights Reserved.

Abstract πŸ¦‹

It is the consensus of the IETF that IETF standard protocols MUST make use of appropriate strong security mechanisms. This document describes the history and rationale for this doctrine and establishes this doctrine as a best current practice.

Table of Contents 🌸

   1.  Introduction. . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   2
   3.  Security Services . . . . . . . . . . . . . . . . . . . . . .   2
   4.  The Properties of the Internet. . . . . . . . . . . . . . . .   3
   5.  IETF Security Technology. . . . . . . . . . . . . . . . . . .   3
   6.  The Danvers Doctrine. . . . . . . . . . . . . . . . . . . . .   4
   7.  MUST is for Implementors. . . . . . . . . . . . . . . . . . .   5
   8.  Is Encryption a MUST? . . . . . . . . . . . . . . . . . . . .   5
   9.  Crypto Seems to Have a Bad Name . . . . . . . . . . . . . . .   6
   10. Security Considerations . . . . . . . . . . . . . . . . . . .   6
   11. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   6
   12. References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
   13. Author's Address  . . . . . . . . . . . . . . . . . . . . . .   7
   14. Full Copyright Statement  . . . . . . . . . . . . . . . . . .   8

1. Introduction 🧚

The goal here is to write down the IETF consensus on security requirements for protocols, plus the background and motivation behind them. πŸ’–

The Internet is a global network made of independently managed networks and hosts, so there's no central authority running it. There's also no central authority handling security across the network 😭.

Security has to be provided end-to-end or host to host πŸ”’. The IETF's security job is making sure IETF standard protocols have the features they need to be secure for whatever application ends up running across the Internet. Mandatory to implement mechanisms should give enough protection for sensitive business applications πŸ’Ό.

2. Terminology 🫢

Even though this document isn't defining a protocol standard, it uses the terms MUST, MAY, SHOULD and friends in the ways defined by [RFC2119]. πŸŽ€

3. Security Services πŸ’…

[RFC2828] has a full list of internetwork security services and their definitions πŸ“š. Here are three essential ones:

  • Authentication service: A security service that verifies an identity claimed by or for an entity, be it a process, computer system, or person. At the internetwork layer, this includes verifying that a datagram came from where it purports to originate. At the application layer, this includes verifying that the entity performing an operation is who it claims to be. ✨
  • Data confidentiality service: A security service that protects data against unauthorized disclosure to unauthorized individuals or processes. (Internet Standards Documents SHOULD NOT use "data confidentiality" as a synonym for "privacy", which is a different concept. Privacy refers to the right of an entity, normally a person, acting in its own behalf, to determine the degree to which it will interact with its environment, including the degree to which the entity is willing to share information about itself with others.) πŸ™ˆ
  • Data integrity service: A security service that protects against unauthorized changes to data, including both intentional change (including destruction) and accidental change (including loss), by ensuring that changes to data are detectable. πŸ”

4. Some Properties of the Internet 🌈

Like I said earlier, the Internet provides no inherent security πŸ’€. There are little enclaves of networking where users think the environment itself is handling security. A company network that isn't hooked up to the global Internet is a good example 🏒.

You might think protocols built for an enclave like that wouldn't need any security services, since the environment takes care of it. πŸ€”

History says otherwise, though. Applications that run on the TCP/IP Protocol Suite keep ending up on the Internet, even when nobody planned for them to be used in a "wide area" environment 🌍. If an application isn't built to provide security, its users find out they're vulnerable to attack 😱.

5. IETF Security Technology πŸ”

The IETF has a bunch of security protocols and standards. IP Security (IPsec [RFC2411]) and Transport Layer Security (TLS [RFC2246]) are two well-known ones πŸ‘‘. Simple Authentication and Security Layer (SASL [RFC2222]) and the Generic Security Service Application Programming Interface (GSSAPI [RFC2743]) provide services inside the context of a "host" protocol. You can think of them as "toolkits" you plug into another protocol 🧰.

One of the big decisions a protocol designer has to make is whether to use one of the existing protocols, engineer their own protocol using one of the standard tools, or do something totally different 🀯.

There's no single right answer for every protocol. Designers really need to look at the threats facing their own protocol and build appropriate counter-measures πŸ›‘οΈ. That's what the "Security Considerations" Section is for. An RFC on the Internet Standards Track is required to have one, and it gives protocol designers a spot to document the threats and explain the logic behind their security design πŸ“.

6. The Danvers Doctrine πŸŽ€

At the 32cd IETF, held in Danvers, Massachusetts, in April of 1995, the IESG asked the plenary for a consensus on how strong the security provided by IETF standards should be πŸ—³οΈ. The immediate question was whether to support "export" grade security (aka weak security) in standards, but it really raised the bigger issue of security in general.

The overwhelming consensus was that the IETF should standardize on the best security available, regardless of national policies 🌟. People call this consensus the "Danvers Doctrine".

Over time, we've stretched the Danvers Doctrine to mean that all IETF protocols should operate securely. Like, how could anyone argue with that? πŸ™ƒ

Since 1995 the Internet has been under increasing attack from all sorts of malicious actors 🦹. In 2000 there was huge press coverage of Distributed Denial of Service attacks πŸ“°. A lot of those attacks started by first compromising an Internet connected computer system, and usually many systems get compromised in order to launch a big distributed attack πŸ’».

The takeaway is that if we fail to provide secure protocols, the Internet gets less useful as an international communications infrastructure, which seems to be its destiny 🌐.

One argument we keep hearing against building security into protocols is that a given protocol is only meant for "protected" environments where security won't be an issue πŸ™„.

But it's really hard to predict how a protocol will get used later on. Something intended only for a restricted environment can easily end up deployed across the global Internet. We can't wait until that happens to "fix" security problems, because by the time we notice the deployment, it's already too late ⏰.

So the solution is that we MUST implement strong security in all protocols, for the all-too-common day when a protocol becomes widely used on the global Internet 🫢✨.

7. MUST is for Implementors πŸ’œ

We often say that Security is a MUST implement. There's a significant different between MUST implement and MUST use, and it's worth knowing the difference 🧐.

Like I mentioned, some protocols get deployed in secure enclaves where security isn't an issue, and security protocol processing can cause a big performance hit 🐒. So it's totally reasonable for security features to be an option the end user of the protocol can turn off. Heads up, though: "end user" is a fuzzy term here. It means not only the ultimate end user, but also any deployer of a technology, which might be a whole enterprise 🏒.

However, security must be a MUST IMPLEMENT so end users can turn it on whenever the situation calls for it πŸ”₯.

8. Is Encryption a MUST? πŸ™ˆ

Not necessarily! But we need to be a bit more precise. Which security services make sense for a given protocol depends heavily on the application it's implementing 🎯. A lot of people assume encryption means confidentiality, which is the encryption of the content of protocol messages πŸ”.

But there are plenty of applications where confidentiality isn't required, though authentication and integrity are 🫒.

Take a building control application where IP technology runs the heat and vent controls 🏠. There's probably no need to protect the confidentiality of messages that tell heat vents to open and close 🌬️. But authentication and integrity probably matter a lot if we want to stop a malicious actor from raising or lowering the building's temperature whenever they feel like it πŸ₯ΆπŸ”₯.

Still, we often need cryptographic technology to get authentication and integrity for protocol messages 🧁. So if the question is "MUST we implement confidentiality?", the answer is "depends" πŸ€·β€β™€οΈ. But if the question is "MUST we make use of cryptographic technology?", the answer is "likely" πŸ’…βœ¨.

9. Crypto Seems to Have a Bad Name ✨

okay so whenever cryptography comes up in IETF rooms, everyone's eyes just glaze over 😭 and the resistance gets real fast. πŸ™„

a lot of people hear "cryptography" and think of export control and performance. some people just don't get it at all, so they avoid it like it's a haunted house πŸ‘». but honestly, a lot of these worries are unfounded, bestie 🫢

export control, at least in most of the developed world, is becoming less of a problem 🌈. and even where it still is one, the issue isn't really cryptography itself. it's how it gets used to provide confidentiality πŸ”’.

yes, using cryptographic technology can have performance costs 🐒. but we pride ourselves in the IETF on being engineers, and figuring out how to use crypto so that its impact is eliminated, or at least minimized, inside a given protocol is literally an engineering exercise πŸ› οΈπŸ’…. that's the whole job, and it's kind of iconic πŸ‘‘.

and no, you don't have to understand cryptography to use it well 🧚. you do NOT need to become a cryptographer to make effective use of it. you just pick existing, well-understood ciphers and cipher suites and use them to solve the engineering problem in front of you. easy peasy πŸ“

one of the goals in the Security Area of the IETF is to write guides so protocol implementers can pick the right technology without having to learn every tiny detail πŸŽ€ that's the dream, fr fr.


10. Security Considerations

this document is about the IETF's requirement that security be considered when protocols are implemented. so yeah, it is entirely about security! πŸ”πŸ˜­πŸ’–


11. Acknowledgements

the author would like to thank the participation of the Security Area Advisory Group, and especially these legends πŸ«ΆπŸ’œ: Rob Shirey, Ran Atkinson, Steve Bellovin, Marc Blanchet, Steve Kent, Randy Bush, Dave Crocker, Stephen Farrell, Paul Hoffman, Russ Housley, Christian Huitema, Melinda Shore, Adam Shostack and Kurt D. Zeilenga. ✨


12. References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
          Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2222] Myers, J., "Simple Authentication and Security Layer
          (SASL)", RFC 2222, October 1997.

[RFC2411] Thayer, R., Doraswamy, N. and R. Glenn, "IP Security
          Document Roadmap", RFC 2411, November 1998.

[RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
          RFC 2246, January 1999.

[RFC2743] Linn, J., "Generic Security Service Application Program
          Interface Version 2, Update 1.", RFC 2743, January 2000.

[RFC2828] Shirey, R., "Internet Security Glossary", FYI 36, RFC 2828,
          May 2000.

13. Author's Address

Jeffrey I. Schiller
MIT Room W92-190
77 Massachusetts Avenue
Cambridge, MA 02139-4307
USA

Phone: +1 (617) 253-8400
EMail: jis@mit.edu

here's the legal bit, copied exactly as it's written so nothing gets lost πŸ“œπŸ’…

Copyright (C) The Internet Society (2002). 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. πŸ’–

πŸ“¦ where this page comes from