<?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 1.6.17 (Ruby 2.7.0) -->
<?rfc docmapping="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="noModificationTrust200902" docName="draft-jfinkhaeuser-caps-for-distributed-auth-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.2 -->
  <front>
    <title abbrev="Capabilities for Distributed Authorization">Capabilities for Distributed Authorization</title>
    <seriesInfo name="Internet-Draft" value="draft-jfinkhaeuser-caps-for-distributed-auth-00"/>
    <author initials="J." surname="Finkhaeuser" fullname="Jens Finkhäuser" asciiFullname="Jens Finkhaeuser">
      <organization abbrev="Interpeer">Interpeer gUG (haftungsbeschraenkt)</organization>
      <address>
        <email>ietf@interpeer.io</email>
        <uri>https://interpeer.io/</uri>
      </address>
    </author>
    <author initials="S. D." surname="Penna" fullname="Sérgio Duarte Penna" asciiFullname="Sergio Duarte Penna">
      <organization abbrev="ISEP">Instituto Superior de Engenharia do Porto</organization>
      <address>
        <postal>
          <street>Rua Dr. António Bernardino de Almeida, 431</street>
          <city>Porto</city>
          <code>4249-015</code>
          <country>Portugal</country>
        </postal>
        <email>sdp@isep.ipp.pt</email>
        <uri>https://isep.ipp.pt/</uri>
      </address>
    </author>
    <date/>
    <workgroup>Interpeer Project</workgroup>
    <keyword>capabilities</keyword>
    <keyword>authorization</keyword>
    <keyword>authentication</keyword>
    <keyword>power of attorney</keyword>
    <keyword>cryptography</keyword>
    <abstract>
      <t>Authorization is often the last remaining centralized function in a distributed
system. Advances in compute capabilities of miniaturized CPUs make alternative
cryptographic approaches feasible that did not find such use when first
envisioned. This document describes the elements of such cryptographically backed
distributed authorization schemes as a reference for implementations.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://specs.interpeer.io/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-jfinkhaeuser-caps-for-distributed-auth/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        interpeer Working Group mailing list (<eref target="mailto:interpeer@lists.interpeer.io"/>),
        which is archived at <eref target="https://lists.interpeer.io/pipermail/interpeer/"/>.
        Subscribe at <eref target="https://lists.interpeer.io/mailman/listinfo/interpeer"/>.
        Working Group information can be found at <eref target="https://interpeer.io/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://codeberg.org/interpeer/specs"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="sec_intro">
      <name>Introduction</name>
      <t>In 1964, Paul Baran at the RAND Corporation described centralized, decentralized
and distributed communications networks and their properties <xref target="RM3420"/>. Baran's
argument was that because in distributed systems, each node can reach many other
nodes, failure of a single node need not impact the ability of other nodes to
communicate.</t>
      <t>This resilience is desirable in distributed systems today. Therefore it seems
an oversight that authentication and authorization in modern system is often a
centralized function.</t>
      <t>This document explores previous attempts at distributed authorization schemes,
and outlines common elements of such solutions in order to provide a reference
for future work.</t>
      <section anchor="sec_intro-conventions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
        <t>In order to respect inclusive language guidelines from <xref target="NIST.IR.8366"/> and
<xref target="I-D.draft-knodel-terminology-10"/>, this document uses plural pronouns.</t>
      </section>
      <section anchor="sec_problem">
        <name>Problem Space</name>
        <t>Distributed authorization is not a goal in itself, but may be desirable in
distributed systems.</t>
        <t>It's also worth exploring how the distribution of authorization functions
related to authentication. In many systems, these are intrinsically linked.
Logging in with a user name and password is one such example. Providing the
correct password proves that the person at the keyboard is authorized to access
a resource. But at the same time, providing the correct password in combination
with a user name authenticates this user. Furthermore, any permissions granted
to the user are typically linked to the user name, as that remains stable
throughout password changes.</t>
        <section anchor="sec_authentication">
          <name>Authentication</name>
          <t>Password-based authentication mechanisms require that the tuple of user name and
password (or password hash) are sent to some central repository where records of
such tuples are kept; if the tuple is found, the user name is authenticated.</t>
          <t>This common scheme mixes different aspects to authentication, however, which are
worth disambiguating.</t>
          <dl>
            <dt>Endowment:</dt>
            <dd>
              <t><iref item="endowment" primary="true"/> The act of logging in establishes an association between a
user name and the person interacting with the device. More broadly speaking,
(parts of) a three-way endowment are performed: an <em>identifier</em> is endowed
with <em>attributes</em>, which describe a <em>person</em> in sufficient detail to identify
them.</t>
            </dd>
            <dt>Secret Proving:</dt>
            <dd>
              <t><iref item="secret proving" primary="true"/> Logging in also proves that the person interacting with
the device is in possession of some secret, which should only be known to the
person which merits having the user name linked to the secret associated with
them.</t>
            </dd>
          </dl>
          <t>The distinction becomes somewhat more relevant when we move towards distributed
authentication schemes, which rely on public key cryptography.</t>
          <section anchor="sec_authentication-wot">
            <name>Web of Trust</name>
            <t>In Web of Trust based systems, starting with Philip R. Zimmermann's Pretty Good
Privacy (PGP), public keys are exchanged with some metadata attached. This
performs some part of endowment <iref item="endowment"/> in that it provides
the link between a public key and a user identifier (see
<xref section="11.1" sectionFormat="comma" target="RFC4880"/>).</t>
            <t>Other parts of endowment are not specified. These often consist of manual
checks that the user identifier belongs to some person holding the corresponding
private key, and may involve verifying of government issued identification
documents. Once such a check is passed, the verifier issues a digital signature
over the tuple of user identifier and public key to provide some proof that the
verification has occurred.</t>
            <t>Endowment in Web of Trust occurs when a sufficient number of sufficiently
trustworthy signatures have been reached. Which number of trust level is deemed
sufficient is in the control of the recipient of a transferable public key
packets, however.</t>
          </section>
          <section anchor="sec_authentication-tls">
            <name>TLS Certificates</name>
            <t>A similar concept is applied in TLS <xref target="RFC8446"/>, where <xref target="X.509"/> certificates
are used for endowment.</t>
            <t>The major difference to Web of Trust based systems is how trust is established.
Instead of relying on a recipient defined method of determining trust,
certificates are issued by one of a set of well-known trust sources. Information
on these is stored in root certificates, which are distributed to the machines
participating in the system.</t>
            <t>While there are globally issued root certificates for entities that perform
endowment professionally, it is always possible for a system designer to
include other root certificates.</t>
          </section>
          <section anchor="sec_authentication-secret">
            <name>Secret Proving</name>
            <t>Neither <xref target="X.509"/> certificates nor the transferable public key packets in
<xref target="RFC4880"/> provide any means for secret proving. This is left to other parts
of TLS or PGP.</t>
            <t>In TLS, the handshake during connection establishment is used to send challenges
that only machines with the correct private key can respond to. PGP, which aims
to provide privacy at rest, simply encrypts content with a secret key which is
then encrypted with the recipient's public key. Other parties cannot decrypt this,
which keeps content safe.</t>
            <t>TLS and PGP are not the only public key cryptography based authentication systems,
but they can stand in for the two most common classes of such systems: one aims
to establish trust from authoritative sources. The other aims to establish trust
based on the trust requirements of the recipient.</t>
            <t>Both systems also strictly speaking separate endowment from secret proving.
While in TLS the certificates are transmitted as part of the overall handshake,
creating certificates nevertheless occurs beforehand. This temporal decoupling
<iref item="temporal decoupling" primary="true"/> is a key property that may also be applied to
authorization.</t>
          </section>
        </section>
        <section anchor="sec_authorization">
          <name>Authorization</name>
          <t>Authorization occurs only after secret proving. Once an identity has been
established, it is then mapped to privileges associated with said entity,
which determine which object(s) it has access to.</t>
          <t>There exist a plethora of methods to establish this mapping. Access-control
lists (ACL) simply provide tuples of identities, privileges and associated
objects. Role-based access control (RBAC) is effectively identical, if the
identities specified are not those of individuals, but of groups (as a group
member, an individual inhabits the associated role). A comparable approach is
Organization-based access control (OrBAC), which not only abstracts the
identity to that of a role, but performs a similar abstraction on the object
and privilege.</t>
          <t>More complex systems such as context- or lattice-based access control (CBAC and
LBAC respectively) derive a mapping from properties of or labels attached to the
individuals and objects. Finally, graph-based access control (GBAC) starts with
a graph of an organization, and derives privileges from the properties inherited
by being part of a larger organizational structure.</t>
          <t>What these systems address is the problem of <em>managing</em> the mapping of an
identity to access privileges for objects, where each system has advantages and
disadvantages for various use cases.</t>
          <dl>
            <dt>Subject:</dt>
            <dd>
              <t>The subject <iref item="subject" primary="true"/> is the identity (individual or group/role) that
intends to perform an action.</t>
            </dd>
            <dt>Action:</dt>
            <dd>
              <t>The action <iref item="action" primary="true"/> the subject intends to perform may be as simple as
reading or writing a resource, but can be more complex.</t>
            </dd>
            <dt>Object:</dt>
            <dd>
              <t>Actions are performed on objects <iref item="object" primary="true"/>, such as a file or network
resource.</t>
            </dd>
            <dt>Request Tuple:</dt>
            <dd>
              <t>A request tuple <iref item="request tuple" primary="true"/> consists of the subject, action and
(optional) object.</t>
            </dd>
            <dt>Privilege:</dt>
            <dd>
              <t>A privilege <iref item="privilege" primary="true"/> encodes whether or not an action is permitted.</t>
            </dd>
            <dt>Authorization Tuple:</dt>
            <dd>
              <t>An authorization tuple <iref item="authorization tuple" primary="true"/> encodes system state, and
is thus a tuple of a subject, a privilege and an (optional) object.</t>
            </dd>
          </dl>
          <t>The act of authorization translates from a request tuple to a Boolean response
determining whether a request is permitted. A centralized authorization function
provides this answer in real-time. Distributed authorization instead deals in
authorization tuples.</t>
          <t>It may be of interest that and authorization tuple is semantically equivalent
to an RDF triple (<xref target="RDF"/>), in that it encodes a specific relationship between a
subject and an object. Authorization tuples that consists solely of IRIs
<xref target="RFC3987"/> is also syntactically an RDF triple. This implies that
authorization tuples can encode arbitrarily complex authorization information by
building the knowledge graph resulting from resolving such an RDF triple.</t>
          <section anchor="sec_authorization-spof">
            <name>Single Point of Failure</name>
            <t>A centralized function is very useful for managing authorization. The previous
section on different access control methods should illustrate sufficiently that
authorization management is a complex problem; complex enough for multiple
competing management methods to emerge.</t>
            <t>Faced with such a complex problem, it is no surprise that solutions tend to
bring this function to a centralized location. Managing this complexity in one
place is of course simpler than managing it across multiple locations.</t>
            <t>The downside to this is that failure of this single location may mean failure
of the system as a whole. Particularly vulnerable to this single point of failure
are systems in which all access is controlled by specific privileges. Systems
with publicly available parts may still provide those functions that do not rely
on any privileges.</t>
          </section>
          <section anchor="sec_authorization-temp">
            <name>Temporal Coupling</name>
            <t>The other class of problems with centralized authorization relate to the
temporal coupling of granting access <iref item="access granting" primary="true"/> and resolving
authorization queries <iref item="authorization query" primary="true"/>. The abstract request
introduced above of resolving an request tuple <iref item="request tuple"/> to a
Boolean response tightly couples both steps.</t>
            <t>This requires disambiguating between participants in such a system somewhat.
From the perspective of the person operating the access control management
system, granting access occurs whenever they make an entry into the database.
The machine permitting an authorized user to perform an action, however, grants
or denies access in the moment the action is requested. If this second form
of access granting is based on a real-time authorization query, it couples
granting access to such a query in time.</t>
            <t>The key insight into distributing authorization effectively is that it has
little to do with managing access control databases. Rather, it is related to
temporally decoupling the authorization query from granting access.</t>
          </section>
        </section>
      </section>
      <section anchor="sec_prior">
        <name>Previous Work</name>
        <t>Dividing the authentication problem into endowment and secret proving helps
illustrate how web of trust systems introduce temporal decoupling between these
functions, in a way that e.g. TLS does not.</t>
        <t>In much the same way, dividing the authorization problem into querying an
authorization database and granting access to an object suggests that
authorization, too, can be temporally decoupled.</t>
        <t>This section lists prior work where some temporal decoupling of this kind has
been performed in the past.</t>
        <section anchor="sec_prior-ocap">
          <name>Object-Capabilities (OCAP)</name>
          <t>Dennis and Van Horn described an approach for securing computations in
"multiprogrammed" systems in 1965/66 (<xref target="OCAP"/>). The context in which they operated had
little to do with modern distributed systems.</t>
          <t>However, they recognized the trend of running computing systems complex enough
that multiple programmers would contribute to its overall function. This raised
a desire for access control to individual sub-functions, which a security kernel
within the operating system was to provide.</t>
          <t>The key differentiator to other systems was that in OCAP, a calling process was
to present a "capability", a serialized token to the process being invoked. This
capability was intended to encode all relevant information the called process
would need to determine whether the caller was permitted to perform such an
action.</t>
          <t>These properties of being serializable and containing all relevant authorization
information imply that, conceptually, capabilities are cached results of an
authorization query <iref item="authorization query"/>. The called process can then perform
access granting <iref item="access granting"/> without issuing such a query itself, thereby
temporally decoupling the two functions.</t>
        </section>
        <section anchor="sec_prior-icap">
          <name>Identity-Capabilities (ICAP)</name>
          <t>The OCAP system proved to have a particular weakness, namely that "the right to
exercise access carries with it the right to grant access". This is the result
the information encoded in an OCAP capability: it contains a reference to the
object and action to perform, but does not tie this to any identity.</t>
          <t>In 1988, Li Gong sought to address this with an Identity-Capability model
(<xref target="ICAP"/>). Including an identity in the capability token arrives at the
authorization tuple <iref item="authorization tuple"/> in <xref target="sec_authorization"/>. Furthermore,
ICAP introduces the notion of capability use in networked systems. ICAP does this by
temporally decoupling the authorization query from access granting.</t>
          <t>The main criticism levelled against the paper and capability-based approaches in
general in the following years was that some functions were missing, such as a
check for revocations. Proposals to address this often added centralized
functions again, which led to criticism of the distributed approach in general.</t>
        </section>
        <section anchor="sec_pgp">
          <name>Pretty Good Privacy</name>
          <t>While we previously discussed PGP in terms of authentication in
<xref target="sec_authentication-wot"/>, a key property of PGP is the introduction of trust
signatures (<xref section="5.2.3.13" sectionFormat="comma" target="RFC4880"/>).</t>
          <t>Trust signatures do not merely authenticate a user, they introduce a kind of
authorization as well, as they carry specific notions for what the provided
public key may be trusted for. The trust signature thus encodes specific kinds
of privileges <iref item="privilege"/> of an authorization tuple <iref item="authorization tuple"/>,
while the public key encodes a subject <iref item="subject"/>. The only component
missing in the tuple is the object <iref item="object"/>.</t>
          <t>While the authorization tuple in PGP is incomplete, the system is based on
public key cryptography, and can thus be used to securely verify a binding
between the tuple elements.</t>
        </section>
        <section anchor="sec_jwt">
          <name>JSON Web Tokens (JWT)</name>
          <t>JSON Web Tokens (<xref target="RFC7519"/>) provide a standardized way for serializing
access tokens. Current uses are in systems with centralized authorization
functions such as OAuth (<xref target="RFC6749"/>).</t>
          <t>However, the fundamental notion of capabilities, that a serializable token
carries authorization information, is provided also here. Furthermore, JWT
combines this with cryptographic signatures, providing for - in theory -
temporal decoupling as previously discussed.</t>
          <t>It's well worth pointing out that JWT is suitable as a portable, modern
capability format - all it requires is to encode all necessary information
within its fields.</t>
        </section>
        <section anchor="sec_poa">
          <name>Power of Attorney</name>
          <t>The oldest kind of prior work in this field is the concept of Power of Attorney,
as exercised throughout much of human history.</t>
          <t>In a Power of Attorney system, an authority (a king, etc.) grants a token
(an official seal, ...) to a subordinate which makes this subordinate
recognizable as carrying some of the king's powers and privileges.</t>
          <t>Modern day Power of Attorney systems abound, and may be formalized as notarized
letters granting such and such rights to other people.</t>
          <t>Capability-based authorization schemes are no different to this kind of system
in principle. In both kinds of systems, the token itself encodes the privileges
of the bearer.</t>
        </section>
      </section>
      <section anchor="sec_use-cases">
        <name>Use Cases</name>
        <t>Use cases relate to one or more of the issues explored in the problem space.</t>
        <section anchor="sec_uc-iot">
          <name>IoT On-boarding</name>
          <t>On-boarding IoT devices into an overall system requires authentication and
authorization; this may be mutual.</t>
          <t>In such scenarios, new devices rarely have connectivity before completing
on-boarding. It follows that authentication and authorization must work in
a fully offline fashion, which in turn requires that authorization tokens
provided to the device contain all information required for the authorization
step. As described in <xref target="sec_prior-ocap"/>, this translates to a requirement
of temporally decoupling access granting from an authorization query.</t>
        </section>
        <section anchor="sec_uc-uav">
          <name>UAV Control Handover</name>
          <t>A similar argument applies to control handover of unmanned aerial vehicles
(UAV). The concept of Beyond Visual Line of Sight (BVLOS) missions is to send
drones into places that are harder or more costly to reach for humans.</t>
          <t>Control handover refers to transferring operational control for a drone from one
ground control station to (GCS) another. Control handover bears similarities to IoT
on-boarding in that the drone is on-boarded to a new control system (and the
previous system relinquishes control).</t>
          <t>In general, aviation authorities such as FAA, EASA, etc. expect control handover
to occur under ideal circumstances, in which centralized authorization schemes
suffice. There is, however, a class of scenarios where connectivity to a central
service cannot be guaranteed.</t>
          <section anchor="sec_uc-uav-remote">
            <name>Remote Location</name>
            <t>In order to guarantee BVLOS operations in very remote locations, research
projects such as <xref target="ADACORSA"/> assume use cases in which two ground control
stations between which handover occurs to not have connectivity to each other.</t>
            <t>In such cases, it is necessary for the UAV to act as a time-delayed transmission
channel for authorization information between the GCSes.</t>
          </section>
          <section anchor="sec_uc-uav-emergency">
            <name>Emergency Response</name>
            <t>Emergency response teams may require UAVs in the vicinity to immediately clear
the airspace and go to ground. This effectively translates to the emergency
response team operating a ground control station that takes over control and
issues a single command.</t>
            <t>As emergency responses are, by definition, typically required in situations
where normal operations cannot be assumed, this includes the assumption that
connectivity cannot be assumed. Nevertheless, such an emergency control
handover must be possible.</t>
          </section>
          <section anchor="sec_uc-uav-mobile-gcs">
            <name>Mobile Ground Control Stations</name>
            <t>A comparable scenario to the above describes situations in which UAV attach
to a mobile ground control station. Specific scenarios may range from cave
exploration to investigating burning buildings.</t>
            <t>The commonality here is that the UAV cannot establish connectivity to a wider
system, but can connect to the mobile GCS. This in turn may act as a
communications relay to the outside world, but may be too limited in capacity
to permit online, centralized authorization.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec_elements">
      <name>Elements of a Distributed Authorization Scheme</name>
      <t>As explored in the previous sections, the most fundamental aspect of a
distributed authorization scheme is that it decouples access granting
<iref item="access granting"/> from authorization queries <iref item="authorization query"/> by
serializing the results in such a way that they can be transmitted and
evaluated at a later date. This effectively shifts the focus of distributed
authorization systems away from request tuples <iref item="request tuple"/> towards
authorization tuples. <iref item="authorization tuple"/></t>
      <t>This implies certain things about the contents of a capability token, but
it also introduces other elements and roles into the overall scheme.</t>
      <section anchor="sec_elements-grantor">
        <name>Grantor</name>
        <t>A grantor, sometimes called principal, has authority over an object,
<iref item="object"/> and generates authorization tuples <iref item="authorization tuple"/>
for use in the overall system.</t>
        <t>As we describe cryptographic systems, a grantor is represented by an asymmetric
key pair. Endowment for a grantor is out of scope of this document; for
the purposes of distributed authorization, the grantor key pair <em>is</em> the grantor.</t>
        <section anchor="sec_elements-grantor-id">
          <name>Grantor Identifier</name>
          <t>A grantor identifier uniquely identifiers the public key of the key pair; this
may be identical to a serialized form of the public key itself, or a
cryptographic hash over it (fingerprint), or some alternative scheme.</t>
          <t>What is sufficient is that there <bcp14>MUST</bcp14> exit a mechanism for uniquely mapping the
grantor public key to the grantor identifier and vice versa. This mapping
permits verification.</t>
        </section>
        <section anchor="sec_elements-grantor-sig">
          <name>Grantor Signature</name>
          <t>The grantor undersigns a capability by adding a cryptographic signature to it.</t>
        </section>
      </section>
      <section anchor="sec_elements-agent">
        <name>Agent</name>
        <t>The agent is the element in a distributed system that executes a requested
action after verifying a capability. It typically manages objects itself, or
provides access to them.</t>
      </section>
      <section anchor="sec_elements-verifier">
        <name>Verifier</name>
        <t>The verifier is a role in the system that verifies a capability. While verifiers
can exist in a variety of system nodes, it's a mandatory part of the agent role.</t>
        <t>Outside of the agent, verifiers may exist in intermediary nodes that mediate
access to agents. An example here might be an authorization proxy that sits
between the public internet and a closed system. While it may not be an agent
in and of itself, it can still decide to reject invalid requests, and only
forward those to agents that pass verification and its own forwarding rules.</t>
      </section>
      <section anchor="sec_elements-channel">
        <name>Time-Delayed Transmission Channel</name>
        <t>We introduce the concept of a time-delayed transmission channel to illustrate
that communications between grantor and verifier is not possible in real-time.</t>
        <t>In practice, of course the communications channel does not have to be time-
delayed. But treating it as such implies that granting access must be temporally
decoupled from the authorization query.</t>
      </section>
      <section anchor="sec_elements-grantee">
        <name>Grantee</name>
        <t>The grantee is the entity to which a privilege is granted.</t>
        <t>A grantee <bcp14>SHOULD</bcp14> also be represented by an asymmetric key pair in order to
perform distributed authentication.</t>
        <section anchor="sec_elements-grantee-identifier">
          <name>Grantee Identifier</name>
          <t>A grantee identifier is the identifier used as the subject <iref item="subject"/> in
an authorization tuple.</t>
          <t>If the grantee is equivalent to an asymmetric key pair, it <bcp14>MUST</bcp14> also be possible
to map the grantee identifier to the grantee public key and vice versa. Such a
mapping <bcp14>SHOULD</bcp14> be feasible to perform without connectivity in order to maintain
the distributed authentication mechanisms achieved through the use of asymmetric
cryptography.</t>
        </section>
      </section>
      <section anchor="sec_elements-object">
        <name>Object</name>
        <t>An object is a resource the grantee wishes to access. This can be a file, or
a networked service, etc.</t>
        <section anchor="sec_elements-object-identifier">
          <name>Object Identifier</name>
          <t>The object identifier uniquely identifiers an object. This document places no
syntactic restrictions upon the object identifier, other than that there exists
a canonical encoding for it. For the purposes of cryptographic signing and
verification, the object identifier <bcp14>MUST</bcp14> be treated as equivalent to its
canonical encoding.</t>
        </section>
      </section>
      <section anchor="sec_elements-privilege">
        <name>Privilege</name>
        <t>A privilege encodes whether an action (on an object) is permitted (for a
subject); see {#sec:authorization} for an explanation.</t>
        <t>For the purposes of creating capabilities, a privilege must have a canonical
encoding. The semantics of each privilege are out of scope of this document,
and to be defined by the systems using distributed authorization.</t>
        <t>That being said, a typical set of privileges might include read and write
privileges for file-like resources.</t>
      </section>
      <section anchor="sec_elements-validity-metadata">
        <name>Validity Metadata</name>
        <t>In practical applications of distributed authorization scheme, validity of a
capability may be further scoped. We already discussed the need to scope it
to an authorization tuple, but further restrictions are likely desirable.</t>
        <t>For example, a set of <tt>not-before</tt> and <tt>not-after</tt> timestamps exist in e.g.
<xref target="X.509"/> certificates; similar temporal validity restrictions are likely
required in practical systems.</t>
        <t>However necessary they may be in practice, however, such additional validity
metadata has no bearing on the fundamental concepts outlined in this document,
and is therefore considered out of scope here.</t>
      </section>
      <section anchor="sec_elements-capability">
        <name>Capability</name>
        <t>A capability provides a serialized encoding of previously listed elements:</t>
        <ol spacing="normal" type="1"><li>
            <t>Fundamentally, a capability <bcp14>MUST</bcp14> encode an authorization tuple, consisting
of:
            </t>
            <ol spacing="normal" type="1"><li>A subject <iref item="subject"/> identifier.</li>
              <li>A privilege. <iref item="privilege"/></li>
              <li>An object <iref item="object"/> identifier.</li>
            </ol>
          </li>
          <li>A grantor identifier <bcp14>MAY</bcp14> be required in order to identify the grantor key
pair used in signing and verification.</li>
          <li>Validity Metadata <bcp14>SHOULD</bcp14> be included in practical systems.</li>
          <li>In order for a verifier to ensure the validity of a capability, it <bcp14>MUST</bcp14>
finally contain a grantor signature over all preceding fields.</li>
        </ol>
        <t>The authorization tuple permits an agent to determine what kind of access to
grant or deny. The grantor identifier provides information to the verifier
about key pairs used in the authorization. While the signature proves to the
verifier that the grantor did indeed authorize access, the validity metadata
limits access to whichever additional scope the grantor decided upon.</t>
        <section anchor="sec_elements-capability-extensions">
          <name>Extensions</name>
          <t>Note that each of the fields in an authorization tuple may be treated as a list
of zero or more such elements. While a longer discussion of this is out of scope
for this document, two notes should be made:</t>
          <ol spacing="normal" type="1"><li>Implementations must provide clarity what it means to provide a list. Does
the capability apply to each element in the list individually, or to some
combination? This is highly specific to the semantics of each capability,
so cannot be covered here.</li>
            <li>A tuple consisting of a subject and privilege only (zero objects) effectively
turns into a statement about the subject, and no longer relates to
authorization concerns. However, other aspects of a distributed trust system
still apply. This is the approach taken by Pretty Good Privacy.</li>
          </ol>
        </section>
      </section>
      <section anchor="sec_elements-process">
        <name>Authorization Process</name>
        <t>Having identified the elements, we can now describe an abstract process
in a distributed authorization system.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="672" width="448" viewBox="0 0 448 672" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,48 L 8,256" fill="none" stroke="black"/>
              <path d="M 8,384 L 8,640" fill="none" stroke="black"/>
              <path d="M 24,64 L 24,96" fill="none" stroke="black"/>
              <path d="M 24,176 L 24,224" fill="none" stroke="black"/>
              <path d="M 24,400 L 24,464" fill="none" stroke="black"/>
              <path d="M 56,104 L 56,152" fill="none" stroke="black"/>
              <path d="M 104,64 L 104,96" fill="none" stroke="black"/>
              <path d="M 104,400 L 104,464" fill="none" stroke="black"/>
              <path d="M 122,256 L 122,360" fill="none" stroke="black"/>
              <path d="M 118,256 L 118,360" fill="none" stroke="black"/>
              <path d="M 152,176 L 152,224" fill="none" stroke="black"/>
              <path d="M 200,496 L 200,608" fill="none" stroke="black"/>
              <path d="M 288,400 L 288,512" fill="none" stroke="black"/>
              <path d="M 336,592 L 336,624" fill="none" stroke="black"/>
              <path d="M 352,400 L 352,512" fill="none" stroke="black"/>
              <path d="M 384,448 L 384,584" fill="none" stroke="black"/>
              <path d="M 424,592 L 424,624" fill="none" stroke="black"/>
              <path d="M 440,32 L 440,240" fill="none" stroke="black"/>
              <path d="M 440,368 L 440,640" fill="none" stroke="black"/>
              <path d="M 24,32 L 440,32" fill="none" stroke="black"/>
              <path d="M 24,64 L 104,64" fill="none" stroke="black"/>
              <path d="M 336,64 L 408,64" fill="none" stroke="black"/>
              <path d="M 104,80 L 312,80" fill="none" stroke="black"/>
              <path d="M 24,96 L 104,96" fill="none" stroke="black"/>
              <path d="M 336,96 L 408,96" fill="none" stroke="black"/>
              <path d="M 40,160 L 136,160" fill="none" stroke="black"/>
              <path d="M 40,192 L 136,192" fill="none" stroke="black"/>
              <path d="M 40,240 L 136,240" fill="none" stroke="black"/>
              <path d="M 8,256 L 424,256" fill="none" stroke="black"/>
              <path d="M 168,304 L 240,304" fill="none" stroke="black"/>
              <path d="M 168,336 L 240,336" fill="none" stroke="black"/>
              <path d="M 24,368 L 440,368" fill="none" stroke="black"/>
              <path d="M 24,400 L 104,400" fill="none" stroke="black"/>
              <path d="M 288,400 L 352,400" fill="none" stroke="black"/>
              <path d="M 104,416 L 280,416" fill="none" stroke="black"/>
              <path d="M 112,448 L 288,448" fill="none" stroke="black"/>
              <path d="M 352,448 L 384,448" fill="none" stroke="black"/>
              <path d="M 24,464 L 104,464" fill="none" stroke="black"/>
              <path d="M 200,496 L 280,496" fill="none" stroke="black"/>
              <path d="M 288,512 L 352,512" fill="none" stroke="black"/>
              <path d="M 336,592 L 424,592" fill="none" stroke="black"/>
              <path d="M 200,608 L 336,608" fill="none" stroke="black"/>
              <path d="M 336,624 L 424,624" fill="none" stroke="black"/>
              <path d="M 8,640 L 440,640" fill="none" stroke="black"/>
              <path d="M 24,32 C 15.16936,32 8,39.16936 8,48" fill="none" stroke="black"/>
              <path d="M 336,64 C 327.16936,64 320,71.16936 320,80" fill="none" stroke="black"/>
              <path d="M 408,64 C 416.83064,64 424,71.16936 424,80" fill="none" stroke="black"/>
              <path d="M 336,96 C 327.16936,96 320,88.83064 320,80" fill="none" stroke="black"/>
              <path d="M 408,96 C 416.83064,96 424,88.83064 424,80" fill="none" stroke="black"/>
              <path d="M 40,160 C 31.16936,160 24,167.16936 24,176" fill="none" stroke="black"/>
              <path d="M 136,160 C 144.83064,160 152,167.16936 152,176" fill="none" stroke="black"/>
              <path d="M 40,192 C 31.16936,192 24,184.83064 24,176" fill="none" stroke="black"/>
              <path d="M 136,192 C 144.83064,192 152,184.83064 152,176" fill="none" stroke="black"/>
              <path d="M 40,240 C 31.16936,240 24,232.83064 24,224" fill="none" stroke="black"/>
              <path d="M 136,240 C 144.83064,240 152,232.83064 152,224" fill="none" stroke="black"/>
              <path d="M 424,256 C 432.83064,256 440,248.83064 440,240" fill="none" stroke="black"/>
              <path d="M 168,304 C 159.16936,304 152,311.16936 152,320" fill="none" stroke="black"/>
              <path d="M 240,304 C 248.83064,304 256,311.16936 256,320" fill="none" stroke="black"/>
              <path d="M 168,336 C 159.16936,336 152,328.83064 152,320" fill="none" stroke="black"/>
              <path d="M 240,336 C 248.83064,336 256,328.83064 256,320" fill="none" stroke="black"/>
              <path d="M 24,368 C 15.16936,368 8,375.16936 8,384" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="392,584 380,578.4 380,589.6" fill="black" transform="rotate(90,384,584)"/>
              <polygon class="arrowhead" points="320,80 308,74.4 308,85.6" fill="black" transform="rotate(0,312,80)"/>
              <polygon class="arrowhead" points="288,496 276,490.4 276,501.6" fill="black" transform="rotate(0,280,496)"/>
              <polygon class="arrowhead" points="288,416 276,410.4 276,421.6" fill="black" transform="rotate(0,280,416)"/>
              <polygon class="arrowhead" points="128,360 116,354.4 116,365.6" fill="black" transform="rotate(90,120,360)"/>
              <polygon class="arrowhead" points="120,448 108,442.4 108,453.6" fill="black" transform="rotate(180,112,448)"/>
              <polygon class="arrowhead" points="64,152 52,146.4 52,157.6" fill="black" transform="rotate(90,56,152)"/>
              <polygon class="arrowhead" points="64,104 52,98.4 52,109.6" fill="black" transform="rotate(270,56,104)"/>
              <g class="text">
                <text x="208" y="68">2. serializes &amp; signs</text>
                <text x="64" y="84">Grantor</text>
                <text x="372" y="84">capability</text>
                <text x="208" y="132">1. *authorization query* &amp; response</text>
                <text x="88" y="212">authorization</text>
                <text x="88" y="228">tuple store</text>
                <text x="272" y="292">time-delayed communications channel</text>
                <text x="204" y="324">capability</text>
                <text x="192" y="404">1. access request</text>
                <text x="64" y="436">Grantee</text>
                <text x="320" y="452">Agent</text>
                <text x="192" y="468">4. *access grant*</text>
                <text x="128" y="548">3. verification</text>
                <text x="312" y="548">2. verification</text>
                <text x="140" y="564">response</text>
                <text x="320" y="564">request</text>
                <text x="380" y="612">Verifier</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   .----------------------------------------------------.
  |                                                     |
  | +---------+  2. serializes & signs    .----------.  |
  | | Grantor +------------------------->| capability | |
  | +---------+                           '----------'  |
  |     ^                                               |
  |     | 1. *authorization query* & response           |
  |     v                                               |
  |  .-------------.                                    |
  | |               |                                   |
  | |'-------------'|                                   |
  | | authorization |                                   |
  | |  tuple store  |                                   |
  |  '-------------'                                    |
  '-------------+--------------------------------------'
                ║
                ║ time-delayed communications channel
                ║    .----------.
                ║   | capability |
                ║    '----------'
                v
   .----------------------------------------------------.
  |                                                     |
  | +---------+  1. access request   +-------+          |
  | |         +--------------------->|       |          |
  | | Grantee |                      |       |          |
  | |         |<---------------------+ Agent +---+      |
  | +---------+  4. *access grant*   |       |   |      |
  |                                  |       |   |      |
  |                       +--------->|       |   |      |
  |                       |          +-------+   |      |
  |                       |                      |      |
  |       3. verification |      2. verification |      |
  |            response   |           request    |      |
  |                       |                      v      |
  |                       |                +----------+ |
  |                       +----------------+ Verifier | |
  |                                        +----------+ |
  '-----------------------------------------------------'
]]></artwork>
        </artset>
        <t>The process is split into two phases.</t>
        <t>In the first phase, the grantor issues an authorization query (((authorization
query))) to an authorization tuple store, which stands in here for the specific
process by which authorization is managed, and produces tuples. Based on the
response, it serializes a capability and adds its signature over it.</t>
        <t>The capability then gets transmitted via the time-delayed communications channel
to the second phase, providing temporal decoupling between the phases.</t>
        <t>In the second phase, the grantee requests access to some object from the
agent. The agent must send a verification request to the verifier (which may
be a subroutine of the agent; no network transmission is implied here). The
verifier responds by either permitting access or not. If access is permitted,
the agent grants access to the grantee. Because the capability encodes all
required information for the verifier to perform this step, it does not need
access to the authorization tuple store itself.</t>
        <t>Note that the capability can be transmitted to any entity in the second phase;
all that is relevant is that it ends up at the verifier. If it is transmitted
to the grantee, it has to pass it on to the agent as part of the access request.
If the agent receives it, it has to pass it on to the verifier as part of the
verification request.</t>
      </section>
    </section>
    <section anchor="sec_delegation">
      <name>Delegation of Authority</name>
      <t>One of the more powerful applications of the power of attorney system is that
it is possible to further delegate authority. The constraint is that no entity
can provide more authority in a sub-grant than it possessed in the first place.</t>
      <t>The ability to generate sub-grants is easily provided in a specialized privilege.
Such a privilege must encode the specific other privileges a grantee may in turn
grant to other parties.</t>
      <t>As this may include the ability to grant further sub-grants, implementations
<bcp14>MUST</bcp14> take care here. They <bcp14>MAY</bcp14> wish to include a limit on the depth to which
sub-grants may be further delegated.</t>
    </section>
    <section anchor="sec_considerations">
      <name>Related Considerations</name>
      <section anchor="sec_human-rights-considerations">
        <name>Human Rights Considerations</name>
        <t>What follows is a list of objectives derived from <xref target="RFC8280"/>, each with a
brief statement how this document addresses each concern, or why it does not.</t>
        <section anchor="sec_hro-in-scope">
          <name>In Scope</name>
          <dl>
            <dt>Connectivity:</dt>
            <dd>
              <t>Distributed authorization observes end-to-end principle, by temporally
decoupling distinct functions in the authorization process, so that connectivity
can be almost arbitrarily unreliable.</t>
            </dd>
            <dt>Reliability:</dt>
            <dd>
              <t>Capabilities provide reliability by removing the need for real-time
reliability.</t>
            </dd>
            <dt>Content agnosticism:</dt>
            <dd>
              <t>The elements of authorization tuples are only defined in the abstract; as
noted in {#sec:authorization}, they can encode arbitrarily complex
relationships. Of course, the semantics <bcp14>SHOULD</bcp14> be somewhat focused on
authorization.</t>
            </dd>
            <dt>Integrity:</dt>
            <dd>
              <t>The use of cryptographic signatures in capabilities also provides integrity
checking, but no explicit mechanism for distinguishing between integrity
failures and authenticity is provided.</t>
            </dd>
            <dt>Authenticity:</dt>
            <dd>
              <t>Proving authenticity is a core concept of cryptographic capabilities.</t>
            </dd>
            <dt>Pseudonymity:</dt>
            <dd>
              <t>This document deliberately distinguishes between endowment and secret
proving in {#sec:authentication}, precisely because authorization does not
need to make use of such information.</t>
            </dd>
            <dt>Censorship resistance:</dt>
            <dd>
              <t>Temporally decoupling authorization queries from access granting provides
one element in a censorship resistant system, as it permits for capabilities
to travel out-of-band by means that circumvent potential censorship, such as
e.g. via a sneakernet, etc.</t>
            </dd>
            <dt>Outcome Transparency:</dt>
            <dd>
              <t>This document's main focus is on illustrating the outcomes of distributed
authorization schemes.</t>
            </dd>
            <dt>Adaptability:</dt>
            <dd>
              <t>As this document provides a generalized view on distributed authorization
schemes and capabilities, it is highly adaptable in specific implementations.</t>
            </dd>
            <dt>Decentralization:</dt>
            <dd>
              <t>Decentralization - rather, distribution - is the goal of this document.</t>
            </dd>
            <dt>Open Standards:</dt>
            <dd>
              <t>Care has been taken to define this specification in reference to other open
standards (see the references section).</t>
            </dd>
            <dt>Security:</dt>
            <dd>
              <t>As this document describes an authorization scheme, security is of great
concern. However, guidelines in <xref target="BCP72"/> do not fully apply to an abstract
description. See {#sec:security-considerations} for more detail.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec_hro-out-of-scope">
          <name>Out of Scope</name>
          <dl>
            <dt>Confidentiality:</dt>
            <dd>
              <t>Confidentiality is out of scope of the general concept of capabilities;
capability content is almost by definition public data. However, nothing
prevents an implementation from providing confidentiality for the capability
elements outside of the signature.</t>
            </dd>
            <dt>Heterogeneity Support:</dt>
            <dd>
              <t>There is no specific heterogeneity support in distributed authorization
schemes.</t>
            </dd>
            <dt>Remedy:</dt>
            <dd>
              <t>Remedy (new in <xref target="I-D.draft-irtf-hrpc-guidelines-16"/> often stands in stark
contrast to anonymity and pseudonymity, both of which are out of scope.
Implementations must take care to balance these concerns.</t>
            </dd>
            <dt>Internationalization:</dt>
            <dd>
              <t>This document focuses on abstract concepts; internationalization is not in
scope.</t>
            </dd>
            <dt>Localization</dt>
            <dd>
              <t>See internationalization; this is not in scope.</t>
            </dd>
            <dt>Privacy:</dt>
            <dd>
              <t>For privacy protections, implementations must themselves ensure that any
information encoded in a capability cannot be abused to resolve otherwise
private information.</t>
            </dd>
            <dt>Anonymity:</dt>
            <dd>
              <t>Anonymity is out of scope for this document. While pseudonymous use is
feasible if sufficient care is taken, authorization always ties to an identity,
however transient.</t>
            </dd>
            <dt>Accessibility:</dt>
            <dd>
              <t>Accessibility concerns are out of scope.</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="sec_protocol-considerations">
        <name>Protocol Considerations</name>
        <t>There are no specific protocol considerations for this document.</t>
        <t>However, protocols transmitting capabilities <bcp14>MAY</bcp14> provide some relief to
human rights concerns {#sec:human-rights-considerations}, e.g. by providing
confidentiality via encrypted transmission.</t>
      </section>
      <section anchor="sec_security-considerations">
        <name>Security Considerations</name>
        <t>This document does not specify a network protocol. In fact, it deliberately
requires no specific protocol for transmitting capabilities. As such, much of
<xref target="BCP72"/> does not apply.</t>
        <t>However, distributed authorization does not require the invention of new
cryptographic constructs; the document is deliberately phrased such that the
choice of such constructs remains implementation defined.</t>
        <section anchor="sec_security-considerations-confidentiality">
          <name>Confidentiality</name>
          <t>Confidentiality concerns are out of scope of this document.</t>
        </section>
        <section anchor="sec_security-considerations-data-integrity">
          <name>Data Integrity</name>
          <t>Data integrity is provided as a side effect of requiring a cryptographic
signature over capability payloads.</t>
        </section>
        <section anchor="sec_security-considerations-peer-entity-auth">
          <name>Peer Entity Authentication</name>
          <t>Peer entity authentication is not, strictly speaking, a concern of this
document. However, it should be noted that an agent in the process <bcp14>MUST</bcp14>
obviously authenticate a grantee before proceeding to verify capabilities.</t>
          <t>As noted previously, distributed authorization does not require endowment
in this process, however.</t>
        </section>
        <section anchor="sec_security-considerations-non-repudiation">
          <name>Non-Repudiation</name>
          <t>Non-repudiation is strictly speaking out of scope of this document because
key exchange is out of scope. However, key exchange is a necessary precondition
for verifying capabilities. Non-repudiation is one of the guarantees that
verification provides.</t>
        </section>
        <section anchor="sec_security-considerations-unauthorized-usage">
          <name>Unauthorized Usage</name>
          <t>Preventing unauthorized usage is the core concern of this document.</t>
        </section>
        <section anchor="sec_security-considerations-inappropriate-usage">
          <name>Inappropriate Usage</name>
          <t>Any scheme that prevents unauthorized use may also be extended to prevent
inappropriate use. However, such additions are out of scope.</t>
        </section>
        <section anchor="sec_security-considerations-dos">
          <name>Denial of Service</name>
          <t>Denial of service mitigation is out of scope, because this document does not
describe a protocol.</t>
          <t>However, as avoiding a single point of failure (<xref target="sec_authorization-spof"/>)
is one of the problems that distributed authorization schemes address, it can
easily be argued that preventing denial of service is a major concern of this
document, and consequently fully addressed here.</t>
        </section>
        <section anchor="sec_security-considerations-replay-attack">
          <name>Replay Attacks</name>
          <t>Capabilities can be "replayed" as much as an attacker wants. As they encode a
state, such state does not change when it is received multiple times.</t>
          <t>However, implementations <bcp14>MUST</bcp14> take care not to invite replay attacks when
designing their specific validity metadata (<xref target="sec_elements-validity-metadata"/>).
Furthermore, implementations <bcp14>MUST</bcp14> include such metadata in the signature.</t>
        </section>
        <section anchor="sec_security-considerations-message-insertion">
          <name>Message Insertion</name>
          <t>Message insertion is of no concern to this document.</t>
        </section>
        <section anchor="sec_security-considerations-message-deletion">
          <name>Message Deletion</name>
          <t>Message deletion is of little concern to this document, except insofar as if
the transmission of capabilities is disrupted, access granting cannot proceed.
Implementations <bcp14>MUST</bcp14> take care to provide safeguards against this as their
threat model requires.</t>
        </section>
        <section anchor="sec_security-considerations-message-modification">
          <name>Message Modification</name>
          <t>Message modification is prevented by the cryptographic signatures in
capabilities.</t>
        </section>
        <section anchor="sec_security-considerations-mitm">
          <name>Man-In-The-Middle</name>
          <t>As this document does not provide a protocol specification, this consideration
does not apply.</t>
        </section>
        <section anchor="sec_security-considerations-key-usage">
          <name>Key Usage</name>
          <t>This document relies on secure key exchange.</t>
        </section>
        <section anchor="sec_security-considerations-revocation">
          <name>Revocation</name>
          <t>As ICAP was criticized for introducing a centralized solution for revocatins,
(see <xref target="sec_prior-icap"/>), a modern distributed authorization system must
adequately consider these.</t>
          <t>Fortunately, anything that can encode the granting of a privilege can also
encode the removal of said grant, by - essentially - encoding a negative
privilege. Doing so provides distributed revocations by the same overall
mechanism that distributed authorization is provided. A sequence of grants
and revocations for a particular request tuple will map to a sequence
of Boolean values, and can so be understood as a bit stream.</t>
          <t>This introduces a new requirement, namely that verifiers can reconstruct
the bit stream in order to understand the latest, most up-to-date state.
Unfortunately, this can be hard due to the time-delayed nature of the
communications channel.</t>
          <t>Fortunately, research into conflict-free replicated data types has yielded
several methods for ordering also partially received streams, which can be
applied here by providing appropriate validity metadata. This yields eventually
consistent states in a distributed authorization system, which in many cases
may be sufficient.</t>
          <t>It is not the purpose of this document to prescribe any particular method
for ordering grants and revocations into a consistent stream, nor whether
revocations are used at all. However, implemtations <bcp14>MUST</bcp14> take care to consider
this aspect.</t>
        </section>
      </section>
      <section anchor="sec_privacy-considerations">
        <name>Privacy Considerations</name>
        <t>This section lists privacy considerations as covered by <xref target="RFC6973"/> and
distributed authorization's relationship to them.</t>
        <section anchor="sec_privacy-considerations-surveillance">
          <name>Surveillance</name>
          <t>The surveillance concerns outlined in <xref target="RFC6973"/> specifically relate to
network protocols; this document does not describe such a protocol.</t>
          <t>As noted previously, pseudonymous use is well supported by this kind of scheme,
while fully anonymous use is not. If appropriate confidentiality is provided
by implementations, distributed authorization schemes can be considered fairly
resistant to surveillance.</t>
          <t>That being said, systems <bcp14>SHOULD</bcp14> still use transport encryption in order to
further mitigate against surveillance.</t>
        </section>
        <section anchor="sec_privacy-considerations-stored-data">
          <name>Stored Data Compromise</name>
          <t>Stored data concerns are largely identical to surveillance concerns in the
context of distributed authorization.</t>
        </section>
        <section anchor="sec_privacy-considerations-intrusion">
          <name>Intrusion</name>
          <t>Authorization schemes in general aim to protect against intrusion.</t>
        </section>
        <section anchor="sec_privacy-considerations-misattribution">
          <name>Misattribution</name>
          <t>Misattribution in <xref target="RFC6973"/> refers to misattribution to individuals,
which relates to endowment. This document considers endowment
out of scope.</t>
        </section>
        <section anchor="sec_privacy-considerations-correlation">
          <name>Correlation</name>
          <t>Distributed authorization tokens cannot protect against correlation, unless
confidentiality concerns are addressed. This is, however, an implementation
concern.</t>
        </section>
        <section anchor="sec_privacy-considerations-identification">
          <name>Identification</name>
          <t>Similar arguments can be made for identification concerns. Distributed
authorization is fundamentally concerned with identifying elements in a system,
but if confidentiality is provided, identification is not possible.</t>
        </section>
        <section anchor="sec_privacy-considerations-secondary-use">
          <name>Secondary Use</name>
          <t>Secondary use concerns are not in scope of this document.</t>
        </section>
        <section anchor="sec_privacy-considerations-disclosure">
          <name>Disclosure</name>
          <t>Disclosure concerns are effectively identical to confidentiality concerns in
that capabilities may leak identifiers, which may be pseudonymous.</t>
        </section>
        <section anchor="sec_privacy-considerations-exclusion">
          <name>Exclusion</name>
          <t>Exclusion is a network protocol consideration, and does not apply here.</t>
        </section>
      </section>
      <section anchor="sec_IANA">
        <name>IANA Considerations</name>
        <t>This document has no IANA actions.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="NIST.IR.8366">
          <front>
            <title>Guidance for NIST staff on using inclusive language in documentary
                        standards</title>
            <author fullname="Kathryn Miller" initials="K." surname="Miller">
              <organization/>
            </author>
            <author fullname="David Alderman" initials="D." surname="Alderman">
              <organization/>
            </author>
            <author fullname="Lisa Carnahan" initials="L." surname="Carnahan">
              <organization/>
            </author>
            <author fullname="Lily Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <author fullname="Jim Foti" initials="J." surname="Foti">
              <organization/>
            </author>
            <author fullname="Barbara Goldstein" initials="B." surname="Goldstein">
              <organization/>
            </author>
            <author fullname="Mike Hogan" initials="M." surname="Hogan">
              <organization/>
            </author>
            <author fullname="Jennifer Marshall" initials="J." surname="Marshall">
              <organization/>
            </author>
            <author fullname="Karen K. Reczek" initials="K." surname="Reczek">
              <organization/>
            </author>
            <author fullname="Nathalie Rioux" initials="N." surname="Rioux">
              <organization/>
            </author>
            <author fullname="Mary F. Theofanos" initials="M." surname="Theofanos">
              <organization/>
            </author>
            <author fullname="David Wollman" initials="D." surname="Wollman">
              <organization/>
            </author>
            <date month="April" year="2021"/>
          </front>
          <seriesInfo name="National Institute of Standards and Technology" value="report"/>
          <seriesInfo name="DOI" value="10.6028/nist.ir.8366"/>
        </reference>
        <reference anchor="RM3420">
          <front>
            <title>On Distributed Communications: I. Introduction to Distributed Communications Networks</title>
            <author fullname="Paul Baran" initials="P." surname="Baran">
              <organization/>
            </author>
            <date year="1964"/>
          </front>
          <seriesInfo name="RAND Corporation" value="book"/>
          <seriesInfo name="DOI" value="10.7249/rm3420"/>
        </reference>
        <reference anchor="BCP72" target="https://www.rfc-editor.org/info/rfc3552">
          <front>
            <title>Guidelines for Writing RFC Text on Security Considerations</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <author fullname="B. Korver" initials="B." surname="Korver">
              <organization/>
            </author>
            <date month="July" year="2003"/>
            <abstract>
              <t>All RFCs are required to have a Security Considerations section. Historically, such sections have been relatively weak.  This document provides guidelines to RFC authors on how to write a good Security Considerations section.   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="72"/>
          <seriesInfo name="RFC" value="3552"/>
          <seriesInfo name="DOI" value="10.17487/RFC3552"/>
        </reference>
        <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 fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <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>
        <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 fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <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="RFC8280" target="https://www.rfc-editor.org/info/rfc8280">
          <front>
            <title>Research into Human Rights Protocol Considerations</title>
            <author fullname="N. ten Oever" initials="N." surname="ten Oever">
              <organization/>
            </author>
            <author fullname="C. Cath" initials="C." surname="Cath">
              <organization/>
            </author>
            <date month="October" year="2017"/>
            <abstract>
              <t>This document aims to propose guidelines for human rights considerations, similar to the work done on the guidelines for privacy considerations (RFC 6973).  The other parts of this document explain the background of the guidelines and how they were developed.</t>
              <t>This document is the first milestone in a longer-term research effort.  It has been reviewed by the Human Rights Protocol Considerations (HRPC) Research Group and also by individuals from outside the research group.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8280"/>
          <seriesInfo name="DOI" value="10.17487/RFC8280"/>
        </reference>
        <reference anchor="RFC6973" target="https://www.rfc-editor.org/info/rfc6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="B. Aboba" initials="B." surname="Aboba">
              <organization/>
            </author>
            <author fullname="J. Peterson" initials="J." surname="Peterson">
              <organization/>
            </author>
            <author fullname="J. Morris" initials="J." surname="Morris">
              <organization/>
            </author>
            <author fullname="M. Hansen" initials="M." surname="Hansen">
              <organization/>
            </author>
            <author fullname="R. Smith" initials="R." surname="Smith">
              <organization/>
            </author>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications.  It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices.  It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.draft-knodel-terminology-10" target="https://www.ietf.org/archive/id/draft-knodel-terminology-10.txt">
          <front>
            <title>Terminology, Power, and Inclusive Language in Internet-Drafts and RFCs</title>
            <author fullname="Mallory Knodel" initials="M." surname="Knodel">
              <organization>Center for Democracy &amp; Technology</organization>
            </author>
            <author fullname="Niels ten Oever" initials="N." surname="ten Oever">
              <organization>University of Amsterdam</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <abstract>
              <t>   This document argues for more inclusive language conventions
   sometimes used by RFC authors and the RFC Production Centre in
   Internet-Drafts that are work in progress, and in new RFCs that may
   be published in any of the RFC series, in order to foster greater
   knowledge transfer and improve diversity of participation in the
   IETF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-knodel-terminology-10"/>
        </reference>
        <reference anchor="I-D.draft-irtf-hrpc-guidelines-16" target="https://www.ietf.org/archive/id/draft-irtf-hrpc-guidelines-16.txt">
          <front>
            <title>Guidelines for Human Rights Protocol and Architecture Considerations</title>
            <author fullname="Gurshabad Grover" initials="G." surname="Grover">
         </author>
            <author fullname="Niels ten Oever" initials="N." surname="ten Oever">
              <organization>University of Amsterdam</organization>
            </author>
            <date day="10" month="November" year="2022"/>
            <abstract>
              <t>   This document sets guidelines for human rights considerations for
   developers working on network protocols and architectures, similar to
   the work done on the guidelines for privacy considerations [RFC6973].
   This is an updated version of the guidelines for human rights
   considerations in [RFC8280].

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This informational document has consensus for publication from the
   Internet Research Task Force (IRTF) Human Right Protocol
   Considerations Research (HRPC) Group.  It has been reviewed, tried,
   and tested by both by the research group as well as by researchers
   and practitioners from outside the research group (for example see:
   https://gitlab.com/hr-rt/documents).  The research group acknowledges
   that the understanding of the impact of Internet protocols and
   architecture on society is a developing practice and is a body of
   research that is still in development.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-hrpc-guidelines-16"/>
        </reference>
        <reference anchor="ISOC-FOUNDATION" target="https://www.isocfoundation.org/">
          <front>
            <title>Internet Society Foundation</title>
            <author>
              <organization>Internet Society Foundation</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="X.509">
          <front>
            <title>Information technology - Open Systems Interconnection - The Directory:
Public-key and attribute certificate frameworks</title>
            <author>
              <organization>International Telecommunications Union</organization>
            </author>
            <date month="March" year="2000"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.509"/>
          <seriesInfo name="ISO" value="Standard 9594-8"/>
        </reference>
        <reference anchor="OCAP">
          <front>
            <title>Programming semantics for multiprogrammed computations</title>
            <author fullname="Jack B. Dennis" initials="J." surname="Dennis">
              <organization>Massachusetts Institute of Technology, Cambridge</organization>
            </author>
            <author fullname="Earl C. Van Horn" initials="E." surname="Van Horn">
              <organization>Massachusetts Institute of Technology, Cambridge</organization>
            </author>
            <date month="March" year="1966"/>
          </front>
          <seriesInfo name="Communications of the ACM" value="vol. 9, no. 3, pp. 143-155"/>
          <seriesInfo name="DOI" value="10.1145/365230.365252"/>
        </reference>
        <reference anchor="ICAP">
          <front>
            <title>A secure identity-based capability system</title>
            <author fullname="L. Gong" initials="L." surname="Gong">
              <organization/>
            </author>
            <date month="January" year="2003"/>
          </front>
          <seriesInfo name="Proceedings. 1989 IEEE Symposium on Security and" value="Privacy"/>
          <seriesInfo name="DOI" value="10.1109/secpri.1989.36277"/>
        </reference>
        <reference anchor="ADACORSA" target="https://www.kdt-ju.europa.eu/projects/adacorsa">
          <front>
            <title>Airborne data collection on resilient system architectures</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="May" day="01"/>
          </front>
        </reference>
        <reference anchor="RDF" target="https://www.w3.org/TR/rdf11-concepts/">
          <front>
            <title>RDF 1.1 Concepts and Abstract Syntax</title>
            <author>
              <organization>RDF Working Group of the World Wide Web Consortium (W3C)</organization>
            </author>
            <date year="2014" month="February" day="25"/>
          </front>
        </reference>
        <reference anchor="RFC4880" target="https://www.rfc-editor.org/info/rfc4880">
          <front>
            <title>OpenPGP Message Format</title>
            <author fullname="J. Callas" initials="J." surname="Callas">
              <organization/>
            </author>
            <author fullname="L. Donnerhacke" initials="L." surname="Donnerhacke">
              <organization/>
            </author>
            <author fullname="H. Finney" initials="H." surname="Finney">
              <organization/>
            </author>
            <author fullname="D. Shaw" initials="D." surname="Shaw">
              <organization/>
            </author>
            <author fullname="R. Thayer" initials="R." surname="Thayer">
              <organization/>
            </author>
            <date month="November" year="2007"/>
            <abstract>
              <t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format.  It is not a step-by-step cookbook for writing an application.  It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network.  It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t>
              <t>OpenPGP software uses a combination of strong public-key and symmetric cryptography to provide security services for electronic communications and data storage.  These services include confidentiality, key management, authentication, and digital signatures.  This document specifies the message formats used in OpenPGP.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4880"/>
          <seriesInfo name="DOI" value="10.17487/RFC4880"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC3987" target="https://www.rfc-editor.org/info/rfc3987">
          <front>
            <title>Internationalized Resource Identifiers (IRIs)</title>
            <author fullname="M. Duerst" initials="M." surname="Duerst">
              <organization/>
            </author>
            <author fullname="M. Suignard" initials="M." surname="Suignard">
              <organization/>
            </author>
            <date month="January" year="2005"/>
            <abstract>
              <t>This document defines a new protocol element, the Internationalized  Resource Identifier (IRI), as a complement of the Uniform Resource  Identifier (URI). An IRI is a sequence of characters from the  Universal Character Set (Unicode/ISO 10646). A mapping from IRIs to   URIs is defined, which means that IRIs can be used instead of URIs,  where appropriate, to identify resources.</t>
              <t> The approach of defining a new protocol element was chosen instead of extending or changing the definition of URIs.  This was done in order  to allow a clear distinction and to avoid incompatibilities with  existing software. Guidelines are provided for the use and deployment of IRIs in various protocols, formats, and software components that currently deal with URIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3987"/>
          <seriesInfo name="DOI" value="10.17487/RFC3987"/>
        </reference>
        <reference anchor="RFC7519" target="https://www.rfc-editor.org/info/rfc7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura">
              <organization/>
            </author>
            <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="RFC6749" target="https://www.rfc-editor.org/info/rfc6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt">
              <organization/>
            </author>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.  This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="sec_ack">
      <name>Acknowledgments</name>
      <t>Jens Finkhaeuser's authorship of this document was performed as part of work
undertaken under a grant agreement with the Internet Society Foundation
<xref target="ISOC-FOUNDATION"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA819y3YbSZrePp4ih3WORaoASJRUN6mnp1mUVMW2bhal7mr3
6fEkgCCYzUQmnJkgC6PivIMX3nsxG6/9Bu438ZP4//5LRGQCkFTtjevMmaYS
mXH547/fYjweuy+++MJ9kZ1VnW8q342fNvlFl73Mm6t5fVNl7/xyVeadd3jp
ra/ypc+6y6LNLorSZxdNvczm+GLc1fN6vKnXDV4Zr5q6q2d1OVnOs67OFr7L
2i5vOj+f0DgyB491UTfLvMtowAMZ5zc2xm/Hv7mpm6tFU69X9Dc/ouEOJryU
53WTFVXRFXmZtb5br0YZfZjVVbnJKu95Vj8vOlosTVI0bZdNy3p2ldUX9E9f
zlss5DVeP+iKrvQH/FmL76Y+m13m1cLPn2RzX/rOZwf5dNr464OsuMA8Tcbf
YNntZd10GOuk2mQ1zdZks5qAWXXZLK8wFpbh56Nsuu546LzxF+syq+oOkxVV
19Tz9Yzea5q64WWd14AMrzK7KcoSn9Ems3zd1QStYpaXtO75uimqhewe66K5
NxkNnq0rXb6A6mld3SEIV7NyPaedjO/fP8gIegdjnGvb0Z4qhVLJ54sVvMin
vmzDL3RI2Wccj44oi2jpEKYbGgsjdHVdMmxp7wQh+gNPZ+umAaCufdMWdfWE
9kILnNczjHaAaTP/c04I6GUn74B4nWIkZmizqyZfAlHHzcXscXbZdav28b17
i6K7XE8ns3p5b5ZP63vpWzTOnwhTcDiNp5FmntdC6ygaAYIecraSxebZvLig
P7BSQVdA6JRBHABHC6Uzxy6wOXpndhlAR/h9OPl5WfKGfnr5YpT5bjaZTI6w
KaI+N6vndJKPs3V3Mf7WMWo9zg5O81U+LUrCcdonPn1atF1TEBoRZE/WHSFe
8a+EDXV14AQ9f+VHCujHerR/vSiqq8vcE1yb8SxftWP6fjyP348J/y4JfdyM
wL+om81jQpCL2rXr6bJosfdus/J4OPcrT/+v6lyxah4Tqr+kHV4Q3mLid826
7R7cv//d/QfZF0ppjBHJczoBHrWjaZ2b03yPsw9PT949u3XER6r5f8nLuqJn
G9+6VfE4+zNxm1HWEinSmbX012Ypf9Ael/lqReAdEV0ul7Sm9i9ApddPX9P5
L+trH547V62XU988dgTJh/oS/Q/Rc0tnu24fY40+++mnn5h6Ad47yWbv0LuE
+vnj7OTtsxMXyOOxcNeVJ2R609R/9bPOXfkN/T5/7LIxoWI8M/w7T4/JHgA/
Z+HJqr6hwYiX5V1XE9/e8DjNZtXViyZfXW7cta/WnobPdAkHW2s4oB/lwP5I
KwUr+QGv0tNlXpQ4Rv3gdyXhQDsJ/54UNb10WQN1jOLSH+/FWcNjepQ3s8v4
wfaY91bFyjeYO46GoQgR2hmhoP/ox/humVf8E7DyXjo1EXodvyZy83TMi0nd
LJKp2pWfEfwzYWLxdX7en8w5OSMcH31RVIQav59kzyMB0VNi8qXQ1+8Je+TH
v/27/pi3s6J4vuON8DktLkWcxfsfssNLotN1tWinvp1dNrmvrrojDKbUf5Zs
WVE8n8/5OHG89HfjW2zR6wn77uJ3g2MlobL3VMNezyfZ00n2xldV3tvo+d/+
Z7Mo6uzpGrI+vDDY7Lnf9ZLul06vIzGXna8JGQqiMJJZz4hDVJd5UxArrrM3
ROV1uuvzZ2+AJkT6no7t7TonBWNC8rj72/+qaJ7vSbHJG+KwNcY6KZe+mOej
7NHDY/oKuPA4e/Tg0Xfj+8df4UHREV+zOWb1muSzPlgv8jICr52vfle0fjUp
VqvJqtsCXfyJ0KViMVBcM0W+Ojt/Nzl7O/n24ddfP86evj6bHN+ffH3/wbf3
0l/oxbcvHz56cD+88g2t8p48ox+/P33zzQPa7vPTh1999cA5IH0yydn46UT4
+lVFeyzHdJJLgkFZLzbj4/v9V4qGJM9ls5qNF+uCXi4q346Pv+aXzl+fjp+/
fv+KuO/Z61d4lGUmokxrJI1lRsi0IbVsXc1VvODFQCb8Hx/xpz8iRXHhEwK8
ubmZFG09uwjvMeXSuz9Nvrr/HWHAu/eTn+ivCUkPgOb16cmbALXj40df3Xv4
9VcPHt6f4H8IVrSr/hv3v7t3/uz0zVv653fffkevPfjmG3rr5OnJ6eu35ye9
TZ8UzRQsN6Ol5IQgZUm8FHK/hkLREqlBUWg3LSkqzPNI+5t16wa8nf4TWfbg
/oP74/tfEc7t3fHVnETyeuLXTb3K6X/urYRtt/fyeT4jTRFE8/bp8/6J0IPs
eHKcndbVzK+6NiNhmZ1MiTjyGUF8U3X5zwe9hRw/Gt9/MH7w1b7zwog9AQGx
A9WGHpbz7I+EL9kf/RQzQv4W62V2+MeHp0d7N3bzkI/v3dt7zfzi+Hg806US
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
zucc+B7azIW1IEyzg1CVv0CH8zR96rrIpVblM8RMvOsEufV6BsldTB9v27J1
lP1x0qCFRW/TDj1ceSQ2hQX+HBv42iiKWSfbYNwdPe/TfMjR6lvr2aHVQW0c
h0PIuGhqdPToR9afwNDQ+Eg/IhsStsQmkkqEaLdrl3XGC+1Pn3ZW0m5N3POS
+x7FJmTBKT9yMfhv1V5pWoNBjXBIr3Qc2JKhYLUsUy9ldGEYMqfuHIuHSW1Y
51eMiyHOC++u6y9jLwlp6H6SOgEGS9yR16ddBvpV/ynKPHHwDHWa1hN7esQs
Ru7Xul7ZBWK2PQa09s6OE7o+NEfWABuwQHIAp3uGvfJpDBqZ99WPiQVENW3D
zzz3Jyi6jw8dDqE/utuFzpxe+pR2vsit/PQk5NiJYTkPv3IxV0Brdppw7R6a
MA7jBEyuwxvpk9pi6a8rjUctiaCrgw9fJ/Ux4y8U6MA4LZJjqmo9Ys6RMe8I
ry6mCxZyD8tUotsSzys6u+gp+tdUOJRS3cZsIaRGhpTCOBDTGWLAsfn4XOcC
W1f/dNLfWiLJw8iV+pxTcWBFiEnP8sDc5LYd9nOo37F3XUTBLPJEqzLlZYki
dYP98LchHhM2NRre++vYMw7/BAo51YmP89iwv/mGe7XXYZpckp4tljD3q+4y
eAtdArxBRMgOnYtasrfarOxUIwm99PdZ7+Ete0d+5JrYt1LGufMrLq4aS6Hn
eGsIzu+zIr/C/ITcDZylBhOftOOe292TfNPng2/5Okl2fUmDErTW9BeJ80lu
auxdMCq9KlBjyS4zcTCxH+7mcpOySiuzRH43PKu6l6YeF9WYXY+3XC4Wsg3Q
znh/6916iuC85zvbxl099lVIsy2lxmI7V8Yim7h+LOnVscspbZoYknkz63ob
luYsbaDkTPO0Ke26QsGXxufe8p/SgYZ202u8YyTexHewar6d2dLAOXYozUI0
K8klr2t5HR/DoqKFcMcPa+Sd3pK7M3eYo8VVuQmRYIODOs6eoI033L5STbkj
+D2Kyej72/O6tO0w7seyPKrRwO0a4y/hOjhOTJfmDcMoNC7bXjQK2Hcxj2Rf
wb9VLsTeT3a3nkYydDjp0MKF5YjGgi3/DJnAvus0GVYQaYHCvlTBiwNpo9U2
VNVyUgyz8djPQDt520/YjN3yM/wEPXKbXoZcf6/p7tB6vPXreV1tlgFGRe/+
9bKYshiQZga2FR8z5na1M3TWzrDYcwnniENURev5SkFRwwbdApUfOAuMcztO
PT3JhIsqGVDcV23dcM9qXIUtpYy8od11ujuLL3Z1C4pX36HKs5exO9ues4td
CFhRsfAaUCGFvJPKVlxkRvrzuL4YTwG+qd2ZJLyEqzKvOa2n7rh/XJlMGhoG
OW7jCNOERHHlc+5V11k60ut1h+sTJeWSRCbqs7ZO+k4r/ZCkxoNrWWPKpPGZ
Wkb6VA2IVIYCZef5qksYm0npmKwUI9xa5MoqxHXhb6Rv9R627kIbgrQzUxEL
IDV4k8sCJGUzKBsDeT9BT8ZQksTPWKYMnmXjrNH+or0biMcW2uB7j4epNID/
iqjkXLuztMLguTxa7qjRSAiHXcFg1YTQxVrlZb8Vmag/JAsrl4XGLy3fs8hL
CS+HiqcjuVl03ew7ilgrt2XeW65L6IUoXa8XCDI6FeVJqCi5s5rL678/ffPN
g9tb66MkvQFCwC4Jweht4yuttwupVDbvUImRpuJgdnKbqqXeSZhyqD4omSUq
xIXEivIgd/uPdleieMPUHodNUPBJmgVkd21xm3tWAnpVnZaGiXhzAkHUpnOl
Q+OvtfhogLThFhf1JcwGSzcTNS7FRUHfT4UPsg9JNwj819ggBjlfr9B8RiWn
VCWi0brR0WXv7Vbexpl/km5Z51n6OYNd/soOUS3PCJPcZl403cX4slnNxhGr
xse4+FwankU3E26ZuXKZ1G3mrabQqmATH1Ii6UbShwRXEIY7A9Ozhqt9Z8A6
mgVIj8vLvJIE0tbHqKloHU2ljQoSntIXrqK2MKsNUUhLP3qiVQD9MSwTvQAk
eZkONfD2M80Aqtn15ZMQxZfvbZt2vSxWhzQxu7+OUKsLtZLFTkjQSZL8Ft1a
c1n4ooqN29dvceDCsOKFqTXSksbk2oqd7Cwf7l7ty/qTKlFYwj+26HUrRcHy
HAIm2MU6RetCcnOR3lYqRw0Gn3Ot4KCfm9zfaD0ikraLI6dJaeIy0Tvk5E6v
IhGI6YOAQDuwUXJa666e1eVua2+lv25beu/CXZYp8dr7Wf/9HUBL2njZR4kn
aJiqyjZy745ZmCJkHna1kz5O2noo7PbT1upI+lRPN5HjuSHHg/YT70xMfY4C
PRN+u6G3T8RojWmUkubQEzhuspAGHmDDWV8X+Uz8VqkC7ULHm50HwZDfB1bu
WwN1b2RdsVwqWXVVknCRHNj+PIbwTbzk3nO1emWuMeLHg2JC8UetZ2BP7Osw
sABEqaWwumzk2lnpI649RmeXNcoMTH+Po8Ga5Y6rAyGnFqfK9aF4/ujJjQf4
sS3x95PbLiUOC3iK9L9gUH5ifoj0cbDy0PcbX4cH/WZ10huCCEaSe+SSBhzL
jrpDN4hdpAmj+aas89jFzdPPz8QhfNKzvz6x9hV9OBZGNgbW0Op5LHUuDxt2
Mh6Ntu/D5IRTAbKB1EVWHHAUMZuQLyaOBJUkViwZunGxYcYZkfXUEl8HDTnN
bagdrvgjSYUkDq0NGgcm8Emr08Z02l9FOcECdpYqHLxCvWuks1d1NX7rV+t5
8TmnQHJt3MS3OSmw90TuQx5eQvpRTDZjm+uw7er4oeBMzmb4Wp7kY8OCxxXp
rHnwVXWhDLXPuXYsu46e9dCZR93kPce9GYjWK6tKbtZ43+aLT5gI43XywXiN
D4DLolZjoenvGf8eOxY2foi9Q4ZwVnE6GykpwL3PWU+RfhEWdFJtrKmEVFea
3j9Ynu9dtMr5otprSr9wvfHxRXKWvez4PUoGwiNVIXbsuTZi+gSfq1u51EC/
svZNJMSKRTzvZKJR8Ph0O2Wri+l5UagmMg3c8routCZ7z71F6EW656at2yPX
x8Bw1Y/cLvSJmo9wV6TV1joNiWDBzWJt7GsVsWy+BZ1CypZxd/s+DjmynvYt
gld8D5eazupLn8fyAsQPVmjScoJ+Nlef0GpAjPTymJvfXN0mPR/1/mhs5UBe
wsUSeSs6Ry6+Af6Ke/hL6bP2MjbXrtOrAaUvIf6OHFMZCe7ZCZe0cJxvHi99
4MqT9LyH1scgPMO91rnRTtFxMSngkCscMJOTm9TViVU0UfXayvk2rPlIxRD6
2vY6yu5cngWHGAhhdIvKJhY3t0ACQyWwnNFRN58hGJbyPjETfZ+O0MYIz9RJ
U9UBwaxD54CJ2ZeIi/6Kyef6ejK3PdKp9SaRfdOPIFjgP6El1xc5B3CLCw7e
9zIGBu4V1jWLtllDzx9tOWvVrFSxP3FDI36APEmGOa5Dhyyat0kHeNBpK2hD
K4PDSxrvh+aVAyC+rOdReH0eIJfJJwkw08eiLDI7iZV4H4lguIGCwysk6+qs
GpMxOH5ZzOflp/g68e/lbQysbltAMTM/WDA9p6V2GesN67YsFSztPxL3+Bzh
ScpIEJl9s4xNTHakSC/unt4SOOR1/VkHEzvuy/75CgI08Ndu+dqIJXQkUB3d
x55Wdvlgr4F/1Y4cO2jThqN8h8bt0Yjbj21ds7Mr85ydLy6fE/5p7ztdvXih
pNqvW1f8I2TIhn2JGlCIIbiQuxFKEGKYHq9By3DJuxxwVCGGe9H5Ww6gjjNI
IzarSv6XFahBWYQKcJ2UcKKCQzojR+d/uuXkuoNQcoo7qLQxkYvBtU8I6zR4
hno1FqJifep1a3LfXpxOarSS20r6V+PdoKKBC+ylKY+Mh8IauxsPXbV8G/vE
i5omjWU6lDewnTeFvYMCnaXdVJU0nZKeoUmn2f5NKbFfyYzv4gsmNLPNOHKv
EE4XoI1HudtX242k+dl6haD4nNM8IKon7j08bRF/uqT6HQ1ds/naLkPp58CZ
SSrZN7sz4obIaf01JX0RFntJxsz4ovEiyNmmm7N3HLXDBB8ETTYogvJz13rG
iXBxKN+2jU3LBUDAMJyltkxUNUPgEy54kp05aaYrClXPzZSl6vSWuqClLRup
ymL+zPVFTqt7wJoYrO12h59dtJ10SF4imYt7elpXqOiUlJuC1ZWb1I9vW3t6
YZQVu2xS7BawuR7ULF9uQBlaXdTbFcCISEVjJfMu/QKyVdpjoLFamVr7LJD3
i2NjZ06F70ruh9aafrim97g/+cc9/rutu+B4oIHnExxey7UIBSTb5evvvnmI
Dq9yNfvuw7vT9q9MTrsnfZGdr5trT6yDAwUfW+u4Td7UPN/0UfRXpZXJvWUG
+Ssorw3P3dBD2T7ZJ9OD5dVa5lYwv3Y6SXY40uWGAw0GmbaS9oWXYKLeFaIW
TTUYI6R3JtQ3dPgmDN7RJAM1/GMOHLPjlK0lxdtkPDbsp7Vgflf3zmBXWwPr
iKB5KVL5xtYtx9sRElO/tEZyQxsbywRTU9kHvXMwJaNRx/0s2Yl4Wi9p58ui
/RRC8TdjbXSgIzAz7bk+iRksYnsRbTu3G/PEgHF2jeDHOiQEFwlKA6PStWep
hb12O7yy3g4rXkKU5cVSFfeOSyYVamEM03iLlszAEKf/6PzL3rtQw/sfDykt
tifvf5n1LhVsGc1x20IotozOwmHjFltRm/gTd/hnTuvGuM3HtzSLL/LtpPuo
QVrtJ4ZTD6jJKCPSJNDudyv00sOm4J0IdZ9pQ/BhHDukD6R3zw0MqH0o03sX
CD5okR8IHDXIorH3h49lrk/3JrMUbdodogyb9XotuXUZAD8IEXbJiRWR7pAe
Vlx8jH2Nhgsb9BszFsDuVnhe33+S8u1VspcgS+Kn6yRQnZn7xMLBewMfRYsm
dLGf4p5p5+E9wTj7qDdh79LflOXsRStuHsXWS+IGgFZEWvdV2hVpFK5pYY0p
lU6hEH9WfgY78vYampSHT9T/3RemfS1ClP++lZt0ATk7eXWyW3/BL1tmrXYr
4a/ycEnjeDzOpvnsCmnDJ7Orqr4p/XwhmKfJdvDqfXhcrZdTiLV/PLggXuRR
PPR7kPrzorq6/Nu/4+qyO9YwljWXLf1Rr+nUm2+TDHuAwLFhIdlLcpdAbvcx
LkiDlwFAI1BRz6yn4Xk9416Oz9FlW3jAhw9n569Px89fv3/19OTd2etXt7cT
938BRoKxYJqzAAA=

-->

</rfc>
