<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version  (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-amsuess-t2trg-raytime-01" category="exp" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="Raytime">Raytime: Validating token expiry on an unbounded local time interval</title>
    <seriesInfo name="Internet-Draft" value="draft-amsuess-t2trg-raytime-01"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="08"/>
    <workgroup>t2trg</workgroup>
    <keyword>time</keyword>
    <keyword>synchronization</keyword>
    <keyword>interval arithmetic</keyword>
    <keyword>unbounded</keyword>
    <keyword>infinity</keyword>
    <keyword>optimistic</keyword>
    <keyword>robustness</keyword>
    <abstract>
      <t>When devices are deployed in locations with no real-time access to the Internet,
obtaining a trusted time for validation of time limited tokens and certificates is sometimes not possible.
This document explores the options for deployments
in which the trade-off between availability and security needs to be made in favor of availability.
While considerations are general,
terminology and examples primarily focus on the ACE framework.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-amsuess-t2trg-raytime/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Thing-to-Thing Research Group mailing list (<eref target="mailto:t2trg@irtf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/t2trg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/t2trg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/chrysn/raytime"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>[ See also abstract. ]</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This document uses terminology from the ACE framework (<xref target="ACE"/>) to describe the typical participants,
even in general parts that may apply beyond ACE.
In particular:</t>
        <ul spacing="normal">
          <li>
            <t>The Resource Server (RS) is a constrained device,
also sometimes called “the device”.  </t>
            <t>
In the context of this document, it has no regular access to the Internet,
and its ability to maintain a concept of local time is limited by intermittent power supplies.</t>
          </li>
          <li>
            <t>The Authorization Server (AS) is a party trusted by the RS.  </t>
            <t>
In the context of this document, it is connected to the Internet.
(When more private networks are used, the term Internet can be replaced
with the partition of the private networks that contains the AS).
It is considered the source of trusted time in this document,
as distributed time sources are not relevant to its mechanisms.</t>
          </li>
          <li>
            <t>The Client is a device that has obtained time- and scope limited credentials for the RS from the AS.  </t>
            <t>
In the context of this document,
it acquires these credentials ahead of time
before it moves out of communication range of the Internet
and into communication range of the RS.  </t>
            <t>
Beyond these credentials,
the client is untrusted
in the sense that no action of the RS should allow it to exceed the permissions encoded in the credentials it holds.</t>
          </li>
        </ul>
      </section>
      <section anchor="motivating-example">
        <name>Motivating example</name>
        <t>Devices that use Internet style connectivity and security
have been deployed far beyond the range of easily accessible connectivity,
for example in remote forests <xref target="forest40"/>
and in space <xref target="space"/>.</t>
        <t>For a concrete example,
consider a scientific instrument set up by students.
The instrument is under the administrative control of the university,
which is issuing time limited access tokens
that allow configuring experiments and reading data,
but not altering inventory designations or handing off ownership.</t>
        <t>The instrument is set up in a far-off valley without cellular reception,
and visited by students once per week
to collect data,
verify that it is still operational,
and perform adjustments or repairs on site as needed.
Any repairs require powering down the device completely.</t>
        <t>When following the mechanisms and guidance of this document,
the instrument will be usable by the students
even after they had to power it down completely,
and (once used by the new students) justifiedly reject the tokens of students that used the device earlier.
It will stay usable to malicious students if they disassemble it
and use it after their allowed time on the instrument has expired,
but can only be operated for a total time of about the validity time span of those users’ tokens.</t>
      </section>
      <section anchor="security-and-availability">
        <name>Security and availability</name>
        <t>When a device has no current time,
no means of acquiring time,
and receives a time limited token to authorize an action,
two outcomes are possible:
the action is rejected or allowed.
Rejection is the safe alternative in terms of security,
but reduces the availability of the device, possibly to the point of not providing its function at all.
Conversely, allowing the action maintains availability
at the risk of violating security objectives.</t>
        <t>The fundamental trade-off between security and availability is common around time limited access,
and usually manifested in a choice of expiry times:
A token with a validity of one week
(or, equivalently, a revocation list with a maximum age of one week)
will be usable across a day-long outage of the authorization infrastructure.
On the downside, it provides technical authorization to an administratively deauthorized user for several days after revocation of permissions.</t>
        <t>This document concerns itself with getting the most security
out of the case that favors availability after a period of no operational clock.</t>
      </section>
      <section anchor="threat-model">
        <name>Threat model</name>
        <t>Three main threats are considered here:</t>
        <ul spacing="normal">
          <li>
            <t>Using old tokens.  </t>
            <t>
A user who has obtained a token may attempt to use it after the token’s lifetime (and the user’s permission) has expired.</t>
          </li>
          <li>
            <t>Manipulation of time sources.  </t>
            <t>
An attacker controlling a time source which the device trusts
may make false statements on the current time.
Indicating an earlier time can be used to extend the usability of old tokens.
Indicating a later time can be used to deny service to users of valid tokens.</t>
          </li>
          <li>
            <t>Manipulation of the clock.  </t>
            <t>
An attacker with physical access (possibly only to the device’s environment)
may cut power to the device’s clock.</t>
          </li>
        </ul>
        <t>Other attacks,
such as physical attacks on the device,
or exploiting weaknesses of the cryptographic systems used,
are relevant to the system,
but have no different impact on a system following this document
than on a system that requires an operational clock before it allows access.</t>
      </section>
      <section anchor="applicability-constraints">
        <name>Applicability constraints</name>
        <t>The mechanisms of this document are intended only for scenarios matching the listed prerequisites.
If either of them are not met,
there are better solutions available, with suggestions listed along the condition.</t>
        <ul spacing="normal">
          <li>
            <t>There is no network connectivity,
not even for the client.  </t>
            <t>
If there is,
the RS may use communication with the AS to obtain a current time value
(as described in <xref target="ace-time"/>), <!-- sentence? -->
perform token validation (<xref target="ACE"/>).
Alternatively,
it may use other Internet services
such as <xref target="roughtime"/>.  </t>
            <t>
Note that due to CoAP’s good proxy support,
the connectivity between the RS and the AS does not need to be in a continuous IP network.</t>
          </li>
          <li>
            <t>The lifetime of tokens is limited.  </t>
            <t>
When tokens of unlimited lifetime are used,
there is no need to employ the methods described in this document.</t>
          </li>
          <li>
            <t>Devices have no means of reliably maintaining time throughout their whole lifetime.  </t>
            <t>
If the power supply of the device’s clock is reliable enough to be sure to outlive the device,
regular evaluation of time bounds can be done,
possibly accounting for an upper bound of clock skew.</t>
          </li>
          <li>
            <t>Devices need to stay accessible after local power interruptions,
that is,
favor availability over security after a loss of local time.  </t>
            <t>
Otherwise,
the device can issue an AS Request Creation Hint containing a cnonce
(described in <xref target="ACE"/>).
The client then needs to travel back to into communication distance to the AS,
and obtain a token confirming that cnonce.
Alternatively, one of the time synchronization mechanisms mentioned above can be used.</t>
          </li>
        </ul>
        <t>The applicability is also limited when it comes to requirements of a certain date being in the past,
such as “nbf” (“not before”) claims described in <xref target="JWT"/>.
These claims are notoriously hard to verify after a loss of time (as discussed in <xref target="imperfect"/>),
but fortunately also rarely needed.
The use of such claims is not fundamentally prohibitive of this document’s raytime mechanism,
but its approach favoring availability over security is inapplicable to them
(as a device would accept any nbf value after power-up).</t>
        <t>While data sources such as radio time signal stations (e.g., DCF77, MSF, WWVB) or GNSSs such as GPS are frequently offered as a solution,
neither is reliable enough for use with security systems:
Radio time signals are effectively unauthenticated,
and GPS signals can be forged with hardware that is now cheap <xref target="gps"/>.</t>
      </section>
    </section>
    <section anchor="raytime">
      <name>Raytime</name>
      <t>It is relatively common in clock synchronization to treat known time in interval arithmetic
as the earliest and latest possible current point in time
(for an example, see <xref target="optimal"/>).</t>
      <t>When a device has been dormant for an indeterminate amount of time,
that interval’s upper bound needs to be set to infinity,
creating a half unbounded interval, or a ray.
For lack of a term established in literature
[ i.e., if you happen to find one, please tell and this will change ],
we call devices operating under such conditions to work “in raytime”.
A device in raytime can be sure that some points in time have passed,
but never that they have not.</t>
      <t>Devices that require a two-sided bound on some credentials they accept
may use any trusted time synchronization mechanism to establish an upper bound on current time
and switch to interval time
(and fall back to raytime after the next loss of continuous time).
Devices that never evaluate the upper bound on time anyway
may only implement the lower bound,
and always operate in raytime.</t>
      <t>Maintaining raytime is fundamentally a best-effort undertaking.
Implementations have two mechanisms to advance time:</t>
      <ul spacing="normal">
        <li>
          <t>Any time the device receives a trusted statement on a time stamp being in the past
that is ahead of its earliest possible current time,
it updates that bound.  </t>
          <t>
Care has to be taken to limit this mechanism to trusted time sources.
It is recommended to exclusively use statements from the AS,
as they are provided in tokens’ “iat” claim.
The build time of the latest firmware update may also provide such a time source,
provided it is known to be on the same timescale as the AS’s timescale.
<!-- That is not a given, RFC9200 says "the RS's internal clock must reflect the current date and time or at least be synchronized with the AS's clock"; where do we best put that note? -->
          </t>
        </li>
        <li>As time passes, the device advances the lower bound on the current time.
To avoid refusing tokens used quickly after issuance,
lower bound time should be advanced slower than time actually passes,
accounting for the maximum specified clock skew.</li>
      </ul>
      <t>Both kinds of advancements need to be recorded persistently,
lest power cycling the device makes all tokens valid under raytime assumptions.
To avoid wearing out limited persistence options,
writing may be delayed as suitable in the application.
The trade-off to consider here are
flash write cycles and power consumption of flash writes
versus the additional time malicious users gain for using the device by removing the power supply at the right time.
Being best-effort,
there is no need to transactionally commit the time seen in tokens –
this is not replay protection.</t>
    </section>
    <section anchor="using-raytime-with-ace">
      <name>Using raytime with ACE</name>
      <t>[ This section will contain concrete guidance when the open questions are resolved. ]</t>
      <section anchor="open-questions">
        <name>Open questions</name>
        <ul spacing="normal">
          <li>
            <t>Should the decision on whether raytime is OK to use be encoded in the token or in the application?  </t>
            <t>
Options are to use “exp” and say that the action will tell whether or not raytime is good enough to evaluate the credentials’ validity (some actions may require more assurances),
or to use an “exp-besteffort” or similar indicator to describe the whole token.
The latter approach may be limiting in that then not all permissions can be expressed in a single token,
but then again, that’s also true with different validity times.  </t>
            <t>
More generally (also for interval time), can a token indicate whether the clock skew upper bound is used in favor or against the user?
  <xref target="JWT"/> talks of “some small leeway”, but is not overly precise.</t>
          </li>
          <li>If the device <em>is</em> used online,
can it set a cnonce in its creation hints and the application will still try to use a cnonce-less token?
Or should optional cnonces use a different key?
(Setting a cnonce in online situations does have the advantage that the device can convert from raytime to interval time.
But is that even useful, unless the tokens used have nbf claims?)</li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
    </section>
  </middle>
  <back>
    <references>
      <name>Informative References</name>
      <reference anchor="JWT">
        <front>
          <title>JSON Web Token (JWT)</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <date month="May" year="2015"/>
          <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="ACE">
        <front>
          <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
          <author fullname="L. Seitz" initials="L." surname="Seitz"/>
          <author fullname="G. Selander" initials="G." surname="Selander"/>
          <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
          <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <date month="August" year="2022"/>
          <abstract>
            <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9200"/>
        <seriesInfo name="DOI" value="10.17487/RFC9200"/>
      </reference>
      <reference anchor="ace-time">
        <front>
          <title>Lightweight Authenticated Time (LATe) Synchronization Protocol</title>
          <author fullname="Renzo Navas" initials="R." surname="Navas">
            <organization>Telecom Bretagne</organization>
          </author>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
            <organization>SICS Swedish ICT</organization>
          </author>
          <date day="31" month="October" year="2016"/>
          <abstract>
            <t>   This documents defines the Lightweight Authenticated Time (LATe)
   Synchronization Protocol, a secure time synchronization protocol for
   constrained environments.  The messages are encoded using Concise
   Binary Object Representation (CBOR) and basic security services are
   provided by CBOR Object Signing and Encryption (COSE).  A secure
   source of time is a base assumption for many other services,
   including security services.  LATe Synchronization protocol enables
   these time-dependent services to run in the context of a constrained
   environment.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-navas-ace-secure-time-synchronization-00"/>
      </reference>
      <reference anchor="roughtime">
        <front>
          <title>Roughtime</title>
          <author fullname="Aanchal Malhotra" initials="A." surname="Malhotra">
            <organization>Boston University</organization>
          </author>
          <author fullname="Adam Langley" initials="A." surname="Langley">
            <organization>Google</organization>
          </author>
          <author fullname="Watson Ladd" initials="W." surname="Ladd">
            <organization>Sealance, Inc.</organization>
          </author>
          <author fullname="Marcus Dansarie" initials="M." surname="Dansarie">
         </author>
          <date day="26" month="September" year="2022"/>
          <abstract>
            <t>   This document specifies Roughtime - a protocol that aims to achieve
   rough time synchronization while detecting servers that provide
   inaccurate time and providing cryptographic proof of their
   malfeasance.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-ntp-roughtime-07"/>
      </reference>
      <reference anchor="imperfect">
        <front>
          <title>Future Imperfect</title>
          <author initials="J. L." surname="Carrol" fullname="J. Larry Carrol">
            <organization/>
          </author>
          <author initials="D. B." surname="Carren" fullname="David Bennett Carren">
            <organization/>
          </author>
          <date year="1990"/>
        </front>
        <seriesInfo name="Star Trek: The Next Generation" value=""/>
      </reference>
      <reference anchor="gps">
        <front>
          <title>Authentication for drone delivery through a novel way of using face biometrics</title>
          <author fullname="Jonathan Sharp" initials="J." surname="Sharp">
            <organization>University of South Carolina</organization>
          </author>
          <author fullname="Chuxiong Wu" initials="C." surname="Wu">
            <organization>George Mason University</organization>
          </author>
          <author fullname="Qiang Zeng" initials="Q." surname="Zeng">
            <organization>George Mason University</organization>
          </author>
          <date month="October" year="2022"/>
        </front>
        <seriesInfo name="Proceedings of the 28th Annual International Conference on Mobile Computing And" value="Networking"/>
        <seriesInfo name="DOI" value="10.1145/3495243.3560550"/>
      </reference>
      <reference anchor="optimal">
        <front>
          <title>Interval-based clock synchronization with optimal precision</title>
          <author fullname="Ulrich Schmid" initials="U." surname="Schmid">
            <organization/>
          </author>
          <author fullname="Klaus Schossmaier" initials="K." surname="Schossmaier">
            <organization/>
          </author>
          <date month="October" year="2003"/>
        </front>
        <seriesInfo name="Information and Computation" value="vol. 186, no. 1, pp. 36-77"/>
        <seriesInfo name="DOI" value="10.1016/s0890-5401(03)00103-2"/>
      </reference>
      <reference anchor="forest40">
        <front>
          <title>Forest 4.0: Digitalization of forest using the Internet of Things (IoT)</title>
          <author fullname="Rajesh Singh" initials="R." surname="Singh">
            <organization/>
          </author>
          <author fullname="Anita Gehlot" initials="A." surname="Gehlot">
            <organization/>
          </author>
          <author fullname="Shaik Vaseem Akram" initials="S." surname="Vaseem Akram">
            <organization/>
          </author>
          <author fullname="Amit Kumar Thakur" initials="A." surname="Kumar Thakur">
            <organization/>
          </author>
          <author fullname="Dharam Buddhi" initials="D." surname="Buddhi">
            <organization/>
          </author>
          <author fullname="Prabin Kumar Das" initials="P." surname="Kumar Das">
            <organization/>
          </author>
          <date month="September" year="2022"/>
        </front>
        <seriesInfo name="Journal of King Saud University - Computer and Information Sciences" value="vol. 34, no. 8, pp. 5587-5601"/>
        <seriesInfo name="DOI" value="10.1016/j.jksuci.2021.02.009"/>
      </reference>
      <reference anchor="space">
        <front>
          <title>Internet of Things in Space: A Review of Opportunities and Challenges from Satellite-Aided Computing to Digitally-Enhanced Space Living</title>
          <author fullname="Jonathan Kua" initials="J." surname="Kua">
            <organization/>
          </author>
          <author fullname="Chetan Arora" initials="C." surname="Arora">
            <organization/>
          </author>
          <author fullname="Seng W. Loke" initials="S." surname="Loke">
            <organization/>
          </author>
          <author fullname="Niroshinie Fernando" initials="N." surname="Fernando">
            <organization/>
          </author>
          <author fullname="Chathurika Ranaweera" initials="C." surname="Ranaweera">
            <organization/>
          </author>
          <date year="2021"/>
        </front>
        <seriesInfo name="arXiv" value="article"/>
        <seriesInfo name="DOI" value="10.48550/ARXIV.2109.05971"/>
      </reference>
    </references>
    <section anchor="change-log">
      <name>Change log</name>
      <t>Since -00:</t>
      <ul spacing="normal">
        <li>Write 'raytime' as a single word rather than 'ray time'.</li>
        <li>Editorial fixes provided by Carsten Bormann.</li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TBD:
CB</t>
      <!--  LocalWords:  cnonce
 -->

</section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA41b25IbN5J9r6/A0g/d7SApti7jUe/F02qNPPKOLIe6d7QR
64kNsAok4a4q1BRQpLgKRew/7O/M2/zJfsmezATqwm5tjB/sZhUKSOTl5MkE
vFgssv2VepZlwYbSXKnZB30MtsJff9KlLXSw9VYFd29qZT41tj0qVytdq65e
u64uTKFKl+tS0TfK1sG0e13OMr1et2Y/TDfLCpfXmuYtWr0JC135zni/CE9D
u120MmqxusxyHczWtccrWi/zoTW6ulJvP9y9ybKDa++3reuaK8XfZXtTd+Yq
Uyo+vdtB3EVwC/4Dzyttyzj4d7YNm6Vr6XFrGneldiE0/urJky22rtfL3FVP
8l179PWTKA9GfqN27qAKZ7wKO+sViaB2pjXf08sSwvqAbaap8rVrF4ftElPu
uvXSuiemqBelhV50+WSWZdm9OWKOgoReqLjIQvljjaVdbf8LGnc1P0vaVLrF
bJUJNufnverjqI2tbTjyD9dgRuvTyNatOx9q6DnLfKXb8J9/6RwkvlJHg0e6
CzvXQpIFRisl5rnZtTQBTHxd+b/9FZ/SuxwrBjLKNSZsreaHRrSbpy9+F41K
msyy2rUVNrOHfTIIOfxS6sePd1fqw5ub715cvsTP65vf88+XT1cr/NS5WYgL
vl28XtZ6r/2CnnmTd628WjzUFxxguxs+syZsFnVoFv1zjLFVY9qNycMVy9/v
n/9ZxP8mRfy4VH/ULRz+Bv925VdGvdZ7W6hXpq5NCDzU1DwEoYPXly9frvhn
DK83XcAe1NskCL/zprXGk47gSbdBt+quNffkzUb9ZD4F9YOp4T+00Rn5OjxN
vX7/dnm5Wl5ePn/x5Nnzly+ePn+2fPbiN6sXL2g99gNdDsNWl795crv67cvV
4sXz1eX56tnFanW5erZ4isEwDZz4+Wo6+tflr/e+y+3y6erp5XL1dLlaka18
A1P0I5//Fus90e2/2/3y6eXq5XL14uV3l/DyxWKh9BquorHH7OMO8FGYvc0R
Rhr7L0xTuiPAw9aMH7Q1xBbcXNUO0alLNjNcAV8g8hyCD1qjgICe55lbBw2v
BzRpFVq4JKbiD7AXtY/ABaByG3lcIip4DAEZRKgLlZs22I0luPEKge0dRViF
H7ULqnHe23VpltkdRT3Aq6tMHQiTSlIXy0NaJrlpUdkRjfHwdnXY2XzHg6CC
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
RUm76ZQyAAA=

-->

</rfc>
