One document matched: draft-rosen-sipping-cap-03.xml
<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="yes" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC3265 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3265.xml">
<!ENTITY RFC3903 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3903.xml">
<!ENTITY RFC3023 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3023.xml">
<!ENTITY RFC3629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3629.xml">
<!ENTITY I-D.ietf-geopriv-pdif-lo-profile PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-geopriv-pdif-lo-profile.xml'>
<!ENTITY RFC5139 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5139.xml'>
]>
<rfc category="std" docName="draft-rosen-sipping-cap-03.txt" ipr="trust200902">
<front>
<title abbrev="SIP CAP"> Session Initiation Protocol (SIP) Event Package for the Common Alerting
Protocol (CAP)</title>
<author initials="B." surname="Rosen" fullname="Brian Rosen">
<organization>NeuStar, Inc. </organization>
<address>
<postal>
<street>470 Conrad Dr</street>
<city>Mars</city>
<region> PA </region>
<code>16046 </code>
<country>US </country>
</postal>
<phone> </phone>
<email>br@brianrosen.net
</email>
</address>
</author>
<author initials="H." surname="Schulzrinne" fullname="Henning Schulzrinne">
<organization abbrev="Columbia U.">Columbia University</organization>
<address>
<postal>
<street>Department of Computer Science</street>
<street>450 Computer Science Building</street>
<city>New York</city>
<region>NY</region>
<code>10027</code>
<country>US</country>
</postal>
<phone>+1 212 939 7004</phone>
<email>hgs+ecrit@cs.columbia.edu</email>
<uri>http://www.cs.columbia.edu</uri>
</address>
</author>
<author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
<organization>Nokia Siemens Networks</organization>
<address>
<postal>
<street>Linnoitustie 6</street>
<city>Espoo</city>
<code>02600</code>
<country>Finland</country>
</postal>
<phone>+358 (50) 4871445</phone>
<email>Hannes.Tschofenig@gmx.net</email>
<uri>http://www.tschofenig.priv.at</uri>
</address>
</author>
<date year="2009"/>
<area>Internet</area>
<workgroup>SIPPING</workgroup>
<keyword>Internet-Draft</keyword>
<keyword>CAP</keyword>
<keyword>Common Alerting Protocol</keyword>
<abstract>
<t>The Common Alerting Protocol (CAP) is an XML document format for exchanging emergency
alerts and public warnings. This document allows CAP documents to be distributed via the
event notification mechanism available with the Session Initiation Protocol (SIP). </t>
</abstract>
</front>
<middle>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
<section anchor="introduction" title="Introduction">
<t> The Common Alerting Protocol (CAP) <xref target="cap"/> is an XML document format for
exchanging emergency alerts and public warnings. This document allows CAP documents to be
distributed via the event notification mechanism available with the Session Initiation
Protocol (SIP). </t>
<t>Additionally, a MIME object is registered to allow CAP documents to be exchanged in other
SIP documents.</t>
</section>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
<section anchor="terminology" title="Terminology">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
"RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in
RFC 2119 <xref target="RFC2119"/>.</t>
</section>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
<section title="The 'common-alerting-protocol' Event Package">
<t>RFC 3265 <xref target="RFC3265"/> defines a SIP extension for subscribing to remote nodes
and receiving notifications of changes (events) in their states. It leaves the definition of
many aspects of these events to concrete extensions, known as event packages. This document
defines such an event package. This section fills in the information required for all event
packages by RFC 3265. </t>
<t> Additionally, RFC 3903 <xref target="RFC3903"/> defines an extension that allows SIP User
Agents to publish event state. According to RFC 3903, any event package intended to be used
in conjunction with the SIP PUBLISH method has to include a considerations section. This
section also fills the information for all event packages to be used with PUBLISH requests. </t>
<t>This document defines a new "common-alerting-protocol" event package. Event Publication
Agents (EPA) use PUBLISH requests to inform an Event State Compositor (ESC) of changes in
the common-alerting-protocol event package. Acting as a notifier, the ESC notifies
subscribers about emergency alerts and public warnings. </t>
<section title="Package Name">
<t> The name of this package is "common-alerting-protocol". As specified in RFC 3265 <xref
target="RFC3265"/>, this value appears in the Event header field present in SUBSCRIBE
and NOTIFY requests. As specified in RFC 3903 <xref target="RFC3903"/>, this value also
appears in the Event header field present in PUBLISH requests. </t>
</section>
<section title="Event Package Parameters">
<t> RFC 3265 <xref target="RFC3265"/> allows event packages to define additional parameters
carried in the Event header field. This event package, "common-alerting-protocol", does
not define additional parameters. </t>
</section>
<section title="SUBSCRIBE Bodies">
<t>RFC 3265 <xref target="RFC3265"/> allows a SUBSCRIBE request to contain a body. This
document allows the body to contain civic and geodetic location information to be carried.
The 2D location shapes listed in <xref target="I-D.ietf-geopriv-pdif-lo-profile"/>, e.g.,
<Point> <Polygon>, <Circle>,
<Ellipse>, <ArcBand>, and a <civicAddress>
element, defined in <xref target="RFC5139"/>, in the body of the message. The recipient of
the SUBSCRIBE message SHOULD use this information to restrict the warning messages that
are being delivered. [Editor's note: Information about the type of alerts that shall be
received may need to be indicated as well.]</t>
</section>
<section title="Subscription Duration">
<t>The default expiration time for subscriptions within this package is 3600 seconds. As per
RFC 3265 <xref target="RFC3265"/>, the subscriber MAY specify an alternate expiration in
the Expires header field. </t>
</section>
<section title="NOTIFY Bodies">
<t> As described in RFC 3265 <xref target="RFC3265"/>, the NOTIFY message will contain
bodies describing the state of the subscribed resource. This body is in a format listed in
the Accept header field of the SUBSCRIBE request, or a package-specific default format if
the Accept header field was omitted from the SUBSCRIBE request. </t>
<t> In this event package, the body of the notification contains a Common Alerting Protocol
(CAP) document, i.e., an XML document. The format of the XML documents used by CAP are
described in <xref target="cap"/>. </t>
<t>For an initial notify, unlike for other event packages, there is no current initial
state, unless there's a pending alert. Hence, returning a NOTIFY with a non-empty body
only makes sense if there are indeed active alerts.</t>
<t> All subscribers and notifiers of the "common-alerting-protocol" event package MUST
support the "application/common-alerting-protocol+xml" data format. The SUBSCRIBE request
MAY contain an Accept header field. If no such header field is present, it has a default
value of "application/common-alerting-protocol+xml" (assuming that the Event header field
contains a value of "common-alerting-protocol"). If the Accept header field is present, it
MUST include "application/common-alerting-protocol+xml". </t>
</section>
<section title="Notifier Processing of SUBSCRIBE Requests">
<t> The contents of a CAP document contains public information. Hence, providing CAP
documents may not require authorization by subscribers. </t>
</section>
<section title="Notifier Generation of NOTIFY Requests">
<t> RFC 3265 <xref target="RFC3265"/> details the formatting and structure of NOTIFY
messages. However, packages are mandated to provide detailed information on when to send a
NOTIFY, how to compute the state of the resource, how to generate neutral or fake state
information, and whether state information is complete or partial. This section describes
those details for the common-alerting-protocol event package. </t>
<t> A notifier MAY send a NOTIFY at any time. Typically, it will send one when an alert or
early warning message is available. The NOTIFY request contains a body containing one or
multiple CAP document(s). The times at which the NOTIFY is sent for a particular
subscriber, and the contents of the body within that notification, are subject to any
rules specified by the authorization policy that governs the subscription. </t>
<t> In the case of a pending subscription, when final authorization is determined, a NOTIFY
can be sent. If the result of the authorization decision was success, a NOTIFY SHOULD be
sent and SHOULD contain a complete CAP document. If the subscription is rejected, a NOTIFY
MAY be sent. As described in RFC 3265 <xref target="RFC3265"/>, the Subscription-State
header field indicates the state of the subscription. </t>
<t>The body of the NOTIFY MUST be sent using one of the types listed in the Accept header
field in the most recent SUBSCRIBE request, or using the type
"application/common-alerting-protocol+xml" if no Accept header field was present.</t>
<t> Notifiers will typically act as Event State Compositors (ESC) and thus will learn the
'common-alerting-protocol' event state via PUBLISH requests sent from authorized Event
Publication Agents (EPAs). </t>
</section>
<section title="Subscriber Processing of NOTIFY Requests">
<t> RFC 3265 <xref target="RFC3265"/> leaves it to event packages to describe the process
followed by the subscriber upon receipt of a NOTIFY request, including any logic required
to form a coherent resource state. </t>
</section>
<section title="Handling of Forked Requests">
<t> RFC 3265 <xref target="RFC3265"/> requires each package to describe handling of forked
SUBSCRIBE requests. </t>
<t> This specification only allows a single dialog to be constructed as a result of emitting
an initial SUBSCRIBE request. </t>
</section>
<section title="Rate of Notifications">
<t> RFC 3265 <xref target="RFC3265"/> requires each package to specify the maximum rate at
which notifications can be sent. </t>
<t> Notifiers SHOULD NOT generate notifications for a single user at a rate of more than
once every five seconds. </t>
</section>
<section title="State Agents">
<t> RFC 3265 <xref target="RFC3265"/> requires each package to consider the role of state
agents in the package and, if they are used, to specify how authentication and
authorization are done. This specification allows state agents to be located in the
network.</t>
</section>
<section title="Examples">
<t>An example is provided in <xref target="example"/>. </t>
</section>
<section title="Use of URIs to Retrieve State">
<t> RFC 3265 <xref target="RFC3265"/> allows packages to use URIs to retrieve large state
documents. </t>
<t> CAP documents are fairly small. This event package does not provide a mechanism to use
URIs to retrieve large state documents. </t>
</section>
<section title="PUBLISH Bodies">
<t>RFC 3903 <xref target="RFC3903"/> requires event packages to define the content types
expected in PUBLISH requests. </t>
<t> In this event package, the body of a PUBLISH request may contain a CAP document. A CAP
document describes an emergency alert or an early warning event. </t>
<t> All EPAs and ESCs MUST support the "application/common-alerting-protocol+xml" data
format and MAY support other formats. </t>
<t>Note that this document does not mandate how CAP documents are made available to the
Public Warning System, for example by authorities or similar organizations. The PUBLISH
mechanism is one way.</t>
</section>
<section title="PUBLISH Response Bodies">
<t> This specification assumes that a PUBLISH also conveys a CAP document that is later sent
further on to watchers. </t>
</section>
<section title="Multiple Sources for Event State">
<t> RFC 3903 <xref target="RFC3903"/> requires event packages to specify whether multiple
sources can contribute to the event state view at the ESC. </t>
<t> This event package allows different EPAs to publish CAP documents for a particular user.
The concept of composition is not applicable for this application usage.</t>
</section>
<section title="Event State Segmentation">
<t> RFC 3903 <xref target="RFC3903"/> defines segments within a state document. Each segment
is defined as one of potentially many identifiable sections in the published event state. </t>
<t> This event package defines does not differentiate between different segments. </t>
</section>
<section title="Rate of Publication">
<t> RFC 3903 <xref target="RFC3903"/> allows event packages to define their own rate of
publication. </t>
<t> There are no rate-limiting recommendations for common-alerting-protocol publication.
Since emergency alerts and early warning events are typically rare there is no
periodicity, nor a minimum or maximum rate of publication. </t>
</section>
</section>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
<section anchor="example" title="Examples">
<t>Here is an example of a CAP document.</t>
<figure title="Example for a Severe Thunderstorm Warning">
<artwork>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<alert xmlns="urn:oasis:names:tc:emergency:cap:1.1">
<identifier>KSTO1055887203</identifier>
<sender>KSTO@NWS.NOAA.GOV</sender>
<sent>2003-06-17T14:57:00-07:00</sent>
<status>Actual</status>
<msgType>Alert</msgType>
<scope>Public</scope>
<info>
<category>Met</category>
<event>SEVERE THUNDERSTORM</event>
<urgency>Severe</urgency>
<certainty>Likely</certainty>
<senderName>NATIONAL WEATHER SERVICE SACRAMENTO</senderName>
<headline>SEVERE THUNDERSTORM WARNING</headline>
<description> AT 254 PM PDT...
NATIONAL WEATHER SERVICE
DOPPLER RADAR INDICATED A SEVERE
THUNDERSTORM OVER SOUTH CENTRAL ALPINE COUNTY...
OR ABOUT 18 MILES SOUTHEAST OF
KIRKWOOD... MOVING SOUTHWEST AT 5 MPH. HAIL...
INTENSE RAIN AND STRONG DAMAGING WINDS
ARE LIKELY WITH THIS STORM </description>
<instruction> TAKE COVER IN A SUBSTANTIAL SHELTER
UNTIL THE STORM PASSES </instruction>
<contact>BARUFFALDI/JUSKIE</contact>
<area>
<areaDesc> EXTREME NORTH CENTRAL TUOLUMNE COUNTY
IN CALIFORNIA, EXTREME NORTHEASTERN
CALAVERAS COUNTY IN CALIFORNIA, SOUTHWESTERN
ALPINE COUNTY IN CALIFORNIA </areaDesc>
<polygon> 38.47,-120.14 38.34,-119.95 38.52,-119.74
38.62,-119.89 38.47,-120.14 </polygon>
</area>
</info>
</alert>
]]></artwork>
</figure>
</section>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
<section anchor="sec-cons" title="Security Considerations">
<t> This section discusses security considerations when using SIP to distribute warning
messages using CAP. </t>
<section anchor="sec-cons-stolen-assn" title="Man-in-the-Middle Attacks">
<t>
<list style="hanging">
<t hangText="Threat:">
<vspace blankLines="1"/> The attacker could then conceivably attempt to impersonate
the subject (the putative caller) to some SIP-based target entity. <vspace
blankLines="1"/>
</t>
<t hangText="Countermeasures:">
<vspace blankLines="1"/> Such an attack is implausible for several reasons. The
subject's assertion: <list style="symbols">
<t> should be signed, thus causing any alterations to break its integrity and make
such alterations detectable. </t>
<t> the intended recipients may be listed in the optionally present audience
restriction, which is a cleartext field. As such, it would not allow automatic
processing but could give the receiving user further hints.</t>
<t> Issuer is represented in the CAP document (in the <sender>
element). </t>
<t> validity period for the CAP document may be restricted. </t>
</list>
</t>
</list>
</t>
</section>
<section anchor="sec-cons-forged-assn" title="Forgery">
<t>
<list style="hanging">
<t hangText="Threat:">
<vspace blankLines="1"/> A malicious user could forge or alter a CAP document in order
to convey messages to SIP entities that get immediate attention of users.<vspace
blankLines="1"/>
</t>
<t hangText="Countermeasures:">
<vspace blankLines="1"/> To avoid this kind of attack, the entities must assure that
proper mechanisms for protecting the CAP documents are employed, e.g., signing the CAP
document itself. Section 3.3.2.1 of <xref target="cap"/> specifies the signing of CAP
documents. </t>
</list>
</t>
</section>
<section anchor="sec-cons-replay-attack" title="Replay Attack">
<t>
<list style="hanging">
<t hangText="Threat:">
<vspace blankLines="1"/> Theft of CAP documents described in this document and replay
of it at a later time. <vspace blankLines="1"/></t>
<t hangText="Countermeasures:">
<vspace blankLines="1"/> A CAP document contains the mandatory
<identifier>, <sender>, <sent> elements and
an optional <expire> element. These attributes make the CAP document
unique for a specific sender and provide time restrictions. An entity that has
received a CAP message already within the indicated timeframe is able to detect a
replayed message and, if the content of that message is unchanged, then no additional
security vulnerability is created. Nodes that enter the area of a disaster after the
initial distribution of warnings have not yet seen the CAP message and, as such, would
not be able to distinguish a replay from the initial message being sent around.
However, if the threat that lead to the distribution of warning messages is still
imminent then there is no reason not to worry about that message. The source
distributing the early warning messages is, however, adviced to carefully select a
value for the <expires> element and it is RECOMMENDED to set this
element. </t>
</list>
</t>
</section>
<section anchor="sec-cons-authorization" title="Unauthorized Distribution">
<t>
<list style="hanging">
<t hangText="Threat:">
<vspace blankLines="1"/> When an entity receives a CAP message it has to determine
whether the entity distributing the CAP messages is genuine to avoid accepting
messages that are injected by malicious users with the potential desire to at least
get the users immediate attention. <vspace blankLines="1"/></t>
<t hangText="Countermeasures:">
<vspace blankLines="1"/> When receiving a CAP document a couple of verification steps
must be performed. First, it needs to be ensured that the message was delivered via a
trusted entitiy (such as a trusted SIP proxy) and that the communication channel
between the User Agent and it's SIP proxy is properly secured to exclude various
attacks at the SIP level. Then, the message contains the <sender> that
may contain an entity that falls within the white list of the entity receiving the
message. Finally, the message is protected by a digital signature and the entity
signing the CAP message may again be listed in a white list of the receiving entity
and may therefore be trusted. If none of these verification checks lead to a positive
indication of a known sender then the CAP document should be treated as suspicious and
configuration at the receiving entity may dictate how to process and display CAP
documents in such a case. </t>
</list>
</t>
</section>
</section>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
<section title="IANA Considerations">
<section title="Registration of the 'common-alerting-protocol' Event Package">
<t> This specification registers an event package, based on the registration procedures
defined in RFC 3265 <xref target="RFC3265"/>. The following is the information required
for such a registration: <list style="hanging">
<t hangText="Package Name:"> common-alerting-protocol </t>
<t hangText="Package or Template-Package:"> This is a package. </t>
<t hangText="Published Document:"> RFC XXX [Replace by the RFC number of this
specification]. </t>
<t hangText="Person to Contact:"> Hannes Tschofenig, Hannes.Tschofenig@nsn.com</t>
</list>
</t>
</section>
<section title="Registration of the 'application/common-alerting-protocol+xml' MIME type">
<t>
<list style="hanging">
<t hangText="To:"> ietf-types@iana.org </t>
<t hangText="Subject:">Registration of MIME media type application/
common-alerting-protocol+xml</t>
<t hangText="MIME media type name:"> application </t>
<t hangText="MIME subtype name:">common-alerting-protocol+xml </t>
<t hangText="Required parameters:"> (none) </t>
<t hangText="Optional parameters:"> charset; Indicates the character encoding of
enclosed XML. Default is UTF-8 <xref target="RFC3629"/>.</t>
<t hangText="Encoding considerations:"> Uses XML, which can employ 8-bit characters,
depending on the character encoding used. See RFC 3023 <xref target="RFC3023"/>,
Section 3.2.</t>
<t hangText="Security considerations:"> This content type is designed to carry payloads
of the Common Alerting Protocol (CAP). </t>
<t hangText="Interoperability considerations:"> This content type provides a way to
convey CAP payloads. </t>
<t hangText="Published specification:"> RFC XXX [Replace by the RFC number of this
specification]. </t>
<t hangText="Applications which use this media type:"> Applications that convey alerts
and early warnings according to the CAP standard.</t>
<t hangText="Additional information:"> OASIS has published the Common Alerting Protocol
at <xref target="cap"/>.</t>
<t hangText="Person & email address to contact for further information:"> Hannes
Tschofenig, Hannes.Tschofenig@nsn.com </t>
<t hangText="Intended usage:"> Limited use </t>
<t hangText="Author/Change controller:"> IETF SIPPING working group </t>
<t hangText="Other information:"> This media type is a specialization of application/xml
RFC 3023 <xref target="RFC3023"/>, and many of the considerations described there also
apply to application/common-alerting-protocol+xml. </t>
</list>
</t>
</section>
</section>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
<section title="Acknowledgments">
<t>The authors would like to thank Cullen Jennings for supporting this work. We would also
like to thank the participants of the Early Warning Adhoc meeting at IETF#69.</t>
</section>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
</middle>
<!-- ////////////////////////////////////////////////////////////////////////////////// -->
<back>
<references title="Normative References">
<reference anchor="RFC2119">
<front>
<title abbrev="RFC Key Words">Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname="Scott Bradner" initials="S." surname="Bradner">
<organization>Harvard University</organization>
</author>
<date month="March" year="1997"/>
</front>
<format octets="4723" target="ftp://ftp.isi.edu/in-notes/rfc2119.txt" type="TXT"/>
</reference>
<reference anchor="cap">
<front>
<title>Common Alerting Protocol v. 1.1 </title>
<author fullname="Elysa Jones" initials="E." surname="Jones">
<organization>Warning Systems, Inc</organization>
</author>
<author fullname="Art Botterell" initials="A." surname="Botterell">
<organization>Individual</organization>
</author>
<date month="October" year="2005"/>
</front>
<format
target="http://www.oasis-open.org/apps/org/workgroup/emergency/download.php/14205/emergency-CAPv1.1-Committee%20Specification.pdf"
type="PDF"/>
</reference> &RFC3265; &RFC3903; &RFC3023; &RFC3629;
&I-D.ietf-geopriv-pdif-lo-profile; &RFC5139; </references>
<!-- <references title="Informative References"> </references> -->
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-21 00:07:41 |