<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc3261 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3261.xml">
<!ENTITY rfc3311 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3311.xml">
<!ENTITY rfc3324 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3324.xml">
<!ENTITY rfc3325 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3325.xml">
<!ENTITY rfc3428 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3428.xml">
<!ENTITY rfc3725 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3725.xml">
<!ENTITY rfc3903 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3903.xml">
<!ENTITY rfc3966 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3966.xml">
<!ENTITY rfc4474 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4474.xml">
<!ENTITY rfc4916 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4916.xml">
<!ENTITY draft-uri-list SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-sipping-uri-services-07.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc sortrefs="no" ?>
<?rfc colonspace='yes' ?>
<?rfc tocindent='yes' ?>

<rfc category="info" docName="draft-ietf-sipping-update-pai-06.txt" ipr="full3978" obsoletes="" updates="RFC 3325">
<front>
  <title abbrev="Updates to SIP Asserted Identity">Updates to Asserted Identity in the Session Initiation Protocol (SIP)</title>
  <author fullname="John Elwell" initials="J." surname="Elwell">
    <organization>Siemens Enterprise Communications</organization>
    <address>
      <phone>+44 115 943 4989</phone>
      <email>john.elwell@siemens.com</email>
    </address>
  </author>
  <date year="2008"></date>
  <area>RAI</area>
  <workgroup>SIPPING WG</workgroup>
  <keyword>I-D</keyword>
  <keyword>Internet-Draft</keyword>
  <keyword>SIP</keyword>
  <keyword>P-Asserted-Identity</keyword>
  <abstract>
    <t>SIP has a mechanism for conveying the asserted identity of the originator of a request by means of the P-Asserted-Identity header field. This header field is specified for use in requests using a number of SIP methods, in particular the INVITE method. However, RFC 3325 does not specify the insertion of this header field by a trusted UAC, does not specify the use of this header field with certain SIP methods such as UPDATE, REGISTER, MESSAGE, PUBLISH and ACK, and is unclear on the use of this header field in responses. This document extends RFC 3325 to cover these situations.</t>
<t>This work is being discussed on the sipping@ietf.org mailing list.</t>
  </abstract>
</front>
<middle>
  <section 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 <xref target="RFC2119"/>.</t>
    <t>This document uses the concepts of Trust Domain and Spec(T), as specified in section 2.3 of RFC 3324 <xref target="RFC3324"/>.</t>
  </section>
  <section title="Introduction">
    <t>The Session Initiation Protocol (SIP) is specified in RFC 3261 <xref target="RFC3261"/>. RFC 3325 <xref target="RFC3325"/> specifies a mechanism for conveying within a Trust Domain the asserted identity of the originator of a SIP request. This is achieved by means of the P-Asserted-Identity header field, which is specified for use in requests using a number of SIP methods, in particular the INVITE method.</t>
    <t> RFC 3325 does not specify the insertion of the P-Asserted-Identity header field by a UAC in the same Trust Domain as the first proxy. Also RFC 3325 does not specify the use of the P-Asserted-Identity header field with certain SIP methods such as UPDATE <xref target="RFC3311"/>, REGISTER, MESSAGE <xref target="RFC3428"/>, PUBLISH <xref target="RFC3903"/> and ACK. Finally, RFC 3325 is unclear on the use of this header field in responses. There are similar omissions concerning the P-Preferred-Identity header field.</t>
    <t>This document extends RFC 3325 by allowing inclusion of the P-Asserted-Identity header field by a UAC in the same Trust Domain as the first proxy, allowing use of this header field in any request and, under certain conditions, allowing use of this header field in SIP responses. This document also allows the use of the P-Preferred-Identity header field in some of these situations.</t>
    <t>RFC 3325 allows the P-Asserted-Identity and P-Preferred-Identity header fields each to contain at most two URIs, where one is a SIP or SIPS URI <xref target="RFC3261"/> and the other is a TEL URI <xref target="RFC3966"/>. This may be unduly restrictive in future, for example if there is a need to allow other URI schemes, if there is a need to allow both a SIP and a SIPS URI or if there is a need to allow more than one URI with the same scheme (e.g., a SIP URI based on a telephone number and a SIP URI that is not based on a telephone number). This document therefore provides forwards compatibility by mandating tolerance to the receipt of unexpected URIs.</t>
    <t>This document does not alter the fact that the asserted identity mechanism has limited applicability, i.e., within a Trust Domain. For general applicability, including operation outside a Trust Domain (e.g., over the public Internet) or between different Trust Domains, a different mechanism is needed. RFC 4474 <xref target="RFC4474"/> specifies the Identity header field, in conjunction with the From header field, for providing authenticated identity in such circumstances.</t>
  </section>
  <section title="Discussion">
    <section title="Inclusion of P-Asserted-Identity by a UAC">
      <t>RFC 3325 does not include procedures for a UAC to include the P-Asserted-Identity header field in a request. This can be meaningful if the UAC is in the same Trust Domain as the first downstream SIP entity. Examples of types of UAC that are often suitable for inclusion in a Trust Domain are:
      <list style="symbols">
        <t>PSTN gateways;</t>
        <t>media servers;</t>
        <t>application servers (or B2BUAs) that act as URI list servers <xref target="I-D.ietf-sipping-uri-services"/>;</t>
        <t>application servers (or B2BUAs) that perform third party call control.</t>
      </list>
In the particular case of a PSTN gateway, the PSTN gateway might be able to assert an identity received from the PSTN, the proxy itself having no means to authenticate such an identity. Likewise, in the case of certain application server or B2BUA arrangements, the application server or B2BUA may be in a position to assert an identity of a user on the other side of that application server or B2BUA.</t>
      <t>In accordance with RFC 3325, nodes within a Trust Domain must behave in accordance with a Spec(T), and this principle needs to apply between a UAC and its proxy as part of the condition for considering the UAC to be within the same Trust Domain. Normal proxy procedures of RFC 3325 ensure that the header field is removed or replaced if the first proxy considers the UAC to be outside the Trust Domain.</t>
      <t>This update to RFC 3325 clarifies that a UAC may include a P-Asserted-Identity header field in a request in certain circumstances.</t>
    </section>
    <section title="Inclusion of P-Asserted-Identity in any request">
      <t>There are several use cases that would benefit from the use of the P-Asserted-Identity header field in an UPDATE request. These use cases apply within a Trust Domain where the use of asserted identity is appropriate (see RFC 3325).</t>
      <t>In one example, an established call passes through a gateway to the PSTN. The gateway becomes aware that the remote party in the PSTN has changed, e.g., due to call transfer. By including the P-Asserted-Identity header field in an UPDATE request, the gateway can convey the identity of the new remote party to the peer SIP UA.
      <list>
        <t>Note that the (re-)INVITE method could be used in this situation. However, this forces an offer-answer exchange, which typically is not required in this situation. Also it involves 3 messages rather than 2.</t>
      </list></t>
      <t>In another example, a B2BUA that provides third party call control (3PCC) <xref target="RFC3725"/> wishes to join two calls together, one of which is still waiting to be answered and potentially is forked to different UAs. At this point in time it is not possible to trigger the normal offer-answer exchange between the two joined parties, because of the mismatch between a single dialog on the one side and potentially multiple early dialogs on the other side, so this action must wait until one of the called UAs answers. However, it would be useful to give an early indication to each user concerned of the identity of the user to which they will become connected when the call is answered. In other words, it would provide the new calling UA with the identity of the new called user and provide the new called UA(s) with the identity of the new calling user. This can be achieved by the B2BUA sending an UPDATE request with a P-Asserted-Identity header field on the dialogs concerned.</t>
      <t>Within a Trust Domain, a P-Asserted-Identity header field could advantageously be used in a REGISTER request between an edge proxy that has authenticated the source of the request and the registrar.</t>
      <t>Within a Trust Domain, a P-Asserted-Identity header field could advantageously be used in a MESSAGE request to assert the source of a page mode instant message. This would complement its use in an INVITE request to assert the source of an instant message session or any other form of session. Similarly, between a UAC and first proxy that are not within the same Trust Domain, a P-Preferred-Identity header field could be used in a MESSAGE request to express a preference when the user has several identities.</t>
      <t>Within a Trust Domain, a P-Asserted-Identity header field could advantageously be used in a PUBLISH request to assert the source of published state information. This would complement its use in SUBSCRIBE and NOTIFY requests. Similarly, between a UAC and first proxy that are not within the same Trust Domain, a P-Preferred-Identity header field could be used in a PUBLISH request to express a preference when the user has several identities.</t>
      <t>Within a Trust Domain, a P-Asserted-Identity header field could advantageously be used in an ACK request. Considering the 3PCC scenario in Flow I of <xref target="RFC3725"/>, the asserted identity of user B may not be known when the B2BUA (controller) sends the initial INVITE request to UA A, but might be known when the B2BUA sends the ACK request to UA A (having received it in the 200 response from UA B).</t>
      <t>Thus there are several examples where P-Asserted-Identity could be used in requests with methods that are not provided for in RFC 3325 or any other RFC. This leaves a few methods for which use cases are less obvious, but the inclusion of P-Asserted Identity would not cause any harm. In any requests, the header field would simply assert the source of that request, whether or not this is of any use to the UAS. Similarly there are examples where P-Preferred-Identity could be used in requests with methods that are not provided for in RFC 3325 or any other RFC.</t>
      <t>This update to RFC 3325 allows a P-Asserted-Identity or P-Preferred-Identity header field to be included in any request.</t>
    </section>
    <section title="Inclusion of P-Asserted-Identity or P-Preferred-Identity in a response">
      <t>There are cases where the inclusion of the P-Asserted-Identity header field in responses would be useful. Retargeting of a request can result in the responding entity having a different identity from that placed in the To URI of the request. Inclusion of asserted identity in a response would provide the UAC with the identity of the responder. Some examples of the benefits to be gained include:
        <list style="symbols">
          <t>Asserted identity in a 2xx response to an INVITE request would indicate the identity of the connected user.</t>
          <t>Asserted identity in a provisional response to an INVITE request would indicate the contacted (e.g., alerted) user.</t>
          <t>Asserted identity in a 2xx response to a MESSAGE request would provide confirmation of where the message was delivered to.</t>
          <t>Asserted identity in certain 4xx/5xx/6xx responses would provide an indication of where the response originated.</t>
        </list>
In the case of a request that results in the formation of a dialog, a mid-dialog request (e.g., UPDATE) in the reverse direction can provide the identity of the user at the destination end of that dialog, and therefore the need to include asserted identity in a response to the dialog-forming request to identify the connected user is debatable. There can be some benefits in terms of ease of interworking with PSTN, where such information is placed in the response to a call establishment request. For other responses, including successful responses to requests such as MESSAGE and PUBLISH and unsuccessful responses, the use of a request in the reverse direction is unsuitable.
        <list>
          <t>Note that when the authenticated identity of the connected user is to be provided using the From and Identity header fields (as opposed to providing asserted identity using the P-Asserted-Identity header field), RFC 4916 <xref target="RFC4916"/> requires this to be done in a mid-dialog request (e.g., UPDATE) in the reverse direction. This is because the Identity header field is defined only for use in requests.</t>
        </list></t>
      <t>RFC 3325 is ambiguous on inclusion of P-Asserted-Identity in a response. For example, section 4 of RFC 3325 talks about inclusion of the header field in messages, as opposed to requests. Moreover section 5 explicitly mentions "message (request or response)". However, there are other places (e.g., sections 6, 7 and 8) that only mention requests.</t>
      <section title="Inclusion of P-Asserted-Identity or P-Preferred-Identity by a UAS in a response">
        <t>It should be permissible for a UAS to insert a P-Asserted-Identity header field into a response if it is within the same Trust Domain as the SIP entity from which the request was received.</t>
        <t>Between a UAS and a SIP entity that are not within the same Trust Domain, a P-Preferred-Identity header field could be used in a response, in order to express a preference when the authenticated user has several identities.</t>
        <t>This update to RFC 3325 allows a UAS to insert a P-Asserted-Identity or P-Preferred-Identity header field in a response.</t>
      </section>
      <section title="Inclusion of P-Asserted-Identity by a proxy in a response">
        <t>Section 5 of RFC 3325 requires a proxy to authenticate the originator of a message from a node outside the Trust Domain before including a P-Asserted-Identity header field in the forwarded message.  While this is achievable for requests using SIP digest authentication, it is not achievable in the same way for responses. A proxy cannot challenge a response and cannot establish the authenticity of the sender of a response.  In practice, there is no standardised manner by which a SIP proxy can authenticate the sender of the response. Therefore, a proxy must not include a P-Asserted-Identity header field when forwarding the response unless it has authenticated the UAS by some means. The means to authenticate the UAS is outside the scope of this document. However, future documents may define techniques for response authentication.</t>
        <t>This update to RFC 3325 allows a proxy to include a P-Asserted-Identity header field in certain circumstances when forwarding a response.</t>
      </section>
    </section>
    <section title="Dialog implications">
      <t>A P-Asserted-Identity header field in a received request or response asserts the identity of the source of that request or response and says nothing about the source of subsequent received requests or responses claiming to relate to the same dialog. The recipient can make its own deductions about the source of subsequent requests or responses not containing a P-Asserted-Identity header field. This document does not change RFC 3325 in this respect.</t>
    </section>
  </section>
  <section title="Behaviour">
    <t>This document updates RFC 3325 by allowing a P-Asserted-Identity header field to be included by a UAC within the same Trust Domain, by allowing a P-Asserted-Identity or P-Preferred-Identity header field to appear in any request, and by allowing a P-Asserted-Identity header field to appear in a response in certain circumstances.</t>
    <section title="UAC Behaviour">
      <section title="Request handling">
        <t>A UAC MAY include a P-Asserted-Identity header field in a request to report the identity of the user on behalf of which the UAC is acting and whose identity the UAC is in a position to assert. A UAC SHOULD do so only in cases where it believes it is in the same Trust Domain as the SIP entity to which it sends the request and is connected to that SIP entity in accordance with the security requirements of RFC 3325. A UAC SHOULD NOT do so in other circumstances and might instead use the P-Preferred-Identity header field. A UAC MUST NOT include both header fields.</t>
        <t>A UAC MAY include a P-Asserted-Identity or P-Preferred-Identity header field in any request, i.e., not limited to the methods allowed in RFC 3325.</t>
      </section>
      <section title="Response handling">
        <t>Typically a UA renders the value of a P-Asserted-Identity header field that it receives in a response to its user.  It may consider the identity provided by a Trust Domain to be privileged, or intrinsically more trustworthy than other information in the response. However, any particular behaviour is specific to implementations or services. This document also does not mandate any UA handling for multiple P-Asserted-Identity header field values that happen to appear in a response (such as a SIP URI alongside a tel URL).</t>
        <t>However, if a UAC receives a response from a previous element it does not trust, it MUST NOT use the P-Asserted-Identity header field in any way.</t>
        <t>If a UA is part of the Trust Domain from which it received a response containing a P-Asserted-Identity header field, then it can use the value internally but it MUST ensure that it does not forward the information to any element that is not part of the Trust Domain if the responding user has requested that asserted identity information be kept private.</t>
      </section>
    </section>
    <section title="Proxy Behaviour">
      <section title="Request handling">
        <t>If a proxy receives a request from a UAC within the Trust Domain it MUST behave as for a request from any other node within the Trust Domain, in accordance with the rules of RFC 3325 for a proxy.
          <list>
            <t>Note that this implies that the proxy must have authenticated the sender of the request in accordance with the Spec(T) in force for the Trust Domain and determined that the sender is indeed part of the Trust Domain.</t>
          </list></t>
        <t>If a proxy receives a request containing a P-Asserted-Identity or P-Preferred-Identity header field, it MUST behave in accordance with the rules of RFC 3325 for a proxy, even if the method is not one for which RFC 3325 specifies use of that header field.</t>
      </section>
      <section title="Response handling">
        <t>The proxy behaviour specified in RFC 3325 is applicable to responses with the following qualifications. A proxy MUST NOT include a P-Asserted-Identity header field when forwarding a response from a node outside the Trust Domain unless it has authenticated the UAS by some means. The means to authenticate the UAS is outside the scope of this document.</t>
        <t>The proxy behaviour specified in RFC 3325 applies for handling a P-Asserted-Identity header field in a response from a node within the Trust Domain.</t>
        <t>The proxy behaviour specified in RFC 3325 for handling a received P-Preferred-Identity header field is applicable also to responses, subject to the qualification above concerning authentication of the UAS as a pre-requisite for including a P-Asserted-Identity header field when forwarding a response.</t>
      </section>
    </section>
    <section title="Registrar Behaviour">
      <t>If a registrar receives a REGISTER request containing a P-Asserted-Identity header field, it MUST disregard the asserted identity unless received over a secure transport from a node within the Trust Domain. Otherwise it MAY use this as evidence that the registering UA has been authenticated as representing the identity asserted in the header field.</t>
    </section>
    <section title="UAS Behaviour">
      <section title="Request handling">
        <t>If a UAS receives any request containing a P-Asserted-Identity header field, it MUST behave as for any other request in accordance with the rules of RFC 3325 for a UAS, even if the method is not one for which RFC 3325 specifies use of that header field.</t>
      </section>
      <section title="Response handling">
        <t>A UAS MAY include a P-Asserted-Identity or P-Preferred-Identity header field in a response to report the identity of the user on behalf of which the UAS is acting and whose identity the UAS is in a position to assert. A UAS SHOULD include a P-Asserted-Identity header field only in cases where it believes it is in the same Trust Domain as the SIP entity from which it received the request and is connected to that SIP entity in accordance with the security requirements of RFC 3325.</t>
      </section>
    </section>
    <section title="General handling">
      <t>If an entity receives a request or response containing a P-Asserted-Identity or P-Preferred-Identity header field containing an unexpected number of URIs or unexpected URI schemes it MUST act as follows:
        <list style="symbols">
          <t>ignore any URI with an unexpected URI scheme;</t>
          <t>ignore any URI for which the expected maximum number of URIs with the same scheme occurred earlier in the header field; and</t>
          <t>ignore any URI whose scheme is not expected to occur in combination with a scheme that occurred earlier in the header field.</t>
        </list>
      </t>
      <t>This document does not change the RFC 3325 requirement that allows each of these header fields to contain at most two URIs, where one is a SIP or SIPS URI and the other is a TEL URI, but future updates to this document may relax that requirement. In the absence of such a relaxation, the requirement above means that an entity receiving  a request or response containing a P-Asserted-Identity or P-Preferred-Identity header field must act as follows:
        <list style="symbols">
          <t>ignore any URI with a scheme other than SIP, SIPS or TEL;</t>
          <t>ignore a second or subsequent SIP URI, a second or subsequent SIPS URI or a second or subsequent TEL URI; and</t>
          <t>ignore a SIP URI if a SIPS URI occurred earlier in the header field and vice versa.</t>
        </list>
      </t>
      <t>A proxy MUST NOT forward a URI when forwarding a message if that URI is to be ignored in accordance with the requirement above.</t>
    </section>
  </section>
  <section title="IANA considerations">
    <t>This document requires no IANA actions.</t>
  </section>
  <section title="Security considerations" anchor="section-security">
    <t>The use of asserted identity raises a number of security considerations, which are discussed fully in <xref target="RFC3325"/>. This document raises the following additional security considerations.</t>
    <t>When receiving a request or response containing a P-Asserted-Identity header field, a proxy will trust the assertion only if the source is known to be within the Trust Domain and behaves in accordance with a Spec(T), which defines the security requirements. This applies regardless of the nature of the resource (UA or proxy). One example where a trusted source might be a UA is a PSTN gateway. In this case the UA can assert an identity received from the PSTN, the proxy itself having no means to authenticate such an identity. A SIP entity must not trust an identity asserted by a source outside the Trust Domain. Typically a UA under the control of an individual user (such as a desk phone or mobile phone) should not be considered part of a Trust Domain.</t>
    <t>When receiving a response from a node outside the Trust Domain, a proxy has no standardised SIP means to authenticate the node. However, if authentication has taken place by other means, outside the scope of this document, this can be sufficient grounds for asserting an identity. In other circumstances a proxy must not assert identity for a responding user.</t>
    <t>When receiving a REGISTER request containing a P-Asserted-Identity header field, a proxy will trust the asserted identity only if received over a secure connection from a proxy within the Trust Domain.</t>
  </section>
  <section title="Acknowledgements">
    <t>Useful comments were received from Francois Audet, Jeroen van Bemmel, Hans Erik van Elburg, Vijay Gurbani, Cullen Jennings, Hadriel Kaplan, Paul Kyzivat, Jonathan Rosenberg, Thomas Stach and Brett Tate during drafting and review.</t>
  </section>

</middle>

<back>
  <references title="Normative References">
    &rfc2119;
    &rfc3261;
    &rfc3311;
    &rfc3324;
    &rfc3325;
    &rfc3428;
    &rfc3903;
    &rfc3966;
    &draft-uri-list;
  </references>
  <references title="Informative References">
    &rfc3725;
    &rfc4474;
    &rfc4916;
  </references>
</back>
</rfc>
