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

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

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

<rfc ipr="trust200902" docName="draft-nharper-0-rtt-token-binding-02" category="std">

  <front>
    <title abbrev="0-RTT Token Binding">Token Binding for 0-RTT TLS 1.3 Connections</title>

    <author initials="N." surname="Harper" fullname="Nick Harper">
      <organization>Google Inc.</organization>
      <address>
        <email>nharper@google.com</email>
      </address>
    </author>

    <date year="2016" month="November" day="14"/>

    <area>General</area>
    <workgroup>Token Binding Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes how Token Binding can be used in the 0-RTT data of a TLS
1.3 connection. This involves updating how Token Binding negotiation works and
adding a mechanism for indicating whether a server prevents replay. A
TokenBindingMessage sent in 0-RTT data has different security properties than
one sent after the TLS handshake has finished, which this document also
describes.</t>



    </abstract>


  </front>

  <middle>


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

<t>Token Binding (<xref target="I-D.ietf-tokbind-protocol"/>) cryptographically binds security
tokens (e.g. HTTP cookies, OAuth tokens) to the TLS layer on which they are
presented. It does so by signing an <xref target="RFC5705"/> exporter value from the TLS
connection. TLS 1.3 introduces a new mode that allows a client to send
application data on its first flight. If this 0-RTT data contains a security
token, then a client using Token Binding would want to prove possession of its
Token Binding private key so that the server can verify the binding. The
<xref target="RFC5705"/>-style exporter provided by TLS 1.3 cannot be run until the
handshake has finished. TLS 1.3 also provides an exporter that can be used with
0-RTT data, but it requires that the application explicitly specify that use.
This document specifies how to use the early_exporter_secret with Token Binding
in TLS 1.3 0-RTT data.</t>

<section anchor="requirements-language" title="Requirements Language">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”,  “MAY”, and
“OPTIONAL” in this document are to be interpreted as described in
<xref target="RFC2119"/>.</t>

</section>
</section>
<section anchor="proposed-design" title="Proposed Design">

<t>A TokenBinding struct as defined in <xref target="I-D.ietf-tokbind-protocol"/> contains a
signature of the EKM value from the TLS layer. Under normal circumstances, a
TokenBinding on a TLS 1.3 connection would use the exporter_secret to derive the
EKM value. When 0-RTT data is assembled to be sent, the exporter_secret is not
yet available.  This design changes the definition of the TokenBinding.signature
field to use the exporter with early_exporter_secret for 0-RTT data.  Since no
negotiation for the connection can happen before the client sends this
TokenBindingMessage in 0-RTT data, this document also describes how a client
decides what TokenBindingMessage to send in 0-RTT data and how a server should
interpret that message.</t>

<t>If a client does not send any 0-RTT data, or if the server rejects the client’s
0-RTT data, then the client MUST use the 1-RTT exporter, as defined in
<xref target="I-D.ietf-tokbind-protocol"/>.</t>

<section anchor="tokenbinding-signature-definition" title="TokenBinding Signature Definition">

<t>In <xref target="I-D.ietf-tokbind-protocol"/>, the signature field of the TokenBinding
struct is defined to be the signature of a concatentation that includes the EKM
value. Depending on the circumstances, the exporter value in section 7.3.3 of
<xref target="I-D.ietf-tls-tls13"/> is computed using either exporter_secret or
early_exporter_secret as the Secret. The same Secret is used for the entirety of
the connection.</t>

<t>The rules for a client choosing which exporter to use are as follows. A client
which is not sending any 0-RTT data on a connection MUST use the exporter
defined in <xref target="I-D.ietf-tls-tls13"/> (using exporter_secret as the Secret) for all
TokenBindingMessages on that connection so that it is compatible with
<xref target="I-D.ietf-tokbind-protocol"/>.  A client that sends a TokenBindingMessage in
0-RTT data must use the exporter with early_exporter_secret as the Secret (the
“0-RTT exporter”) since exporter_secret is not defined at that time. A client
that sends 0-RTT data which is not rejected by the server MUST use the 0-RTT
exporter for the rest of the connection. If the server rejects the client’s
0-RTT data, then the client MUST use the exporter defined in
<xref target="I-D.ietf-tls-tls13"/> (using exporter_secret as the Secret) for the remainder
of the connection, as if no 0-RTT data had ever been sent.</t>

</section>
<section anchor="negotiating-token-binding" title="Negotiating Token Binding">

<section anchor="negotiation-tls-extension" title="Negotiation TLS Extension">

<t>The behavior of the Token Binding negotiation TLS extension does not change for
a 0-RTT connection: the client and server should process this extension the
same way regardless of whether the client also sent the EarlyDataIndication
extension.</t>

<t>For the sake of choosing a key parameter to use in 0-RTT data, the client MUST
use the same key parameter that was used on the connection during which the
ticket (now being used for resumption) was established. The server MUST NOT
accept early data if the negotiated Token Binding key parameter does not match
the parameter from the initial connection. This is the same behavior as ALPN
and SNI extensions.</t>

<t>If 0-RTT data is being sent with Token Binding using a PSK obtained out-of-band,
then the Token Binding key parameter to use with that PSK must also be
provisioned to both parties, and only that key parameter must be used with that
PSK.</t>

</section>
<section anchor="replay-protection-indication-extension" title="Replay Protection Indication Extension">

<t>The signed exporter value used in a 0-RTT connection is not guaranteed to be
unique to the connection, so an attacker may be able to replay the signature
without having possession of the private key.  To combat this attack, a server
may implement some sort of replay prevention, and indicate this to the client.
A new TLS extension “token_binding_replay_indication” is defined for the client
to query and server to indicate whether it has implemented a mechanism to
prevent replay.</t>

<figure><artwork><![CDATA[
enum {
    token_binding_replay_indication(TBD), (65535)
} ExtensionType;
]]></artwork></figure>

<t>When sent, this extension always has zero length. If a client wishes to
know whether its peer is preventing replay of TokenBinding structs across
multiple connections, the client can include this extension in its
ClientHello.  Upon receiving this extension, the server must echo it back
if it is using such a mechanism (like those described in <xref target="server-replay"/>) to
prevent replay. A client that only wishes to send 0-RTT Token Binding if the
server implements replay protection can send this extension on first connection
establishment, and if the server doesn’t send it back (but does support Token
Binding) the client can choose to not send 0-RTT messages to that server.</t>

<t>A client that wishes to use this extension should send it every time it sends a
“token_binding” <xref target="I-D.ietf-tokbind-negotiation"/> extension.</t>

</section>
</section>
</section>
<section anchor="implementation-challenges" title="Implementation Challenges">

<t>The client has to be able to modify the message it sends in 0-RTT data if the
0-RTT data gets rejected and needs to be retransmitted in 1-RTT data. Even if
the Token Binding integration with 0-RTT were modified so that Token Binding
never caused a 0-RTT reject that required rewriting a request, the client still
has to handle the server rejecting the 0-RTT data for other reasons.</t>

<t>HTTP2 allows for requests to different domains to share the same TLS connection
if the SAN of the cert covers those domains. If one.example.com supports 0-RTT
and Token Binding, but two.example.com only supports Token Binding as defined
in <xref target="I-D.ietf-tokbind-protocol"/>, those servers cannot share a cert and use
HTTP2.</t>

</section>
<section anchor="alternatives-considered" title="Alternatives Considered">

<section anchor="use-both-0-rtt-and-1-rtt-exporters-on-same-connection" title="Use Both 0-RTT and 1-RTT Exporters on Same Connection">

<t>The client could be required to use the 0-RTT EKM when the TokenBindingMessage
is sent in 0-RTT data, and the 1-RTT EKM when it is sent in 1-RTT data. This
requires that the abstraction of the TLS layer visible to the application where
it is handling Token Binding exposes which phase the application data is being
sent/received in. An application could very easily have this detail abstracted
away; for example, the client might have a function like “write_possibly_early”
that will send data in 0-RTT the current connection state permits it, and
otherwise send data post-handshake. A pathological client might send the first
few bytes of an application message in 0-RTT, but send the rest after the
handshake (including the TokenBindingMessage). The server’s application layer
would have to track which bytes of the request were sent pre- and post-handshake
to know how to validate that TokenBindingMessage.</t>

<t>This constraint could be relaxed slightly. A ratcheting mechanism could be used
where the client uses the 0-RTT EKM while it thinks that it’s writing early
data (even if it isn’t writing early data), and once it knows the handshake is
finished, it uses the 1-RTT EKM. Once the server sees a TokenBindingMessage
using the 1-RTT EKM, the server would no longer accept the 0-RTT EKM. In
practice, this is difficult to implement because multiple HTTP/2 streams can be
multiplexed on the same connection, requiring the ratchet to be synchronized
across the streams.</t>

<t>Relaxing this further where the server will always accept either the 0-RTT or
1-RTT EKM (but the client keeps the behavior as above) is another possibility.
This is more complicated than always using the 0-RTT exporter, and provides no
additional security benefits (since the server would have to accept a client
only using the 0-RTT exporter).</t>

</section>
<section anchor="dont-remember-key-parameter-from-previous-connection" title="Don’t Remember Key Parameter From Previous Connection">

<t>The proposed design uses the same Token Binding key parameter from the previous
connection, and the TLS extension must negotiate the same key parameter as the
previous connection. This mirrors how ALPN is negotiated in TLS 1.3. Instead of
remembering this parameter, the client could put the in first entry of their key
parameters list the key type being used in 0-RTT, and allow the client and
server to potentially negotiate a new type to use once the handshake is
complete. This alternate gains a slight amount of key type agility in exchange
for implementation difficulty. Other variations of this are also possible, for
example requiring the server to reject early data if it doesn’t choose the first
parameter, or requiring the client to send only one key parameter.</t>

</section>
<section anchor="token-binding-and-0-rtt-data-are-mutually-exclusive" title="Token Binding and 0-RTT Data Are Mutually Exclusive">

<t>If a TokenBindingMessage is never allowed in 0-RTT data, then no changes are
needed to the exporter or negotiation. A server that wishes to support Token
Binding must not create any NewSessionTicket messages with the allow_early_data
flag set. A client must not send the token binding negotiation extension and
the EarlyDataIndication extension in the same ClientHello.</t>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document defines a new TLS extension
“token_binding_replay_indication”, which needs to be added to the IANA
“Transport Layer Security (TLS) Extensions” registry.</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>Token Binding messages that use the 0-RTT exporter have weaker security
properties than with the <xref target="RFC5705"/> exporter. If either party of a connection
using Token Binding does not wish to use 0-RTT token bindings, they can do so:
a client can choose to never send 0-RTT data on a connection where it uses
token binding, and a server can choose to reject any 0-RTT data sent on a
connection that negotiated token binding.</t>

<t>0-RTT data in TLS 1.3 has weaker security properties than other kinds of
TLS data. Specifically, TLS 1.3 does not guarantee non-replayability of
data between connections. Token Binding has similar replayability issues
when in 0-RTT data, but preventing replay of Token Binding and preventing
replay of 0-RTT data are two separate problems. Token Binding is not
designed to prevent replay of 0-RTT data, although solutions for
preventing the replay of Token Binding might also be applicable to 0-RTT
data.</t>

<section anchor="attacks-on-psk-only-key-exchange-and-token-binding" title="Attacks on PSK-only Key Exchange and Token Binding">

<t>An attacker who possesses the PSK can eavesdrop on an existing connection that
uses that PSK to obtain a TokenBindingMessage that is valid on the connection
and then hijack the connection to send whatever attacker-controlled data it
wishes. Because the regular exporter closes over the server random, this
TokenBindingMessage is valid only for that connection.</t>

<t>If the attacker does the same thing with a pure-PSK connection and 0-RTT Token
Binding, the attacker can replay the original ClientHello and the exporter will
stay the same, allowing the attacker to obtain a TokenBindingMessage from one
connection and replay it on future connections. The only way for a server to
prevent this replay is to prevent the client from ever repeating a client random
in the handshake.</t>

<t>If a server accepting connections with PSK-only key establishment is concerned
about the threat of PSK theft and also implements Token Binding, then that
server must either reject all 0-RTT token bindings, or implement some form of
preventing reuse of a client random.</t>

</section>
<section anchor="exporter-replayability" title="Exporter Replayability">

<t>The exporter specified in <xref target="I-D.ietf-tokbind-protocol"/> is chosen so that a
client and server have the same exporter value only if they are on the same TLS
connection. This prevents an attacker who can read the plaintext of a
TokenBindingMessage sent on that connection from replaying that message on
another connection (without also having the token binding private key). The
0-RTT exporter only covers the ClientHello and the PSK of the connection, so it
does not provide this guarantee.</t>

<t>An attacker with possession of the PSK secret and a transcript of the
ClientHello and early data sent by a client under that PSK can extract the
TokenBindingMessage, create a new connection to the server (using the same
ClientHello and PSK), and send different application data with the same
TokenBindingMessage. Note that the ClientHello contains public values for the
(EC)DHE key agreement that is used as part of deriving the traffic keys for the
TLS connection, so if the attacker does not also have the corresponding private
values, they will not be able to read the server’s response or send a valid
Finished message in the handshake for this TLS connection. Nevertheless, by
that point the server has already processed the attacker’s message with the
replayed TokenBindingMessage.</t>

<t>This sort of replayability of a TokenBindingMessage is different than the
replayability caveat of 0-RTT application data in TLS 1.3. A network observer
can replay 0-RTT data from TLS 1.3 without knowing any secrets of the client or
server, but the application data that is replayed is untouched. This replay is
done by a more powerful attacker who is able to view the plaintext and then
spoof a connection with the same parameters so that the replayed
TokenBindingMessage still validates when sent with different application data.</t>

</section>
<section anchor="replay-mitigations" title="Replay Mitigations">

<t>This section presents multiple ways that a client or server can prevent
the replay of a TokenBinding while still using Token Binding with 0-RTT
data.</t>

<t>If a client or server implements a measure that prevents all replays, then
its peer does not also need to implement such a mitigation. A client that
is concerned about replay SHOULD implement replay a mitigation instead of
relying solely on a signal from the server through the replay indication
extension.</t>

<section anchor="server-replay" title="Server Mitigations">

<t>If a server uses a session cache instead of stateless tickets, it can
enforce that a PSK generated for resumption can only be used once. If an
attacker tries to replay 0-RTT data (with a TokenBindingMessage), the
server will reject it because the PSK was already used.</t>

<t>Preventing all replay of 0-RTT data is not necessary to prevent replay of
a TokenBinding. A server could implement a mechanism to prevent a
particular TokenBinding from being presented on more than one connection.
In cases where a server’s TLS termination and application layer processing
happen in different locations, this option might be easier to implement,
especially when not all requests have bound tokens. This processing can
also take advantage of the structure of the bound token, e.g. a token that
identifies which user is making a request could shard its store of which
TokenBindings have been seen based on the user ID.</t>

<t>A server can prevent some, but not all, 0-RTT data replay with a tight
time window for the ticket age that it will accept. See <xref target="ticket-age"/> for
more details.</t>

</section>
<section anchor="client-mitigations" title="Client Mitigations">

<t>A client cannot prevent a sufficiently motivated attacker from replaying a
TokenBinding, but it can make it so difficult to replay the TokenBinding
that it is easier for the attacker to steal the Token Binding key
directly. If the client secures the resumption secret with the same level
of protection as the Token Binding key, then the client has made it not
worth the effort of the attacker to attempt to replay a TokenBinding.
Ideally the resumption secret (and Token Binding key) are protected
strongly and virtually non-exportable.</t>

</section>
</section>
<section anchor="ticket-age" title="Early Data Ticket Age Window">

<t>When an attacker with control of the PSK secret replays a TokenBindingMessage,
it has to use the same ClientHello that the client used. The ClientHello
includes an “obfuscated_ticket_age” in its EarlyDataIndication extension, which
the server can use to narrow the window in which that ClientHello will be
accepted. Even if a PSK is valid for a week, the server will only accept that
particular ClientHello for a smaller time window based on the ticket age. A
server should make their acceptance window for this value as small as practical
to limit an attacker’s ability to replay a ClientHello and send new application
data with the stolen TokenBindingMessage.</t>

</section>
<section anchor="lack-of-freshness" title="Lack of Freshness">

<t>The 0-RTT exporter value does not contain anything that the client cannot
precompute before connecting to the server. Therefore, an attacker could
have a client generate but not send a series of messages to take
particular actions, and then selectively send one of those messages at a
later date.  If this attack includes deleting the resumption secret from
the client, then these latent attacker-held messages will be the only ones
to use that resumption secret and replay protections do not prevent this
attack.</t>

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

<t>The author would like to thank David Benjamin, Steven Valdez, Bill Cox,
and Andrei Popov for their feedback and suggestions.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





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



<reference  anchor='RFC5705' target='http://www.rfc-editor.org/info/rfc5705'>
<front>
<title>Keying Material Exporters for Transport Layer Security (TLS)</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2010' month='March' />
<abstract><t>A number of protocols wish to leverage Transport Layer Security (TLS) to perform key establishment but then use some of the keying material for their own purposes.  This document describes a general mechanism for allowing that.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5705'/>
<seriesInfo name='DOI' value='10.17487/RFC5705'/>
</reference>



<reference anchor='I-D.ietf-tokbind-protocol'>
<front>
<title>The Token Binding Protocol Version 1.0</title>

<author initials='A' surname='Popov' fullname='Andrey Popov'>
    <organization />
</author>

<author initials='M' surname='Nystrom' fullname='Magnus Nystrom'>
    <organization />
</author>

<author initials='D' surname='Balfanz' fullname='Dirk Balfanz'>
    <organization />
</author>

<author initials='A' surname='Langley' fullname='Adam Langley'>
    <organization />
</author>

<author initials='J' surname='Hodges' fullname='Jeff Hodges'>
    <organization />
</author>

<date month='September' day='2' year='2016' />

<abstract><t>This document specifies Version 1.0 of the Token Binding protocol. The Token Binding protocol allows client/server applications to create long-lived, uniquely identifiable TLS [RFC5246] bindings spanning multiple TLS sessions and connections.  Applications are then enabled to cryptographically bind security tokens to the TLS layer, preventing token export and replay attacks.  To protect privacy, the Token Binding identifiers are only transmitted encrypted and can be reset by the user at any time.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tokbind-protocol-10' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tokbind-protocol-10.txt' />
</reference>



<reference anchor='I-D.ietf-tokbind-negotiation'>
<front>
<title>Transport Layer Security (TLS) Extension for Token Binding Protocol Negotiation</title>

<author initials='A' surname='Popov' fullname='Andrey Popov'>
    <organization />
</author>

<author initials='M' surname='Nystrom' fullname='Magnus Nystrom'>
    <organization />
</author>

<author initials='D' surname='Balfanz' fullname='Dirk Balfanz'>
    <organization />
</author>

<author initials='A' surname='Langley' fullname='Adam Langley'>
    <organization />
</author>

<date month='September' day='2' year='2016' />

<abstract><t>This document specifies a Transport Layer Security (TLS) [RFC5246] extension for the negotiation of Token Binding protocol [I-D.ietf-tokbind-protocol] version and key parameters.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tokbind-negotiation-05' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tokbind-negotiation-05.txt' />
</reference>



<reference anchor='I-D.ietf-tls-tls13'>
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.3</title>

<author initials='E' surname='Rescorla' fullname='Eric Rescorla'>
    <organization />
</author>

<date month='October' day='25' year='2016' />

<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></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tls-tls13-18' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tls-tls13-18.txt' />
</reference>




    </references>




  </back>

<!-- ##markdown-source:
H4sIAFQPKVgAA61c624bR5b+X09RUH6MBJAcO0F2MBossIrlTITYsteSN1gs
FkaRXSRr1Ozi9EU0YzjY19jX2yfZc6tbs2XvBmMkEC121+XUOd/5zqU8n89V
7/raXup7/2Ab/YNrKtds9Nq3+tn83f29vn91p58vvtMvfNPYVe980ymzXLb2
8TI8kb+pKr9qzA4GrFqz7ufN1rR7286fzdu+n/f46HzJj85r09uuVyv4sfHt
8VJ3faWU27eXum+Hrv/22bM/P/tWmdaaS/1X29jW1Org24dN64f9eMm/wBf4
86/4pXqwR3iyutQ3TW/bxvbza1yPUl1vmuqDqX0DazzaTu3dpf6P3q9muvNt
39p1B5+OO/6w8ru9WfX/qZQZ+q1vL5WeKw1/XNNd6tuF/om2R7/ibd+61UP+
W99uTON+NSg52IX3m9rColYL+tbujKsvtUjpXzb09QJmVarx7Q7eerQwp373
44tvnz//s3z8/k/PvsePN/PrhbP9GuWKQp3vWw878fXklw1IuXe8kOL7usP/
n393CcJv1mlapebzuTbLrm9BBkrdb12n4XyHnW16Xdlu1bql7fTWH0ZnsTKN
Xlo9dLYCSel+a0VXKtMb7dfaoF4p1KtV1KuFpglc8+jrRxh22MPTONrp+NlW
NCpEp+FQlanoS6N3drUFoXc70mN8Z8UjHbYW1tLCI51tH+HDHvQYNtPp1u5r
c1zoK0UzyUSvbdeZjYWnYcOwkWwTWwOycOu1bfG7zq6G1vVHGNDDQfYO1t/D
GhSoGb8NygfzoSTQouCrqtuaB0vjrB0sdmurGSzQrbbwVC5oU3deRWkv+FR2
rqpqqxSod+urgQSo/jn7o1QpsvNPn55Ul8+fL/SqPe57v2nNHpZg6vqo8ZEu
7kyR7Xb63C42oPb392/h6PwDbHSm31yBcWh+4AJ+xm2CSGHTeEiyL3vUYM4K
xI5CsdVC34AmeZBW5/XyqDu3aegMG/3pk2j658/aftyDbcJQj6YerF63fhfm
UIUCCVg5kQqMa0BZDnrnK4sHgtKs/QF/vaodShdWC0sB5dnva1ITWC1raaNd
j2fTdr1e126z7WG1az6cTBFg/t4AHJBS5bKa4RKbNNPQ4c7KUzn4oa70wfBC
4Dwerd77rgO9w4WApcAaRie5b90jQKYGiEOp0a5QGKLSaHvw062P9FsBWzQu
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
ak+qP2xAAr3chgJF5XsK/wvGdW0CKEkAAA==

-->

</rfc>

