Fix call to otp_write
[freeradius.git] / doc / rfc / rfc5580.txt
1
2
3
4
5
6
7 Network Working Group                                 H. Tschofenig, Ed.
8 Request for Comments: 5580                        Nokia Siemens Networks
9 Category: Standards Track                                     F. Adrangi
10                                                                    Intel
11                                                                 M. Jones
12                                                                  A. Lior
13                                                              Bridgewater
14                                                                 B. Aboba
15                                                    Microsoft Corporation
16                                                              August 2009
17
18
19             Carrying Location Objects in RADIUS and Diameter
20
21 Abstract
22
23    This document describes procedures for conveying access-network
24    ownership and location information based on civic and geospatial
25    location formats in Remote Authentication Dial-In User Service
26    (RADIUS) and Diameter.
27
28    The distribution of location information is a privacy-sensitive task.
29    Dealing with mechanisms to preserve the user's privacy is important
30    and is addressed in this document.
31
32 Status of This Memo
33
34    This document specifies an Internet standards track protocol for the
35    Internet community, and requests discussion and suggestions for
36    improvements.  Please refer to the current edition of the "Internet
37    Official Protocol Standards" (STD 1) for the standardization state
38    and status of this protocol.  Distribution of this memo is unlimited.
39
40 Copyright Notice
41
42    Copyright (c) 2009 IETF Trust and the persons identified as the
43    document authors.  All rights reserved.
44
45    This document is subject to BCP 78 and the IETF Trust's Legal
46    Provisions Relating to IETF Documents in effect on the date of
47    publication of this document (http://trustee.ietf.org/license-info).
48    Please review these documents carefully, as they describe your rights
49    and restrictions with respect to this document.
50
51
52
53
54
55
56
57
58 Tschofenig, et al.          Standards Track                     [Page 1]
59 \f
60 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
61
62
63 Table of Contents
64
65    1. Introduction ....................................................3
66    2. Terminology .....................................................3
67    3. Delivery Methods for Location Information .......................3
68       3.1. Location Delivery Based on Out-of-Band Agreements ..........4
69       3.2. Location Delivery Based on Initial Request .................5
70       3.3. Location Delivery Based on Mid-Session Request .............6
71       3.4. Location Delivery in Accounting Messages ..................10
72    4. Attributes .....................................................11
73       4.1. Operator-Name Attribute ...................................12
74       4.2. Location-Information Attribute ............................14
75       4.3. Location-Data Attribute ...................................16
76            4.3.1. Civic Location Profile .............................17
77            4.3.2. Geospatial Location Profile ........................17
78       4.4. Basic-Location-Policy-Rules Attribute .....................18
79       4.5. Extended-Location-Policy-Rules Attribute ..................20
80       4.6. Location-Capable Attribute ................................21
81       4.7. Requested-Location-Info Attribute .........................23
82    5. Table of Attributes ............................................28
83    6. Diameter RADIUS Interoperability ...............................30
84    7. Security Considerations ........................................31
85       7.1. Communication Security ....................................31
86       7.2. Privacy Considerations ....................................32
87            7.2.1. RADIUS Client ......................................33
88            7.2.2. RADIUS Server ......................................34
89            7.2.3. RADIUS Proxy .......................................34
90       7.3. Identity Information and Location Information .............34
91    8. IANA Considerations ............................................36
92       8.1. New Registry: Operator Namespace Identifier ...............36
93       8.2. New Registry: Location Profiles ...........................37
94       8.3. New Registry: Location-Capable Attribute ..................38
95       8.4. New Registry: Entity Types ................................39
96       8.5. New Registry: Privacy Flags ...............................39
97       8.6. New Registry: Requested-Location-Info Attribute ...........39
98    9. Acknowledgments ................................................40
99    10. References ....................................................42
100       10.1. Normative References .....................................42
101       10.2. Informative References ...................................42
102    Appendix A.  Matching with GEOPRIV Requirements ...................45
103      A.1.  Distribution of Location Information at the User's
104            Home Network ..............................................45
105      A.2.  Distribution of Location Information at the Visited
106            Network ...................................................46
107      A.3.  Requirements Matching .....................................47
108
109
110
111
112
113
114 Tschofenig, et al.          Standards Track                     [Page 2]
115 \f
116 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
117
118
119 1.  Introduction
120
121    This document defines attributes within RADIUS and Diameter that can
122    be used to convey location-related information within authentication
123    and accounting exchanges.
124
125    Location information may be useful in a number of scenarios.
126    Wireless networks (including wireless LAN) are being deployed in
127    public places such as airports, hotels, shopping malls, and coffee
128    shops by a diverse set of operators such as cellular network
129    operators, Wireless Internet Service Providers (WISPs), and fixed
130    broadband operators.  In these situations, the home network may need
131    to know the location of the user in order to enable location-aware
132    billing, location-aware authorization, or other location-aware
133    services.  Location information can also prove useful in other
134    situations (such as wired networks) where operator-network ownership
135    and location information may be needed by the home network.
136
137    In order to preserve user privacy, location information needs to be
138    protected against unauthorized access and distribution.  Requirements
139    for access to location information are defined in [RFC3693].  The
140    model includes a Location Generator (LG) that creates location
141    information, a Location Server (LS) that authorizes access to
142    location information, a Location Recipient (LR) that requests and
143    receives information, and a Rule Maker (RM) that provides
144    authorization policies to the LS, which enforces access-control
145    policies on requests to location information.  In Appendix A, the
146    requirements for a GEOPRIV using protocol [RFC3693] are compared to
147    the functionality provided by this document.
148
149 2.  Terminology
150
151    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
152    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
153    document are to be interpreted as described in [RFC2119].
154
155    RADIUS-specific terminology is borrowed from [RFC2865] and [RFC2866].
156
157    Terminology related to privacy issues, location information, and
158    authorization policy rules is taken from [RFC3693].
159
160 3.  Delivery Methods for Location Information
161
162    The following exchanges show how location information is conveyed in
163    RADIUS.  In describing the usage scenarios, we assume that privacy
164    policies allow location to be conveyed in RADIUS; however, as noted
165    in Section 6, similar exchanges can also take place within Diameter.
166    Privacy issues are discussed in Section 7.2.
167
168
169
170 Tschofenig, et al.          Standards Track                     [Page 3]
171 \f
172 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
173
174
175 3.1.  Location Delivery Based on Out-of-Band Agreements
176
177    Figure 1 shows an example message flow for delivering location
178    information during the network-access authentication and
179    authorization procedure.  Upon a network-authentication request from
180    an access-network client, the Network Access Server (NAS) submits a
181    RADIUS Access-Request message that contains Location-Information
182    Attributes among other required attributes.  In this scenario,
183    location information is attached to the Access-Request message
184    without an explicit request from the RADIUS server.  Note that such
185    an approach with a prior agreement between the RADIUS client and the
186    RADIUS server is only applicable in certain environments, such as in
187    situations where the RADIUS client and server are within the same
188    administrative domain.  The Basic-Location-Policy-Rules Attribute is
189    populated based on the defaults described in Section 4.4, unless it
190    has been explicitly configured otherwise.
191
192     +---------+             +---------+                   +---------+
193     |         |             | Network |                   |  RADIUS |
194     | User    |             | Access  |                   |  Server |
195     |         |             | Server  |                   |         |
196     +---------+             +---------+                   +---------+
197         |                       |                              |
198         | Authentication phase  |                              |
199         | begin                 |                              |
200         |---------------------->|                              |
201         |                       |                              |
202         |                       | Access-Request               |
203         |                       | + Location-Information       |
204         |                       | + Location-Data              |
205         |                       | + Basic-Location-Policy-Rules|
206         |                       | + Operator-Name              |
207         |                       |----------------------------->|
208         |                       |                              |
209         |                       | Access-Accept                |
210         |                       |<-----------------------------|
211         | Authentication        |                              |
212         | Success               |                              |
213         |<----------------------|                              |
214         |                       |                              |
215
216         Figure 1: Location Delivery Based on Out-of-Band Agreements
217
218
219
220
221
222
223
224
225
226 Tschofenig, et al.          Standards Track                     [Page 4]
227 \f
228 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
229
230
231 3.2.  Location Delivery Based on Initial Request
232
233    If the RADIUS client provides a Location-Capable Attribute in the
234    Access-Request, then the RADIUS server MAY request location
235    information from the RADIUS client if it requires that information
236    for authorization and if location information was not provided in the
237    Access-Request.  This exchange is shown in Figure 2.  The inclusion
238    of the Location-Capable Attribute in an Access-Request message
239    indicates that the NAS is capable of providing location data in
240    response to an Access-Challenge.  The subsequent Access-Challenge
241    message sent from the RADIUS server to the NAS provides a hint
242    regarding the type of desired Location-Information Attributes.  The
243    NAS treats the Basic-Location-Policy-Rules and Extended-Location-
244    Policy-Rules Attributes as opaque data (e.g., it echoes these rules
245    provided by the server within the Access-Challenge back in the
246    Access-Request).  In the shown message flow, the location attributes
247    are then provided in the subsequent Access-Request message.  When
248    evaluating this Access-Request message, the authorization procedure
249    at the RADIUS server might be based on a number of criteria,
250    including the newly defined attributes listed in Section 4.
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282 Tschofenig, et al.          Standards Track                     [Page 5]
283 \f
284 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
285
286
287    +---------+             +---------+                       +---------+
288    |         |             | Network |                       |  RADIUS |
289    | User    |             | Access  |                       |  Server |
290    |         |             | Server  |                       |         |
291    +---------+             +---------+                       +---------+
292        |                       |                                  |
293        | Authentication phase  |                                  |
294        | begin                 |                                  |
295        |---------------------->|                                  |
296        |                       |                                  |
297        |                       | Access-Request                   |
298        |                       | + Location-Capable               |
299        |                       |--------------------------------->|
300        |                       |                                  |
301        |                       | Access-Challenge                 |
302        |                       |  + Basic-Location-Policy-Rules   |
303        |                       |  + Extended-Location-Policy-Rules|
304        |                       |  + Requested-Location-Info       |
305        |                       |<---------------------------------|
306        |                       |                                  |
307        |                       | Access-Request                   |
308        |                       |  + Location-Information          |
309        |                       |  + Location-Data                 |
310        |                       |  + Basic-Location-Policy-Rules   |
311        |                       |  + Extended-Location-Policy-Rules|
312        |                       |--------------------------------->|
313        |                       |                                  |
314        :                       :                                  :
315        :       Multiple Protocol Exchanges to perform             :
316        :    Authentication, Key Exchange, and Authorization       :
317        :                  ...continued...                         :
318        :                       :                                  :
319        |                       |                                  |
320        |                       | Access-Accept                    |
321        |                       |<---------------------------------|
322        | Authentication        |                                  |
323        | Success               |                                  |
324        |<----------------------|                                  |
325        |                       |                                  |
326
327            Figure 2: Location Delivery Based on Initial Request
328
329 3.3.  Location Delivery Based on Mid-Session Request
330
331    The on-demand, mid-session location-delivery method utilizes the
332    Change-of-Authorization Request (CoA-Request) message and the CoA-NAK
333    (CoA-Negative Acknowledgement), defined in [RFC5176].  At any time
334
335
336
337
338 Tschofenig, et al.          Standards Track                     [Page 6]
339 \f
340 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
341
342
343    during the session, the Dynamic Authorization Client MAY send a CoA-
344    Request containing session-identification attributes to the NAS
345    (i.e., Dynamic Authorization Server).
346
347    In order to enable the on-demand, mid-session location-delivery
348    method, the RADIUS server MUST return an instance of the Requested-
349    Location-Info Attribute with the 'FUTURE_REQUESTS' flag set and
350    instances of the Basic-Location-Policy-Rules and Extended-Location-
351    Policy-Rules Attributes in the Access-Accept message for the session.
352    Upon receipt of a CoA-Request message containing a Service-Type
353    Attribute with value "Authorize Only" for the same session, the NAS
354    MUST include location information and echo the previously received
355    Basic-Location-Policy-Rules and Extended-Location-Policy-Rules
356    Attributes in the subsequent Access-Request message.
357
358    Upon receiving the Access-Request message containing the Service-Type
359    Attribute with a value of Authorize-Only from the NAS, the RADIUS
360    server responds with either an Access-Accept or an Access-Reject
361    message.
362
363    The use of dynamic authorization [RFC5176] is necessary when location
364    information is needed on-demand and cannot be obtained from
365    accounting information in a timely fashion.
366
367    Figure 3 shows the above-described approach graphically.
368
369   +---------------+                        +---------------+    +------+
370   | Dynamic       |                        | Dynamic       |    |RADIUS|
371   | Authorization |                        | Authorization |    |Server|
372   | Server/NAS    |                        | Client        |    |      |
373   +---------------+                        +---------------+    +------+
374       |                                             |              |
375       |  Access-Request                             |              |
376       |  + Location-Capable                         |              |
377       |----------------------------------------------------------->|
378       |                                             |              |
379       |  Access-Challenge                           |              |
380       |   + Basic-Location-Policy-Rules             |              |
381       |   + Extended-Location-Policy-Rules          |              |
382       |   + Requested-Location-Info                 |              |
383       |<-----------------------------------------------------------|
384       |                                             |              |
385       |  Access-Request                             |              |
386       |   + Location-Information                    |              |
387       |   + Location-Data                           |              |
388       |   + Basic-Location-Policy-Rules             |              |
389       |   + Extended-Location-Policy-Rules          |              |
390       |----------------------------------------------------------->|
391
392
393
394 Tschofenig, et al.          Standards Track                     [Page 7]
395 \f
396 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
397
398
399       |                                             |              |
400       |                                             |              |
401       :                                             |              :
402       :       Multiple Protocol Exchanges to perform               :
403       :    Authentication, Key Exchange, and Authorization         :
404       :                  ...continued...            |              :
405       :                                             |              :
406       |                                             |              |
407       |                                             |              |
408       |  Access-Accept                              |              |
409       |      + Requested-Location-Info              |              |
410                (FUTURE_REQUESTS,...)                |              |
411       |      + Basic-Location-Policy-Rules          |              |
412       |      + Extended-Location-Policy-Rules       |              |
413       |<-----------------------------------------------------------|
414       |                                             |              |
415       :                                             :              :
416       :                <<Some time later>>          :              :
417       :                                             :              :
418       |                                             |              |
419       | CoA + Service-Type "Authorize Only" + State |              |
420       |<--------------------------------------------|              |
421       |                                             |              |
422       |  CoA NAK + Service-Type "Authorize Only"    |              |
423       |          + State                            |              |
424       |          + Error-Cause  "Request Initiated" |              |
425       |-------------------------------------------->|              |
426       |                                             |              |
427       |  Access-Request                             |              |
428       |          + Service-Type "Authorize Only"    |              |
429       |          + State                            |              |
430       |          + Location-Information             |              |
431       |          + Location-Data                    |              |
432       |          + Basic-Location-Policy-Rules      |              |
433       |          + Extended-Location-Policy-Rules   |              |
434       |----------------------------------------------------------->|
435       |  Access-Accept                              |              |
436       |<-----------------------------------------------------------|
437       |                                             |              |
438
439                Figure 3: Location Delivery Based on CoA with
440                        Service-Type 'Authorize Only'
441
442    When the Dynamic Authorization Client wants to change the values of
443    the requested location information, or set the values of the
444    requested location information for the first time, it may do so
445    without triggering a reauthorization.  Assuming that the NAS had
446    previously sent an Access-Request containing a Location-Capable
447
448
449
450 Tschofenig, et al.          Standards Track                     [Page 8]
451 \f
452 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
453
454
455    Attribute, the Dynamic Authorization Client (DAC) can send a CoA-
456    Request to the NAS without a Service-Type Attribute, but include the
457    NAS identifiers and session identifiers as per [RFC5176] and the
458    Requested-Location-Info, Basic-Location-Policy-Rules, and Extended-
459    Location-Policy-Rules Attributes.  The Requested-Location-Info,
460    Basic-Location-Policy-Rules, and Extended-Location-Policy-Rules
461    Attributes MUST NOT be used for session identification.
462
463    Figure 4 shows this approach graphically.
464
465   +---------------+                        +---------------+    +------+
466   | Dynamic       |                        | Dynamic       |    |RADIUS|
467   | Authorization |                        | Authorization |    |Server|
468   | Server/NAS    |                        | Client        |    |      |
469   +---------------+                        +---------------+    +------+
470       |                                             |              |
471       |                                             |              |
472       |  Access-Request                             |              |
473       |  + Location-Capable                         |              |
474       |----------------------------------------------------------->|
475       |                                             |              |
476       |  Access-Challenge                           |              |
477       |   + Basic-Location-Policy-Rules             |              |
478       |   + Extended-Location-Policy-Rules          |              |
479       |   + Requested-Location-Info                 |              |
480       |<-----------------------------------------------------------|
481       |                                             |              |
482       |  Access-Request                             |              |
483       |   + Location-Information                    |              |
484       |   + Location-Data                           |              |
485       |   + Basic-Location-Policy-Rules             |              |
486       |   + Extended-Location-Policy-Rules          |              |
487       |----------------------------------------------------------->|
488       |                                             |              |
489       |                                             |              |
490       :                                             |              :
491       :       Multiple Protocol Exchanges to perform               :
492       :    Authentication, Key Exchange, and Authorization         :
493       :                  ...continued...            |              :
494       :                                             |              :
495       |                                             |              |
496       |                                             |              |
497       |  Access-Accept                              |              |
498       |      + Requested-Location-Info              |              |
499       |      + Basic-Location-Policy-Rules          |              |
500       |      + Extended-Location-Policy-Rules       |              |
501       |<-----------------------------------------------------------|
502
503
504
505
506 Tschofenig, et al.          Standards Track                     [Page 9]
507 \f
508 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
509
510
511       |                                             |              |
512       :                                             :              :
513       :                <<Some time later>>          :              :
514       :                                             :              :
515       |                                             |              |
516       |  CoA                                        |              |
517       |      + Requested-Location-Info              |              |
518       |      + Basic-Location-Policy-Rules          |              |
519       |      + Extended-Location-Policy-Rules       |              |
520       |<--------------------------------------------|              |
521       |                                             |              |
522       |  CoA ACK                                    |              |
523       |-------------------------------------------->|              |
524       |                                             |              |
525       :                                             :              :
526       :           <<Further exchanges later>>       :              :
527       :                                             :              :
528
529                  Figure 4: Location Delivery Based on CoA
530
531 3.4.  Location Delivery in Accounting Messages
532
533    Location information may also be reported in accounting messages.
534    Accounting messages are generated when the session starts, when the
535    session stops, and periodically during the lifetime of the session.
536    Accounting messages may also be generated when the user roams during
537    handoff.
538
539    Accounting information may be needed by the billing system to
540    calculate the user's bill.  For example, there may be different
541    tariffs or tax rates applied based on the location.
542
543    If the RADIUS server needs to obtain location information in
544    accounting messages, then it needs to include a Requested-Location-
545    Info Attribute with the Access-Accept message.  The Basic-Location-
546    Policy-Rules and the Extended-Location-Policy-Rules Attributes are to
547    be echoed in the Accounting-Request if indicated in the Access-
548    Accept.
549
550    Figure 5 shows the message exchange.
551
552
553
554
555
556
557
558
559
560
561
562 Tschofenig, et al.          Standards Track                    [Page 10]
563 \f
564 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
565
566
567    +---------+             +---------+                       +---------+
568    |         |             | Network |                       | RADIUS  |
569    | User    |             | Access  |                       | Server  |
570    |         |             | Server  |                       |         |
571    +---------+             +---------+                       +---------+
572        |                       |                                  |
573        :                       :                                  :
574        :          Initial Protocol Interaction                    :
575        :          (details omitted)                               :
576        :                       :                                  :
577        |                       |                                  |
578        |                       | Access-Accept                    |
579        |                       |  + Requested-Location-Info       |
580        |                       |  + Basic-Location-Policy-Rules   |
581        |                       |  + Extended-Location-Policy-Rules|
582        |                       |<---------------------------------|
583        | Authentication        |                                  |
584        | Success               |                                  |
585        |<----------------------|                                  |
586        |                       |                                  |
587        |                       | Accounting-Request               |
588        |                       |  + Location-Information          |
589        |                       |  + Location-Data                 |
590        |                       |  + Basic-Location-Policy-Rules   |
591        |                       |  + Extended-Location-Policy-Rules|
592        |                       |--------------------------------->|
593        |                       |                                  |
594        |                       | Accounting-Response              |
595        |                       |<---------------------------------|
596        |                       |                                  |
597
598             Figure 5: Location Delivery in Accounting Messages
599
600 4.  Attributes
601
602    It is important to note that the location-specific parts of the
603    attributes defined below are not meant to be processed by the RADIUS
604    server.  Instead, a location-server-specific component used in
605    combination with the RADIUS server is responsible for receiving,
606    processing, and further distributing location information (in
607    combination with proper access control and privacy protection).  As
608    such, from a RADIUS server point of view, location information is
609    treated as opaque data.
610
611
612
613
614
615
616
617
618 Tschofenig, et al.          Standards Track                    [Page 11]
619 \f
620 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
621
622
623 4.1.  Operator-Name Attribute
624
625    This attribute carries the operator namespace identifier and the
626    operator name.  The operator name is combined with the namespace
627    identifier to uniquely identify the owner of an access network.  The
628    value of the Operator-Name is a non-NULL terminated text whose length
629    MUST NOT exceed 253 bytes.
630
631    The Operator-Name Attribute SHOULD be sent in Access-Request and
632    Accounting-Request messages where the Acc-Status-Type is set to
633    Start, Interim, or Stop.
634
635    A summary of the Operator-Name Attribute is shown below.
636
637       0                   1                   2                   3
638       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
639      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
640      |     Type      |    Length     |            Text              ...
641      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
642      |       Text (cont.)                                           ...
643      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
644
645    Type:
646
647       126 - Operator-Name
648
649    Length:
650
651       >= 4
652
653    Text:
654
655       The format is shown below.  The data type of this field is a text.
656       All fields are transmitted from left to right:
657
658       0                   1                   2                   3
659       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
660      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
661      | Namespace ID  | Operator-Name                                ...
662      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
663      | Operator-Name                                                ...
664      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
665
666
667
668
669
670
671
672
673
674 Tschofenig, et al.          Standards Track                    [Page 12]
675 \f
676 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
677
678
679    Namespace ID:
680
681       The value within this field contains the operator namespace
682       identifier.  The Namespace ID value is encoded in ASCII.
683
684       Example: '1' (0x31) for REALM
685
686    Operator-Name:
687
688       The text field of variable length contains an Access Network
689       Operator Name.  This field is a RADIUS-based data type of Text.
690
691    The Namespace ID field provides information about the operator
692    namespace.  This document defines four values for this attribute,
693    which are listed below.  Additional namespace identifiers must be
694    registered with IANA (see Section 8.1) and must be associated with an
695    organization responsible for managing the namespace.
696
697    TADIG ('0' (0x30)):
698
699       This namespace can be used to indicate operator names based on
700       Transferred Account Data Interchange Group (TADIG) codes, as
701       defined in [GSM].  TADIG codes are assigned by the TADIG Working
702       Group within the Global System for Mobile Communications (GSM)
703       Association.  The TADIG code consists of two fields, with a total
704       length of five ASCII characters consisting of a three-character
705       country code and a two-character alphanumeric operator (or
706       company) ID.
707
708    REALM ('1' (0x31)):
709
710       The REALM operator namespace can be used to indicate operator
711       names based on any registered domain name.  Such names are
712       required to be unique, and the rights to use a given realm name
713       are obtained coincident with acquiring the rights to use a
714       particular Fully Qualified Domain Name (FQDN).  Since this
715       operator is limited to ASCII, any registered domain name that
716       contains non-ASCII characters must be converted to ASCII.  The
717       Punycode encoding [RFC3492] is used for this purpose.
718
719    E212 ('2' (0x32)):
720
721       The E212 namespace can be used to indicate operator names based on
722       the Mobile Country Code (MCC) and Mobile Network Code (MNC)
723       defined in [ITU212].  The MCC/MNC values are assigned by the
724       Telecommunications Standardization Bureau (TSB) within the ITU-T
725
726
727
728
729
730 Tschofenig, et al.          Standards Track                    [Page 13]
731 \f
732 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
733
734
735       and by designated administrators in different countries.  The E212
736       value consists of three ASCII digits containing the MCC, followed
737       by two or three ASCII digits containing the MNC.
738
739    ICC ('3' (0x33)):
740
741       The ICC namespace can be used to indicate operator names based on
742       International Telecommunication Union (ITU) Carrier Codes (ICC)
743       defined in [ITU1400].  ICC values are assigned by national
744       regulatory authorities and are coordinated by the
745       Telecommunication Standardization Bureau (TSB) within the ITU
746       Telecommunication Standardization Sector (ITU-T).  When using the
747       ICC namespace, the attribute consists of three uppercase ASCII
748       characters containing a three-letter alphabetic country code, as
749       defined in [ISO], followed by one to six uppercase alphanumeric
750       ASCII characters containing the ICC itself.
751
752 4.2.  Location-Information Attribute
753
754    The Location-Information Attribute MAY be sent in the Access-Request
755    message, the Accounting-Request message, both of these messages, or
756    no message.  For the Accounting-Request message, the Acc-Status-Type
757    may be set to Start, Interim, or Stop.
758
759    The Location-Information Attribute provides meta-data about the
760    location information, such as sighting time, time-to-live, location-
761    determination method, etc.
762
763    The format is shown below.
764
765       0                   1                   2                   3
766       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
767      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
768      |     Type      |    Length     |            String            ...
769      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
770      |       String (cont.)                                         ...
771      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
772
773    Type:
774
775       127 - Location-Information
776
777    Length:
778
779       >= 23
780
781
782
783
784
785
786 Tschofenig, et al.          Standards Track                    [Page 14]
787 \f
788 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
789
790
791    String:
792
793       The format is shown below.  The data type of this field is a
794       string.  All fields are transmitted from left to right:
795
796       0                   1                   2                   3
797       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
798      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
799      |   Index                       | Code          |  Entity       |
800      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
801      | Sighting Time                                                 ~
802      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
803      | Sighting Time                                                 |
804      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
805      | Time-to-Live                                                 ...
806      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
807      | Time-to-Live                                                  |
808      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
809      |   Method                                                     ...
810      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
811
812    Index (16 bits):
813
814       The 16-bit unsigned integer value allows this attribute to provide
815       information relating to the information included in the Location-
816       Data Attribute to which it refers (via the Index).
817
818    Code (8 bits):
819
820       This field indicates the content of the location profile carried
821       in the Location-Data Attribute.  Two profiles are defined in this
822       document -- namely, a civic location profile (see Section 4.3.1)
823       that uses value (0) and a geospatial location profile (see
824       Section 4.3.2) that uses the value (1).
825
826    Entity (8 bits):
827
828       This field encodes which location this attribute refers to as an
829       unsigned 8-bit integer value.  Location information can refer to
830       different entities.  This document registers two entity values,
831       namely:
832
833          Value (0) describes the location of the user's client device.
834
835          Value (1) describes the location of the RADIUS client.
836
837       The registry used for these values is established by this
838       document, see Section 8.4.
839
840
841
842 Tschofenig, et al.          Standards Track                    [Page 15]
843 \f
844 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
845
846
847    Sighting Time (64 bits)
848
849       This field indicates when the location information was accurate.
850       The data type of this field is a string, and the content is
851       expressed in the 64-bit Network Time Protocol (NTP) timestamp
852       format [RFC1305].
853
854    Time-to-Live (64 bits):
855
856       This field gives a hint regarding for how long location
857       information should be considered current.  The data type of this
858       field is a string and the content is expressed in the 64-bit
859       Network Time Protocol (NTP) timestamp format [RFC1305].  Note that
860       the Time-to-Live field is different than the Retention Expires
861       field used in the Basic-Location-Policy-Rules Attribute, see
862       Section 4.4.  The Retention Expires field indicates the time the
863       recipient is no longer permitted to possess the location
864       information.
865
866    Method (variable):
867
868       Describes the way that the location information was determined.
869       This field MUST contain the value of exactly one IANA-registered
870       'method' token [RFC4119].
871
872    The length of the Location-Information Attribute MUST NOT exceed 253
873    octets.
874
875 4.3.  Location-Data Attribute
876
877    The Location-Data Attribute MAY be sent in Access-Request and
878    Accounting-Request messages.  For the Accounting-Request message, the
879    Acc-Status-Type may be set to Start, Interim, or Stop.
880
881    The format is shown below.
882
883       0                   1                   2                   3
884       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
885      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
886      |     Type      |    Length     |            String            ...
887      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
888      |       String (cont.)                                         ...
889      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
890
891    Type:
892
893       128 - Location-Data
894
895
896
897
898 Tschofenig, et al.          Standards Track                    [Page 16]
899 \f
900 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
901
902
903    Length:
904
905       >= 5
906
907    String:
908
909       The format is shown below.  The data type of this field is a
910       string.  All fields are transmitted from left to right:
911
912       0                   1                   2                   3
913       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
914      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
915      |   Index                       |  Location                    ...
916      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
917      |  Location                                                    ...
918      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
919
920    Index (16 bits):
921
922       The 16-bit unsigned integer value allows this attribute to
923       associate the Location-Data Attribute with the Location-
924       Information Attributes.
925
926    Location (variable):
927
928       The format of the location data depends on the location profile.
929       This document defines two location profiles.  Details of the
930       location profiles are described below.
931
932 4.3.1.  Civic Location Profile
933
934    Civic location is a popular way to describe the location of an
935    entity.  This section defines the civic location-information profile
936    corresponding to the value (0) indicated in the Code field of the
937    Location-Information Attribute.  The location format is based on the
938    encoding format defined in Section 3.1 of [RFC4776], whereby the
939    first 3 octets are not put into the Location field of the above-
940    described RADIUS Location-Data Attribute (i.e., the code for the DHCP
941    option, the length of the DHCP option, and the 'what' element are not
942    included).
943
944 4.3.2.  Geospatial Location Profile
945
946    This section defines the geospatial location-information profile
947    corresponding to the value (1) indicated in the Code field of the
948    Location-Information Attribute.  Geospatial location information is
949    encoded as an opaque object, and the format is based on the Location
950
951
952
953
954 Tschofenig, et al.          Standards Track                    [Page 17]
955 \f
956 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
957
958
959    Configuration Information (LCI) format defined in Section 2 of
960    [RFC3825] but starts with the third octet (i.e., the code for the
961    DHCP option and the length field is not included).
962
963 4.4.  Basic-Location-Policy-Rules Attribute
964
965    The Basic-Location-Policy-Rules Attribute MAY be sent in Access-
966    Request, Access-Accept, Access-Challenge, Change-of-Authorization,
967    and Accounting-Request messages.
968
969    Policy rules control the distribution of location information.  In
970    order to understand and process the Basic-Location-Policy-Rules
971    Attribute, RADIUS clients are obligated to utilize a default value of
972    Basic-Location-Policy-Rules, unless explicitly configured otherwise,
973    and to echo the Basic-Location-Policy-Rules Attribute that they
974    receive from a server.  As a default, the Note Well field does not
975    carry a pointer to human-readable privacy policies, the
976    retransmission-allowed is set to zero (0), i.e., further distribution
977    is not allowed, and the Retention Expires field is set to 24 hours.
978
979    With regard to authorization policies, this document reuses work done
980    in [RFC4119] and encodes those policies in a non-XML format.  Two
981    fields ('Sighting Time' and 'Time-to-Live') are additionally included
982    in the Location-Information Attribute to conform to the GEOPRIV
983    requirements [RFC3693], Section 2.7.
984
985    The format of the Basic-Location-Policy-Rules Attribute is shown
986    below.
987
988       0                   1                   2                   3
989       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
990      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
991      |     Type      |    Length     |            String            ...
992      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
993      |       String (cont.)                                         ...
994      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
995
996    Type:
997
998       129 - Basic-Location-Policy-Rules
999
1000    Length:
1001
1002       >= 12
1003
1004
1005
1006
1007
1008
1009
1010 Tschofenig, et al.          Standards Track                    [Page 18]
1011 \f
1012 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1013
1014
1015    String:
1016
1017       The format is shown below.  The data type of this field is a
1018       string.  All fields are transmitted from left to right:
1019
1020       0                   1                   2                   3
1021       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
1022      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1023      |  Flags                        | Retention Expires            ...
1024      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1025      | Retention Expires                                            ...
1026      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1027      | Retention Expires             | Note Well                    ...
1028      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1029      | Note Well                                                    ...
1030      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1031
1032    This document reuses fields from the RFC 4119 [RFC4119] 'usage-rules'
1033    element.  These fields have the following meaning:
1034
1035    Flags (16 bits):
1036
1037       The Flags field is a bit mask.  Only the first bit (R) is defined
1038       in this document, and it corresponds to the Retransmission Allowed
1039       field:
1040
1041         0                   1
1042         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
1043        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1044        |R|o o o o o o o o o o o o o o o|
1045        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1046
1047        R = Retransmission Allowed
1048        o = reserved.
1049
1050    All reserved bits MUST be zero.  When the value of the Retransmission
1051    Allowed field is set to zero (0), then the recipient of this Location
1052    Object is not permitted to share the enclosed location information,
1053    or the object as a whole, with other parties.  The value of '1'
1054    allows this attribute to share the location information with other
1055    parties by considering the extended policy rules.
1056
1057    Retention Expires (64 bits):
1058
1059       This field specifies an absolute date at which time the Recipient
1060       is no longer permitted to possess the location information.  The
1061       data type of this field is a string and the format is a 64-bit NTP
1062       timestamp [RFC1305].
1063
1064
1065
1066 Tschofenig, et al.          Standards Track                    [Page 19]
1067 \f
1068 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1069
1070
1071    Note Well (variable):
1072
1073       This field contains a URI that points to human-readable privacy
1074       instructions.  The data type of this field is a string.  This
1075       field is useful when location information is distributed to third-
1076       party entities, which can include humans in a location-based
1077       service.  RADIUS entities are not supposed to process this field.
1078
1079       Whenever a Location Object leaves the RADIUS ecosystem, the URI in
1080       the Note Well Attribute MUST be expanded to the human-readable
1081       text.  For example, when the Location Object is transferred to a
1082       SIP-based environment, then the human-readable text is placed into
1083       the 'note-well' element of the 'usage-rules' element contained in
1084       the PIDF-LO (Presence Information Data Format - Location Object)
1085       document (see [RFC4119]).  The Note Well field may be empty.
1086
1087 4.5.  Extended-Location-Policy-Rules Attribute
1088
1089    The Extended-Location-Policy-Rules Attribute MAY be sent in Access-
1090    Request, Access-Accept, Access-Challenge, Access-Reject, Change-of-
1091    Authorization, and Accounting-Request messages.
1092
1093    The Ruleset Reference field of this attribute is of variable length.
1094    It contains a URI that indicates where the richer ruleset can be
1095    found.  This URI SHOULD use the HTTPS URI scheme.  As a deviation
1096    from [RFC4119], this field only contains a reference and does not
1097    carry an attached, extended ruleset.  This modification is motivated
1098    by the size limitations imposed by RADIUS.
1099
1100    In order to understand and process the Extended-Location-Policy-Rules
1101    Attribute, RADIUS clients are obligated to attach the URI to the
1102    Extended-Location-Policy-Rules Attribute when they are explicitly
1103    configured to do so, and to echo the Extended-Location-Policy-Rules
1104    Attribute that they receive from a server.  There is no expectation
1105    that RADIUS clients will need to retrieve data at the URL specified
1106    in the attribute or to parse the XML policies.
1107
1108    The format of the Extended-Location-Policy-Rules Attribute is shown
1109    below.
1110
1111       0                   1                   2                   3
1112       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
1113      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1114      |     Type      |    Length     |            String            ...
1115      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1116      |       String (cont.)                                         ...
1117      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1118
1119
1120
1121
1122 Tschofenig, et al.          Standards Track                    [Page 20]
1123 \f
1124 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1125
1126
1127    Type:
1128
1129       130 - Extended-Location-Policy-Rules
1130
1131    Length:
1132
1133       >= 3
1134
1135    String:
1136
1137       This field is at least two octets in length, and the format is
1138       shown below.  The data type of this field is a string.  The fields
1139       are transmitted from left to right:
1140
1141       0                   1                   2                   3
1142       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
1143      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1144      |    Ruleset Reference                                         ...
1145      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1146
1147    Ruleset Reference:
1148
1149       This field contains a URI that points to the policy rules.
1150
1151 4.6.  Location-Capable Attribute
1152
1153    The Location-Capable Attribute allows an NAS (or client function of a
1154    proxy server) to indicate support for the functionality specified in
1155    this document.  The Location-Capable Attribute with the value for
1156    'Location Capable' MUST be sent with the Access-Request messages, if
1157    the NAS supports the functionality described in this document and is
1158    capable of sending location information.  A RADIUS server MUST NOT
1159    challenge for location information unless the Location-Capable
1160    Attribute has been sent to it.
1161
1162       0                   1                   2                   3
1163       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
1164      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1165      | Type          | Length        | Integer                       |
1166      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1167      |       Integer (cont.)         |
1168      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1169
1170    Type:
1171
1172       131 - Location-Capable Attribute
1173
1174
1175
1176
1177
1178 Tschofenig, et al.          Standards Track                    [Page 21]
1179 \f
1180 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1181
1182
1183    Length:
1184
1185       6
1186
1187    Integer:
1188
1189       The content of the Integer field encodes the requested
1190       capabilities.  Each capability value represents a bit position.
1191
1192    This document specifies the following capabilities.
1193
1194    Name:
1195
1196       CIVIC_LOCATION
1197
1198    Description:
1199
1200       The RADIUS client uses the CIVIC_LOCATION to indicate that it is
1201       able to return civic location based on the location profile
1202       defined in Section 4.3.1.
1203
1204    Numerical Value:
1205
1206       A numerical value of this token is '1'.
1207
1208    Name:
1209
1210       GEO_LOCATION
1211
1212    Description:
1213
1214       The RADIUS client uses the GEO_LOCATION to indicate that it is
1215       able to return geodetic location based on the location profile
1216       defined in Section 4.3.2.
1217
1218    Numerical Value:
1219
1220       A numerical value of this token is '2'.
1221
1222    Name:
1223
1224       USERS_LOCATION
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234 Tschofenig, et al.          Standards Track                    [Page 22]
1235 \f
1236 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1237
1238
1239    Description:
1240
1241       The numerical value representing USERS_LOCATION indicates that the
1242       RADIUS client is able to provide a Location-Information Attribute
1243       with the Entity Attribute expressing the value of zero (0), i.e.,
1244       the RADIUS client is capable of returning the location information
1245       of the user's client device.
1246
1247    Numerical Value:
1248
1249       A numerical value of this token is '4'.
1250
1251    Name:
1252
1253       NAS_LOCATION
1254
1255    Description:
1256
1257       The numerical value representing NAS_LOCATION indicates that the
1258       RADIUS client is able to provide a Location-Information Attribute
1259       that contains location information with the Entity Attribute
1260       expressing the value of one (1), i.e., the RADIUS client is
1261       capable of returning the location information of the NAS.
1262
1263    Numerical Value:
1264
1265       A numerical value of this token is '8'.
1266
1267 4.7.  Requested-Location-Info Attribute
1268
1269    The Requested-Location-Info Attribute allows the RADIUS server to
1270    indicate which location information about which entity it wants to
1271    receive.  The latter aspect refers to the entities that are indicated
1272    in the Entity field of the Location-Information Attribute.
1273
1274    The Requested-Location-Info Attribute MAY be sent in an Access-
1275    Accept, Access-Challenge, or Change-of-Authorization packet.
1276
1277    If the RADIUS server wants to dynamically decide on a per-request
1278    basis to ask for location information from the RADIUS client, then
1279    the following cases need to be differentiated.  If the RADIUS client
1280    and the RADIUS server have agreed out-of-band to mandate the transfer
1281    of location information for every network-access authentication
1282    request, then the processing listed below is not applicable.
1283
1284
1285
1286
1287
1288
1289
1290 Tschofenig, et al.          Standards Track                    [Page 23]
1291 \f
1292 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1293
1294
1295    o  If the RADIUS server requires location information for computing
1296       the authorization decision and the RADIUS client does not provide
1297       it with the Access-Request message, then the Requested-Location-
1298       Info Attribute is attached to the Access-Challenge with a hint
1299       about what is required.
1300
1301    o  If the RADIUS server does not receive the requested information in
1302       response to the Access-Challenge (including the Requested-
1303       Location-Info Attribute), then the RADIUS server may respond with
1304       an Access-Reject message with an Error-Cause Attribute (including
1305       the "Location-Info-Required" value).
1306
1307    o  If the RADIUS server would like location information in the
1308       Accounting-Request message but does not require it for computing
1309       an authorization decision, then the Access-Accept message MUST
1310       include a Required-Info Attribute.  This is typically the case
1311       when location information is used only for billing.  The RADIUS
1312       client SHOULD attach location information, if available, to the
1313       Accounting-Request (unless authorization policies dictate
1314       something different).
1315
1316    If the RADIUS server does not send a Requested-Location-Info
1317    Attribute, then the RADIUS client MUST NOT attach location
1318    information to messages towards the RADIUS server.  The user's
1319    authorization policies, if available, MUST be consulted by the RADIUS
1320    server before requesting location information delivery from the
1321    RADIUS client.
1322
1323    Figure 6 shows a simple protocol exchange where the RADIUS server
1324    indicates the desire to obtain location information, namely civic
1325    location information of the user, to grant access.  Since the
1326    Requested-Location-Info Attribute is attached to the Access-
1327    Challenge, the RADIUS server indicates that location information is
1328    required for computing an authorization decision.
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346 Tschofenig, et al.          Standards Track                    [Page 24]
1347 \f
1348 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1349
1350
1351     +---------+                        +---------+
1352     | RADIUS  |                        | RADIUS  |
1353     | Client  |                        | Server  |
1354     +---------+                        +---------+
1355          |                                  |
1356          |                                  |
1357          | Access-Request                   |
1358          | + Location-Capable               |
1359          |   ('CIVIC_LOCATION',             |
1360          |    'GEO_LOCATION',               |
1361          |    'NAS_LOCATION',               |
1362          |    'USERS_LOCATION')             |
1363          |--------------------------------->|
1364          |                                  |
1365          | Access-Challenge                 |
1366          | + Requested-Location-Info        |
1367          |   ('CIVIC_LOCATION',             |
1368          |    'USERS_LOCATION')             |
1369          | + Basic-Location-Policy-Rules    |
1370          | + Extended-Location-Policy-Rules |
1371          |<---------------------------------|
1372          |                                  |
1373          | Access-Request                   |
1374          | + Location-Information           |
1375          | + Location-Data                  |
1376          | + Basic-Location-Policy-Rules    |
1377          | + Extended-Location-Policy-Rules |
1378          |--------------------------------->|
1379          |                                  |
1380          |        ....                      |
1381
1382           Figure 6: RADIUS Server Requesting Location Information
1383
1384    The Requested-Location-Info Attribute MUST be sent by the RADIUS
1385    server, in the absence of an out-of-band agreement, if it wants the
1386    RADIUS client to return location information and if authorization
1387    policies permit it.  This Requested-Location-Info Attribute MAY
1388    appear in the Access-Accept or in the Access-Challenge message.
1389
1390    A summary of the attribute is shown below.
1391
1392       0                   1                   2                   3
1393       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
1394      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1395      |     Type      |    Length     |            Integer           ...
1396      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1397      |       Integer (cont.)         |
1398      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1399
1400
1401
1402 Tschofenig, et al.          Standards Track                    [Page 25]
1403 \f
1404 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1405
1406
1407    Type:
1408
1409       132 - Requested-Location-Info Attribute
1410
1411    Length:
1412
1413       6
1414
1415    Integer:
1416
1417       The content of the Integer field encodes the requested information
1418       attributes.  Each capability value represents a bit position.
1419
1420    This document specifies the following capabilities:
1421
1422    Name:
1423
1424       CIVIC_LOCATION
1425
1426    Description:
1427
1428       The RADIUS server uses the Requested-Location-Info Attribute with
1429       the value set to CIVIC_LOCATION to request specific location
1430       information from the RADIUS client.  The numerical value
1431       representing CIVIC_LOCATION requires the RADIUS client to attach
1432       civic location attributes.  CIVIC_LOCATION refers to the location
1433       profile defined in Section 4.3.1.
1434
1435    Numerical Value:
1436
1437       A numerical value of this token is '1'.
1438
1439    Name:
1440
1441       GEO_LOCATION
1442
1443    Description:
1444
1445       The RADIUS server uses the Requested-Location-Info Attribute with
1446       the value set to GEO_LOCATION to request specific location
1447       information from the RADIUS client.  The numerical value
1448       representing GEO_LOCATION requires the RADIUS client to attach
1449       geospatial location attributes.  GEO_LOCATION refers to the
1450       location profile described in Section 4.3.2.
1451
1452    Numerical Value:
1453
1454       A numerical value of this token is '2'.
1455
1456
1457
1458 Tschofenig, et al.          Standards Track                    [Page 26]
1459 \f
1460 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1461
1462
1463    Name:
1464
1465       USERS_LOCATION
1466
1467    Description:
1468
1469       The numerical value representing USERS_LOCATION indicates that the
1470       RADIUS client MUST send a Location-Information Attribute with the
1471       Entity Attribute expressing the value of zero (0).  Hence, there
1472       is a one-to-one relationship between the USERS_LOCATION token and
1473       the value of zero (0) of the Entity Attribute inside the Location-
1474       Information Attribute.  A value of zero indicates that the
1475       location information in the Location-Information Attribute refers
1476       to the user's client device.
1477
1478    Numerical Value:
1479
1480       A numerical value of this token is '4'.
1481
1482    Name:
1483
1484       NAS_LOCATION
1485
1486    Description:
1487
1488       The numerical value representing NAS_LOCATION indicates that the
1489       RADIUS client MUST send a Location-Information Attribute that
1490       contains location information with the Entity Attribute expressing
1491       the value of one (1).  Hence, there is a one-to-one relationship
1492       between the NAS_LOCATION token and the value of one (1) of the
1493       Entity Attribute inside the Location-Information Attribute.  A
1494       value of one indicates that the location information in the
1495       Location-Information Attribute refers to the RADIUS client.
1496
1497    Numerical Value:
1498
1499       A numerical value of this token is '8'.
1500
1501    Name:
1502
1503       FUTURE_REQUESTS
1504
1505    Description:
1506
1507       The numerical value representing FUTURE_REQUESTS indicates that
1508       the RADIUS client MUST provide future Access-Requests for the same
1509       session with the same type of information as returned in the
1510       initial Access-Request message.
1511
1512
1513
1514 Tschofenig, et al.          Standards Track                    [Page 27]
1515 \f
1516 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1517
1518
1519    Numerical Value:
1520
1521       A numerical value of this token is '16'.
1522
1523    Name:
1524
1525       NONE
1526
1527    Description:
1528
1529       The RADIUS server uses this token to request that the RADIUS
1530       client stop sending location information.
1531
1532    Numerical Value:
1533
1534       A numerical value of this token is '32'.
1535
1536    If neither the NAS_LOCATION nor the USERS_LOCATION bit is set, then
1537    per-default the location of the user's client device is returned (if
1538    authorization policies allow it).  If both the NAS_LOCATION and the
1539    USERS_LOCATION bits are set, then the returned location information
1540    has to be put into separate attributes.  If neither the
1541    CIVIC_LOCATION nor the GEO_LOCATION bit is set in the Requested-
1542    Location-Info Attribute, then no location information is returned.
1543    If both the CIVIC_LOCATION and the GEO_LOCATION bits are set, then
1544    the location information has to be put into separate attributes.  The
1545    value of NAS_LOCATION and USERS_LOCATION refers to the location
1546    information requested via CIVIC_LOCATION and GEO_LOCATION.
1547
1548    As an example, if the bits for NAS_LOCATION, USERS_LOCATION, and
1549    GEO_LOCATION are set, then the location information of the RADIUS
1550    client and the users' client device are returned in a geospatial-
1551    location format.
1552
1553 5.  Table of Attributes
1554
1555    The following table provides a guide to which attributes may be found
1556    in which RADIUS messages, and in what quantity.
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570 Tschofenig, et al.          Standards Track                    [Page 28]
1571 \f
1572 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1573
1574
1575  Request Accept Reject Challenge Accounting  #  Attribute
1576                                  Request
1577  0-1     0-1    0      0         0+         126  Operator-Name
1578  0+      0      0      0         0+         127  Location-Information
1579  0+      0      0      0         0+         128  Location-Data
1580  0-1     0-1    0-1    0-1       0-1        129  Basic-Location-
1581                                                  Policy-Rules
1582  0-1     0-1    0-1    0-1       0-1        130  Extended-Location-
1583                                                  Policy-Rules
1584  0-1     0      0      0         0          131  Location-Capable
1585  0       0-1    0      0-1       0          132  Requested-Location-Info
1586  0       0      0-1    0         0          101  Error-Cause (*)
1587
1588  (*) Note: The Error-Cause Attribute contains the value for the
1589  'Location-Info-Required' error.
1590
1591  Change-of-Authorization Messages
1592
1593   Request   ACK      NAK    #    Attribute
1594    0-1       0        0     129  Basic-Location-Policy-Rules
1595    0-1       0        0     130  Extended-Location-Policy-Rules
1596    0-1       0        0     132  Requested-Location-Info
1597
1598  Legend:
1599
1600     0     This attribute MUST NOT be present.
1601     0+    Zero or more instances of this attribute MAY be present.
1602     0-1   Zero or one instance of this attribute MAY be present.
1603     1     Exactly one instance of this attribute MUST be present.
1604     1+    One or more of these attributes MUST be present.
1605
1606                        Figure 7: Table of Attributes
1607
1608    The Error-Cause Attribute is defined in [RFC5176].
1609
1610    The Location-Information and the Location-Data Attribute MAY appear
1611    more than once.  For example, if the server asks for civic and
1612    geospatial location information, two Location-Information Attributes
1613    need to be sent.
1614
1615    The attributes defined in this document are not used in any messages
1616    other than the ones listed in Figure 7.
1617
1618    IANA allocated a new value (509) from the Error-Cause registry with
1619    the semantics of 'Location-Info-Required'.
1620
1621
1622
1623
1624
1625
1626 Tschofenig, et al.          Standards Track                    [Page 29]
1627 \f
1628 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1629
1630
1631 6.  Diameter RADIUS Interoperability
1632
1633    When used in Diameter, the attributes defined in this specification
1634    can be used as Diameter attribute-value pairs (AVPs) from the code
1635    space 1-255 (RADIUS attribute-compatibility space).  No additional
1636    Diameter code values are therefore allocated.  The data types and
1637    flag rules, as defined in [RFC3588], for the Diameter AVPs are as
1638    follows:
1639
1640                                      +---------------------+
1641                                      |    AVP Flag rules   |
1642                                      +----+-----+------+-----+----+
1643                                      |    |     |SHOULD| MUST|    |
1644     Attribute Name        Value Type |MUST| MAY | NOT  |  NOT|Encr|
1645    +---------------------------------+----+-----+------+-----+----+
1646    |Operator-Name         OctetString|    |  P  |      | V,M | Y  |
1647    |Location-Information  OctetString|    |  P  |      | V,M | Y  |
1648    |Location-Data         OctetString|    |  P  |      | V,M | Y  |
1649    |Basic-Location-                  |    |     |      |     |    |
1650    |   Policy-Rules       OctetString|    |  P  |      | V,M | Y  |
1651    |Extended-Location-               |    |     |      |     |    |
1652    |   Policy-Rules       OctetString|    |  P  |      | V,M | Y  |
1653    |Requested-                       |    |     |      |     |    |
1654    |   Location-Info      OctetString|    |  P  |      | V,M | Y  |
1655    |Location-Capable      OctetString|    |  P  |      | V,M | Y  |
1656    +---------------------------------+----+-----+------+-----+----+
1657
1658    The RADIUS attributes in this specification have no special
1659    translation requirements for Diameter-to-RADIUS or RADIUS-to-Diameter
1660    gateways; they are copied as is, except for changes relating to
1661    headers, alignment, and padding.  See also Section 4.1 of [RFC3588]
1662    and Section 9 of [RFC4005].
1663
1664    What this specification says about the applicability of the
1665    attributes for RADIUS Access-Request packets applies in Diameter to
1666    AA-Request [RFC4005] or Diameter-EAP-Request [RFC4072].  What is said
1667    about Access-Challenge applies in Diameter to AA-Answer [RFC4005] or
1668    Diameter-EAP-Answer [RFC4072] with the Result-Code AVP set to
1669    DIAMETER_MULTI_ROUND_AUTH.  What is said about Access-Accept applies
1670    in Diameter to AA-Answer or Diameter-EAP-Answer messages that
1671    indicate success.  Similarly, what is said about RADIUS Access-Reject
1672    packets applies in Diameter to AA-Answer or Diameter-EAP-Answer
1673    messages that indicate failure.
1674
1675    What is said about CoA-Request applies in Diameter to Re-Auth-Request
1676    [RFC4005].
1677
1678
1679
1680
1681
1682 Tschofenig, et al.          Standards Track                    [Page 30]
1683 \f
1684 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1685
1686
1687    What is said about Accounting-Request applies in Diameter to
1688    Accounting-Request [RFC4005] as well.
1689
1690    Note that these AVPs may be used by Diameter applications other than
1691    RFC 4005 [RFC4005] and RFC 4072 [RFC4072].  The above-mentioned
1692    applications are, however, likely to be relevant in the context of
1693    this document.
1694
1695 7.  Security Considerations
1696
1697    A number of security aspects are relevant for the distribution of
1698    location information via RADIUS.  These aspects are discussed in
1699    separate subsections.
1700
1701 7.1.  Communication Security
1702
1703    Requirements for the protection of a Location Object are defined in
1704    [RFC3693] -- namely, mutual end-point authentication, data object
1705    integrity, data object confidentiality, and replay protection.
1706
1707    If no authentication, integrity, and replay protection between the
1708    participating RADIUS entities is provided, then adversaries can spoof
1709    and modify transmitted attributes.  Two security mechanisms are
1710    proposed for RADIUS:
1711
1712    o  [RFC2865] proposes the usage of a static key that raised concerns
1713       regarding the lack of dynamic key management.  At the time of
1714       writing, work is ongoing to address some shortcomings of the
1715       [RFC2865] attribute regarding security protection.
1716
1717    o  RADIUS over IPsec [RFC3579] enables the use of standard key-
1718       management mechanisms, such as Kerberized Internet Negotiation of
1719       Keys (KINK), the Internet Key Exchange Protocol (IKE), and IKEv2
1720       [RFC4306], to establish IPsec security associations.
1721       Confidentiality protection MUST be used to prevent an eavesdropper
1722       from gaining access to location information.  Confidentiality
1723       protection is already present for other reasons in many
1724       environments, such as for the transport of keying material in the
1725       context of Extensible Authentication Protocol (EAP) authentication
1726       and authorization.  Hence, this requirement is, in many
1727       environments, already fulfilled.  Mutual authentication MUST be
1728       provided between neighboring RADIUS entities to prevent man-in-
1729       the-middle attacks.  Since mutual authentication is already
1730       required for key transport within RADIUS messages, it does not
1731       represent a deployment obstacle.  Since IPsec protection is
1732       already suggested as a mechanism to protect RADIUS, no additional
1733       considerations need to be addressed beyond those described in
1734       [RFC3579].
1735
1736
1737
1738 Tschofenig, et al.          Standards Track                    [Page 31]
1739 \f
1740 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1741
1742
1743    In case IPsec protection is not available for some reason and RADIUS-
1744    specific security mechanisms have to be used, then the following
1745    considerations apply.  The Access-Request message is not integrity
1746    protected.  This would allow an adversary to change the contents of
1747    the Location Object or to insert, modify, and delete attributes or
1748    individual fields.  To address these problems, the Message-
1749    Authenticator (80) can be used to integrity protect the entire
1750    Access-Request packet.  The Message-Authenticator (80) is also
1751    required when EAP is used and, hence, is supported by many modern
1752    RADIUS servers.
1753
1754    Access-Request packets including location attribute(s) without a
1755    Message-Authenticator (80) Attribute SHOULD be silently discarded by
1756    the RADIUS server.  A RADIUS server supporting location attributes
1757    MUST calculate the correct value of the Message-Authenticator (80)
1758    and MUST silently discard the packet if it does not match the value
1759    sent.
1760
1761    Access-Accept messages, including location attribute(s), without a
1762    Message-Authenticator (80) Attribute SHOULD be silently discarded by
1763    the NAS.  An NAS supporting location attributes MUST calculate the
1764    correct value of a received Message-Authenticator (80) and MUST
1765    silently discard the packet if it does not match the value sent.
1766
1767    RADIUS and Diameter make some assumptions about the trust between
1768    traversed RADIUS entities in the sense that object-level security is
1769    not provided by either RADIUS or Diameter.  Hence, some trust has to
1770    be placed on the RADIUS entities to behave according to the defined
1771    rules.  Furthermore, the RADIUS protocol does not involve the user in
1772    their protocol interaction except for tunneling authentication
1773    information (such as EAP messages) through their infrastructure.
1774    RADIUS and Diameter have even become a de facto protocol for key
1775    distribution for network-access authentication applications.  Hence,
1776    in the past there were some concerns about the trust placed into the
1777    infrastructure -- particularly from the security area -- when it
1778    comes to keying.  The EAP keying infrastructure is described in
1779    [RFC4282].
1780
1781 7.2.  Privacy Considerations
1782
1783    This section discusses privacy implications for the distribution of
1784    location information within RADIUS.  Note also that it is possible
1785    for the RADIUS server to obtain some amount of location information
1786    from the NAS identifier.  This document, however, describes
1787    procedures to convey more accurate location information about the end
1788    host and/or the network.  In a number of deployment environments,
1789    location information about the network also reveals the current
1790
1791
1792
1793
1794 Tschofenig, et al.          Standards Track                    [Page 32]
1795 \f
1796 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1797
1798
1799    location of the user with a certain degree of precision, depending on
1800    the location-determination mechanism used, the update frequency, the
1801    size of the network, and other factors, such as movement traces.
1802
1803    Three types of use cases have to be differentiated:
1804
1805    o  The RADIUS server does not want to receive location information
1806       from the RADIUS client.
1807
1808    o  In case there is an out-of-band agreement between the entity
1809       responsible for the NAS and the entity operating the RADIUS
1810       server, location information may be sent without an explicit
1811       request from the RADIUS server.
1812
1813    o  The RADIUS server dynamically requests location information from
1814       the NAS.
1815
1816 7.2.1.  RADIUS Client
1817
1818    The RADIUS client MUST behave according to the following guidelines:
1819
1820    o  If neither an out-of-band agreement exists nor location
1821       information is requested by the RADIUS server, then location
1822       information is not disclosed by the RADIUS client.
1823
1824    o  The RADIUS client MUST pass location information to other entities
1825       (e.g., when information is written to a local database or to the
1826       log files) only together with the policy rules.  The entity
1827       receiving the location information (together with the policies)
1828       MUST follow the guidance given with these rules.
1829
1830    o  A RADIUS client MUST include Basic-Location-Policy-Rules and
1831       Extended-Location-Policy-Rules Attributes that are configured
1832       within an Access-Request packet.
1833
1834    o  NAS implementations supporting this specification, which are
1835       configured to provide location information, MUST echo Basic-
1836       Location-Policy-Rules and Extended-Location-Policy-Rules
1837       Attributes unmodified within a subsequent Access-Request packet.
1838       In addition, an Access-Request packet sent with a Service-Type
1839       value of "Authorize Only" MUST include the Basic-Location-Policy-
1840       Rules or Extended-Location-Policy-Rules Attributes that were
1841       received in a previous Access-Accept if the FUTURE_REQUESTS flag
1842       was set in the Requested-Location-Info Attribute.
1843
1844
1845
1846
1847
1848
1849
1850 Tschofenig, et al.          Standards Track                    [Page 33]
1851 \f
1852 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1853
1854
1855 7.2.2.  RADIUS Server
1856
1857    The RADIUS server is a natural place for storing authorization
1858    policies since the user typically has some sort of trust relationship
1859    with the entity operating the RADIUS server.  Once the infrastructure
1860    is deployed and location-aware applications are available, there
1861    might be a strong desire to use location information for other
1862    purposes as well.
1863
1864       The Common Policy framework [RFC4745] that was extended for
1865       geolocation privacy [GEO-POLICY] is tailored for this purpose.
1866       The Extensible Markup Language (XML) Configuration Access Protocol
1867       (XCAP) [RFC4825] gives users the ability to change their privacy
1868       policies using a standardized protocol.  These policies are an
1869       important tool for limiting further distribution of the user's
1870       location to other location-based services.
1871
1872    The RADIUS server MUST behave according to the following guidelines:
1873
1874    o  The RADIUS server MUST attach available rules to the Access-
1875       Accept, Access-Reject, or Access-Challenge message when the RADIUS
1876       client is supposed to provide location information.
1877
1878    o  When location information is made available to other entities
1879       (e.g., writing to stable storage for later billing processing),
1880       then the RADIUS server MUST attach the privacy rules to location
1881       information.
1882
1883 7.2.3.  RADIUS Proxy
1884
1885    A RADIUS proxy, behaving as a combined RADIUS client and RADIUS
1886    server, MUST follow the rules described in Sections 7.2.1 and 7.2.2.
1887
1888 7.3.  Identity Information and Location Information
1889
1890    For the envisioned usage scenarios, the identity of the user and his
1891    device is tightly coupled to the transfer of location information.
1892    If the identity can be determined by the visited network or RADIUS
1893    brokers, then it is possible to correlate location information with a
1894    particular user.  As such, it allows the visited network and brokers
1895    to learn the movement patterns of users.
1896
1897    The user's identity can be "leaked" to the visited network or RADIUS
1898    brokers in a number of ways:
1899
1900    o  The user's device may employ a fixed Media Access Control (MAC)
1901       address or base its IP address on such an address.  This enables
1902       the correlation of the particular device to its different
1903
1904
1905
1906 Tschofenig, et al.          Standards Track                    [Page 34]
1907 \f
1908 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1909
1910
1911       locations.  Techniques exist to avoid the use of an IP address
1912       that is based on a MAC address [RFC4941].  Some link layers make
1913       it possible to avoid MAC addresses or change them dynamically.
1914
1915    o  Network-access authentication procedures, such as the PPP
1916       Challenge Handshake Authentication Protocol (CHAP) [RFC1994] or
1917       EAP [RFC4187], may reveal the user's identity as a part of the
1918       authentication procedure.  Techniques exist to avoid this problem
1919       in EAP methods, for instance by employing private Network Access
1920       Identifiers (NAIs) [RFC4282] in the EAP Identity Response message
1921       and by method-specific private identity exchanges in the EAP
1922       method (e.g., [RFC4187], [RFC5281], [PEAP], and [RFC5106]).
1923       Support for identity privacy within CHAP is not available.
1924
1925    o  RADIUS may return information from the home network to the visited
1926       one in a manner that makes it possible to either identify the user
1927       or at least correlate his session with other sessions, such as the
1928       use of static data in a Class Attribute [RFC2865] or in some
1929       accounting attribute usage scenarios [RFC4372].
1930
1931    o  Mobility protocols may reveal some long-term identifier, such as a
1932       home address.
1933
1934    o  Application-layer protocols may reveal other permanent
1935       identifiers.
1936
1937    To prevent the correlation of identities with location information,
1938    it is necessary to prevent leakage of identity information from all
1939    sources, not just one.
1940
1941    Unfortunately, most users are not educated about the importance of
1942    identity confidentiality, and some protocols lack support for
1943    identity-privacy mechanisms.  This problem is made worse by the fact
1944    that users may be unable to choose particular protocols, as the
1945    choice is often dictated by the type of network operator they use,
1946    the type of network they wish to access, the kind of equipment they
1947    have, or the type of authentication method they are using.
1948
1949    A scenario where the user is attached to the home network is, from a
1950    privacy point of view, simpler than a scenario where a user roams
1951    into a visited network, since the NAS and the home RADIUS server are
1952    in the same administrative domain.  No direct relationship between
1953    the visited and the home network operator may be available, and some
1954    RADIUS brokers need to be consulted.  With subscription-based network
1955    access as used today, the user has a contractual relationship with
1956    the home network provider that could (theoretically) allow higher
1957
1958
1959
1960
1961
1962 Tschofenig, et al.          Standards Track                    [Page 35]
1963 \f
1964 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
1965
1966
1967    privacy considerations to be applied (including policy rules stored
1968    at the home network itself, for the purpose of restricting further
1969    distribution).
1970
1971    In many cases it is necessary to secure the transport of location
1972    information along the RADIUS infrastructure.  Mechanisms to achieve
1973    this functionality are discussed in Section 7.1.
1974
1975 8.  IANA Considerations
1976
1977    The Attribute Types and Attribute Values defined in this document
1978    have been registered by the Internet Assigned Numbers Authority
1979    (IANA) from the RADIUS namespaces as described in the "IANA
1980    Considerations" section of RFC 3575 [RFC3575], in accordance with BCP
1981    26 [RFC5226].  Additionally, the Attribute Type has been registered
1982    in the Diameter namespace.  For RADIUS attributes and registries
1983    created by this document, IANA placed them in the Radius Types
1984    registry.
1985
1986    This document defines the following attributes:
1987
1988          Operator-Name
1989          Location-Information
1990          Location-Data
1991          Basic-Location-Policy-Rules
1992          Extended-Location-Policy-Rules
1993          Location-Capable
1994          Requested-Location-Info
1995
1996    Please refer to Section 5 for the registered list of numbers.
1997
1998    IANA has also assigned a new value (509) for the Error-Cause
1999    Attribute [RFC5176] of "Location-Info-Required" according to this
2000    document.
2001
2002    Additionally, IANA created the following new registries listed in the
2003    subsections below.
2004
2005 8.1.  New Registry: Operator Namespace Identifier
2006
2007    This document also defines an Operator Namespace Identifier registry
2008    (used in the Namespace ID field of the Operator-Name Attribute).
2009    Note that this document requests IANA only to maintain a registry of
2010    existing namespaces for use in this identifier field, and not to
2011    establish any namespaces or place any values within namespaces.
2012
2013
2014
2015
2016
2017
2018 Tschofenig, et al.          Standards Track                    [Page 36]
2019 \f
2020 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2021
2022
2023    IANA added the following values to the Operator Namespace Identifier
2024    registry using a numerical identifier (allocated in sequence), a
2025    token for the operator namespace, and a contact person for the
2026    registry.
2027
2028   +----------+--------------------+------------------------------------+
2029   |Identifier| Operator Namespace | Contact Person                     |
2030   |          | Token              |                                    |
2031   +----------+--------------------+------------------------------------+
2032   |   0x30   | TADIG              | TD.13 Coordinator                  |
2033   |          |                    | (td13@gsm.org)                     |
2034   |   0x31   | REALM              | IETF O&M Area Directors            |
2035   |          |                    | (ops-ads@ietf.org)                 |
2036   |   0x32   | E212               | ITU Director                       |
2037   |          |                    | (tsbdir@itu.int)                   |
2038   |   0x33   | ICC                | ITU Director                       |
2039   |          |                    | (tsbdir@itu.int)                   |
2040   +----------+--------------------+------------------------------------+
2041
2042    Note that the above identifier values represent the ASCII value '0'
2043    (decimal 48 or hex 0x30), '1' (decimal 49, or hex 0x31), '2' (decimal
2044    50, or hex 0x32), and '3' (decimal 51, or hex 0x33).  This encoding
2045    was chosen to simplify parsing.
2046
2047    Requests to IANA for a new value for a Namespace ID, i.e., values
2048    from 0x34 to 0xFE, will be approved by Expert Review.  A designated
2049    expert will be appointed by the IESG.
2050
2051    The Expert Reviewer should ensure that a new entry is indeed required
2052    or could fit within an existing database, e.g., whether there is a
2053    real requirement to provide a token for a Namespace ID because one is
2054    already up and running, or whether the REALM identifier plus the name
2055    should be recommended to the requester.  In addition, the Expert
2056    Reviewer should ascertain to some reasonable degree of diligence that
2057    a new entry is a correct reference to an operator namespace whenever
2058    a new one is registered.
2059
2060 8.2.  New Registry: Location Profiles
2061
2062    Section 4.2 defines the Location-Information Attribute and a Code
2063    field that contains an 8-bit integer value.  Two values, zero and
2064    one, are defined in this document, namely:
2065
2066    Value (0): Civic location profile described in Section 4.3.1
2067
2068    Value (1): Geospatial location profile described in Section 4.3.2
2069
2070    The remaining values are reserved for future use.
2071
2072
2073
2074 Tschofenig, et al.          Standards Track                    [Page 37]
2075 \f
2076 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2077
2078
2079    Following the policies outlined in [RFC3575], the available bits with
2080    a description of their semantics will be assigned after the Expert
2081    Review process.  Updates can be provided based on expert approval
2082    only.  Based on expert approval, it is possible to mark entries as
2083    "deprecated".  A designated expert will be appointed by the IESG.
2084
2085    Each registration must include the value and the corresponding
2086    semantics of the defined location profile.
2087
2088 8.3.  New Registry: Location-Capable Attribute
2089
2090    Section 4.6 defines the Location-Capable Attribute that contains a
2091    bit map. 32 bits are available, from which 4 bits are defined by this
2092    document.  This document creates a new IANA registry for the
2093    Location-Capable Attribute.  IANA added the following values to this
2094    registry:
2095
2096     +----------+----------------------+
2097     |  Value   | Capability Token     |
2098     +----------+----------------------+
2099     |    1     | CIVIC_LOCATION       |
2100     |    2     | GEO_LOCATION         |
2101     |    4     | USERS_LOCATION       |
2102     |    8     | NAS_LOCATION         |
2103     +----------+----------------------+
2104
2105    Following the policies outlined in [RFC3575], the available bits with
2106    a description of their semantics will be assigned after the Expert
2107    Review process.  Updates can be provided based on expert approval
2108    only.  Based on expert approval, it is possible to mark entries as
2109    "deprecated".  A designated expert will be appointed by the IESG.
2110
2111    Each registration must include:
2112
2113    Name:
2114
2115       Capability Token (i.e., an identifier of the capability)
2116
2117    Description:
2118
2119       Brief description indicating the meaning of the 'info' element.
2120
2121    Numerical Value:
2122
2123       A numerical value that is placed into the Capability Attribute
2124       representing a bit in the bit-string of the Requested-Location-
2125       Info Attribute.
2126
2127
2128
2129
2130 Tschofenig, et al.          Standards Track                    [Page 38]
2131 \f
2132 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2133
2134
2135 8.4.  New Registry: Entity Types
2136
2137    Section 4.2 defines the Location-Information Attribute that contains
2138    an 8-bit Entity field.  Two values are registered by this document,
2139    namely:
2140
2141    Value (0) describes the location of the user's client device.
2142
2143    Value (1) describes the location of the RADIUS client.
2144
2145    All other values are reserved for future use.
2146
2147    Following the policies outlined in [RFC3575], the available bits with
2148    a description of their semantics will be assigned after the Expert
2149    Review process.  Updates can be provided based on expert approval
2150    only.  Based on expert approval, it is possible to mark entries as
2151    "deprecated".  A designated expert will be appointed by the IESG.
2152
2153    Each registration must include the value and a corresponding
2154    description.
2155
2156 8.5.  New Registry: Privacy Flags
2157
2158    Section 4.4 defines the Basic-Location-Policy-Rules Attribute that
2159    contains flags indicating privacy settings. 16 bits are available,
2160    from which a single bit, bit (0), indicating 'retransmission allowed'
2161    is defined by this document.  Bits 1-15 are reserved for future use.
2162
2163    Following the policies outline in [RFC3575], the available bits with
2164    a description of their semantics will be assigned after the Expert
2165    Review process.  Updates can be provided based on expert approval
2166    only.  Based on expert approval, it is possible to mark entries as
2167    "deprecated".  A designated expert will be appointed by the IESG.
2168
2169    Each registration must include the bit position and the semantics of
2170    the bit.
2171
2172 8.6.  New Registry: Requested-Location-Info Attribute
2173
2174    Section 4.7 defines the Requested-Location-Info Attribute that
2175    contains a bit map. 32 bits are available, from which 6 bits are
2176    defined by this document.  This document creates a new IANA registry
2177    for the Requested-Location-Info Attribute.  IANA added the following
2178    values to this registry:
2179
2180
2181
2182
2183
2184
2185
2186 Tschofenig, et al.          Standards Track                    [Page 39]
2187 \f
2188 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2189
2190
2191     +----------+----------------------+
2192     |  Value   | Capability Token     |
2193     +----------+----------------------+
2194     |    1     | CIVIC_LOCATION       |
2195     |    2     | GEO_LOCATION         |
2196     |    4     | USERS_LOCATION       |
2197     |    8     | NAS_LOCATION         |
2198     |   16     | FUTURE_REQUESTS      |
2199     |   32     | NONE                 |
2200     +----------+----------------------+
2201
2202    The semantics of these values are defined in Section 4.7.
2203
2204    Following the policies outlined in [RFC3575], new Capability Tokens,
2205    with a description of their semantics for usage with the Requested-
2206    Location-Info Attribute, will be assigned after the Expert Review
2207    process.  Updates can be provided based on expert approval only.
2208    Based on expert approval, it is possible to mark entries as
2209    "deprecated".  A designated expert will be appointed by the IESG.
2210
2211    Each registration must include:
2212
2213    Name:
2214
2215       Capability Token (i.e., an identifier of the capability)
2216
2217    Description:
2218
2219       Brief description indicating the meaning of the 'info' element.
2220
2221    Numerical Value:
2222
2223       A numerical value that is placed into the Capability Attribute
2224       representing a bit in the bit-string of the Requested-Location-
2225       Info Attribute.
2226
2227 9.  Acknowledgments
2228
2229    The authors would like to thank the following people for their help
2230    with an initial version of this document and for their input: Chuck
2231    Black, Paul Congdon, Jouni Korhonen, Sami Ala-luukko, Farooq Bari, Ed
2232    Van Horne, Mark Grayson, Jukka Tuomi, Jorge Cuellar, and Christian
2233    Guenther.
2234
2235
2236
2237
2238
2239
2240
2241
2242 Tschofenig, et al.          Standards Track                    [Page 40]
2243 \f
2244 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2245
2246
2247    Henning Schulzrinne provided the civic location information content
2248    found in this document.  The geospatial location-information format
2249    is based on work done by James Polk, John Schnizlein, and Marc
2250    Linsner.  The authorization policy format is based on the work done
2251    by Jon Peterson.
2252
2253    The authors would like to thank Victor Lortz, Anthony Leibovitz, Jose
2254    Puthenkulam, Bernrad Aboba, Jari Arkko, Parviz Yegani, Serge Manning,
2255    Kuntal Chowdury, Pasi Eronen, Blair Bullock and Eugene Chang for
2256    their feedback to an initial version of this document.  We would like
2257    to thank Jari Arkko for his textual contributions.  Lionel Morand
2258    provided detailed feedback on numerous issues.  His comments helped
2259    to improve the quality of this document.  Jouni Korhonen, Victor
2260    Fajardo, Tolga Asveren, and John Loughney helped us with the Diameter
2261    RADIUS interoperability section.  Andreas Pashalidis reviewed a later
2262    version document and provided a number of comments.  Alan DeKok,
2263    Lionel Morand, Jouni Korhonen, David Nelson, and Emile van Bergen
2264    provided guidance on the Requested-Location-Info Attribute and
2265    participated in the capability-exchange discussions.  Allison Mankin,
2266    Jouni Korhonen, and Pasi Eronen provided text for the Operator
2267    Namespace Identifier registry.  Jouni Korhonen interacted with the
2268    GSMA to find a contact person for the TADIG operator namespace, and
2269    Scott Bradner consulted the ITU-T to find a contact person for the
2270    E212 and the ICC operator namespace.
2271
2272    This document is based on the discussions within the IETF GEOPRIV
2273    Working Group.  Therefore, the authors thank Henning Schulzrinne,
2274    James Polk, John Morris, Allison Mankin, Randall Gellens, Andrew
2275    Newton, Ted Hardie, and Jon Peterson for their time discussing a
2276    number of issues with us.  We thank Stephen Hayes for aligning this
2277    work with 3GPP activities.
2278
2279    We would like to thank members of the Wimax Forum Global Roaming
2280    Working Group (GRWG) for their feedback on the Operator-Name
2281    attribute.  Ray Jong Kiem helped us with his detailed description to
2282    correct the document.
2283
2284    The RADEXT Working Group chairs, David Nelson and Bernard Aboba,
2285    provided several draft reviews and we would like to thank them for
2286    the help and their patience.
2287
2288    Finally, we would like to thank Dan Romascanu, Glen Zorn, Russ
2289    Housley, Jari Arkko, Ralph Droms, Adrial Farrel, Tim Polk, and Lars
2290    Eggert for the IETF Last Call comments; Derek Atkins for his security
2291    area directorate review; and Yoshiko Chong for spotting a bug in the
2292    IANA Considerations section.
2293
2294
2295
2296
2297
2298 Tschofenig, et al.          Standards Track                    [Page 41]
2299 \f
2300 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2301
2302
2303 10.  References
2304
2305 10.1.  Normative References
2306
2307    [RFC2119]     Bradner, S., "Key words for use in RFCs to Indicate
2308                  Requirement Levels", BCP 14, RFC 2119, March 1997.
2309
2310    [RFC2865]     Rigney, C., Willens, S., Rubens, A., and W. Simpson,
2311                  "Remote Authentication Dial In User Service (RADIUS)",
2312                  RFC 2865, June 2000.
2313
2314    [RFC3492]     Costello, A., "Punycode: A Bootstring encoding of
2315                  Unicode for Internationalized Domain Names in
2316                  Applications (IDNA)", RFC 3492, March 2003.
2317
2318    [RFC3575]     Aboba, B., "IANA Considerations for RADIUS (Remote
2319                  Authentication Dial In User Service)", RFC 3575,
2320                  July 2003.
2321
2322    [RFC3588]     Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and
2323                  J. Arkko, "Diameter Base Protocol", RFC 3588,
2324                  September 2003.
2325
2326    [RFC3825]     Polk, J., Schnizlein, J., and M. Linsner, "Dynamic Host
2327                  Configuration Protocol Option for Coordinate-based
2328                  Location Configuration Information", RFC 3825,
2329                  July 2004.
2330
2331    [RFC4776]     Schulzrinne, H., "Dynamic Host Configuration Protocol
2332                  (DHCPv4 and DHCPv6) Option for Civic Addresses
2333                  Configuration Information", RFC 4776, November 2006.
2334
2335    [RFC5176]     Chiba, M., Dommety, G., Eklund, M., Mitton, D., and B.
2336                  Aboba, "Dynamic Authorization Extensions to Remote
2337                  Authentication Dial In User Service (RADIUS)",
2338                  RFC 5176, January 2008.
2339
2340    [RFC5226]     Narten, T. and H. Alvestrand, "Guidelines for Writing
2341                  an IANA Considerations Section in RFCs", BCP 26,
2342                  RFC 5226, May 2008.
2343
2344 10.2.  Informative References
2345
2346    [GEO-POLICY]  Schulzrinne, H., Tschofenig, H., Morris, J., Cuellar,
2347                  J., and J. Polk, "Geolocation Policy: A Document Format
2348                  for Expressing Privacy Preferences for  Location
2349                  Information", Work in Progress, February 2009.
2350
2351
2352
2353
2354 Tschofenig, et al.          Standards Track                    [Page 42]
2355 \f
2356 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2357
2358
2359    [GMLv3]       "Open Geography Markup Language (GML) Implementation
2360                  Specification", OGC 02-023r4, January 2003,
2361                  <http://www.opengis.org/techno/implementation.htm>.
2362
2363    [GSM]         "TADIG Naming Conventions", Version 4.1, GSM
2364                  Association Official Document TD.13, June 2006.
2365
2366    [ISO]         "Codes for the representation of names of countries and
2367                  their subdivisions - Part 1: Country codes",
2368                  ISO 3166-1, 1997.
2369
2370    [ITU1400]     "Designations for interconnections among operators'
2371                  networks", ITU-T Recommendation M.1400, January 2004.
2372
2373    [ITU212]      "The international identification plan for mobile
2374                  terminals and mobile users", ITU-T
2375                  Recommendation E.212, May 2004.
2376
2377    [PEAP]        Josefsson, S., Palekar, A., Simon, D., and G. Zorn,
2378                  "Protected EAP Protocol (PEAP) Version 2", Work
2379                  in Progress, October 2004.
2380
2381    [RFC1305]     Mills, D., "Network Time Protocol (Version 3)
2382                  Specification, Implementation", RFC 1305, March 1992.
2383
2384    [RFC1994]     Simpson, W., "PPP Challenge Handshake Authentication
2385                  Protocol (CHAP)", RFC 1994, August 1996.
2386
2387    [RFC2866]     Rigney, C., "RADIUS Accounting", RFC 2866, June 2000.
2388
2389    [RFC3579]     Aboba, B. and P. Calhoun, "RADIUS (Remote
2390                  Authentication Dial In User Service) Support For
2391                  Extensible Authentication Protocol (EAP)", RFC 3579,
2392                  September 2003.
2393
2394    [RFC3693]     Cuellar, J., Morris, J., Mulligan, D., Peterson, J.,
2395                  and J. Polk, "Geopriv Requirements", RFC 3693,
2396                  February 2004.
2397
2398    [RFC4005]     Calhoun, P., Zorn, G., Spence, D., and D. Mitton,
2399                  "Diameter Network Access Server Application", RFC 4005,
2400                  August 2005.
2401
2402    [RFC4017]     Stanley, D., Walker, J., and B. Aboba, "Extensible
2403                  Authentication Protocol (EAP) Method Requirements for
2404                  Wireless LANs", RFC 4017, March 2005.
2405
2406
2407
2408
2409
2410 Tschofenig, et al.          Standards Track                    [Page 43]
2411 \f
2412 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2413
2414
2415    [RFC4072]     Eronen, P., Hiller, T., and G. Zorn, "Diameter
2416                  Extensible Authentication Protocol (EAP) Application",
2417                  RFC 4072, August 2005.
2418
2419    [RFC4119]     Peterson, J., "A Presence-based GEOPRIV Location Object
2420                  Format", RFC 4119, December 2005.
2421
2422    [RFC4187]     Arkko, J. and H. Haverinen, "Extensible Authentication
2423                  Protocol Method for 3rd Generation Authentication and
2424                  Key Agreement (EAP-AKA)", RFC 4187, January 2006.
2425
2426    [RFC4282]     Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The
2427                  Network Access Identifier", RFC 4282, December 2005.
2428
2429    [RFC4306]     Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
2430                  RFC 4306, December 2005.
2431
2432    [RFC4372]     Adrangi, F., Lior, A., Korhonen, J., and J. Loughney,
2433                  "Chargeable User Identity", RFC 4372, January 2006.
2434
2435    [RFC4745]     Schulzrinne, H., Tschofenig, H., Morris, J., Cuellar,
2436                  J., Polk, J., and J. Rosenberg, "Common Policy: A
2437                  Document Format for Expressing Privacy Preferences",
2438                  RFC 4745, February 2007.
2439
2440    [RFC4825]     Rosenberg, J., "The Extensible Markup Language (XML)
2441                  Configuration Access Protocol (XCAP)", RFC 4825,
2442                  May 2007.
2443
2444    [RFC4941]     Narten, T., Draves, R., and S. Krishnan, "Privacy
2445                  Extensions for Stateless Address Autoconfiguration in
2446                  IPv6", RFC 4941, September 2007.
2447
2448    [RFC5106]     Tschofenig, H., Kroeselberg, D., Pashalidis, A., Ohba,
2449                  Y., and F. Bersani, "The Extensible Authentication
2450                  Protocol-Internet Key Exchange Protocol version 2 (EAP-
2451                  IKEv2) Method", RFC 5106, February 2008.
2452
2453    [RFC5281]     Funk, P. and S. Blake-Wilson, "Extensible
2454                  Authentication Protocol Tunneled Transport Layer
2455                  Security Authenticated Protocol Version 0 (EAP-
2456                  TTLSv0)", RFC 5281, August 2008.
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466 Tschofenig, et al.          Standards Track                    [Page 44]
2467 \f
2468 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2469
2470
2471 Appendix A.  Matching with GEOPRIV Requirements
2472
2473    This section compares the requirements for a GEOPRIV using protocol,
2474    described in [RFC3693], against the approach of distributing Location
2475    Objects with RADIUS.
2476
2477    In Appendices A.1 and A.2, we discuss privacy implications when
2478    RADIUS entities make location information available to other parties.
2479    In Appendix A.3, the requirements are matched against these two
2480    scenarios.
2481
2482 A.1.  Distribution of Location Information at the User's Home Network
2483
2484    When location information is conveyed from the RADIUS client to the
2485    RADIUS server, then it might subsequently be made available for
2486    different purposes.  This section discusses the privacy implications
2487    for making location information available to other entities.
2488
2489    To use a more generic scenario, we assume that the visited RADIUS and
2490    the home RADIUS server belong to different administrative domains.
2491    The Location Recipient obtains location information about a
2492    particular Target via protocols specified outside the scope of this
2493    document (e.g., SIP, HTTP, or an API).
2494
2495    The subsequent figure shows the interacting entities graphically.
2496
2497    visited network    |        home network
2498                       |
2499                       |        +----------+
2500                       |        |  Rule    |
2501                       |        | Holder   |
2502                       |        +----+-----+
2503                       |             |
2504                       |         rule|interface
2505     +----------+      |             V                     +----------+
2506     |Location  |      |        +----------+  notification |Location  |
2507     |Generator |      |        |Location  |<------------->|Recipient |
2508     +----------+  publication  |Server    |  interface    |          |
2509     |RADIUS    |<------------->+----------+               +----------+
2510     |Client    |  interface    |RADIUS    | E.g., SIP/HTTP
2511     +----------+      |        |Server    |
2512                       |        +----------+
2513     E.g., NAS       RADIUS
2514                       |
2515                       |
2516
2517                Figure 8: Location Server at the Home Network
2518
2519
2520
2521
2522 Tschofenig, et al.          Standards Track                    [Page 45]
2523 \f
2524 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2525
2526
2527    The term 'Rule Holder' in Figure 8 denotes the entity that creates
2528    the authorization ruleset.
2529
2530 A.2.  Distribution of Location Information at the Visited Network
2531
2532    This section describes a scenario where location information is made
2533    available to Location Recipients by a Location Server in the visited
2534    network.  Some identifier needs to be used as an index within the
2535    location database.  One possible identifier is the Network Access
2536    Identifier.  RFC 4282 [RFC4282] and RFC 4372 [RFC4372] provide
2537    background regarding whether entities in the visited network can
2538    obtain the user's NAI in cleartext.
2539
2540    The visited network provides location information to a Location
2541    Recipient (e.g., via SIP or HTTP).  This document enables the NAS to
2542    obtain the user's privacy policy via the interaction with the RADIUS
2543    server.  Otherwise, only default policies, which are very
2544    restrictive, are available.  This allows the Location Server in the
2545    visited network to ensure they act according to the user's policies.
2546
2547    The subsequent figure shows the interacting entities graphically.
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578 Tschofenig, et al.          Standards Track                    [Page 46]
2579 \f
2580 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2581
2582
2583     visited network    |        home network
2584                        |
2585      +----------+      |
2586      |Location  |      |
2587      |Recipient |      |
2588      |          |      |
2589      +----------+      |
2590           ^            |        +----------+
2591           |            |        |  Rule    |
2592       notification     |        | Holder   |
2593        interface       |        |          |
2594           |            |        +----+-----+
2595           |            |             |
2596           |            |         rule|interface
2597           v            |             |
2598      +----------+      |             |
2599      |Location  |      |             v
2600      |Server    |      |        +----------+
2601      +----------+ Rule Transport|RADIUS    |
2602      |RADIUS    |<------------->|Server    |
2603      |Client    |   RADIUS      +----------+
2604      +----------+      |
2605      |Location  |      |
2606      |Generator |
2607      +----------+
2608
2609              Figure 9: Location Server at the Visited Network
2610
2611    Location information always travels with privacy policies.  This
2612    document enables the RADIUS client to obtain these policies.  The
2613    Location Server can subsequently act according to these policies to
2614    provide access control using the Extended-Location-Policy-Rules and
2615    to adhere to the privacy statements in the Basic-Location-Policy-
2616    Rules.
2617
2618 A.3.  Requirements Matching
2619
2620    Section 7.1 of [RFC3693] details the requirements of a "Location
2621    Object".  We discuss these requirements in the subsequent list.
2622
2623    Req. 1.  (Location Object generalities):
2624
2625       *  Regarding requirement 1.1, the syntax and semantics of the
2626          Location Object are taken from [RFC3825] and [RFC4776].  It is
2627          furthermore possible to convert it to the format used in the
2628          Geography Markup Language (GMLv3) [GMLv3], as used with PIDF-LO
2629          [RFC4119].
2630
2631
2632
2633
2634 Tschofenig, et al.          Standards Track                    [Page 47]
2635 \f
2636 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2637
2638
2639       *  Regarding requirement 1.2, a number of fields in the civic
2640          location-information format are optional.
2641
2642       *  Regarding requirement 1.3, the inclusion of type of place item
2643          (CAtype 29) used in the DHCP civic format gives a further
2644          classification of the location.  This attribute can be seen as
2645          an extension.
2646
2647       *  Regarding requirement 1.4, this document does not define the
2648          format of the location information.
2649
2650       *  Regarding requirement 1.5, location information is only sent
2651          from the RADIUS client to the RADIUS server.
2652
2653       *  Regarding requirement 1.6, the Location Object contains both
2654          location information and privacy rules.  Location information
2655          is described in Sections 4.2, 4.3.1, and 4.3.2.  The
2656          corresponding privacy rules are detailed in Sections 4.4 and
2657          4.5.
2658
2659       *  Regarding requirement 1.7, the Location Object is usable in a
2660          variety of protocols.  The format of the object is reused from
2661          other documents, as detailed in Sections 4.2, 4.3.1, 4.3.2,
2662          4.4, and 4.5.
2663
2664       *  Regarding requirement 1.8, the encoding of the Location Object
2665          has an emphasis on a lightweight encoding format to be used
2666          with RADIUS.
2667
2668    Req. 2.  (Location Object fields):
2669
2670       *  Regarding requirement 2.1, the target identifier is carried
2671          within the network-access authentication protocol (e.g., within
2672          the EAP-Identity Response when EAP is used and/or within the
2673          EAP method itself).  As described in Section 7.2 of this
2674          document, it has a number of advantages if this identifier is
2675          not carried in clear.  This is possible with certain EAP
2676          methods whereby the identity in the EAP-Identity Response only
2677          contains information relevant for routing the response to the
2678          user's home network.  The user identity is protected by the
2679          authentication and key exchange protocol.
2680
2681       *  Regarding requirement 2.2, the Location Recipient is, in the
2682          main scenario, the home RADIUS server.  For a scenario where
2683          the Location Recipient is obtaining location information from
2684          the Location Server via HTTP or SIP, the respective mechanisms
2685
2686
2687
2688
2689
2690 Tschofenig, et al.          Standards Track                    [Page 48]
2691 \f
2692 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2693
2694
2695          defined in these protocols are used to identify the recipient.
2696          The Location Generator cannot, a priori, know the recipients if
2697          they are not defined in this protocol.
2698
2699       *  Regarding requirement 2.3, the credentials of the Location
2700          Recipient are known to the RADIUS entities based on the
2701          security mechanisms defined in the RADIUS protocol itself.
2702          Section 7 of this document describes these security mechanisms
2703          offered by the RADIUS protocol.  The same is true for
2704          requirement 2.4.
2705
2706       *  Regarding requirement 2.5, Sections 4.2, 4.3.1, and 4.3.2
2707          describe the content of the Location fields.  Since the
2708          location format itself is not defined in this document, motion
2709          and direction vectors as listed in requirement 2.6 are not
2710          defined.
2711
2712       *  Regarding requirement 2.6, this document provides the
2713          capability for the RADIUS server to indicate what type of
2714          location information it would like to see from the RADIUS
2715          client.
2716
2717       *  Regarding requirement 2.7, timing information is provided with
2718          the 'Sighting Time' and 'Time-to-Live' fields defined in
2719          Section 4.2.
2720
2721       *  Regarding requirement 2.8, a reference to an external (more
2722          detailed ruleset) is provided with the Extended-Location-
2723          Policy-Rules Attribute in Section 4.5.
2724
2725       *  Regarding requirement 2.9, security headers and trailers are
2726          provided as part of the RADIUS protocol or even as part of
2727          IPsec.
2728
2729       *  Regarding requirement 2.10, a version number in RADIUS is
2730          provided with the IANA registration of the attributes.  New
2731          attributes are assigned a new IANA number.
2732
2733    Req. 3.  (Location Data Types):
2734
2735       *  Regarding requirement 3.1, this document reuses civic and
2736          geospatial location information as described in Sections 4.3.2
2737          and 4.3.1.
2738
2739       *  With the support of civic and geospatial location information,
2740          support of requirement 3.2 is fulfilled.
2741
2742
2743
2744
2745
2746 Tschofenig, et al.          Standards Track                    [Page 49]
2747 \f
2748 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2749
2750
2751       *  Regarding requirement 3.3, the geospatial location information
2752          used by this document only refers to absolute coordinates.
2753          However, the granularity of the location information can be
2754          reduced with the help of the AltRes, LoRes, and LaRes fields
2755          described in [RFC3825].
2756
2757       *  Regarding requirement 3.4, further Location Data Types can be
2758          added via new coordinate reference systems (CRSs -- see the
2759          Datum field in [RFC3825]) and via extensions to [RFC3825] and
2760          [RFC4776].
2761
2762    Section 7.2 of [RFC3693] details the requirements of a "using
2763    protocol".  These requirements are listed below.
2764
2765    Req. 4.:  The using protocol has to obey the privacy and security
2766       instructions coded in the Location Object (LO) regarding the
2767       transmission and storage of the LO.  This document requires that
2768       entities that aim to make location information available to third
2769       parties be required to obey the privacy instructions.
2770
2771    Req. 5.:  The using protocol will typically facilitate that the keys
2772       associated with the credentials are transported to the respective
2773       parties, that is, key establishment is the responsibility of the
2774       using protocol.  Section 7 of this document specifies how security
2775       mechanisms are used in RADIUS and how they can be reused to
2776       provide security protection for the Location Object.
2777       Additionally, the privacy considerations (see Section 7.2) are
2778       also relevant for this requirement.
2779
2780    Req. 6.  (Single Message Transfer):  In particular, for tracking of
2781       small target devices, the design should allow a single message/
2782       packet transmission of location as a complete transaction.  The
2783       encoding of the Location Object is specifically tailored towards
2784       the inclusion into a single message that even respects the (Path)
2785       MTU size.
2786
2787    Section 7.3 of [RFC3693] details the requirements of a "Rule-based
2788    Location Data Transfer".  These requirements are listed below.
2789
2790    Req. 7.  (LS Rules):  With the scenario shown in Figure 8, the
2791       decision of a Location Server to provide a Location Recipient
2792       access to location information is based on Rule Maker-defined
2793       privacy rules that are stored at the home network.  With regard to
2794       the scenario shown in Figure 9, the Rule Maker-defined privacy
2795       rules are sent from the RADIUS server to the NAS (see Sections
2796       4.4, 4.5, and 7.2 for more details).
2797
2798
2799
2800
2801
2802 Tschofenig, et al.          Standards Track                    [Page 50]
2803 \f
2804 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2805
2806
2807    Req. 8.  (LG Rules):  For all usage scenarios, it is possible to
2808       consider the privacy rule before transmitting location information
2809       from the NAS to the RADIUS server or even to third parties.  In
2810       the case of an out-of-band agreement between the owner of the NAS
2811       and the owner of the RADIUS server, privacy might be applied on a
2812       higher granularity.  For the scenario shown in Figure 8, the
2813       visited network is already in possession of the user's location
2814       information prior to the authentication and authorization of the
2815       user.  A correlation between the location and the user identity
2816       might, however, still not be possible for the visited network (as
2817       explained in Section 7.2).  A Location Server in the visited
2818       network has to evaluate available rulesets.
2819
2820    Req. 9.  (Viewer Rules):  The Rule Maker might define (via mechanisms
2821       outside the scope of this document) which policy rules are
2822       disclosed to other entities.
2823
2824    Req. 10.  (Full Rule language):  GEOPRIV has defined a rule language
2825       capable of expressing a wide range of privacy rules that is
2826       applicable in the area of the distribution of Location Objects.  A
2827       basic ruleset is provided with the Basic-Location-Policy-Rules
2828       Attribute (Section 4.4).  A reference to the extended ruleset is
2829       carried in Section 4.5.  The format of these rules is described in
2830       [RFC4745] and [GEO-POLICY].
2831
2832    Req. 11.  (Limited Rule language):  A limited (or basic) ruleset is
2833       provided by the Policy-Information Attribute in Section 4.4 (and
2834       as introduced with PIDF-LO [RFC4119]).
2835
2836    Section 7.4 of [RFC3693] details the requirements of a "Location
2837    Object Privacy and Security".  These requirements are listed below.
2838
2839    Req. 12 (Identity Protection):  Support for unlinkable pseudonyms is
2840       provided by the usage of a corresponding authentication and key-
2841       exchange protocol.  Such protocols are available, for example,
2842       with the support of EAP as network-access authentication methods.
2843       Some EAP methods support passive user-identity confidentiality,
2844       whereas others even support active user-identity confidentiality.
2845       This issue is further discussed in Section 7.  The importance for
2846       user-identity confidentiality and identity protection has already
2847       been recognized as an important property (see, for example, a
2848       document on EAP method requirements for wireless LANs [RFC4017]).
2849
2850    Req. 13.  (Credential Requirements):  As described in Section 7 ,
2851       RADIUS signaling messages can be protected with IPsec.  This
2852       allows a number of authentication and key exchange protocols to be
2853       used as part of IKE, IKEv2, or KINK.
2854
2855
2856
2857
2858 Tschofenig, et al.          Standards Track                    [Page 51]
2859 \f
2860 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2861
2862
2863    Req. 14.  (Security Features):  GEOPRIV defines a few security
2864       requirements for the protection of Location Objects, such as
2865       mutual end-point authentication, data object integrity, data
2866       object confidentiality, and replay protection.  As described in
2867       Section 7, these requirements are fulfilled with the usage of
2868       IPsec if mutual authentication refers to the RADIUS entities
2869       (acting as various GEOPRIV entities) that directly communicate
2870       with each other.
2871
2872    Req. 15.  (Minimal Crypto):  A minimum of security mechanisms are
2873       mandated by the usage of RADIUS.  Communication security for
2874       Location Objects between RADIUS infrastructure elements is
2875       provided by the RADIUS protocol (including IPsec and its dynamic
2876       key-management framework), rather than relying on object security
2877       via S/SIME (which is not available with RADIUS).
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914 Tschofenig, et al.          Standards Track                    [Page 52]
2915 \f
2916 RFC 5580          Carrying LOs in RADIUS and Diameter        August 2009
2917
2918
2919 Authors' Addresses
2920
2921    Hannes Tschofenig (editor)
2922    Nokia Siemens Networks
2923    Linnoitustie 6
2924    Espoo  02600
2925    Finland
2926
2927    Phone: +358 (50) 4871445
2928    EMail: Hannes.Tschofenig@gmx.net
2929    URI:   http://www.tschofenig.priv.at
2930
2931
2932    Farid Adrangi
2933    Intel Corporatation
2934    2111 N.E. 25th Avenue
2935    Hillsboro OR
2936    USA
2937
2938    EMail: farid.adrangi@intel.com
2939
2940
2941    Mark Jones
2942    Bridgewater Systems Corporation
2943    303 Terry Fox Drive
2944    Ottawa, Ontario  K2K 3J1
2945    CANADA
2946
2947    EMail: mark.jones@bridgewatersystems.com
2948
2949
2950    Avi Lior
2951    Bridgewater Systems Corporation
2952    303 Terry Fox Drive
2953    Ottawa, Ontario  K2K 3J1
2954    CANADA
2955
2956    EMail: avi@bridgewatersystems.com
2957
2958
2959    Bernard Aboba
2960    Microsoft Corporation
2961    One Microsoft Way
2962    Redmond, WA  98052
2963    USA
2964
2965    EMail: bernarda@microsoft.com
2966
2967
2968
2969
2970 Tschofenig, et al.          Standards Track                    [Page 53]
2971 \f