RFC 4849

RADIUS Filter Rule Attribute

๐Ÿ“… published April 2007, from ietf

RADIUS Filter Rule Attribute ๐ŸŽ€

Part 1 of 2 ๐Ÿฆ‹

okay bestie, this is RFC 4849 ๐Ÿ“œ and it's giving main character spec energy โœจ It came out in April 2007 from the Network Working Group. The authors are P. Congdon and M. Sanchez (both at ProCurve Networking by HP) and B. Aboba (at Microsoft Corporation). It's a Standards Track document, and it doesn't list any RFCs it obsoletes or updates ๐Ÿ’…

Status of This Memo

This document specifies an Internet standards track protocol for the Internet community, and asks for discussion and suggestions for improvements. For the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited ๐ŸŒธ

Copyright (C) The IETF Trust (2007) ๐Ÿ”ฅ

Abstract

okay so here's the tea ๐Ÿ“ RFC 2865 defines the Filter-Id attribute, but it needs the Network Access Server (NAS) to be pre-populated with the filters you want. If the server operator doesn't know which filters are already pre-populated, it's super useful to spell the filter rules out explicitly. This document defines the NAS-Filter-Rule attribute inside the Remote Authentication Dial In User Service (RADIUS) ๐Ÿ’– It's based on the Diameter NAS-Filter-Rule Attribute Value Pair (AVP) from RFC 4005, and on the IPFilterRule syntax from RFC 3588 โœจ

Table of Contents

   1. Introduction ....................................................2
      1.1. Terminology ................................................2
      1.2. Requirements Language ......................................3
      1.3. Attribute Interpretation ...................................3
   2. NAS-Filter-Rule Attribute .......................................3
   3. Table of Attributes .............................................5
   4. Diameter Considerations .........................................5
   5. IANA Considerations .............................................6
   6. Security Considerations .........................................6
   7. References ......................................................7
      7.1. Normative References .......................................7
      7.2. Informative References .....................................7
   8. Acknowledgments .................................................7

1. Introduction ๐ŸŒˆ

this doc defines the NAS-Filter-Rule attribute inside RADIUS ๐Ÿงš It has the same functionality as the Diameter NAS-Filter-Rule AVP (400) from [RFC4005], Section 6.6, and the same syntax as an IPFilterRule from [RFC3588], Section 4.3. This attribute may prove useful for provisioning filter rules ๐Ÿซถ

Like, [RFC2865], Section 5.11, defines the Filter-Id attribute (11), but it needs the Network Access Server (NAS) to be pre-populated with the desired filters. When the server operator doesn't know which filters have been pre-populated, it's useful to specify filter rules explicitly ๐Ÿ’…

1.1. Terminology

this document uses these terms, bestie ๐Ÿ“–

Network Access Server (NAS)

A device that provides an access service for a user to a network. โœจ

RADIUS server

A RADIUS authentication server is an entity that provides an authentication service to a NAS. ๐Ÿฆ‹

RADIUS proxy

A RADIUS proxy acts as an authentication server to the NAS, and a RADIUS client to the RADIUS server. ๐ŸŒธ

1.2. Requirements Language

okay this part is the key-word rulebook ๐Ÿ”‘ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. ๐ŸŽ€

1.3. Attribute Interpretation

okay this section is where it gets serious ๐Ÿ˜ญ If a NAS that follows this spec gets an Access-Accept packet with a NAS-Filter-Rule attribute it can't apply, it MUST act as though it had received an Access-Reject ๐Ÿ’€

[RFC3576] says that a NAS receiving a Change of Authorization Request (CoA-Request) has to reply with a CoA-NAK if the Request contains an unsupported attribute. It is RECOMMENDED that an Error-Cause attribute with value set to "Unsupported Attribute" (401) be included in the CoA-NAK ๐Ÿ™ˆ

As noted in [RFC3576], authorization changes are atomic. So this situation does not end the session, and the pre-existing configuration stays unchanged ๐Ÿซถ Because of that, no accounting packets should be generated because of the CoA-Request ๐Ÿ’œ


2. NAS-Filter-Rule Attribute ๐Ÿงš

Description

this attribute carries the filter rules to apply for this user ๐Ÿ’– Zero or more NAS-Filter-Rule attributes MAY be sent in Access-Accept, CoA-Request, or Accounting-Request packets โœจ

The NAS-Filter-Rule attribute isn't meant to be used at the same time as any other filter rule attribute, including Filter-Id (11) and NAS-Traffic-Rule [Traffic] attributes ๐Ÿ™…โ€โ™€๏ธ NAS-Filter-Rule and NAS-Traffic-Rule attributes MUST NOT appear in the same RADIUS packet. If a NAS-Traffic-Rule attribute is present, a NAS implementing this specification MUST silently discard any NAS-Filter-Rule attributes that are present ๐Ÿ˜ญ Filter-Id and NAS-Filter-Rule attributes SHOULD NOT appear in the same RADIUS packet.

Here's the messy part ๐Ÿ™ƒ RFC 4005 has no well-defined precedence rules for combining Filter-Id and NAS-Filter-Rule attributes into a single rule set. So the behavior of NASes that receive both attributes is undefined, and a RADIUS server implementation therefore cannot assume a consistent behavior ๐Ÿ’€

When a RADIUS packet includes multiple NAS-Filter-Rule attributes, the String fields of those attributes get concatenated to form one set of filter rules ๐ŸŒˆ As noted in [RFC2865], Section 2.3, "the forwarding server MUST NOT change the order of any attributes of the same type", so RADIUS proxies won't reorder NAS-Filter-Rule attributes ๐Ÿฆ‹

Here's the format summary. The fields are sent from left to right ๐Ÿ‘‘

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |      String...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Type

92 ๐Ÿ“

Length

=3 ๐ŸŒธ

String

The String field is one or more octets. It holds filter rules in the IPFilterRule syntax from [RFC3588], Section 4.3, with individual filter rules separated by a NUL (0x00) ๐Ÿง A NAS-Filter-Rule attribute may contain a partial rule, one rule, or more than one rule. Filter rules may continue across attribute boundaries, so implementations cannot assume that individual filter rules begin or end on attribute boundaries ๐Ÿ™ˆ

The set of NAS-Filter-Rule attributes SHOULD be created by concatenating the individual filter rules, separated by a NUL (0x00) octet. The resulting data should be split on 253-octet boundaries to get a set of NAS-Filter-Rule attributes โœจ On reception, the individual filter rules are determined by concatenating the contents of all NAS-Filter-Rule attributes, then splitting the individual filter rules on the NUL octet (0x00) as a delimiter ๐Ÿ’–

Part 2 is coming up next, covering Section 3 onward ๐Ÿฆ‹

6. Security Considerations ๐Ÿ”

Okay so bestie, this section is SERIOUS but also kind of iconic. ๐Ÿ’… RADIUS is used for authentication, authorization and accounting, and the threats and security issues for that are described in [RFC3579] and [RFC3580]. Roaming security stuff lives in [RFC2607]. Go read those if you want the full tea. ๐Ÿต

This spec adds a new attribute that can ride along in existing RADIUS packets, and those packets are protected the way [RFC3579] and [RFC3576] describe. โœจ Those docs go way deeper, so check them out, periodt. ๐Ÿฆ‹

Here's the big-brain part ๐Ÿง : RADIUS and Diameter security is all about stopping an attacker from spoofing packets or messing with them in transit. ๐Ÿ›ก๏ธ BUT it does NOT stop an authorized RADIUS/Diameter server or proxy from modifying, inserting, or removing attributes on purpose. ๐Ÿ˜ญ Like, a proxy could strip out filter attributes, and then a user might get network access without the right filters. Yikes ๐Ÿ’€. And if a proxy also tampered with accounting packets, that change wouldn't show up in the accounting server logs. Not me being dramatic, it's literally a real risk. ๐Ÿ™ˆ

Another lowkey scary thing: RADIUS doesn't support capability negotiation yet, so a RADIUS server can't automatically figure out whether a NAS supports the NAS-Filter-Rule attribute. ๐Ÿคทโ€โ™€๏ธ A legacy NAS that doesn't follow this spec might silently throw the NAS-Filter-Rule attribute away while still letting the user onto the network. Result? Users can end up getting unfiltered access they shouldn't have. ๐Ÿ˜ฑ So the bottom line is that the NAS-Filter-Rule attribute SHOULD only be sent to a NAS that is known to support it. ๐Ÿ‘‘ That's the rule, bestie. ๐Ÿซถ

7. References ๐Ÿ“š

7.1. Normative References

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

[RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson,
          "Remote Authentication Dial In User Service (RADIUS)", RFC
          2865, June 2000.

[RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J.
          Arkko, "Diameter Base Protocol", RFC 3588, September 2003.

[RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton, "Diameter
          Network Access Server Application", RFC 4005, August 2005.

7.2. Informative References

[RFC2607] Aboba, B. and J. Vollbrecht, "Proxy Chaining and Policy
          Implementation in Roaming", RFC 2607, June 1999.

[RFC3576] Chiba, M., Dommety, G., Eklund, M., Mitton, D., and B.
          Aboba, "Dynamic Authorization Extensions to Remote
          Authentication Dial In User Service (RADIUS)", RFC 3576,
          July 2003.

[RFC3579] Aboba, B. and P. Calhoun, "RADIUS (Remote Authentication
          Dial In User Service) Support For Extensible Authentication
          Protocol (EAP)", RFC 3579, September 2003.

[RFC3580] Congdon, P., Aboba, B., Smith, A., Zorn, G., and J. Roese,
          "IEEE 802.1X Remote Authentication Dial In User Service
          (RADIUS) Usage Guidelines", RFC 3580, September 2003.

[Traffic] Congdon, P., Sanchez, M., Lior, A., Adrangi, F., and B.
          Aboba, "RADIUS Attributes for Filtering and Redirection",
          Work in Progress, March 2007.

8. Acknowledgments ๐Ÿซถ

The authors want to give a shoutout to Emile Bergen, Alan DeKok, Greg Weber, Glen Zorn, Pasi Eronen, David Mitton, and David Nelson for helping out with this document. ๐Ÿ’– Thank you, queens. ๐Ÿ‘‘

Authors' Addresses ๐Ÿ“ฎ

Paul Congdon
Hewlett Packard Company
ProCurve Networking by HP
8000 Foothills Blvd, M/S 5662
Roseville, CA  95747

EMail: paul.congdon@hp.com
Phone: +1 916 785 5753
Fax:   +1 916 785 8478


Mauricio Sanchez
Hewlett Packard Company
ProCurve Networking by HP
8000 Foothills Blvd, M/S 5559
Roseville, CA  95747

EMail: mauricio.sanchez@hp.com
Phone: +1 916 785 1910
Fax:   +1 916 785 1815


Bernard Aboba
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052

EMail: bernarda@microsoft.com
Phone: +1 425 706 6605
Fax:   +1 425 936 7329
Copyright (C) The IETF Trust (2007).

This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.

This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

Intellectual Property ๐Ÿ”

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at:

http://www.ietf.org/ipr

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at:

ietf-ipr@ietf.org

Acknowledgement ๐Ÿ’œ

Funding for the RFC Editor function is currently provided by the Internet Society. ๐ŸŒธ

๐Ÿ“ฆ where this page comes from