[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: REMINDER: RADEXT WG Last call on "Extended RADIUS Attributes"
Bernard Aboba wrote:
> This is a reminder of the RADEXT WG Last Call on "Extended
> RADIUS Attributes", prior to requesting that the IESG publish it as a Proposed Standard.
Submitter name: Alan DeKok
Submitter email address: aland@deployingradius.com
Date first submitted: Aug 14 2008
Reference:
Document: [EXTEN]
Comment type: T
Priority: 2
Section 4:
...
o The final octet of the header contains the More flag and Tag
field. If the one bit More flag is set (1) this indicates that
the encapsulated TLV is continued in the following Extended
Attribute; if the More flag is clear (0) then all of the
encapsulated TLVs fit into the current Extended Attribute. The
More flag MUST NOT be set if the Extended Attribute contains more
than one TLV.
To be clear: this means that the Extended-Attribute can encapsulate
multiple TLV's if they're short, or only one TLV if it's long.
Section 5:
M (More)
The More Flag is one (1) bit in length and MUST be present. When
a value to be transmitted exceeds 246 octets in length it is
fragmented over two or more Extended Attributes. If the More Flag
is set (1), this indicates that the Value field of the Extended
Attribute contains a fragment of a larger value, which is
continued in the next Extended Attribute of the same Ext-Type.
Can we add a MUST? i.e. If the More Flag is set, the next attribute
MUST be an Extended-Attribute of the same Extended-Type.
Inserting *other* attributes in between a fragemented attribute is
annoying and pointless. It's better to forbid this, and to declare that
packets failing this test are malformed, and SHOULD be silently discarded.
Ext-Type
Two (2) octets. Up-to-date values of the Ext-Type field are
specified in the most recent "Assigned Numbers" [IANA]. Values
XXXX-YYYY are reserved.
I would suggest reserving the top 1K: 64512-65535
6. Examples
Consider an attribute called Foo of type String. Foo has been
allocated an Extended-Type 0f 257 by IANA. The following figure
shows the encoding of Foo(0,4) = "Hello":
What does "Foo(0,4)" mean? This is the first reference in that
document to that attribute naming scheme. (I presume it's an attribute
naming scheme). Why not just refer to it as "Foo"?
The diagram also has Ext-Type (16 bits) of 257 split between two bytes
(8 bits) of 0 and 257. I welcome the novel ability to count to 257 in
an 8-bit field, but perhaps this could be corrected. :)
The examples should use numbers from the reserved space (i.e. 64512),
and not from the IANA allocated space (257). The examples also use the
attribute name "Foo" multiple times. It should instead use unique names.
Figure 2 below
illustrates the encoding of the first 7 octets of the first Extended
Attribute (Foo(0,6) = "Hello W"), while Figure 3 shows how the second
attribute (Foo(246,250) = "e end.") is encoded.
Hmm... So Foo(N,M) is a reference to the fragments? I don't see why
this is necessary. We don't do it for EAP-Message. I would suggest
just referring to it as "Foo", and "the first fragment (octets 0 through
245)", and "the second fragment (octets 246 through 250).
...
Consider the following structure:
struct
Integer a;
String b;
Integer c;
endStruct
What syntax is this? I think I understand it, but I'm not sure
everyone will come to a shared understanding. Maybe instead the example
can be given by reference to existing RADIUS data types. e.g. A
structure of RADIUS data types (integer, text, integer) would previously
have to be encoded as three separate and independent attributes. Here,
it can be encoded as 3 attributes sharing a common tag.
Reading the rest of the example, I find the b(4,5) syntax very
awkward. I suggest discarding it, and just referring to the diagrams.
The examples could also given broken-out hex encoding of the
attributes, which may be clearer than the ASCII art diagrams. e.g.
1a 0f 00 00 00 00 00 01 01 08 48 65 6c 6c 6f
7. Security Considerations
I suggest adding a note that a new attribute encoding is an
opportunity for buffer overflows, inadequate checks, etc. Implementors
SHOULD take care to validate the lengths, etc. before decoding the
contents of the attributes.
8. IANA Considerations
...
It also requires that IANA set up a new registry for the RADIUS
Extended Attribute Types.
I suggest leaving the first 0..255 attributes as unallocated, in order
to avoid confusion with legacy RADIUS attributes.
9. Open Issues
What is the numbering scheme for attributes that will be used by RFC
writers going forward? For example today we write user-name(1).
Uh... We do? I've never seen that in an RFC. I suggest deleting this
section entirely.
Alan DeKok.
--
to unsubscribe send a message to radiusext-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://psg.com/lists/radiusext/>