rfc-5222

LoST: A Location-to-Service Translation Protocol

T. Hardie, A. Newton, H. Schulzrinne, H. Tschofenig
date2008-08 streamIETF areaart wgecrit statusPROPOSED STANDARD pages69 canonicalhttps://www.rfc-editor.org/rfc/rfc5222 doi10.17487/RFC5222 errataview
This document describes an XML-based protocol for mapping service identifiers and geodetic or civic location information to service contact URIs. In particular, it can be used to determine the location-appropriate Public Safety Answering Point (PSAP) for emergency services. [STANDARDS-TRACK]

updated by

Extracted elements (30)

design-rationale §5.6

Service boundary references rather than inline values are offered because geodetic boundaries can contain thousands of points. The 128-bit random key is globally unique and tied to a specific boundary version; clients can safely cache boundaries across multiple service URL refresh cycles without re-fetching unchanged boundary data.

realtime

design-rationale §12

Two mandatory baseline location profiles (geodetic-2d and civic) are defined rather than a single universal profile because civic and geodetic location information are fundamentally different in nature; mixing them in a single request would require separate requests anyway, and the two-profile baseline ensures all conformant implementations share common ground.

realtime

interoperability-note §12.1

If a client sends location information conformant to a non-baseline profile, it MUST also include location information conformant to one of the two baseline profiles in the same request; otherwise a server that does not support the non-baseline profile cannot understand the request.

realtime

interoperability-note §5.5

Multiple <serviceBoundary> elements formatted according to different location profiles within a single <findServiceResponse> are alternative representations of the same area, not additive geometries. However, multiple location elements within a single <serviceBoundary> element are additive, allowing non-contiguous service regions.

realtime

normative-requirement §16 MUST

All LoST clients and servers MUST understand UTF-8 and UTF-16 encoded XML, and MUST NOT encode XML with any other encoding.

realtime

normative-requirement §5.6 MUST

If a service boundary changes, a new identifier MUST be chosen for the <serviceBoundaryReference> key. Clients holding a boundary for a known key can therefore skip re-fetching it without consulting the server.

realtime

normative-requirement §14 MUST

LoST over HTTP uses the POST method. HTTP requests MUST include the Cache-Control 'no-cache' directive to prevent stale responses from HTTP caches. All LoST responses, including errors and warnings, are carried in HTTP 2xx responses.

http, realtime

normative-requirement §12.1 MUST

Requests MUST contain location information conformant to exactly one of the two baseline profiles (geodetic-2d or civic), plus zero or more additional profiles. A client MUST NOT send <location> elements derived from different baseline profiles in the same request.

realtime

normative-requirement §12.1 MUST

Servers MUST implement all location profiles defined in this document (geodetic-2d and civic). If a server receives a request containing only unrecognized profiles, it responds with a <locationProfileError>.

realtime

normative-requirement §5.8 MUST

Service URLs returned in <uri> elements MUST be absolute URLs. Each URL scheme MUST appear at most once, though both secured and unsecured versions of a protocol (e.g., 'sip' and 'sips') may coexist.

realtime

normative-requirement §5.2 MUST

The <mapping> element MUST include the 'expires' attribute containing the absolute time (timezoned XML dateTime) at which the mapping becomes invalid. Alternatively, the attribute may contain 'NO-CACHE' or 'NO-EXPIRATION'.

realtime

normative-requirement §12.1 MUST

The <serviceBoundary> element in a response MUST use the same location profile that was used to retrieve the answer and MUST indicate that profile via the 'profile' attribute.

realtime

normative-requirement §5.1 MUST

The 'sourceId' attribute MUST be unique among all different mappings maintained by the authoritative source for a particular service. A UUID is a suitable format. All three of 'source', 'sourceId', and 'lastUpdated' are REQUIRED for every <mapping> element.

realtime

normative-requirement §8.3.1 MUST NOT

There MUST NOT be more than one <location> element for each distinct location profile in a <findService> request. The server uses the first location element whose profile it understands and ignores the others.

realtime

normative-requirement §5.4 MUST

When a server returns an alternative service because the requested service is unavailable at the queried location, it MUST include a <service> element with the alternative service URN in the mapping response.

realtime

protocol-element §13.1

LoST errors are returned in an <errors> element when no useful response can be produced; warnings are returned in a <warnings> element alongside a partial response. Both carry a 'source' attribute naming the originating server. Defined conditions include badRequest, forbidden, internalError, loop, locationInvalid, locationProfileUnrecognized, notFound, serviceNotImplemented, serverTimeout, and serverError.

realtime

protocol-element §8

The <findService> request maps a location (one or more <location> elements) and a service URN to one or more service URIs. Attributes control recursion ('recursive'), service boundary format ('serviceBoundary'), and optional civic address validation ('validateLocation'). The <findServiceResponse> returns one or more <mapping> elements.

realtime

protocol-element §12.2

The geodetic-2d location profile supports Point, Polygon, Circle, Ellipse, and ArcBand shapes. When a non-Point shape spans multiple service areas, a server MAY return multiple <mapping> elements; servers are not required to return all mappings to prevent denial-of-service via very large query areas.

realtime

protocol-element §7

The <locationUsed> element in a response identifies by its 'id' attribute which <location> element from the request the server actually used to produce the mapping result.

realtime

protocol-element §8.4.2

The <locationValidation> response element enumerates civic address tokens as <valid> (used for mapping), <invalid> (checked but incorrect), or <unchecked> (not evaluated). Tokens absent from all three lists are implicitly unchecked. The server SHOULD include this when 'validateLocation' was true in the request.

realtime

protocol-element §5

The <mapping> element is the core data element in LoST, describing a service region and associated service URLs. It carries mandatory attributes 'source', 'sourceId', 'lastUpdated', and 'expires', plus child elements for displayName, service, serviceBoundary or serviceBoundaryReference, one or more <uri> elements, and an optional <serviceNumber>.

realtime, rtp

protocol-element §6

The <path> element tracks the chain of LoST servers through which a request has passed using one or more <via> child elements, each carrying a LoST application unique string. It is used to prevent loops and enable request tracing; the authoritative server copies it verbatim into the response.

realtime

protocol-element §5.6

The <serviceBoundaryReference> element returns a globally unique 'key' (a random token with at least 128 bits of entropy) and a 'source' attribute identifying the authoritative server from which the full boundary can be retrieved via a <getServiceBoundary> request.

realtime

registry §17.5

This document creates the LoST Location Profile Registry (Standards Action required), with initial entries 'geodetic-2d' (two-dimensional geodetic profile defined in Section 12.2) and 'civic' (basic civic address profile defined in Section 12.3).

registry, realtime

registry §17.2

This document registers the MIME media type 'application/lost+xml' (file extension .lostxml) for carrying LoST protocol payloads in HTTP exchanges.

registry, http, realtime

registry §17.1

This document registers the U-NAPTR application service tag 'LoST' and application protocol tags 'http' and 'https' for LoST server discovery via U-NAPTR/DDDS. LoST server names are DNS domain names resolved through U-NAPTR to obtain HTTP or HTTPS URLs.

registry, dns, realtime

security-consideration §18

An attacker who can eavesdrop on LoST lookup requests can infer the existence and possibly the nature of an emergency, potentially enabling a physical attack on the caller. This threat motivates confidentiality protection via TLS.

security, privacy, realtime

security-consideration §18

Server identity checks as described in RFC 2818 Section 3.1 are RECOMMENDED. The hostname compared against the server certificate is the hostname in the URI returned by U-NAPTR, not the DNS name used as input to NAPTR resolution. Omitting the check allows an attacker to masquerade as a LoST server.

security, tls, realtime

security-consideration §18

TLS MUST be implemented and SHOULD be used for both client-to-server and server-to-server LoST queries. Server-to-server TLS is specifically recommended to prevent cache poisoning attacks in which an attacker replaces answers given to caching LoST servers.

security, tls, realtime

state-machine §8.3.3

LoST operates in recursive or iterative mode per request, controlled by the 'recursive' attribute. In recursive mode the contacted server queries other servers on the client's behalf; in iterative mode it returns a redirect to the next server. A server MUST NOT recurse if 'recursive' is 'false', but MAY always return a redirect (indirection).

realtime