<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="https://www.rfc-editor.org/rfc/rfc7991.rnc"?>
<rfc xmlns:ns0="http://www.w3.org/2001/XInclude" category="std" docName="draft-avasarala-stir-passport-device-info-00" ipr="trust200902" submissionType="IETF" xml:lang="en" version="3">
  <front>
    <title abbrev="PASSporT Device Info">PASSporT Device Information Extension for Enhanced Caller Authentication and Fraud Resilience</title>
    <seriesInfo name="Internet-Draft" value="draft-avasarala-stir-passport-device-info-00" />
    <author fullname="Ranjit Avasarala" initials="R." surname="Avasarala">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Naperville</city>
          <region>IL</region>
          <country>United States of America</country>
        </postal>
        <email>ranjitkav@gmail.com</email>
      </address>
    </author>
    <author fullname="A. B. Nataraju" initials="A. B." surname="Nataraju">
      <organization>Acharya Institute of Technology</organization>
      <address>
        <postal>
          <city>Bangalore</city>
		  <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>nataraju.ab@gmail.com</email>
      </address>
    </author>
    <author fullname="Binu Sudhakaran Pillai" initials="B. S." surname="Pillai">
      <organization>Axyom.Core</organization>
      <address>
        <postal>
          <city>Irving</city>
		  <region>TX</region>
          <country>US</country>
        </postal>
        <email>binu.sudhakaran@gmail.com</email>
      </address>
    </author>
    <date day="25" month="October" year="2026" />
    <area>Applications and Real-Time Area</area>
    <workgroup>STIR</workgroup>
    <keyword>PASSporT</keyword>
    <keyword>STIR</keyword>
    <keyword>SHAKEN</keyword>
    <keyword>RCD</keyword>
    <keyword>SIP</keyword>
    <keyword>device information</keyword>
    <abstract>
      <t>This document defines a PASSporT extension and a new claim, "dinfo", for carrying authenticated, privacy-minimized information about the endpoint associated with the origination of a call. The claim conveys coarse-grained device characteristics and an optional, non-correlatable device reference.</t>
      <t>The information is intended for use as an additional input to fraud analysis, policy enforcement, and operational diagnostics. It is not an assertion that the endpoint, caller, or call is trustworthy. This document specifies claim syntax, creation and verification procedures, privacy requirements, and IANA registrations.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>PASSporT <xref target="RFC8225" /> provides a signed token for assertions about the originating identity of a personal communication. The STIR procedures defined by <xref target="RFC8224" /> convey such assertions in SIP. Rich Call Data (RCD) <xref target="RFC9795" /> extends PASSporT with caller- and call-related information that can be integrity protected and rendered to a called party.</t>
      <t>These mechanisms provide limited standardized information about the endpoint associated with call origination. In some deployments, a coarse endpoint category, management context, or registration-derived assurance indication can be useful as an additional signal for fraud analytics, enterprise policy, audit, and troubleshooting.</t>
      <t>This document defines the "dinfo" PASSporT claim. It does not carry a hardware serial number, permanent equipment identifier, IP address, or unbounded manufacturer/model fingerprint. A signer includes the claim only when authorized to make the assertion and when the information comes from an authenticated registration, enterprise inventory, endpoint-attestation system, or another policy-approved source.</t>
      <t>Device information is only one input to a trust decision. A verifier <bcp14>MUST NOT</bcp14> interpret the presence of "dinfo", by itself, as proof that the caller or call is benign.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions and Terminology</name>
      <t>The key words <bcp14>MUST</bcp14>, <bcp14>MUST NOT</bcp14>, <bcp14>REQUIRED</bcp14>, <bcp14>SHOULD</bcp14>, <bcp14>SHOULD NOT</bcp14>, <bcp14>MAY</bcp14>, and <bcp14>OPTIONAL</bcp14> 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>
      <dl newline="true">
        <dt>Device Information Signer (DIS)</dt>
        <dd>The entity that creates a PASSporT containing the "dinfo" claim.</dd>
        <dt>Device Information Verifier (DIV)</dt>
        <dd>The entity that verifies the PASSporT and consumes or forwards verified device information.</dd>
        <dt>Device reference</dt>
        <dd>A scoped, short-lived, opaque value that permits an authorized verifier to correlate events within a limited context.</dd>
        <dt>Managed endpoint</dt>
        <dd>An endpoint whose configuration or lifecycle is controlled by an enterprise or service provider.</dd>
      </dl>
    </section>
    <section anchor="scope">
      <name>Scope and Design Principles</name>
      <t>The extension has the following design goals:</t>
      <ul>
        <li>Bind device information to a signed PASSporT.</li>
        <li>Convey categorical rather than fingerprinting-level information.</li>
        <li>Support data minimization and policy-based disclosure.</li>
        <li>Permit incremental deployment.</li>
        <li>Avoid changes to SIP dialog establishment.</li>
      </ul>
      <t>This document does not define device-attestation protocols, inventory procedures, user-interface behavior, or a universal device trust score.</t>
    </section>
    <section anchor="claim">
      <name>The "dinfo" PASSporT Claim</name>
      <section anchor="claim-syntax">
        <name>Claim Syntax</name>
        <t>The "dinfo" claim value is a JSON object. Implementations <bcp14>MUST</bcp14> reject the claim as malformed if the value is not an object or if a member has a type different from the type specified below.</t>
        <sourcecode type="json">{
  "dinfo": {
    "cat": "desk-phone",
    "mgmt": "enterprise-managed",
    "ctx": ["contact-center"],
    "src": "authenticated-registration",
    "ref": "urn:example:device-ref:4f7c2a9d",
    "refexp": 1792890000
  }
}</sourcecode>
      </section>
      <section anchor="claim-members">
        <name>Claim Members</name>
        <dl newline="true">
          <dt>cat</dt>
          <dd>
            <bcp14>OPTIONAL</bcp14> string identifying a coarse endpoint category. Initial values are "mobile", "desk-phone", "soft-client", "gateway", "application", and "unknown". A signer <bcp14>MUST</bcp14> use "unknown" rather than guessing.</dd>
          <dt>mgmt</dt>
          <dd>
            <bcp14>OPTIONAL</bcp14> string describing the management context. Initial values are "enterprise-managed", "provider-managed", "user-managed", and "unknown".</dd>
          <dt>ctx</dt>
          <dd>
            <bcp14>OPTIONAL</bcp14> array of context strings. Initial values are "contact-center", "branch", "remote-work", "service-platform", and "other". The array <bcp14>MUST</bcp14> contain no more than four values; each string <bcp14>MUST</bcp14> contain no more than 32 Unicode code points.</dd>
          <dt>src</dt>
          <dd>
            <bcp14>REQUIRED</bcp14> string identifying the class of evidence. Initial values are "authenticated-registration", "provisioning", "enterprise-inventory", "endpoint-attestation", and "other".</dd>
          <dt>ref</dt>
          <dd>
            <bcp14>OPTIONAL</bcp14> URI carrying an opaque, scoped device reference. It <bcp14>MUST NOT</bcp14> contain a serial number, MAC address, IMEI, IP address, or another stable identifier in clear text.</dd>
          <dt>refexp</dt>
          <dd>
            <bcp14>REQUIRED</bcp14> when "ref" is present. It is a NumericDate <xref target="RFC7519" /> after which the verifier <bcp14>MUST NOT</bcp14> use "ref" for correlation. It <bcp14>MUST</bcp14> be later than the PASSporT "iat" value.</dd>
        </dl>
        <t>A "dinfo" object <bcp14>MUST</bcp14> contain "src" and at least one of "cat", "mgmt", "ctx", or "ref". Unknown members <bcp14>MUST</bcp14> be ignored after successful PASSporT signature validation unless local policy requires rejection.</t>
      </section>
    </section>
    <section anchor="processing">
      <name>PASSporT Extension Processing</name>
      <t>A PASSporT carrying "dinfo" <bcp14>MUST</bcp14> include the PASSporT extension type "dinfo" in the protected "ppt" header parameter. The token is created and validated according to <xref target="RFC8225" />. When transported using SIP, it is carried according to <xref target="RFC8224" />.</t>
      <section anchor="creation">
        <name>Creation</name>
        <t>Before adding "dinfo", the DIS <bcp14>MUST</bcp14> authenticate the source, be authorized to disclose every attribute, minimize the claim, accurately represent the available evidence, apply a short validity period to any device reference, and sign the resulting PASSporT using an applicable STIR credential.</t>
        <t>A DIS <bcp14>MUST NOT</bcp14> copy an unauthenticated SIP User-Agent field into "dinfo" and represent it as verified device information.</t>
      </section>
      <section anchor="verification">
        <name>Verification</name>
        <t>A DIV <bcp14>MUST</bcp14> validate the PASSporT according to <xref target="RFC8225" /> and, for SIP use, <xref target="RFC8224" /> before using "dinfo". If validation fails, the DIV <bcp14>MUST</bcp14> treat all "dinfo" values as unverified.</t>
        <t>After successful validation, the DIV <bcp14>MUST</bcp14> apply local authorization and retention policy and <bcp14>MUST NOT</bcp14> use "ref" after "refexp". Unsupported members or values <bcp14>MUST NOT</bcp14> cause SIP call failure.</t>
      </section>
      <section anchor="relationship-rcd">
        <name>Relationship to Rich Call Data</name>
        <t>The "dinfo" claim is separate from the "rcd" and "rcdi" claims defined in <xref target="RFC9795" />. An issuer <bcp14>MAY</bcp14> use RCD and "dinfo" in the same call, subject to the rules for each extension and the applicable token-carriage mechanism. Implementations <bcp14>MUST NOT</bcp14> insert "dinfo" as an unregistered jCard property and assume that it is covered by RCD integrity rules.</t>
      </section>
    </section>
    <section anchor="analytics">
      <name>Use by Verification and Analytics Functions</name>
      <t>A verified "dinfo" claim can be used as one feature among several in a risk or routing decision. A mismatch can trigger further analysis but <bcp14>MUST NOT</bcp14> be treated as conclusive evidence of fraud. Scoring thresholds, user-visible labels, and enforcement actions are local policy.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>Device metadata can facilitate tracking, fingerprinting, and inference about a user's location, employer, work pattern, or network topology. A DIS <bcp14>MUST</bcp14> apply data minimization and purpose limitation. Stable hardware or network identifiers <bcp14>MUST NOT</bcp14> be included. A device reference <bcp14>MUST</bcp14> be scoped and time limited. A DIV <bcp14>MUST</bcp14> limit retention to the stated operational purpose.</t>
      <t>The claim <bcp14>SHOULD</bcp14> be omitted when the signer cannot establish an authorized purpose for disclosure.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC8225" />, <xref target="RFC8224" />, and, when RCD is also used, <xref target="RFC9795" /> apply.</t>
      <t>A compromised inventory or registration system can produce false device assertions. Signers <bcp14>SHOULD</bcp14> protect those systems, maintain provenance, and audit changes. A "ref" is not an authorization credential and <bcp14>MUST NOT</bcp14> grant access to a device-management interface or subscriber data.</t>
      <t>Fine-grained manufacturer, model, and software-version information can help an attacker select an exploit. This extension deliberately excludes those fields. A missing or "unknown" value <bcp14>MUST NOT</bcp14>, by itself, be treated as evidence of fraud.</t>
    </section>
    <section anchor="operations">
      <name>Operational and Deployment Considerations</name>
      <t>Deployment can be incremental. A verifier that does not understand the extension can ignore it, and SIP call establishment remains unchanged. Operators should monitor token size because certificates, RCD, and device information can increase SIP message size and fragmentation risk.</t>
      <t>Controlled proof-of-concept work reported in <xref target="DEVICE-INFO-PAPER" /> suggests that device context can improve fraud-analysis confidence and reduce troubleshooting time. Those measurements are deployment-specific and do not define protocol requirements or guaranteed outcomes.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests registration of "dinfo" in the "Personal Assertion Token (PASSporT) Extensions" registry, with this document as its reference.</t>
      <t>This document also requests registration of "dinfo" in the "JSON Web Token Claims" registry with the description "Authenticated endpoint device information", change controller "IETF", and this document as its reference.</t>
      <t>This document requests creation of a "PASSporT Device Information Values" registry with Device Category, Management Context, Device Context, and Evidence Source subregistries. The registration policy is Specification Required. Initial values are listed in <xref target="claim-members" />.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <ns0:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" />
      <ns0:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml" />
      <ns0:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml" />
      <ns0:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8224.xml" />
      <ns0:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8225.xml" />
    </references>
    <references>
      <name>Informative References</name>
      <ns0:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9795.xml" />
      <reference anchor="DEVICE-INFO-PAPER" target="https://doi.org/10.1109/ICNCCom69117.2026.11736272">
        <front>
          <title>Enhancing SIP Rich Call Data with Device-Info for Improved Caller Authentication and Fraud Resilience</title>
          <author fullname="A. B. Nataraju" initials="A. B." surname="Nataraju" />
          <author fullname="Ranjit Avasarala" initials="R." surname="Avasarala" />
          <author fullname="Binu Sudhakaran Pillai" initials="B. S." surname="Pillai" />
          <date year="2026" />
        </front>
        <seriesInfo name="Proceedings" value="2026 International Conference on Networks, Computers and Communications (ICNCCOM)" />
        <seriesInfo name="DOI" value="10.1109/ICNCCom69117.2026.11736272" />
      </reference>
    </references>
    <section anchor="example">
      <name>Example Full-Form PASSporT Payload</name>
      <t>The following non-normative example is shown before encoding and signing:</t>
      <sourcecode type="json">{
  "attest": "A",
  "dest": {"tn": ["13105551212"]},
  "dinfo": {
    "cat": "desk-phone",
    "mgmt": "enterprise-managed",
    "ctx": ["contact-center"],
    "src": "authenticated-registration",
    "ref": "urn:example:device-ref:4f7c2a9d",
    "refexp": 1792890000
  },
  "iat": 1792886400,
  "orig": {"tn": "12155551212"},
  "origid": "123e4567-e89b-12d3-a456-426614174000"
}</sourcecode>
      <t>The protected header contains "ppt":"dinfo". Example telephone numbers and URI values are illustrative only.</t>
    </section>
    <section anchor="acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>The authors thank Zaheduzzaman Sarker for his guidance and support to the PASSporT and Rich Call Data work.</t>
    </section>
  </back>
</rfc>
