<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.12 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-wendt-stir-identity-header-errors-handling-00" category="std">

  <front>
    <title abbrev="Identity Errors">Identity Header Error Handling</title>

    <author initials="C." surname="Wendt" fullname="Chris Wendt">
      <organization>Comcast</organization>
      <address>
        <postal>
          <street>Comcast Technology Center</street>
          <city>Philadelphia, PA  19103</city>
          <country>USA</country>
        </postal>
        <email>chris-ietf@chriswendt.net</email>
      </address>
    </author>

    <date year="2020" month="November" day="16"/>

    <area>art</area>
    
    <keyword>Identity</keyword>

    <abstract>


<t>This document extends STIR and the Authenticated Identity Management in the Session Initiation Protocol (SIP) related to error handling for STIR verification services and how they feedback errors to STIR authentication services.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t><xref target="RFC8224"/> in Section 6.2.2 discusses future specifications for enhancement of how errors are communicated and the handling of multiple identity headers. This specification provides some additional mechanisms for solutions to address these problems.</t>

<t>In some deployments of STIR and specifically using SIP <xref target="RFC3261"/> as defined by <xref target="RFC8224"/>, one issue with the current error handling, specifically with the use of the defined 4xx error responses, is that when an error occurs with the verification of the identity header or the PASSporT contained in the identity header and a 4xx response is returned, the call is then terminated. It may be the case that the policy for handling errors might be that calls should continue even if there is a verification error, in the case of, for example inadvertent errors, however the authentication service should still be notified of the error so that corrective action can be taken. This specification will discuss the use of reason header in subsequent provisional (1xx) responses in order to accomplish this.</t>

<t>For the handling of multiple identity headers and the potential situation that some of the identity headers in a call may pass verification but others may have errors, this document provides a mechanism to add an identifier so that the authentication service can identify which identity header is being referred to in the case of an error.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

</section>
<section anchor="use-of-provisional-error-responses-to-signal-errors-without-terminating-the-call" title="Use of provisional error responses to signal errors without terminating the call">

<t>In cases where local policy dictates that a call should not terminate when any verification errors, including errors described in <xref target="RFC8224"/> Section 6.2.2, then the verification service SHOULD include the error response code and reason phrase in a Reason header field, defined in <xref target="RFC3326"/>, in the next provisional or final response sent to the authentication service.</t>

<t>Example Reason header field:</t>

<figure><artwork><![CDATA[
Reason: SIP ;cause=436 ;text="Bad Identity Info"
]]></artwork></figure>

</section>
<section anchor="handling-of-errors-when-there-is-multiple-identity-headers" title="Handling of errors when there is multiple identity headers">

<t>In cases where a SIP message includes multiple identity headers and one or more of those identity headers has errors the verification service SHOULD include the error response code and reason phrase in a Reason header field, defined in <xref target="RFC3326"/>, in the next provisional or final response sent to the authentication service. The reason cause SHOULD represent at least one of the errors that occurred with one of the identity headers, but in order to identify each of the associated identity headers that had errors the body of the response should include a multipart MIME with each section including the PASSporT of the corresponding identity header.</t>

<t>Example Reason header field with multipart MIME body:</t>

<figure><artwork><![CDATA[
Reason: SIP ;cause=436 ;text="Bad Identity Info"

Content-Type: multipart/mixed; boundary=boundary1
Content-Length: ...

--boundary1

Content-Type: application/passport

eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \
joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \
kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \
I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \
q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \
ojNCpTzO3QfPOlckGaS6hEck7w

--boundary1

Content-Type: application/passport

eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \
joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \
kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \
I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \
q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \
ojNCpTzO3QfPOlckGaS6hEck7w

]]></artwork></figure>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>Would like to thank David Hancock for help to identify these error scenarios and Jon Peterson for helpful feedback.</t>

</section>
<section anchor="Security" title="Security Considerations">

<t>TBD</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC3261" target='https://www.rfc-editor.org/info/rfc3261'>
<front>
<title>SIP: Session Initiation Protocol</title>
<author initials='J.' surname='Rosenberg' fullname='J. Rosenberg'><organization /></author>
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organization /></author>
<author initials='G.' surname='Camarillo' fullname='G. Camarillo'><organization /></author>
<author initials='A.' surname='Johnston' fullname='A. Johnston'><organization /></author>
<author initials='J.' surname='Peterson' fullname='J. Peterson'><organization /></author>
<author initials='R.' surname='Sparks' fullname='R. Sparks'><organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></author>
<author initials='E.' surname='Schooler' fullname='E. Schooler'><organization /></author>
<date year='2002' month='June' />
<abstract><t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants.  These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3261'/>
<seriesInfo name='DOI' value='10.17487/RFC3261'/>
</reference>



<reference  anchor="RFC3326" target='https://www.rfc-editor.org/info/rfc3326'>
<front>
<title>The Reason Header Field for the Session Initiation Protocol (SIP)</title>
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organization /></author>
<author initials='D.' surname='Oran' fullname='D. Oran'><organization /></author>
<author initials='G.' surname='Camarillo' fullname='G. Camarillo'><organization /></author>
<date year='2002' month='December' />
<abstract><t>The REGISTER function is used in a Session Initiation Protocol (SIP) system primarily to associate a temporary contact address with an address-of-record.  This contact is generally in the form of a Uniform Resource Identifier (URI), such as Contact: &lt;sip:alice@pc33.atlanta.com&gt; and is generally dynamic and associated with the IP address or hostname of the SIP User Agent (UA).  The problem is that network topology may have one or more SIP proxies between the UA and the registrar, such that any request traveling from the user's home network to the registered UA must traverse these proxies.  The REGISTER method does not give us a mechanism to discover and record this sequence of proxies in the registrar for future use.  This document defines an extension header field, &quot;Path&quot; which provides such a mechanism.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3326'/>
<seriesInfo name='DOI' value='10.17487/RFC3326'/>
</reference>



<reference  anchor="RFC6919" target='https://www.rfc-editor.org/info/rfc6919'>
<front>
<title>Further Key Words for Use in RFCs to Indicate Requirement Levels</title>
<author initials='R.' surname='Barnes' fullname='R. Barnes'><organization /></author>
<author initials='S.' surname='Kent' fullname='S. Kent'><organization /></author>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2013' month='April' />
<abstract><t>RFC 2119 defines a standard set of key words for describing requirements of a specification.  Many IETF documents have found that these words cannot accurately capture the nuanced requirements of their specification.  This document defines additional key words that can be used to address alternative requirements scenarios.  Authors who follow these guidelines should incorporate this phrase near the beginning of their document:</t><t>The key words &quot;MUST (BUT WE KNOW YOU WON\'T)&quot;, &quot;SHOULD CONSIDER&quot;, &quot;REALLY SHOULD NOT&quot;, &quot;OUGHT TO&quot;, &quot;WOULD PROBABLY&quot;, &quot;MAY WISH TO&quot;, &quot;COULD&quot;, &quot;POSSIBLE&quot;, and &quot;MIGHT&quot; in this document are to be interpreted as described in RFC 6919.</t></abstract>
</front>
<seriesInfo name='RFC' value='6919'/>
<seriesInfo name='DOI' value='10.17487/RFC6919'/>
</reference>



<reference  anchor="RFC7340" target='https://www.rfc-editor.org/info/rfc7340'>
<front>
<title>Secure Telephone Identity Problem Statement and Requirements</title>
<author initials='J.' surname='Peterson' fullname='J. Peterson'><organization /></author>
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2014' month='September' />
<abstract><t>Over the past decade, Voice over IP (VoIP) systems based on SIP have replaced many traditional telephony deployments.  Interworking VoIP systems with the traditional telephone network has reduced the overall level of calling party number and Caller ID assurances by granting attackers new and inexpensive tools to impersonate or obscure calling party numbers when orchestrating bulk commercial calling schemes, hacking voicemail boxes, or even circumventing multi-factor authentication systems trusted by banks.  Despite previous attempts to provide a secure assurance of the origin of SIP communications, we still lack effective standards for identifying the calling party in a VoIP session.  This document examines the reasons why providing identity for telephone numbers on the Internet has proven so difficult and shows how changes in the last decade may provide us with new strategies for attaching a secure identity to SIP sessions.  It also gives high-level requirements for a solution in this space.</t></abstract>
</front>
<seriesInfo name='RFC' value='7340'/>
<seriesInfo name='DOI' value='10.17487/RFC7340'/>
</reference>



<reference  anchor="RFC7519" target='https://www.rfc-editor.org/info/rfc7519'>
<front>
<title>JSON Web Token (JWT)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='J.' surname='Bradley' fullname='J. Bradley'><organization /></author>
<author initials='N.' surname='Sakimura' fullname='N. Sakimura'><organization /></author>
<date year='2015' month='May' />
<abstract><t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.  The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t></abstract>
</front>
<seriesInfo name='RFC' value='7519'/>
<seriesInfo name='DOI' value='10.17487/RFC7519'/>
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference  anchor="RFC8224" target='https://www.rfc-editor.org/info/rfc8224'>
<front>
<title>Authenticated Identity Management in the Session Initiation Protocol (SIP)</title>
<author initials='J.' surname='Peterson' fullname='J. Peterson'><organization /></author>
<author initials='C.' surname='Jennings' fullname='C. Jennings'><organization /></author>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<author initials='C.' surname='Wendt' fullname='C. Wendt'><organization /></author>
<date year='2018' month='February' />
<abstract><t>The baseline security mechanisms in the Session Initiation Protocol (SIP) are inadequate for cryptographically assuring the identity of the end users that originate SIP requests, especially in an interdomain context.  This document defines a mechanism for securely identifying originators of SIP requests.  It does so by defining a SIP header field for conveying a signature used for validating the identity and for conveying a reference to the credentials of the signer.</t><t>This document obsoletes RFC 4474.</t></abstract>
</front>
<seriesInfo name='RFC' value='8224'/>
<seriesInfo name='DOI' value='10.17487/RFC8224'/>
</reference>



<reference  anchor="RFC8225" target='https://www.rfc-editor.org/info/rfc8225'>
<front>
<title>PASSporT: Personal Assertion Token</title>
<author initials='C.' surname='Wendt' fullname='C. Wendt'><organization /></author>
<author initials='J.' surname='Peterson' fullname='J. Peterson'><organization /></author>
<date year='2018' month='February' />
<abstract><t>This document defines a method for creating and validating a token that cryptographically verifies an originating identity or, more generally, a URI or telephone number representing the originator of personal communications.  The Personal Assertion Token, PASSporT, is cryptographically signed to protect the integrity of the identity of the originator and to verify the assertion of the identity information at the destination.  The cryptographic signature is defined with the intention that it can confidently verify the originating persona even when the signature is sent to the destination party over an insecure channel.  PASSporT is particularly useful for many personal-communications applications over IP networks and other multi-hop interconnection scenarios where the originating and destination parties may not have a direct trusted relationship.</t></abstract>
</front>
<seriesInfo name='RFC' value='8225'/>
<seriesInfo name='DOI' value='10.17487/RFC8225'/>
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

