From nobody Tue Dec  8 06:56:38 2020
Return-Path: <stephen.farrell@cs.tcd.ie>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 5F9703A0EB3;
 Tue,  8 Dec 2020 06:56:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 
 DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
 NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
 header.d=cs.tcd.ie
Received: from mail.ietf.org ([4.31.198.44])
 by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id rSh0gU_KVztW; Tue,  8 Dec 2020 06:56:31 -0800 (PST)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 265A43A0F39;
 Tue,  8 Dec 2020 06:56:29 -0800 (PST)
Received: from localhost (localhost [127.0.0.1])
 by mercury.scss.tcd.ie (Postfix) with ESMTP id 999D5BE4C;
 Tue,  8 Dec 2020 14:56:27 +0000 (GMT)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from mercury.scss.tcd.ie ([127.0.0.1])
 by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 2Rk7YEWOmCv2; Tue,  8 Dec 2020 14:56:24 +0000 (GMT)
Received: from [10.244.2.119]
 (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252])
 by mercury.scss.tcd.ie (Postfix) with ESMTPSA id BD0EABE2F;
 Tue,  8 Dec 2020 14:56:24 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail;
 t=1607439384; bh=rbqEY/IXn0kmb1SC93nkcMagS9Qj/5wh/F230iIX0FU=;
 h=Subject:To:Cc:References:From:Date:In-Reply-To:From;
 b=Tz50zTKth+BHxH6PSHx5FVy0TQdXJ3aPtREtQtCoQ93bnBAlEGtQDVxS6ek6UEAPr
 paf0t1rSpXPt28NDFWMZiuWHnFM186fYw/AVDdHGDvM2pjngcyLaH1JY0KNuISRGXr
 RU7aSHw3Y0709VYlR6hweQkQ1/CylzJPRKv4ej68=
To: Benjamin Kaduk <kaduk@mit.edu>, =?UTF-8?B?T25kxZllaiBTdXLDvQ==?=
 <ondrej@isc.org>
Cc: last-call@ietf.org, draft-ietf-dnsop-server-cookies.all@ietf.org,
 dnsop WG <dnsop@ietf.org>, secdir@ietf.org
References: <20201204203635.GS64351@kduck.mit.edu>
 <F84E2C04-2916-4B88-B8CA-8CE7428A0C1C@isc.org>
 <20201208012332.GJ64351@kduck.mit.edu>
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Message-ID: <200cabf3-79a5-bb61-57b7-30317dbb0944@cs.tcd.ie>
Date: Tue, 8 Dec 2020 14:56:23 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.5.0
MIME-Version: 1.0
In-Reply-To: <20201208012332.GJ64351@kduck.mit.edu>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="yUnDk8M4VytKCSRxIKXkjK9AI5qRap8sP"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/gJgBL_FprAbbcFO_f-lfqqBPrt8>
Subject: Re: [DNSOP] [secdir] Secdir last call review of
 draft-ietf-dnsop-server-cookies-04
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>,
 <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>,
 <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Dec 2020 14:56:34 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--yUnDk8M4VytKCSRxIKXkjK9AI5qRap8sP
Content-Type: multipart/mixed; boundary="ExVB2Qoiko5GtaK9yl8HB32ev7zNouOnO";
 protected-headers="v1"
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
To: Benjamin Kaduk <kaduk@mit.edu>, =?UTF-8?B?T25kxZllaiBTdXLDvQ==?=
 <ondrej@isc.org>
Cc: last-call@ietf.org, draft-ietf-dnsop-server-cookies.all@ietf.org,
 dnsop WG <dnsop@ietf.org>, secdir@ietf.org
Message-ID: <200cabf3-79a5-bb61-57b7-30317dbb0944@cs.tcd.ie>
Subject: Re: [DNSOP] [secdir] Secdir last call review of
 draft-ietf-dnsop-server-cookies-04
References: <20201204203635.GS64351@kduck.mit.edu>
 <F84E2C04-2916-4B88-B8CA-8CE7428A0C1C@isc.org>
 <20201208012332.GJ64351@kduck.mit.edu>
In-Reply-To: <20201208012332.GJ64351@kduck.mit.edu>

--ExVB2Qoiko5GtaK9yl8HB32ev7zNouOnO
Content-Type: multipart/mixed;
 boundary="------------6FDA43A02FABDAF43A69738C"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------6FDA43A02FABDAF43A69738C
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable


Hiya,

(I wouldn't put that much store on my specific response, but
since you asked...)

On 08/12/2020 01:23, Benjamin Kaduk wrote:
> Hi Ond=C5=99ej,
>=20
> Thanks for this detailed writeup; it really helps bring clarity to the
> current situation.
>=20
> In light of the follow-ups from others, it seems that there are actuall=
y
> two distinct but somewhat entangled issues:
>=20
> (1) whether SipHash is a strong cryptographic hash function that delive=
rs
> its stated properties.

Right. And whether there are any oddities, e.g. ways in which
one ought not use the algorithm. Asking about that is IMO a
good plan because once this gets used somewhere it'll be used
again elsewhere so I'd prefer we know if/when that's ok or
not. (Additionally, I'll admit a slight personal bias against
adding new algorithms where we have existing ones that are
fine - I figure that just costs more and damages interop for
little or no benefit. That could be outweighed though if the
new alg is already implemented and deployed for the purpose
in question and/or if it's widely available in libraries.)

>=20
> (2) whether the stated properties of SipHash are appropriate for the
> scenario we are using it for in this document.

For DNS cookies, I'd say it'd be very unlikely that this is
not ok.

Cheers,
S.


>=20
> I had initially assumed that Stephen's review was asking about (2), but=
 for
> the most part we tend to ask CFRG about things like (1).  So, while I a=
gree
> that it's valuable to get input from the CFRG on (1) and am willing to
> start the conversation there if needed, I would also like to get Stephe=
n's
> (or anyone else's really) input about question (2).  I suspect that we =
are
> okay in that regard, not least because of the other similar usage that =
you
> describe, but request that the analysis of what properties we need from=
 a
> hash function for this use case (and that SipHash meets them) be includ=
ed
> in a future version of the draft.
>=20
> Thanks again,
>=20
> Ben
>=20
> On Fri, Dec 04, 2020 at 10:14:29PM +0100, Ond=C5=99ej Sur=C3=BD wrote:
>> Hi Benjamin,
>>
>> I did not used appeal to authority as an argument, but I=E2=80=99ve ju=
st provided examples that SipHash has been implemented in the similar sce=
narios and there hasn=E2=80=99t been reported issue with the choice for y=
ears now.
>>
>> Using fast PRF (pseudorandom function) for the DNS Cookies is a good c=
hoice because it matches the required properties - it needs to be fast an=
d secure in a sense that attacker can=E2=80=99t compute neither the key n=
or the output of the function. DNS Cookies are not MACs.
>>
>> Sorry for the misnomer of the brute force - what I meant was a protect=
ion against a replay attack. I=E2=80=99m just currently very tired with d=
ay to day job.
>>
>> Please note that DNS Cookies doesn=E2=80=99t protect the actual DNS me=
ssage payload, it merely provide means to establish trust between the cli=
ent and the server as to distinguish between a legitimate and spoofed tra=
ffic, so different policies can be used - Response Rate Limiting (RRL) co=
uld be turned off for DNS messages with cookies or when under attack it c=
ould require fallback to TCP for DNS queries without the DNS Cookie. The =
DNS cookies doesn=E2=80=99t protect the actual content in any way, neithe=
r it does protect the communication from the on path adversary.
>>
>> In that regard, the client cookie is just nonce (and it=E2=80=99s just=
 convenient to use same algorithm to generate it, but it could be output =
from CSPRNG as well) and the server cookie is a cryptographic primitive t=
hat uses the client nonce, key and timestamp to construct the server cook=
ie. Such server cookie is used by the DNS client to authenticate to the s=
erver (it=E2=80=99s shared secret, but it requires no per-client state on=
 the server). Just to repeat, the actual payload (DNS message) is not pro=
tected by the DNS cookie.
>>
>> If the DNS server could keep a state for every DNS client, a CS random=
 number would be as good as the output of the SipHash.
>>
>> I might not be a cryptographer as my daily job, but I am reasonably co=
nfident that SipHash has matching properties, it hasn=E2=80=99t been brok=
en as of today. Also all DNS vendors have agreed to make this choice and =
the RFC here is merely a way how to ensure interoperability between vario=
us implementations.
>>
>> (Typing this on phone, so excuse any irregularities in the text.)
>> Ondrej
>> --
>> Ond=C5=99ej Sur=C3=BD =E2=80=94 ISC (He/Him)
>>
>>> On 4. 12. 2020, at 21:37, Benjamin Kaduk <kaduk@mit.edu> wrote:
>>>
>>> =EF=BB=BFHi Ond=C5=99ej,
>>>
>>> Just because someone else does something, even a "big name", doesn't
>>> necessarily make it a good idea for us to also do it.
>>> We should be able to justify our algorithm choices on cryptographic
>>> principles, not just appeal to authority.
>>>
>>> In a similar vein, you said something about the 32-bit timestamp bein=
g wide
>>> enough to prevent brute-force attacks.  Could you say a bit more abou=
t what
>>> attacks those are that are being prevented?  I'm not really seeing ho=
w the
>>> width of the timestamp comes into play for that concern, just from a =
quick
>>> skim of the document.  (Timestamps tend to not provide much protectio=
n
>>> against brute force by themselves, since time is relatively guessable=
,
>>> especially to seconds precision.)
>>>
>>> Thanks,
>>>
>>> Ben
>>>
>>>> On Wed, Dec 02, 2020 at 11:18:29PM +0100, Ond=C5=99ej Sur=C3=BD wrot=
e:
>>>> SYN cookies in both Linux and FreeBSD uses siphash.
>>>>
>>>> * FreeBSD: https://svnweb.freebsd.org/base?view=3Drevision&revision=3D=
253210 (since 2013)
>>>> * Linux: https://github.com/torvalds/linux/commit/fe62d05b295bde037f=
a324767674540907c89362#diff-14feef60c3dbcf67539f089de04546c907233cbae09e1=
b2dd2c2bc6d6eae4416 (since 2017)
>>>>
>>>> I believe that the SYN cookies have exactly the same properties as D=
NS cookies.
>>>>
>>>> Ondrej
>>>> --
>>>> Ond=C5=99ej Sur=C3=BD (He/Him)
>>>> ondrej@isc.org
>>>>
>>>>>> On 2. 12. 2020, at 22:15, Eric Rescorla <ekr@rtfm.com> wrote:
>>>>>
>>>>> Well hash tables are an application with somewhat different securit=
y properties than MACs, so I don't think this is dispositive.
>>>>>
>>>>
>>>> _______________________________________________
>>>> secdir mailing list
>>>> secdir@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/secdir
>>>> wiki: http://tools.ietf.org/area/sec/trac/wiki/SecDirReview
>>
>=20
> _______________________________________________
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop
>=20

--------------6FDA43A02FABDAF43A69738C
Content-Type: application/pgp-keys;
 name="OpenPGP_0x5AB2FAF17B172BEA.asc"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
 filename="OpenPGP_0x5AB2FAF17B172BEA.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFo9UDIBEADUH4ZPcUnX5WWRWO4kEkHea5Y5eEvZjSwe/YA+G0nrTuOU9nemCP5PMvmh5=
Cg8
gBTyWyN4Z2+O25p9Tja5zUb+vPMWYvOtokRrp46yhFZOmiS5b6kTq0IqYzsEv5HI58S+QtaFq=
978
CRa4xH9Gi9u4yzUmT03QNIGDXE37honcAM4MOEtEgvw4fVhVWJuyy3w//0F2tzKrEMjmL5VGu=
D/Q
9+G/7abuXiYNNd9ZFjv4625AUWwy+pAh4EKzS1FE7BOZp9daMu9MUQmDqtZUbUv0Q+DnQAB/4=
tNn
cejJPz0p2z3MWCp5iSwHiQvytYgatMp34a50l6CWqa13n6vY8VcPlIqOVz+7L+WiVfxLbeVqB=
wV+
4uL9to9zLF9IyUvl94lCxpscR2kgRgpM6A5LylRDkR6E0oudFnJgb097ZaNyuY1ETghVB5Uir=
1GC
YChs8NUNumTHXiOkuzk+Gs4DAHx/a78YxBolKHi+esLH8r2k4LyM2lp5FmBKjG7cGcpBGmWav=
ACY
Ea7rwAadg4uBx9SHMV5i33vDXQUZcmW0vslQ2Is02NMK7uB7E7HlVE1IM1zNkVTYYGkKreU8D=
VQu
8qNOtPVE/CdaCJ/pbXoYeHz2B1Nvbl9tlyWxn5XiHzFPJleXc0ksb9SkJokAfwTSZzTxeQPER=
8la
5lsEEPbU/cDTcwARAQABzSFTdGVwaGVuIEZhcnJlbGwgPHN0ZXBoZW5AamVsbC5pZT7CwX0EE=
wEI
ACcFAlo9UYwCGwMFCQmUJgAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQWrL68XsXK+qGC=
xAA
pYHWYgGOIL3G6/OpkejdAkQoCVQAK8LJUSf6vzwost4iVfxIKcKW/3RqKNKkrRl8beJ7j1CWX=
Az9
+VXAOsE9+zNxXIDgGA7HlvJnhffl+qwibVgiHgUcJFhCSbBrsjC+1uULaTU8zYEyET//GOGPL=
F+X
+degkE/sesh4zcEAjF7fGPnlncdCCH3tvPZZsdTcjwOCRVonKsDgQzBTCMz/RPBfEFX44HZx4=
g1U
QAcCA4xlucY8QkJEyCrSNGpGnvGK8DcGSmnstl1/a9fnlhpdFxieX3oY2phJ1WKkYTn6Advre=
k3U
P71CKxpgtPmkd3iUUz/VZa0Cv6YxQXskspRDVEvdCMYSQBtJPQ4y2+5UxVR9GIQXenwYp9AP2=
niv
Voh+ITsDWWeWnnvYMq07rSDjq0nGdj41MJkNX+Yb2PXVyXItcj5ybE3T2+y3pSBGFEZYJGuaL=
4Nw
tBJFMOdOtBmUOPbetS2971EL3Izxb7ibOZWDwexv+8R6SWYfP1wVN3p46RyBQuXqJV8ccE11m=
6vt
ZTGSYgnLUUFZMRQYH+0hwuYe0T3AA18xDdSYsa8vovCCd3l5S4UNzIM2PMChqGrEzKapUpZg7=
+8A
CcxRU3b9Ihd7WYjJ+pQPCoWYKozvtEvenbNpE/govO/ED3B14e+R2yevRPjRrsN7PJzSf15fQ=
LvC
wFwEEAEIAAYFAlo9UqAACgkQLzyHNoBfjaLrSwf+MIHbFRQ4O5cmLYR5sIByWelN3SuRN/gW8=
rpK
o9OkCz6An8uV/iCXy5tNMLzzi0BFl8f22DwBcC5qy9qnlIAdogWam1qWoTAoAD8veEqmuKhYr=
qJs
CcAyNrKYmK0hP3rpHxx1LySDmKYXmw/8qtBXKHTouMm+5tSsznhykRMTAAr2p7PSaHgo+hIVa=
W/r
KSspHjDhhZS+G9mtOZad1IH29M6G1Q1NCO0Ywe8krKLQIAQlFxtgvOqpPOZNzeKBa/+KbE8TG=
gMW
rkOhC8OeEM5PVzdDhlhD9kPzB/pCKDF5DofJ/ZRqnDpbKPQ0bsW38AOig3kOc0A27awiBEw3u=
rqR
1cLBcwQQAQgAHRYhBH4XCgRchM9GDit5oBDvedn9g1MSBQJbtyScAAoJEBDvedn9g1MSI/oP/=
0A9
J9nrnBMqZpm857lfYWw+rshLK+tyeP4OQeOqnDFvs9jePpcyJLG3DF2r6VbVKPQq+AE6Uf5hc=
JBD
EN6BjEhRPSbLcqG3A1cz/nNwm8rPmNp+oKhmaBBQGxwciMLmzgynsDydnjPpMyEs04zvsbsl4=
vrp
2095o105l8KcrrxQrioFjbwveGwHQK9bxJKhx9D+gIk+MouBur45UDKTZkMZrr9FGrtkyXCGA=
xvK
dcNC5Oa8z9sj1rcUJfG/OpVAMWhArdlZbFUQyoX6pU2Zb1CR2qpWAVerGSfBhmfCyStjARqaK=
xlf
tjO+Bj3Jj73Cr5eqej3qB5+V4BCsPjr4RLvVbYUCPsRdxWc+nBLlfVYkRURu21g1hFm5KFPjg=
Uky
o1s4vjUOY8DyI+xLGF7f/IhUBG6l+Vswhpwu7ydalZkeFiPx5xna5NfbEYxvsIf71DvipGvIO=
aHv
X4egWoFgm8n/9c3rcMxJtpwHPSsUt5dgLsyu6VE0IbvOAc3dN7CWJ355DVFJq9Zg2YVf0izSp=
yyz
JeGsgkfjW6xpmdvZxuT2UcN4BTcm6vYqueASGrb3lfhzC5gpeVsc/MoSjTS65vNWbpzONZWMZ=
uLE
FraxWJzC0JrDK3NCd0VN3kstqGkVbUIiYOnUm8Vu4zoVMLlGWzHLIGoPRG2nRezn1YyNfyb5w=
sDc
BBABCgAGBQJbxcflAAoJEGo7ETk8pK1gE7QL/ApC5P68W5DrI1787WJVZv1u4t/g39vTr7Xer=
3UM
TVQg10vpa7pmqOGhjIDzDMg3Pe3K3M7fVzfAlUA1qw6ne4RCueVoRKpubeF4AlYbMr0K6hNCP=
jt5
uAxmbBVuejKTc6pru5rv5gKL0nDbr+Snft5xt7juBLSSimw0/41sZnkjCxo9rF/RA/v6+uWyK=
171
RKmsEYu8fFtw1eqUNt/Xj792TUixE3pxXheNtQtZGk/9P3W83ChhG4Fh5EQsn0pIh9wZIAbMR=
Lpg
RKyW87fWHZC8/YH8h7afarvn9Thl5pFUldCe22mNJj6KLChn2aEHQd+PdY1GBpZEcmNEUPuov=
wza
tM0h64hCzTm41eDqRfihZVBT7TbfXQnv8rywa42Mk756RGzzEZcQEhwQXZcMQUfxIQQ2VyJo0=
zG3
6VdZTQF7TF/4Lz7/3cJ56jOIm+dwPXtu+C2wAQuD4USOLt4JWPYpqzDfHYJIND/497P9Z9SuQ=
eah
r2ez3DRBg3qsHEjBV80yU3RlcGhlbiBGYXJyZWxsICgyMDE3KSA8c3RlcGhlbi5mYXJyZWxsQ=
GNz
LnRjZC5pZT7CwYAEEwEIACoCGwMFCQmUJgAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AFAlo+o=
3cC
GQEACgkQWrL68XsXK+qO0A//ZsfQzyXrZlu/eEV5jU620yeOM3P7SW3C3UQYdCgZ/TlvxGgKo=
w5o
DSXgjMiUyq9csGqbPBxlDYSxFZHNeDVKYIuP2ZK24tw5k6duTh4+sFwUualTMlcp0zBCIzn3h=
Rcs
RvuPKHfl5+6oOi0+xqx3jX/s/69L/fvHmdSKet5LIUAxoYaZkTCruFrPWb01tgAl5JExWkhmC=
Y98
iD+EeiIMAWBjMw1xV+p0uCwNbN6XDzcToK7wsm+tAIiWUy3DpP60a6WbVwdV0HNt2WZq5U5Jd=
h2k
4S+sN2CnYk4tTW7jHjsWarV3FLISCOObADZuB7ljU4kYfdwZ+WzenXY4LGlxGQSlAblGjwZe4=
EIk
CXAJUtzJhoFUuGaF/PlWjxqV3UFRcgTERZTijguVyREre8GNERNgvDxZvuXssEjvz9X5JfcIZ=
DIJ
pdzhLiEIj9noUbfx1SzB5KDPQj0O7elMHa1671/rwWcpGr/MfVPTOik4H7F8rcVJelceZTzC4=
tvy
a7M+jM4fyFWWt8Y4atTixUiP7U9o4uBZCQ0GzvsmFA4XLqn2pA5rVizMXnGbGOjufAP/efEJ4=
ul3
qvjYe8ye8DXEDjKAxo/tuHYtk19XCi83QzFhWls5TT+XQeVTMEvVqo9Wek8yoxo67qvLKKqIc=
G9g
ivQd8MxYNAbNYgSPtkbhZ8TCwFwEEAEIAAYFAlo9UqAACgkQLzyHNoBfjaLzHAgAlWT6NXEGt=
w/r
1miKNGcopzvzILQ9oB8rKI9U9EL6tOf/y2V5oYee/GyQDb3ZdoPxxYYcJf+RyiH1nMoqUIZiZ=
Jaf
3bJXinDZ5+AdfE++UR2NBvqaNyC6u3r24jo1B/sagKbYtWgsYtRqHLD4IWi37MZrVyjBuF7u1=
4Q0
7+uhjq6mX2O/tHpCYw/Q82tbeTRPyUf1WQOAfD1kfBpW9PvAva5Iw9FWeXpCXRzwxnCZhYfGf=
qtu
Sw6CPBYLdbikqML6FZ7EDuTBb/8um1wK7Y9bgeIQC+CYjhYB5RXa1tDJRab2Js4luCvSR0w/C=
gHw
26293tlve2Q6UTrmHxP5U22DlsLBfQQTAQgAJwUCWj1QMgIbAwUJCZQmAAULCQgHAgYVCAkKC=
wIE
FgIDAQIeAQIXgAAKCRBasvrxexcr6tJpD/4rrILH+meP07vrx8wW5eYuqCiPGYnh/CXxIF8eL=
rfb
e5d4QRgtq+w6UeQPMyzKRIRiCoBXB2oJLBZHyxBPxZlg33dTMrEGn8QWKx2iNuz9rZMXyOSWF=
etu
O01d/aUPd5BnbLbIyK5of8xCQlXM6KH8bc+9gQ7edR9mfLTdvBf2FR522hg8BRBM1imKc3vO8=
v39
+qIHHRjuiwxBBCAOhHtHRsZXripS0uFA07dM46Oi/E8osjx6fQt/lH5z/PN+2adxYSrLSAXfr=
1oD
3RxYNhuWgyGFL64/VCQb1YGjf0Z5MBPnWm9jgUoOY5K9eNSS0L83WeJjlF5+Q/WOgB+rb49Pr=
m2D
Feo9+S9f2V53Llz1WIspXJg6f+n9lmHE94MfQj1GAHCzI0FeL19lvM+LhD8jJSCbhrC3+yoby=
y/A
UOs5Z3E+njjX1FF/VCVAs6iOa6i+XG+Y1hh3ir2y1kckJ5auT10MSU8GEZu9ayU4M3o3N9yxO=
jao
P0NuQ4MMLL/n/u4u94AeZaHPNBXn/hVfVRRmpRXtGKvJtFAEppGEYezB+bLKIm6XlpPkhnwYz=
leL
Z7AMEco2C6QM8QPB3g3JpS3sqRhA5rEP4lL16BmijmF+CHoPE/zwgKZbKpyVDqvIW5IDgvfIC=
2X4
pbZDRvGIUKaGSB4+ksZgUUnNyvfQr2p7jsLBcwQQAQgAHRYhBH4XCgRchM9GDit5oBDvedn9g=
1MS
BQJbtySbAAoJEBDvedn9g1MSeKkQAJm44jt1kwHgQgeDBKdjdvl0AjE0xVEQxriZ6lP/l//34=
YT0
auFfzsYIrChSpQXAEtobBAr4Ohw1Us+BZe+H5P8vm6LRuPwozC3SjwfX4Iec8+9ot6tIVg4sb=
edD
Sgb/CCFVjsmIGcQ1P73JLJTBJ6mxYCV/gn3QC6bwDOFo7kD9FDHCjRN8XfhHQ4Q9cYyt06uF3=
1qG
/aumgWYC9geCGgAwiHgwxNYb9GoJ0iZjCROwbYvLTcQgsVUW2bTmsVR13UVKDsdl02sRV7qcV=
YW6
R0a3Ra8KudX+nt25H5DRGd382KZ5W8pydsy/viTvD9z6v0ulChBYxAedIvGIClrhbxlLEPmIg=
4Im
VOLGqsUgVm32J95WOjEkk4PEZ12xSDBtwhSJqmJNboWlfmw43KdIbY8zNhffIO3N6O7FsdGxm=
qyH
eLoTpqY+ySVUPpbuyW8ujnI/J//+6hdTZ9dQsEJQlWngKuWOQ5ma58MPSN88zllsqhZAFQjNx=
qnk
SzL6ZQ+v/jvuRRe16B80AeO55DsmbWsMv/YLLD1mSi7+Khy2EtMBhgojWwrGMvdLN6X3mnzNJ=
Esc
YyLxM9tSk+iySP2sLthK0BVgpAzBSdaf/ezIz60P+neHDzteNFf8Mn7lmgYk1amvZoJ29s5+n=
2Hw
xyRL5dVMyMdyQmntubbctfqrZ0tIwsDcBBABCgAGBQJbxcflAAoJEGo7ETk8pK1gnCYMAJY4F=
eIY
jlIXGghFWzsB4fYwK1+iaFpU3fSto5qcrqVtVPjXpwqczqBWeXGyQxiB0kan4OVAXydIeaP8E=
AuF
CA7paP3s9STLJBO3KurkwyRkPW5zo0X7xVqaVToRsX2Ul98KVJoHYQD1KdezEtwlvpNwiiBr4=
2AY
R751Vm6JBVAbQXuFpB3c8bUV0OkkRxNFtL8/2PieHar58n5dntGkbPlPkztahsFqktgacIgXH=
X5v
aT+7YeeZ1DWLOYjGO0wNhkOSeroCmxwJUikU7joBp823L7r5KfpqWTPpSCzVstQKZUGmmoE1q=
Csw
Y/Ud5wvp9SccpIILkRXj0rZRtfnE5MpL3hjmtNzfDd9qIsJtBJlSB2hZwAsVm1l+EWN9hG3tq=
yA4
3niUMy2n6q690of3berSiQ+kvY/aC9Hx8I+bKzOV9/J2VUTqfaPZa4Uy2rVX5Q2p69n/PMj7m=
Eer
0rCL3j9V16J9c+s0BSkXoKdtYdB0TWVhBgUybd9qtYcwHWvhP80uU3RlcGhlbiBGYXJyZWxsI=
Dxz
dGVwaGVuQHRvbGVyYW50bmV0d29ya3MuY29tPsLBfQQTAQgAJwUCWj1RWgIbAwUJCZQmAAULC=
QgH
AgYVCAkKCwIEFgIDAQIeAQIXgAAKCRBasvrxexcr6jscEADEcB0WQEZn2AkrzDs1RhL0Lp6cZ=
i0B
igofkbcGfdhJyMSs19C0dhvncrAFClVI6/Udw3yFtDyYtOCf2W3M3A1K6/RfEizCLzTsdFIhn=
i9g
OJLlUpXViQtgrlstjk7hqVV3Ooz4BlCqS4cG7rfqf4LQQPpTAuFUEV9I28FBUB2irqC+v4gTy=
sIg
pMw0bA1yBU9sX5jE/tRkzqnuzZrkwiobDtRFJ9qp+7O2JtcY4EsVtLAsaodJKc5cF8R4OvB1n=
66v
xxcgg9Eh4JNWZ47xsaCmAGo1Bcb2jIY35OtgAL7gCGLRSMKTtAaPy1/fEgIqhCljJ9x40Fkn/=
3r2
BX21WC9HFSPFTBz2RluLRzxdgxOrkYK8EiHUPoE5b1AEzZKw2AbeXfr57f5zYsN3IqfbQLUjM=
YtU
N1wK3Pjb+idD972wyXMWt8uOzlI7b9Ocu+nYm2whBfJv9Pmp3QYTmPz+LB9lH65VNVUSxSXVr=
5iW
XO3qx1HtEiGEqkporMQCTh3T5Ud3PvMSRBFFKNs9WhJ/Lxz+SV30WLwG6dr5mQqlzAhb4Phc/=
zek
ZyXRdS/oDKrBLUucS36O//49JeyRi1QvOfxnfmIqRIAf/k3PoYJmTo5E82//r5Qj3YGlRu78b=
a0H
Arxs+ACD6AnEHHcbswpbtVEKYzlSu0Ar0Dc7vRWM/IyQdMLAXAQQAQgABgUCWj1SoAAKCRAvP=
Ic2
gF+NosIsB/9f/29FNla3BJfGIEIDnhrqGD0i9bSa89SqBd++uG06TQgW5wsqtNcrwn81yZTq6=
XE6
i9VtD4GKfqC0d4KZJr9bnbeD81cI64VOdL8zJWJs0vj5EIXCobKyX74Kb4uePUyZqwT2Q74I1=
16u
/HwA9/FXsPo5isbh4ZqD4t0VHpWkmfq1FPT9a/JPyX46qKqB2Fce/7Qy+SQP1NfkuUlbhUH/J=
G9a
SSYvk3lznNiH41x9M+FDlL106itXOubrl3oi2fT3fsSedq7uzt+IV0DQEeNaoQAUuwEhdB8IW=
OMq
N2woDjGVKJftfsSWY9ilZrnDBNDrp0vRqcx33LUMkIw4d7iBwsFzBBABCAAdFiEEfhcKBFyEz=
0YO
K3mgEO952f2DUxIFAlu3JJwACgkQEO952f2DUxJjuw/6ApHSsVTWD4a0H6FJ23A9Ftpy+aXZ4=
vYl
zkSrfsn2ECrEfK3lXQh/uzwjJUDYZeB1/BQsFZtcYNQOJSSHbQ49BFRLwb1J/wBZG4bbmrkLx=
nNb
KDKQvzxEpclkMW0Dj0J6o7kGrmzIGGrhB+JJN99AcineHRug8ZSFIERRCmigxdhAKU0BFD7P+=
5HN
HltSL3DF1c2fFOf2JrgBKVoE+9RhMZjWNbYetFFLCkjXb5Rpay9zeMm1DxfSTGAnuOwUXW6qq=
4hn
l5+VC/48ceDZElLLfu7RQUZv44pkSTOWZs+iQoJiHMFHk9wPqyB2Vok1yJ2a2j27WhXrJlPwn=
Zbg
JO5RyWDG3p/eVmpl5Uuc2dsfIpR17KnAuWpghK6V+cyFncDoGCl/YG2MvoolsW08FiZh3Ej4d=
nJj
j25TZkeFG74JJDXLvMYpJfSBGnmETv4Dhcm2xPqVMuFuL1qJlMbVLrMo2GXeo03OzNyvbs+u8=
WLI
aGm5hC7N1CXY8wZs4jo6OJ/expvnc07dEuws4zT3AiWv3nIouWReRStZy9QkavDocqbyPmilc=
dPC
Yk4BsOlzpwwO74hNG7iyl0KdAlwTxGQ7y0rJou6HYa1TmRhIEr3vKvlW+JfUUrqtjXgsuacTX=
o4+
Ira2JUErL2cYzQMq1j4r1ZyhFnuz93s7Rsx/Nw0+0YvCwNwEEAEKAAYFAlvFx+UACgkQajsRO=
Tyk
rWCJqwv+NLVPE4sD4sDA2/6Ek7UsRIUkg+S39fhqWsLc4rtw/mDunv8Un61I3K04fZ2Ry4nF9=
hZM
0a710UvXFbStvrzRJO3EAAcdJR9LTCd19e8UeruQbIee3YT91U4NkC9JMpecfq62/teOAU2e5=
P3f
WYaLs5ZX7zCLwWuBcW2l3SyoljQczM85HhJ3XHm+FnwQ6D9xRle+lvWTcuC9d1yAyUb8IOosp=
cL2
lJTmy8e3r79R24hPlSB4LDe0wEN8AXbagrcAQZjwyaHyWxjJbTwZ0b43WGdfIqZ1ElOeoffbk=
etP
GRmWvx5xUvb2ALFBBdETzV270gs5XDJgJ1SIIKOyDADxwvroTe2jD8C/841eEql5QSow3s/U3=
zRq
k3mttto8Qw/DN71aeh6dmYSsvd2UjsHw/vofOPRBGxZLEkKTEvMnhmMW9hiKPkPia+QgevYE0=
20q
pKSxLEdWA8nprHwxmGiDNesCfXSC6vm1qfyj5g8HzxSckq9ZaMhKMCo7vxflUEDuzsFNBFo9U=
DIB
EAD6DdHQfMav8OXfhjTteoarOrlJTSdci727xiezGPuBHmpvceBRZgRasdbaMc4HJee+R9+5x=
/nL
PCuy/DxDyIjwIUeJNgc+l7LjI9WfpHTD8U4xxjvR5Mi7+ToQQUOUNuzT0O0pyuxP1uY3RehHE=
hOV
fBZO59ipSeZL5iQC6T5MsK1SKfs51pLa5ToC1rc8tBJ4zZmxRAyZiYc/AH2uZ/6rYjTTkAn1D=
VI9
DYo2D/zE4bGjXdJW5pKphFB2lX3dG4I7ODi+5e1H6A/QpCu6z8/ZkIQ+9T1xcX/YwiFeA7PbT=
uW/
eITbMbI1eV3+fyym9aT7Rsflmp31Zxtr+sZwGGZf00ooMBFmqOS//NUQ/Vf3vDUew1h5QU1yD=
aWT
3NApvi+XWPH9TPy6TMfZA2FThHf11sX/gDBa5JWQZbptPEcmoazpiKZt91CrFPOaoXDPck/Q6=
1df
mr/oPikfByYnASIM3OwEuXqyQ9JDRfKrem5r+oA/wxWb5jELElAhOpnyqMMvOh7uz1foUssL8=
MAv
2TGXmxpVJ8Nu4je6wf96Z22fQ0D38zud+CKH3bMP3ayXXJBcdPoENrzFbWP5FTg/4TTDJ3vOA=
HZR
5iCunYghx8b7Ffa4UbkwlD+dh8GiIAtvT51Ac0cO0Wc0Zjc57zPUz1zloMbf+zb1Bsn7DuEQo=
qj1
gwARAQABwsFlBBgBCAAPBQJaPVAyAhsMBQkJlCYAAAoJEFqy+vF7FyvqrC8P/1tF6TeR83xD6=
Mas
qXyrBjwcLmziaF0Mlkj8k/YUiZ/knb53n97xQnh9yxPv0TT8Wpfdn3BmvqGyh8+ouHX9jMOxi=
RkM
dNhIauVYY/8jmRfBSYWcFkfMzdYasvdLtmYJgx252HKTFdeOrszoOjWjEzwmh+tca3AFMu/nB=
++/
KAmi5UJV7zsZ7uYJ5jm97LV5SLjNJIXXM+lHqCDrjDaDhNczmq1LCRlU6/WDjvkuwaVhZG4lX=
xMD
rvKnXMkjseQ2oKjwrIdfQM86H1z5J31lfhqop+of0cimcIsBgSCPu+h96LHuAzeRBCbDKeqrf=
ZtA
ZAGsokRina9947fRWxXHh3O66ILmXKNRxxWbDkPvYnQWUat8SbSTDoPWrDIGDRIAypqYo3pcN=
2OE
0C1chqgDZQxkr+9kYZQpupOAN2TR+fM7JvbO9coKI8Uqog8CopoMeDQkd0YjcqlB1E0svODHT=
zcS
oRzogDBYDqNLP7qVkNXpcOAXSVioBgiSDf7o5RdS/qmUyXBIeq6I5z8xBcd+BQ/n/9Frkm6K7=
IKP
3ngUP4wEoiPx5ZE5+fPIScGmVUcZIMhkvMvem9XXh1yyhqN14gfjmLwPGdWbrgG8QUe0s2WeW=
Iys
s6uTiyF+ZbJSo2XOKVc3YFMVUUfgyudqAV1wWdZinUk+H3pkqOKoHAy/8fST
=3D40Nd
-----END PGP PUBLIC KEY BLOCK-----

--------------6FDA43A02FABDAF43A69738C--

--ExVB2Qoiko5GtaK9yl8HB32ev7zNouOnO--

--yUnDk8M4VytKCSRxIKXkjK9AI5qRap8sP
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature"

-----BEGIN PGP SIGNATURE-----

wsF5BAABCAAjFiEEW7Wm6ldl0sWGPK4nWrL68XsXK+oFAl/PlBcFAwAAAAAACgkQWrL68XsXK+rh
ChAArMHmaLwfqd+7jWary9+hGzdVTXwJxtH2ExAi6OTDGaEoHDl3X2EXgKwSgs8dPtl3s/Bve+WU
pTef78Xfv+iYhlWgc/oy/qcW0V7OlB7g5/heHGAZB93jeiirDMBkVcvQMGyUKnEovqsK0UL8bsga
/viFWXMOmgUjZxdvG6NMfdLG2HLxxt23z8VUtmTqkp+3G6bvmwZDl9yanmidCUEvFce4eiczcblg
33gZYJGm4xXzCDARMnLBqXk5hrIQeZ41YxxUQ/wZYye3qzCH4pP0NUiMztYufit5CzdYtu6IJlao
NsQLdFfBF1xo2sdzOkmAc5pPwL6R1+a5VaL9wsLdYnypMu2Jev8WRWQDHf6PniwRoG/n1AgYiCRC
bFEoXfk7wIIy9DDmj6bqk69N7rLzogrnNhD5r9lZszLLPzgpacIBwDN2c4DS/zdYGuyT0ZDKFNhQ
4a8AdwQ+hRa4NVxx6/2NXhcnR6kpInlBMQA78tVplCd8jMC8ASuUwu7bz70GEktPW5I/js8ihvTZ
3WICTna5hPc8CFnL+wat7E6+B4kIq1XWGt9iIzIm8J3Z8K68QTPLO+bqDZXkUwGLojEadU5lA38H
QF9Izek5cdp0HzrSrPmhAcoIcGTmUS3ZMhrucd0yDsRIWIHsOcblsmIGLz228WBpTs/u/wlaboTo
hGE=
=0oV8
-----END PGP SIGNATURE-----

--yUnDk8M4VytKCSRxIKXkjK9AI5qRap8sP--

