<?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.3.15 -->

<!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-01" 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="2021" month="February" day="22"/>

    <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. Specifically, the use of a Reason header field and addressing scenarios that use multiple identity headers where some may have errors and others may not and the handling of those situations is defined.</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="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>




    </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:
H4sIAC08NGAAA+1YbW/bOBL+rl9BpF92AdtrO9l046LAOk7SKLCdNLbz0rvD
gaboiLZEakkqjlL0fvvNkJL80myxwH044HBFgdAyh/PMzDMPR242m4EVNuE9
EkZcwrIgl5xGXJNzrZUml1RGiZBPAZ3PNX/e2ua+N0GkmKQp2EeaLmxzzWVk
m8YK3RTlzmbsDmxyZ9CMyxOb7U4QUQuW3Xa302x3m91uwODBk9JFjxgbBYHI
dI9YnRvbbbdP2t2Aak57hGobrHixVjrqkck0vN36FN5sPlRYg8BY8PpPmigJ
/gpugkz0yN+sYg1ilLaaLwysihQX/wgCmttY6V5AiJCmRwYtco9xwWcf6yDW
wtTPlH6CRypl1OBHnlKR9AjDPU3B7eJ3t3SZaUmOWwx45LY2IlPOYqkS9VSQ
AUDmGvYwAN4jN7FIIHtJFgvaIDd9QjonnfYhfq9yaTFTs0k/CKTSKbXimSPo
24vBYfe4Uy1hXS5/67w/qpbdLiyFXOwZdjudk14QNJtNQueAkzIbBNMYwoVK
5ymgI/zFQizGZZ5AXomNOelDyjDbWMFow5IRlfSJOzMh3cYJN0YoSUIprADP
sLzRCkqhEvITlO9nonniDrGKOM6QijIEwHqvz1yLBfpCc8P1s2DcOCyxWqOb
giw4j+aUrfwZBk/zgDdAt41bZJJx5g5NkqLhoOaGE7UglNxyamCvJzJZCJ5E
zhmNIo3hADTDuKRaKHAUU+tM0zyxIks4qTqhPMCQdcw1B+alsInCY/rMK5h4
rALnsMSvpLJ1ius0ACbgJ3gwwuYuDEOwQHwhJI9avnqpiKKEB8E7yLTVKsoZ
bgyCr1/L6n/7hiWZcPecHLe6rS6JhGG5MZDLRW5zxFglxXvBAnAJQJivKSDB
hFfYwYCpNM1lSYO3kP9pVlrE0WzHI8m0eoaNxicL8i3wMU1ICi1DpTCpB2VU
knuIUOeyLOgakgRHzBOeGshLKP05Ec8SVWAEBiHVRDZbFIASImJgJHEpw46C
lNE6z2RekK1kNgiIC5TB5JyshY1d4CzX2rXMDo8bu47q3SXfcFn5OHp5KY0h
ogzi4yBUoiQZ0EgC7nKDYuDNbE7b6ZHy2L2cg3S5xzf9ySRTegrVk5Y6x2W3
7hs41jtUFR5EozmQBax822BUHiPAAzFLhUQ2tEhoHafnvNxmuI8DP2UqEaxw
tazZUtIqFU+x9VawGU8HOsQqhyZEvEJCxvkz+BIuSO0g0d343VGNKirnWi0a
ns8vNHV8lDQCG1vXCzIN5IaTfZLeFo4KCVx5EDWAhI4Ft5DBMuW+OEaV6BUQ
gqHeEuobj0EBMTa64vLNFljjwWVjbtNE74gSRGbyueF/5IjftY3xnfJT5+Xl
5w19cCfcjhgUdAqDfs0SYZAyAlvkoqTEX2rZusEzhWkT4K2WJB+va7e3yeeQ
UM8WpEVGIb6dos1zu62FWzLZcHA3V1ItE3QjDKUSYIN4z1CVTSF+UFG2sYDm
jAWLv2sD8D3nmB0YGACRv6x2yVU3Zgs1eOrawF/xX9/ZzadveLtyAjMLwaHF
kIPRbDI9aPi/ZHzt1rfnn2fh7fkZrieX/eGwXlQ7JpfXs+HZZrWxHFyPRufj
M28MT8neo1H/Ef5gJQ+ub6bh9bg/PPCxbGcYtR1inGOfAPwMWh4FHtXQMC3m
XjJOBzekc+RlEScJEEwvkTB4wBoFy7tSEoXPfXS3Nc0yTh2LkQ6MZsLSBMpM
Xauvkeaau0zOfHa3Gb4nkIjTiKf6G6+JCshUiRFWrlIqdytgzaprOVHwuNKj
SDAL4lUKbsnWsuXxbq7lrRLj4g3dQcmWLMmjLVHbSdv2nbxzITdKEd2X84qq
Za396XxLb2p1ZgqeY8ZLuchijfx0rffGWNOob54KFo6PeLuV7JYw/e0kX6El
LmqXBvli1Q9aDAp5XqruGxhg/PzX5l/gd7jRnnxgFNTv49HhMflgAcnHg1O6
NW2GMM4e7BgDYS63lKziQ5lUf1X8qbx9Rw3qQKQwW8BQW2X9BweUVOeYpFRp
vpncvtsZA9OrSfV/rdoEFa5E5ApYRaI56Ig7AJor4fgq5LK1dXOWneeGG9RZ
N95sbdpPZMPdGtt3XC3lnIKSl2Zw1ygm3JD6XSmcwxh4tVWPuYqKynYTuteB
qh60JAK8npJRODr3WJ1XUzb1RgZ2xq7yYDcc4Nluxx6uH/eM97XnH0H/p80U
DGDEgifNaZHBm2/t4ZdUvPDoA/jIZUR18bFadGqLIZdPNu6RVsu9kmw27J0J
2p+UlPkFhwBICbxz8uIqnn9i4lpcXcxew85YhCaUt7+yQXgcytOYHY7X88Or
dijWgp/ddULy92CpBL28bbPL0fGwOFl+ebhqD9O7o8f7znr+aZbDdjk83JgO
03HCxNVJC3yB9erLw7gdLrP3obwr6CQ8vi+uXulD//jx/iV77N71vzzE8fzh
1HyZ/Lqcd9vi4aFtwjSJowFYA6rleXt8NipGZ0+v47OZGA6unlmaSH/kbR4C
vNE0fBlPZ53x9LyAtVg8tFsarP84zJbTTqxu13R1/ml5OZD3k/VMmjhqN1+v
ji86d9dPF/eT5eWp/u3zMlsmqybLLh7hvwFrtRwPsunr9eHnxc11wlaf6OQ4
Pmer9+v/J/6/lvi9a6jPVlKtEx75n0Pgcrl36pGIFff6SeWKnFGYY/HKYoqt
/NsQT7IdGfNvteVrRf2rA4r+Ff6WAnOZRnWobBd5Uv8W4gYoGDByjQ0OZDBw
qi7f7b++q77BmfT0zP+MgGbBvwFVTBiqJxQAAA==

-->

</rfc>

