From 1437fd8f020302c782cd144db1f2ef4a61d34ad3 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 17:47:52 -0400 Subject: [PATCH 01/44] fixed typos --- whitepaper/zssp.pdf | Bin 420565 -> 420465 bytes whitepaper/zssp.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 0b9355501b055a0daf1a95e4ca2f168e7c0d5dca..7c334e5cbd267fb18b589a8364bee9cd77dfcac2 100644 GIT binary patch delta 135327 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

Xdc9PU9HVcPj=1uwcnX)+wjxJj+ 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Ⓢ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

= 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 b;sDL0EUx0|`?J`1xXcZVxKveL{oS|#Rx_wF delta 135436 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[Fx-}dw~CU>JxW$ZF*iWFGm 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 ?*d|>bA;l%0M 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

l7);`x; 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 z
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 Date: Wed, 25 Oct 2023 17:54:47 -0400 Subject: [PATCH 02/44] clarified language --- whitepaper/zssp.pdf | Bin 422324 -> 422313 bytes whitepaper/zssp.tex | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 4d7ed978c3dc28faddb84d2abce831a6679da4a6..58bcdbb22c81ebc7c67ca9e4a20ca02003573cbf 100644 GIT binary patch delta 5218 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 ShC((4PBQ~8RaIAiH!c91ljqX_ diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 04fefc2..6596e9c 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -400,10 +400,10 @@ At the end of this section we will have defined $\zeta$, which is the high-level \item $\delta(R_2, \tau)=\bot$. \end{itemize} \end{multicols} - In addition, for all states $q\in Q,\ \delta(q, \chi) = \bot$, which is to say the process restart symbol $\chi$, transitions all states to the initial state, $\bot$. + In addition, for all states $q\in Q,\ \delta(q, \chi) = \bot$, which in other words means that the process restart symbol, $\chi$, transitions all states to the initial state, $\bot$. For all transitions of $\delta$ that are not yet specified, they are the identity transition, as in a transition that maps a state to itself. - We added the transition $\delta(\bot, \tau)=A_1$, but it is important to note $\bot$, being the initial state, does not have any attached timer within ZKE, and will not be triggered automatically. This transition simply represents the upper protocol initiating a session through ZKE. Most upper protocols will attempt to restart sessions on a timer, which is why we chose to represent this unique transition with the $\tau$ symbol. + $\beta$ contains the transition $\delta(\bot, \tau)=A_1$, but it is important to note $\bot$, being the initial state, does not have any attached timer within ZKE, and will not be triggered automatically. This transition simply represents the upper protocol initiating a session through ZKE. Most upper protocols will attempt to restart sessions on a timer, which is why we chose to represent this unique transition with the $\tau$ symbol. Let $\beta=(Q, \Sigma, \delta, \bot, \{S_2\})$ be the ZKE Automata. \end{definition} From c8cac0b8745f1270c3fc341eb80327aa201b51a9 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 18:15:22 -0400 Subject: [PATCH 03/44] fixed typos --- whitepaper/zssp.pdf | Bin 422313 -> 422337 bytes whitepaper/zssp.tex | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 58bcdbb22c81ebc7c67ca9e4a20ca02003573cbf..4f157114a22395172bb8a7d00cf4608bdc6610e1 100644 GIT binary patch delta 10229 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

6tVK`RCh$EKKGE`S&h)+Urm!d0hV57X#7m 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 delta 10221 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 TzNV0khtt%MOI6j?-;E0Zb@qMh diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 6596e9c..5ee0092 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -934,15 +934,15 @@ The protocol is initialized with a random 256-bit string \texttt{salt}. As the n \end{bytefield} \end{figure} -To challenge Alice to proof address ownership, Bob will include a MAC that is a salted hash of a counter, for replay protection, and Alice's address. Alice is expected to include in their next \texttt{response} the same counter and MAC, proving they can send and receive packets from their address. Attackers who are spoofing their address would not be able to receive nor reply to Bob's challenge. Many DDOS attacks, however, are performed using botnets of computers infected with malware. Each of these computers usually has access to a static address it can stage an attack from, which would allow it to respond to the challenge. Hence Bob also requires a proof of work from Alice. +To challenge Alice to proof address ownership, Bob will send a counter value, for replay protection, and a MAC that is a salted hash of the counter and Alice's address. Alice is expected to include in their next \texttt{response} the same counter and MAC, proving they can send and receive packets from their address. Attackers who are spoofing their address would not be able to receive nor reply to Bob's challenge. Many DDOS attacks, however, are performed using botnets of computers infected with malware. Each of these computers usually has access to a static address it can stage an attack from, which would allow it to respond to the challenge. Hence Bob also requires a proof of work from Alice. To challenge Alice to prove work, Bob will require Alice to find a 64-bit string that, when appended to their counter and MAC, produces a hash with $N$ leading zeros. In order to do this we expect Alice will have to compute SHA-512 $2^N$ times, which is a proof of work. $N$ is a static protocol constant. We recommend setting $N$ to be the smallest value that makes computing the proof of work, \algorithmref{alg:challenge_response}, take more time on average than it takes the key exchange protocol to process Alice's Hello packet. For ZSSP we have found this value to be $N=13$. This method of choosing $N$ minimizes the burden on legitimate peers while still eliminating the computational asymmetry between an attacker spamming Hello packets and Bob processing them. This, in general, should make a CPU exhaustion attack more expensive than a volumetric DDOS attack. -Finally, to mitigate the possibility that the proof of work itself becomes a CPU exhaustion vector, Bob is required to ``proof receipt'' of Alice's response. Bob must include the 64-bit proof of work field sent by Alice in their challenge to Alice. If Alice sees that their proof of work is not included in Bob's challenge, Alice will ignore the challenge. This makes it difficult for an attacker to spoof a challenge to look like it came from Bob. The attacker would have to be able to read Alice's Hello packet and send their fake challenge before Bob sends the real challenge. The average botnet DDOS attacker is not capable of doing this. Using the proof of work for this has the advantage of making it trivial to serialize each of Alice's executions of \algorithmref{alg:challenge_response}, rate limiting the proof of work and preventing more than one CPU core from being consumed. The proof of receipt could be made more effective if it was also a salted hash of a counter and Bob's address, but we felt that the current design was more than enough to make CPU exhaustion attacks more expensive than volumetric DDOS attacks. It is recommended that Alice eventually timeout their key exchange with Bob if Bob has done nothing but send challenges. +Finally, to mitigate the possibility that the proof of work itself becomes a CPU exhaustion vector, Bob is required to ``prove receipt'' of Alice's response. Bob must include the 64-bit proof of work field sent by Alice in their challenge to Alice. If Alice sees that their proof of work is not included in Bob's challenge, Alice will ignore the challenge. This makes it difficult for an attacker to spoof a challenge to look like it came from Bob. The attacker would have to be able to read Alice's Hello packet and send their fake challenge before Bob sends the real challenge. The average botnet DDOS attacker is not capable of doing this. Using the proof of work for this purpose has the advantage of making it trivial to serialize each of Alice's executions of \algorithmref{alg:challenge_response}, rate limiting the proof of work and preventing more than one CPU core from being consumed. The proof of receipt could be made more effective if it was also a salted hash of a counter and Bob's address, but we felt that the current design was more than enough to make CPU exhaustion attacks more expensive than volumetric DDOS attacks. It is recommended that Alice has a mechanism to eventually timeout their key exchange with Bob if Bob has done nothing but send challenges. To prevent a legitimate Alice from unintentionally straining Bob while Bob is under load, Alice should not immediately resend their Hello packet upon receipt of a \texttt{challenge}. Instead Alice should wait until they would normal resend their Hello packet. -The application may choose to rotate the \texttt{salt} variable periodically. While the protocol as we have described it so far has strong replay protection, it does not automatically expire sent challenges after a set amount of time. This means challenges might never expire, and could be saved up to be used later. We do not consider this a practical DOS attack vector, but for applications that do, rotating \texttt{salt} on a periodic schedule is one of the best solutions. +Implementations may choose to rotate the \texttt{salt} variable periodically. While the protocol as we have described it so far has strong replay protection, it does not automatically expire sent challenges after a set amount of time. This means challenges might never expire, and could be saved up to be used later. We do not consider this a practical DOS attack vector, but for applications that do, rotating \texttt{salt} on a periodic schedule is one of the best solutions. \begin{algorithm} \caption{Alice generates a null response -- The returned value is appended to Alice's initial Hello packet to Bob.}\label{alg:challenge_empty} From cc4e05807116cb686717ba1d58297272d6b634fb Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 18:20:23 -0400 Subject: [PATCH 04/44] fixed typos --- whitepaper/zssp.pdf | Bin 422337 -> 422343 bytes whitepaper/zssp.tex | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 4f157114a22395172bb8a7d00cf4608bdc6610e1..2a4ba919320f9de4472bc219f1069ae4be3776ae 100644 GIT binary patch delta 10068 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 X Date: Wed, 25 Oct 2023 18:30:29 -0400 Subject: [PATCH 05/44] fixed typo --- whitepaper/zssp.pdf | Bin 422343 -> 422344 bytes whitepaper/zssp.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 2a4ba919320f9de4472bc219f1069ae4be3776ae..7aa94e94fc1ead195ee57105417dbafdcaf3ba92 100644 GIT binary patch delta 5415 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 Date: Wed, 25 Oct 2023 18:37:25 -0400 Subject: [PATCH 06/44] fixed typo --- whitepaper/zssp.pdf | Bin 422344 -> 422344 bytes whitepaper/zssp.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 7aa94e94fc1ead195ee57105417dbafdcaf3ba92..dab8db47657a6c3c9cd9b2dfdc6773f388a4b3a4 100644 GIT binary patch delta 1129 zcmX@{Sn|YU$%YojElfQe^(%FA6%~z*Rf8uM{^@3nKKQdB-{|6$_3cOcE=HDIPTe7O zP$}P^KTBwG$*zFQ*2bPWE}8XR>Z|{qj*z-C%co9^%SJdjEqTeTzwdmH=$Q-pU+oQP zlZ-OBbX;?3AZN7X^g@foBxB8EH+bf?-#9a$>v7@C{<8)}MqLji^8MqQ;M> zads~6M=6{Aw|)ogTl;r%=e;Q#c5bmgw))kzkHrEjB)Mjn?C9V+@#kRN=G#`&EJ&xDngWlZ+JXErxbaZ7C2Hl6zKv7$i?#@|dts$Sizl~MD#!1FjS<6GRM z-`h5N%BPe>-%hQ_xW(sRxKr)(`tqss<(+Td+p3UQ+&t6dSoTrb&E7V%gE#*2o6qud zQvF1`{0AypmlXDS%<+3N;qA9?!m)SO19nkM@p+a~ayu1#m`?n zyV;@c{ITG!`8V#}f9^bwOM98}?94*`DyA<7563=sH~)2HMtymLZm!|7Eu9;ff(@z+ zuVw6MNr-DU&6yticFu*S%o9>GW@KIYt@N4m$DG*EolVjAf9Mn%F6$9n^#`BjGy+cH~RP1*+-Ub<=h_D5`OAa&ArgmwcI|tx=k(w|9x}j;AkV)en#xt3P`x0x#<>TfbO#j?y^rf}_cdc4!7wcB>xpLX!fiy2zQnwooGR6EAD)m$e$dDif{fn9H@#P+y@aVy%{YPN8SBbz~LL8&c-HgCdQ^tCQfE3_v}6I zqWflM@0*w8W$)(U_r3klQSW-nzpv{)eNHyHy<6-_PM*Q!lND=sOfKs@UaS>%|K(wY z_^hKd+a!{9MBVgDPpY`~jOAoWm4i}=uMkh|JB_^O#WBJ9=zrn6zNA{l=Zu2F+)$^@cs(WmTnPXT2mz(}E zsov=VXRGaBo$7iXG$p&8xM-i(gC6*U&q*=Ax5m?d0F<-uxC& ze7E+$*a`D@r!Va*%-&x%`NkQuhu6A3ghkFfzdLJZexqmkbhfHh^XFRLx^>5ldH2B? zw=6ibO)K{4x?lOv_g3&AUsxon8knPur9mYNfo?X1D%Mnf>2eO4}E-b(}pcr6inpf6BTOiUw!5 zTx;WZP+P1y;Z~W&!lgHhbsL3mg+!|?sDF7{bN7V2pga@dosUjb?Z0ca=}2z9@|%5} zZbo1EkLFtDRJ}gBuE6c?Iwt;&!3WKsvAXcB4t?68tCv}zt6ivefV?DQNCf7X2sLpUpY1nQwl1@?brqKYz1fdoB-CdoB-idoB-4doB;__FNt| zg8*g&L-XkiV%QWwjO~YG*xLD=jZB?fT%BAE4V}#$4P0CdOpGnvoQ+%zjhxJkU0n?= Q>=bMWDcRne&1TI80Oc(U+5i9m diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 6a3e3f4..c722b8a 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -1197,7 +1197,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \begin{flalign*} \prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] &\leq \mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) + \prob[\algn{Vrfy}(N) = 1] \\ &\leq \algn{negl}(n) + \frac{8}{2^8}\cdot\frac{2^{24}}{2^{64}} \\ - &\leq \algn{negl}(n) + 2^{-5}\cdot 2^{-40} \\ + &= \algn{negl}(n) + 2^{-5}\cdot 2^{-40} \\ &= \algn{negl}(n) + 2^{-45}. \end{flalign*} If we assume the adversary does make oracle queries, then their advantage bound is only negligibly larger than the advantage above. From ab547a830b8d09fd27a916028d4a8527b610af13 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 18:52:08 -0400 Subject: [PATCH 07/44] added clarification --- whitepaper/zssp.pdf | Bin 422344 -> 422484 bytes whitepaper/zssp.tex | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index dab8db47657a6c3c9cd9b2dfdc6773f388a4b3a4..f6207499d43554109df5fd14de51b18f5bcebd44 100644 GIT binary patch delta 20179 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 D?;-Os delta 20078 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 Q=Q6c0=TcR5^>^a}0D7jL%m4rY diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index c722b8a..fd38dae 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -1103,7 +1103,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \begin{algorithm} - \caption{$\algn{EncMac}_k(m)$ of the ZSSP header authentication algorithm -- Input $m$ is bytes 4 to 20 of a fragment. Function $F$ is AES-256. For the sake of the security proof we will assume $m$ grows proportionally to $n$.}\label{alg:header_encmac} + \caption{$\algn{EncMac}_k(m)$ of the ZSSP header authentication algorithm -- Input $m$ is bytes 4 to 20 of a fragment, which is the portion of the fragment that ZFP encrypts. Function $F$ is AES-256. For the sake of the security proof we will assume that the input block size of AES-256 is not constant, but instead is equal to $n$. For this reason we also assume $m$ is able to grow to be of size $n$.}\label{alg:header_encmac} \begin{algorithmic} \Require $m$ \Ensure $F_k(m)$ @@ -1111,7 +1111,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \begin{algorithm} - \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we will be assuming that the size of the packet nonce $N$ is proportional to the security parameter $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} + \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we assume that the size of the packet nonce $N$ is able to grow proportionally to $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} \begin{algorithmic} \Require $c$ \State $m \gets F_k^{-1}(c)$ From 3ec92f5cc656b7439469ac049892c618b3a23973 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 20:42:11 -0400 Subject: [PATCH 08/44] removed obvious statement --- whitepaper/zssp.pdf | Bin 422484 -> 422149 bytes whitepaper/zssp.tex | 2 -- 2 files changed, 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index f6207499d43554109df5fd14de51b18f5bcebd44..a222252baf5c8ca574dfa9c4c38ae73c35899e1b 100644 GIT binary patch delta 53551 zcmcceM6&gfWWyH5r&&xUM$;!QW7M23kj=#jDFCgjm+M+nkujuR7IB zDSy(c8z_B*+i#TLdMV^epFk^XA8-Bii{JBp>^1*4 zonOE1yYIUCa-cmEw=0UwB7Q|=l#mFnm6I%fkm}4 z?WwaqO>2MG6P&{N=ES?V`dU%6`Ap;&An! zXB@Tb$#?@uZtgM^x9rat~FbH=GUf`+M4qU1yT&ZbTH4n!MC_F z=hed_^Y5Cx+r9kn;!OVN-Hv){JNXj67c?a2O8tv7ilA$hG6O zmG3W1`_4IKRd#gr$qQSmew6YwD(P~ja#mmUH~*@BgC$2O#N>O3iDtJ!C~MB#ZGV!d z9J!=*v+>(A&&IWv3{Ep1d=xPKko5Ia;os|R&TPtgZu-mi3{Q}ZZnd-CdsBm*CnlS2 zt~~6iB<=U0<;_p0_RC+Ftq)9{XvI*Tzg^HhRl;?CwzSsHdu^w>6&`){)!9~h_;sO7 z+brQu&b)=z%vrrEwmT+HUR%8`l8@6a!Y-g`-pqvhL`EY8nTK4P7+?N<`|dGIM8uK+ zjl)V4>r4Nwc=Te`b*a9MPa?kTa=k0-d9TZ&B9wnwrbJ$Wcq>=j$MEVmXAj=XH;iRo zC;l`)eb=+Ltmc=lD>fxPH~q!G{&oJE<_$6zgl|R9m?Ze>qDRrkv)lE{>;qm;Kf96n za)DLx^OU2!5+aRDHJa<^+&FQ>@iecb??x8(DYKNPXD1%1ci{3p{5i6^bgwMKxwAZ} z77@pjk943V&{S)nQyFd5!!FTc7+W)@ZEU~igMHJH;6;0On3qCBb`g7SI?5BT*p7s9f^?5<}y-RyEn9pw3-7YY-dEMsvQx8L& zlBaslwWu(?&Ncm&>q8^aS8pbZ^2OSh8C+RY5U?l6qCowKe4yXm1y8s&w|uzDn>E+L z>EkJDubTHBoyLo7N}I*@GOz5`+@8bHU`=-sRD$r(LUAb+6c=meZ$!8x0<%>EV zO^jMH|0vVKo9An}zx?*KXFfFV&E)5|uUTh2*;@IEMKN;Q(Yuz{YNT|p$M!f|^t5$6 zYMS%#@r9|P3$GnbKcdI$<#|x1lZ}fl=-!R_2RvoX9KBN$#nk7YvDy1lZ%XUFBJqMM zHr>C{4)xr(D;6webl>K%x>IRvM0ix2gLcbo;vGgTExBW;G_O~#%~KJo!TYqmc8V= z|7C?IiKR7HKHMl1@%=e3_tZm|M@mL3tV?vtm@j8$r!3X4XV|u5TY34p{DMWZxEyj6 zZt@t!h4Ak=|H!B!!8p)q%{`tSM}r!d{g{`vQbniPthk7AWwHCeB~O~R%r@pepuwBg zDH(d~&D<$7sy6t&FNihjf6QT0!!-NQk?p$cTb-&@6egRQoorgrRnoe_^_4X5pOS!> z4>OapnlFkmdvq|wKB$ii;5he|rE+0}Z>_zxwaber9;?1!|C6j({ zLdF!!znkJtY$}^(Sv_%Szr>P2vt;4T6C(@T7|${uDiMFLQn;^c(SoCQN_JWNK678e z?+ojWj%@D0zZ>4aI5BPA&R~g6`m8s_mrN3IFuuRfW4~|rq$irsF55{it$*}?v**Rz zj5~IjYHkQm4^sIv?ao~Nx%0EqZ;1OD2uq}?_B&eaOkAvJa^7xs@3p7-i7%F?nAl}4 zo~n24vtvvk+ecgD=kx3TL~RmEjt^gaI`GHFUbnx`m@Fpky&w}cxjuaHrMW9KeB6zb z*CmSB7*6<5`v0EU*2zWxxb=hs{R`s~EC2~&5+_z1Q(L}o`?NWQW1UpqN9 zOXKpDD9{i}W1=Qo)| zo;5FLmDOf6-Y9;X`9OT*=S{I*HR=s~F(;Zozo}BXIq##h())8il;%s(p{nH?CQm%d47Y?X`J&jZ?tud^x+`39qmHdsG&>*t#ge zYSsQNdwN$kbX~G4*f_aODDB`Ajjcg1SwzDgEwyx;))Of9j-~YRlmAZYmttq#w3S}F zV;BZ=-et4Q`%*`jWB;iw-Ji`*mpN|o?bH5|)vv+*Xk*dgvTtJ2SMoO8 zis#rMdnRKE3rEyJvw7G5t-Z3SIjsEh1)Kcbj~6c-+;F(?hQGLvh|2-d3+JoPsdGe3 zJy;VlC%Ru|+mwHwW*mt8t}$VD%k~wO4?fg3bJ>5@XiEPuFO})z$9eTTPfxBrpL`Yb%1uJOF@5YK|Z zFAL^`taQ;?B=p=#cc%5zNyR%=yy~ya(U8>GC~@BJ7%%sPz?~YAi;SB=*SfI=`NIG4sl7&VDyo zcesA5e&69PwSo_i&+1RFev)s@b<|2{Yh3gDsm~Jrgji`@4?Ggkw}o}-M4Ky*kAyFc z`Ca!i@bTI1%{^PRq?SKz)Anc8J`uc7dU}yt;jR$6{|KIwsWz;?zvmP-$@MAYPKl~hQneR%7mSl{^I&YGp#1trd#RxtFgke2+& z$$QRmSz1f;p__8AUY>c%c;U|m`L&kb+WYbrOC{V@o8`2_bi((J!l|h$_7BBpgosJ3 z`EaOip~Sz3M~iM2?%v8PT#){wTW_=Lfd~EC-}_xd(xX)7w!NLzxlnTdxvw8pDmv%S z$vzl%zB*b|R97k-+O`QTFWwpCB-m}c#H zUSnRS)Gp3#`@ieJVkVE62InSKnV)HyhfJi?cJb$FOc&Fc^FMmcl#0(U58l|>@aw?# z;CaU`<(g|R9$vhg}BknuziHO z?8me6rp*d2z2&#oP7-QnVOr@Tz4FS2_mLm1Iah3XD`?|V!26QHgyHP#X|tvC3?eS% zN1l7N_H^6#QO?d`fy^inC$Q z@A|BLKORXL_dOEbe0*Z@rs8=&zUfuViEXx5c=Ywd!h|5bH8-!i{BKw)JKyBTrMky# z7JL(n7ipaAu5|mb^5w?xP7X&tRWbgr0j6w959=nFi3m^oWYqKNz@)t`o5Z_3Z00o- z+OO3=!BrQ~YWhBQ4p*%r!;{hn%lg&#eK~abK}FA{`VJqdHyZgn3qEer(_a#!dyenh zVZWBkDIY48KQ3FW@JwF$$xUm8A~pW+f0`NOKTT4- zRh-Lj$}{7}z0mLUoP%FBha+3(niwg z-!e-rH5XMbMu}%$ArWqeK8W}kgk^s4zg^C6dcSn}!Ep5nf&uxb=hxRie4x;&X|aR# zYe&%0)~?Dk>?f~_6fyJEbv&G}-cx&i(pdvuVZk%YE*jkO{`~N#&rDbAMLU!^RU0p- zTUwMXQ$OnJzhk1^^p_hK-tpTQ<5}D)f2$x!KmF^WsGaKHuXzditY+=K(|6)WmMvG< zwnK&UvLqy3WH$tC|1?j?e&6O5^-UprDmX=Uesca~;`7eUZkDiN#Ju8_KMFS}yM!|w zVt={y&YlaO=DF>ARW7J8jluuiYg4^B+OZFIEuDR=o=s`}l1mYN{K}366$XV>;_Th3 zOTMqZ;iI56b%$(y`eM_=z2<9LbnXQCB--q*5xw#9V%0j)9o^5?p5A<5dVxf@c)eKt zPBAZT|C+6*oE(au-!I86oqkNFC!W*F%4zds*J);@dYAd;yS2{j%MaS98~x;A(z!Q3 zHs+qIm3ce!&;ownYmDNdvb+oVo;h2q?cCxzi~Zd+#?uL>UU};#d7d|Zd1{td*2^=; zpSe9rK6TUGUp)8Ft*4gU-(JtxPcDCR_URV3S=sfvmA=!xPo4IRnfqOQ(lv{+Hvt`+ zjg)6cr8M00pVt$Ur(OPbQcN=YwZ`R_eQTe_%`d%vdO~%c=nnC@ZT5v4mCPHf0-v!> zSaW){ef|EIs%K~Ko*&pUZ^`mMcIy6rt4sf+^tK(6%#W(pbM`qIXkJ(HH}rI2nVg~7 z#9LpR86{;d*Vo3}DoXz@CGh{Nu=$2Gzmmsu{PVQ@T%0d9PMy74V1h)uuGn`}H$UuF$Fs?c1+cA^-N5Z|9-Y7bKhn6@KV;IW_6k{=IMf zkGq6jJz{#|S4QFK%r%T+Os1xjKUQkiOW*9fWA^E8{KXs7zcA#j^_Xb&?QGejBit+> zj|o=@9zT$^%k*y4>x|bQD$MNnmj=3Tf7T(K+@KbzBX%-rqh8jZt94J;@2g+*;ClSZ zsbRM^YsF<|?+JK)bz9A+kDcN_C(d89SiWRm;S+P=U+4Ab z|M{C*pAvSfB2Z@K)u&%?YU!1)E`Ob0U-#|Pr$>LE+Ry*7>BW1!_tD??KRBOg7h<=^ zAvdgZdW+SOudY?1nonCBA1&Q`=6mhr*qo*l>!$uXe)QO@iobjI{aWT4v7@fgqg!e9 zH%UEtv)BF^nm4wGG5Yu~*;ahz<`%V2e=-i#aBX>9FgMJ)e%_DBiTTF!F0QLTckA&{ zwy?nPw~yBB`}U~t8ruc;Ge4JH+q|);W54mw)6RO)r}eKyt-9+NF(F*spm@4zXq3T{ zx3lVQbM_x9t?dl;9-lQ&CD&Elyvum%f>Gd_oQcm4$S_^Jw(-)LGH-<$ zhU>rSns=D0CqJlQF)m(Euk+M%2dno9srO0ATiX5}GHYy#y3aMUjnOJaEF}7k&Vp<2 zjTEP!dUO1Xll$x2i~P!&cAnhLY`|Ih;C%Ufrsk%E*d=G}vNz-0ZpSM4}}^RVlJG{@_duE2@_iH*StQyr$>9v=WUC7w=;yBSjN=v?myfc z82DnQMNI3&k0CDKpWdym-`ebVV~)7W$5(9u-ceIS#auRY^=GX6AZ7mJ7=M zH-GfFJ*YofaV_C8Ge^Tx#}#3T5)}nkXKYlJd1CqbA=eKt|C#F#HU3sGQwaJl$DsT3 zyuts8)&DNDyi3`|sT255TVlQPf{6^e0rkBXETvrjn-o~K}<+D=TN$?%sn;vm)l+VtI3(mEXipQX_Av`;qR5z2OCSJsOk!!@Vm{d}>>5pW+($ znPtiJdgbj}8;*skCVdeX`Q79XdwS<{3c7HtR(zjWKPyjMB@&Z7egH$C{-Zmj#g zjeXU2n-ym+c|E8+zCi8wjpqk=+LrO;cuOcx5PEZ{T z%wqQYhX2-i%e{Z^Q~V}!^x3XFuR}e5g(tTy7EUO-Rk%K)KAR=)a+kKR8=Ki_`->7! zoO)tTRGi4yGEmW!jP#ZGkfq)}=RezYlk9)TI?ilmIVW*YRNuC6RhXF4HL}KhE0c=a~6Eu(w=popFv)i zfiH2v8qMseFTOpI`|E|?#NXe;c;>ozp~E^whYIz8nH$)m&Pdr5Y!!P~z;4KXYFfly z&WX1Kll#>G=ct8$L4W0SD)3CuzFfQTebLAhs4vL`~JRidAIGPRL-WW@eauc6`A@} z1YSh0-NW$aceCTNqnu~1=yH8|ytr}yl-4?qi;17EcK%q+@FcjkeEwniWgj)-Pc-}% z`#s6&NB;dsQ#Ti^o_p}P+qcMfaxta`^k%Un&+nPSVIM z)9|dHsT>w7_gl}|T2QJ?R4pPk%Cb6Rap~QL-sy5hd>qN~Ph~TzGq3rUJ+BhqVt1qJ zW6`NyqV`Mo>YnCl`nJ|WeEDyN&1(D3d#{=7yL3tOX%`bc7ysM4COtXPn=JW7UW4bq zNn_5z(l>7JTf6e>tCY1*@2;6&X8Ak0Ebnh;4U5~ldfR6&{_DK?cxt2k))$T?>cQ+M zdaPdE6TZ*na3ovevsl`Xeg4uHufKOW`b+Lu67MPT@On1a-+61(r6d^Md#bOWvalj! z+mZPA22;bjLw$x*G{t|fIrTzegW+bA*}>~?*%x;UY&m_a#{Zn?wiCT=LEm%^$L;yo zs(tghGuI*iH49wpOXluq-=y`8XX7=w%ae@VH@|K1TQ%Wy-3~YDOA}%o4_8VA*cunq zorwAN^T)y;4ICxY7fh_3cJ}bOi$d&Tk9z0G7}`IIe%#%Y$kEhW`20rFd48>w9Y+m6 zA5P5BTYMstX;P@I>Pwc66T7mvN+*d&?d4JVGEfVo+lC(cC zCtzc;NXMcg9_0;nPv6*@U5c%JvuW<@hpvfpg;IRd0~}p451F-{abfv;?ZT?B(J37Y zcb>RzG%zhFzWpTpiB@tnOW6A9lhc*9A4xHtUott|+vbXAL*=PWQw_uSG8AjxW-jJ< zefZLbjk=q*JbblaL+33=0l#&ug7vvebq>zfPZgXQ;J?&Z^w)xgPZ#aHs`q9_sf)ph z>vzllF4vlUti0^ZH7n7a!gH5aTJv1L^^+s8x2(=t^O}s&0U>3Fxgxo-Uls?kb8)K# ztZYA7*0ve^4e*3GwE zQg6bxD|DM^Dz9vKL4DpQ*`H^HZ%qkwt0`PL^-1AQtwJ-I6l?i5uih=*JmE}An>Jth z5VH5BOW>WmrkQpDmplEhY$!fZWvcRUb6;TG{0M`&DoW42TrMwvv4w?ifttdO$%nR` zUEkF+F(5Wk{i%S!hSbfoIR$5_9+aN3ai{G1*+R|ry&3XFUVE5(#NS)5WDxyZ;(04N zq`x8Tiiq{&hH2h*t0p!TcS*I$$;9oto3>V3`AX2ili%6f?QIhl`MvYpng7#my;ob>OK(Q+P%hOEx_d44*%MCrq_WGuANb4YPO30iebwih z+9an*Jmss)S%POSlwqmeb7XSlqa&#tUt`KLSUy`y%J{qXz0&<&FIIV7^!p3rCHYMS zCmh%&7T;x!D?TYHz3CO>Posz(F{(VX)bCv2=5X|tEt)i$dGYCMw>f)HXc{#6eCvzN z%l&lDQ>8$1$G(Rbnex0-n!l>T{Oealm~Q>;FRh2x8FPhB6!eJiiLQ8}|$ zH+ap&U%VBrZx!v0I_`J-pY+OD{uza(S5s==FfGg)n@L9baARzlP_gsaAn!K-2R+8?~<9#N)D!sAJw@v zZM&1h@9E86oz+p!`@6B!KT30{`qVJ1q9B78o8p$|KEG6-lwisCY&J_;l+hFCA2K~R zlZyYf7X>;tD=oma@6w(VOvff<5P4Pr=_ePbuwoEwk~ubzx%3rLZEErRR+DMXu~z z9_8Y>Tsf(8XOh{aP3avK+%;uSe`vF@PdtBgtK}9iwnCNuGRKQ7x2ozB7wmtt+UUNY z?c|q1H_MW8Yqm^F{m33W@te~9bCzC79>>?P%L=lc<7=0QpRS?$qk(l!zWk0C1|^58 za#lTP`RcN@ylkp^rC(D;>BBfBf74=t>QgiHlOvw^uT|0OJiq+u%ISO>-}ZW__W%6n zSGn=xV#5dp*3*@D+G~#SEptC(QLmx?l(o)aJEQNmnJ-*VrM*h2;A}Hy(fd?wlPUh9 z_!s}G^!u(4BtBYMJ~Y^4nq6~4e*ZCvd9$~6Z|QZ+XEXVAs8Mwv`<%Kv$F61+U(VY8 z#Wv*;YyWP&A9iM&CMNUF{m@>W@x$(0ch_kCuYH--DPQ~kTG#xEpo11H`* ztoC!pLz_njwsFUth|Q5K7u&HQnb~ai-CGwTUDtfvKHEYe^}w~GE2hk3JFuMl%av|B zVWlTW6Wk}ua;Gb$gvP3QezJaCSSYPhw&k__e8tv!aiQc>;yPs>iAB%YeqZQ)v_4)Z zZ80BDDWm%AP@e@p)BQh(7-ejE%5nE?L+lKX?I|6{exLZO*CiMCc-!G8dIHndo5na> zwV#jqd^BU(DZ6s-@WARsA^RZKnGc!y3e`*umM@W#llSX;$-GT3=fTv^?pu<71m`VO zar`Xo&c$%RzdnlZopr3zjILklo-;2tDVRvhhfch6MR*ZU^l9gHvv*D5Jn}SoW3I-` z6;Il7oXix9AG;sF>HFBD%7=CSge2!R8-zF~D{eh-y?I~2E#p%L`9|lwO*Figt8?WP z@yMx7=HFVtlA71qbLPc1Jq?Qug|=_f_)eVsplIEYwos#M{@3gE_PZ|RD=t*#{I4== zpQO#xfXlYCd*tSOZ{}dy%zA9s`3-IUCm61ISIjuF>H4nKKPFFiDUv)nL0h>^{YOmo z+dL+P&O@vgKOX*hbnU^sLkdy#<~5vsfBR%)nAC4QlM2fIGs(oU^!-YMXLGZwf34^G z&;D&)Mmbk%UP^IEQEFl?SL*cKuZ--|*?Sm8nT-uBCnvIK)UTDg+4p4I$J+gi5?MB| z%?MQK5?abq7jgf!!p6sv#~b$6UD#%F`P8e7*Ec>|+0WnQA-neG$L5O;lXa$@NZJ@7 zE-53&cktnAam7FE?H?96Jw2XS6|nJ}@KV0x&yKFwuMwW1VC_-3Iqy+<%hHvrbQL}X z%Siuwelh>e2lMWa_Is;8)?e4}wbOVz`$|ju?%&*6@4613zxVw9{y(4Iy_&u|KaR!e zi+H*GqTlyFY@TuZQ)SZ>yOg?VD_C9{zDhWBfM4nG5}Do4YUf=&zY~7@6{nxKJE-SV!{ARrNdVR{h*rf(+3yw*1NxH-*n?7S@?ThC56W()39ov^B z|73Eo-Km)V<(pEU{OS3fxM!2@sYATIulL=Iws^xWP$JB#xaPN7OE3GYs1zj+t;5Ai z>H+uc;~z2A+wV@>aJMnZ>e4+1r*pOnXVlqj!X9%zZ=0MbrtZvoil4WGYvKp}gAwy& zEfO5XqI-6o;f^!y`DZ;T^4r~pL(JB{S3TXiYu^SDVSUDsl1p}>P7fE~)mt%r|HdcN zj!(S!CQsnumeeg0H`5X{HwQAxhYGzvQ90?B^SR#W2T!l-=TE4AU=hM$Ja5ufwe}YChnfu;hgQp&!gXoV6EB&AHcX%sR#R{qUMT!*kBsY*IyfVb582?ev*@=9l$t zkykhPLw=pHn|b5yTNyQj=5Vs&T&{vzrOPOqt?}V z8#d`TZuZsmdgi7oS)eo3)}y}S*FqV0k;$j0x|}-S^kinMN~5r+UC+etZLBTQYYr_i zGFc(hHZl7Bx<@Qqu0GjN^fKeqc9mRa^GKs7AN1U!-}=bxEV`zaviHx7HU9nACa%6; z|Mk%a;|0qUcJRmYyRUtye>fxcLxSxR)dwERuE*9be_7>i+#&c`w9JNY@z#v;lKKNi z`Go>ioAfzao_d*QYP9G~^X2G}WRr8gZ@lG?@0Ofw_FG*nb+>lvy;JCJPu{!6b%uj* zjgD|_?4qTQ_}8pFEa`qp_}Fiur7K@oHq6iam{WJWH&Qd@b74BimwV-xg_rei?F!Tu zY*4$%yL9S2?@E(X*Dn^cd#BGl`h$h-3YS^En7^A)MS0$ z9`1NGjlXQl&yDvqu5W6KydA^G&pGu*z>3d1o6fB}>ss*Xq3w&Vjp~WsZ|!>C91{@K z{T^{MwxZs>M)m2`TfG2hexh5$@;ySlh_|>ctfe2v2lLwcjoP<@B95UQApmA{E|7z zUYp_A7Qe#*ohujX|0vNvwygQ$RpBD>^YUf2|9)=YUfn%wdHwB=yIoT2Id6CQ8C1ky z-~2XAQir$Yd1H%v>MT{>gO75U)bEFsx<>z+R~_+j-9+(KqPMrrnd_1h`Z(a)CFMm- zMy*DD%}?(*`W!tqY2}Ucs~%aD?bT`cCR_cW!|r8Sr+>FyS(<3Tjq_DR8oeJwN2WEbq|%n@4<{&wTMuAnsglQ!qhxBQYk zQj>X&cK^TZwXFY^)$idPvDv^bKxWor|hhS zeuchjAK4W;NQ>>r!&6y^9IA$evyg9<=kguE;J8Mg8fS72GPtlyL z%=?o+dOKgMiipeF8?r|HOH|{mR0UOkzZZt51vGi@rf;qJ5H@S-)d25HeU-`rT^Gu3 zF!UTLbz32DlJ!dU6Q&ZubxFm^`-M5{*DRJNHKa?Cr=WGMs% zy{~UiWQ<)O{N~^(Nw(BeOQU4mayF{0XWISwO7!J`T^dt%yX<$Yh&s^LuwJZMD7`~` z^_`M}Nk{H!e@uV)S?>GC*rVrKiw-^w_{PAT-eIp>EMBYoB2FWd$Kv$kmTAca9`Xfm z&4o66_!uhn=JyXRX72-L!T}dDlcsY<=ZN@jyH=iA|KL>XzGg8_v&GZj2pXKeQ}M<| zfz6uJBt$!S^VXJA7ZVG$*bsV>dRNOxt<8qU+=z+-Hdh9 z665kEhRUbo9@MX$@Y1J!)6KoFZQJ(D4A8r(GQ=c3zbQ=a$EtWX7N7Z5jfP_sTx8Hs5!8?}o#g zftQv>`-Hf7@4viE=)~V6EekZ(WW2l|l;?5$-s*|fTAp&dbeNVNQ>qtVdz(cudE>JK zj63g6F^gEs=BZv3B`lM!Hg9{#r=3^$1xwwnMKcS{%C4EWAF;S%rE)ArE$#dYwa7r< zpq&gZ)53VAwog6pU_3vf+p+m5tJb6GCwGOnB~{$AFR#4l(yjL3>Lwl4Ig5NAm2Q}R zhBNrZBpDrs<=cdAJ{JsFU$)kup4Xs#<9WpcDwl+3bFuB{6`8&vYeRC;HU7*OpB~L( zK6Uhqke=G>hmZ1$9{UqlU8rIL5?x(ywbfn=?OPdEa_&4&%#MyyyEpYy zmxh!rEc328pVQTJ#D9@5&%Q64Jx=^;(@~nc>LBN|v+B-QclkAJ^gUrSwXOc@oY$Ks zKAzIO@`^+1WN(3mp_@E&r|=vR?wnC;K1oFAO~|_ft20XSB@>?BXUM8-=e?o<~ghre)oBv_8N^JYzsG=bJSL@(@lRGla~uCr(nk z+EqMV=)<9t)9Y7o2+T54clTahxPan?g;Mm5!K#jvMH|M6r1+Z zJ??c&Y#%PG`0|=XU|Zy&oOepyN2472k8}yfsW<9vbf1`hnsw!i`X|O##d=3~Smgvt z{nqlDXPtA)eB$YSlmBms;N6^8cu6H(Hl?C@Q`*G?PGMrfy4UsyCBJ*4950$xt@?73 zUGvr{57IAGdHO%B{kZhRk~ zMlkpEV2RQFmYc2Z>lK~qxem*^Nj{Z+d+E@kXIn2#QkL<)q-MDEHG>y>+N$h4 z-FI1$*~jkv-|_riNYs?VSJ6}aathbDROaS{F;A~KI^&kM8_ULTOS#W#@AO=a(63*Nd%%I8ZL z_qID1YJ}OObR=f=+~_~s_Cn46oxmK1G?9OjEbZP+&Qt#>c3nOZ9`#nZ=AGPsk*5Ef z%)91iZ1??M%_qJ#V{^)9kwf>(-7kE0&D!D2T>pNPg3TYnb$Le;7RNjYN!`b_S=4<0 z++&|j{^kC@+r@X`$g!2#r~mQGS$~OPPX6~|Iv6SURb)#$DF z?n%$~4rK%NhfN#~=PoWQ+!0YYLtL#%-|>lcpFx6zAM?rf6tP1`;v%Hp-`H>8f0tQJ z;?w8OLuW74udzAUxPJl%yVcX%ENAv_jk+^W+4ew`Yn4Bnnsj`iiI|u!^#IG3e{*wENUx%J8b#a^S zGGD9a+@{(07_VJmb7hMODqz#_W#Qd-!ZAZ#K>D$3TH##bo9RhAToqR239tJ7eNI95 znVf6vzb&VmooIcf=G?1b{l5NGw*y}r*ZXVA{lYa9ADX9!JlpVjq4_7@+I`jc6U|Et z`U_PQOLFD?6U~_SK01?aRae5u_|AUcgHurf0*~Gq{a!WkL-V{7M~dEue~S1L!T0fV zm7LjnOP6I2+1g@lzHr@<=0CaWQ9&P{a|uJs{X!O*YiG{Omqlzi_h-cuB|nvbdRyL@ z-!C`6-*M>u-vvhL77H&<|Dm+{0bB2+8;>W($gFYk6PWUU>FtA}M(ICU-b-q|)VcYC zyE->>eaPp`8@``zx+KSWu$Vn5Ddbl)vCs6f^|Uu?-96KF`kOhTYrD2-n!Z@aGT-c$ zj+xZwCGV7+PxdnKFm~m2&hXuCnt&kg6AKXKH2J<6iTJU{(Y|4!dm3Z7GLR2cbs z>|Qtdh0@`P4kCf2TV2#T_f#L^iYvPxW_nxX$Y$p!cmDWa?GOGrQC6%ZrgYuY=qFQ` zMQ?94DSlP2+Pd^k*`2pVS|^pho>msQ$}rnEy5nqC%`Jgw-dmFeUKlLU(V6!8aLa`2 zjuOvz`{$mJHs8Ejs@2*r?u|NItXX_|)l=}jPZAVV* z7JPGN&b!NBer0|9Bxor8oHJ2d|HEAVwB+M_@vjwna_3GH52`=5()mrY^-6vD!a()o zlh52W_`2BQj*b4|+u~Oyp8OM}VD=#A&hud3_tC;ONekU~a=zGjK2z9x+u7aBOLCra zEPg9ovq^4a=^KH}$;aH<`?&X=a+vZolPd{44h-TfN@2H>|41Pp~O!hUQ++i03`teLDBd0YTw6(n+&dX0OdX zbY3HKTg~h>cYXJsef;oJPFh~Eu#QRR{qB}-LH6&P3eQhgo!@SA*R+b8@4Q#HWzXC8 zJz2S4&z9f59m#xl`aCbkCyj=E=M?TtIJ{s|?v_vWVe==vLK+g8p7WKFWBca0jJG+M z%}gP?N$Rb$`|p@dy8l;Oid*JF^X$MMlU!sAs`>79_34rl%as zDLWo6AE&zWROrTu^JiCz?_V6*H%pHpi_&N{QYY7^_{mRra!T} zKKu4>ZmqoUv*&NC|MhzN`uz3(>V8iT_v-lf`R(%;|Kxv&r|tXl+odir|88GBd&`B}|JR(Vy=u5&@ALZ)1JnLSl)lZCZHteu z-2L`cd-By7$^EjY7UoIIRn_0#>Rer#{ORpFTZ0$>e>^vP@GCOh*ShSqQ2C9@D1i#Qxe1{&t|*>vv^3xFP|3IQu=>JN#-U={x@)6n zG+^r{{D8~@qP{)`Lt)`sLrTRnRi~IWx=Y~lj~Q{ z_7T5rZuIqd`TKiumD~3|(|gNkFR(1;?u)eo8&i1d8)^<-lzWlDv-VA=A){fg{hE&p zSC=&jJiA%*dtO-0A-`>Fzw@{}OrF1yalz`ow*iI)cSPQtT-vv^i&^PvP4qhf&E#pR z|90n=U6oInIxq3*!hA`gPI308ijB50FLM_t)lV`A7CQZ9*7GZy6!a(MuJ-?QHgCnZ zO{>d#4R?o`>~zzbb4zaZ!aLKQPwt(Tq3!Xf;q6A7JEt4|aINpMoN7?eb)GrsrNh%% zw*Gp*e`IHvJPnNc`mtn%w&e3%(cAwv+RA_95e`bZy6j)UG=1^c=Z{R>VCxmMNnZAr zb>6?PyTiSw)w3ukuDzROZk#fEKEtbRzgOKa-73TRXvb~4zIIMKX}N61$!rD_9K|B< z@!z%dIF{S_)!@MK!+Dc$&U$?77V|_q_Q~vG{^CAwQv3xjpW4W{$9{E)W!}Aoi|lwq z`3-zeH{|{^m=!uVz4P-;HSf?QBcoOJe`9mM8F0*+eB)5Q-K8t_$`T)x0@?1KO8m^H z^Mgw$TX^lAaCfH5pIw&!V`|^5`J>~D`GbV;G=Z(|51K#Wx&#k)i^2qwrb9Q{Ge)6|9=ign9IJ+nNeXkX(EmPAB*>`e^cg;Lk zv9c1ioj=N?qsx-ECke}(yXh_VEww1#tS|GSqxs)(_fJZn>uvj%mMbSN`RTU%h*kXu z8<{=JXZjzxn3}L-i|68oJI^#(p0si^?!21p(B~{Pfmy`){%PUG2Av*zCSGZn^S<}2 z!VL%E$~FccrCHmgFBCsljA_(dzDYVOrt9(Jm`92dmQ(IJA6-z%qNI`a?Y!>yU&<~I z_lUE)v0iIg`{2`~W7Rx!iZX1bG5g<|%4@E5tp48#+fG-O*CMYjb^ZP|y{f)#>bz@8 z4xP){_~M;X-ghZ=J#Op~Nz&@NAH(?h)#1kHJ>1F5SD)IqUPEz*bx1Xv($gQj={gJ< z3$GS#&iW?cC*JU@n&(cY9NT>U*h&$pM+w`XOZKa-`*1omLZVOI-)`FcEI;?YY-`zF zn_l*p-rro`SJC=Vxp3tIWfGEu5|V$#!vSQYedoW7%J#k$1yq>%mf z+lIRtEf(Y@+}B*QV&o0;230-CGX(zl2!j*uf3dHh?A*l_Hy&1S*fzLsnS5}WVLVJd#XvcOF4?N)#F>Ru+s z(5i60s}BQ$Z?(r?KU@9N?V5L?EmKJFFSY>7(^GCAs`~oj#O9RwLeCDnY*S+JxH^fg zt$CJRh|@X#{;!V9w!GBoutUvkUf(mno%uh|U}JTyz?4i?lmy?orK zvPvp=|F4Cd@#m&D2)D{~1{bHNZZ`Ngk(cY7%@pQ2*B2|SXFbF9Yy$7(*NiovjOr;Z@Vm$WjV5ktwQ>Zqh*i0+^bLT6hZ|(uNjM_>3ICx!sbMd)Z>u>x*2!lBlb<5Ti>>4=gP8B|8qOvc+8%mFJLHg?yUXKkEXMP zmi~-RP00S+X(K8nvTdf;l|2c!{&um3)%d))vT9}7)PnD44+Q_3bw+86#}2KKtqcdc zZrU2okWIDbc{`Eui2l;$KZP1KY7=KCmf3e`?px-2|4f;#n7&5sKHZzVTOX-Mn#Rao zvFM*uuk$VKbz&`d&L#d8@kZ4pJCv2|mgSyTS5Lp*IOE*mq@||U^rnj}nm+$rc(Lrt`aLg&xlU3dBrxzW9M_nLyHbu-RkCIZu!b6we-vC{yPT_u$iz&GH*QfT8b~# zeU`|J1%CXZa5UW;y^S{0ZZOZEb|HwiC}BvH5KJoc$ZSf zQ7Bd@lh*5KQ?|;V`9(o%ncQ=M=5>WmT5N3U3(JpR)F^WNAd>Vbq2^0qJ-32Eg>uP8 zCEaH>uNlRT9TE{b9};`i_Q^6%bFMZ$OTRk_XL-5BCMu@xc)>oGJ*o2W2hF{Q;(SyW zcOKH7W3YXK#lqEgb6&5T^fBndwBNQ*dza=k|A@#~d1-;(hI4CKw>(5{{68NKD!fQ%T#5ZTn?M@T&<|T7upnE6LwIm zbXku>*vks5>g`Ga=5@#8Hce1jH2q%6l?9u#`yaTix+<*i*x4%ZaveM0`6eOp7`^cQ z-_IXszwc_UAL;c>uI^dc_oytkpKt684NInKO zZd(1$)6sKnTKWt$Sb`pucuqa{`AAx1#JAs~o3?m;x}w7&oXJpkNiw2=DPfrg@64FC zn?ZJUPU(E@ht01pFEaPYWIVB*bIFC`yzRWpUbY!++tz5pn$515u5ozjvWF}p?8hFv zdCEJzQk<8#ZOO?yOB8~G%Uq4+QVsnqH-23wq>~g_zrS+sugI4sQ@z$)DO(@3>Tp7> zc#OD)3e&umyVEisZSGvJtu;BrKI@EpxaqNIY0qPp>gA>P_iWqT%`jDBdi%`Z^=tIQ zmT-Ta^RVM;F>j;ir<^$--fLeul=#U?&v?DU#?JG1out!4GG;HyEb&};W!I@?kK;m75tUiWsg)a4~JN*3@5 z#&`Jt{#C!)qNKOY@3eP%L*Ox{{e`K_SAUq*n0!y;I2hf!qT2D`1-^=mi7npU@?6n^ zwI8{fv|SclS@ucs@(GOytqMNzX}jzlx7m5jG_{c9|F?9td{)uoka~V?&9-?r7&gp$ z>+aoZw)<~!h`z3v7@MNg-d{dD>do32{2kJh_Eem!aR_KEFXf2dyZ&_S zqL7+Dx~%X(4g7wst~^6L;7Yx*GDkY*@7C z@hV3%*2@y5Wxu^EMSk}5a&C>ifq3e<6=|auB zRclY4W<34Z_|u^xrGTCZe~Ukz+B9+L_qRVf*gS6@@8)LS%6@)#K}UAh6Jc}C&n_Z1 zjCqSv-p&(WuXpTc#UVxCT}Ky7tXj8npG8|o&ZXxe{_Qv01=dWiTv4$ys@%oOU%38t zm;N{9{YRC~`Mlb{X3YcP)n~X*tvCL>>C@^?fwR^9TEAWzZBdt7*P+jRe8#JI#r-@H z7J5Eq##eJ*>TgdvDC+m|?p^zXpVu2*QHkrXE7&f^)3~bN>34X52FJ;*FP?3mbjVp@ zn(9pd=jur-SI+qCKPzg<>shju39qZoKI_2k;4~{JSxlq@YEynKTyvsqkielgXvzVTZ54-%OILoS= zV`E9O==I{n{Fr9_OB$-Je){WoOU-lX6xK9WaX9cGsqp*>%N^&p^FQA-St{`8c5AzH z_iFd?xYXFO)hh)FwBG-)qHv`WtHI$H=a<#~2+9%hs5$*)d%M``SpFULQ}gR9o>Z@? zaho5n(KubaO)mbcsRXl$40{Eq_1`@Yv^^I#{kfu7^WaqDv8c5V6`Edc3tPnQ{Pp)| z$91!mzM5K15-wTApWbDl5V|S22ZowidtXF&-{DdDeY2#VCEn}XQZt>e;t~04 zKkz=7w=-IH^@~Sqrg-n(xaQnbt9uU8LD?1`elB`a|LWLp{m#h_(~j?2`TOq7e9KP} zEw;`o`$CdUXFkrZDU2~KQFLK7)Qt)G`DUYmU4Y#@zN-}yY%BdyA7KBdmhtm(<#S=ab}?!{P5+?{0mz4@gE;OIsfyhb!>g5 z;N!>4YxZGMw)AQX^(jx2F9!NN?D~V=Y9P}l8=8Lc*GFw|<8xLqN&fo)^!q zw}>zEuDLVYG(DM1`f28k*|xJ3JWkr5J}oUhefNgbdYy=Qj+U%Ex(Sb5=_4%xzsQ9i~uC)wI2 zvBXsP-Y&kpL~?^c_&h!1!}VJa8Gje!mU_X(Fa7kD>GMr9R=@etz#6u9-rc=3m)^MI zv%Zk&ZqvnNUDYaMTYtmpropLh!X5HG^~K8l;ZN$$orsUuG?ZirSQ3=?x97r<;~y;2 zDjlxHWeQy@DV!&`=}v)`^tnjRsVOTyaNl|47ILa_-jtTre23B)r~X-djPr|jz0a-~ zquHM=dMoE_+U4&dzVoif`yYia?>Yoj&kDp8ZG57ehgz?$C53)z<>{fS`3lvF6?65w(P4}{bVg0fGloy|>w%GHytC*kP zA2rK0)l2`&Ch@zwc-Jpkv~^+myVZ3cd$LS@MOZ78-+!I@hg0RxzWilN*zP~Ss=QqP zMMA_BY3*9Y`ycM~#ItDmn%`V=$ajhJ4~>UWpH?KwML)d%OC#3d#mmVt-Aoeu|0Lh~ z&(1mX$G_>IO*l-JCetrwF$yyqnVUd2;!JuBT6N=;|1iXj=iuy0>EpY%J??s2vFwzl zJimmXvZ41xqyD*bpFF=T?h&x4?0RSLI$5S(whI|wcr9zJ6p56gAD_0O+vFZ;Q6^S^Zd_5Z%8 z)pwgGzDciKX2$O?9%3_P_WV8P_wTR%T=4ny;rMt~r!TMD`7i!0|8YL4?#=H)ro$D% zKU}4jdBlt587=)|66AAhc9wnFvoz_Yt;-+T-_H@AT3MetyY9uYy8&By`M3K2k>zWu zzO;L`!RLGTT6U(hwVCE_KKxMU!@SiG1MX_9fB3Gy{`>d)hUfPG{OoHTB35qk;^4Zt zuXk?61~@1;#7=YB#u-B_M+G7)+s$_QXx59#x3cCCK#MeGL#Q&*g^0Sre5Am%3xjeqfm$Uf* zqrKLrv&IYM%rhUR3!bXnyOVulRHX9R#+FC__p&WW-{iH%E z7Tu7KYG;M)J&YzcOrPw?H&2r>p{S$*rqk-Itm~$`uDj$<`q5ny}#oU{-eqZL88kY0_#^jS+ zK^v!BsCf0|p9b4B#UuX&c^(Q%_t%?8|H!^zQD(ID>HFJk1yM&T(++%Ice`cPOUzZ{Ct2@HnW`kvWdEg%>1F2KSCbgsYd5K9UYw-;^rhP|t;oX4TcYKKW#4p^ zBHGjq2Q^a}UQyT5r1U^8LyOlk!@(U5DB(?Rb*?@qps5WAm9searbLJn!n@nizc6 zkAGQXJx51tjKsp*e3{#o`FY>obMU{Wu&k}3uJ>O^WdobE{k61N$1mUFyZdop)`_>w z37TdHHd}<b7r80Yu z%xC}2(mU2#e=wQ*E^f!`sOfc<+1JbNR!qt~U9jCfky)@=;~RsZ+~O(A?w3xTvm_-# zKif7_(er(q;JWrQe%rH23Kw-)C%7C`zo{;I?px=NIqMPvs#ALFlTKO5Da_M)n&EkD zn|OlA@yCLTd0dS8Su9ly12s0Qa57A2kd4}GAsFk+Us&b7scl=ucH`xa&3@bqolg5T z2Tof$UnOFO-`rDQuYJ{h-S|XKb4FL)1F_|*H>boenRoAf;tp}|_MT%OMctG?efnVg zR=C=IvGlIcIhm6uUoqa3a=8A(E6;DmVNpw*HD^yZ+1%uE=76M;&z|U=Y1v^#Cfaiz zT*>*=>2qnNPP*@+C+)J%2EWtZl(41F`>tcK?(ClFn??HG&g^J;(-gttB*?D)tX5M` zw($&uTEisMfZ&s->|DOAnG!6=e!o2V?hL=pbC2t6NZlc()hTAUBRgl&YWADI>i^uX zp19y7U&n;Td>1T%)vpy+wtF3Y*rZ)|;(* zFRqE4WDqOlJUBh((B4}!n7g(H2{9Uv>x;I9CeKk@3;6|Hp z)zmw#DtXHs-j~|+ibRNPoFG`)d-1MK%(az0m*2?xZQ#0zWWtZjC?k@zSr_ z+YGIS5)O5M@icVy&@#{nd66J8gG=CZG~Yds zgv2{mUEe&+tXWdmew&dQ;^4NY_$&Vg{$0se8_e8!4H}o!OEG8%$$I(7uUabLC_nwV zfZ3dmg;tXj&MOHd?co<;+^tbFb;JF5;THYdE4!X>XhdDP(Rf_Is8IT*2zx}Nv_y~B zl7o4hEsrazaYffua(SnOF`D#W_P~WGk}Fv}@$I(iOt1<|=R@>s~_4I}NmCnY%U(+97bdcKeSWo!h zrRYmXULG%=IBRbHqZ9nUTmy>lsqUN>B%`s_MepoxfyKrqC#MwXY1L-FORvoGE^pti zZMl-`k431MtJvh#8w_ns>P(uSUAz9QReJsX;(04)?^S5jxY!uL>Q<50h2F^u61DH>WBlp5(Ic*{u3{U#9jF1s|jL^6|fK zcEzKP{dT}>aHLnoAXWKr}`-^Cc_@(+>G{6&>V>B(?zmk!y0v3hgoxaQ{vo}*Z=dt>($x(WIvyTcUP?&(l579Ywd{K#4NV${o7;yMla8t=!mSn6jF0CxUe#DUSTJfqhNhP?1j5kON2PS z=+<`pj`_+y^ZuvnRTFbQDRH>kPV0T~bK}Id5-o;)x-))odGyvFkD3%Ft=uw&ZR+zU zoAy0hwBDpej;~#7;f+1^SFf%+RFJsVIFbtz2QQ)IVvQg_s*P2$Tg{hWH` z!rnz5n6 zJVRReK7UR+ByG9J@>V*HE~{(qb#K6LL}%zMjO`bYa|W##$< zhVO3JT9>Tbv%at9kWjBlrqJvc6a=+({K44E_`)3kg0 zW}S^ZtiY#Y{QC6fR8j6<-K%VxK4tbz+1M&@@1^HH=Eb+>-aL0TbZ19=!uDmqN|)Tq zkSW@0J0)n2^R^`h;;TI*YnIvV=Sa_-C@LN0R4=0Ue93ji30${qC*JZ?ikj`SOhjMg zyYI5v@Pg+|0w)cbJ7YhHZtB?BSv#@W&GY-mme4s%npS^9yE25%G{^Q4*%E2I@DyF zs%Czhu8?%P{`n=zLw8n%i}>zmRLsrzKG#lGV-|bJO}@)otNNSr_q`Le6MoFOT_QR! z@-e5Z37f^WE}e{jJ5s$9Yc{Vwen}_K$a?y|C(Y~k&S_nC@zk25)-F=9Y5R6;`a9J( zOS}4{jNzK7|CV~^nXGKD?zrht)Zgd3U*XY$POXbEN7sEcjk;a`XJ*&UjVfCs3nJH@ zZ<=|4=d{wdbdNLbt1f=lpXefFG<$oRcxATO8rwZ5Zv74{7jl$Tep;L?+-^F5Lr35T zRh}lMx})ANt_vnTSm0jBYc@~Yrv9w#^FrPrZy)W*uM3Vp%c)!X`plOgfg{38HC%W+O=>?>HLuO^_!M$ zHGcfXEv_#ua^@`0@;{7Hd)H;}ew~)LE9QjK2{&u|^p1^nXD4d0u9rFKHCZWg7Td17 zWg%rvoUe2?P5t5`Y(AOcN#3b5DzT?`Oe&r=d9CHF?xS08ztL4*`0zx9%jZjZYdc%A zv--u_ug=RkVBvF4_28)~7SAnyZ{VC0bV6ZfeUtgM-}heCM}Cc%ETiZ->A1s) zcSbbRp(;!=O1Qsg$(uin54{*wbc)W)O=J#hxo|Rdf_u(_u%hcm@`i7WavCn| zp0ww~DW2lemO$O3J8k{_ieAZRCb#5R?P~7wyU)2a^V_FDarIlzkKeQO>`RmBE00O` zP?r*P7cY%y>TEoyW}D`EFsJnKh8Z(i%4at!RyLpHwtK5kueRSl;AXejf)D)Z3nf=+ zba%aZ-@Q{cI`)n+)5m!)t3L*`1njbp4E&tV_dZ-_bM)Vh*AB<2?^BwV6cDy4L0Vn(F=v z+Bb@y>Pcdrof>$~zP|o@XyAcUE4|)sIq*)_vSXz@lkTRHIcsv}{VrT%7M-pcy?asl zU+;4+KQ6!g6D%>gmMQsBzkyo(r=xqHtz^nL+T;CODB|e04J}_yb;* zjyK-gvD9+HgmW*pzp*-G@gY=hp6KKo^|c3H%4z9!++?@PiH$m7^X-j->bBGyGY;v? znDVNtYza7h-?M$=<9{+8zw&}q_O~$^SYNq&V`jA3j;U|bwm(l#z9S@YgJbVj-qeme zt+)9fUSagGaCxiX@=1B;28;jlhX0t25?VSw zzhfp;_kI0~?HLV{u1cDLhmz#y96p)%;D|K;1cl?x%c3u@-4Q*@BkT6&{dKRETvwWI zYvyIkn0Rz`Mab1~SHDd+^Cz7(KOgkN*X*U+Qmu2Bk`@~YKljSrwmiMwt~)nra*^`< z*_C3q19hD}A9HxdB;5aC{k87#uKk?9{y(b!cJsOZnwuKJw+}4?t*FtX zzenF*eZO6A@7?lpeZKvX@AVJPUyZ4=KR3Z>wvk@(RAu|H+?-iQI=7uUReL@D?u$(w zephENyPLeLM@#MPtKa)>&42aHOY~wyukZDupW*gi!p$ zGP9Oio7CrTY`bvW`RX~gg@@i%*j-J&pR@G;RK`cEXWvn|xZh1rg75Cn9gkm?8%%0t zOmIxp%)4Zwx4CC|_uUn*>$2moyOiIqURE!=MCiQWN*j0Sy^`xD z2D$9tQ};J3*KBv+b&;JHtg?1b6t4AslOZhl-XU{Ii)CX|*N^I!NMYjumFlHiZwsG2 zEqwXJ%1-a(XNUh^xVGa`q{)@r>+XjBRZinwYyYl<*E`W|-KD$5lKRF$s~+!rJ^N$9 zBb~{2`vhF~mF|8kFYgwwSKn;6V{%)yZBgRwt+%E8+5#g>Ub|ae4b}F%Zmr9(*-$nz zW!LhX_tyA+mo>OOci~P?uQX=i_FcCewY`k>`{&#Y)6L~r*1n5x_EOHgm!VR7ADwYN z(J0;U&Ap|~b4PhZ?d`cgOLi6(7JiKW_}sCNzr4LEDfCM%?;Cw-hSUk??#I=q?ody+ z@OkKYy7Haq++LC2?;N$x9bdIvdD^2p4olnxvurkaxt8znvC>_%?5Wr7UGm!VU$*@H zzGI~aqurA2xvEoFrKvktohn-1@yhDx=4|67>9qulO>$(@%iQ;NMG@jMX?oYcCm zdZOwy;kPerInJHzK6N8p<*DD4RgWKE;Hjv8*V9?IORGd>5{t2{l$D&0Z||3VQv{~n z`?gGuEl|d{^oiS^DG~Q_=GK(Ol&sjGrElZ;^0~gz?uU_@A@2;_Qy(jd-ko>+6_*UAf*=ziCyxnkXf165ocha1m}UeH=*k$K1@|FiP+!`sT78E>VY9QtRey-oxzcknqef`PdA@Ru!xrl$6Xx7bUDn&a&-y+8q={Wi3=IqOw#VL| zFQ1U<9u*#wJK?ZTx}x%XDXaZUe+qnA`>tcD&qo8vtev}3xujDjy;*giH)hXK#`JBQ zpE0pGT@rq+t5RmMwOluS&Q+GHon<_p^>zIl?(X79(Gp?IP|o7zK4P%uZ1%dq1=>?A zrn=Z$?pfw7DtJc!@(T|2(-VIf+sspocdlH`>?R``=frh>({3d-o~(`A+FM>+P7d~u z>+PyIdm~n$tHQ}kpwDFMx})o|RZUL`s569C$9$e@xmiQR>VQkLz#i{L$$x9I8 zry$|5R|XFXl#07bUr(DVJ?ZFGHm$WX0Z|iY&f8r3_xaA3Cug>LiMxwEG(8|uGTSQe zzyTqlC+yMRnm5MRTkP-0=y^gGAD{*{S^p(3f({-k# zq{u>@%N_?OXQc5tzrLBMH|KPG#r)ryN7om#C0gk-DT@Ab6spsz6x4Bz+f~3A%^}3m zJrO3wXL$37=E>K*Uvu4xVtn*F0$Qu zZxd&^%$XJ8iE@^^qrM$^@kU68saJ`8j>>!%=`RZPcRQP1BODemyy&*w`=%)2k>4w0 zCALG`tmRIwbzKz^*qd-XlIu+Ai)G4JOj*xMXxHC2ZRYvjjg&sWB+ zQG7R@@vNhTT5It)1ufz7W`p_}%th9Db?RJ#mreedZg$%2_4GwzlM2`FH7fVb>gTn# zD}*SXJvslV(nl?^+B3=00YXPqHTZY$Tx24A%iFjqbMs9chYV+iY~XBJ^$`DwG9)Zm?Ty*FFL2dJeOBXC2QV;#^NQp!LJWR z%!pajFs1xYsn;a7$dBPN(mJzd6s7;%l)bF8{?>sfB>|co(>xedwk~2#JYj$Cu*4VB zl?y~0r_B>pn&!Y_;J-2ChuR)(E6&G1t^78fdHYVjeoan{So7}(St@r#KX!GNEcKsz ztaWSsLVuI1R=sr&zTf&x+uNEO7`vHuzbhE;4w%jLQL557BF1{%IsQMXtX@GYIpW^R z$nISd$W`yNATV>U#fMH^gQyi=+gN!7FWLABebvk>wqicx7TqH`@m%CYqot2G>DULJ z+O+)W{bP|6bDO-nRd;_AIv~@P*%G3tQ+?SZQcTj+biocyR%yl0f3jP`&3CxoulYGC zdtXhTZOuthsh4am)yFlBz9zOWWP7f9Ej8xAoOExVbgSj{#%If9RQr^6RzAGoQOG%^ z;hEAO$w>Dk_2beL6!N?bS>CXR{@d`PcouJpmgd?Yhrh)gQ{?aaV{uW6sr#O+)cfm> z*9srVZgkeYkkOED$IL%WTb}qv>~`DX zaw+nW{==9TVnVi$Cs}<^-F#X@{?Z(_b3r?My%+tm^_ivrq)AU-dhspx^h4Xr8BAP%t|7@ka!R(}YGp5Nt?|T}>FSD@v=Q^#jvdImn?JMI|EV@*li3)A1|8Dqv-sk5> z1gg{-jW2oyI7IuM{aLrL#7^_f^NHPe7AS2Gcv=^luemxY^bhZg1IJjeaB1m&5u5kz zj?4O^)dqIE-raa|M1Osp!R~`gb>2ieFJJ7`?5pJ_TEV*U!lU3Nu}{w}S?wbh`Lz3o z!9*%*ZrKE@}*~d@%zDc<&=ffQ|*KLGuK7? zOznL4;rqo?cLi7E^ljUC#F6(K>jWotw>>YF^ggv(`)+h;FuQ8Vkjs2|Pn=rkNCDApnd1r-2ofZ1Sywzgk zX%*YVO4#@A3EDHq|vl+p6;PP z-$i%Lmk4bYiGL=`XuRY1p;cd3P7HqCrQrLZVcPs1GV)(uiWGdCqU2zD;J`W`&1VYb z{W98mlRkt=7IoPxo@>te!Pk1==&2HiOtsWs*T2mAH|3>Ak8fV7IKS8gfqB=QcqD3s zZ>n@@#(u8L`eIjKvXkM(6(iv*6L(ff3$$&tXMVIWA@$fgp-J^W-(?#<6&2PCpYu}A zk7H7kSk_V1piD9K%8!BbPq5U9ePi9nyW-m74Vx~^>@k_sJ?`;vFmzUAii`rNz9JkhmvPUlJ|rhMXBTChG~%O0o7tHCjC{gd|y z9)AD2s`?$Hjq}CFm-YR)DvKWFt^F{Su|1E`{GB!5T}7=je-?v#hcmP)4j#~&AEzPH z;+28eQrO#8iX3-e9`dg4iwKiv&_OEI0Ggj{1Uujq}|AM#hOr8(5NnRh0 z2xJ#s5EuGXz&UwOL4bG)V?5)#89YI!zWv(EQ*?f-O#l3nsoe)SFY*~~TrH^e#P!jm zT>(cP?q2nDyMctlxA(z8<@~2-_!`d8TlTj7RCB$Israj~P25w~{ManuuNG(aML*{E zGn3U?{bnj|n;wb!zg}i+{Z=t8?4#|4zg-1osX09pm)tB_K6~fv1AgzcTTh5x={kEZ zMuSu6AzRYCt#<60(`)(|{Mv(!ZN3Vm3i$sF`K)_neNp>~@ZO5&8lJm~dxCcFN&X{y z__T$E>;A3#>TmeeR{E=(iogH=A|Ugvd6ag!vC47BOOtgHdkgA9_H240zsDn1=fr2v z+yzR$XNwMf?D_DMJ6b0sfwL@>??U*Oz74rgYE;7XGR3=$w{M))b1dI;+Mbf)ke$7G zA6J}t)_LW+P{H)m3nz#Cdo9iJm{V+?uj<(Y3KH_Maemd3JX`DM{eOPuMCL3f$J<9{ zF<9`X3(m7YBdqt}gnZiZ&xZrOG6u^r|EO$PVRJHx zP5gAkPtCgE?b&L!{h_a3|4CjdEZi(rD!MOkyZ-98UiMMP)wJ!d^~=9lUA6mJ(sRQ% zVFf{#DwZlAIB@F8^vhh;LG_+7S>dfywuvqm5&qXFY0RV+acIrFvIkYUIn4ix6T_z~ z%g84bTFsrw&2}w>ZNk%&JL|2Mi5`FW{94wd{uGJO%c_eNN;ul>_S`WLU+tv!Q*xip zpBq=_N!tsk9_cvG-1I}K^4pr?Nr$dzeE1>IKlQ-`Zn?`RKiT{LW4|}Uj*lxg_LC*=!aIw%gd)On)EaqJCZ2s=a7 zpC_L`*E6TUv&S^2sBWw4(VtJBoc+@M-v9i$^!)St?G`q^&_DnE;$PW6Ta}MrKg?2S zdD3IqPPeKxYBQ$@AJ$lSsG`U(y;$)`N#vEUIp>!BEPW_%61s2I^wiktucy`r>8IWC z$?r;)2)wqV`~0~nvN{Jvj#e)?b#~tjO|#hWdeJzpKif0@cniil3C!ENeoA=Vuhpfk z=0&sa-}|NhKJAWQ_wNll=FO5Osy;8uy2|TX798Fyyw2D9fxFg9`Q-NGhEBIF$#G(< zSyuW8pJV&1aq5tUE#o_>#J@>lFFO@xW!f8YuMJ<;$ICJ*ToW z-P_MYOhGf^ekQDvWoSf}m5bB%jW&Jmosvg7>4S(8$x z__H-naPM5oy3uXhmfD?BHItW%v7Vfu5Z@nRk`%e+g$c`;{5g3LvP;EaSU2B$7tq_{)H~tSA{C-ghRHs3A3f%KXYS?mXf2l_Wn6y z_V*Q~9XcQGUDYB!y@K6}$?E2kl(Z>*u1=3;ep8buy&+f=`B3xM?f3EX4mhMKE#~*X z*SFU}$Lx}j=h=uH7M;ERIp4bb4O}8#YyQtF-JUtm-K0mdQER^IoEuT>KI}cGOk@;i z2rT{2ty7RSTlw4>(XNRcv%}VIzI|_t;*}d2m(R^$k=(8m#+rL|!m|@PT3hOi#NKf5 zO+6Bo-o4UjW2B5$s|r(wG>;TVjhH5Xa?t`C9Yb+-r`H}YgzIEH(v$1z7Cr8Csm*f? zED@7GAK#^xdPsBPn%g(ZH5-##Qs*9sJ-~P?Gh4m7x$D}7kMh?T50)Hw`ghriQ`g$v zA01qwG^JdqepcMP*?kB0eACc4(3~b)zab*Hee3F)!e|-QLq1X;e%hp6GICX6&e4=# zw6k5X#pc+|(~r-7QL>zvP@}WS+LdkZmMezl|8`~a-Sprr*l#~??wi*&8~g;kZtL6o zcX8~wr~BdfmX-^Cc7m39pSw~Y{H|Ki)S>9TUTm(Zzt7ah@KZ{)H(wr_axl1N1-o~Z zo@)KW2#xHcuiZ~QS(PJW^KgTxTF}2Z;n}>htVt6ZB2Ky9TOd@};rVY*oSxwpM~f|o z^#5%6aQ1L)RlcOJj96;R$#)_rBNi#0VM|*t{nMBG^n^JQ(;iM1n0$5yd)nzok~Y_m zDKB7%zMIO#t8e<5{QPC_i4%Vp3rc2wP0`z` z($oJ%{6xdyeVX0#)9z(3AD>WIGi$j^qrdoC4W6eByJv{3*HbH9zc}-`m(TlEUtQ}0 z?1Z@**dzH#5)`Q}eIajcK6a$03||DgcOk@s%5YxxfD_*)t%JExqjZ-r>% zsrw4KN6)9;-SYcueSg@|uep`6aR(IMs~*^!wc$<;OX@na)vdSdlnPECNG_cr@XUJx zhu_ri>aqEM3|XePE_rq@cGJquYZD$Td=OHu|GTPc@}vlHhQIzSqRd}Y^MyAZ;=P#m zVERsd3y07pQ+5Ht(i}j6fybCnDFLc%V>hz`Cg&O7fjUKWs`o_!h zCu9D*zmu&)mTJXUeTfXwe9Rj*{j1y83p*QaCx$Gnd-Ugh!P-aroaf}7{3&*Sp6WH$ z-ANsrw649}yu{Y{X2MU6zf*sopF6dF?cB=Jez#|$^J5=^${&-Uc8jcUec_T!gH+f;O?tYT@_pGFS75~IoPmMO{g_MQ1@vb zU&9~n8#e73v+GZ#9C`5Lo4PU^^LG{HM=$$|FCA8>-|~24kJBoj?!$+)HnV%a4h`bl z>i6?!ziRVc$9+4zPApIq>6xT3WmdD%isMES%%>eouH6vE-)3UT#ry`Mu@G@3_C;o_J!OhV1JP5xx~U zbMC23RL|j)G}4ihKQi~(BGIU zb3@W<6J6aSFSHKoGDl6_SYN%pzBT2TXpYKeyG@7L?f2CEJ$3)C$WPTHSKqx3Ja=Ka zLV}Oo4PBn!NA3UqKGT&sLx24t-<^AQ>x!o~U%TZSd3|% zq_)cXWZxdgYM<+KCV%5Of6FS6W5eN|?XGd{w~tm;itA|1I8|-WcSY=sWB!*<_c%i9 z*Y5tvJz=jZqvC-lDK{sFZDn=7KjZD{tkZKtbGKdJ{JM5&{sNV(Wr7jy2aSVWW(KU< z;hCty@OjSdJntf5h@?pH$zt;>M}^^xm7>R>>{2$h-^=+-KE>Dz16Vvi{%Vfw@ZBRVY zW~pEB@%J(g`Ba7Kx9jH|yM59*@aTapNiCA=SN*BF*_@@wb0jjge`m>tTf4Tt-*t3x z=nV^-k7rq%73&X2-d_Ky;QQg5+V#O}#IF904Hov9#eE<+%uo4)h1QkKq+dHe<+umC z=;!F(T^_%W?ZvwG)fMi>3$~xTfA$t1m++*e2MjVhre?kQa7W{6`o6a&Ka>x=n`avS z?{oXie81xFOY`>x+}m508GT;#YV~=c+SdBA!rf(pEvuLB`y7A$X}$g7UvIS%>;EOb zP6~f*a6D=6s@XLK`wZ63m!G~$THy7Mvyc9&l}iY2%-`~{RI7{WLhhN3D+JCvc-b^x zyQ!R$5x(xg-R-q|<##>3Wghcup_B&Qt6lN|D!0;QcSUS%=E*JkEyX8z?Vo^s zuT{>iIH__m&3O&lTfbE-d$aX-J0%{clNZhXP=Cf~xb zv~>QWix#EJjz9O<=bI*uPZc&SJoq)~=00)lC3pQZQGQRzPw#eO7{HUy6;IYr!=Q7o4)LYE|cd)bnflF}C74xEUuEpnz zdAc19s~BJK8)rUa!v`Svlvy6fv7ILqx2EwuTb7_PN-WkqPA>c*Vhr;3~86NGkicYCj^@VNQp{PO1v z2FyGT>s;3Jt&WLmIyJ+TqW{xRtH;M`*e#UNTzlflr&Y&~ zK27>m^y|9(d40X}b^HFjpCoG#h7CoX^0-Lr3R_7s|_ zo;vmYYU{C!)|V9ObtTR`+8S`~uSA8$#6X|hhAv7vYYaN1AF}V`I$YtxrE;W1i1!yK zx6HAX88XgMAFGa4P7_dGBFErz;%1MOZEXC{^LKq;>i_%u=xA~E(q-nU8#T=TT9bD_FrxL`^)}+Vd1iyCHrUXF074Pnb08|Xnul(4ZP9)k zC79B(V&}V4GiETTCq(z|`=7e}X3X7mizNxCm&v8iOcwFq{yO?WhoG?bjk>+J*PLH5 zYu`$-r-$zUJUVIL_w_qnx0rt~FRxeVn7XDicY9g+v)4=amu|iHV|o+Us@1=YMk^nX_x^ z<$Lv?i_*Ty9PZeZcKxsM=3NTgk7&ik9lxi4+F*aQ=#Jvt>!Hm&TQkbzw)L8>PujVM ze;P;H(#o~|FIO`4+T}mE-I1jhml`2_t-S5|i=1PY^W%11P1|!*EN{N?vulgB{Q*w}1Qg7Hwmh-(6&FKf8Y7%Vk!|23Kx=KJ;0<=bo#W z${gqWH%>g&udn%*^6ApVj=82as%o5WejofwvJUfD)M>7LJpC@mVTZzG!Dau>unB9L z9Ez$8{gYd|{eJD-4;Qu?N~`%ix>5bvfu%XnZCP63Yw@OsS7cZp=88P9$hYc}Ejq`- z#5MKHg7Rsx?`4i3sGsR{ZLQXVC2h_MADT^Bn0x%?n2K+`(Yfi9kka83dxN`xSMsRi z4fDnK8l3Jd{>riY``XZVuVSx%wf&a(Hu+)UUiQnDhHgu4Ms0WZbdmV5FjFgN>g|UH z46~KZEE+9t@7kGsO?|l>^W@TCk)_M)KglJ-Dnz-8+`L^kAD*5pJ_g%&J2NW5@jrRYFO;_8}ALeeg`AaOP zb?D^wWw#>PHCh~cR@a%W{W;}D&s~k46zQ~ovkE<=IJIJSNz~l`9+|Hqadt+APluvY zgf-h_9@(xLQ)2Zm73NIyOSZV5Qm^LKapg|d?6=to3I*PCE>E_V_g-AM!29y)hR8!* z*KVa95M26wQfz9<^OI)NAEc&V%(}r@9Cax`^<>4(PnlfoVpdO1>{!a3Z@8T2c9W#a zP6_VYH3m7)Tgts}2>)B~KIy?k#r3lV8(Wk-*Lc@VZ%W+te%HC;Z5+2QDXrUPcjVj4 z`dI?LtF|3hQ|U8OEHwC0?$lZ|?aR4^kACmj$9sACiabjf`^%RvJG>Cx@0jHxprSTE zDeH=Nr^T7`M-3S*bU#mKsOjSIw9#>v`rI7D?IQPvZSHSj+3&{{Gag&rt>0%UoU*H| ze%*x?(kdO>9L{e(b$#mUGi-})RUR_q5KF?%n@%BJYld zT-7&bA*Eb5SJ_6oELJqk`g3iwQG2A|jUJa$r>ZQj2dProzspSjyBnTQV$;*Mad7{- z(RrRx^2Wm__~u1*x;8gPynO!pYT5Ri=ZkL(Ub0*oX}+{;`3KEVi4R{Kmhu|!cHw*V zMQYU{#p&JMZ|e`FJe;q;>g~Fy*!Qd7_BOBFaD2(HGf@eglFGX^g81GBtF@W1%$~=t z(qU*>%YA0;ckBPDJMZQFoqDuEBKY#_qR_mqrLNLtax+f+s1z4?!DyYj#`!b_s8nj9y&2w$)I+-=KYY@f9uOC-|x>qRhhYc zI+sM}oVeU;+rOTU=9d>#ohT%$zx|%b=hT-Ut(YP?-&=jr>aUADvyit^ywZ1q*{UlW z{2s=daqRwfXw%EP+wSN$^j}SqoiIyk-=3{jH{Q!U`g6s;>UGPP>+8czbJ9G+c8fS< zEjqsE#8*WwM#GtDRlULSck3->xL2C}t=(5S^RsYSeYyFxH&?aph;np3 zbD4BCIdQe)j|-XxhbDUcTqO@EVrR=#_I7>Ui<>8TI z^;J_%ooBvyd*#=3=VgD+h8|;C_@ObPF6N;Qzv#JVQ(8YSPm135^hU+b_}6DTKgrl- z2v1ygG9XU>^U1D6{zGj1rP@k=dDG6{Psuowz$?&PnI`f`n$z#I?h^T%KiH!34xSH} z^v!IK{(i8;j%C?@MQ4|$_Uvt+LiaJRnXNGE@?6<^hvQHDjJzgs*BiFJUVN}C?$nB$ zcLKdl4fEEs&Xf|psj#Z;6Prio^o6M<8i^dX9!-i0whF5aFZCF*8>(xa)-9hSb$ae! zjyr{I((m59Z7eyaw!$oPqjQ#%UgpO4zn2`nuT|t}!^&;C_W!<9JJfENKHAPECFJe( z?PKM!NmHVmI_fV3xCG7@zV^g+eXRHVZ|-i)+I!1-MQR#YKH{8`LDfOayPU) z>tW{lHCGbnUH@GaJoTaDwxw%1RbDQxJ3Q0c?w*74=9kNUdTuCuTVH7Ow_5C0Q|yXc ze!uydPq-@AWTaFt6^pxbY~sPMvyB;9A1?cp&hlrLh@<;#p;P;EE!sEpuG*!!cWFSg zVEA0E%IN0QeJ7qep55wwx5`1cO{W|M*+pzx~N3n%Vh*@|V+k@85m0x~I_* zKezOSL;PMB=bqfi+YI@Z;8N#y+ z^_fck)=W0kJF%A4@ZSY_`Dk&aqbgEUwC@S&e_dKp-M{X+IycXe8)d-{)mf!1RO?UP zUuD2Hu)!eelv3hpZ)=qMKPaKiluTT5hvKpCGHad6HvPi!)y{ z8_T;Ehx&C{f|{vqg>I~iQVpkZ*({?)GbFIKbfOZpgfN#}&G-DG$>;G(tf z#H>zl6^Gqd=B2!lZ}9mxGym4oD6fiVWjj?fJa-(6-DLXcnK;LCjwS!aPD=LN`nFuO z>(+cGi6b*QVl7EU zX+2Hl?fa@lffFrP`iZZ(nYey)=AvVd6eABglrPfl&-UIF8^hX^S$5%RNB@(a(z^m) z+-H|4PRU|s&!oxHpKdbcdqmfHi?SUG3wg*R$G{vSv`BXY;feV z7eO(ReTVsT{w!er$}W55ha^$Qi}gG#;j@D`xNn|xobCJmh?CZp3e{D&mU5bzJ^FU{&qbZz|4&Sif0lDC zk$E{Amsin=13!}&y?f>T{gt!4ZOIOkQuU37MptUyu;qOYO-tkzdi?ZpMz@Shw1&t< zkz#=!CB-Y%3w2F(g{NxF7r621!Qus>^VP3?D!uQ)a%1-2uM3ji-T2?pn~*(uf^tdy zIo?iIr494AVm8SAwcJr)Kl%7!kpnx9RZ1*N5MXAmTOo2X|BBTIr7I~%d@Ne$3ceC@ z+il7?eB7Uin}H_sPmOe%bmu%>&GYQ*8qGntn5IIe6g%G|N2 z(d%e^$W12BhqA5Aq4g5mJ)@5@Y>zs|Fe_lSsYKtjSBpdrHvIMDvvfWgr12!^&r2aA z?UGc!os&*;usv$-YW(ToeC<(lTjMW=e)B_T9<83zq`mJnVP<9Eg8fsTecqz*W>(h01LYttAPGDr#*)74=r^B`>q+n-4+S?5&0%g(%`W$r+*EmFZ=Pg!Q zn3{0x?FA#Vj)F^@ma_hy8k7)u=4#DEo(9v#%p0jD)=h@~&59BM+g&PHwslqAHQDTemXU0w(HSj z?@zZr{r=kg_1T-ZKX->}Sbvm1zy0>rXIfA0zKpleskgX2FF(9-7kBs5&0nvY*;EQm zJI}z;^lt7Q;{zRUez9aM30miGRWJ2j-N3pt=Dy~+N3S^xmfyK!IN{wdK8L5vUc9$( z+-iMLX_|fBHSzS-xfP6O=i70ge!iOjc0qFc^ZGrpKPSbl7mIjxwXAe&?ei&LkBgt4 zANKy*dvo#C<#UT)>HRJK`s&l4-Cx^399kQ`@n^$T?>*0In$s1JTkp(YzwX+MSFX?B z#nex44lnyIetPrw|2NB?|KG9a*ZZWOcdI^UZGE}SPk(xS^uOAlf4N`z#mwYh)3oF$ zk3`3|j1MbPOs!OxBz|Az@b31xZ|R9Y5C8gUm9YH(r`Jzkf1e$?$D)4s-k5mTpQm^? z^Rvw5kdS3+3-bBU-On>)x1mwPr8^QQpK>VAwBuH;o>qUh@)jS@lMT$RO3C5>e5?&N zd`@70_vrmf>wqsA>}8kdAG);1xj9|v?#2&u)`WI(GOiMGr`gV)E*L+dgx4uP^I8VJOA>#6kJti4%s$of$NSy!8@AJT)~NlvRAVdcx8z>;shT%FGyRqpEu42~Guyp03BAQPg1)d=Y!|7$ zIg3N)8he`WGO5WG-;O`f$r7H}5pv-3sfq=)_&f9`s}N(zdxT{ zExFnA$p*Ro#+EKOt$jBt9Y4##J?j%kO6Rl7Ee>JrMw;$N*9D3mkbV9jL_7Ij%cq`M z^%BZ6TbV4IiaE}4TzVj%*}1lNR*K*LHeZitCB`}zqO{Gn^E>Wcm9v#xT-Fo#SEuKl^k!d^Druv*y}C||i&_Of2t>)*J>GxYw`Nh*zW>j* zRBf^B^)FS(-7b;-UHnB(=TRPKp~5f!b!)s$uX{44ox2w1EcgB%v!eVw6_0z08(vQm zpS|QVqONIG~mFz3-d2e7BuopdX%-vyIjn;&<>s@=( z&aRSHlDjrX*Y(?eZDFkqZL>reS48{_3H$r{>Fx6UbJpKGJHw%B^T|EO8T;8!O|D#j z_(6bx=;^nTPrhxxTD93p$L7fTshK}yPt-E)XD_-m!D`C48$V=!)!%bWk=zl>?i)2_OcRio?ZepzMIg@GC z=Q1Q7h|J2^&?CNhS>Cn3!Oop~>$OWJrOvCGWPg^K=V{UR?;^8%Pd!!Hxb5Rlji1%> z8aww{@8F%~bGTmPyYK^R{31}{jb7*l?>8{OTKaZTceUQ?WzM$`?0h3H=1U*&!5T^+#B}QXt7#UlIX6B zE#2xbf<&rPIehb1TTWK9{YY064 z)T=b7@AY&+uFhl6mDd~&{?T6e^!L>hS6)?L@RJnzR$soPc}7FS`Pma5&VPHiBui$e z`A6n7{p}@Le!W69Uu3y2ZJE57<$IvR^E2`jwGX{EpYrv?#(#}VzophO$E5Vwm@T$< zRLnoo8!6DX<(*K(8`JO~Q;lY=+M4bAkH7cco-8bb&!!eggU{Ts(PtA=R1X-K)jx=kGDgQVdC2^RRpMT}jdK+ed#tot_`R zcVE=sg0Ek>pLPEGd^Ne`zvw@vCx5;lb`T0bvo>U;d}M^w`&?FduKG>Od4<>6QN<(+!>tZeJG9{tL;KeeBtR(zD2 zX|OI)eEXyNSIZ*SPW74o^zBBiyzawZH&UmUr`9g`S>%+4J{2Ff` zn#6iWaR#IFL(gSf+0{0RpWUdrD~VfsDr1py$&y={xATisI4rOA%4I)0F0X7+vM4p5 zVK#@l*2F#H-@O+c%McLq@>qI0d7ooaeH7HJ!J||wLoV|`=7tIVskK?FtLtZ-_utU; zLd(2TyzI`EJ`Rvfoa+ zd`EuwHEyp}EJ-&*0v2#{PRi)=4Xi6++q!h-!4n6{cd;CbTy^m@<6r5PfYXnjCx_;p z;(OYlz0K4z%KNbM-HV6a+ZSn;f8WwqzeI2DpY9De%U&O1;yX3%L7nC-DG^o0z8wa} zkr$t({4;U7YGKpYv@7@Y>r?x0&9&N+J%wTRroOD4gYF*IkBu`dd=&O9mpWwqBDt*3 zBj8N(bB`ara*``IaUMx=KNfFruhvR2F;7$ARq3~oBZB99EYhbmwJz~o^(4gW`oyuPVP?kivQ|gN_V#~dwcCX z!+(2*{;igDW@n{i6MU}}WLQhHmI(A;Sg$e7RX{sn?kmInp9G2~CdF)VS!E=#M`)^M z(<2tst&%6A#grw)3mgRr4)6F3~BcsqmDd^o*wU8Fh z8|Rle+~9cUXqUFcX^Q`p(Em)ApNP*?YwAyXa5sjCOcWl_@+;fPTFR(jeDkl zKl)6oW%FTAjo&8*mVviR7fooA;`d>hQ+9(m-+S!cEX0ku~q z|7bstjJHchZnTYOAg?VJS=~3OY4pcwo@AyB+ZjP=G0n0q0ecJZ_B31 z0@263uC*MzY030!j!dC&Vs+Jx!-34ZED}kPeDCPCG0Fb#q;$} z8-6j?y^&I&vEqO0g1-k=9hKTXTlL5NdApW#39wF?c`tIEyzcZVX`Zv<;`Cgrh1O-v zO4C@G9L(8Z^n9;b;@bCHdv}TDZL8nAa$~@rY)%gMvPyU6tf+^=Q+`Q#{T1rY;3~TYKyNg#*8KR&_P~VtDY#%zJrQgYV*^Xp?n+t``Y#g#GhrTytBh z{=UYV*RuOLTK^<n5KM)hv?=xk;NZj`Nk16-po;W9? zdSj(-n%C*=`=(!hc6RS_6Lt2?=E4e3lb_2zowlFTwM-`}T|Hx2W8|Ci>4^*Txp;Sb zZkLui$@q8s>F@Vyf~OYDJi9C6_Z}OILdOfr>yMp!y6nXE8xqAwFK+REUbR@yWgAPk zUedI$olfc>Ua8j?eC~HNV5s+v^;Bsso+%;lJ&Hl|4*OE`v%e#D%W+TN$IGy!A~scd zYEs7JtV>)KqLz^d7q$O+xw#`#A#ib>{bj-33@Vq~4yk@;YG1+3$LqCA?7$JFFEMo; zbLJgVdD&3xVX*A@50!%ztkVk4se8nF>^$JDCY@8g+s^EG#|4Qw_3sLHEmKTvRN&YY z{nhS6)uhC$wm+FoC~$w zy;5rRr+_!BCA1f4{nQDYr=0VAP2{2lZ#;z;yDhzFQah39QrHKMl?uC@Ng88wTyKC-trZO)Grv1B2+ih|me0<1zp097F$^w^( zlj4;)d2*d>)Vdm8-(2L8?0)N(L+Z1rWmbU|yM1Km{P#FKJH+^=NtvOC^#hH^wG3%G zO2R&3&ulv*E$2Et+A%Nb5&x9cHTRC3J$IyD(sOUb;-lwpIi*aJkdv@z{IfoM;-2~# zSFLO2n>fQVlzrwOYfFrnREJVN!urBAMQL)dl)21!8`;N^_pw z2TpEWx$;GG*SbZT?#_3&RCKO3+V|&MK+9jlsc-*qaGCX=nQG{$^>5nU2Y2Vp{pO~( zi}O+DpM8!W>rc80+!CKZO_*oZ-M+f#-**|fh9CM6Am3#e5cs1qe61n#qd7}HoH=&e zo6XPnv&zE*`;O@^b1U$RI`fV1;Ip;N=TC22*+0)kXVu5kQ?ysL&iHC&6&l_D;L2P@ z*;@YxlKc)KHpyF_b|%)mvpiwy!O#`?s>Nc}Hj|g3Jm+Wbwkw)ke^B9KNh~W*@jt1% zw$|Uy%&`6Pdsf(l-#?!=ra!I>yA&;dre_VmT;A)3yC;Q<@6Fq?^Rn@vV}HZ;XkUhoh9kqLXDckXFU&wcD`Piq7r=c#*^z$W6ie- z{5M;}`eASU%*)d6e=oh?a_W|P{h?V&IXA^-2Q$0;dY_T7?8nX3i#6{~Pg`JqVCGH* z$EfD#vuil!nJ|Cbpvtm1n5BK4;v-uXYDe;|`?g;u_eEA1o`!T7>TX?za z8`RY`AIws-xqNKyPL>BV%hrl9U)#^QcgkUjyldGd(m&6gcoz~Xr}Js4pkI8y!Omyx zp;x$P&tLT9VbG6YR=H)4toL__Pq56{-pa1FTV%2SCM9tut(E2KlBXqaPdF!M_Q zk?ZHafw@F8ZBGkB0(;)gC%>bg2Q5kXpC&a6M4xOwGN<Pj3r~Kv(7~1?ziNI3s_k&t z?6c+AnP~N}Uu>;YKCeDe&-C@y{0J<)ICE@Eh)gVvz=PUHqoVU~TZq-YUvKbhLqNkU zvHV?6QXf9M<~PekI^Do}hNO zV=nh&{%6ef1s~fEUzPvR_@F6Mj<+RDMlqmA);N8QU*YB9kTld*7|M>HA_xd}3zZ@%< zuPyt&_x(TiKUbB1*Tw%cSjcAB%`Et!yp^$A*^Xo9`5MVf>3`M!S^QXWFyHyz?|t8c zgPz^I7~r=C6>Sk-m(I_=EnC~+;OnHlmk%_~ZC48NaZ_C5vpK@jsLDFa=zEn zoR-P9O)GGEcE*yF_)Srh&aNmd7x7$g(4Uf0^^MJXnZ~7_(izi^+jUniKC+wDXJrlJ zgWL6Y^kaX2^Ehn1>Lrsx3hQHK!HUzBaZ9cyT}_qX)V>?u@>ih2=|XCe=1h5(uMhU$ zxngCr!DNj>6Xyr3Tf3*dwDF#{EpxwMAF9?<#V~cB+ER8)96Z= zqm@)Gzp_nV#EPf;vX*?Q`@VI)&+=tkzL}PlH{alItT&(Wp|yqakL0|HGc6+R6+w3^ zcKNJQa@7)O{O0$`)ojm+?#Ow2izh89={>ZD;j>>(VQa7dY<)4;E4w|oBC?LIXy5Y1 za`88*I)=(r)0V%R^*)70?MnADzRM6(Fzs#h@01J9W?a)2KTfMw%1WqMv$sDzJ^h@? zMz&Rj%Q)}s*b!CV@H2$xbo5&DshTUy4Ljm~f710l*MI23Y4e*sJ6!?R^(On;f? zs$_ENyl@m_}*?Maamm9%fTao&epmc+75XA`l=Dlb@$M!fR0c_ z!POU*Wq;cdlmE_JJ6*-|^r=$L)02$jS33)z`FvcE??}44u*#*a>^V>oZQ>FvZ^^A2`SzGeuiI@5d_>sVzsQv-%Ng1plwkA> zal5CaDSo5A%XUGsL#3gz<*k)5Q!>=J%rYqD&;dJ~{I9mZ6a2!}{93ec?Z!ym>f%j_n=C zA9L;`ef#|Sh??VL|H%)Ze!KVareUwwinaf z@%J)b+^&Cqoz9~Njq`LQ7X|6CzG1q~A-G(lpmo}pb7s!V{|G2WT)nltmDi#C&a{*# zz0n(2UU|T0^vkv*W1+zZ~1bB-9s{_sA*AQ!%%t z)24#e>xrY<)<0^^A0mr{IF|hl%MkxQqjK{Rm+%!Ab~8yEWYu{XZC7P3~#VqCv4jpUUP{767ID5^PWeyQ-_i~Ka zdU?%E(ZB8}vv#)abD=qlHa#$qRC9B<%ICi5m|&NHyONl|88x%J?vczgdmJ?t>|&I8 zyZNt9YvEXZ^7;IHwU$@Etof!zAD=k4BDvnHvvyA_SJUs*sp~!+Qn=*wHg>Mu<=*+~ z>DT4|d%i7<+$EsCwW|L4k=Z+EFKyHEaR^|Q%<0b;da<&3r>n>&*{92&)~5dvFcy6? zCvaBDJNJbX^eooC{T8r}O0CsWTH3XsXF+rMe6rth@6tvhdf&*hQ<{ULQKpaZ0Or%Yn7-HTzd7{+B&9T`_&4*xp12l_`_D#hw=LSO3EL zEp~=_$4jRUVeaHzr^D=6Zdv%BXNsQ^nOX4XFdaV}7b^ z5^U65^`(5ic6aHT-H#^ptNx8zcVMCXW-jj4qF+xvIe4K#r@sDIb$h7l4AUDk<*wX~ z{3)WiK>Oc*h9`A1&)+PW-kaxZ)}C_P;hg>UsR10kXKnPiEp9J~?b|n>^(j+gBOS?N0ohXzcF9;q-o!$1JDsU(UZ3KRrj#m1DQ6(CMb^pHZSG zrxa;H7P z?r!Q?yF5*D6&v@bYo13#nY&fO8Qwtv6p{{q1t)(b$Dt z((wXqUD{0#?{)A_U9e%N-r2Ni;v#0}K24pSG}%{E=Vie@!=M+8LJ5pB{uSCU3cWMS zUHzGFpv;*UpATPpz4fn3cT{ytNLc39gIP1`J8Gh%9X=jeTBur@Isag-^jhg#=8_Cm z`)b{l6{O$0%$~r=z39W#3(IEm9WuMMEY&b|hLoYt((AvsDg|{nobkW8CN01EoX^xH zrvrD&nOd4=l!eT2zs_jpy0(^oUDSqz>4A3M%ba|^MRS_Hw+yPv-&C)@`idIgDeJB5 zKK|aT66>1|Jmo#L+eGrmHr7(T7wuk4AACJ!ldR%oCmUQ`<+0i%defb05r+=RB{9^m zWk1R$mmHU)v9kT0RP(7lMS`*WYP>Uqr5>+kp8M^{{#hsQ8lJD%d#r}Z*5X*kzSWzf zmM!6BlIweSVbQ|E+*RsUqP#nKOIy8H^?4p)UOn+b`MLd$^?T;t|EQN=@m=;VLmYe2 zj(Gv=IXxS#-mEygxbeVLrSzzS2cz!Kek#LMTBCAdhDz>A)wWY7Ur8>kblw?zSZ&$P zGY5{S@;-8W9v0}cI%7V&i2Vl+FO&Qx>nDN>6!&+Y)8cq8sPpXWDh0t7L-rC zWo)6S@G(}e{V~speQ!AHShtijKD`lDIn7LEjp?!~?O;)}Qy0I*EPkWY(U$P*FN+Vy zsZZ9O;W*W*`01wmHFe>90kRJU33s+pZ0@%Rauz);;!Za1AR$v&UH>U|?l-RgksZ8RLSBnksdR5yGIL4R|Kx}DjHOScM5ilS zvkA8+$S}1h$S`kDkYQ20%4BLdxi>&<`pS}5uCOZEIN-I=42c{$CGT3PKZ8L zd8cSu0Hd^#qu8!PZM~aY!){FCTyNS8Pbl zNR(z2=F#oZz7@P=bpp4x?z%lp%qof{ty_;sZ8%uvYOrrZ;KOO`#VYls4%;qIGFY6f z&A&_8Y5{l2;$~mZ54SB{Wn23e_p#+`zY>_tTdHHl!eh9@;eZ%N^W|uvnzD^S599^h zoMjby5*k=6_XS;<_@ZI4)viOQyI9^_RP?Ow=KI0U(W|?X>GexpU;70Aju#FVY8{bs7tMZ_v3`-DtNH6cG{8R-tXHCyF2|6N2gnrKn60|*2Af~guzH95$ z_iT@huBptPa4%{TUy?=e5<}$>fo-h(DFGW;ym!g#JjpzmD`^vQdC~<1C#l0dE4JLN z`jFslqh}}iIAPLzu8$wD-{+dN=xZv2wc7H>AD^$4uiqoXHz{yi&xM_@AFMG?Wu5!# zu;`(1w!b~u%H>%vCejn;E@y4m@;HgfMg zd`I|>-Zq8g>Vsw3pIIw7l=Jj?IM?n~&@Oz-y5|0N4v+V{xs!Ih-Qf5)tT^HJF4x?X z*Jpg=^RZsf9Ch?wjg{1u(~pEXYW75TeE+&V_2S0Ye{Zf)JJtV6w;*NH8uinxcbM1j zSG{+&`{m2}nh^aP-5)Qk{9fq?Yv)|e zx2`QP9+#B~vu@1_I_!MdbV|XjhTDmPd|V$(e$_=eB>t-}y&*IA-0LEfIl8l7 zE}8O<{n4GhIqD9snsy%XR$WHNrb(^haF02(JZ9JIhd(l`@~0hFU)uA1`@|Jq@}7aY znWj6#Sf!h*nslvB>@QG`ngLO+*h<;Gk ztz0>&CXQ$6xB1pyGXyq%eo)W2Sln9q5~rbn{5{*{`|D-(r*A%5&t*8%th>r=zTWc1 zFL%s2*MG^Qa*vJV{|&d4e=5Jue|G=cgLNPBpFddAwX}Kq4zYEUQh%)e^I+EY=<=@G z>)YQw__Z$oZuvLcC8{j1jIN7oe4hBWOvB{X`%lgH;y*OsyLXj8%}Dd*1U=)smj2?q#lgmI=OZLsmLYUccb(N4~c2UteGUlx@7e->?01bCHRy;O2*G=II~F zDkv-Xad_@smPPTJx~a<>&vIGvn0c{;ESkxma}*!w_D8U6H78&?S3}VSW4&* zQ}XiPkE`rr`ubik-SK;y@*b%W_LHSAxkYPNPS}_#^>5p3H!I%xeD@BCD|g0xycM>z zeEWSfnIhxJX=e*ep6^}lWwmh1AG_X+$kjETto=sIdO~lRbZy;#T90>|`^~+s4&B?1 zdw1T~x~F)kwqEkQ-*@q+OCohnFMcWRC@Uq%e5vhW1;5vYl}BDbZ~p!?fj?=@wzaos zzOH__lQ$scN6ZtArEY?5M`qSbXs+1r-M#DLtq89vwQCb}mO6clWBt6zPO9(Rk%azs zvCeHbyUZ4Ov^W12?ESdZapOYerJ^oz8t)%v{p(+8IQ99N8%lzq^&vsqFBwWrZP@2u zRW|=U@1&x@^)5H}Dbs2!Nrxja?|yWkZXUGx8;?rx;|mulofYhsPNwNzOSom z5qo9wGwI(~E|wHUD2qy8W!iZ=hf!YoNKPDc(#ccGeeIKf<@{bUQ%2|2(?`EKCu(FI zsOkOW6vVsEh5QktP?cuv$)&%>AFV8xg&|j z(KYTLuC9<)*<>T@6Z!H$l#BW-Dbq)DP5w{X5yts+UvS`-rBYIzi&>LD-j-TX#=-lJ zkMl`}q5RsAnrq+xuzxMO(KGQa$0yxQTuE{DH>W)?*|hL|m|*V_N2R@PmjZ$cU8dA$ zuKdR-BC*noUwyrHaMs&!rwL+9?)vkIxQMQ*F4WS}vbwq;IBCj{8(Z{ppZ?REeWjpu z3cm(_YuRcSUse&h@(XQ?(<*CronM#uHb5!%@AvD^zPlA{E-ttr(D$&Sx}dBmNdNiS zjNh)c-~OKK@0s(8SGQDhQNHKz^ovOk_+J`!)Ek|69q3wKR4BUT#d(!yH*fyiV|nA= z+;jUE)!dc4vbfUL>UZ7BjPOg7nS1vfcrk5Vy@2eoSC_m!926}-*m_^wkT3fG42$}& zx0i1o{43Juq3ta`Q8U}Zzv_v*=K1*jl~zJu%xkVZI&Yt~a$Rd-2s=xy?HuKWr(Qn{ zF!Ox7zIC%leSF9cMwvzWw)Q*4{B~WM_4<4IgLS5Nj%+R1;8Za+`=E#Cov$eYsy_XV z>syUIjFNVU`L&*y`gLo8=CnBOWu_%};`qaFUJ8HbZ`~7TUB7R-^CPD-eSH64U-ZkY z-05!3T4n!lMw|O#8yl%_?ecF=h(&x$Naglw?y*^W;CuS##eeG`1-tL4h^fzX`?`BM zzx`z~`(=B3(m9u~4Bs!X4%C2ISdz31`nX~*|2WIn_)`M9L> ztKBBr4|`;{osXU`b4hMV!2Ah8%NYHiFDc34bqQ+x$avRbf>fua!NPTVHd~~!Z*f^l zuHvd<@LSyAQ1i7#;nGSe=lTkXP0y82U-;I{Zk)SB^+hH}nv&bAIm}CTSLXJ)HOg0hrhlIM@7C+`Ys=R4e@!hss_LF_rS}^fj0%`{mAt+-jF4Ta|6|TZ1x#>Qwl-PDv^nv)|Y2R$%TuTz^~1>8{P= zb~V;X^&i$Oniy5Vd&Sl@<#tCwjV)V}qG!dwwC#>Po;HcD}>OZX%% zHs&6f@T=A2oS2V)VdBA69Wyx94!GFvT~vQWLF48D+2ecKHePHJ+|GO{>H`Ox=li=7 zkMt`R?s#u-Q~KC@uc{sghmzYDKCcd1zxB0{87HUh*Ms{+B&9Nxw9_^(V!Ai!XmGc! z^`^3BT`e>F^L5N^uT`RVTzTUnb5rAnV@}f3C5J`ro-K$y@TM&QmQb+pQfW9R; zH>Upds6T!z!EUGR)5P5a{x4oAGmBY!>y(;_k0oEb z$t?;$@Z$NZ)m`c;S3Na^>aY2(HQ~|PthrXV{HXt)lrUD^lP~o8zVM#Wnpe8;?Mkb3 z`7@?@i=QSO$Tf=2Rkh}*eyG18Q>{!TnYW~eFFo@UPvpjbUMDAH?l~G&_)O$e6wBPI zT8(6m?5xV8c5NvlclPI$&;Ix6O`dq=_AhUgwr8pYx;Of7D_Pjru+!+c?e6-^C*mxc zezx81c{+2WQr}JyKJ9;s6As+F!9JZ?)K$W@PQA6V>4Auzu1@Nu7hAaVY(Hziz4P_g z^Oc*nO--BR`>y!fj!9`!Z%^L{T_^3i>4dTM3zkHii+<|7dZ(Awn}5{$x>I$vX%71& z+s5zWRp+YD9S!gF{xYR$NtpK8Y7SuV=Je9iUh+r9qB zU1we5s8{s+6!rDjq-7WP{fXUrsY6A2-t~jae(T7;nCs}G`1kYP1#fqUJga%Hrdxf> z?D)=~Tcj19KKpdBZ0}VM{)*DO{RPvTw8~Dh-1IK}HF5H(c9FoMRZng$QCXU@^KGut zTDM>9|CaA@C`>%Snc8I*x9Oal->Tp%UYy~F9xGgRm>93cQO~c?H7Q=+GQWG8=xp;W zi)8P}sSA5G_q*w4jje0EmLy#Jz<1-! zqNjHzKQ3*pX}z;2_3viAxoSW3ESL1CU;2GQWTSH7nH^6$gUgP*w2s!StU8{5Q9a|e zrt25WRP&l5hvj>|EMwnX-@LkRy3MYjo|_-n38t87i%;ja zah#kvQLp&oi8_n5397GGfBBiId5?HQ_mYXZT%h9_$G!%oVJjG3oQOpOvhB!IN4( zadA$%EwS^$yWTD8`?U9c+j(iZX77^zW2^3kJ}WoBHs5)%XOX88#9Gpe>0NTE^V3j{%gd6`V*T>s{YRVQc>c&EUQ(y z`_MXPb&j*DEB*Fqb1o@2&klOOWx-`mE50dR+Ed==3eUSE)wQd{?Qp)xvuWpZeV&9& z;M>T2n9a_9sZ3**_&06=8BtxCVpZAlQ(t0Q`^_}Vtk0d3Xt;F#MBdS7br&Ye^DNz* zqqUXyaN$OciL;mGWnHdcnD~sbHdaf2`3b3Yb(%#1+t%jPOQy#2=1bk&Ykt9$9$hx!9+mFENw*OGWJ)dRPB>;-{OK`G3!1<`k=o zW;=bAJsKzOcdU?(GgO3Uw$po6IWiUg0fHtN&9de{WR;2o8PkE^~zt4Fz}t)a6s4og$KaYYLKWY@$Te9BrQPPu#Xvd)v$3(VqEJ4?15yUeYaC+xJ9C zL7q3g{`{+FFDg9cL-RSK+TP`Q@A_F|DPz8P?#YWg^cw0mtnsg7Q@ZnWhWf!mrsE$A z{P<7&S1mh|yit2z_w+}-73yq{_Wp3?IqK1~?D0z%nU1IrCWRV&(tmyjbsv8DGDfB| z`C`XL3qfJSOtq~ux-@UioN@JYT9v}HBt@~W)2o!k&YIV66gmC4GPe8a^_3Q)@khc7 z)&9kvUv96mt6chx*trh-tx?sk>BjQ))&DNPyM6bF`_{((SwB45uUXyWmtS4MDlgyV z{@|%_!Q^|2Rf=()*OUDBoQ?V0yVL8B&7K3t?i(xXKYqCM&TqAI*CNyN5ATYX+jsNt z5ABHW86Ps5`Mf5FZm9oMH@7rwUh>?yjq7e5FkfGlb9vMGZMD}HabB+4HGFOs&4!%Dl#`|-@;dxVgULS4pU1~fj zQu&|4TSJ-_FQ+C5?YHIi7yDg`guYSLOh5Qkgof9R3I#~5_=|8OcA3WOH=5X<$=JEFVR?QX6lW$~i3gwxl zZ18074~056g?}1#PY-N7FZbwsmE}7A>ACa&x{9x~em%4A_~A zb^K*Xr2L!y%BbpzX`ilU+3>DQ=bh^t-&6PKzW8VM($x(gzg#_cc>DQCd$T3{x0ZZS zY%8#TmAF2j|9L>Gxz5W#^;1@yE4TJ&-ng88OjUEruFxIz6&rs)y1Cmn?I7Fy1*Jw4 zGbY@gU6CwygI8z6uJcW=lH_(>PxV#~e10Y2RMtkD>2fcke}39)zQ5+j%$lFpyAS@} zdd?yI`qMjCdzZ+XSu@|bY^AyV)06#g_TH`Z>U_VO*C{wRVv^V0?nl4QE;*1dyM@(h z`jxVIOTH?E|KKl@_*}QN{=&-dtWU3P|McI#?q2oJ3WuC7=@RR0@8Wm=PMm!6#Io|H zraOiqmB-wC>T+y%yo|P7fB&9c^`_4}M|jz0FPeS&qm3I^Uib{X*n2Iz3S3`qmb+SQ`s{vq&gk95@I4X>9=H`pxnd01dG_uNmj@0ZRluC#UGo3Kgb)W_iW zOJ*LhoinFz`q`WsHMOsSzpN&GZkkdg&^SZ1!eP3xiuKtSA}`PH60!RJYk%v5mZ^}j z>v9g(?d2S7%R@Ac3``77&2+Lyp~TwC zl*7r!CE3#?&N$0eNo9w-s*T2n-l7+4aybnAw+@E|BC|9m1hv6gcG;i->mCr6Z?Y40+$1 z1j@`XzYw@YY({&0M!Q<8;Kd96jWN#lzGoTMXs;FJ@tPvY!1^naOR=#|?1_bn>n2kk zK^YGZ6XrJp9A_Q)&SmpCDa3G}WD`n>Qi@Xu(JtXzkkR~3irIjtnf*Y$D`V#tO$L_B zLJ88Eyt}wBnA&|fvP_0kpp*3$n^4S_)LRi#BU)XUUS4Y`7P_pqR5Od^T5wxjlGswF zN9%*Q{DmYB*m#?=#4*;Jn6@d+J&=Fus>4#%%O^6p6c;m9Y4?~M6`R_`n;^x^V5Zjr8UK9M?_)oj+;JbZ$^ZS$X2~T^Est7PiE}hSwl5Kfz z8LPp3z7yv%>SjFU?`L(H!p|XfaGUv+rfG|lOimt;zTED~CM3Yq{pO`@%7cbGA&Xh+ zmoIoyxJ4q(^;4J4)637FW~bNNwnCCMoVz zy8c91a^gkdf{il1?@#DTPX3reipm< z&AzvxbdROot-JE`7MX{~da53fj`*RXV|GgGyrh@(xd+*Ad33UT(=S;q{I%?y-%KC& zRIApLCBbUJ^<1^5|MjZO@=y5p@28FSrrozYPcL~Rz2Z+{=Pe|9-N$gkdVW`n9?e*5yn z*>h5En?F^_4q%N|m@biGAFspB!aX(Fq0jv*x5n=Y_eJ}?Kb*a)Rb;w*-m?ZFn*iCT ztNAZ3U%dUd_-{VJZiS#+mkpus99)z;Ui|8?%bEZ7ehrI@_2Ic1p38VoO34ddHC3r+ z+$rLa^xE0#PW}G+P3#lCElNzzl%9Bn*F|6DV5Ne~k?Zaze=Ka|;usc9UaX>_%OE25Lhz^f+{TctC{P=R$vD3p{fOV#BF1za?H;tgz z%(rasSnb%s;xPT<4Ax3r>53iVn>>VGe*Gvjr#>e)US?{AQt*8CNL`obSC%U(Y_?la z{`)BRO1vlW-jm#53GKX=-= zXv!jmrNQz6tM3-NsYy%Vyk6Ihir1@^(Xo^n_=2&c_ZbJKIQ$y!f_qE3ZfWHpY+VOm%pd@430a zZF^sKu7lMb_R^`DiOzjz*ix-*%Cctg%g838NR(=2ZLNWS~ zWX`u9_sfiX^gn!Pn||Txhw`7Ya%=BMYAn>-Dg4UJjI;Ep>Ow!$Khtjhu2h!Jt5Q4j zlWG68zd`BUJNG6Yy3?1eEM4CdzAI&^clb7$cP%?@QxDyBxp9K6Tzy?j_>P^ozp2j& z-{t!Cot})@=7n0ad0P*@7k_tsM@7MQ1Jy%?H`AR`+Y_|HWwp)2ADRl0 zxbV`I80nkFm(p*!b(oo+Z!24U(e8PmiRt6|DEF&7CfdlX%vLLvpS3dKerR_$(8Tm^49Hf& zU6sD|=I@uz{?%vl;+fsuP1Ez@E}zZ06R~o>IiFd@OkVDDtMA_Yadv}*ZrAk<&PCcE zS1(qo{xx-9+tuZY9*&PTC8!>>TXnI0VaqR}zDZf!PJN%3@5z|C_IGVwaxpKHXo0`# zErET!CV_8-<}kE#)OWZveqiBZ-PF6vY{x5+_9cZIK5eO&6v^;U2z>BOV!hks_M1xj za^7B*QeKVWaxZ)KPVIDJVK_UF(Qp0Kg>up>*e~tyV>YzVSCVLSIOx35sc?n#2TpNC z`6}Vy&Gqw{*|xU2H6$xCvtNilbvvkJ8fz`9S86oZx}xX7>=mDP-Q3H*`_KipGE*<+ z-E2!&>2B3n8eZT0&F}f8@pBw)@r}>lfA6mI?Nv@ca*Oj=vQiQ+e=0n(!P8`x++00L7PYo5hAU2Q zUvHncnN?~Mud{!_w`iaJJ>vEcVmc=;^!!vZO@Fig;-}#fD=&Loe*CvyXm-Yu%zZON zH-F4&TDtAz^_p!u`+Cy-FFfX~*4zBi*yT0*p~bRt;XmqEEjs-_^`C*PqS(cf$Lnh* z+S>Gsm2+G^HhW)B!i)aYzIE$P{f#Y~?_d09KUc(y6;~HZgim<2;_8IQR!Oey^R?%! z6>N;IGd_G^xfDnpXxo+ zp(p#&s#DcTF*8e6uv}MZtQ>-t5v+altK#Z%xf^g&i}^-7Uc=!}n+A>>1J~=X9RAm-gkGC$7o7Q{VGF ztNvw{Y2um4Ie|Ua$@U*7?C>n(kUoEES4D~xEEEj3@K)qC#w9=Aq+IlrTA$`;KTPubU8nsNPqVRhP6w?xIr zy5kH{S6}c+@YWxFS{GsBdSGHsXM^xvp~k@5LXGRqEGATJ+uNsjpw7))p3Z$A zQv@yDLS3IQRF^V+cp~%FTX+^)%8dd}sZ;pOV1xLDDok!?%o3C3B8f|f7L zwUpTZn!PPt>H<>IrNvz-l@yTr)GKreV|qnt?f+F0cm4JptrvdY*|RO->H2ls<3;;# z<~-Ds-f`9T-IN!5-fdNXcP}PvTguU?YrH0}F=O9!i{r!u6X>W zEPd_Ool2`esULnE{$L^n!1W-UTP7q`z&yWo5A#PS_;0}Y!FKR;0G zUHMaH^DnMPvGr4LuFI$u{XSvt0nPpx{ms+;)zUxb>gaqRhD{ks{N3riO3PRR>c;Gj9>ssF+Ywfc9zUkc-&RPf=6&|^ktlQwSl-dPG& z0tXw|g*zo5AD!r8Gh+pNXD7R|>z`--gy6qOzwkFS_+!aY1czq^XcWE&$O=!F$7$T{`-u)yhP&C0hLb+Tblyj9* z&7>Ia`b5(kj(XGYC?1--pe;slXLHML2VKjvZy6G0SE!r2ted%k(d3x!X_3jd{dY*e zQ4Dv_lTQ@B;q8~bYkC0xx5=*+m#e+{!mv}YsG7rcf%6l$lPjxz-8NtOvQ;n2VC|A= z5!vf~FXm-R`#0)c;5`@l=E%jB-xkZxQM=-l(aLqOEP%EC(?LI-D27=Km$`m3Oy)e> zpvl6!hy6>FodHvu!}6Vvmc(55Up{pK&zlFa&!nRcBwpY$IUQ)gcCNY5fVb`J)q5fJ z!X|cHTckE8@aZ&47VG-2zH1Xd`E}R<)@@<@)6ULaJ0*(sbz1v-!CxXB=>`9|TRA7N zZenCVwEV2?*NO9rTIy@$?w?>Rl1M*T>|yil`_E_ds#hGFBY9r0;@kD){P>)AQ=6+! zt^A<+Wl?^Cg3a**k7MH#-$hNlRmfzs@B1g)yzfQUc3&lKT%WN!aNV(rJJ&C*+;u#A z-@QBS)4y&Jd=T8fzGm{y^Xp$RZu=^6H#zM5#Sd?`JU6K9d1<)p_>6xXcVE{#S6q7R z*{^Op?~BEuWP$r>?{;6mYHRoP$CYIFdZ{^#vJYhb28z_Ed#!GpZ(H~6FGKT>#0%N) zzE8jUk|E&hN;c7rXQm#v$`oBNtLb?<%&e)y{4UagVY}^0!56cXe z?u1)9-@9&|ZEn4Bm9ccITqu92oihJJ?fU&GVc#NpKhEEOAUHDX?3$Ok?iv!w>rAU- z)*DExob{_)Y{0wefZBxQYd@FEJ!#tWx|3#+d3WnQ`swK#=sW|A@8y>DHNw1sH; zzh!CX_{}df`pvqV6EwN3K&qs*{IS$n@(Vg9MB71DhAd)dkV{ zJk5r2mk&IDY_Kj{LS*e3l^I<-rBAJO{mLg+E52v>9h3SQjGGP1C$qnAj(%YFgQ3DS zj{Vcs9XI*;O`9ymHi`rsGUj%$zf`oqH;(CaOHO3RcK+uj&Ihv@*SD(phMoQQ;7XK$ zP{QP;|6YZ6_&f6*=wwuGJ*$wq?cY9v!BCQp*)B6 zhr)yA1--|m7qTaGUts^DfBDQu#{=w)@+@X{Jq>{h+z)yU_|$X)ce*Ff+j8WQcTn)O ziq)=Jw}j@e^Ew;x=wW`)=4orHoU_hNQjeQDYx@)7^B%eppH|DPboH+P_j&P^NlUdt zLl13QddqA{n9kNud#{*9%w&2?HZd>m5T71k5cB#&EIiBDW?(6dYzF>2_TThyMPr19#R@XD{ zu9ZtWC|j`JYSgpdHSuNC>fQ6|41et|Y0O)|9i{(*`BqA7!B_u_r3Df%E-j0`C1JsT x>>$g9(D3rxnFh>h2j`^femOQVE~nr>v+%6h?9;W2*yOp4EiAcIRbBnvxB$PsytM!T delta 53812 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 diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index fd38dae..cdd35fd 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -896,8 +896,6 @@ Below is a description of each security flag, and the security versus usability \item Responder Silently Rejects, $\pi_4$ -- Used in \algorithmref{alg:recv_x3}. When this flag is set Bob will not send a session rejected packet to Alice, but instead just silently ignore Alice if Bob does not approve of their identity. This also follows the Silence is a Virtue principle, but it prevents Alice from knowing Bob will never allow Alice to connect in their current configuration. In this state Alice will keep attempting the handshake until the upper protocol times-out the session. It is recommended that $\pi_1=\pi_4$ for any given pair of peers. \end{itemize} -As one might guess, having security flag $\pi_1 = 1$ will not protect a peer if they act as Alice in a key exchange. In some circumstances this can be beneficial for establishing the first ratchet key, but in general Alice ought to be more discerning about who they connect with if $\pi_1 = 1$. The upper protocol should take this into account. - When $\pi_2 = \pi_3 = 1$, ZKE strictly requires all users to either have access to reliable persistent storage, or have access to some out-of-band mechanism for one to be reauthenticated in the event they lose or corrupt their persistent storage. This, unfortunately, is not always feasible in a real-time environment. For one thing there are many embedded devices which only have access to persistent ROM, but for another, there are far too many realistic scenarios in which an inexperienced user accidentally loses or corrupts their persistent storage. People often do not realize that they cannot always rollback an application's data directory to a previously backed-up state, and expect the application to work. Furthermore, very few people have redundant drives, as in RAID, so a hard drive failure will likely cause them to lose most if not all of their ratchet keys. When a user can no longer connect with peers because they have corrupted their ratchet keys, some will perceive this as a bug with the application, rather than the protocol working as intended. Furthermore there are many situations where implementing an out-of-band mechanism for reauthenticating peers would be too impractical or too insecure. While friends and medium sized-teams can simply message each other over a secure channel to request reauthentication, this solution might not scale to a network of thousands of devices, especially when one or more users don't understand why the application stopped working. This kind of situation often unintentionally incentivizes the use of insecure channels for user to request reauthentication, channels vulnerable to phishing or social engineering. In a sense, security flags $\pi_2 \andb \pi_3$ provide an optional, in-band mechanism for users to automatically request reauthentication. While this mechanism is inherently more vulnerable to post-compromise attacks, it is resistant to phishing and social engineering. From b8d2f0e1dbe7f0efbb6506e1a2dec3de8ff8df68 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Wed, 25 Oct 2023 22:38:33 -0700 Subject: [PATCH 09/44] Fix (force) ordering of algorithms and figures --- whitepaper/zssp.tex | 102 ++++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index cdd35fd..df80997 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -154,7 +154,7 @@ If we enable all security features, we get \emph{Persistent Mode} ZSSP. This mod If we disable all security features, we get \emph{Opportunistic Mode} ZSSP. This mode of operation will warn the user if it detects a peer may have been compromised, but will not enforce a zero-communication policy. This makes it inherently vulnerable to post-compromise attacks. We still consider this a novel security property for real-time protocols, since it makes undetectable MitM extremely difficult to achieve, even with a full compromise of both communicating peers. In this mode ZSSP can gracefully coordinate resetting two peers' ratchet keys to zero in the event one peer has corrupted their keys, without any additional round trips. This allows a peer that does not have writeable or reliable persistent storage to still be able to use ZSSP. A persistent mode peer can communicate directly with an opportunistic mode peer, without performing any kind of negotiation to do so. -\begin{table}[!ht] +\begin{table}[H] \renewcommand{\arraystretch}{1.3} \caption{The security properties of ZSSP in its two primary modes of operation}\label{table:security_prop} \centering @@ -226,7 +226,7 @@ If Alice has corrupted their storage, Alice can either send the empty string or ZSSP is a stack of three closely related, but independent protocols. These are the \emph{Zeta Key Exchange} (ZKE), the \emph{ZeroTier Challenge Protocol} (ZCP) and the \emph{ZeroTier Fragmentation Protocol} (ZFP), described in \figureref{fig:protocol_stack}. The Zeta Key Exchange is the most complex and most essential from this stack: It is the part of ZSSP that implements Noise XK and Noise KK and directly interfaces with the upper protocol. For that reason we are going to describe it first, in isolation from the lower protocols. -\begin{figure} +\begin{figure}[H] \caption{The protocol stack of ZSSP. When the upper protocol sends a packet, it must pass down the protocol stack from the top to the bottom, where each layer may modify or adds to the packet in some way. When the datagram protocol receives a packet, it passes is up towards the top of the protocol stack. Any layer may consume the incoming packet and not pass it upwards. ZKE performs key exchanges to provide authenticated encryption to packets. ZCP protects any key exchange protocol above it from CPU exhaustion DOS attacks. And ZFP fragments packets to fit within the MTU of the protocol below it, using an algorithm that mitigates common fragmentation DOS attacks.}\label{fig:protocol_stack} \centering \begin{tikzpicture}[stack/.style={rectangle split, rectangle split parts=#1,draw, anchor=center}] @@ -242,7 +242,7 @@ ZSSP is a stack of three closely related, but independent protocols. These are t The next section will be dedicated to describing ZKE in explicit detail. We will be making heavy use of common mathematical notions and notation surrounding Deterministic Finite Automata, State Machines and AKE security. The goal with this section is to describe ZKE at a level of detail necessary both to allow someone to implement ZKE, and to aide future mathematical analysis of ZKE. -\begin{definition}[ZKE packet types] +\begin{definition}[H][ZKE packet types] We define 8 different packet types that are essential for the functioning of ZKE. \begin{itemize} \item $X_1$: This packet type contains the first message of Noise XK. It is identified internally with packet type number `0'. @@ -260,7 +260,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{itemize} \end{definition} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Handshake Hello $X_1$ -- This is the packet structure of the first packet Alice sends to Bob. It conforms to the message structure required by the Noise protocol.}\label{packet:handshake_hello} \centering \begin{bytefield}[bitwidth=5.5em]{4} @@ -278,7 +278,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Handshake Response $X_2$ -- Bob sends this packet in response to Alice's Hello packet. It also conforms to the message structure of the Noise protocol. All packets in ZKE do.}\label{packet:handshake_response} \centering \begin{bytefield}[bitwidth=5.5em]{4} @@ -292,7 +292,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Handshake Completion $X_3$ -- This is the packet structure of the final message of Noise XK, which Alice sends to Bob.}\label{packet:handshake_complete} \centering \begin{bytefield}[bitwidth=6em]{4} @@ -305,7 +305,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Key Confirmation $C_1$, Acknowledgement $C_2$, and Session Rejection $D$ -- These three packet types have the same packet structure. They just contain a MAC to confirm both peers have completed the handshake.}\label{packet:key_conf} \centering \begin{bytefield}[bitwidth=5em]{4} @@ -313,7 +313,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Rekey Initiation $K_1$, and Rekey Completion $K_2$ -- Both types of Noise KK rekeying packets have the same structure.}\label{packet:rekey} \centering \begin{bytefield}[bitwidth=5.5em]{4} @@ -326,7 +326,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Data Transport Packet $P$ -- This is the structure of packets containing payloads of data from the upper protocol.}\label{packet:transport} \centering \begin{bytefield}[bitwidth=5.5em]{4} @@ -337,7 +337,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{The Zeta Key Exchange in ideal conditions.} \centering \begin{sequencediagram} @@ -366,7 +366,7 @@ We model ZKE as two state machines in communication with each other. Each machin At the end of this section we will have defined $\zeta$, which is the high-level state machine that represents both Alice and Bob's side of ZKE. -\begin{definition}[ZKE Automata]\label{def:automata} +\begin{definition}[H][ZKE Automata]\label{def:automata} We will first start by defining Deterministic Finite Automata (DFA) $\beta$, which will be the foundation upon which we construct the ZKE state machine. $\beta$ is depicted in \figureref{fig:automata}. Let $Q = \{\bot, A_1, B_2, A_3, S_1, S_2, R_1, R_2\}$ be the set of possible states within $\beta$. @@ -408,7 +408,7 @@ At the end of this section we will have defined $\zeta$, which is the high-level Let $\beta=(Q, \Sigma, \delta, \bot, \{S_2\})$ be the ZKE Automata. \end{definition} -\begin{figure} +\begin{figure}[H] \caption{The ZKE Automata, $\beta$ -- Both sides of a ZSSP session contain a copy of this machine. $A_1$, $B_2$ and $A_3$ are Noise XK states, $S_1$ and $S_2$ are session established states, and $R_1$ and $R_2$ are Noise KK states. Each symbol represents a received packet type, except for $\tau$ which represents a timeout transition. Omitted are the identity and $\chi$ transitions.}\label{fig:automata} \centering \begin{tikzpicture}[shorten >=1pt,node distance=2.5cm,auto,>=latex] @@ -445,7 +445,7 @@ At the end of this section we will have defined $\zeta$, which is the high-level \end{figure} -\begin{definition}[The Zeta State Machine, $\zeta$]\label{def:state_machine} +\begin{definition}[H][The Zeta State Machine, $\zeta$]\label{def:state_machine} We are going to extend $\beta$ with behaviors and rules that cannot be modelled adequately by DFAs. This new, extended machine will be referred to as $\zeta$, the Zeta state machine. $\zeta$ will retain the core states, alphabet, transition function and initial state as $\beta$, but we are going to add the ability for $\zeta$ to establish a session, send a remote peer encrypted packets, and to process incoming packets. $\bot$ is treated as a unique, nondeterministic state within $\zeta$. Internally, $\zeta$ is always in the $\bot$ state. Whenever an input is received that would cause a transition out of the $\bot$ state, $\zeta$ will stay in the $\bot$ state, but spawn a copy of itself that is initialized to the correct transition state, either $A_1$ or $B_2$. If this new instance of $\zeta$ enters the $\bot$ state, it will be deleted from memory. The original $\zeta$ will still exist in the $\bot$ state, ready to spawn more copies. This is directly analogous to a nondeterministic transition within an NFA. This is how ZKE handles multiple session to a single peer, each session can be considered its own independent instance of the $\zeta$ state machine, running concurrently with each other. If we are only interested in considering one session to one peer, we can safely ignore this rule. @@ -514,11 +514,11 @@ The following are the 4 cryptographic primitives ZKE is based upon. We will be a \newcommand{\COUNTER}{\algn{Count}} \newcommand{\KID}{\algn{KID-Gen}} -\begin{definition}[SHA-512 \cite{fips_sha2}] +\begin{definition}[H][SHA-512 \cite{fips_sha2}] Let $\HASH(M)$ be the SHA-512 hashing algorithm, where $M$ is the string input to be hashed. It has a 512-bit output. \end{definition} -\begin{definition}[KBKDF \cite{fips_kbkdf}] +\begin{definition}[H][KBKDF \cite{fips_kbkdf}] Let $\KDF(\textit{K}_{\textit{IN}}, \textit{Label}, \textit{Context}, N)$ be the KBKDF key derivation algorithm, instantiated in HMAC-Counter mode using SHA-512. Variable $\textit{K}_{\textit{IN}}$ is the input key material, $\textit{Label}$ is some static label, $\textit{Context}$ is additional input key material, and $N$ is the number of 512-bit outputs to be produced. $\KDF(\textit{K}_{\textit{IN}}, \textit{Label}, \textit{Context}, N)$ produces as output $(x_1,\ldots,x_N)$, a tuple of $N$ 512-bit outputs. Given $i\in \{1,\ldots,N\}$, we will use the notation $\KDF(\textit{K}_{\textit{IN}}, \textit{Label}, \textit{Context}, N)_i$ to refer to the $i$th output of $\KDF$. When assigning a single 512-bit output to a variable or field that is 256-bits in size, it is assumed that the output is being truncated to just the first 256-bits. @@ -526,17 +526,17 @@ The following are the 4 cryptographic primitives ZKE is based upon. We will be a So $k\gets \KDF(x, l, y, 3)_2$ represents computing KBKDF on inputs $\textit{K}_{\textit{IN}}= x,\, \textit{Label}=l,\, \textit{Context}=y$ and $L=3\cdot 512$, and setting variable $k$ equal to bits $512$ to $1023$ of the output. If $k$ is a variable of size 256-bits, then $k$ is set equal to bits $512$ to $767$ of the output. \end{definition} -\begin{definition}[AES-GCM \cite{fips_aesgcm}] +\begin{definition}[H][AES-GCM \cite{fips_aesgcm}] Let $\AEAD(K, N, H, M)$ be the AES-GCM Authenticated Encryption with Additional Data algorithm, where $K$ is the encryption key, $N$ is the nonce or IV, $H$ is the additional authentication data, and $M$ is the plaintext message to be encrypted. $\AEAD(K, N, H, M)$ produces as output $c||t$, a ciphertext, $c$, concatenated with its 128-bit (16 byte) authentication tag, $t$. \end{definition} -\begin{definition}[P384 \cite{fips_p384}] +\begin{definition}[H][P384 \cite{fips_p384}] Let $\DHGEN()$ be the P384 elliptic curve Diffie-Helman key generation algorithm. $\DHGEN()$ outputs a random keypair, $(x, g^x)$, where $x$ is the private key and $g^x$ is the public key. $g$ is the generator of the P384 elliptic curve group. \end{definition} Given $(x, g^x)$ and $(y, g^y)$, two output keypairs from $\DHGEN()$, a \emph{key agreement} between these keys can be performed by computing $(g^x)^y$ or $(g^y)^x$. It is the case that $(g^x)^y=(g^y)^x=g^{xy}$. This value, $g^{xy}$, is considered the output key material of Diffie-Helman key agreement. -\begin{definition}[Kyber1024 \cite{kyber}] +\begin{definition}[H][Kyber1024 \cite{kyber}] Let $(\KEMGEN, \KEMENC, \KEMDEC)$ be the Kyber1024 key encapsulation mechanism. $\KEMGEN()$ randomly generates a keypair, $(e_{priv}, e_{pub})$, where $e_{priv}$ is the private key and $e_{pub}$ is the public key. $\KEMENC(e_{pub})$ takes as input a Kyber1024 public key, and outputs the pair $(e_{key}, e_{kem})$, where $e_{key}$ is the symmetric key and $e_{kem}$ is the encapsulated ciphertext of $e_{key}$. $\KEMDEC(e_{priv}, e_{kem})$ takes as input a private key and an encapsulated ciphertext, and outputs $e_{key}$, the decryption of $e_{kem}$. Both \KEMENC and \KEMDEC can output $\bot$, the null value, which implies authentication failure due to invalid input keys. \end{definition} @@ -566,7 +566,7 @@ All of these variables are independent \emph{per instance of} $\zeta$. So each i What constitutes a ``single, unique remote peer'' is up to the upper protocol to decide. Usually remote peers are identified and differentiated by their static public keys ($g^u$ or $g^v$). However ZKE does not strictly enforce a one-to-one relationship between static public keys and identity specifically so the upper protocol is able to rotate the static public keys of peers. -\begin{definition}[Session Counter] +\begin{definition}[H][Session Counter] Every instance of $\zeta$ contains a single monotonically increasing counter, that is initialized to 0. We will use the notation $\COUNTER()$ to represent incrementing this counter by 1 and returning the previous counter value. So the very first call to $\COUNTER()$ within $\zeta$ will return 0, the second call will return 1, and so on. @@ -576,7 +576,7 @@ What constitutes a ``single, unique remote peer'' is up to the upper protocol to ZKE uses a 64-bit (8 byte) counter, but AES-GCM uses a 96-bit (12 byte) nonce/IV. The Noise protocol does specify that, in order to use a counter value as an AES nonce, it should be encoded as a big-endian integer with 4 bytes of zero padding to the left of it. However, for good reason, we have decided to utilize the rightmost byte of that 4 byte padding to store the packet type number, as depicted in \figureref{fig:nonce}. This accomplishes two goals. First it explicitly authenticates the packet type of a packet, which makes it infeasible for an attacker to change the packet type field of a header without triggering an authentication failure. We could have used the additional authentication data parameter of AES-GCM to accomplish this, but the Noise protocol already makes extensive use of this parameter. Second, this nonce construction reduces the risk of catastrophic nonce reuse due to implementation error, specifically during key exchanges. While a correctly implemented counter would be sufficient for security, this adds an extra layer of defence. Given a packet type number $p$, and a counter value $c$, we will use the notation $p||c$ to represent this nonce construction. -\begin{figure} +\begin{figure}[H] \caption{Construction of the AES-GCM 96-bit nonce/IV.}\label{fig:nonce} \centering \begin{bytefield}[bitwidth=3.5em]{10} @@ -586,12 +586,12 @@ ZKE uses a 64-bit (8 byte) counter, but AES-GCM uses a 96-bit (12 byte) nonce/IV \end{bytefield} \end{figure} -\begin{definition}[Key Id Generation] +\begin{definition}[H][Key Id Generation] \algn{KID-Gen} is a stateful algorithm that outputs a locally unique, uniform random 32-bit string. The output of this algorithm will be used as the \emph{key id} for a session key, allowing the local peer to multiplex many keys for many remote peers simultaneously. The output of $\algn{KID-Gen}()$ must be locally unique from all other key ids currently in use. $\algn{KID-Gen}()$ may only repeat an output if that output is currently not being used as a key id. \end{definition} -\begin{definition}[Persistent State] +\begin{definition}[H][Persistent State] The variables $\texttt{rk}$ and $\texttt{rf}$ are considered the \emph{persistent state} of ZKE. The values stored in these variables are not lost when a session ends, and can be \emph{restored} at any time to initiate a new session. $\texttt{rk}$ is a tuple of up to two 256-bit \emph{ratchet keys}. Similarly, $\texttt{rf}$ is a tuple of up to two 256-bit \emph{ratchet fingerprints}. $\texttt{rk}$ is initialized to $(0^{256}, \bot)$ and $\texttt{rf}$ is initialized to $(\varepsilon, \bot)$. @@ -603,7 +603,7 @@ $\bot$ represents the ``null'' value. When a variable is set to $\bot$, it means It is assumed that prior to any usage of ZKE, Alice and Bob will generate their static keypairs with $\DHGEN()$. It is also assumed that Alice already knows Bob's public key, $g^v$, prior to any attempt to connect to Bob. Bob does not necessarily know Alice's public key. -\begin{table} +\begin{table}[H] \caption{Intermediate Values of the Noise XKhfs+psk2 and the Noise KKpsk0 Handshakes \cite{noise_protocol} \cite{noise_hfs} -- $(u, g^u)$ and $(v, g^v)$ are respectively the static keypairs of Alice and Bob within \emph{the current Noise handshake}, and the label $L=\texttt{"ZSSP"}$. The ciphertext of packets is hashed and not the plaintext. The following transition algorithms implicitly compute and have access to the values described here. This syntax for defining cryptographic variables comes from Benjamin Dowling et.~al.~\cite{wireguard_analysis}} \centering \renewcommand{\arraystretch}{1.05} @@ -655,7 +655,7 @@ If packet decryption fails because the AEAD MAC is inauthentic, this is consider Prior to the execution of any of the following algorithms, $\zeta$ will check if it is in the correct state, if it is allowed to perform the related state transition, that the received key id matches the expected key id, and that the packet has the correct type number. If any of these checks fail execution is aborted and the packet is ignored. -\begin{algorithm}\label{alg:x1} +\begin{algorithm}[H]\label{alg:x1} \caption{Transition $\delta(\bot, \tau)=A_1$ -- Alice creates and sends a ``Hello'' packet to initialize a session with Bob, \figureref{packet:handshake_hello}. Alice knows Bob's static public key, $g^v$, prior to execution. By sending a Hello packet to Bob, Alice is implicitly trusting Bob.} \begin{algorithmic} \Require $g^v$ @@ -677,7 +677,7 @@ The ratchet fingerprint, \texttt{rf}, is a sacrificial ASK that does nothing mor Including the ratchet fingerprint in the Hello packet does not compromise identity hiding, because the ratchet fingerprint is replaced with every single handshake. In the event that Bob's private keys are compromised, and all ratchet fingerprints used in Hello packets to Bob can be decrypted, all an attacker would see are several indistinguishable 256-bit strings. The one exception is if a peer reuses the same ratchet fingerprint. This would allow an attacker who has compromised Bob's static private key to learn that two Hello packets come from the same peer, but this does not given any information about that peer's static keys or identity. Ratchet fingerprints in normal operation are never reused, this can only happen if the initial Noise XK handshake is aborted before completion, preventing one or more of the participating peers from confirming a new ratchet fingerprint. -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(\bot, X_1)=B_2$ -- Bob has received Alice's Hello packet and replies with the second message of Noise XK, \figureref{packet:handshake_response}. Input $\pi_1$ is a security flag, a bit set by the upper protocol. Bob will only allow Alice to connect with zero persistent state if $\pi_1=0$. If Alice sent an unrecognized ratchet fingerprint and $\pi_1=0$, instead of rejecting Alice's session, Bob will ask Alice if they would like to connect with zero persistent state. ZKE has superior security properties when $\pi_1=1$, but usability suffers.}\label{alg:recv_x1} \begin{algorithmic} \Require $(0,\ 0||c,\ X_1),\, \pi_1,$ @@ -712,7 +712,7 @@ Including the ratchet fingerprint in the Hello packet does not compromise identi \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(A_1, X_2)=A_3$ -- Alice has received Bob's reply and can now send a Handshake Completion packet, \figureref{packet:handshake_complete}. Input $\pi_2$ is a security flag, a bit set by the upper protocol. Bob may ask Alice if they would like to connect with zero persistent state instead of the current persistent state. If $\pi_2=0$ then Alice will accept this request, and reset their ratchet keys. Input \texttt{identity} is an arbitrary string provided by the upper protocol. It is expected to contain some form of cryptographic identifier or certificate for this peer, but it could also be the empty string.}\label{alg:recv_x2} \begin{algorithmic} \Require $(\texttt{kid}^1_1,\ 1||c,\ X_2),\, \pi_2,\, \texttt{identity}$ @@ -750,7 +750,7 @@ Packet types $X_2$ and $K_1$ represent the second to last message of Noise XK an Similarly, the new ratchet key and fingerprint will not have been derived by the remote peer yet. So this peer will have to save these keys to persistent storage, but not yet delete the previous ratchet key and fingerprint until the remote peer sends a key confirmation. This means that for a brief period of time Alice has two sets of ratchet keys and fingerprints saved, instead of just one. We want to make sure Alice and Bob never have more than two of these keys saved at a time. So during the Noise XK handshake if Alice has two sets of keys and fingerprints, they must send both fingerprints to Bob, and delete the key and fingerprint that Bob chooses not to use as the PSK. -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(B_2, X_3)=S_1$ -- Bob receives the final packet of Noise XK. Input $\algn{Accept}$ is a function provided by the upper protocol that takes as input Alice's identity and outputs security flags $(\pi_3, \pi_4)$, $\pi_3$ can be $\bot$. If $\pi_3=\bot$, Bob will reject Alice's session. If $\pi_3=1$, and Bob is aware of a ratchet key Alice should have, but Alice is not connecting with it, Bob will reject Alice's session (similar to when $\pi_2=1$). If Bob rejects Alice's session and $\pi_4 = 0$, Bob will send a packet to Alice explicitly rejecting their session.}\label{alg:recv_x3} \begin{algorithmic} \Require $(\texttt{kid}_2,\ 2||0,\ X_3),\,\algn{Accept}$ @@ -792,7 +792,7 @@ When packet $X_3$ is received, Bob might refuse to start a session with Alice ba Packet types $X_3$ and $K_2$ represent the final messages of Noise XK and Noise KK, respectively. The peer who receives these packets can be sure that the remote peer has derived an identical Noise key already, and so the new key can be reliably used immediately. -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(A_3, C_1)=S_2$ and $\delta(R_2, C_1)=S_2$ -- A key confirmation for either the Noise XK initial handshake or Noise KK rekeying has been received. This peer must send an Acknowledgement, \figureref{packet:key_conf}, to let the remote peer know that it has been received.}\label{alg:key_conf} \begin{algorithmic} \Require $(\texttt{kid}^{\texttt{i} + 1}_{\texttt{r}},\ 3||c,\ C_1)$ @@ -807,7 +807,7 @@ Packet types $X_3$ and $K_2$ represent the final messages of Noise XK and Noise Packet types $C_2$ and $D$ have trivial transition algorithms. They merely decrypt the received packet with the most recent key exchange key, $\texttt{kek}^\texttt{i}_\texttt{r}$. If authentication succeeds then $\zeta$ transitions state. -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(S_2, \tau)=R_1$ -- This peer, whom will be henceforth be referred to as Alice, has decided to initiate rekeying. They create and send a Rekey Initiation packet, \figureref{packet:rekey}, to the remote peer, Bob. The entire Noise KK message is encrypted under the key exchange key for additional security.} \begin{algorithmic} \State $\texttt{kid}^{\texttt{i} + 1}_\texttt{r} \gets \KID()$ @@ -821,7 +821,7 @@ Packet types $C_2$ and $D$ have trivial transition algorithms. They merely decry \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(S_2, K_1)=R_2$ and $\delta(R_1, K_1)=R_2$ -- Bob has received Alice's request to rekey and sends a Rekey Completion packet, \figureref{packet:rekey}, in reply. Bob has now finished Noise KK and has obtained a new Noise key. A new pair of key ids are generated so Bob can tell apart packets encrypted with the new key from those encrypted with the previous key.} \begin{algorithmic} \Require $(\texttt{kid}^\texttt{i}_\texttt{r},\ 5||c,\ K_1)$ @@ -844,7 +844,7 @@ Packet types $C_2$ and $D$ have trivial transition algorithms. They merely decry \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(R_1, K_2)=S_1$ -- Alice has received Bob's reply and so can also finish Noise KK. They send a Key Confirmation, \figureref{packet:key_conf}, to signal the completion of the handshake. The second to last Noise key is deleted for forward secrecy.} \begin{algorithmic} \Require $(\texttt{kid}^\texttt{i}_\texttt{r},\ 6||c,\ K_2)$ @@ -864,7 +864,7 @@ Packet types $C_2$ and $D$ have trivial transition algorithms. They merely decry We want to minimize the number of Noise keys alive in memory for the sake of perfect forward secrecy, in case the content of a peer's memory is stolen by an attacker. However we have to keep at least the last 2 keys around for reliability. Otherwise a packet that was sent before rekeying could arrive out of order, after the rekey is completed, and not be decryptable. -\begin{algorithm} +\begin{algorithm}[H] \caption{Data transport send -- The upper protocol has decided to send the remote peer an encrypted payload. Input \texttt{payload} is an arbitrary string provided by the upper protocol.} \begin{algorithmic} \Require $\texttt{payload}$ @@ -874,7 +874,7 @@ We want to minimize the number of Noise keys alive in memory for the sake of per \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Data transport received -- A data transport packet has been received. It is decrypted and its payload is given to the upper protocol to handle.} \begin{algorithmic} \Require $(\texttt{kid}^i_r,\ 8||c,\ P)$ @@ -914,7 +914,7 @@ Without some kind of mitigation, an attacker consume a small amount of their ban The protocol is initialized with a random 256-bit string \texttt{salt}. As the name implies, this will be used as a salt for SHA-512. When Alice sends their first Hello packet, they execute \algorithmref{alg:challenge_empty}, and append the output to their Hello packet. Under normal conditions Bob will simply ignore this part of Alice's Hello packet and allow the key exchange protocol to proceed. However if Bob is under load, Bob may choose to execute \algorithmref{alg:challenge_create}. This algorithm is overwhelmingly likely to output a \texttt{challenge}, which is then sent to Alice. Alice then computes \algorithmref{alg:challenge_response} upon Bob's \texttt{challenge}, which outputs a \texttt{response}. \texttt{response} is re-appended to Alice's Hello packet, and it is resent to Bob. Both \texttt{response} and \texttt{challenge} are a sequence of bytes with identical internal structure, documented in \figureref{packet:challenge_internal}. -\begin{figure} +\begin{figure}[H] \caption{Bob's Challenge $\texttt{challenge}$, and Alice's Response $\texttt{response}$ -- This is the internal structure of both the challenge and response strings Alice and Bob send each other. They are included as payloads within a larger packet.}\label{packet:challenge_internal} \centering \begin{bytefield}[bitwidth=6.5em]{4} @@ -923,7 +923,7 @@ The protocol is initialized with a random 256-bit string \texttt{salt}. As the n \end{bytefield} \end{figure} -\begin{figure} +\begin{figure}[H] \caption{Challenge Packet -- Whereas Alice's response is sent appended to their Hello packet, Bob's challenge is sent on its own. This usually means it requires a small amount of framing to be considered a well-formed packet that Alice can receive. The ``Peer Identifier'' is defined by the upper protocol to allow for multiplexing between multiple peers. In ZSSP, the Peer Identifier is set to the key id included in Alice's Hello packet, $X_1\texttt{.key\_id}$. In ZSSP challenge packets are identified with packet type number `9'.}\label{packet:challenge} \centering \begin{bytefield}[bitwidth=6em]{4} @@ -942,7 +942,7 @@ To prevent a legitimate Alice from unintentionally straining Bob while Bob is un Implementations may choose to rotate the \texttt{salt} variable periodically. While the protocol as we have described it so far has strong replay protection, it does not automatically expire sent challenges after a set amount of time. This means challenges might never expire, and could be saved up to be used later. We do not consider this a practical DOS attack vector, but for applications that do, rotating \texttt{salt} on a periodic schedule is one of the best solutions. -\begin{algorithm} +\begin{algorithm}[H] \caption{Alice generates a null response -- The returned value is appended to Alice's initial Hello packet to Bob.}\label{alg:challenge_empty} \begin{algorithmic} \State $\texttt{response.counter} \gets 0^{64}$ @@ -952,7 +952,7 @@ Implementations may choose to rotate the \texttt{salt} variable periodically. Wh \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Bob decides whether to issue a challenge to a Hello packet -- Input \texttt{response} is the last 32 bytes of Alice's Hello packet. Input $a$ contains the ``address'' of the lower datagram protocol from which the packet was received. So when the datagram protocol is UDP, $a$ contains the IP address and port of Alice. This algorithm is stateful, so it has a stateful counter $d$, and can remember counter values $c$ it has seen before, similar to counter-based AEAD decryption. If $\bot$ is returned, this means Bob will not be sent a challenge packet, but instead Alice's Hello packet will be allowed to be processed by the upper protocol.}\label{alg:challenge_create} \begin{algorithmic} \Require $\texttt{response},\, a$ @@ -971,7 +971,7 @@ Implementations may choose to rotate the \texttt{salt} variable periodically. Wh \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Alice responds to a challenge from Bob -- Input \texttt{previous\_response} is the contents of the \texttt{response} that was appended to Alice's last sent Hello packet. The returned value replaces it in the next Hello packet.}\label{alg:challenge_response} \begin{algorithmic} \Require $\texttt{challenge},\, \texttt{previous\_response}$ @@ -1005,7 +1005,7 @@ The upper protocol must identify every packet with a \emph{packet nonce}. For ea Implementations must support a fragment count of at least 48. Implementations may choose and enforce a maximum length of the final reassembled packet. Since fragment numbers and counts are stored as 1 byte integers, the maximum possible fragment count that can be encoded is 256. If the fragment count for a packet is 256, the fragment count field of the packet header should be set to 0. Implementations that choose to support fragment counts of 256 must interpret a 0 in the fragment count field as a fragment count of 256. -\begin{figure} +\begin{figure}[H] \caption{Header of the ZeroTier Fragmentation Protocol -- The ``Peer Identifier'' is given by the upper protocol to allow for multiplexing between multiple peers. In ZSSP, the Peer Identifier is set to the most recent key id of the remote peer. The ``Packet Nonce'' is also given by the upper protocol, it is expected to contain metadata on behalf of the upper protocol, and as the name implies it should be unique per packet. \figureref{fig:header_nonce} describes how this Nonce is constructed in ZSSP.}\label{packet:header} \centering \begin{bytefield}[bitwidth=6.5em]{4} @@ -1015,7 +1015,7 @@ Implementations must support a fragment count of at least 48. Implementations ma \end{bytefield} \end{figure} -\begin{figure} +\begin{figure}[H] \caption{Construction of the packet nonce within ZSSP -- Notice that this construction is identical with the ZSSP AES-GCM Nonce, but with two less bytes of padding.}\label{fig:header_nonce} \centering \begin{bytefield}[bitwidth=3.5em]{9} @@ -1057,14 +1057,14 @@ The Noise XK handshake packets, as specified by Noise, do not use a unique count We are going to prove that the ZSSP header authentication algorithm is existentially unforgeable under an adaptive chosen message attack. However our algorithm does not fit the standard syntax of message authentication codes. This means we must prove security under a different security experiment than the standard message authentication code experiment. We choose to use the syntax of a message transmission scheme \cite{modern_crypto}, and prove authenticated communication under the secure message transmission experiment, \algorithmref{alg:header_auth}. -\begin{definition}[Message Transmission Scheme \cite{modern_crypto}] +\begin{definition}[H][Message Transmission Scheme \cite{modern_crypto}] A message transmission scheme is a tuple of algorithms $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$. \algn{Gen} is the key generation algorithm, \algn{EncMac} is the authenticated encryption algorithm, and \algn{Dec} is the decryption and verification algorithm. A message transmission scheme is \emph{correct} if for all keys $k\gets \algn{Gen}(1^n)$ and messages $m$, $$\algn{Dec}_k(\algn{EncMac}_k(m)) = m.$$ \end{definition} -\begin{algorithm} +\begin{algorithm}[H] \caption{The secure message transmission experiment, $\algn{Auth}_{\mathcal{A},\, \Pi}(n)$ \cite{modern_crypto}}\label{alg:header_auth} \begin{algorithmic} \Require $n$ @@ -1076,12 +1076,12 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithmic} \end{algorithm} -\begin{definition}[Authenticated Communication \cite{modern_crypto}] +\begin{definition}[H][Authenticated Communication \cite{modern_crypto}] Message transmission scheme, $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$ achieves authenticated communication if for all probabilistic poly-time adversaries $\mathcal{A}$, there exists a negligible function $\algn{negl}$ such that: $$\prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] \leq \algn{negl}(n).$$ \end{definition} -\begin{definition}[Pseudorandom Permutation \cite{modern_crypto}] +\begin{definition}[H][Pseudorandom Permutation \cite{modern_crypto}] Given the security parameter $n$, a keyed permutation, $F$, and a probabilistic poly-time distinguishers $D$, define the advantage of $D$ to be: $$\mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) = |\prob[D^{F_k(\cdot), F_k^{-1}(\cdot)}(1^n) = 1] - \prob[D^{f(\cdot), f^{-1}(\cdot)}(1^n) = 1]|,$$ where $k\gets\$\,\{0,1\}^n$ and $f$ is a truly random permutation. @@ -1091,7 +1091,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{definition} -\begin{algorithm} +\begin{algorithm}[H] \caption{$\algn{Gen}(1^n)$ of the ZSSP header authentication algorithm -- We are implicitly assuming here that the header key is truly random, or at least computationally indistinguishable from random.}\label{alg:header_gen} \begin{algorithmic} \Require $1^n$ @@ -1100,7 +1100,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{$\algn{EncMac}_k(m)$ of the ZSSP header authentication algorithm -- Input $m$ is bytes 4 to 20 of a fragment, which is the portion of the fragment that ZFP encrypts. Function $F$ is AES-256. For the sake of the security proof we will assume that the input block size of AES-256 is not constant, but instead is equal to $n$. For this reason we also assume $m$ is able to grow to be of size $n$.}\label{alg:header_encmac} \begin{algorithmic} \Require $m$ @@ -1108,7 +1108,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we assume that the size of the packet nonce $N$ is able to grow proportionally to $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} \begin{algorithmic} \Require $c$ @@ -1122,14 +1122,14 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} -\begin{theorem}\label{theorem:frag_proof} +\begin{theorem}[H]\label{theorem:frag_proof} If $F:\{0,1\}^n\to\{0,1\}^n$ is a strong psuedorandom permutation, and $\prob[\algn{Vrfy}(N) = 1]$ is negligible in $|N|$ for uniform random $N$, then $\Pi=(\text{\algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, \algorithmref{alg:header_dec}})$ achieves authenticated communication, with advantage bound: $$\prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] \leq \mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) + \frac{2^n}{2^n-q(n)}\prob[\algn{Vrfy}(N) = 1],$$ where $N$ is uniform random, and $q(n)$ is the upper bound on the total number of queries $\mathcal{A}$ asks its oracle. \end{theorem} -\begin{proof} +\begin{proof}[H] Given $\mathcal{A}$ an adversary for $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$, we construct $D$, \algorithmref{alg:header_d}, a distinguisher for $F$. Assume without loss of generality $\mathcal{A}$ will never output a string which it has previously received from its oracle. @@ -1168,7 +1168,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{flalign*} \end{proof} -\begin{algorithm} +\begin{algorithm}[H] \caption{The implementation of $\algn{Vrfy}(N)$ for ZSSP -- We are assuming that the input $N$ is being interpreted as $p||c$, the packet nonce construction of \figureref{fig:header_nonce}. $D$ is a stateful, finite array of integers, initialized to -1, that stores the value of previously authenticated counters. $D$ is updated after ZSSP decrypts a received packet. ZSSP explicitly does not verify that the padding is zero, for the sake of possible future revisions.}\label{alg:header_vrfy} \begin{algorithmic} \Require $p||c$ @@ -1192,7 +1192,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \algorithmref{alg:header_vrfy} shows how ZSSP validates packet nonces. Notice that $p$ must be in range 1 through 8 to be considered valid. Also notice that, regardless of the value of $p$, $c$ must fall into some range of integers that is at most $2^{24}$ in size. If we assume the adversary makes no oracle queries, this implies that the advantage against ZSSP header authentication is bound above by -\begin{flalign*} +\begin{flalign*}[H] \prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] &\leq \mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) + \prob[\algn{Vrfy}(N) = 1] \\ &\leq \algn{negl}(n) + \frac{8}{2^8}\cdot\frac{2^{24}}{2^{64}} \\ &= \algn{negl}(n) + 2^{-5}\cdot 2^{-40} \\ From baf8a059f270214effcfbefa3d7d38be8313a35b Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Thu, 26 Oct 2023 11:07:01 -0400 Subject: [PATCH 10/44] updated whitepaper with more common language --- whitepaper/zssp.pdf | Bin 422149 -> 423717 bytes whitepaper/zssp.tex | 37 ++++++++++++++++++++----------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index a222252baf5c8ca574dfa9c4c38ae73c35899e1b..a5f7ecae41c16e8418dac52fbbcec5bb55be6d61 100644 GIT binary patch delta 144121 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

#B5DSH0s+>5KEL%EkV1sXvQ6^W5*+t_Z)skEi}# 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 LT&k+B{%%|V2G;ZG diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index df80997..a4a8b56 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -171,7 +171,7 @@ If we disable all security features, we get \emph{Opportunistic Mode} ZSSP. This \hline Ratcheted Forward Secrecy & \color{BlueViolet} Yes & \color{BlueViolet} Yes \\ \hline - Silence is a Virtue & \color{BlueViolet} Yes & \color{Red} No \\ + Silence is Golden & \color{BlueViolet} Yes & \color{Red} No \\ \hline Key-Compromise Impersonation & \color{BlueViolet} Resistant & \color{BlueViolet} Resistant \\ \hline @@ -191,7 +191,7 @@ If we disable all security features, we get \emph{Opportunistic Mode} ZSSP. This \item Forward Secret Identity Hiding -- The identities of peers are always either not transmitted or are encrypted with forward secrecy to an authenticated peer. An attacker cannot test candidate static public keys without the corresponding private key. \item Quantum Forward Secrecy -- A quantum computer powerful enough to break elliptic-curve cryptography is not sufficient to decrypt recordings of messages sent between peers. \item Ratcheted Forward Secrecy -- In order to break forward secrecy an attacker must record and break every single key exchange two peers perform, in order, starting from the first key exchange that uses a ratchet key the attacker has access to. This, among other things, improves forward secrecy under a weak or compromised random number generator. - \item Silence is a Virtue -- A peer will not respond to any anonymous, inauthentic or replayed message. + \item Silence is Golden -- A peer will not respond to any anonymous, inauthentic or replayed message. \item Key-Compromise Impersonation -- The attacker has the static private keys of two peers, and attempts impersonate some other peer to them. \item Compromise-and-Impersonate -- The attacker has the static private keys of a single peer, and attempts to impersonate them to any other peer. \item Single Key-Compromise MitM -- The attacker has the static private keys of a single peer, and attempts to become a Man-in-the-Middle between them and any other peer. @@ -218,7 +218,7 @@ If this is the first time Alice and Bob are communicating, Alice will send an em Since the ratchet fingerprint is included in the first message of Noise XK, with weak forward secrecy, there is some concern it could violate identity hiding. However, since the ratchet fingerprint is a constantly rotating ASK, information about the communicating peers can only be leaked by it if the same ratchet fingerprint is used twice. In normal operation, not only will the ratchet fingerprint only be used once, but it will be deleted with the ratchet key when the key exchange is completed, providing replay protection. Furthermore, if the same ratchet fingerprint is used more than once, all this will reveal is that the same pair of peers are initiating a session with each other, and only if Bob's private key is compromised. -Actually this protocol give ZSSP a lot of useful properties. For one thing Bob can require Alice to include a recognized, nonempty ratchet fingerprint in their first message. This is how ZSSP can achieve Silence is a Virtue despite the fact that the first Noise XK packet is usually anonymous and replayable. It also allows Bob to authenticate Alice's identity immediately, as opposed to waiting for Alice's next message. This protocol also is integral to how Alice and Bob are able to coordinate the ratchet key management described in \sectionref{sec:key_management} without any additional round trips. +Actually this protocol give ZSSP a lot of useful properties. For one thing Bob can require Alice to include a recognized, nonempty ratchet fingerprint in their first message. This is how ZSSP can achieve ``Silence is Golden'' despite the fact that the first Noise XK packet is usually anonymous and replayable. It also allows Bob to authenticate Alice's identity immediately, as opposed to waiting for Alice's next message. This protocol also is integral to how Alice and Bob are able to coordinate the ratchet key management described in \sectionref{sec:key_management} without any additional round trips. If Alice has corrupted their storage, Alice can either send the empty string or send whatever corrupted ratchet fingerprint they still have to Bob. If Bob sees the empty string, and Bob is in opportunistic mode, Bob completes the key exchange with the zero ratchet key, making it possible for Alice to connect. If Alice sent a corrupted ratchet fingerprint, or Bob is the one who corrupted their storage, and if Bob is in opportunistic mode, Bob will ignore the unrecognized ratchet fingerprint and instead uses the zero ratchet key as the PSK. When Alice receives Bob's reply, if Alice is in opportunistic mode, Alice will decrypt Bob's reply with both the ratchet key they intended to use and the zero ratchet key, and go with the one that successfully decrypts the reply. This allows Alice and Bob to reset their ratchet keys in such a way that an attacker cannot perform a downgrade attack without at least one peer's static private key. And if Alice and Bob are in persistent mode, a downgrade attack is simply not possible. @@ -475,7 +475,7 @@ At the end of this section we will have defined $\zeta$, which is the high-level \end{itemize} The timer system has the property that all timers are generated locally, checked locally, and are never sent ``over the wire''. This has the advantage of making it difficult to impossible for a remote attacker to manipulate a peer's timers. The system has also been intentionally designed to make it impossible for $\zeta$ to ever get indefinitely stuck in one state. If it could, it would open up the possibility that an attacker could intentionally cause this to happen, which would be a form of a DOS attack. The rekeying timer for state $S_1$ is randomized to deter traffic analysis of ZSSP, and to prevent peers from simultaneously entering state $R_1$, which would be redundant and inefficient. - It is important to note from this definition that there is no such thing as a ``heartbeat'' in ZKE, nor ZSSP as a whole. ZKE, on its own, does not require ``keep-alive'' messages to be periodically sent between peers. Instead, the only packets ZKE will automatically send are those which are strictly necessary to maintain strong forward secrecy. This makes ZKE ideal for applications where silence is considered a virtue. It is up to the upper protocol to implement a heartbeat or keep-alive system if it is deemed necessary. + It is important to note from this definition that there is no such thing as a ``heartbeat'' in ZKE, nor ZSSP as a whole. ZKE, on its own, does not require ``keep-alive'' messages to be periodically sent between peers. Instead, the only packets ZKE will automatically send are those which are strictly necessary to maintain strong forward secrecy. This makes ZKE ideal for applications where a silent protocol is preferred. It is up to the upper protocol to implement a heartbeat or keep-alive system if it is deemed necessary. $\zeta$, being a cryptographic protocol, also has many rules relating to how it must cryptographically process incoming or outgoing packets, and how those packets can influence state transitions of $\beta$. Below is a numbered list of all of these rules. \begin{enumerate} @@ -788,7 +788,7 @@ Similarly, the new ratchet key and fingerprint will not have been derived by the \end{algorithmic} \end{algorithm} -When packet $X_3$ is received, Bob might refuse to start a session with Alice based on their static key and identity. The preferred way for Bob to do this is to simply do nothing, and ignore Alice's packets. This would follow the ``silence is a virtue" principle of security. However there are some applications where, usually for UX reasons, Alice needs to be able tell apart having a bad connection with Bob from Bob rejecting Alice's identity. If Bob always goes silent Alice has no reliable way to tell these two situations apart. Since both Bob and Alice have the key exchange key at this point in the handshake, it was a very natural and secure extension of the protocol to allow Bob to notify Alice that the session has been refused. +When packet $X_3$ is received, Bob might refuse to start a session with Alice based on their static key and identity. The preferred way for Bob to do this is to simply do nothing, and ignore Alice's packets. This would follow the ``Silence is Golden" principle of security. However there are some applications where, usually for UX reasons, Alice needs to be able tell apart having a bad connection with Bob from Bob rejecting Alice's identity. If Bob always goes silent Alice has no reliable way to tell these two situations apart. Since both Bob and Alice have the key exchange key at this point in the handshake, it was a very natural and secure extension of the protocol to allow Bob to notify Alice that the session has been refused. Packet types $X_3$ and $K_2$ represent the final messages of Noise XK and Noise KK, respectively. The peer who receives these packets can be sure that the remote peer has derived an identical Noise key already, and so the new key can be reliably used immediately. @@ -885,15 +885,15 @@ We want to minimize the number of Noise keys alive in memory for the sake of per \subsection{Security Flags}\label{sec:security_flags} -ZKE has 4 security flags, $\pi_1, \pi_2, \pi_3 \andb \pi_4$. Each of these flags is a bit that, when sent to 1, change the behavior of the protocol to be more secure. In particular, setting $\pi_2 = \pi_3 = 1$ dramatically improve ZKE's post-compromise resistance, and setting $\pi_1 = \pi_4 = 1$ obeys the ``Silence is a Virtue'' principle of security. However setting these flags to 1 come with usability downsides that could make ZKE unsuitable for particular applications or particular users. Hence why these features are flags that the upper protocol is allowed to choose between. +ZKE has 4 security flags, $\pi_1, \pi_2, \pi_3 \andb \pi_4$. Each of these flags is a bit that, when sent to 1, change the behavior of the protocol to be more secure. In particular, setting $\pi_2 = \pi_3 = 1$ dramatically improve ZKE's post-compromise resistance, and setting $\pi_1 = \pi_4 = 1$ obeys the ``Silence is Golden'' principle of security. However setting these flags to 1 come with usability downsides that could make ZKE unsuitable for particular applications or particular users. Hence why these features are flags that the upper protocol is allowed to choose between. Below is a description of each security flag, and the security versus usability tradeoff that occurs when it is set to 1. It should be noted that all communicating peers need not have the exact same set of flags. It will be possible for them to communicate even if their flags differ. Also, a peer may set their flags per remote peer, this is why flags $\pi_3$ and $\pi_4$ are returned by a function that takes as input the identity of the remote peer. This would, for example, allow a user to place much stricter authentication requirements upon a credentials server than a friend's laptop. \begin{itemize} - \item Hello Requires Recognized Ratchet, $\pi_1$ -- Used in \algorithmref{alg:recv_x1}. When this flag is set Alice is required to present a recognized, nonzero ratchet fingerprint, or else Bob will remain silent. This satisfies the Silence is a Virtue principle of security, since a peer can only acquire a valid ratchet fingerprint through some pre-existing trust relationship. However, this means a legitimate Alice must establish out-of-band an initial ratchet key and fingerprint with Bob. Bob and Alice can share a one time password to be used as the first ratchet key and fingerprint, or Bob can connect to Alice first if Alice has $\pi_1=0$, or Bob can temporarily set $\pi_1=0$ until Alice has completed their first key exchange. + \item Hello Requires Recognized Ratchet, $\pi_1$ -- Used in \algorithmref{alg:recv_x1}. When this flag is set Alice is required to present a recognized, nonzero ratchet fingerprint, or else Bob will remain silent. This satisfies the Silence is Golden principle of security, since a peer can only acquire a valid ratchet fingerprint through some pre-existing trust relationship. However, this means a legitimate Alice must establish out-of-band an initial ratchet key and fingerprint with Bob. Bob and Alice can share a one time password to be used as the first ratchet key and fingerprint, or Bob can connect to Alice first if Alice has $\pi_1=0$, or Bob can temporarily set $\pi_1=0$ until Alice has completed their first key exchange. \item Initiator Disallows Downgrade, $\pi_2$ -- Used in \algorithmref{alg:recv_x2}. When this flag is set Alice is resistant to Compromise-And-Impersonate and MitM, because Alice will never allow their ratchet key to be reset to zero. However it requires that Bob never accidentally corrupt their persistent ratchet key. \item Responder Disallows Downgrade, $\pi_3$ -- Used in \algorithmref{alg:recv_x3}. When this flag is set Bob is resistant to Compromise-And-Impersonate and MitM, because Bob will never allow their ratchet key to be reset to zero. However it requires that Alice never accidentally corrupt their ratchet key. It is recommended that $\pi_2=\pi_3$ for any given pair of peers. - \item Responder Silently Rejects, $\pi_4$ -- Used in \algorithmref{alg:recv_x3}. When this flag is set Bob will not send a session rejected packet to Alice, but instead just silently ignore Alice if Bob does not approve of their identity. This also follows the Silence is a Virtue principle, but it prevents Alice from knowing Bob will never allow Alice to connect in their current configuration. In this state Alice will keep attempting the handshake until the upper protocol times-out the session. It is recommended that $\pi_1=\pi_4$ for any given pair of peers. + \item Responder Silently Rejects, $\pi_4$ -- Used in \algorithmref{alg:recv_x3}. When this flag is set Bob will not send a session rejected packet to Alice, but instead just silently ignore Alice if Bob does not approve of their identity. This also follows the Silence is Golden principle, but it prevents Alice from knowing Bob will never allow Alice to connect in their current configuration. In this state Alice will keep attempting the handshake until the upper protocol times-out the session. It is recommended that $\pi_1=\pi_4$ for any given pair of peers. \end{itemize} When $\pi_2 = \pi_3 = 1$, ZKE strictly requires all users to either have access to reliable persistent storage, or have access to some out-of-band mechanism for one to be reauthenticated in the event they lose or corrupt their persistent storage. This, unfortunately, is not always feasible in a real-time environment. For one thing there are many embedded devices which only have access to persistent ROM, but for another, there are far too many realistic scenarios in which an inexperienced user accidentally loses or corrupts their persistent storage. People often do not realize that they cannot always rollback an application's data directory to a previously backed-up state, and expect the application to work. Furthermore, very few people have redundant drives, as in RAID, so a hard drive failure will likely cause them to lose most if not all of their ratchet keys. When a user can no longer connect with peers because they have corrupted their ratchet keys, some will perceive this as a bug with the application, rather than the protocol working as intended. @@ -991,7 +991,7 @@ Implementations may choose to rotate the \texttt{salt} variable periodically. Wh We have intentionally avoided involving any of the cryptographic variables from the upper key exchange protocol in this protocol. This is to enforce strict protocol independence, to avoid accidentally compromising some security property of the key exchange protocol. In particular this protocol will preserve identity hiding, since neither Bob nor Alice include static, identifying values in their challenge or response. From an analytical perspective, within most AKE security experiments, we can almost always prove that the security of a key exchange protocol plus ZCP can be reduced to the security of just the key exchange protocol. This is because an adversary which just attacks the key exchange is always capable of accurately simulating both Alice and Bob's side of ZCP to an adversary which attacks both the key exchange and ZCP. -This protocol violates the ``Silence is a Virtue'' principle of security. So we recommend disabling it entirely if security flag $\pi_1=1$. In general we expect many administrators will have this protocol turned off by default, but will manually enable it in the event a CPU exhaustion attack is detected. Just the fact that this protocol is available to be enabled at any time will likely deter attackers from performing a CPU exhaustion attack against ZSSP. +This protocol violates the Silence is Golden principle of security. So we recommend disabling it entirely if security flag $\pi_1=1$. In general we expect many administrators will have this protocol turned off by default, but will manually enable it in the event a CPU exhaustion attack is detected. Just the fact that this protocol is available to be enabled at any time will likely deter attackers from performing a CPU exhaustion attack against ZSSP. \section{ZeroTier Fragmentation Protocol} @@ -1053,11 +1053,11 @@ The Hello packet defragmentation buffer is significantly easier to DOS than a se The challenge packet, \figureref{packet:challenge}, is small enough that it never requires fragmentation. So Bob does not use the header key to authenticate the header of the challenge packet they send Alice. Bob would not be able to derive the header key anyways, since Bob has not processed Alice's Hello packet. The last 8 bytes of the packet nonce are randomized so challenge packets do not collide with each other. The Noise XK handshake packets, as specified by Noise, do not use a unique counter, but instead use counter values of 0 or 1. This creates a problem for fragmenting Hello packets, $X_1$ and Response packets, $X_2$, because we need a way for each of these packets to be fragmented with unique packet nonce values, and not just packet nonce values of $0||0$ and $1||0$. Otherwise, these packets will end up colliding and corrupting each other in the defragmentation buffer. For $X_1$ packets, the last 8 bytes of the final AES-GCM MAC is used as the counter value within the packet nonce. This essentially treats the MAC as a random number which is attached to each fragment. The MAC was chosen instead of an actual random number because it allows Bob to trivially authenticate that the received packet nonce is exactly the packet nonce Alice sent, by simply checking if it is equal to the MAC. A modification of this policy is used for $X_2$ packets. Since we use ZPF authenticated headers with the fragments of $X_2$ packets, to provide robust authentication we want the counter value used to always be in a $2^{16}$ integer range. For this reason we only use the last 2 bytes of the final AES-GCM MAC as the random counter value for the packet nonce of $X_2$ fragments. The risk of accidental collision is far, far less than that of $X_1$ packets, so we consider 2 bytes sufficient. $X_3$ use a counter value of 0, since, due to the structure of ZKE, a packet nonce of $2||0$ will always be unique for the $X_3$ packet of a given key exchange. Both peers have synchronized state at this point in the handshake, so Alice can statefully prevent two different, colliding $X_3$ packets from being generated. -\subsection{Proof of Security} +\subsection{Mathematical Background} We are going to prove that the ZSSP header authentication algorithm is existentially unforgeable under an adaptive chosen message attack. However our algorithm does not fit the standard syntax of message authentication codes. This means we must prove security under a different security experiment than the standard message authentication code experiment. We choose to use the syntax of a message transmission scheme \cite{modern_crypto}, and prove authenticated communication under the secure message transmission experiment, \algorithmref{alg:header_auth}. -\begin{definition}[H][Message Transmission Scheme \cite{modern_crypto}] +\begin{definition}[H][Message Transmission Scheme \cite{modern_crypto}]\label{def:mts} A message transmission scheme is a tuple of algorithms $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$. \algn{Gen} is the key generation algorithm, \algn{EncMac} is the authenticated encryption algorithm, and \algn{Dec} is the decryption and verification algorithm. A message transmission scheme is \emph{correct} if for all keys $k\gets \algn{Gen}(1^n)$ and messages $m$, @@ -1082,14 +1082,17 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{definition} \begin{definition}[H][Pseudorandom Permutation \cite{modern_crypto}] - Given the security parameter $n$, a keyed permutation, $F$, and a probabilistic poly-time distinguishers $D$, define the advantage of $D$ to be: + Given the security parameter $n$, a keyed permutation, $F_k:\{0,1\}^n\to\{0,1\}^n$, and a probabilistic poly-time distinguishers $D$, define the advantage of $D$ to be: $$\mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) = |\prob[D^{F_k(\cdot), F_k^{-1}(\cdot)}(1^n) = 1] - \prob[D^{f(\cdot), f^{-1}(\cdot)}(1^n) = 1]|,$$ - where $k\gets\$\,\{0,1\}^n$ and $f$ is a truly random permutation. + where $k\gets\$\,\{0,1\}^n$ and $f:\{0,1\}^n\to\{0,1\}^n$ is a truly random permutation. - An efficient, keyed permutation, $F$, is a strong pseudorandom permutation if for all probabilistic poly-time distinguishers $D$, there exists a negligible function $\algn{negl}$ such that: + An efficient, keyed permutation, $F_k$, is a strong pseudorandom permutation if for all probabilistic poly-time distinguishers $D$, there exists a negligible function $\algn{negl}$ such that: $$\mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) \leq \algn{negl}(n),$$ \end{definition} +\subsection{Proof of Security} + +Algorithms \algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, and \algorithmref{alg:header_dec} define the ZSSP header authentication algorithm using the syntax of a Message Transmission Scheme, \definitionref{def:mts}. These definitions are then used in \theoremref{theorem:frag_proof} to reduce the security of the ZSSP header authentication algorithm to the security of AES-256. \begin{algorithm}[H] \caption{$\algn{Gen}(1^n)$ of the ZSSP header authentication algorithm -- We are implicitly assuming here that the header key is truly random, or at least computationally indistinguishable from random.}\label{alg:header_gen} @@ -1109,7 +1112,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \begin{algorithm}[H] - \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we assume that the size of the packet nonce $N$ is able to grow proportionally to $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} + \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we assume that the the packet nonce $N$ is able to grow in size proportional to $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} \begin{algorithmic} \Require $c$ \State $m \gets F_k^{-1}(c)$ @@ -1123,7 +1126,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \begin{theorem}[H]\label{theorem:frag_proof} - If $F:\{0,1\}^n\to\{0,1\}^n$ is a strong psuedorandom permutation, and $\prob[\algn{Vrfy}(N) = 1]$ is negligible in $|N|$ for uniform random $N$, then $\Pi=(\text{\algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, \algorithmref{alg:header_dec}})$ achieves authenticated communication, with advantage bound: + If $F_k:\{0,1\}^n\to\{0,1\}^n$ is a strong psuedorandom permutation, and $\prob[\algn{Vrfy}(N) = 1]$ is a negligible function in $|N|$ for uniform random $N$, then $\Pi=(\text{\algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, \algorithmref{alg:header_dec}})$ achieves authenticated communication, with advantage bound: $$\prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] \leq \mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) + \frac{2^n}{2^n-q(n)}\prob[\algn{Vrfy}(N) = 1],$$ where $N$ is uniform random, and $q(n)$ is the upper bound on the total number of queries $\mathcal{A}$ asks its oracle. @@ -1150,7 +1153,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti Since $f$ is a truly random permutation, it is the case that $f^{-1}(\mathcal{A}^{f(\cdot)}(1^n))$ outputs a uniform random string, $m$, from the set of strings $\mathcal{A}$ did not queried to $f(\cdot)$. Let $Q$ be a random variable that represents the set of queries asked while executing $\mathcal{A}^{f(\cdot)}(1^n)$. - Given $m$ an output of $f$, let $\mathcal{N}(m)$ be defined as the packet nonce of $m$. + Let $m\in\{0,1\}^n$ be a uniform random variable, and let $\mathcal{N}(m)$ be defined as the packet nonce of $m$. \begin{flalign*} \text{So } \prob_f[D^{f(\cdot), f^{-1}(\cdot)}(1^n) = 1] &= \prob[\algn{Vrfy}(\mathcal{N}(f^{-1}(\mathcal{A}^{f(\cdot)}(1^n)))) = 1] \\ &= \prob[\algn{Vrfy}(\mathcal{N}(m)) = 1\,|\, m \notin Q] \\ From 67b4c90406194a7e40181410ec8b42dc9c9ff014 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 1 Nov 2023 15:47:59 -0400 Subject: [PATCH 11/44] improved expiration handling --- performance/src/zeta.rs | 122 ++++++++++++++++++++++------------------ 1 file changed, 68 insertions(+), 54 deletions(-) diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index ce2d6d4..e6199a8 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -38,7 +38,6 @@ pub struct Session { pub(crate) s_remote: Crypto::PublicKey, send_counter: AtomicU64, - session_has_expired: AtomicBool, pub(crate) window: Window, pub(crate) defrag: [Mutex>; SESSION_MAX_FRAGMENTS_OOO], @@ -236,20 +235,12 @@ fn create_ratchet_state( ) } fn get_counter(session: &Session, state: &MutableState) -> Option<(u64, bool)> { - if session.session_has_expired.load(Ordering::Relaxed) { - None - } else { - let c = session.send_counter.fetch_add(1, Ordering::Relaxed); - if c > THREAD_SAFE_COUNTER_HARD_EXPIRE { - session.session_has_expired.store(true, Ordering::SeqCst); - } - if c > state.key_creation_counter + EXPIRE_AFTER_USES { - session.session_has_expired.store(true, Ordering::SeqCst); - return None; - } - let rekey_at = state.key_creation_counter + Crypto::SETTINGS.rekey_after_key_uses; - Some((c, c > rekey_at)) + let c = session.send_counter.fetch_add(1, Ordering::Relaxed); + if c > THREAD_SAFE_COUNTER_HARD_EXPIRE || c > state.key_creation_counter + EXPIRE_AFTER_USES { + return None; } + let rekey_at = state.key_creation_counter + Crypto::SETTINGS.rekey_after_key_uses; + Some((c, c > rekey_at)) } /// Generate a random local key id that is currently unused. @@ -380,7 +371,6 @@ pub(crate) fn trans_to_a1>( queue_idx, s_remote, send_counter: AtomicU64::new(0), - session_has_expired: AtomicBool::new(false), window: Window::new(), state_machine_lock: Mutex::new(()), state: RwLock::new(MutableState { @@ -771,13 +761,14 @@ pub(crate) fn received_x2_trans( session: &Arc>, state: &MutableState, packet_type: u8, mut payload: ArrayVec, send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), -) -> bool { +) -> Result<(), bool> { if let Some((c, _)) = get_counter(session, &state) { if let (Some(kek), Some(kid)) = (state.key_ref(false).send.kek.as_ref(), state.key_ref(false).send.kid) { let nonce = to_nonce(packet_type, c); @@ -785,12 +776,12 @@ fn send_control( payload.extend(tag); set_header(&mut payload, kid.get(), &nonce); send(&mut payload, Some(&state.hk_send)); - true + Ok(()) } else { - false + Err(false) } } else { - false + Err(true) } } /// Corresponds to Transition Algorithm 4 found in Section 4.3. @@ -915,7 +906,6 @@ pub(crate) fn received_x3_trans::new(); c1.extend([0u8; HEADER_SIZE]); - send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send); + // This session is new so the result is overwhelmingly likely to be `Ok(())`. + let _ = send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send); drop(state); Ok((session, should_warn_missing_ratchet, reduced_service_time)) @@ -1041,16 +1032,24 @@ pub(crate) fn received_c1_trans::new(); c2.extend([0u8; HEADER_SIZE]); - if !send_control(session, &state, PACKET_TYPE_ACK, c2, send) { - return Err(fault!(OutOfSequence, true)); + match send_control(session, &state, PACKET_TYPE_ACK, c2, send) { + Ok(()) => Ok((just_establised, reduced_service_time)), + Err(true) => { + drop(state); + session.expire(); + Err(fault!(ExpiredCounter, true)) + } + Err(false) => Err(fault!(OutOfSequence, true)), } - - Ok((just_establised, reduced_service_time)) } /// Corresponds to the trivial Transition Algorithm described for processing C_2 packets found in /// Section 4.3. @@ -1140,7 +1139,8 @@ pub(crate) fn received_d_trans( session.expire(); Ok(()) } -// Corresponds to the timeout timer Transition Algorithm described in Section 4.1 - Definition 3. +/// Corresponds to the timeout timer Transition Algorithm described in Section 4.1 - Definition 3. +/// Returns `None` if this session should be expired. fn timeout_trans>( app: &mut App, ctx: &Arc>, @@ -1243,8 +1243,10 @@ fn timeout_trans>( drop(kex_lock); let state = session.state.read().unwrap(); - send_control(session, &state, PACKET_TYPE_REKEY_INIT, k1, send); - Some(resend_timer) + match send_control(session, &state, PACKET_TYPE_REKEY_INIT, k1, send) { + Err(true) => None, + _ => Some(resend_timer), + } } ZetaAutomata::S1 { .. } => { log!(app, TimeoutKeyConfirm(session)); @@ -1261,6 +1263,7 @@ fn timeout_trans>( } } /// Corresponds to the timer rules of the Zeta State Machine found in Section 4.1 - Definition 3. +/// Returns `None` if this session should be expired. pub(crate) fn process_timers>( app: &mut App, ctx: &Arc>, @@ -1308,8 +1311,10 @@ pub(crate) fn process_timers> } }; - send_control(session, &state, packet_type, control_payload, send); - Some(resend_next) + match send_control(session, &state, packet_type, control_payload, send) { + Err(true) => None, + _ => Some(resend_next), + } } else { Some(ts) } @@ -1363,7 +1368,7 @@ pub(crate) fn received_k1_trans::initialize(PROTOCOL_NAME_NOISE_KK); let hash = &mut Crypto::Hash::new(); @@ -1452,12 +1457,11 @@ pub(crate) fn received_k1_trans Ok(reduced_service_time), + Err(false) => Err(fault!(OutOfSequence, true)), + Err(true) => Err(fault!(ExpiredCounter, true)), } - - Ok(reduced_service_time) })(); if matches!(result, Err(ReceiveError::ByzantineFault { .. })) { @@ -1503,7 +1507,7 @@ pub(crate) fn received_k2_trans::new(); c1.extend([0u8; HEADER_SIZE]); - if !send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send) { - return Err(fault!(OutOfSequence, true)); + match send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send) { + Ok(()) => Ok(reduced_service_time), + Err(false) => Err(fault!(OutOfSequence, true)), + Err(true) => Err(fault!(ExpiredCounter, true)), } - - Ok(reduced_service_time) } else { unreachable!() } @@ -1605,7 +1609,17 @@ pub(crate) fn send_payload( } let state = session.state.read().unwrap(); - let (c, mut should_rekey) = get_counter(session, &state).ok_or(SessionExpired)?; + if matches!(&state.beta, ZetaAutomata::Null) { + return Err(SessionExpired); + } + let (c, mut should_rekey) = match get_counter(session, &state) { + Some(c) => c, + None => { + drop(state); + session.expire(); + return Err(SessionExpired); + } + }; let nonce = to_nonce(PACKET_TYPE_DATA, c); let key = state.key_ref(false); @@ -1770,22 +1784,22 @@ impl Session { ) { let _kex_lock = self.state_machine_lock.lock().unwrap(); let mut state = self.state.write().unwrap(); - let mut kids_to_remove = None; if !matches!(&state.beta, ZetaAutomata::Null) { - self.session_has_expired.store(true, Ordering::Relaxed); - kids_to_remove = Some([state.keys[0].recv.kid, state.keys[1].recv.kid]); + state.beta = ZetaAutomata::Null; + + let kids_to_remove = [state.keys[0].recv.kid, state.keys[1].recv.kid]; state.keys = [DuplexKey::default(), DuplexKey::default()]; state.resend_timer = AtomicI64::new(i64::MAX); state.timeout_timer = i64::MAX; - state.beta = ZetaAutomata::Null; - } - if let Some(session_queue) = session_queue { - session_queue.remove(self.queue_idx); - } - if let (Some(ctx), Some(kids_to_remove)) = (ctx, kids_to_remove) { - let mut session_map = ctx.session_map.write().unwrap(); - for kid_recv in kids_to_remove.iter().flatten() { - session_map.remove(kid_recv); + + if let Some(session_queue) = session_queue { + session_queue.remove(self.queue_idx); + } + if let Some(ctx) = ctx { + let mut session_map = ctx.session_map.write().unwrap(); + for kid_recv in kids_to_remove.iter().flatten() { + session_map.remove(kid_recv); + } } } } From 139372c25fe051d3cc4dae58e6ed3539fba9ada0 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Mon, 6 Nov 2023 07:13:14 -0800 Subject: [PATCH 12/44] Fix single typo --- whitepaper/zssp.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index a4a8b56..75262e0 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -1203,7 +1203,7 @@ Algorithms \algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, and \end{flalign*} If we assume the adversary does make oracle queries, then their advantage bound is only negligibly larger than the advantage above. -The range $2^{24}$ was chosen because changing its value makes the protocol worst. One byte less of range, $2^{16}$, makes it possible for one peer to have $2^{16}$ of their packets dropped. This would put their counter out of the allowed range, and cause all future packets to be dropped. One byte more of range, $2^{32}$, makes it easier than it need to be for an attacker to forge a valid header. +The range $2^{24}$ was chosen because changing its value makes the protocol worse. One byte less of range, $2^{16}$, makes it possible for one peer to have $2^{16}$ of their packets dropped. This would put their counter out of the allowed range, and cause all future packets to be dropped. One byte more of range, $2^{32}$, makes it easier than it need to be for an attacker to forge a valid header. The security experiment we have used does not consider replay protection, however it should be clear that \algorithmref{alg:header_vrfy} does indeed provide replay protection. Once any packet is fully authenticated by ZSSP, and its counter is added to array $D$, it is the case that its packet nonce will no longer be valid according to \algorithmref{alg:header_vrfy}. If a packet is dropped or corrupted, its fragments could only be replayed until some other received packet updated the relevant index of $D$. This prevents a type of DOS attack where the attacker simply replays valid fragments to keep the defragmentation buffer full. From f4c1aeeeeaaad000ca91d00bb50b688d1de8f8cf Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Mon, 13 Nov 2023 11:52:12 -0500 Subject: [PATCH 13/44] added more debug info --- performance/examples/basic_test.rs | 12 +-- performance/examples/benchmark.rs | 10 +-- performance/src/result.rs | 83 ++++++++++++----- performance/src/zeta.rs | 137 +++++++++++++++-------------- performance/src/zssp.rs | 87 +++++++++--------- 5 files changed, 184 insertions(+), 145 deletions(-) diff --git a/performance/examples/basic_test.rs b/performance/examples/basic_test.rs index 0f8e449..526094a 100644 --- a/performance/examples/basic_test.rs +++ b/performance/examples/basic_test.rs @@ -187,9 +187,6 @@ fn alice_main( pkt, &mut output_data, ) { - Ok((Unassociated, _)) => { - //println!("[alice] ok"); - } Ok((Associated(_, event), _)) => match event { Established => { up = true; @@ -201,9 +198,12 @@ fn alice_main( Control => (), _ => panic!(), }, + Ok(_) => { + //println!("[alice] ok"); + } Err(e) => { println!("[alice] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e) = e { + if let ReceiveError::ByzantineFault(e, _) = e { assert!(!e.unnatural()) } } @@ -278,7 +278,6 @@ fn bob_main( pkt, &mut output_data, ) { - Ok((Unassociated, _)) => {} Ok((Associated(s, event), _)) => match event { NewSession | NewDowngradedSession => { println!("[bob] new session, took {}s", current_time as f32 / 1000.0); @@ -300,9 +299,10 @@ fn bob_main( Control => (), _ => panic!(), }, + Ok(_) => {} Err(e) => { println!("[bob] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e) = e { + if let ReceiveError::ByzantineFault(e, _) = e { assert!(!e.unnatural()) } } diff --git a/performance/examples/benchmark.rs b/performance/examples/benchmark.rs index c304d14..415fc8b 100644 --- a/performance/examples/benchmark.rs +++ b/performance/examples/benchmark.rs @@ -156,9 +156,6 @@ fn alice_main( pkt, &mut output_data, ) { - Ok((Unassociated, _)) => { - //println!("[alice] ok"); - } Ok((Associated(_, event), _)) => match event { Established => { up = true; @@ -170,9 +167,10 @@ fn alice_main( Control => (), _ => panic!(), }, + Ok(_) => {} Err(e) => { println!("[alice] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e) = e { + if let ReceiveError::ByzantineFault(e, _) = e { assert!(!e.unnatural()) } } @@ -238,7 +236,6 @@ fn bob_main( pkt, &mut output_data, ) { - Ok((Unassociated, _)) => {} Ok((Associated(s, event), _)) => match event { NewSession | NewDowngradedSession => { println!("[bob] new session, took {}s", current_time as f32 / 1000.0); @@ -260,9 +257,10 @@ fn bob_main( Control => (), _ => panic!(), }, + Ok(_) => {} Err(e) => { println!("[bob] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e) = e { + if let ReceiveError::ByzantineFault(e, _) = e { assert!(!e.unnatural()) } } diff --git a/performance/src/result.rs b/performance/src/result.rs index 007d9f2..877ddd9 100644 --- a/performance/src/result.rs +++ b/performance/src/result.rs @@ -138,8 +138,11 @@ impl ByzantineFault { } /// An error that occurred during the receipt of a given packet. -#[derive(Debug)] -pub enum ReceiveError { +/// +/// Keep in mind that when one of these occurs it inherently means that the packet from the remote +/// peer has either not been authenticated or has failed authentication. As such, an attacker could +/// trigger any of these. These errors should only be used for debugging and tracing. +pub enum ReceiveError { /// A type of fault that can occur because a remote peer sent us a bad packet. /// Such packets will be ignored by ZSSP but a user of ZSSP might want to log /// them for debugging or tracing. @@ -147,11 +150,11 @@ pub enum ReceiveError { /// Because an unauthenticated remote peer can force these to occur with specific /// contained information, it is recommended in production to either drop these /// immediately, or log them safely to a local output stream and then drop them. - ByzantineFault(ByzantineFault), + ByzantineFault(ByzantineFault, Option>>), /// Rekeying failed and session secret has reached its hard usage count limit. /// The associated session will no longer function and has to be dropped. - MaxKeyLifetimeExceeded, + MaxKeyLifetimeExceeded(Arc>), /// Either the `ApplicationLayer::incoming_session` or `ApplicationLayer::check_accept_session` /// callback rejected the remote peer's attempt to establish a new session. @@ -163,19 +166,35 @@ pub enum ReceiveError { /// An error was returned by the `output_buffer` passed to receive. /// The received packet was dropped. - WriteError(std::io::Error), + WriteError(std::io::Error, Arc>), } macro_rules! fault { ($name:expr, $unnatural:ident) => { - ReceiveError::ByzantineFault(crate::result::ByzantineFault { - #[cfg(feature = "debug")] - file: file!(), - #[cfg(feature = "debug")] - line: line!(), - error: $name, - unnatural: $unnatural, - }) + ReceiveError::ByzantineFault( + crate::result::ByzantineFault { + #[cfg(feature = "debug")] + file: file!(), + #[cfg(feature = "debug")] + line: line!(), + error: $name, + unnatural: $unnatural, + }, + None, + ) + }; + ($name:expr, $unnatural:ident, $session:ident) => { + ReceiveError::ByzantineFault( + crate::result::ByzantineFault { + #[cfg(feature = "debug")] + file: file!(), + #[cfg(feature = "debug")] + line: line!(), + error: $name, + unnatural: $unnatural, + }, + Some($session.clone()), + ) }; } pub(crate) use fault; @@ -183,12 +202,17 @@ pub(crate) use fault; /// Result generated by the context packet receive function, with possible payloads. #[derive(Clone)] pub enum ReceiveOk { - /// Packet superficially appeared valid but is not associated with a session yet. + /// The received packet superficially appeared valid but is not associated with a session yet. /// This can occur because the packet was only a fragment of a larger packet, /// or if it was a control packet that does not go through full Noise authentication. Unassociated, - /// Packet was authentic and belongs to this specific session. + /// The received packet was authentic and belongs to this specific session. Associated(Arc>, SessionEvent), + /// The received packet was a fragment of a larger packet. + /// + /// ***The authenticity of this fragment cannot be fully known yet.*** + /// This return value should only be used for debugging and tracing purposes. + Fragment(Arc>), } /// Something that can occur to an associated session when a packet is received successfully, /// including receiving a payload of decrypted, authenticated data. @@ -290,15 +314,30 @@ impl Display for ByzantineFault { } impl Error for ByzantineFault {} -impl Display for ReceiveError { +impl std::fmt::Debug for ReceiveError +where + Crypto::SessionData: std::fmt::Debug, +{ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - ReceiveError::ByzantineFault(e) => e.fmt(f), - ReceiveError::MaxKeyLifetimeExceeded => f.write_str("max key lifetime exceeded"), - ReceiveError::Rejected => f.write_str("attempt to establish session rejected"), - ReceiveError::StorageError(e) => e.fmt(f), - ReceiveError::WriteError(e) => e.fmt(f), + Self::ByzantineFault(arg0, arg1) => f.debug_tuple("ByzantineFault").field(arg0).field(arg1).finish(), + Self::MaxKeyLifetimeExceeded(arg0) => f.debug_tuple("MaxKeyLifetimeExceeded").field(arg0).finish(), + Self::Rejected => f.write_str("Rejected"), + Self::StorageError(arg0) => f.debug_tuple("StorageError").field(arg0).finish(), + Self::WriteError(arg0, arg1) => f.debug_tuple("WriteError").field(arg0).field(arg1).finish(), } } } -impl Error for ReceiveError {} + +impl Display for ReceiveError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ReceiveError::ByzantineFault(e, _) => e.fmt(f), + ReceiveError::MaxKeyLifetimeExceeded(_) => f.write_str("max key lifetime exceeded"), + ReceiveError::Rejected => f.write_str("attempt to establish session rejected"), + ReceiveError::StorageError(e) => e.fmt(f), + ReceiveError::WriteError(e, _) => e.fmt(f), + } + } +} +impl Error for ReceiveError where Crypto::SessionData: std::fmt::Debug {} diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index e6199a8..a62cadf 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use std::io::Write; use std::num::NonZeroU32; use std::ops::{Deref, DerefMut}; -use std::sync::atomic::{AtomicBool, AtomicI64, AtomicU64, Ordering}; +use std::sync::atomic::{AtomicI64, AtomicU64, Ordering}; use std::sync::{Arc, Mutex, MutexGuard, RwLock, RwLockReadGuard, Weak}; use arrayvec::ArrayVec; @@ -425,7 +425,7 @@ pub(crate) fn received_x1_trans), -) -> Result, ReceiveError> { +) -> Result, ReceiveError> { use FaultType::*; // <- s // ... @@ -445,13 +445,13 @@ pub(crate) fn received_x1_trans), -) -> Result<(bool, Option), ReceiveError> { +) -> Result<(bool, Option), ReceiveError> { use FaultType::*; // <- e, ee, ekem1, psk // -> s, se if HANDSHAKE_RESPONSE_SIZE != x2.len() { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -588,25 +588,25 @@ pub(crate) fn received_x2_trans= COUNTER_WINDOW_MAX_SKIP_AHEAD || &n[AES_GCM_NONCE_SIZE - 3..] != &x2[x2.len() - 3..] { - return Err(fault!(FailedAuth, true)); + return Err(fault!(FailedAuth, true, session)); } let mut should_warn_missing_ratchet = false; let mut result = (|| { let a1 = if let ZetaAutomata::A1(a1) = &state.beta { a1 } else { - return Err(fault!(FailedAuth, true)); + return Err(fault!(FailedAuth, true, session)); }; let mut noise = a1.noise.clone(); let mut i = 0; // Process message pattern 2 e token. let e_remote = noise .read_e_no_init(hash, hmac, &mut i, &x2) - .ok_or(fault!(FailedAuth, true))?; + .ok_or_else(|| fault!(FailedAuth, true, session))?; // Process message pattern 2 ee token. noise.mix_dh(hmac, &a1.e_secret, &e_remote); // Process message pattern 2 ekem1 token. @@ -614,14 +614,14 @@ pub(crate) fn received_x2_trans::new(); x3.extend([0u8; HEADER_SIZE]); @@ -734,7 +734,7 @@ pub(crate) fn received_x2_trans), -) -> Result<(Arc>, bool, Option), ReceiveError> { +) -> Result<(Arc>, bool, Option), ReceiveError> { use FaultType::*; // -> s, se if x3.len() < HANDSHAKE_COMPLETION_MIN_SIZE { @@ -813,7 +813,8 @@ pub(crate) fn received_x3_trans), -) -> Result<(bool, Option), ReceiveError> { +) -> Result<(bool, Option), ReceiveError> { use FaultType::*; if c1.len() != KEY_CONFIRMATION_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -982,18 +983,18 @@ pub(crate) fn received_c1_trans { drop(state); session.expire(); - Err(fault!(ExpiredCounter, true)) + Err(fault!(ExpiredCounter, true, session)) } - Err(false) => Err(fault!(OutOfSequence, true)), + Err(false) => Err(fault!(OutOfSequence, true, session)), } } /// Corresponds to the trivial Transition Algorithm described for processing C_2 packets found in @@ -1060,11 +1061,11 @@ pub(crate) fn received_c2_trans Result, ReceiveError> { +) -> Result, ReceiveError> { use FaultType::*; if c2.len() != ACKNOWLEDGEMENT_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -1072,20 +1073,20 @@ pub(crate) fn received_c2_trans( kid: NonZeroU32, n: &[u8; AES_GCM_NONCE_SIZE], d: &[u8], -) -> Result<(), ReceiveError> { +) -> Result<(), ReceiveError> { use FaultType::*; if d.len() != SESSION_REJECTED_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); let state = session.state.read().unwrap(); if Some(kid) != state.key_ref(true).recv.kid || !matches!(&state.beta, ZetaAutomata::A3 { .. }) { - return Err(fault!(OutOfSequence, true)); + return Err(fault!(OutOfSequence, true, session)); } let tag = d[..].try_into().unwrap(); if !Crypto::Aead::decrypt_in_place(state.key_ref(true).recv.kek.as_ref().unwrap(), n, &[], &mut [], tag) { - return Err(fault!(FailedAuth, true)); + return Err(fault!(FailedAuth, true, session)); } let (_, c) = from_nonce(n); if !session.window.update(c) { - return Err(fault!(ExpiredCounter, true)); + return Err(fault!(ExpiredCounter, true, session)); } drop(state); @@ -1329,7 +1330,7 @@ pub(crate) fn received_k1_trans), -) -> Result, ReceiveError> { +) -> Result, ReceiveError> { use FaultType::*; // -> s // <- s @@ -1337,7 +1338,7 @@ pub(crate) fn received_k1_trans psk, e, es, ss // <- e, ee, se if k1.len() != REKEY_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -1345,7 +1346,7 @@ pub(crate) fn received_k1_trans true, @@ -1354,18 +1355,18 @@ pub(crate) fn received_k1_trans::new(); k2.extend([0u8; HEADER_SIZE]); @@ -1459,8 +1460,8 @@ pub(crate) fn received_k1_trans Ok(reduced_service_time), - Err(false) => Err(fault!(OutOfSequence, true)), - Err(true) => Err(fault!(ExpiredCounter, true)), + Err(false) => Err(fault!(OutOfSequence, true, session)), + Err(true) => Err(fault!(ExpiredCounter, true, session)), } })(); @@ -1478,11 +1479,11 @@ pub(crate) fn received_k2_trans), -) -> Result, ReceiveError> { +) -> Result, ReceiveError> { use FaultType::*; // <- e, ee, se if k2.len() != REKEY_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -1490,22 +1491,22 @@ pub(crate) fn received_k2_trans Ok(reduced_service_time), - Err(false) => Err(fault!(OutOfSequence, true)), - Err(true) => Err(fault!(ExpiredCounter, true)), + Err(false) => Err(fault!(OutOfSequence, true, session)), + Err(true) => Err(fault!(ExpiredCounter, true, session)), } } else { unreachable!() @@ -1707,7 +1708,7 @@ pub(crate) fn receive_payload_in_place( nonce: &[u8; AES_GCM_NONCE_SIZE], fragments: &mut [Crypto::IncomingPacketBuffer], mut output_buffer: impl Write, -) -> Result<(), ReceiveError> { +) -> Result<(), ReceiveError> { use FaultType::*; debug_assert!(!fragments.is_empty()); @@ -1717,10 +1718,12 @@ pub(crate) fn receive_payload_in_place( state.keys[1].nk.as_ref() } else { // Should be unreachable unless we are leaking kids somewhere. - return Err(fault!(UnknownLocalKeyId, true)); + return Err(fault!(UnknownLocalKeyId, true, session)); }; - let mut cipher = specified_key.ok_or(fault!(OutOfSequence, true))?.start_dec(nonce); + let mut cipher = specified_key + .ok_or_else(|| fault!(OutOfSequence, true, session))? + .start_dec(nonce); let (_, c) = from_nonce(nonce); // NOTE: This only works because we check the size of every received fragment in the receive @@ -1736,25 +1739,25 @@ pub(crate) fn receive_payload_in_place( cipher.decrypt_in_place(&mut fragment[..tag_idx]); if !cipher.finish((&fragment[tag_idx..]).try_into().unwrap()) { - return Err(fault!(FailedAuth, true)); + return Err(fault!(FailedAuth, true, session)); } if !session.window.update(c) { // This error is marked as not happening naturally, but it could occur if something about // the transport protocol is duplicating packets. - return Err(fault!(ExpiredCounter, true)); + return Err(fault!(ExpiredCounter, true, session)); } for i in 0..fragments.len() - 1 { let result = output_buffer.write(&fragments[i].as_ref()[HEADER_SIZE..]); if let Err(e) = result { - return Err(ReceiveError::WriteError(e)); + return Err(ReceiveError::WriteError(e, session.clone())); } } let fragment = &fragments[fragments.len() - 1].as_ref()[HEADER_SIZE..]; let result = output_buffer.write(&fragment[..tag_idx]); if let Err(e) = result { - return Err(ReceiveError::WriteError(e)); + return Err(ReceiveError::WriteError(e, session.clone())); } Ok(()) diff --git a/performance/src/zssp.rs b/performance/src/zssp.rs index 6ae7018..77bff82 100644 --- a/performance/src/zssp.rs +++ b/performance/src/zssp.rs @@ -71,7 +71,9 @@ impl ContextInner { } } -fn parse_fragment_header(incoming_fragment: &[u8]) -> Result<(usize, usize, [u8; AES_GCM_NONCE_SIZE]), ReceiveError> { +fn parse_fragment_header( + incoming_fragment: &[u8], +) -> Result<(usize, usize, [u8; AES_GCM_NONCE_SIZE]), ReceiveError> { let fragment_no = incoming_fragment[FRAGMENT_NO_IDX] as usize; let fragment_count = incoming_fragment[FRAGMENT_COUNT_IDX] as usize; if fragment_no >= fragment_count || fragment_count > MAX_FRAGMENTS { @@ -206,7 +208,7 @@ impl Context { remote_address: &impl Hash, mut incoming_fragment_buf: Crypto::IncomingPacketBuffer, output_buffer: impl Write, - ) -> Result<(ReceiveOk, Option), ReceiveError> { + ) -> Result<(ReceiveOk, Option), ReceiveError> { use crate::result::FaultType::*; let ctx = &self.0; send_unassociated_mtu = send_unassociated_mtu.max(MIN_TRANSPORT_MTU); @@ -234,40 +236,38 @@ impl Context { ); } - { - //vrfy - if packet_type == PACKET_TYPE_HANDSHAKE_RESPONSE { - if !matches!(&state.beta, ZetaAutomata::A1(_)) { - // A resent handshake response from Bob may have arrived out of order, - // after we already received one. - return Err(fault!(OutOfSequence, false)); - } - if incoming_counter >= COUNTER_WINDOW_MAX_SKIP_AHEAD { - return Err(fault!(ExpiredCounter, true)); - } - } else if PACKET_TYPE_USES_COUNTER_RANGE.contains(&packet_type) { - // For DOS resistant reply-protection we need to check that the given counter is - // in the window of valid counters immediately. - // But for packets larger than 1 fragment we can't actually record the - // counter as received until we've authenticated the packet. - // So we check the counter window twice, and only update it the second time - // after the packet has been authenticated. - if !session.window.check(incoming_counter) { - // This can occur naturally if packets arrive way out of order, or - // if they are duplicates. - // This can also be naturally triggered if Bob has just successfully - // received the first session key and is reject all of Alice's resends. - // This can also occur if a session was manually expired, but not - // dropped, and the remote party is still sending us data. - return Err(fault!(ExpiredCounter, false)); - } - } else if packet_type == PACKET_TYPE_HANDSHAKE_COMPLETION { - // This can be triggered if Bob successfully received a session key and - // needs to reject all of Alice's resends of PACKET_TYPE_NOISE_XK_PATTERN_3. - return Err(fault!(InvalidPacket, false)); - } else { - return Err(fault!(InvalidPacket, true)); + //vrfy + if packet_type == PACKET_TYPE_HANDSHAKE_RESPONSE { + if !matches!(&state.beta, ZetaAutomata::A1(_)) { + // A resent handshake response from Bob may have arrived out of order, + // after we already received one. + return Err(fault!(OutOfSequence, false, session)); } + if incoming_counter >= COUNTER_WINDOW_MAX_SKIP_AHEAD { + return Err(fault!(ExpiredCounter, true, session)); + } + } else if PACKET_TYPE_USES_COUNTER_RANGE.contains(&packet_type) { + // For DOS resistant reply-protection we need to check that the given counter is + // in the window of valid counters immediately. + // But for packets larger than 1 fragment we can't actually record the + // counter as received until we've authenticated the packet. + // So we check the counter window twice, and only update it the second time + // after the packet has been authenticated. + if !session.window.check(incoming_counter) { + // This can occur naturally if packets arrive way out of order, or + // if they are duplicates. + // This can also be naturally triggered if Bob has just successfully + // received the first session key and is reject all of Alice's resends. + // This can also occur if a session was manually expired, but not + // dropped, and the remote party is still sending us data. + return Err(fault!(ExpiredCounter, false, session)); + } + } else if packet_type == PACKET_TYPE_HANDSHAKE_COMPLETION { + // This can be triggered if Bob successfully received a session key and + // needs to reject all of Alice's resends of PACKET_TYPE_NOISE_XK_PATTERN_3. + return Err(fault!(InvalidPacket, false, session)); + } else { + return Err(fault!(InvalidPacket, true, session)); } // Handle defragmentation. @@ -282,7 +282,8 @@ impl Context { &mut fragment_buffer, ); if fragment_buffer.is_empty() { - return Ok((ReceiveOk::Unassociated, None)); + drop(state); + return Ok((ReceiveOk::Fragment(session), None)); } else { // We have not yet authenticated the sender so we do not report // receiving a packet from them. @@ -308,12 +309,12 @@ impl Context { &mut fragment_buffer, ); if fragment_buffer.is_empty() { - return Ok((ReceiveOk::Unassociated, None)); + return Ok((ReceiveOk::Fragment(session), None)); } else { for fragment in fragment_buffer.as_ref() { buffer .try_extend_from_slice(&fragment.as_ref()[HEADER_SIZE..]) - .map_err(|_| fault!(InvalidPacket, true))?; + .map_err(|_| fault!(InvalidPacket, true, session))?; } // We have not yet authenticated the sender so we do not report // receiving a packet from them. @@ -407,7 +408,7 @@ impl Context { log!(app, DIsAuthClosedSession(&session)); (SessionEvent::Rejected, None) } - _ => return Err(fault!(InvalidPacket, true)), // This is unreachable. + _ => return Err(fault!(InvalidPacket, true, session)), // This is unreachable. } }; Ok((ReceiveOk::Associated(session, ret.0), ret.1)) @@ -428,11 +429,9 @@ impl Context { ReceivedRawFragment(packet_type, incoming_counter, fragment_no, fragment_count) ); - { - //vrfy - if packet_type != PACKET_TYPE_HANDSHAKE_COMPLETION || incoming_counter != 0 { - return Err(fault!(InvalidPacket, true)); - } + //vrfy + if packet_type != PACKET_TYPE_HANDSHAKE_COMPLETION || incoming_counter != 0 { + return Err(fault!(InvalidPacket, true)); } let mut buffer = ArrayVec::::new(); From 1921a94a4db0a7ce9f6d0e94c590de451336f4e4 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Mon, 13 Nov 2023 12:09:12 -0500 Subject: [PATCH 14/44] added docs --- performance/src/crypto_impl/openssl.rs | 1 + performance/src/crypto_impl/p384_impl.rs | 2 ++ performance/src/crypto_impl/sha512.rs | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/performance/src/crypto_impl/openssl.rs b/performance/src/crypto_impl/openssl.rs index 873d0f8..852cb1e 100644 --- a/performance/src/crypto_impl/openssl.rs +++ b/performance/src/crypto_impl/openssl.rs @@ -177,6 +177,7 @@ impl<'a> AesGcmDecContext for OpenSSLAesGcmDec<'a> { } } +/// A pool of OpenSSL AES-GCM ciphers. pub struct OpenSSLAesGcmPool { enc: [Mutex; 8], dec: [Mutex; 8], diff --git a/performance/src/crypto_impl/p384_impl.rs b/performance/src/crypto_impl/p384_impl.rs index 1ad96f4..7c4856d 100644 --- a/performance/src/crypto_impl/p384_impl.rs +++ b/performance/src/crypto_impl/p384_impl.rs @@ -3,6 +3,7 @@ use rand_core::{CryptoRng, RngCore}; use crate::crypto::*; +/// An alias for the P384PublicKey type from the p384 crate. pub type CrateP384PublicKey = PublicKey; impl P384PublicKey for CrateP384PublicKey { fn from_bytes(raw_key: &[u8; P384_PUBLIC_KEY_SIZE]) -> Option { @@ -15,6 +16,7 @@ impl P384PublicKey for CrateP384PublicKey { } } +/// An alias for the P384KeyPair type from the p384 crate. pub type CrateP384KeyPair = EphemeralSecret; impl P384KeyPair for CrateP384KeyPair { type PublicKey = PublicKey; diff --git a/performance/src/crypto_impl/sha512.rs b/performance/src/crypto_impl/sha512.rs index 1a1bd4d..65717c2 100644 --- a/performance/src/crypto_impl/sha512.rs +++ b/performance/src/crypto_impl/sha512.rs @@ -2,7 +2,7 @@ use hmac::{Hmac, Mac}; use sha2::{Digest, Sha512}; use crate::crypto::*; - +/// An alias for the Sha512 type from the sha2 crate. pub type CrateSha512 = Sha512; impl Sha512Hash for CrateSha512 { fn new() -> Self { @@ -20,6 +20,7 @@ impl Sha512Hash for CrateSha512 { } } +/// A type that implements HMAC SHA512 using the hmac and sha2 crates. pub struct CrateHmacSha512; impl Sha512Hmac for CrateHmacSha512 { fn new() -> Self { From 0de30962d205862474d198053b483a2846accebb Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 21 Nov 2023 13:25:11 -0500 Subject: [PATCH 15/44] added expiration readout --- performance/Cargo.toml | 2 +- performance/examples/basic_test.rs | 8 +- performance/examples/benchmark.rs | 8 +- performance/src/result.rs | 197 +++++++++++++++++------------ performance/src/zeta.rs | 112 ++++++++-------- performance/src/zssp.rs | 44 +++++-- 6 files changed, 213 insertions(+), 158 deletions(-) diff --git a/performance/Cargo.toml b/performance/Cargo.toml index bb8cb89..2142c0d 100644 --- a/performance/Cargo.toml +++ b/performance/Cargo.toml @@ -3,7 +3,7 @@ authors = ["ZeroTier, Inc. ", "Adam Ierymenko { println!("[alice] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e, _) = e { - assert!(!e.unnatural()) + if let ReceiveError::ByzantineFault(e) = e { + assert!(!e.unnatural) } } } @@ -302,8 +302,8 @@ fn bob_main( Ok(_) => {} Err(e) => { println!("[bob] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e, _) = e { - assert!(!e.unnatural()) + if let ReceiveError::ByzantineFault(e) = e { + assert!(!e.unnatural) } } } diff --git a/performance/examples/benchmark.rs b/performance/examples/benchmark.rs index 415fc8b..c0dd19d 100644 --- a/performance/examples/benchmark.rs +++ b/performance/examples/benchmark.rs @@ -170,8 +170,8 @@ fn alice_main( Ok(_) => {} Err(e) => { println!("[alice] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e, _) = e { - assert!(!e.unnatural()) + if let ReceiveError::ByzantineFault(e) = e { + assert!(!e.unnatural) } } } @@ -260,8 +260,8 @@ fn bob_main( Ok(_) => {} Err(e) => { println!("[bob] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e, _) = e { - assert!(!e.unnatural()) + if let ReceiveError::ByzantineFault(e) = e { + assert!(!e.unnatural) } } } diff --git a/performance/src/result.rs b/performance/src/result.rs index 877ddd9..5811f4e 100644 --- a/performance/src/result.rs +++ b/performance/src/result.rs @@ -1,5 +1,5 @@ use std::error::Error; -use std::fmt::Display; +use std::fmt; use std::sync::Arc; use crate::application::CryptoLayer; @@ -41,6 +41,14 @@ pub enum SendError { DataTooLarge, } +/// The contained session has just expired. +/// +/// An expired session is no longer "owned" by the ZSSP context. +/// Therefore it is no longer capable of sending, receiving or being serviced, +/// so it should be dropped. +#[derive(Clone)] +pub struct ExpiredError(pub Arc>); + /// A type of fault occurred because we received a bad packet. /// /// An unauthenticated attacker can intentionally trigger any of these, so it is best to @@ -71,11 +79,22 @@ pub enum FaultType { /// Because an unauthenticated remote peer can force these to occur with specific /// contained information, it is recommended in production to either drop these /// immediately, or log them safely to a local output stream and then drop them. -#[derive(Debug)] -pub struct ByzantineFault { +pub struct ByzantineFault { + /// The session associated with this fault, if there was one. + /// + /// The sender specified this session within their packet, but they were not authenticated, + /// so the sender could theoretically be anyone. + pub session: Option>>, + /// This field is true if this fault caused the session it was attached to to expire. + /// An expired session is no longer "owned" by the ZSSP context. + /// Therefore it is no longer capable of sending, receiving or being serviced, + /// so it should be dropped. + /// + /// If this returns true then it is guaranteed that the `session` field is occupied. + pub caused_expiration: bool, /// The type of fault that has occurred. Be cautious if you choose to read this /// value, as an attacker has control over it. - pub(crate) error: FaultType, + pub error: FaultType, /// Some byzantine faults within ZSSP are naturally occurring, i.e. they can occur /// between two well behaved and trusted parties executing the protocol. /// This boolean is false if this is one of these faults. If you go to the file and @@ -88,7 +107,7 @@ pub struct ByzantineFault { /// persevered (i.e. bits have been flipped) to be unnatural. /// ZSSP also considers collisions of what are supposed to be uniform random /// numbers to be unnatural. - pub(crate) unnatural: bool, + pub unnatural: bool, /// The file of this implementation of ZSSP from which this error was generated. #[cfg(feature = "debug")] pub(crate) file: &'static str, @@ -99,43 +118,6 @@ pub struct ByzantineFault { #[cfg(feature = "debug")] pub(crate) line: u32, } -// I don't like getter methods but in this case they are the only way to implement -// conditionally compiled struct fields without the feature flag causing breaking changes. -impl ByzantineFault { - /// The type of fault that has occurred. Be cautious if you choose to read this - /// value, as an attacker has control over it. - pub fn error(&self) -> FaultType { - self.error - } - /// Some byzantine faults within ZSSP are naturally occurring, i.e. they can occur - /// between two well behaved and trusted parties executing the protocol. - /// This boolean is false if this is one of these faults. If you go to the file and - /// line number specified by this error you will find a comment describing - /// how and why exactly this fault can occur naturally. - /// - /// Faults that can occur because the underlying communication medium is lossy and - /// sequentially inconsistent (as in UDP) are considered naturally occurring. - /// However ZSSP considers faults that occur because data integrity has not been - /// persevered (i.e. bits have been flipped) to be unnatural. - /// ZSSP also considers collisions of what are supposed to be uniform random - /// numbers to be unnatural. - pub fn unnatural(&self) -> bool { - self.unnatural - } - /// The file of this implementation of ZSSP from which this error was generated. - #[cfg(feature = "debug")] - pub fn file(&self) -> &'static str { - self.file - } - /// The line number of this implementation of ZSSP from which this error was - /// generated. As such this number uniquely identifies each possible fault that - /// can occur during ZSSP. Advanced user can use this information to debug more - /// complicated usages of ZSSP. - #[cfg(feature = "debug")] - pub fn line(&self) -> u32 { - self.line - } -} /// An error that occurred during the receipt of a given packet. /// @@ -150,7 +132,7 @@ pub enum ReceiveError { /// Because an unauthenticated remote peer can force these to occur with specific /// contained information, it is recommended in production to either drop these /// immediately, or log them safely to a local output stream and then drop them. - ByzantineFault(ByzantineFault, Option>>), + ByzantineFault(ByzantineFault), /// Rekeying failed and session secret has reached its hard usage count limit. /// The associated session will no longer function and has to be dropped. @@ -171,30 +153,31 @@ pub enum ReceiveError { macro_rules! fault { ($name:expr, $unnatural:ident) => { - ReceiveError::ByzantineFault( - crate::result::ByzantineFault { - #[cfg(feature = "debug")] - file: file!(), - #[cfg(feature = "debug")] - line: line!(), - error: $name, - unnatural: $unnatural, - }, - None, - ) + ReceiveError::ByzantineFault(crate::result::ByzantineFault { + #[cfg(feature = "debug")] + file: file!(), + #[cfg(feature = "debug")] + line: line!(), + error: $name, + unnatural: $unnatural, + session: None, + caused_expiration: false, + }) }; ($name:expr, $unnatural:ident, $session:ident) => { - ReceiveError::ByzantineFault( - crate::result::ByzantineFault { - #[cfg(feature = "debug")] - file: file!(), - #[cfg(feature = "debug")] - line: line!(), - error: $name, - unnatural: $unnatural, - }, - Some($session.clone()), - ) + fault!($name, $unnatural, $session, false) + }; + ($name:expr, $unnatural:ident, $session:ident, $e:ident) => { + ReceiveError::ByzantineFault(crate::result::ByzantineFault { + #[cfg(feature = "debug")] + file: file!(), + #[cfg(feature = "debug")] + line: line!(), + error: $name, + unnatural: $unnatural, + session: Some($session.clone()), + caused_expiration: $e, + }) }; } pub(crate) use fault; @@ -265,8 +248,8 @@ pub enum SessionEvent { DowngradedRatchetKey, } -impl Display for OpenError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Display for OpenError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { OpenError::IdentityTooLarge => f.write_str("identity too large"), OpenError::StorageError(e) => e.fmt(f), @@ -275,8 +258,8 @@ impl Display for OpenError { } impl Error for OpenError {} -impl Display for SendError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Display for SendError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let str = match self { SendError::MtuTooSmall => "mtu too small", SendError::SessionExpired => "session has expired", @@ -288,8 +271,23 @@ impl Display for SendError { } impl Error for SendError {} -impl Display for FaultType { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Debug for ExpiredError +where + Session: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("ExpiredError").field(&self.0).finish() + } +} +impl fmt::Display for ExpiredError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "session expired") + } +} +impl Error for ExpiredError where Session: fmt::Debug {} + +impl fmt::Display for FaultType { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let str = match self { FaultType::UnknownLocalKeyId => "packet contained an unknown key id", FaultType::InvalidPacket => "invalid packet received", @@ -302,25 +300,57 @@ impl Display for FaultType { } impl Error for FaultType {} -impl Display for ByzantineFault { +// I don't like getter methods but in this case they are the only way to implement +// conditionally compiled struct fields without the feature flag causing breaking changes. +impl ByzantineFault { + /// The file of this implementation of ZSSP from which this error was generated. #[cfg(feature = "debug")] - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + pub fn file(&self) -> &'static str { + self.file + } + /// The line number of this implementation of ZSSP from which this error was + /// generated. As such this number uniquely identifies each possible fault that + /// can occur during ZSSP. Advanced user can use this information to debug more + /// complicated usages of ZSSP. + #[cfg(feature = "debug")] + pub fn line(&self) -> u32 { + self.line + } +} +impl fmt::Debug for ByzantineFault +where + Session: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ByzantineFault") + .field("session", &self.session) + .field("caused_expiration", &self.caused_expiration) + .field("error", &self.error) + .field("unnatural", &self.unnatural) + .field("file", &self.file) + .field("line", &self.line) + .finish() + } +} +impl fmt::Display for ByzantineFault { + #[cfg(feature = "debug")] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{} ({}:{})", self.error, self.file, self.line) } #[cfg(not(feature = "debug"))] - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.error.fmt(f) } } -impl Error for ByzantineFault {} +impl Error for ByzantineFault where Session: fmt::Debug {} -impl std::fmt::Debug for ReceiveError +impl fmt::Debug for ReceiveError where - Crypto::SessionData: std::fmt::Debug, + Crypto::SessionData: fmt::Debug, { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - Self::ByzantineFault(arg0, arg1) => f.debug_tuple("ByzantineFault").field(arg0).field(arg1).finish(), + Self::ByzantineFault(arg) => f.debug_tuple("ByzantineFault").field(arg).finish(), Self::MaxKeyLifetimeExceeded(arg0) => f.debug_tuple("MaxKeyLifetimeExceeded").field(arg0).finish(), Self::Rejected => f.write_str("Rejected"), Self::StorageError(arg0) => f.debug_tuple("StorageError").field(arg0).finish(), @@ -328,11 +358,10 @@ where } } } - -impl Display for ReceiveError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Display for ReceiveError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - ReceiveError::ByzantineFault(e, _) => e.fmt(f), + ReceiveError::ByzantineFault(e) => e.fmt(f), ReceiveError::MaxKeyLifetimeExceeded(_) => f.write_str("max key lifetime exceeded"), ReceiveError::Rejected => f.write_str("attempt to establish session rejected"), ReceiveError::StorageError(e) => e.fmt(f), @@ -340,4 +369,4 @@ impl Display for ReceiveError { } } } -impl Error for ReceiveError where Crypto::SessionData: std::fmt::Debug {} +impl Error for ReceiveError where Crypto::SessionData: fmt::Debug {} diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index a62cadf..cde05a5 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -594,12 +594,16 @@ pub(crate) fn received_x2_trans= COUNTER_WINDOW_MAX_SKIP_AHEAD || &n[AES_GCM_NONCE_SIZE - 3..] != &x2[x2.len() - 3..] { return Err(fault!(FailedAuth, true, session)); } + + if !matches!(&state.beta, ZetaAutomata::A1(_)) { + return Err(fault!(FailedAuth, true, session)); + } let mut should_warn_missing_ratchet = false; let mut result = (|| { let a1 = if let ZetaAutomata::A1(a1) = &state.beta { a1 } else { - return Err(fault!(FailedAuth, true, session)); + unreachable!(); }; let mut noise = a1.noise.clone(); let mut i = 0; @@ -749,14 +753,15 @@ pub(crate) fn received_x2_trans { + match &mut result { + Err(ReceiveError::ByzantineFault(_)) => { let kex_lock = session.state_machine_lock.lock().unwrap(); let state = session.state.read().unwrap(); let current_time = app.time(); - timeout_trans(app, ctx, session, kex_lock, state, current_time, send); + // We can only reach this point if we are in state A1, and state A1 cannot expire. + debug_assert!(timeout_trans(app, ctx, session, kex_lock, state, current_time, send).is_ok()); } - Ok((ref mut packet, _)) => send(packet, Some(&session.state.read().unwrap().hk_send)), + Ok((packet, _)) => send(packet, Some(&session.state.read().unwrap().hk_send)), _ => {} } result.map(|(_, reduced_service_time)| (should_warn_missing_ratchet, reduced_service_time)) @@ -1047,7 +1052,7 @@ pub(crate) fn received_c1_trans { drop(state); session.expire(); - Err(fault!(ExpiredCounter, true, session)) + Err(fault!(ExpiredCounter, true, session, true)) } Err(false) => Err(fault!(OutOfSequence, true, session)), } @@ -1141,7 +1146,7 @@ pub(crate) fn received_d_trans( Ok(()) } /// Corresponds to the timeout timer Transition Algorithm described in Section 4.1 - Definition 3. -/// Returns `None` if this session should be expired. +/// Returns `Err(())` if this session should be expired. fn timeout_trans>( app: &mut App, ctx: &Arc>, @@ -1150,9 +1155,9 @@ fn timeout_trans>( state: RwLockReadGuard<'_, MutableState>, current_time: i64, send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), -) -> Option { +) -> Result { match &state.beta { - ZetaAutomata::Null => None, + ZetaAutomata::Null => Err(()), ZetaAutomata::A1(_) | ZetaAutomata::A3 { .. } => { let identity = match &state.beta { ZetaAutomata::A1(a1) => &a1.identity, @@ -1199,7 +1204,7 @@ fn timeout_trans>( drop(kex_lock); send(&mut x1, None); - Some(resend_timer) + Ok(resend_timer) } ZetaAutomata::S2 => { // Corresponds to Transition Algorithm 6 found in Section 4.3. @@ -1245,33 +1250,33 @@ fn timeout_trans>( let state = session.state.read().unwrap(); match send_control(session, &state, PACKET_TYPE_REKEY_INIT, k1, send) { - Err(true) => None, - _ => Some(resend_timer), + Err(true) => Err(()), + _ => Ok(resend_timer), } } ZetaAutomata::S1 { .. } => { log!(app, TimeoutKeyConfirm(session)); - None + Err(()) } ZetaAutomata::R1 { .. } => { log!(app, TimeoutK1(session)); - None + Err(()) } ZetaAutomata::R2 { .. } => { log!(app, TimeoutK2(session)); - None + Err(()) } } } /// Corresponds to the timer rules of the Zeta State Machine found in Section 4.1 - Definition 3. -/// Returns `None` if this session should be expired. +/// Returns `Err(())` if this session should be expired. pub(crate) fn process_timers>( app: &mut App, ctx: &Arc>, session: &Arc>, current_time: i64, send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), -) -> Option { +) -> Result { let kex_lock = session.state_machine_lock.lock().unwrap(); let state = session.state.read().unwrap(); if state.timeout_timer <= current_time { @@ -1284,16 +1289,16 @@ pub(crate) fn process_timers> // Corresponds to the resend timer rules found in Section 4.1 - Definition 3. let (packet_type, control_payload) = match &state.beta { - ZetaAutomata::Null => return None, + ZetaAutomata::Null => return Err(()), ZetaAutomata::A1(a1) => { log!(app, ResentX1(session)); send(&mut a1.x1.clone(), None); - return Some(resend_next); + return Ok(resend_next); } ZetaAutomata::A3(a3) => { log!(app, ResentX3(session)); send(&mut a3.x3.clone(), Some(&state.hk_send)); - return Some(resend_next); + return Ok(resend_next); } ZetaAutomata::S1 => { log!(app, ResentKeyConfirm(session)); @@ -1301,7 +1306,7 @@ pub(crate) fn process_timers> c1.extend([0u8; HEADER_SIZE]); (PACKET_TYPE_KEY_CONFIRM, c1) } - ZetaAutomata::S2 => return Some(state.timeout_timer), + ZetaAutomata::S2 => return Ok(state.timeout_timer), ZetaAutomata::R1 { k1, .. } => { log!(app, ResentK1(session)); (PACKET_TYPE_REKEY_INIT, k1.clone()) @@ -1313,11 +1318,11 @@ pub(crate) fn process_timers> }; match send_control(session, &state, packet_type, control_payload, send) { - Err(true) => None, - _ => Some(resend_next), + Err(true) => Err(()), + _ => Ok(resend_next), } } else { - Some(ts) + Ok(ts) } } } @@ -1382,7 +1387,7 @@ pub(crate) fn received_k1_trans::new(); k2.extend([0u8; HEADER_SIZE]); @@ -1461,12 +1466,15 @@ pub(crate) fn received_k1_trans Ok(reduced_service_time), Err(false) => Err(fault!(OutOfSequence, true, session)), - Err(true) => Err(fault!(ExpiredCounter, true, session)), + Err(true) => Err(fault!(ExpiredCounter, true, session, true)), } })(); - if matches!(result, Err(ReceiveError::ByzantineFault { .. })) { - session.expire(); + match &result { + Err(ReceiveError::ByzantineFault(fault)) if fault.caused_expiration => { + session.expire(); + } + _ => {} } result } @@ -1493,23 +1501,19 @@ pub(crate) fn received_k2_trans Ok(reduced_service_time), Err(false) => Err(fault!(OutOfSequence, true, session)), - Err(true) => Err(fault!(ExpiredCounter, true, session)), + Err(true) => Err(fault!(ExpiredCounter, true, session, true)), } } else { - unreachable!() + // Some rekey packet may have arrived extremely delayed. + return Err(fault!(OutOfSequence, false, session)); } })(); - if matches!(result, Err(ReceiveError::ByzantineFault { .. })) { - session.expire(); + match &result { + Err(ReceiveError::ByzantineFault(fault)) if fault.caused_expiration => { + session.expire(); + } + _ => {} } result } diff --git a/performance/src/zssp.rs b/performance/src/zssp.rs index 77bff82..b2c3e9a 100644 --- a/performance/src/zssp.rs +++ b/performance/src/zssp.rs @@ -17,7 +17,7 @@ use crate::fragged::Assembled; use crate::handshake_cache::UnassociatedHandshakeCache; use crate::indexed_heap::IndexedBinaryHeap; use crate::proto::*; -use crate::result::{fault, FaultType, OpenError, ReceiveError, ReceiveOk, SendError, SessionEvent}; +use crate::result::{fault, ExpiredError, FaultType, OpenError, ReceiveError, ReceiveOk, SendError, SessionEvent}; use crate::zeta::*; #[cfg(feature = "logging")] use crate::LogEvent::*; @@ -631,9 +631,14 @@ impl Context { /// /// * `app` - Interface to application using ZSSP /// * `send_to` - Function to get a sender and an MTU to send something over an active session - pub fn service>(&self, mut app: App, send_to: impl SendTo) -> i64 { + pub fn service>(&self, mut app: App, mut send_to: impl SendTo) -> i64 { let current_time = app.time(); - let next_service_time = self.service_inner(app, send_to, current_time); + let next_service_time = loop { + match self.service_inner(&mut app, send_to, current_time) { + Ok(ts) => break ts, + Err((_, s)) => send_to = s, + } + }; let max_interval = Crypto::SETTINGS .fragment_assembly_timeout .min(Crypto::SETTINGS.rekey_timeout) @@ -649,21 +654,33 @@ impl Context { /// an `Option`. This option can contain an updated, reduced timestamp at which this /// function ought to be called again. /// + /// If this returns an error then it means that a session has timed-out and has been expired. + /// An expired session is no longer "owned" by the ZSSP context. + /// Therefore it is no longer capable of sending, receiving or being serviced, + /// so it should be dropped. + /// + /// A return type of `Err` effectively means that this function should be called again immediately. + /// This function should be called repeatedly in a loop until `Ok` is returned. + /// /// This function should only be used if the caller has direct access to a scheduler that allows /// them to dynamically modify the interval at which this function is repeatedly called. /// /// * `app` - Interface to application using ZSSP /// * `send_to` - Function to get a sender and an MTU to send something over an active session - pub fn service_scheduled>(&self, mut app: App, send_to: impl SendTo) -> i64 { - let current_time = app.time(); - self.service_inner(app, send_to, current_time) - } - fn service_inner>( + pub fn service_scheduled>( &self, mut app: App, - mut send_to: impl SendTo, + send_to: impl SendTo, + ) -> Result> { + let current_time = app.time(); + self.service_inner(&mut app, send_to, current_time).map_err(|e| e.0) + } + fn service_inner, F: SendTo>( + &self, + app: &mut App, + mut send_to: F, current_time: i64, - ) -> i64 { + ) -> Result, F)> { let ctx = &self.0; let mut session_queue = ctx.session_queue.lock().unwrap(); let mut queue_service_time = i64::MAX; @@ -682,17 +699,18 @@ impl Context { continue; } }; - let result = process_timers(&mut app, ctx, &session, current_time, |packet, hk_send| { + let result = process_timers(app, ctx, &session, current_time, |packet, hk_send| { if let Some((sender, mut mtu)) = send_to.init_send(&session) { mtu = mtu.max(MIN_TRANSPORT_MTU); send_with_fragmentation(sender, mtu, packet, hk_send); } }); - if let Some(next_timer) = result { + if let Ok(next_timer) = result { queue_service_time = queue_service_time.min(next_timer); session_queue.change_priority(queue_idx, Reverse(next_timer)); } else { session.expire_inner(Some(ctx), Some(&mut session_queue)); + return Err((ExpiredError(session), send_to)); } } // This is the only place where `ctx.next_service_time` can be increased. This only works @@ -713,7 +731,7 @@ impl Context { let t2 = defrag_service_time.min(handshake_service_time); let t1 = ctx.next_service_time.fetch_min(t2, Ordering::Relaxed); - t1.min(t2) + Ok(t1.min(t2)) } /// Returns the exact timestamp at which either `Context::service` or /// `Context::service_scheduled` should be called again. From fa2e02f9c0d749841637331a425158e4d6578614 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 21 Nov 2023 13:32:39 -0500 Subject: [PATCH 16/44] cargo clippy --- performance/src/application.rs | 4 ++-- performance/src/frag_cache.rs | 8 ++++---- performance/src/fragged.rs | 4 ++-- performance/src/handshake_cache.rs | 2 +- performance/src/proto.rs | 6 +++--- performance/src/symmetric_state.rs | 2 +- performance/src/zeta.rs | 24 ++++++++++++------------ performance/src/zssp.rs | 2 +- reference/src/proto.rs | 1 - 9 files changed, 26 insertions(+), 27 deletions(-) diff --git a/performance/src/application.rs b/performance/src/application.rs index 5a1a00b..c128a0f 100644 --- a/performance/src/application.rs +++ b/performance/src/application.rs @@ -323,7 +323,7 @@ pub trait Sender { /// Send the given fragment on this interface and then return whether or not an error occured. /// /// If `true` is returned then sending is cancelled and this instance of `Sender` is dropped. - fn send_frag<'a>(&'a mut self, frag: &mut [u8]) -> bool; + fn send_frag(&mut self, frag: &mut [u8]) -> bool; } /// A trait to genericize the process of borrowing the resources necessary to repeatedly @@ -353,7 +353,7 @@ pub trait SendTo { } impl bool> Sender for F { - fn send_frag<'a>(&'a mut self, frag: &mut [u8]) -> bool { + fn send_frag(&mut self, frag: &mut [u8]) -> bool { self(frag) } } diff --git a/performance/src/frag_cache.rs b/performance/src/frag_cache.rs index 8c7de57..6e3789b 100644 --- a/performance/src/frag_cache.rs +++ b/performance/src/frag_cache.rs @@ -93,7 +93,7 @@ impl UnassociatedFragCache { } else if self.map[idx1].key == key { idx1 } else if self.map[idx0].key == 0 || self.map[idx1].key == 0 { - if (fragment_count as usize) > self.frags_unused_size { + if fragment_count > self.frags_unused_size { // There are not enough free fragment slots so attempt to expire a bunch of entries. let _ = self.check_for_expiry_inner(Crypto::SETTINGS.resend_time as i64, current_time); } @@ -117,7 +117,7 @@ impl UnassociatedFragCache { let mut new_expiry = None; if self.map[idx].key == 0 { // This is a new entry so initialize it. - if (fragment_count as usize) <= self.frags_unused_size { + if fragment_count <= self.frags_unused_size { new_expiry = Some(current_time + Crypto::SETTINGS.fragment_assembly_timeout as i64); let entry = &mut self.map[idx]; entry.key = key; @@ -148,7 +148,7 @@ impl UnassociatedFragCache { entry.packet_size = new_size; entry.fragment_have |= got; - let frag_idx = (entry.frags_idx as usize + fragment_no as usize) % self.frags.len(); + let frag_idx = (entry.frags_idx as usize + fragment_no) % self.frags.len(); self.frags[frag_idx].write(fragment); if entry.fragment_have == 1u64.wrapping_shl(fragment_count as u32) - 1 { @@ -183,7 +183,7 @@ impl UnassociatedFragCache { return expiry; } } - return i64::MAX; + i64::MAX } fn invalidate(&mut self, idx: usize) { diff --git a/performance/src/fragged.rs b/performance/src/fragged.rs index 59b876d..546d2cd 100644 --- a/performance/src/fragged.rs +++ b/performance/src/fragged.rs @@ -53,8 +53,8 @@ impl Fragged { if got & self.have == 0 && self.count == fragment_count as u32 { self.have |= got; unsafe { - self.frags.get_unchecked_mut(fragment_no as usize).write(fragment); - if self.have == 1u64.wrapping_shl(self.count as u32) - 1 { + self.frags.get_unchecked_mut(fragment_no).write(fragment); + if self.have == 1u64.wrapping_shl(self.count) - 1 { self.have = 0; self.count = 0; self.nonce = u64::MAX; diff --git a/performance/src/handshake_cache.rs b/performance/src/handshake_cache.rs index 0b637ee..6c7a7d1 100644 --- a/performance/src/handshake_cache.rs +++ b/performance/src/handshake_cache.rs @@ -61,7 +61,7 @@ impl UnassociatedHandshakeCache { cache.expiries[idx] = expiry; cache.handshakes[idx] = Some(state); self.has_pending.store(true, Ordering::Release); - return Some(expiry); + Some(expiry) } pub(crate) fn remove(&self, local_id: NonZeroU32) -> bool { let mut cache = self.cache.write().unwrap(); diff --git a/performance/src/proto.rs b/performance/src/proto.rs index b64ad0b..5b1c3cb 100644 --- a/performance/src/proto.rs +++ b/performance/src/proto.rs @@ -94,8 +94,8 @@ pub(crate) const LABEL_RATCHET_STATE: &[u8; 4] = b"ASKR"; pub(crate) const LABEL_HEADER_KEY: &[u8; 4] = b"ASKH"; pub(crate) const LABEL_KEX_KEY: &[u8; 4] = b"ASKK"; -pub(crate) const EXPIRE_AFTER_USES: u64 = 1 << 32 - 1; -pub(crate) const THREAD_SAFE_COUNTER_HARD_EXPIRE: u64 = u64::MAX - 1 << 16; +pub(crate) const EXPIRE_AFTER_USES: u64 = (1 << 32) - 1; +pub(crate) const THREAD_SAFE_COUNTER_HARD_EXPIRE: u64 = u64::MAX - (1 << 16); /// Determines the number of counters a session will remember. If a counter arrives over /// this amount out of order relative to other received counters, it is likely to be /// rejected on the basis that the session can't remember if this counter was replayed. @@ -137,7 +137,7 @@ pub(crate) const HANDSHAKE_RESPONSE_SIZE: usize = P384_PUBLIC_KEY_SIZE + KYBER_CIPHERTEXT_SIZE + AES_GCM_TAG_SIZE + KID_SIZE + AES_GCM_TAG_SIZE; pub(crate) const HEADERED_HANDSHAKE_RESPONSE_SIZE: usize = HANDSHAKE_RESPONSE_SIZE + HEADER_SIZE; -pub(crate) const HANDSHAKE_COMPLETION_MIN_SIZE: usize = P384_PUBLIC_KEY_SIZE + AES_GCM_TAG_SIZE + 0 + AES_GCM_TAG_SIZE; +pub(crate) const HANDSHAKE_COMPLETION_MIN_SIZE: usize = P384_PUBLIC_KEY_SIZE + AES_GCM_TAG_SIZE + AES_GCM_TAG_SIZE; pub(crate) const HANDSHAKE_COMPLETION_MAX_SIZE: usize = HANDSHAKE_COMPLETION_MIN_SIZE + IDENTITY_MAX_SIZE; pub(crate) const HEADERED_HANDSHAKE_COMPLETION_MAX_SIZE: usize = HANDSHAKE_COMPLETION_MAX_SIZE + HEADER_SIZE; diff --git a/performance/src/symmetric_state.rs b/performance/src/symmetric_state.rs index c9ea5a8..2b45049 100644 --- a/performance/src/symmetric_state.rs +++ b/performance/src/symmetric_state.rs @@ -19,7 +19,7 @@ impl Clone for SymmetricState { Self { k: self.k.clone(), ck: self.ck.clone(), - h: self.h.clone(), + h: self.h, _app: PhantomData, } } diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index cde05a5..4247274 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -184,12 +184,12 @@ impl SymmetricState { } fn mix_dh(&mut self, hmac: &mut Crypto::Hmac, secret: &Crypto::KeyPair, remote: &Crypto::PublicKey) { let mut ecdh_secret = Zeroizing::new([0u8; P384_ECDH_SHARED_SECRET_SIZE]); - secret.agree(&remote, &mut ecdh_secret); + secret.agree(remote, &mut ecdh_secret); self.mix_key(hmac, ecdh_secret.as_ref()); } fn mix_dh_no_init(&mut self, hmac: &mut Crypto::Hmac, secret: &Crypto::KeyPair, remote: &Crypto::PublicKey) { let mut ecdh_secret = Zeroizing::new([0u8; P384_ECDH_SHARED_SECRET_SIZE]); - secret.agree(&remote, &mut ecdh_secret); + secret.agree(remote, &mut ecdh_secret); self.mix_key_no_init(hmac, ecdh_secret.as_ref()); } } @@ -262,7 +262,7 @@ fn remap( let weak = if let Some(Some(weak)) = state.key_ref(true).recv.kid.as_ref().map(|kid| session_map.remove(kid)) { weak } else { - Arc::downgrade(&session) + Arc::downgrade(session) }; let new_kid_recv = gen_kid(session_map.deref(), ctx.rng.lock().unwrap().deref_mut()); session_map.insert(new_kid_recv, weak); @@ -332,7 +332,7 @@ pub(crate) fn trans_to_a1>( ) -> Result<(Arc>, Option), OpenError> { let RatchetStates { state1, state2 } = app .restore_by_identity(&s_remote, &session_data) - .map_err(|e| OpenError::StorageError(e))? + .map_err(OpenError::StorageError)? .unwrap_or_default(); let mut session_queue = ctx.session_queue.lock().unwrap(); @@ -450,7 +450,7 @@ pub(crate) fn received_x1_trans Option<(NonZeroU32, SymmetricState)> { let mut noise = noise.clone(); - let mut payload = payload.clone(); + let mut payload = payload; // Process message pattern 2 psk token. noise.mix_key_and_hash(hash, hmac, ratchet_key); // Process message pattern 2 payload. @@ -774,7 +774,7 @@ fn send_control( mut payload: ArrayVec, send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), ) -> Result<(), bool> { - if let Some((c, _)) = get_counter(session, &state) { + if let Some((c, _)) = get_counter(session, state) { if let (Some(kek), Some(kid)) = (state.key_ref(false).send.kek.as_ref(), state.key_ref(false).send.kid) { let nonce = to_nonce(packet_type, c); let tag = Crypto::Aead::encrypt_in_place(kek, &nonce, &[], &mut payload[HEADER_SIZE..]); @@ -1386,7 +1386,7 @@ pub(crate) fn received_k1_trans::new(); c1.extend([0u8; HEADER_SIZE]); - match send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send) { + match send_control(session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send) { Ok(()) => Ok(reduced_service_time), Err(false) => Err(fault!(OutOfSequence, true, session)), Err(true) => Err(fault!(ExpiredCounter, true, session, true)), } } else { // Some rekey packet may have arrived extremely delayed. - return Err(fault!(OutOfSequence, false, session)); + Err(fault!(OutOfSequence, false, session)) } })(); diff --git a/performance/src/zssp.rs b/performance/src/zssp.rs index b2c3e9a..c63f12e 100644 --- a/performance/src/zssp.rs +++ b/performance/src/zssp.rs @@ -483,7 +483,7 @@ impl Context { // This can occur naturally because either Bob's incoming_sessions cache got // full so Alice's incoming session was dropped, or the session this packet // was for was dropped by the application. - return Err(fault!(UnknownLocalKeyId, false)); + Err(fault!(UnknownLocalKeyId, false)) } } } else { diff --git a/reference/src/proto.rs b/reference/src/proto.rs index 6a08419..779ca53 100644 --- a/reference/src/proto.rs +++ b/reference/src/proto.rs @@ -83,7 +83,6 @@ pub(crate) const LABEL_RATCHET_STATE: &[u8; 4] = b"ASKR"; pub(crate) const LABEL_HEADER_KEY: &[u8; 4] = b"ASKH"; pub(crate) const LABEL_KEX_KEY: &[u8; 4] = b"ASKK"; -//pub(crate) const EXPIRE_AFTER_USES: u64 = (1 << 32) - 1; pub(crate) const HARD_EXPIRATION: u64 = u64::MAX; /// Determines the number of counters a session will remember. If a counter arrives over /// this amount out of order relative to other received counters, it is likely to be From 53c6a35f89fd74690177039856156d1471cb1f9c Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 21 Nov 2023 13:33:57 -0500 Subject: [PATCH 17/44] pushed version no --- performance/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/performance/Cargo.toml b/performance/Cargo.toml index 2142c0d..18997fa 100644 --- a/performance/Cargo.toml +++ b/performance/Cargo.toml @@ -3,7 +3,7 @@ authors = ["ZeroTier, Inc. ", "Adam Ierymenko Date: Tue, 21 Nov 2023 15:02:05 -0500 Subject: [PATCH 18/44] added better fingerprint support --- performance/examples/basic_test.rs | 7 +++- performance/examples/benchmark.rs | 5 ++- performance/src/application.rs | 64 ++++++++++++++++++++++++++++-- performance/src/crypto_impl/mod.rs | 2 + performance/src/frag_cache.rs | 1 + performance/src/zeta.rs | 12 ++++-- 6 files changed, 80 insertions(+), 11 deletions(-) diff --git a/performance/examples/basic_test.rs b/performance/examples/basic_test.rs index e3d6f03..ea749d4 100644 --- a/performance/examples/basic_test.rs +++ b/performance/examples/basic_test.rs @@ -63,6 +63,7 @@ impl CryptoLayer for TestApplication { type SessionData = u128; type IncomingPacketBuffer = Vec; + type FingerprintData = (); } #[allow(unused)] impl ApplicationLayer for &TestApplication { @@ -82,6 +83,7 @@ impl ApplicationLayer for &TestApplication { &mut self, remote_static_key: &CrateP384PublicKey, identity: &[u8], + _: Option<&()>, ) -> AcceptAction { AcceptAction { session_data: Some(1), @@ -93,15 +95,16 @@ impl ApplicationLayer for &TestApplication { fn restore_by_fingerprint( &mut self, ratchet_fingerprint: &[u8; RATCHET_SIZE], - ) -> Result, std::io::Error> { + ) -> Result, std::io::Error> { let ratchets = self.ratchets.lock().unwrap(); - Ok(ratchets.rf_map.get(ratchet_fingerprint).cloned()) + Ok(ratchets.rf_map.get(ratchet_fingerprint).cloned().map(|r| (r, ()))) } fn restore_by_identity( &mut self, remote_static_key: &CrateP384PublicKey, session_data: &u128, + _: Option<&()>, ) -> Result, std::io::Error> { let ratchets = self.ratchets.lock().unwrap(); Ok(ratchets.peer_map.get(session_data).cloned()) diff --git a/performance/examples/benchmark.rs b/performance/examples/benchmark.rs index c0dd19d..513c486 100644 --- a/performance/examples/benchmark.rs +++ b/performance/examples/benchmark.rs @@ -53,6 +53,7 @@ impl AsRef<[u8]> for PooledVec { #[allow(unused)] impl DefaultCrypto for TestApplication { type SessionData = (); + type LookupData = (); type IncomingPacketBuffer = PooledVec; } @@ -76,6 +77,7 @@ impl ApplicationLayer for &TestApplication { &mut self, remote_static_key: &CrateP384PublicKey, identity: &[u8], + _: Option<&()>, ) -> AcceptAction { AcceptAction { session_data: Some(()), @@ -87,7 +89,7 @@ impl ApplicationLayer for &TestApplication { fn restore_by_fingerprint( &mut self, ratchet_fingerprint: &[u8; RATCHET_SIZE], - ) -> Result, std::io::Error> { + ) -> Result, std::io::Error> { Ok(None) } @@ -95,6 +97,7 @@ impl ApplicationLayer for &TestApplication { &mut self, remote_static_key: &CrateP384PublicKey, session_data: &(), + _: Option<&()>, ) -> Result, std::io::Error> { Ok(None) } diff --git a/performance/src/application.rs b/performance/src/application.rs index c128a0f..250edde 100644 --- a/performance/src/application.rs +++ b/performance/src/application.rs @@ -153,6 +153,22 @@ pub trait CryptoLayer: Sized { /// each session. type SessionData; + /// Type for arbitrary opaque object that is attached to a new connection attempt if Alice sends + /// us a ratchet fingerprint recognized by `restore_by_fingerprint`. + /// + /// If Alice continues to connect + /// with us, then this object will be passed to `check_accept_session` and `restore_by_identity`. + /// This is useful if the ratchet fingerprint was derived from a one-time password, in which + /// case `FingerprintData` can contain metadata regarding the one-time password. This can be + /// used by `check_accept_session` and `restore_by_identity` to perform additional + /// authentication checks, such as validating the one-time password as an invitation code. + /// + /// `FingerprintData` can also be used with extreme caution to cache database resources that can + /// speed up the expected future calls to `check_accept_session` and `restore_by_identity`. + /// If this is done, the implementor is required in `check_accept_session` to verify that the + /// cached resources in `FingerprintData` indeed belong to the specified remote peer. + type FingerprintData; + /// Data type for incoming packet buffers. /// /// This can be something like `Vec` or `Box<[u8]>` or it can be something like a pooled @@ -190,6 +206,9 @@ pub trait ApplicationLayer: Sized { /// If this function is configured to always return true, it means peers will not be able to /// connect to us unless they had a prior-established ratchet key with us. This is the best way /// for the paranoid to enforce a manual allow-list. + /// + /// Corresponds to the "Hello Requires Recognized Ratchet, π_1" security flag of Transition + /// Algorithm 2 within the ZSSP whitepaper. fn hello_requires_recognized_ratchet(&mut self) -> bool; /// This function is called if we, as Alice, attempted to open a session with Bob using a /// non-empty ratchet key, but Bob does not have this ratchet key and wants to downgrade @@ -206,15 +225,29 @@ pub trait ApplicationLayer: Sized { /// least one party is misconfigured and got their ratchet keys corrupted or lost, or Bob has /// been compromised and is being impersonated. An attacker must at least have Bob's private /// static key to be able to ask Alice to downgrade. + /// + /// Corresponds to the "Initiator Disallows Downgrade, π_2" security flag of Transition + /// Algorithm 3 within the ZSSP whitepaper. fn initiator_disallows_downgrade(&mut self, session: &Arc>) -> bool; /// Function to accept sessions after final negotiation. - /// The second argument is the identity that the remote peer sent us. The application - /// must verify this identity is associated with the remote peer's static key. + /// + /// The implementor must verify that three arguments, `remote_static_key`, `identity` and + /// optionally `fingerprint_data` all belong to the same remote peer, using whatever definition + /// of "same remote peer" that the upper protocol chooses. + /// `fingerprint_data` is an opaque type that is only `Some` if Alice sent us a ratchet + /// fingerprint that was successfully restored by `restore_by_fingerprint`. /// /// To prevent desync, if this function specifies that we should connect, no other open session /// with the same remote peer must exist. Drop or call expire on any pre-existing sessions /// before returning. - fn check_accept_session(&mut self, remote_static_key: &Crypto::PublicKey, identity: &[u8]) -> AcceptAction; + /// + /// Corresponds to the **Accept** call of Transition Algorithm 4 within the ZSSP whitepaper. + fn check_accept_session( + &mut self, + remote_static_key: &Crypto::PublicKey, + identity: &[u8], + fingerprint_data: Option<&Crypto::FingerprintData>, + ) -> AcceptAction; /// Lookup a specific ratchet state based on its ratchet fingerprint. /// This function will be called whenever Alice attempts to connect to us with a non-empty @@ -222,10 +255,24 @@ pub trait ApplicationLayer: Sized { /// /// If a ratchet state with a matching fingerprint could not be found, this function should /// return `Ok(None)`. + /// + /// This function can also return an opaque `FingerprintData` object. If Alice continues to connect + /// with us, then this object will be passed to `check_accept_session` and `restore_by_identity`. + /// This is useful if the ratchet fingerprint was derived from a one-time password, in which + /// case `FingerprintData` can contain metadata regarding the one-time password. This can be + /// used by `check_accept_session` and `restore_by_identity` to perform additional + /// authentication checks, such as validating the one-time password as an invitation code. + /// + /// `FingerprintData` can also be used with extreme caution to cache database resources that can + /// speed up the expected future calls to `check_accept_session` and `restore_by_identity`. + /// If this is done, the implementor is required in `check_accept_session` to verify that the + /// cached resources in `FingerprintData` indeed belong to the specified remote peer. + /// + /// Corresponds to the **Restore** call of Transition Algorithm 2 within the ZSSP whitepaper. fn restore_by_fingerprint( &mut self, ratchet_fingerprint: &[u8; RATCHET_SIZE], - ) -> Result, std::io::Error>; + ) -> Result, std::io::Error>; /// Lookup the specific ratchet states based on the identity of the peer being communicated with. /// This function will be called whenever Alice attempts to open a session, or Bob attempts /// to verify Alice's identity. @@ -240,10 +287,13 @@ pub trait ApplicationLayer: Sized { /// This function is not responsible for deciding whether or not to connect to this remote peer. /// Filtering peers should be done by the caller to `Context::open` as well as by the /// function `ApplicationLayer::check_accept_session`. + /// + /// Corresponds to the **Restore** call of Transition Algorithm 1 and 4 within the ZSSP whitepaper. fn restore_by_identity( &mut self, remote_static_key: &Crypto::PublicKey, session_data: &Crypto::SessionData, + fingerprint_data: Option<&Crypto::FingerprintData>, ) -> Result, std::io::Error>; /// Atomically commit the update specified by `update_data` to storage, or return an error if /// the update could not be made. @@ -306,12 +356,18 @@ pub struct AcceptAction { pub session_data: Option, /// Whether or not we will accept a connection with the remote peer when they do not have a /// ratchet key that we think they should have. + /// + /// Corresponds to the "Responder Disallows Downgrade, π_3" security flag of Transition + /// Algorithm 4 within the ZSSP whitepaper. pub responder_disallows_downgrade: bool, /// Whether or not to send an explicit rejection packet to the remote peer if we do not create /// a session with them. /// /// This field will not be used if `session_data` is `Some` and the remote peer passes all other /// authentication checks. + /// + /// Corresponds to the "Responder Silently Rejects, π_4" security flag of Transition + /// Algorithm 4 within the ZSSP whitepaper. pub responder_silently_rejects: bool, } diff --git a/performance/src/crypto_impl/mod.rs b/performance/src/crypto_impl/mod.rs index 96254a5..acf86e2 100644 --- a/performance/src/crypto_impl/mod.rs +++ b/performance/src/crypto_impl/mod.rs @@ -38,6 +38,7 @@ pub use openssl_sys; #[cfg(feature = "default-crypto")] pub trait DefaultCrypto { type SessionData; + type LookupData; type IncomingPacketBuffer: AsMut<[u8]> + AsRef<[u8]>; } #[cfg(feature = "default-crypto")] @@ -54,5 +55,6 @@ impl crate::application::CryptoLayer for C { type Kem = CrateKyber1024PrivateKey; type SessionData = C::SessionData; + type FingerprintData = C::LookupData; type IncomingPacketBuffer = C::IncomingPacketBuffer; } diff --git a/performance/src/frag_cache.rs b/performance/src/frag_cache.rs index 6e3789b..8f52d54 100644 --- a/performance/src/frag_cache.rs +++ b/performance/src/frag_cache.rs @@ -257,6 +257,7 @@ fn test_cache() { type Kem = CrateKyber1024PrivateKey; type SessionData = (); + type FingerprintData = (); type IncomingPacketBuffer = Vec; } diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index 4247274..e55c76e 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -68,6 +68,7 @@ pub(crate) struct MutableState { /// Corresponds to State B_2 of the Zeta State Machine found in Section 4.1 - Definition 3. pub(crate) struct StateB2 { ratchet_state: RatchetState, + lookup_data: Option, kid_send: NonZeroU32, pub kid_recv: NonZeroU32, pub hk_send: Zeroizing<[u8; AES_256_KEY_SIZE]>, @@ -331,7 +332,7 @@ pub(crate) fn trans_to_a1>( send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), ) -> Result<(Arc>, Option), OpenError> { let RatchetStates { state1, state2 } = app - .restore_by_identity(&s_remote, &session_data) + .restore_by_identity(&s_remote, &session_data, None) .map_err(OpenError::StorageError)? .unwrap_or_default(); @@ -472,11 +473,13 @@ pub(crate) fn received_x1_trans {} - Ok(Some(rs)) => { + Ok(Some((rs, data))) => { + lookup_data = Some(data); ratchet_state = Some(rs); break; } @@ -551,6 +554,7 @@ pub(crate) fn received_x1_trans { let RatchetStates { state1, state2 } = rss.unwrap_or_default(); From adac3f74a2cae8f687b5c1150422fc0a28fbe961 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 21 Nov 2023 15:17:39 -0500 Subject: [PATCH 19/44] overwrite pdf --- performance/src/result.rs | 1 - whitepaper/zssp.pdf | Bin 423717 -> 423914 bytes 2 files changed, 1 deletion(-) diff --git a/performance/src/result.rs b/performance/src/result.rs index 87f3dcb..38ee6b7 100644 --- a/performance/src/result.rs +++ b/performance/src/result.rs @@ -16,7 +16,6 @@ pub enum OpenError { /// The session could not be openned as a result. StorageError(std::io::Error), } -//test /// An error that can occur when attempting to send data over a session. /// Depending on the error type trying again may not work. #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index a5f7ecae41c16e8418dac52fbbcec5bb55be6d61..62c44828765895c91d4486653bc1f3b0acba8ccf 100644 GIT binary patch delta 23646 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 IuKsRZ0C)Sx`2YX_ delta 23428 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 Date: Wed, 25 Oct 2023 17:47:52 -0400 Subject: [PATCH 20/44] fixed typos --- whitepaper/zssp.pdf | Bin 422344 -> 422471 bytes whitepaper/zssp.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 71337eb5e1a13367f0a170cca64d214eddbb5a42..1ed44f51c148963531ed7b4dbe7d73b825d67d04 100644 GIT binary patch delta 28885 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 eZ}a*e`LdiDhzRzvyW`FeQhz*<<_aNIW_?z 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 z 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 diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 2d838d2..8ef6df4 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -227,7 +227,7 @@ If Alice has corrupted their storage, Alice can either send the empty string or ZSSP is a stack of three closely related, but independent protocols. These are the \emph{Zeta Key Exchange} (ZKE), the \emph{ZeroTier Challenge Protocol} (ZCP) and the \emph{ZeroTier Fragmentation Protocol} (ZFP), described in \figureref{fig:protocol_stack}. The Zeta Key Exchange is the most complex and most essential from this stack: It is the part of ZSSP that implements Noise XK and Noise KK and directly interfaces with the upper protocol. For that reason we are going to describe it first, in isolation from the lower protocols. \begin{figure} - \caption{The protocol stack of ZSSP. When the upper protocol sends a packet, it must pass down the protocol stack from the top to the bottom, where each layer may modify or adds to the packet in some way. When the datagram protocol receives a packet, it passes is up towards the top of the protocol stack. Any layer may consume the incoming packet and not pass it upwards. The Zeta Key Exchange performs key exchanges to provide authenticated encryption to packets. The ZCP protects any key exchange protocol above it from CPU exhaustion DOS attacks. And the ZeroTier Fragmentation Protocol fragments packets to fit within the MTU of the protocol below it, in a way that mitigates common fragmentation DOS attacks.}\label{fig:protocol_stack} + \caption{The protocol stack of ZSSP. When the upper protocol sends a packet, it must pass down the protocol stack from the top to the bottom, where each layer may modify or adds to the packet in some way. When the datagram protocol receives a packet, it passes is up towards the top of the protocol stack. Any layer may consume the incoming packet and not pass it upwards. ZKE performs key exchanges to provide authenticated encryption to packets. ZCP protects any key exchange protocol above it from CPU exhaustion DOS attacks. And ZFP fragments packets to fit within the MTU of the protocol below it, using an algorithm that mitigates common fragmentation DOS attacks.}\label{fig:protocol_stack} \centering \begin{tikzpicture}[stack/.style={rectangle split, rectangle split parts=#1,draw, anchor=center}] \node[stack=5] { From c9271ff0d68ccbcc43e8432c7e9fd0a54c22c1e1 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 24 Oct 2023 15:57:43 -0700 Subject: [PATCH 21/44] P385 -> P384 --- whitepaper/zssp.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 8ef6df4..4e7a9db 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -56,7 +56,7 @@ Within ZSSP, initial contact between an initiator, Alice, and a responder, Bob, $$\texttt{Noise\_XKhfs+psk2\_P384+Kyber1024\_AESGCM\_SHA512}.$$ \texttt{Noise\_XK} specifies we are implementing Noise XK. \texttt{psk2} specifies we are using a preshared symmetric key (PSK) used on the second message of the handshake. \texttt{P384} specifies we are using elliptic curve P384 as our FIPS compliant Diffie-Helman (DH) primitive \cite{fips_p384}. \texttt{AESGCM} specifies we are using the AES block cipher in Galois/Counter Mode as our symmetric primitive \cite{fips_aesgcm}. \texttt{SHA512} is our FIPS compliant hash function \cite{fips_sha2}. And finally, \texttt{hfs} and \texttt{+Kyber1024} specifies we are adding hybrid forward secrecy onto Noise using an ephemeral Kyber1024 handshake \cite{kyber}. -ZSSP is cryptographically opinionated, as in ZSSP is only implemented in terms of the P385, Kyber1024, AES, and SHA-512 cryptographic primitives. There is no cipher suite negotiation within ZSSP, if one of the cryptographic primitives of ZSSP contains a critical weakness a new version of ZSSP will have to be created. We believe that in the modern era, with strong, standardized cryptographic algorithms available, this is a strict advantage to security. Importantly, this will simplify tremendously any future mathematical analysis of ZSSP. +ZSSP is cryptographically opinionated, as in ZSSP is only implemented in terms of the P384, Kyber1024, AES, and SHA-512 cryptographic primitives. There is no cipher suite negotiation within ZSSP, if one of the cryptographic primitives of ZSSP contains a critical weakness a new version of ZSSP will have to be created. We believe that in the modern era, with strong, standardized cryptographic algorithms available, this is a strict advantage to security. Importantly, this will simplify tremendously any future mathematical analysis of ZSSP. \subsection{Federal Information Processing Standards} From feef9051932d89395dfcbf86143e11a06c68b314 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 24 Oct 2023 16:27:34 -0700 Subject: [PATCH 22/44] Fix typo --- whitepaper/zssp.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 4e7a9db..c633154 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -198,7 +198,7 @@ If we disable all security features, we get \emph{Opportunistic Mode} ZSSP. This \item Double Key-Compromise MitM -- The attacker has the static private keys of two peers, and attempts to become a Man-in-the-Middle between them. \end{itemize} -Opportunistic mode ZSSP is vulnerable to Compromise-and-Impersonate and Double Key-Compromise MitM because an attacker can perform a downgrade attack to reset one or both peer's ratchet keys to zero. Howeve because such a downgrade should not normally happen between honest peers, if one does occur we can warn the user it has occurred, allowing them to investigate out-of-band whether them or their peer has corrupted or lost their persistent storage. If both peers have not corrupted their persistent storage a downgrade attack has almost certainly occurred, and one or more static keys are compromised. +Opportunistic mode ZSSP is vulnerable to Compromise-and-Impersonate and Double Key-Compromise MitM because an attacker can perform a downgrade attack to reset one or both peer's ratchet keys to zero. However because such a downgrade should not normally happen between honest peers, if one does occur we can warn the user it has occurred, allowing them to investigate out-of-band whether them or their peer has corrupted or lost their persistent storage. If both peers have not corrupted their persistent storage a downgrade attack has almost certainly occurred, and one or more static keys are compromised. Compromise-and-Impersonate and Double Key-Compromise MitM attacks are possible against persistent mode ZSSP for a brief window of time. When an attacker compromises a peer, and steals their ratchet keys along with their static private keys, they have a limited time during with they can perform an impersonation attack. Otherwise the peer will engage in new key exchanges and rotate out the compromised ratchet keys. Furthermore, if the attacker commits to an impersonation attack, this will permanently desynchronize the compromised peer's ratchet keys from the peer being impersonated to. If the attacker does not commit to becoming a permanent MitM from that point onwards, their impersonation attack will be detected. From 2f3ce584e2ff1734696e9ab913018175712eb816 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 24 Oct 2023 16:47:48 -0700 Subject: [PATCH 23/44] Fix a few more minor typos --- whitepaper/zssp.tex | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index c633154..d1479b8 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -200,7 +200,7 @@ If we disable all security features, we get \emph{Opportunistic Mode} ZSSP. This Opportunistic mode ZSSP is vulnerable to Compromise-and-Impersonate and Double Key-Compromise MitM because an attacker can perform a downgrade attack to reset one or both peer's ratchet keys to zero. However because such a downgrade should not normally happen between honest peers, if one does occur we can warn the user it has occurred, allowing them to investigate out-of-band whether them or their peer has corrupted or lost their persistent storage. If both peers have not corrupted their persistent storage a downgrade attack has almost certainly occurred, and one or more static keys are compromised. -Compromise-and-Impersonate and Double Key-Compromise MitM attacks are possible against persistent mode ZSSP for a brief window of time. When an attacker compromises a peer, and steals their ratchet keys along with their static private keys, they have a limited time during with they can perform an impersonation attack. Otherwise the peer will engage in new key exchanges and rotate out the compromised ratchet keys. Furthermore, if the attacker commits to an impersonation attack, this will permanently desynchronize the compromised peer's ratchet keys from the peer being impersonated to. If the attacker does not commit to becoming a permanent MitM from that point onwards, their impersonation attack will be detected. +Compromise-and-Impersonate and Double Key-Compromise MitM attacks are possible against persistent mode ZSSP for a brief window of time. When an attacker compromises a peer, and steals their ratchet keys along with their static private keys, they have a limited time during which they can perform an impersonation attack. Otherwise the peer will engage in new key exchanges and rotate out the compromised ratchet keys. Furthermore, if the attacker commits to an impersonation attack, this will permanently desynchronize the compromised peer's ratchet keys from the peer being impersonated to. If the attacker does not commit to becoming a permanent MitM from that point onwards, their impersonation attack will be detected. For peers actively communicating with each other, the attacker's window of opportunity is at most an hour. For peers not actively communicating, the attacker has until those peers contact each other again. @@ -559,7 +559,7 @@ With the necessary background established, we can now define the final component \item Ephemeral Noise handshake hashes, $h$ and $h'$ \item Temporary ratchet key and fingerprint $\texttt{rk}'\andb \texttt{rf}'$, used so Bob can complete Noise XK before knowing Alice's identity. \item Role identifier $\texttt{r}$, used so peers are aware whether they were Alice or Bob in Noise XK - \item Comfirmed key index $\texttt{i}$, used so peers know the most recently confirmed Noise key. + \item Confirmed key index $\texttt{i}$, used so peers know the most recently confirmed Noise key. \end{itemize} All of these variables are independent \emph{per instance of} $\zeta$. So each instance of $\zeta$ stores a unique and independent set of these variables, and they are never shared between separate instances of $\zeta$. The persistent state variables $\texttt{rk}$ and $\texttt{rf}$ are a partial exception to this rule, as they can be accessed by multiple instances of $\zeta$ over time. However each of these instances must be associated with a single, unique remote peer, and two instances of $\zeta$ must never access the same set of persistent state variables at the same time. @@ -1084,7 +1084,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{definition} \begin{definition}[Pseudorandom Permutation \cite{modern_crypto}] - Given the security paramter $n$, a keyed permutation, $F$, and a probabilistic poly-time distinguishers $D$, define the advantage of $D$ to be: + Given the security parameter $n$, a keyed permutation, $F$, and a probabilistic poly-time distinguishers $D$, define the advantage of $D$ to be: $$\mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) = |\prob[D^{F_k(\cdot), F_k^{-1}(\cdot)}(1^n) = 1] - \prob[D^{f(\cdot), f^{-1}(\cdot)}(1^n) = 1]|,$$ where $k\gets\$\,\{0,1\}^n$ and $f$ is a truly random permutation. @@ -1103,7 +1103,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \begin{algorithm} - \caption{$\algn{EncMac}_k(m)$ of the ZSSP header authentication algorithm -- Input $m$ is bytes 4 to 20 of a fragment. Function $F$ is AES-256. For the sake of the security proof we will assume $m$ grows porportionally to $n$.}\label{alg:header_encmac} + \caption{$\algn{EncMac}_k(m)$ of the ZSSP header authentication algorithm -- Input $m$ is bytes 4 to 20 of a fragment. Function $F$ is AES-256. For the sake of the security proof we will assume $m$ grows proportionally to $n$.}\label{alg:header_encmac} \begin{algorithmic} \Require $m$ \Ensure $F_k(m)$ @@ -1111,7 +1111,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \begin{algorithm} - \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we will be assuming that the size of the packet nonce $N$ is porportional to the security parameter $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} + \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we will be assuming that the size of the packet nonce $N$ is proportional to the security parameter $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} \begin{algorithmic} \Require $c$ \State $m \gets F_k^{-1}(c)$ @@ -1171,7 +1171,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{proof} \begin{algorithm} - \caption{The implementation of $\algn{Vrfy}(N)$ for ZSSP -- We are assuming that the input $N$ is being interpretted as $p||c$, the packet nonce construction of \figureref{fig:header_nonce}. $D$ is a stateful, finite array of integers, initialized to -1, that stores the value of previously authenticated counters. $D$ is updated after ZSSP decrypts a received packet. ZSSP explicitly does not verify that the padding is zero, for the sake of possible future revisions.}\label{alg:header_vrfy} + \caption{The implementation of $\algn{Vrfy}(N)$ for ZSSP -- We are assuming that the input $N$ is being interpreted as $p||c$, the packet nonce construction of \figureref{fig:header_nonce}. $D$ is a stateful, finite array of integers, initialized to -1, that stores the value of previously authenticated counters. $D$ is updated after ZSSP decrypts a received packet. ZSSP explicitly does not verify that the padding is zero, for the sake of possible future revisions.}\label{alg:header_vrfy} \begin{algorithmic} \Require $p||c$ \State $b \gets 0$ From eddcd4c6000415714f5984c81de25d79832e95a7 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 24 Oct 2023 20:10:45 -0700 Subject: [PATCH 24/44] Fix minor grammar issues --- whitepaper/zssp.pdf | Bin 422471 -> 422443 bytes whitepaper/zssp.tex | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 1ed44f51c148963531ed7b4dbe7d73b825d67d04..ce7413a5cd3fcc0bf10f434289eda63a8924be08 100644 GIT binary patch delta 34629 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 Ks_N?R#svU6$w~A8 delta 34655 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%0A+U+A5mc;sx^xx#7ADoo!ZoyDUcoGf1d zwzHlq_WG0uZj;@;d^#n%CvACmFZShUQ+el8tarQ_h0n%rSueCY)KiEaHA?x(*5p9p7al>B>R5l`Y0k;@CN?f70HK5>Jx&&K8Tf9_s7 z>(9X1ektsWX!&c=>tNfbqZN*7ODZ8W>+~wuG zE6q~YyG2-D^RF+bU*77r3zjOu5ALqn+MpDOUzv=G0?(5f%Y5B> znSJxJl}n$`tKR;u{@FJ-eI>OYZ{|Hs$lljvzGz-habo(6Ro!dCnzNPKisugckY>@8Y*vceF})j`$zhv=1-$Tol_j?a8jSZ*&(YactN)>t5Q= zllN9kusT|Co#~6!h1klu6B;f(jn=#B;Zdcsgr)Tf%M?DQU&6hSrvEWTOQVydHQ9p?>@GUHY=SUpYFd^JUpwr_lm(uLC3b%a)~s?1TGGx{y=&?liYk)$YI*-CtD)=a$=iaec#G>q>s0h@9FguX`UafZp>=?#j;w~rj*@^ zF>>a;z_v~Cvp!}_`eW6y)pTy!<5%@+b2dFZtoV4ALab1WH9q3XO5!FDJ8!4 zW|k!~zeV=X`!B!cKVzPI+ADCL{{HppV`dX0gUOEbHS42u`|oTM{P!+?BkQk3{tugK zgyVBqTBDD~mDQl-i$s zn3~P){dw(f z!twX%PsN@4TlX(~_N6LDK`(t;#8J^xi+}nUd#$(-HzhZIz5c6rk8%{XY~xLD=hj~R z(Oz{u-u$(3-m}`>Ykrq){`U0r*_%vU`c7M)Esy?wr{t|xh}UKRajCgJ zVZvE@=Bq`;-d!u?+E}rDUxwA5r*$XlBevyE+pTx!_{W`6FMr&5eQ1jPH>cf&KO9@5 zWv-++&AS_uyKCG2xPyNjvwi&7eKs)#WKPZyFiYzca-2H*z2@ZCW-HpK6(9Tfy7QK% zvzGRQ=pydL=QoLG)rO8)kLx8CRFJ59WtnXy1_TJq~Hp9Xlp1bU%Jjo-kjVpfL^!ry% zJ6SskM9xfpd!%ok`RS&l27?W5ok<2k86BZ5-lg>snf2atCIucY*tJwFvHaj!{=D_~ zezvbpyIXR&tmXL*rhe~QZ||0iM_+pU7H=~+`;9Ari9;jr+Ua-iw#hHx7IB(E>*?+ir_gCc=pZ0oxtdltOX-(2+-|G*T9;`pTZ;M$| zfwX(=%h~(ylpI#btMLq&l%Ocwv1yC-L6_{ph~Ce4J9pbC zNbCtal9gDKzAVVtQG|PQOxCKVx9Sc{k45qEU!FRZd79|)oQ`dU&Fi`9Z5>!8Q+0Fa zu`X};BNWNmyn61dG^=F{tlVx(rrxwkuk}jOoUc0do5Df`x6_Z-`C9WTd=s4eY{rbT zUHQj+xXSB1cbGA}`F^`Oa^|${ z&+AT#tljf7^?`}hTh*G&huZJesC`MxdZpoWj-%o{Lqcjmk=QuQR*0 zY!!}Xo2?!wvZ!*C?m;Q>2)>5Zb5(8UE>e9uH``eC$$wUVeY>vSNHzSX%Y$j#Z~EMM&Axy+D{^Y|)cdAP)7va(NrwVIZ=o2 z&Fx8t3=idm>?pst_4Eu$Capz@@8!)J54t@1^q6nQ&4k0oUlX<{P3gYas9AQtRAj@w zDlw54jl~xyc7JWu&f8VRDR)Lw>&z0hX&+RpNVL9)sRr87B>ppLHrA5?tddpYCJzA}%7Co(Lx0P)oj?!Lme7>DnjFhP=Ex#Iuh%@N`Z7TyLbq>337|^O>Bh z4g6ebW-KZ;`K8lsP3DAd(B%EE+p2P=y-j6LzV=j=p4Bp+v*llB&Q_G*Fm4k*?#*W} zrq3Sg@wLHvxybr+nx*rVw|zdvDt-Uz`&-gWj+|?5dsZVV&vNI^9o=7LS6j~OHLc#a z_Im_NU}D8dnN1wG7(+^4C+w})jacN!YE|F7$<%)9?K+9|`cdZL=5IrP^J!HYGkyzY zEcwhiednFE)17Z5zuFmT5IIrAsrqRKzkGPr?$4(Ma>Tl#s;f^v4(zl$uzJG$v#TfYzYSHnJ$ZTL091QUCw%&KG)K#y>i~ z@u%I5=?W)bFvxJHx<^#steO*19cg>MMY`Q!MrTHKP5pE4{MYNs9>18qj^)10j4d0M zuaj{zv@G2zlTqDqhHr`RZtk1CC9mYB|61x$AA6kRK)2GA%+s4VM42jGcg%PY$WwYv z&PAY1&`qFnJ6}=kONN~vvK}6^aMSwpTs)$>c5C+b>kNlnm$A(2>tOi2M?z&)Mc4jy zvFm4?Whh)|edM=S;}^TwGSPd@?Ex=lF4Ruq|H@;WVI^*j3^M;{?Zb z_PlOl9c$X`lJEYXvV_T6T2cSjtQyat=+Apz91lBZ=>Fd__|ui>^)WJUMABpDzF5;8 z|6+u$idoT>RiFNoWcVv?P{Fsm zq5fQj>!zCa$D*D`nLl>z*?IX)#jEAVET_%9o;uZH-I_~v6Sl>PeGOPCB>W@9N<#e8 z%Tz~p(}fIPO#!R=UM-mQD#7om!HiueqJHfU(BoOYLX+17a8uWyeoe*Mu z{Xvc=BRGq%&6thDPC=l4PV_F5IbV)DDRXU5$(wb$NaCbRR-lntM5DY^`84@-R>@6b z>$tREr&WNP}+Qal^aZ2Pa z3E3o@$4n*ey0>TiFFcp}r0Z6ptK6;Y`)X?^Xfyd=R1Um%Tr_z7_9D%U>-FAm^>6RH zy=J}Bamk1G)w%X@-upYD=$Z4AY28P5f0vnjT(UcF?|iM+_T3e7)fQf+7vIaxT^Bqv z?fth{k5iTZ?espsxPQMzi~Uc9&(-8Z50h)H8zHM~4gJMC1y2{O#*TgIHX z?JIx!zZ2qimLE4?uaueftNDAMO#7<$&X>;K-TuymW$L{}qPFg-4eL9bKcBy};OgGz~uI?Qr`o@+?|dTiv}pvDfQkQ2=wT)^@9$vkmn^r;jv88LLSe)`$Js6dbd< z`GMrCx;u&;;zvVfFZp%dWlD4Rk%M=%J}NvH(RsnveO%XE_TQNWLRshdp4ClZX_I38 zw`z`@Ld~DRBi*(&2{u)KmsCjcPJf)-tS0Zz;m0#;MGm{4|4|OA}#8Qb1n`mfqB!nL^n7U$2_{TsH&T`~Lf!mX(Ge@U3s>j^?J z%O@=g`LUb7PUqiB^+{>I5y!vsrA#`&^4X$LucPJBn`^pv*8g#iSbV5ZtEA}d#!j!I zCEWEZW1TAAN`GUoWtey8%FfC5b++IB-pcvJY%E#x-eh6zhwEASbJWfMPMr1YhFOZ@ zM!73YZkCqEg|{%Bkeczuvt?7khT}ii%wU=K?~eYCUGE(`RN|w3KW%kxE8QF&|0J#8 zn59s`nf1R8-|}NBJb&vCzr*W?=ebhzQi@B8QWJBzQl|$!XOv^Km|pmtQLFy$ z>%Ye@Y`1%{Owg%@`D}^Rbx*y^KDTP__{zWf(KxN5yr=Y1r2M{Jf1mH>ZcuS>5|Tab zXY;b6W|4=$jo3HG^UD_|6`5&aGr2w>78y z<}cd&p1X0DYtE8pHMB7Q^EPe1>E-i_>VN*P`uygzwyv6wK(5K$J9qe2?1=Q4=fD5Y z$4{@GJvw^U{CtrQ?)&k_)iCnF;rxcG+^2;GCJAs$qt$J(*^VGX4|DR1w}^6&iO#(F=dWIcKRSv%O} zy@q#B{gVw{)16GeCqG!I6jt1vyh5qfC9Pw_CH@-Gw$2Q#2OAP5XI$`a)j4D#+xz%P z#>F)j=lzao=CU17`I2;O&CGTAf1khG_euQ!u6_UH)_?i3PfPsjvHQB;4H8NZCM4ME zmw&AieOG?z!217R<-^6>{J*c>DQ&)Fs;3`ID6e67Vn=WNlEsPAjq0w^>$=;r<#>Zz z4xUMroAoeC_~6$Rv9lrhw!K>)KjZzk((Ja@)MHP>uP+eodeHM>8{12*JKA1rrtn^^ zl@k^f5Gh$b^}BuH%(HKA^R)7m+%$VU!Qx!k%d)==B86GWjE}D$Kl`ic<;&Ssfx3U@ zPPh0P{eRYNmpwb{Ygp>tCT#w;_3o{^GuKc5ckOM}<9IHm75VqCt+xK3Qy%}W%GhpN zamK{^y z?oAiIQ>kPA)Ojm&sDuz#HS@MBtL|$#uW%8Uo;SIBra)5FV{zfNUoFZTvKz0oEn6TN z(Jz(GwafVV-)k!^&ipcZbZoc!o+6{>^YyN*;w4u1uOzM)pSL4HLhqNr%Q^qp7SG=Q z=i}@2$Yy|M6cc-G{Gr#s%cZqO5PEC}FgZhqyi$QNWS);jBa&Vj&76AoqQx9?vo z_kFj$s>zqDyw07zbN(mDb`%+$S{0Hj_ebwT#cqu%y^F3~6S>V7?3*>e=z&NRU+|kH z?BTWi^>W8g&QyC*WqM`_f4k=bcAuu^#5uM;&z9W0y=kUS$5O4*;_DAojhdLxC-_^i zIYu9Eh?Cx0bbZF0VrR7?=MNh`9{#Yy@W8yO;w{_U{up#ApK9bg95n6KoXW!uhx#_; zac$gjVPb~=JAXeLF|pT&C32V5f0Iu<)gr3q`MgWE>*VM9`4>v#$dP)P42{}}fl6$4e(qjJT-^FK)okC|#p&Hk`H>>Bt>523*Z5#c zc=t`^2b~KqaFwi@)#mX*^^y66yFF1it-h#OXgjISHb|Ojxw}SU_P>h@r9W74eORPq zmBVy8pf6Isdoy$XrB0*b00-8@$Rg(%mg_D~2}nQGK4sV3ZpjTc)m;Yl4c50*-l)&! zt?t$IG|}SfwJI##=G?J<^TtympJHWRt+;z2cLIyeR;9M?i(-GYtN$HacgaO~bNbzK zo{vi=+;)7&A9F_HM+bw!ymza8`K}%QHv3V@hh?0rp3hLdHX+yc2ghE`gZnSP{Ke?_ zI=znJ-l^7HgPl$FHM|`Uw!SdxR#{$Ovf|EDjo)f9rj`!ep=Gb~$)qH-s>&v1gK294o z416~VWIs>~?!6c9aYOt2^KJj@UMV-UowKfw{e49v{r>`2txu0D>$ol!#Vm@+G}IOM z-Bll&ckfrUU3)vX_@x7UCCPkq^;E>Nd%O90r-rVxa%P-#dEdn)TX~ftRvX5zeO9mk z+;Z<@zT0zVxbv@0(VSNhy2-=(V#$6#5C0^ zwS3QK|Ao((POn+DU}a)xd*I*Fmz)i6Kcz}6`MR%6^X%ULQSB4Irz-p^4Bor)`tP@& z*8bnO@|ozY@X0S%zpQ_o_V>b`JzrggRxvs?FbF#y%UjT2(>g`q-H+X3lQ+NIEwJF% zHNMwJ-B@B@zTK_oaAni_C58guyiU!1{^5ZAY;W&#Mi&pLdCUlsQ%s!YJh7$x>nt|m zFAMniXJ~e=`F25tck3}n6$OO=@7Po8*bF*cAFDKMb?h}~{mypbozBdcd+RH%OWqTX z=fCYx8)zA2psvcm6Lj?UwEq1}9xr^|`=4bp1*~OMuRXU&_(#(6ckW$&j}k6+$~hb^ zIq>J?8EK_VMvojf)rqszrp}V<)7v7cc5nJmlORdSbe{cfKfi=_sMdB~)>3g_Il(4! z*DF!0EuU@o@3`~d!pu_8%_T2-&Kd3`ON`~Fn|9h|4r&$`M_$6?5sPdo_hSAo4v8^&4-stB^w_6x|-F?Jnzqx zuX?$y^;=Gv=x+}#UVSHZO{50Pgc)DFL|2vAKku@0DZjWumuZQWggE2AGgbyIdWRmi zx)d34eri2(Nv-C~sy{ZJ8Zsv4QeOfc&xNubkzlBjcr1~w?s#UwSwZfEWqX!ScHu0H zU=o=kJ>&bjCsR0%%w!Txn49stk9}3fgNY7P{mj=nc`dHLapzRTmshEO?wqQc9qK&w z#M?Wc!rMcBcHi#dV&ZGslPc2}w!C1At$N?TkP_{cLjUfF1k6&ZiTdPn<+j-6Rl8I7 zr6unCCs2Ab`JhSs-H;ns1uCv}Mr7Svy62~svgYGi8xEh_U~xtApL3cJtK2%%r?>x1 zRKLu2an75XnSVL%dnVR*K06d|bNKFyJE;MdmmaKseB`Zz;`KvnGO0I(mhnGqyPLM3 zr(NEUv8~`mo0z}^7x}GnZl+;3laDx_=?t(6QlH`a>VtBCdd0<{_U-%!B-aEhW*k&J z>%zC?!Ed=OKcZ9ll8oQ%FZuV|?D4DvS(A)TN`C5V)b}yb-1s;qKWMjZN4=VrNZ^;_ z{K(W?>DChl|GM}UlRn;@9rI~g#mfKc`R^~X{7m6yF6^$iu2*B7GfC)u;946Q>+_FT z_>!)*eEg`MT0J9_-|WeB=WBvxUksaXvR~i&qkdUN!$aR)#cIY{F&A&_tqhSo=o_`P zZuczOC{$1O8FM#pUEJ4b60D_ckZv+ZzJDZq&KoV ze{G54)p+ot(C^g8?M%mK*~v&YZ}8^TVBNl$``B_71%HnPr#p{zF4%sI=XULn%@bz6 zPM`fR^I;v=H|uM!lBJe#A3Abz+QNwopH>Dm9+(}_uxf@xmNNf!NmHKS`kC8YKRE|@ zCCJ&Fy7^^7T>8hkx*2Xo?6*T#=bYK*!#8X7${8(6LPxws#w|rdQGApp$ZnF92N`AhB%L87?v>%g}6`b&ow?6Vu zUi-1xJ1u&y{F!WRqUUd-zU$48?-f}lF#*eO8gM4E{x&#%%=xdqmF>OP3|rLQN@o37 z&OTM~%)^6v9*3qXuKMZAm;Sd|^gr{FnMZ1-UleB)o_^>HqdB9+#$0wOMC)8=P=7n(o>7FGz%ct=N*{eleaH z-lO)SS|S#KS9-Z8cbm;;|35?8N0j-kNW1aJazn1EK5DG%R=-=BW)U{O?cwtl#W#f3I^eN3{NxFDw0^BWlsn zXufvF)C9NCc1}6w^n*1GbENj1V`yLMC;vc1VCI1r2fZ3o6O|sn`kb-B>m5J$vUhCk zrH8-xG^95zmNdwGm&0~J`p&y`P1O&>k2OngH%j!m#quKQ&#V>v42^luns&?V;(4*{ z)wSFo?jNn*)C)4aefX)#-1D9Pr-T>t*hB)H1bpN6&hpvMEzX)h<4}L%ugm-Y@lHM{ zAjLal*UtL?|IR*Hyh$@;QEu=)Echj*{feS4nx>+hehHU}=(|9blC?%yP_ z^?Lc!uYaDcQD1gAhuM*x$?bQ;LJ{FlkGPqi8MsviNJ%U2e3Phhd9lH!)SGkKD;KD< z^NV!N%l+pe_u}Tx=Z(%Et5>miy{k+x{i_)`D?Fn>?V>DqzvNag!}^6`A&Xw5&YY07 zH}A@vWHmXVEv42O^Ox~tx#wJ6-FbvZ>d+*muF0P}JTfPkS7_C`cU#0f%!k(GD>Ou2GPVJfRGt-avsncr#xvd}4+^$sc zY!{i!knVjkK3Z6@?d#0NYQepnam>HF{hn<0U=b~_lALX0x7ebqGC}ZBogh=X%dZQI zi+DsY#>!4TofBA|an!je9mSiKGn7TCRskFo%OtT zqjlGMADCfR6(1WovB-MbztbJA8dEhi8kt(JT-P|TNqg7kSy>{Q?jjEbAKy}`lGfwN zd&_IJi7&}9L7;k$oSfmI!%Dl+8#RZ3-^DP=9&Wg1J(vrTZUUX%t=l zDsPHMocr-vE?sN;U%y!SGBa@UokjBv7V%o%s~1<*;1WvM#>MtDn~9-tBfDc!>E1a< zzfAuhtDpA%oxXU!d&=Yo8{+n_oHnB-^>ERebA?-7HrKFha(SHT#1YnR^i+yBvUL^1 zyFSzI&R2%MpE_olu+8Lk(KvRXjBUTlk@?!wv}A)*&g^NsHK%5xV5O<$PPU7tUsFR0 z#H9`i{km0Ov1tW!rqkV}oF~3^yiG0=J$ZbKt^cQ&+n2B#U0kW@_MLmLb)IXV z8FCw_ceBoMj_RH?A?QNw+ORywqNR4qLDyxCjFpxjN?%&H={`Xns=7Re_Z*K zxLBy%EPz+(K4w~A|P-uf1vZGLs?p4OI=20y+$VUSv5-Qj~k1Y*hb8G z^=I38|Jx`3TnYR2+s?5(=cTt!o>#YITJg2V(cyB}XT4T1u*obfZkL_y`rW1M)nn@= zoO4CuY^L-4yJ&a3uYTvgy}y4Jm6_Ko3A+4#*8Ppw%7XF8Mf1NLR;E=E)1R*2{4=R- z(Kc!MT!r^p%$3*s=4_Ga?dulw_*&c=t^YCa=)F$IqnY|EYQ%pWSrB!-YvZ@C69TX9 z%Kd(0QvHMl7q2Hz__Ubs*0sfVzun({xLskH{`B2P+kPEry0>nQzVHvWUz;5k#>Z6W ztlVDjwRdmBh11vk&!3$0-E2-xdL2j2jxDx7))Z~5&)#5l>eq_bi`VvNTSmpl=em^3 zOZMzo=8(a{^K9jdn5CS1CfG=4Z2$Ll=bWFnWsL9tsoDDDZ<(e1UfC5LTqc)e?Gv_^ zyi&E>wc@FJ z{Hhpx=X^0dG*NrjwxkV#eSTpP#Vvc|oRn|0{i#;ydnR9Q*(G4#F?R*~w5j`b=6Gja zw3qt5<0Pm2sSUp8>;mf+NonYXW-MkCPycv$i$wANof&KXrCyEVHn|&9IYVk!^y5z( zbnow*V?I|bvhTEKalOjc#YJm`TlRQ>erZ+xRw2Z%W_id^Cq{Yvoe;j|l_(|Ht z^rYO|y@K0qtQ>~M*)wq(0 z`@{JkyRzn0-buCHlCWaltX-+`F5;_J)JJg|oZcvqt^90um}A=C*TLQY#4avs@cogc zd`o_%d$@S+;uHTFU$L$Uo&NkUqZY;h?DTUlmWeg{GkIKMPY+6;)vnT;e`}^iUm=ab}w%2aLqbk#C%m06Fr=MTHzHZ0APn;i}{{Q_o<<9?>dfTU8zVC7HIpdR7 zG;Ohsl#6i|+vT$s&;90zf4#~i^*Mjmbd4+S=S?~HC1@o_9h8{%?dHDSr7maAd^)4C zPFL`xiuh*Mvn_)2E=_*Q7&)&nxhiaaMLm<8zz3g=iEG|-PMoJUhshu?O|0jO?ZhLO zS2pyeM|IA-u6NKQ&8R#~wSpDnSg4r1yo||hV9(_L2QmQs{PG?V$ z{_A4@mbq@h@17`3TKKLbr0>=8mMoWJsdn5QO_{SjT19U3X)WQ5(|KGe=leI{OUHTj zy?3nYCqy@MN?b5J*LJb0Gs46^ukB)n6JxiHu%(VW=Pi-rrVgAd92!3~ZQ86QkiU{i zP*G#~hD}VLA2yg|rt==-r z`@0qY`X|L7WY)DP-6#3o&8Y6Qi&7b@x$aAYjj=m#s;MkgungyH*^_Nh$@kz)%7O#M z4C09qg**>lF_$#g|Ey-N_}AX|Z5hLIo+i5!1!5CIBxk&2=PT$5w>(|sP&7}|K6Kgz zsax|Rbx$XV_|(Sto?O2`QaNc_G9UL&h9?{J>lHSO?)f8RRKTaSXXBD`;{_#U_s_*S z)YZ&*#kYqgp?6kslVLzZ-!l1`t~(oS7H~DJReN||Kxwa+Mo`ME6ZPNocukmH-g7-$ zx^o6gykXj*2e0G9ea_GR>da-PCHy3C!%rnthuM7<@nK2?yp(6P_yT z$9UT2aMa1;7k?j`s2%oF;89M!8m~lbRsHXr-79CW+P!yoRD=AS;K>H-ng08*o5bFq z7S4U}b7g7ye%<${WEZX0-nHu9&VN;NOOkfpJ^88+H5x+qB;L zdDAV{tQBV9oRGM%A1S($%VKvn`Ojpk6mEK=mc01qJK;M2wq-v*9uJwr zm-y>I(#(>IIefqBxGs4xMLCIXtf`CFS?{oGe!!DW#kISuw(HEja=Pkz+1a|6ibtwA zY#V#eH|;)nYEAW@Z{6yfr+-`h{A$|$AB-zHwAR)uI8EEc!RR}qd5*~@j?-5-bg~6Q zR!c8soihFP-)sKwtDTOnd$otd^|FY?$@WCHZk7-&bZ%Ih?hi$=^4s zG<4(II>&4y&TDJ$zGph%9k|k`kl*P|-tJwR(f(bl(k`8ekN2FAx?4ZizN_(W!=&q> zd-J#RuiJm)uy{S6)74EcehE(hy6<@C>`Myi5BO5+f|^Cb=JAa4!LBKk?Etyuc5Nq4@0S`R}*0B1>1W|49nnee~L{XY1bGIh=iZ(aLN5@2r=X=GA|V|JJ-V?3!u9 z;w;&_`l-Rq3oU*Kz0O*sf9sLD_S)=)nL6^?j(4|RJ$r3`)O+g|v#f?A!S2S}Hu%gb zJ+!zrWBUZAIWJ~j(ApR~=bqV)GgH15UbMgPvR3A#K`Ymf>dbSMvfn(`7b|EvsI+So zZJLrd>7cBjW0lH@iBIh>OnA~DTz^z&1!Mn3{`clrv*xa9e|Tud3*~!h#-?j#+m#fx zn;p%Y8r5U9IBkxAx35QfQpsPjB?tJv@x?@(o3ARtZ7^5D!rpsHRD<5pMUxfgI~`qc z@{zI3>!M3;OBTrL-Z-K-FZA)Hl`k)sNGQ6;pPyuD`edb9_{X%@o7ZOu8O&>ns299Y zFFW_ROGv@znHL^~H>mC9nDxL~bnX$}r+H5uH`t|dUFe>{5u110=+B#k=nb6rA8$B& zkA2(G+X>YZzHC<6vNVM6)+eTn)1NOK`{28ebxUxR$|;{K9zip%&Ro{KPrpq&S*(4c z_V3FFN{tQ+t~>Lxa_%e@m%Yul6admH1|}JS#oMS#9z}Q}L!qacEKn$Ms%Mhd9~hKO1E-1wQI`1}?H(!lWdT zsB^z=-jjyqs=|DaB&2Gd{@V1EQ*o(Xz|~0eY3nMC7b=TKFTHfF=fFKlf!bGMkBki8 zR&17ky<%fbpltou83}5dGiJCfT^JMBy;9(?_3{OBRc6N~^t)^@+MrpZVCeSG&+qq% z@Xf8(Iei`b@0C9n5@4LPGI8UbIcKI@9FdNRpQo?-TBx%-VyCgaPq=h(KtXcU@22R0 zog4PP&F!7}X!bS1MDO$WceJgJc_{qkmr&7PuFYBglIaI-q(8IvsIQOR*m_PeKZYai zS^U)r->1Kmo_%|n-#P`y)8|ukqWCLz9ya`*`+UYPrD@p-0d12^j^;hyonc=V{N8-~ zx`nmzvYQK986qCtdSb}6p&(@KsbkOnPwMA7cx67vh0^Zp_m&(ua_^k@%7T3}7JCbv znELTWO|Xe}#l1yxj^2G2(q3%xuYb_!9T0OcZSJQ!o#U4`PR{B+mFquw9X~^*mB5ub zvRZPjQR27P3g4d2k$ruW@ap$_`1YtCi|ksss3Ub%V4&Y`o(Vj5d6S-28AVGr-nX`P zdL6AJtCueV3W%Z4*!oiGKFrGKdU~z?Usk+X=*_4(3O>J2CSBb9%Kl5}!a|cgcjpN^X2oy(_~ERp z+s>I&Hk!F^-TaDa`SUQ-G`;Pq8xNhD;oJAfXztqnDDj(CQ87wcaqs88ZrS;ZPv%eQ zdWi-552i=wus?nD*E`W)t}_1=H{Zm6KGU5hmoKU>QsrarsgUkx>Pc^CIihH~_51ZB z5nijyRv)b`o*y99cvrUU`X2s>1Ds9o#IBrp7#Ck6#^t!`h_T<{FZqS%756#H+%5j$ z;3u;@{au1f+w|oh%^LsN&e<6}nNxP&&ew;VgZjcb6I=~C5;x?OE44A^O`2!nD<5%C zf1dL^ow=^d>t9+)7Cy?h%ab^`x3?lPc&X5Lt{*F_S=yYUl9IM9Ma#Ic-t>d@jtfVE-pLhNpG&*gI{jfAOTUbrwT8Ek(W@B$_2*O` z3a0+koH>V8PdGCm+vtB}MuA_2oko zEkq{p#s{C1hBnR56>XZ+>ov^U(j{z?Eb<;-VVW-|lUm}U-hSik*0u?}^WxwB&e*r| zm%8+U%$Juk>nDYW^-h1T5Vl!F@BIfy(FtGEtH0*Gc6DkFpZ#iCettLGqGvDmDNs*dZaLRbwNRFTF~?YkQ_lLG)(PwaK}` zr*7}ss@1a1|IDg1 z&A#){g`d}VZ<3c^eDmCPh4jy7a?~zoADzEN+h*S7jlcZl*}jJUx2b)ikP))H-m&JQ z#bSjCAIjd9S8d~teHS4i_bOIWXzJ4U+c~8J7o5}RQn!jt4BAk*YID=!FRK3xV;s`A zx_;T9aAHf9$x?k~St?rXcW%WrkwvRbXD z_V1ss`7?+0`-|pz47DE$!oS~HYiIaI*2O!zCp)=$%>j`)u|1|@`igrJFYVlTYSG#~ z!chgxoy^mNd%x{FQO9JL9zJc~vujst7wwSP?8YAY#rNOtMX#M&er*4{-C^Iyc(HfA z@xQ0aA4#p>#<_i3yZLF3ncJTh-EWv+mbumT>G^vyzNz_h8t*nN-{^NJl6PL=(J$vN ze`Syh>vP=DopAZu5v%Wa!Y9V8)_lL+)xgMV*`+w&L)rEw@?C`|bnonX(=he<&3nIG z6VI#&w!X1VXV1i-d3*JD%IyEuQrff%rDW&Ok_e1ubP&BMRTXL<9Kfy07*dY7* zL-pKz{YobL%;?;}hJUH?em7f7CKoN1Jt6LX?f2VjlU4Ji6TkZ&IC;%}OTp6(FV~81 zKVLgsxdYFWIgu9$r% zSNSK8-?suZzO2xFx`j36U%iyfzPjMZ<*feJ`aieb%l*aK_m5M`dEsUMs-0`3>m^V6 z{$XiRV4WzbI5{bVL-R17qA9z=lb#(r_{<(3x+v?z85g&f>4N_lwd!NC^QFzF z|9cm2D1Sfc;mn6~V?>TxiK}Pcy3%{eELT7$r7|a5+k2IY`p4g|zgs>pa9e!ilWyL2 zRQGc@MAZ+aOU~k6k6*?lE;_hbZ_c%fRfnp(m$ON@Sp=&H zf8c3d)qHQGnCMcDON*EcqysjZZav~u-)gmR5|?PR{+jjNvCOT!D=*v%=+@d2x^Y89 zOPQc?W$cRwuVke!PL(-06~Iyn=bI{P^7c&s)BnLRs`(u@aEn1!89~UXV0|*T$A>M zUa1!iD6DgrEV=oFJ2mK`Y{Nm$5T?+M$z56p9?OREXtCtvK4fOL4&jh^^L1jwL1%eR z9$yxr;+x~Q z(xc_@)zXQJ7Irl~o3PLFK|p{~^n{Xt?kjDoTKpTG^j5I?<^~w%@*H$ryrsYJxZ~O> zh5}8&riIdn3cUoi8&5mRi+*9B6nx+fL#I^X z{5C%}F|;hG*U#SMrXRwb!(uL*5vVAXw#MhERMs)3{#haHT?-VJXQETqd72Vfezka)ZpKH=0?$j1VpY!UIzgyq0DK?c+SsXjlX^$YE zTWHpXHT>Zr{ppi$CK<^0%~EQX=Luh(X4qQw;q_(z)#=Sw3+k^r$AHnou|w2j>834`hs#%8KU-9`uU^8`yR6{Om)c?zIlEc4TKBGIe7LZ6!k20v8 z=5xjK5Q&41c%ubzFsxH`>XsqH78pEIBLO5S_^GpUWga^H;Ot!1*6 zH5u0h*B1tcYudI1uGs3oY2T6-0ZA80+2copoW&>TPUV>S-r73Jc-6Ok|7NAH_~!Ox z!YaqFm+N1PfBC-t^3|+;f6lL(b?(^dw0$$yrY*j?WR9-ilBG7WbA9*SN?K*EAG|W8 z$Z0~(%7>~vkCrlK*S_^yvZ*}&+3|k))BTTKi;L`HWTq~@8EGniZuZelQRe6R``+(Q zcoDi%z%HhvKz&Ne6wQmjvUk*#fB&j?T>bLG51%v4qQXvB8rMt7_q#hc#V>mMr{I!K z+v_{mSlh?{&{Ke~^jW za-@vcIz3eCR=Csp_s{SC)9>7PYg*s7;t#r8E@!zmM>vMqshHk3RX=>u)zsp_vZWWy z;xD_2%&hogaLAEkQF7A~fyRzq0cy|x6<)bvRUnt`8>`eC?S1^!rJp}0e0j6qLZYK6 zuzu~4du7+{dNe|GgeO_Nnc(gIoOQv|#IsNQqjwpuyi&r$lx)Be$#(Akj*9(f9@O0Q zIX?f!>b|tgkJ(N>Ua@jQ?z!n7Hf@}xFXgZ%qH@*chg){uu$A`jpLRCu=hK!1=dkKe zp&bWLZ0I%fkUVsk({j!kzf%_a&OaJM0 zn-r8z;a|bf`t5ayuj`V6Uvh$9QubKc+Na##u(5aY_W%DZ{?*15ZY(b`QIk1*^4)_+ zZ`MTW9$S2O`q`t?tL>liE>f>_eB&ORk@-9QV$wr_;3d&wOTLxV+~cZ0w)E0#`^ht& zi??@wy!h^4&PT!M8+RRzqf8ce>rd}0EHL0$b%OiB1LN5L3RY{HcQ52-vvYqjv#YUD z`geMoh31=i=lkW--gB78C>a}UTXLHB!lJFeUtjloKJDPWcQwV#ewUv{MlO#&5P6}k z_f~JglnvJ&x>>NhuS?z|$@k7(v%cO~W|Gk^y%W4ee58Jxn%83)HZ13jl`|)*`%X+U;KimFsMdjZ&7ptQlS&L_H za|*4<^*-YANut#`;h}X^mir0w3nsBn=OvF7uYde4p;pq!Coi2R=(~|u!7{$vzvq_A zNp;G;vEJdA$x&kD{rsoHk{8;I9a$;{b)wj1U+E|_H^LhH+W1X9VL&=hC^LsY4onGnf(tf>NbE?rs>9Xqw zw>!<1zg_*SIKTc|4$s}3*QX!Na@=xp>s^WY9uHzx&H7XH`@w2;t1G9L9!M#>ur(?A zTgQZ*lbw=Sml`ekv#Tv6*=NGcaJf(29Az2p-X*S0yI7C$`*x}Pmxyr9Jnj_7T({06 zN1F3o&ll^}$7;QL_Qko{ga~t&EJ+hI6gj=nnPJU=pzh8b=4n^->%FX_3*O$GRXWi? z$fu$6Qo1)&Q1qj|^ti(}GMrTMGgfxG8+iN@J1$gzko#=uE;GJqAFFvjm-HOH`{$-m zz?aj$oY9U>KNYVnJ$b=l@?&ZBpC&DTdLK=)<5tSv9LKBUL4+ql)KdeWxUaIpiNX?8npWp}Jym;YB?d5MY6 zgaf4?C4#EX_ic^us>}XnP{Pb2m9gea*Roe~a`SI2jJ~u-!s>jQN4l}z%FA<=Bu?~ zJz=_KN}Hzf#T3TXWo+xJ^QK!(mq|XMC#!mFT8M7Ka=D_;J55&>-G5S=;v~x(v_x%U@7Idjul17*HG_&4?KS1yz7k(W{{`|obLHsR9w`OKGMvl4HdxMu6raAoI`1qXX} z?-LQ6WcB60%aS0su&gDKXDmC@*GTX5w5*KzULW?EAyC#)F=G4FQ${OJE!$#v*R;Rn z=nAQ*Nf%@DUP{lnZ1XDUW^m~_yBXOrYR3;YcpFAP7P00if2qGIlgs)@gmSFIfyi4n zPFL6Lzi~~4&nibuGW+bz;4{U7Tdw>HxF!^)S$WKk&5&zd{MKE$^_3;tyY@saQPY}! zN$E=9gJ9kI*uaT9jgB+#zI-IkqVeanyFHI5u2k!*aEz z*m8Mi+xbl|zjLi$a!xgJZK`#^8&0PkA&d9!yzdbcv_QngYgb$S0@GVEe0Qz|Ju5VQ ze(KVtvnuapvFNE!ZtqL)Q~!1?Nzt;H zKXKB}<08rPy?$wKsXEo(#4q#56O@=D+O_$wItMn&W1}-=(TgDyf_5bRVmd3$?5Cl6i{+@*Y>SoCR;Y4LfADeEzWO-z z_?3z_4H;f_&X4x!T88Dst$5nwyGhGia{KkZ=?4;3PKBr~KhZY%UqNVJrRMp`L7TRn zPCZ?FSZC6t&`yyvk#UT(Ba7x#7wuU$as7nZs*-EynCOge`R|6;yZ`dlPPyUon)M=S%3JwY8w0dUwbP`)=F-E9_RT{S$*Os zS?L8gSJ_<_)BDx=E>`IO`N>aKzv$hqFJb;mwCR}{G+=S`;Lg{q(07i!R&R- z``*cq3tLq_i6|e)w7elOOQ*K_WVGq=f>Q?OKV#Ih?gWZV6zzp$w{sb|fWX-{*KwVt-iE4eFIN>1^4P_r;NrCu(&{%GU|wUw*Wc7$(w zsGE8%#b4~fW|>+&V;7Nhw_RsuyL~%s)EvBKz1EXv*{fG8>)Pr!n$Fj_^7_sC``JIH zY&u$Y*DF6bZO-1HXRi)>cu&w-`ivzaqpa_|ZsOc8S8Z#UQztW}D}8nr=C@dXWzTjG zTc1aJDr@F7UKW`cFwaq8r%$K(t-aH}9VtJ1-7fr>i6{5To~PILrq-3`{x$rQY^J`j zyLR6H7;}mFVRMgc`Zl9%%lCR2)r#2(o$`COt~Xcyuyogtt#vH#-#dIxJo78!(PsNY z`}rzs-~8d$y;u0;&(8S)Yn@wsHn01-@YlO5UyX#`RW}$ftK0B0ztOn5qqN9OCB-oL zv*!ej1r}ikwm#R%wt88mzVUIo&81_>#$`AEJndC{Tz=@>oQUn~e@3iS{_;7hpS8Y6 z$9r-3d(Zx8^ORNBEjDS~QQP7mac`2;$5^EaarxJl+{<)aE?gqB!sLCxzAYj)JGY3G zzU*o9t0~p{dFPm#AL~m2YonYepMy^cX1qUC$Jn&km-~2(>+!i>??QiMOitSV{7ny| z#$TT|VKM96C;v$DIJYTtb*^Nec{kV2l_5)~)H@$O!~APSc&zWl&3k??J>htBTiH*w zlMz;PL@Tm#Up~L)vUH2exi1wl?Am{?U9|df&g^;fYrBUNuIy~tV{&)Fr;Y2LSwGxz z&i`Gg(6n#*6;=+*gmY(mXF78E*gL;f5y`23=AzDesLpSS$ReM|Thk(nN^t*iK=X8#PcLL;8sUoS6cJ!Nj-`MK}ABKO^5`^;&J zk5=rPrTgUG@2ekpZ13~M@zzy+mG9qQ|0V3|iy1ur(^^G4-2Zs5jeXu7>suF9=`A;_ zE@!*U#rIoln4Ua-_@~m?&QkSg_7`hWU+3E0T~_gH+9rR@$geWWhu@$;F-A>wopA+Uq;9 z5#LWQmj8DDAJ;WoIh%Wnnop&Pu5rGRGBV zf3j1d!~OB(d$%91`d(ya_iFFjXS01g$`cPgxPGv_S^i+l`}myXri*J6a`zlmJ5y@5 z(L1YPaY^)Ig~=71;+M@kw;OaEezhU8e&cpa*~5?L%;il~bU(|I`@#D2(-}1v3eS6~ zoh>@K?2_cknwYq9Z~6K-yX2%pS7$A}wczl4eLEJzz+Ba~kVm3N^o`W# zdwdeDKRC%^Glx0nzR8oTKh?ay*}vZL!|U8-39qk-ywVqne=b!N^$mCfTHA9B+L z><_5$9lNQ;_E^~9iSO6ouf|LtZ@&uXlWBjWSeG9*`B}x)Yd7OdChpoi?`DcoOiAMI znQ{{oP3q_HtBX{=xL+ZAO8vD#NtL0!>khf_|Cf(0K6{|v&tCHR&z)+U4|8;C&o%Tr zH+{l=`R8XR?ce(Mam}`@K0bAuHMJ8b{@Io{{n*(x3pc+!eR2J-?@#|Y-q%d9`TO+j z>x0|Z$VXpdPgbp6@IUXV!aP%f9ucR zZZ2tayuv?uuDfm|XqT4IK z{y%2VGy6@L+1_;;r{+3MeV%jd$qBQ?vv*GZ{_E}W=l5MA-va=~(!i*Kba zFTH*{Kz#kp-#N$3ZvEyFIM9}JUd0ip+~ms@3Jce!I%Qf1hG`z0Hr(*K%xDr=ul)1-fzM`3n8zFZq7z zQckUJ#G*GTJ0i~5ZMs|J`{tW~CENR`T|Fx89|Dc%^$JxuKnc4M8QbT>3t#dFdq?3WlZzCg6q9veP_s zrnyQSfBth?UP&|mt_!TY0v7~mOj#ShaLOg#TbF`%U2MH{Ohdr;OH#)%iRl?n5=iC;GO5#0S$**w6}3g~{C9kO1Z)GJfB(<7|IhsNXS2W0o%!G9y~XpcFrjl! z>?fN1iq{=copZYInVWrA!F~;s;<8AsM7?@L<*6m-MAy4aX$YDSX*hjNXtq{cYD>MA z&+!dLZ7bJ{JUg<%s_o@-(PviaPqkOrT$ozW*`}i95Rp;e&c9V^4de0?Z(UOlL>V~d@n^|uFmHZxEAZ(8rZW?7_pV}jeNbp;>*QO7HOyb1m~0O_#CE|Wuj5YHA+-&fd68z$dD4l- zH+a|5;#$L#?>aPU{pJ0~a7AMsN+ZFX}tqIIxsZEL82~i7K4Q6hT zHE3NR{+{`70z*%O;)P_r&0g!IQ!Z!)@MZnf|IC}4Abx|_tNKfPB1RlN8e{ve^}Lae7W5Gsy8qA8}$k#WD;$6+(i7E=)$d)5tI^E-Fup3-gLG)Q_kf4_;ywa*dflWpz!{2DC{ zGN;wY{q<|UX%VuzEvj!-zt;Sz?e!m~&NtWo?>zV8{P-oI)1r)Se_Ez2(o??9y!y}X zLopLfUjGP7lzP$-s&IbI^G2ypj*d0&8sW3(lQ(aFa5u z{;_wSHE&u2SDd7V(j3-bZD9;=-`hkeq-{+@h)bUW$ z(r>G`v=~o|3X$aOo>sNo^VOQAd9$xfT3WYma@4kxd)&J;El$te|6b>A#PSO|cWXnn z5?}JSFPSuL-{U1g)9PxRwQ^rBzrCbLM}4z(Ur?FeqEA&WU+;F@QWq@M7WCaIINMt( zs!Ay;zAt09=*2qyr2G2?Z%(W4aPAhoJ6*ZzygQFvk3^iXp_Q27zq%t&UJDxQzuM`W zApC-5SNqFNi=)@A+q&!ZOX0=qPX}J$E^&O#&g?LI4fnczn!Bd)HVYOo^)wk42=y?> zmX>ax%MzR*btdB69rlmD`Zllsv443r{VMYL0(mL Date: Tue, 24 Oct 2023 20:13:49 -0700 Subject: [PATCH 25/44] Minor grammar tweak to improve readability --- whitepaper/zssp.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 822f531..04fefc2 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -470,7 +470,7 @@ At the end of this section we will have defined $\zeta$, which is the high-level \item States $A_1$, $B_2$ and $A_3$ always set their timeout timer to 10 seconds. \item States $S_1$, $R_1$ and $R_2$ always set their timeout timer to 1 minute. \item State $S_2$ sets its timeout timer to a uniform random number in the range 50 minutes to 1 hour. This amount of time is randomly generated each time $\zeta$ enters state $S_2$. - \item In states $A_1$, $A_3$, $S_1$, $R_1$ and $R_2$, $\zeta$ runs an additional ``resend timer''. Whenever this timer triggers, a copy of the respective packet this state generated is sent, and the resend timer is reset. Packets $C_1$, $K_1$ and $K_2$ are re-encrypted under the key exchange key \texttt{kek}, and a fresh encryption counter. States $B_2$ and $S_2$ do not have a resend timer and do not resend packets. The resend timer is always set to 1 second. + \item In states $A_1$, $A_3$, $S_1$, $R_1$ and $R_2$, $\zeta$ runs an additional ``resend timer''. Whenever this timer triggers, a copy of the respective packet that this state generated is sent, and the resend timer is reset. Packets $C_1$, $K_1$ and $K_2$ are re-encrypted under the key exchange key \texttt{kek}, and a fresh encryption counter. States $B_2$ and $S_2$ do not have a resend timer and do not resend packets. The resend timer is always set to 1 second. \item Any state may trigger timeout early for any reason. In particular it is recommended to timeout state $B_2$ early if memory is being filled with unfinished handshakes. This prevents memory exhaustion attacks. \end{itemize} The timer system has the property that all timers are generated locally, checked locally, and are never sent ``over the wire''. This has the advantage of making it difficult to impossible for a remote attacker to manipulate a peer's timers. The system has also been intentionally designed to make it impossible for $\zeta$ to ever get indefinitely stuck in one state. If it could, it would open up the possibility that an attacker could intentionally cause this to happen, which would be a form of a DOS attack. The rekeying timer for state $S_1$ is randomized to deter traffic analysis of ZSSP, and to prevent peers from simultaneously entering state $R_1$, which would be redundant and inefficient. From 5af3311ad8bf8eaaa1972410e15f90e755bac029 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 17:54:47 -0400 Subject: [PATCH 26/44] clarified language --- whitepaper/zssp.pdf | Bin 422443 -> 422465 bytes whitepaper/zssp.tex | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index ce7413a5cd3fcc0bf10f434289eda63a8924be08..628a6cba11bb47e701786b785fa937c6e3fa4024 100644 GIT binary patch delta 10346 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 diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 04fefc2..6596e9c 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -400,10 +400,10 @@ At the end of this section we will have defined $\zeta$, which is the high-level \item $\delta(R_2, \tau)=\bot$. \end{itemize} \end{multicols} - In addition, for all states $q\in Q,\ \delta(q, \chi) = \bot$, which is to say the process restart symbol $\chi$, transitions all states to the initial state, $\bot$. + In addition, for all states $q\in Q,\ \delta(q, \chi) = \bot$, which in other words means that the process restart symbol, $\chi$, transitions all states to the initial state, $\bot$. For all transitions of $\delta$ that are not yet specified, they are the identity transition, as in a transition that maps a state to itself. - We added the transition $\delta(\bot, \tau)=A_1$, but it is important to note $\bot$, being the initial state, does not have any attached timer within ZKE, and will not be triggered automatically. This transition simply represents the upper protocol initiating a session through ZKE. Most upper protocols will attempt to restart sessions on a timer, which is why we chose to represent this unique transition with the $\tau$ symbol. + $\beta$ contains the transition $\delta(\bot, \tau)=A_1$, but it is important to note $\bot$, being the initial state, does not have any attached timer within ZKE, and will not be triggered automatically. This transition simply represents the upper protocol initiating a session through ZKE. Most upper protocols will attempt to restart sessions on a timer, which is why we chose to represent this unique transition with the $\tau$ symbol. Let $\beta=(Q, \Sigma, \delta, \bot, \{S_2\})$ be the ZKE Automata. \end{definition} From 85f5e76f6f63d8a644e80dd691adfdc71f793bb2 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 18:15:22 -0400 Subject: [PATCH 27/44] fixed typos --- whitepaper/zssp.pdf | Bin 422465 -> 422487 bytes whitepaper/zssp.tex | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 628a6cba11bb47e701786b785fa937c6e3fa4024..fdbcec7ad25740bf411687586e76970c3b3a09a0 100644 GIT binary patch delta 10234 zcmX^3MDqF*$%ZYA3N?&|lNYYjtlt_PIr+{u!Mf|~XPoNZ85-Bda8NscldR>bZqe*m zugJ1c3*#G-ZZ^kk_T2h$e!2dK84u;Atqr;=l)m_4MoIl$3D((%)o#@Mb~<=JVX;|M zrhU*$H}_-xTkpMDCBA>phsg?@n|f>3O%I*pzL-a}H=E;+Nao@Doxip!*V``sfAws4 z{r-JkXWXRiJ%zXK+`0F`qqO~%?`uE*JsoZyZh!yJXIBNE|9_tu?)%UB|IUf!`}~bp zoK^e0IpX+<_(kTOL3J`(X>UUdC8DZJWz{AwzjA-wI_0@l@us)+t#Z2euJ5mmy!9(# zV(pC_gT+e|?nkw5u$g#Ew_R_VX{Wr(;}iOgWm47km3yDJ#!owX?o-#q?|a|+gKQ%e2UPMsjtLU0Lx3``1&U^W* z?8aB6#W%9^3KyO&U14O;me{PbS>uuDwlih*E%`ErfjVy{JkyZLTC_HKVeFe}vl5Oj zvMY&Eyg27<(cQ$D}B;m`%`&)*WFb);wb#nc|K-}YVH{6MXK ziPq=KDvY{ps$nxT!i=vJsA;>)I2p>6K3uNA6_l3Toqg~7mXCb5MC*0=uD_f9@z@HL zZ@yCbkB3LkxzU1tgkKXNazwJjp?(u7g&aOxGZ>hs-{fIz~*D< zl(-8V&Hgjbi{;cYD0Z0iTvh9HmR~2uy{)NvkBD7Nqr=OcA3|-sG&FztWG zhxt37+xt9lTsYf6=~R8&gHk4wdZPubY1+nZtyNj?EofzZ^6mbQ z&wM#sT%Eh8USysXGWR#j8~qfSh?=5+nA83idWoOo4wou3_u1Ae-(Rd7rT6dfwAA{; z+!JE`WWpcxDo^da9B=q0{ats=@*i1A>W*a_u3fow+q=Bk_`OW=g9(dV`uQwAwdFCa z`fjswQ>E@(*Ymz>|E6jD_w8#XbY z6sw-_f8Oh#xAwjFut}|~y}d=W*QeQddfR4Wf%>9*#p^4wbM8Df6_4`fyC$~(lFSsR zuAmJzPt`@GE{S-@39Ie7cUn>0{-EmCxA7GU-nz}k$DYlKJU?fps9Va%hex=cc+9)S z_LM<)_p&J)c_*I@)P6A|%!R?){jgAlD4*o1eHK%{DW4XLlKjvhkzx0Cq1c%z5piHIq*=WwHK|x_{(mn%Rl}46}Edd?~Dd!>)GMh0}m%-Xp=w z9C30I9C9VzTIXt5r%8FLdYzHy$UCaddf?8BsbcOqA3E-D*l_MF=OY)3`K=t*ajYfp&pmP2F0$Fb?~D3{2u2r$i9Aeu zJ+$pv{{KsvAo-9fjj!A3@1KkZ{-TKj&LuNy%ajhPvHT7Bc=-8;-I+Gr+>#CXnF^XL z8?IKITzurUUuEmk8L<{yCS)fbzh1=6{?}m1!Rn1~te&J)FP!XSZu0gMqhh^)=|t}a zvw{^zS5Am-|EI(!xF^8V-+1;blP`IB&NrAOcRhWdd84WF`Ms0s5B7Zfcg4Kj%wE~H@~gSfU9hbFB3RmaD7OaDlhtkfyhmZ&`;8hxA>Vgl!K{CAlBx1we5w>t*~ z*n3sqD!uPsR_4MWVCuYkv(swJ^yW>>^)5#u1J@~OI!;yYm?J#l$KToS@2zwD{`lEG z7p2ZQyTo?1-M3ZdN#R*ts{B^;%u(fIpYC2v%4^d0tu_<7`)i_}rkdK4?;F>g={Hz81>6G)*Bx9pQ_sHu!!$o^3ggGf9?ab zQV+hpZ0r5}yUyM{=~ukWS@zX*2bXuh%#+@zb$Nx>dfED4M_1ofx_{^Jbs2Y=SBuzl z)UPhv%KvG1(T#>Ts>@c+@>?|N-M&>iGXMOXIzy`+C!W*R5pG&0viP+1Ha*4Zt=ssDGxf_1&Wmt9K_!;l+doA7fnb%akf602Uscrtv zQ(De9`&ql~>v(TmWRYw?_~Go&;tgAuHXk^}6dpJK_=SV60xiDPw?)~xmTqu!G_FZK zZ}j%HxqX47j!9?J42k!P3XT>kOgkYMG_NApTIZ?4Hvz+KOTq&RKeCAE*FVS+*gS>V z?w^8~aOru`-+^ZQ*2lBu-0tm8c1#SP@L?^d%kdMM4ym^+uUVXHW;$5HdAO-!PSgpV zqVo=$@}8;8WfF`mU;AzHWXE@@N*CjIXQ))Yz03F2FK0oZWHYPq0(qHJw)`6_!xvmW z^6A>b>NQV(Kf7{!@9V^68}4j4?P#^Qo>R%ocw^ydCszZnUgf8Iof}Uy>|Uf3K8-E& z-K`|=M#F2aiCfF3X^Bf~Re3vwopxQ{UFF+m#r-jK(W{hmWfP7$?YlcswdLtV(=~6r zW^a#?;WZ1iKGm=}+tJ1PCzH*_sRoIyReE!GUfACvs{Q=5nUc)c*AI99i_Lw0b52Ip z?816Ai$kW`>F*3IFYBgvWcExmpJL?wxVk@uWr0uIHqG{vE0|kFg)*)@&iVWI1z&OH zW|Pn(=N0&8H+=O7=`?K3&tBbjL3@g}qk*gM0{*C7d*pB3`MSA9#A(m2ZPtd@E^KW5 zT^#;K(`(+vw3ZcHxED;_bE_b5Q&z!*yG2q`rknIM>ti?@GWcy-I@2^yZTgxU*K?&r z%z&Z!T;Y}1A5WhBX7l9iO!mu>YE|o8Oqox)GH%$C!MWmYX5w|xXr@@n^r8)uADEaK z#JpM~urSnUPor{O@pa$M!^aZkxvJ8d&C=`&q9!Ux#Z7c*enNd&-X#Kg`~>+BMl-v1qQTQtydF(R*H- zbfwJS6&^CXyRhVM#s8fy?UPS^ov%B=kNb&Hr=yLCS}>=m=d$g3_4mC^4AkC+<=(oy z?Tzf6iD?3B-_1H@ReLD?`rkixEXE65rRE#0ioYsyDP>1=v+|77Tvu1TxU4#F?WDA1 zjg41iXB{j$=k{PF$BKK!`H^30e|Fe9|5EEY{=Kb0tRcAiaQwORlfwBqPd_-m*XO{J z)GFCPhL$ho$D6)9IdM4k_1zw~`bRtxThDy!i|sT28Ol6y27Bz5@Ey9IB30%rH}6{I za$hUCd*mW(PXV{bEk`nOB~Erf1R|gwqn)!Y0!#eDoUCPgQal&={%#aH z*LB&bs;a9|aPtwCFwMIM&h#tYT0he)km1w?mm-sig`FDebrWs9v`!t_?zH@b#vza0 z(iv>c%o!`+-t|zlU9P~nDdWs)$^83f>UzHW>!&n!bxSA}Put*j@3orfB!>r`uBsM>X z&7_N~=zKwxo|M;C2Iqz}rbqr^L8rbXgm0X+Z{d{2BfHxQ6O2nHxiW^nT(WpYOw(Jl z_f^y1h_lz9E;P8WQgHc`oS2{Gj*qz~V(cW&DW!c=cqYj2biPGmM-0pQg)D~`#GCHu z+oSU@T{R*pqJ8Nc_bm&8eUJKDb*ijd9PXiuy6Sh}6X0Y81>V4-B>FU-jUO^~s2YL-iN=H*fAqQRkoWM^S9$ zk%KxSE{!jaUVTtqy|-rR(Z~ngEqy!mswT@mE?Ti;^PY-7s@;B_*Q?)clYg7{V9iZ# zztVzx&RtW!3$XF|Mo;(@Y7@Hhb4f=)dUnHYo8G{Ov(_eEHC}P{FQ+2=w3A7arg^+w zdFIdlgfnE=J-+gL;XUjB^@_$>1=cLwyo$eS8}F@oY!z*-(XqAp(u~V(MTILYAEwF7 zc~%T!njrwY{q8&x0`guV)E;bPo^Ea+M^{C^ljz81X)C2vx@1j(hIKArp6b=?{ zzf-i^-PCErp>-zTzn6&GOQP}o?fr?Z?mx4 z@6bXU@7n?%R=KM!CIyMlH0OGChu^rs!*2dWuQOBi;&K!o>3(z80|GHe~Eag(1Vw4^_>3P7cxh5To)ND zdzs6^Tv?oU;muEWtLs_$%aQ{$lx?{b+Z*<3kz8xpN96>LV9@Ot-oF=BAHQ@>`|c zWP$p#4X*K)8+1N6UOIn!$E=#XxcArV{?7UN@bfzEeQo|pPa>St|D0*>dq4f)HEYh7 zJ`CRK7pu;lvz^CnGOMoC@UK?#@&3ur{(QfjXz{o1m-jmEeRp_2?^)zi`^WC!laJS5 z1?(%Cscqo3=dr}KqX&hy7GL(RTBNkSJ@n9wk4BFU?BWiH;m|9yDHGhGuz_*@*$rl8 zaf04|ymRMFC_a4d=!z*b+uGvS3#^>pEUMI!v|;hq<(GDHJY2PXl1e;>!{KwxHZHI!6zqCZoyZiP$SEbT_47hdoRC`uQy% z>@8Z@MYZhtE;n~=ov%@9Vdh^~{b=?9mYa@sdDmnA^ldOP-O9>R*HwJ@f91Dm>%VW4 z{+)j}?@#?#?Zy0Fztv11K73c=dNj81$I;)9+MmbYz5A!?d%t?4z~85L+h6=M{}XxU z?fc`LLBA&aj9etNq5A=fvxcIua%4+KruePyV~<$--pwtrm|XzHRc;mbYEMI{9aPi9kl+m!}3l%(oX# zdnB-?e9unay_1e>AJo1do0pfk>(dJ{d27ea{;wesf5O<#o13`52(>kmi71tBs}noE z=kK-}b0wKR-G~BDP5YBU4r(e3-dx)1e6mBk?A49yRvSC^ymnzMmdZM)W))Mzq}9Od zc7vfHjd=mr;rWH{FO}b@t&iUNok!x~Y2(}ndwphX-{f{OSm)WR)5(#0k8-y3dDk7e zC(YP;&*Fpn@_pGUjm43XvwjE&oL5h~tF}@;Yj2w5MeDx2w8v9z&(5mif8Hlu>CcjK zui<#=o<6>{)uJu4%%`1uo%VT`3A^8I-_nD3w@FLBH1$=v{A~T}pk)(9-(F*_XSILx z_QcY<{VwPBoZofbKh^TqQOotOH|^CA{PXC*Z!`6Ywfof#;%h$M_5NXG9QUrm;K0L| z0oCbN*0&sfUfZ~*U08%Ajk`wM>CXIJ`xGtNZkT*n*!<^n-0qFKFZVDwRk3;;U$@go z*;r;*X!WL93?BSfE7B?^Uw2{C;i&dfdR$w7a?7b5bNToZ6LfFie3hg-RjF2Z!%N$8 zhsQf7%J-L)Xr+D=>ZxxtlwZBL;f-MOa;cxwT_O$Md(S)El=iMjo>gqeicKs_c+yz^ z&8bXLH29Jjd)jc#wM|TNb?x};-1w}WeOhs(qjMN8JRxMaVr4c_K1$rkvC|5Mcj z|KFdsudIJHabw2>V*%0G(`*ax|Fe7Gx9cD8cNg7-uGc1RHMml@E%eat*(OeFyB_hj z@+?}vQS+Ig!?jHjuNj=r?EJ@jYo5jAwG6MEL$CK7j7}8psx@C<_IZ+@_?>f-+84L4 zpZK0b>e#%aR%zu**|u{|Pn-Cedp5_0wA6>o)Lw7iUYKph^s%1*?y)Uw*JRkVFLNbS zGaW5ivYD}Ej{A{X#s-s)wR<9WH9P!VxH0TsymcKzP5y+VVvF@YHrjx-9+rTMp8sPwTlv53Sg`j)ZBLqiGskk}#b-|#N?*+4;MuZ%QpI8S zjk6a$xl_rx=g+gBxq6jy4}(+BT>Qea&_CZ_eV}` zD_gYI0%!?MF6>eK{C+)ySkLBQJ8};xqkUkL{Rdy5`oiMK&rSkDM2ttzvDC zo!$N5$>Hh^qRIY;rrj!*P@UzX6eYKD)9#KwjlPr@1t({_U90zT+!t^sYswyN!)8s* zO-nSnEYzB=l! z&g&f(!nec)J}*s<($TrY++yxz*0Ls5xBB6q_P-X+ai<0gClWAqTZemHIF_eWbA3X3&fo<8VzPH9tAnyyOc@2&r)S6@BwI_RGd zLt0{D^&jn-8z$H<7gUk1^1Rt>S}DDD<-7XmZ>KXeR@*%+4db0T_XmSS?vb_L)B6PK zy1Dq&Ed92A@qhB?(uB2g|Kg(ehU^jVS?A5G{`1Ji9mf!(Mkihw!hwd%xcAR0;dATcaW){KJOBGg6-!9bFUASr*8e zu;#4o;rb;ZOJcuz=xg~zln872p9@INpPk56YEXA*^Zj)8PufdM+48zd5^{X{^!KjY zr}CivozAT$W1;;^ubBsBwlD@waQq|t(PL>*2Dj&qv^v4OWnq2_5-)G$3(dUhuw==- z{=-bWcApP5;5jy>{;HGY#^aOrc)igJ&X09|xhX(S=r>#a%S=Xgrj1c=Jm)C}t|>a* zsMfhZT$2o0}KbT-Aa4X+p zbH~R}sW-=eXfgXAuoDh2$apk?v-*vQ@3w8_nGfp3zwuS6+~|obayg(={JHQ$gM^IA zg^;y6XYUC~xwju(DpB9kxnlQBgU`(ki#~k+b4d1g(N@FDr~ZE1rr>KgDbalcJA>Yi z=aVenm{cZ4`$%o^+AvvgM?v^2*96ti;YR9}wyQ2Vws!|#IW&L5-gzM(HlA0VpgMP_ za_+kO!h1xG=DrTtw(EP2zjK_w#`LVfQvnmpwXz$%eyv<{!}+nr*V>b+vh{2tPZ{FU z47oGAiX;{Nl{r#x`+iSvEcc{)Dcwsu-t3jATr%m=!qrLvnL0%`cj*ckiAD3xnef{;bMn=! z2}MfNO}DP~{yfpkcKR{J#qVA$QPMqFf9%}9XHz7WM=d`Rar()x&Ag8VR$8rPn7A~w z`DpG_;|*uhwG*oC@#9npZVg`BT4ls-A`3xcl8}P zdceb>p54%p!!7V2-wL()fj+UDir9+xNZjaPm@O`tzs}eoXVcRH>(0&IW=(95ca^(} zIX{}cBj(SGL(Ox&jUKbBZJHtShwWZ>nS^G`LDrZ#k~>NSZ?AbXb!mv-!m{Wm(o!FM zJLkL1mZ_0UpE%(wZ>7tnRR=kztyOov+~(J?QTK$6T3)^WEbmyeMSeSXc&+`wfyW#QieL~;Ww$_#V zD_rMXzUMicG}k`I7xiy=neIJ}Ja=m8v5vkC*-zsR`n69jnVsY?z1e=x!WqZb9n99e z_-IBJXQ=*kslz$i+r+hvg6ketvsK@2yx+6?YRj=IzcsC%Gefl3#d;m$o~0its9=)n z*ElWgb%|?&FKe7{MsuF_wzbduD}_(6$a+s$uiT~0b!@)&VFr1zg1C^-GI)-r<#S-Cn)>oME|(V(`&6{oWjrIhzi9ZG1OT{-w_jZNb007+Pwl z8AR_sk@Qi_Kxt=E%XQBL?=@PVvUVzn&aH8?dhXSuo!WirMtI;S!_>?BI%B@hebjz5 z?@3YlHItR0?2`8utU3GhfK!-Qux|amJwoa4{wT+b-ZB@RsQruQTCmd`$KR^ft^S^M z#p|7VtQ;zyuU0tvTw(toDH*PY!;U}IjN91{W%148aj&h|S&@DyKl0Mo%Yswe>Siqs z7u?szqsdb)kvb)Ri#B)n%y#+caXI)q<)H3OiPwCmcM`LxP&))bg-+yPWcejyW zeQo!pPTO-+SFG#3oAn@mUy{#TQRSu^zmBb*uIA4w8}rNKrf}H}%?m$I#$Ee)|5V@! z%Tm2(AGi0{TvMNXq)zJ9+mkK_9`MgS^KH6+mgbQHuSlUr?~XqaYwvIPA#q_b=i<#> zVezW_`sU8A6n*hv;;&uBPsJ3Y?(jBE_Yu9z)77G0Uv-q__in|XW;`Yq245sL%0Irn zQuL~C-JOLJKg8W1&UY-_vBVb@%tT5)jm(&@{9+?VlBVVGX8=X1DTs6OERI{Ax@%MvssmL22YI^maaTTlt>^qAOF51nPFdn5!NN)>FF zvpD#1&BjMI`aUf2n>;Fc*)HE`_iS;lQ}lV$yYyq<-`}Ti+)Zv(+&@S2KF?V#5t$#{ zo`p`y`+X1mkKTUtujN(dHKD7%zmPqs77=o+VCGGUk3UYGF@O1E%F6n0mNk1O2iCDP zMD#Sd$`rhrA}QhQ@A={7;j1P*s}Agn&pA7#`#tOa%L~7UziXUim_3dAMa3E}=@Xxg z)eo;%ZV11c{5`?>xRg+zYtbwFXv;>=tvOZ8)6fL-SwSU6bR$ZUY9=%Sx@E`M1x9?+Kvyi!q z=g1NP-hjCrRyC8GFZd~#o$NmI$WDFJ`y(GZ90KkthAjUcQ`mjx&2{$Qmj7?*h|iiW zWZLv**J=YMO9`z#G5t2{KDf5Y&%Kz>r!HTm9Dnus*SOa6a<3l5J@#;YF|*dT^(jw1 zPq*>eXf6*v_#q0 zOWFnfHcQrYUADC1xyUF`cS5ir&UkGvWF@{Q;i4QiKg;w(kGtXF9*_uGaju zCeK=zBslw-f1lv|dA3?z8mENM!@SIkq1Nfns~6?^^0sLoT;6Qf-F(bx)GKf2f9<4kK0*G#JoB07-MJ?0T>DDFGvsE)7C(>W>n6Wgb!4K0RAA}W zC2E~EHHX;lmF-`X^-Z%Qeff!yYHvh2-=oqUIGT+ggjN}XeQ#PHkXU%y1fd5fHO?pn)r_<+BH%AVey z^^1GV7f#BZ^0WT?Uk)v<)V!4TX>%Fdr_E(*pEj4decD`>?bGJ6*6(LBw3sd)%cjU= zXtCWYmaUyH$k4^q(9qS)(8bKs+``z|)xy%$z`)Yb%+kQs)XdD)%ud0EppsZFeV^34 z^pXq(LsJ8j$%!l)^{UgnbEdh9v_1c0e(RF-lzR)721LCR;aWQ7-_oU1;xfG#e%Ee2 z)+!}j-eD*ap5fHfHOs^05o^i94MuH(lP@00NNG2mn32?@c4V&F3BOl1`u`uDtUhYSYuy#?Q`b23iP_f$Qjx@>9vq;oqDJ?&5m z;PIMvR`vR7Q_;glhwMd`B}YgezM{@$Y`CT?@t0()_MFY1QbYJ&c{JAOjeVJ*|@gAzN_LO3IskDYw$KDEinzVBVQjw42ksDXM5zH1k8X0QbBJ zck~WbZLrLX+}3i(?~rbS_DtKWIS+yL%{qFPMZj-n^( z*-ay+aJJ<(WVXsSoNS40&}7+L!T*A_HbH`?Nv~M7vMAQRc^&i91l#|q`xXkmVg22Z zRw>idApAgO27~jnEc?q9i%ahDZ;=X4kUG=sS=@Vm<$WIi$*=tyUAKktazC@mUh3DZ zx_NKB;4hJm^nz!7hgeQDh&C`ky!>q5o~2=Z^%KrNmb7%>d#qEz*LnPp-TgZ|?_Zf| z{P-s8`F~Y!-g=+eduL6UU#otqh;1|TLrXTf_rJV~*H2$9uYTZhwf_CbW%}D62lqGr zWh)NPz9QNGJBsbc-2BeW^Qhfn{m$R(vo0_$5Dw+lN}jp8qx6!Nqbciof2K8$mM7;eFXB#+;h9|> zv1Z|hdB>~dUjGaf&M?&oBLEf#4GO)y=-wlt0V`qd~#t%Fe;_(B-7T*{blaD*tmK2WuJdEKS@ z?1N$pl00=!u5wxR@9ONm^%GXtO_{dl)e}9jB;l^A3APMT4Xc!|D&1x&n;oljpb?IAGTWQGfHOOcyljV-ls8hK~p#z7e{*IzJ;O=zpeSjIBu>z@QRJuQ_64l-Tem^ zIC?bLc>n#p?D2AMo-&>rh7T@JU^Ynem}z@!)&9gY2c%n^8eTK;ajPy6NjToHo@pP~ z53L8Q7xXjl`t$QRHuJWG?2mu%5!0BfX*M!gii+wi?k_ z2NfHXo!Ad3Fv_#k2;BJ5VBS==pZ!7a1@#SLFqcB>HSwGEiFFxdf5XV ziG4kW38#6wVSe(o{P!7zKmVc7dI&>$;H>7-eNC(u~K)@@1Gt27IrMW z)iLq1;Noy)wYcsXb)M(fvd?yuzF_M!UG{EK>DsHY{_`bjWBZ!&7H~)DzhJ(V5?k=q z_u|$Z4xZ-62`qCM)DLQ02n{d4&1t~7?7)`PXZQN^e|?GkZm%$XMi{8BDK05WP0R(c c@{_W-ic1oUrt1~4ad8@%bE&Gj`nz!f0M9RQNdN!< delta 10186 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 diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 6596e9c..5ee0092 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -934,15 +934,15 @@ The protocol is initialized with a random 256-bit string \texttt{salt}. As the n \end{bytefield} \end{figure} -To challenge Alice to proof address ownership, Bob will include a MAC that is a salted hash of a counter, for replay protection, and Alice's address. Alice is expected to include in their next \texttt{response} the same counter and MAC, proving they can send and receive packets from their address. Attackers who are spoofing their address would not be able to receive nor reply to Bob's challenge. Many DDOS attacks, however, are performed using botnets of computers infected with malware. Each of these computers usually has access to a static address it can stage an attack from, which would allow it to respond to the challenge. Hence Bob also requires a proof of work from Alice. +To challenge Alice to proof address ownership, Bob will send a counter value, for replay protection, and a MAC that is a salted hash of the counter and Alice's address. Alice is expected to include in their next \texttt{response} the same counter and MAC, proving they can send and receive packets from their address. Attackers who are spoofing their address would not be able to receive nor reply to Bob's challenge. Many DDOS attacks, however, are performed using botnets of computers infected with malware. Each of these computers usually has access to a static address it can stage an attack from, which would allow it to respond to the challenge. Hence Bob also requires a proof of work from Alice. To challenge Alice to prove work, Bob will require Alice to find a 64-bit string that, when appended to their counter and MAC, produces a hash with $N$ leading zeros. In order to do this we expect Alice will have to compute SHA-512 $2^N$ times, which is a proof of work. $N$ is a static protocol constant. We recommend setting $N$ to be the smallest value that makes computing the proof of work, \algorithmref{alg:challenge_response}, take more time on average than it takes the key exchange protocol to process Alice's Hello packet. For ZSSP we have found this value to be $N=13$. This method of choosing $N$ minimizes the burden on legitimate peers while still eliminating the computational asymmetry between an attacker spamming Hello packets and Bob processing them. This, in general, should make a CPU exhaustion attack more expensive than a volumetric DDOS attack. -Finally, to mitigate the possibility that the proof of work itself becomes a CPU exhaustion vector, Bob is required to ``proof receipt'' of Alice's response. Bob must include the 64-bit proof of work field sent by Alice in their challenge to Alice. If Alice sees that their proof of work is not included in Bob's challenge, Alice will ignore the challenge. This makes it difficult for an attacker to spoof a challenge to look like it came from Bob. The attacker would have to be able to read Alice's Hello packet and send their fake challenge before Bob sends the real challenge. The average botnet DDOS attacker is not capable of doing this. Using the proof of work for this has the advantage of making it trivial to serialize each of Alice's executions of \algorithmref{alg:challenge_response}, rate limiting the proof of work and preventing more than one CPU core from being consumed. The proof of receipt could be made more effective if it was also a salted hash of a counter and Bob's address, but we felt that the current design was more than enough to make CPU exhaustion attacks more expensive than volumetric DDOS attacks. It is recommended that Alice eventually timeout their key exchange with Bob if Bob has done nothing but send challenges. +Finally, to mitigate the possibility that the proof of work itself becomes a CPU exhaustion vector, Bob is required to ``prove receipt'' of Alice's response. Bob must include the 64-bit proof of work field sent by Alice in their challenge to Alice. If Alice sees that their proof of work is not included in Bob's challenge, Alice will ignore the challenge. This makes it difficult for an attacker to spoof a challenge to look like it came from Bob. The attacker would have to be able to read Alice's Hello packet and send their fake challenge before Bob sends the real challenge. The average botnet DDOS attacker is not capable of doing this. Using the proof of work for this purpose has the advantage of making it trivial to serialize each of Alice's executions of \algorithmref{alg:challenge_response}, rate limiting the proof of work and preventing more than one CPU core from being consumed. The proof of receipt could be made more effective if it was also a salted hash of a counter and Bob's address, but we felt that the current design was more than enough to make CPU exhaustion attacks more expensive than volumetric DDOS attacks. It is recommended that Alice has a mechanism to eventually timeout their key exchange with Bob if Bob has done nothing but send challenges. To prevent a legitimate Alice from unintentionally straining Bob while Bob is under load, Alice should not immediately resend their Hello packet upon receipt of a \texttt{challenge}. Instead Alice should wait until they would normal resend their Hello packet. -The application may choose to rotate the \texttt{salt} variable periodically. While the protocol as we have described it so far has strong replay protection, it does not automatically expire sent challenges after a set amount of time. This means challenges might never expire, and could be saved up to be used later. We do not consider this a practical DOS attack vector, but for applications that do, rotating \texttt{salt} on a periodic schedule is one of the best solutions. +Implementations may choose to rotate the \texttt{salt} variable periodically. While the protocol as we have described it so far has strong replay protection, it does not automatically expire sent challenges after a set amount of time. This means challenges might never expire, and could be saved up to be used later. We do not consider this a practical DOS attack vector, but for applications that do, rotating \texttt{salt} on a periodic schedule is one of the best solutions. \begin{algorithm} \caption{Alice generates a null response -- The returned value is appended to Alice's initial Hello packet to Bob.}\label{alg:challenge_empty} From 340d3c5d01bb1a4557f3ad8fe76f683f88b6284b Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 18:20:23 -0400 Subject: [PATCH 28/44] fixed typos --- whitepaper/zssp.pdf | Bin 422487 -> 422497 bytes whitepaper/zssp.tex | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index fdbcec7ad25740bf411687586e76970c3b3a09a0..69c9ee219dd86f0f6d6f6a399f79e5471586403c 100644 GIT binary patch delta 10079 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 delta 10072 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 Date: Wed, 25 Oct 2023 18:30:29 -0400 Subject: [PATCH 29/44] fixed typo --- whitepaper/zssp.pdf | Bin 422497 -> 422499 bytes whitepaper/zssp.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 69c9ee219dd86f0f6d6f6a399f79e5471586403c..86b51ac74118772a2f959dfcf1f7afbbf8ed2ed7 100644 GIT binary patch delta 5400 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 rYj67%@me>W}wo%2Y| delta 5412 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 Dab8oa diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 1ed1131..6a3e3f4 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -1060,7 +1060,7 @@ The Noise XK handshake packets, as specified by Noise, do not use a unique count We are going to prove that the ZSSP header authentication algorithm is existentially unforgeable under an adaptive chosen message attack. However our algorithm does not fit the standard syntax of message authentication codes. This means we must prove security under a different security experiment than the standard message authentication code experiment. We choose to use the syntax of a message transmission scheme \cite{modern_crypto}, and prove authenticated communication under the secure message transmission experiment, \algorithmref{alg:header_auth}. \begin{definition}[Message Transmission Scheme \cite{modern_crypto}] - A message transmission scheme is tuple of algorithms $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$. \algn{Gen} is the key generation algorithm, \algn{EncMac} is the authenticated encryption algorithm, and \algn{Dec} is the decryption and verification algorithm. + A message transmission scheme is a tuple of algorithms $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$. \algn{Gen} is the key generation algorithm, \algn{EncMac} is the authenticated encryption algorithm, and \algn{Dec} is the decryption and verification algorithm. A message transmission scheme is \emph{correct} if for all keys $k\gets \algn{Gen}(1^n)$ and messages $m$, $$\algn{Dec}_k(\algn{EncMac}_k(m)) = m.$$ From ec2596e9b16115f2672a8bc7ecdae20b9aa7fc7b Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 18:37:25 -0400 Subject: [PATCH 30/44] fixed typo --- whitepaper/zssp.pdf | Bin 422499 -> 422499 bytes whitepaper/zssp.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 86b51ac74118772a2f959dfcf1f7afbbf8ed2ed7..f428f9f221957105aea94c906f991cc9d8ce12f8 100644 GIT binary patch delta 1129 zcmaF-MDpR0OKDk>Tqs|HUj{L{@Ceeh>NzR|@g>)Vg?U5qTboVr8m zpi;g+f0oeXl3f9pt&Kf%Tr%ss)K~vI9U*mPmQS4+myK|6TJn-vf8Y5Y(K8qHzuFtp zCK+XL>A2?7K+b5%>4g@FNyeJTZt%=&zj0;+EL3Z94VeV?~1)jK7(PRK2=aE2HLff#-2v#<#dh zzqf7llus#%zMWc;af{EtaHrbm_2pCN%RAq^w^bprxOt|@vFxL=o4svj2XFl4H=pI_ zr22_=`43dIE-CEunB(_k!rO1(%BwbT$A0sXked}NDik{PwfW5`J;%9$9P?L~RC*p- zr+MCpul^DDAMG6t=Q6az4>z4yzLZ)0^s3xr{cmS5K8$2_N2UcHDj0WoDs;*+vO3il4uD zcC$m>`D4Ld^Kaa{|J->Vm-aH{*_nm>RZL$F9*%wNZvN}YjQa8f-CVc#9k<*E1E zISTXtZg<#M7(eY>Z}ji2vyUv>%DFwPCH&NrW{`=<4#cR)2N#5W+ zcIB97#Oi~eb1kj>Z!=d!)Zb)mie;I-OySz?^mwODYq#yXKkeX|7c;bqH97VFOh{UB zPZM?GWFsJU>dD)zEE-bsE#Q4`c-uq^2$>gZTGf#xNUHkp^+C&Q-K#<&@ue+qA(x#;th z<@5Rr!d{t|KUlrxc;6B6Hm7CF#UD&K6Weh3dVbd9Ee|rETiiF>-78-3#s7lDsyTiy zo^Hy#>#L&ugOkJYpW-H)`5}v(JTj{|R$68-EL^a&_jQ7?p6=a7j}NCbSnst;x4$*~ z$D+}2yR4qy;(+Q@@8yaL5r;SBoIX1@GU(cYcV{oHSAX=_z?V6nwKw4*Td>uPE77;# zv$xgwBfRgR%Iczp;0MDu$DgXcg delta 1129 zcmaF-MDpTOuDZAV6^j(ZBxtY2{_MlR` zKmRGA$vwLQE@vBiR=CWp?^4fhJRKo*W!9N`F|Ikn!D;zRX8p9f{r;NEnWKHJiyvJm()&a-9Ej&|uz-pC5Rd-Fc4t&WU<-xp`@QPv46p z0=sWs6WDa{^Xk3*&u-tcpUL3IIoogd!UvAK;+sll#TDEzgnfA1P-)bkWgky3YPX2dy_aC0aIV#G( z@n7{Xx%16&DU~`R-f7$=BXsZHKfm*33s1{&A9min+G)|MqQ7d1r&U)NcRebey3WA! zhQ-s!V~+JTjrAPj7bJ6^WXz|8OzC%DhH(!Um>2_cN%wX zq(7!;$gTT*tS)i-{NHy@>&!hf$MTD#e}i4cj_f}#+~!MstLIy@RQK2vGsmz5E;s#S zQoYj!&SY1o|K@N=Z2H{*-km6b;U9 zxz@(-pte|Z!mTokg-dT1>oyAC3W-)(Q2+9@=I#l3L3t*^J0G2>+JDz-(~;bIrvS-g- z+n}VMu-Qy(QqbI|Ec#EfKbv!2GvEC3 Date: Wed, 25 Oct 2023 18:52:08 -0400 Subject: [PATCH 31/44] added clarification --- whitepaper/zssp.pdf | Bin 422499 -> 422632 bytes whitepaper/zssp.tex | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index f428f9f221957105aea94c906f991cc9d8ce12f8..02f5c233d8c07217ae7ca42a024d55421eb98946 100644 GIT binary patch delta 20092 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 S#Ky^GVQ$2ws_N?R#svVvu+2gM delta 19904 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

-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 diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index c722b8a..fd38dae 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -1103,7 +1103,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \begin{algorithm} - \caption{$\algn{EncMac}_k(m)$ of the ZSSP header authentication algorithm -- Input $m$ is bytes 4 to 20 of a fragment. Function $F$ is AES-256. For the sake of the security proof we will assume $m$ grows proportionally to $n$.}\label{alg:header_encmac} + \caption{$\algn{EncMac}_k(m)$ of the ZSSP header authentication algorithm -- Input $m$ is bytes 4 to 20 of a fragment, which is the portion of the fragment that ZFP encrypts. Function $F$ is AES-256. For the sake of the security proof we will assume that the input block size of AES-256 is not constant, but instead is equal to $n$. For this reason we also assume $m$ is able to grow to be of size $n$.}\label{alg:header_encmac} \begin{algorithmic} \Require $m$ \Ensure $F_k(m)$ @@ -1111,7 +1111,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \begin{algorithm} - \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we will be assuming that the size of the packet nonce $N$ is proportional to the security parameter $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} + \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we assume that the size of the packet nonce $N$ is able to grow proportionally to $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} \begin{algorithmic} \Require $c$ \State $m \gets F_k^{-1}(c)$ From 502c147c6a40ee41a9a4bcc3046c69683a3f15c1 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 25 Oct 2023 20:42:11 -0400 Subject: [PATCH 32/44] removed obvious statement --- whitepaper/zssp.pdf | Bin 422632 -> 422305 bytes whitepaper/zssp.tex | 2 -- 2 files changed, 2 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 02f5c233d8c07217ae7ca42a024d55421eb98946..fca731a6cdd45082515b399553c985aa5d9e261f 100644 GIT binary patch delta 53405 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 O)WnQSRn^tsjSB$o>&U#(dy4XU!MBK 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 +d$;ZN!5l@48S_FD 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 G-M9d- Date: Wed, 25 Oct 2023 22:38:33 -0700 Subject: [PATCH 33/44] Fix (force) ordering of algorithms and figures --- whitepaper/zssp.tex | 102 ++++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index cdd35fd..df80997 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -154,7 +154,7 @@ If we enable all security features, we get \emph{Persistent Mode} ZSSP. This mod If we disable all security features, we get \emph{Opportunistic Mode} ZSSP. This mode of operation will warn the user if it detects a peer may have been compromised, but will not enforce a zero-communication policy. This makes it inherently vulnerable to post-compromise attacks. We still consider this a novel security property for real-time protocols, since it makes undetectable MitM extremely difficult to achieve, even with a full compromise of both communicating peers. In this mode ZSSP can gracefully coordinate resetting two peers' ratchet keys to zero in the event one peer has corrupted their keys, without any additional round trips. This allows a peer that does not have writeable or reliable persistent storage to still be able to use ZSSP. A persistent mode peer can communicate directly with an opportunistic mode peer, without performing any kind of negotiation to do so. -\begin{table}[!ht] +\begin{table}[H] \renewcommand{\arraystretch}{1.3} \caption{The security properties of ZSSP in its two primary modes of operation}\label{table:security_prop} \centering @@ -226,7 +226,7 @@ If Alice has corrupted their storage, Alice can either send the empty string or ZSSP is a stack of three closely related, but independent protocols. These are the \emph{Zeta Key Exchange} (ZKE), the \emph{ZeroTier Challenge Protocol} (ZCP) and the \emph{ZeroTier Fragmentation Protocol} (ZFP), described in \figureref{fig:protocol_stack}. The Zeta Key Exchange is the most complex and most essential from this stack: It is the part of ZSSP that implements Noise XK and Noise KK and directly interfaces with the upper protocol. For that reason we are going to describe it first, in isolation from the lower protocols. -\begin{figure} +\begin{figure}[H] \caption{The protocol stack of ZSSP. When the upper protocol sends a packet, it must pass down the protocol stack from the top to the bottom, where each layer may modify or adds to the packet in some way. When the datagram protocol receives a packet, it passes is up towards the top of the protocol stack. Any layer may consume the incoming packet and not pass it upwards. ZKE performs key exchanges to provide authenticated encryption to packets. ZCP protects any key exchange protocol above it from CPU exhaustion DOS attacks. And ZFP fragments packets to fit within the MTU of the protocol below it, using an algorithm that mitigates common fragmentation DOS attacks.}\label{fig:protocol_stack} \centering \begin{tikzpicture}[stack/.style={rectangle split, rectangle split parts=#1,draw, anchor=center}] @@ -242,7 +242,7 @@ ZSSP is a stack of three closely related, but independent protocols. These are t The next section will be dedicated to describing ZKE in explicit detail. We will be making heavy use of common mathematical notions and notation surrounding Deterministic Finite Automata, State Machines and AKE security. The goal with this section is to describe ZKE at a level of detail necessary both to allow someone to implement ZKE, and to aide future mathematical analysis of ZKE. -\begin{definition}[ZKE packet types] +\begin{definition}[H][ZKE packet types] We define 8 different packet types that are essential for the functioning of ZKE. \begin{itemize} \item $X_1$: This packet type contains the first message of Noise XK. It is identified internally with packet type number `0'. @@ -260,7 +260,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{itemize} \end{definition} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Handshake Hello $X_1$ -- This is the packet structure of the first packet Alice sends to Bob. It conforms to the message structure required by the Noise protocol.}\label{packet:handshake_hello} \centering \begin{bytefield}[bitwidth=5.5em]{4} @@ -278,7 +278,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Handshake Response $X_2$ -- Bob sends this packet in response to Alice's Hello packet. It also conforms to the message structure of the Noise protocol. All packets in ZKE do.}\label{packet:handshake_response} \centering \begin{bytefield}[bitwidth=5.5em]{4} @@ -292,7 +292,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Handshake Completion $X_3$ -- This is the packet structure of the final message of Noise XK, which Alice sends to Bob.}\label{packet:handshake_complete} \centering \begin{bytefield}[bitwidth=6em]{4} @@ -305,7 +305,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Key Confirmation $C_1$, Acknowledgement $C_2$, and Session Rejection $D$ -- These three packet types have the same packet structure. They just contain a MAC to confirm both peers have completed the handshake.}\label{packet:key_conf} \centering \begin{bytefield}[bitwidth=5em]{4} @@ -313,7 +313,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Rekey Initiation $K_1$, and Rekey Completion $K_2$ -- Both types of Noise KK rekeying packets have the same structure.}\label{packet:rekey} \centering \begin{bytefield}[bitwidth=5.5em]{4} @@ -326,7 +326,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{Data Transport Packet $P$ -- This is the structure of packets containing payloads of data from the upper protocol.}\label{packet:transport} \centering \begin{bytefield}[bitwidth=5.5em]{4} @@ -337,7 +337,7 @@ The next section will be dedicated to describing ZKE in explicit detail. We will \end{bytefield} \end{figure} -\begin{figure}[!ht] +\begin{figure}[H] \caption{The Zeta Key Exchange in ideal conditions.} \centering \begin{sequencediagram} @@ -366,7 +366,7 @@ We model ZKE as two state machines in communication with each other. Each machin At the end of this section we will have defined $\zeta$, which is the high-level state machine that represents both Alice and Bob's side of ZKE. -\begin{definition}[ZKE Automata]\label{def:automata} +\begin{definition}[H][ZKE Automata]\label{def:automata} We will first start by defining Deterministic Finite Automata (DFA) $\beta$, which will be the foundation upon which we construct the ZKE state machine. $\beta$ is depicted in \figureref{fig:automata}. Let $Q = \{\bot, A_1, B_2, A_3, S_1, S_2, R_1, R_2\}$ be the set of possible states within $\beta$. @@ -408,7 +408,7 @@ At the end of this section we will have defined $\zeta$, which is the high-level Let $\beta=(Q, \Sigma, \delta, \bot, \{S_2\})$ be the ZKE Automata. \end{definition} -\begin{figure} +\begin{figure}[H] \caption{The ZKE Automata, $\beta$ -- Both sides of a ZSSP session contain a copy of this machine. $A_1$, $B_2$ and $A_3$ are Noise XK states, $S_1$ and $S_2$ are session established states, and $R_1$ and $R_2$ are Noise KK states. Each symbol represents a received packet type, except for $\tau$ which represents a timeout transition. Omitted are the identity and $\chi$ transitions.}\label{fig:automata} \centering \begin{tikzpicture}[shorten >=1pt,node distance=2.5cm,auto,>=latex] @@ -445,7 +445,7 @@ At the end of this section we will have defined $\zeta$, which is the high-level \end{figure} -\begin{definition}[The Zeta State Machine, $\zeta$]\label{def:state_machine} +\begin{definition}[H][The Zeta State Machine, $\zeta$]\label{def:state_machine} We are going to extend $\beta$ with behaviors and rules that cannot be modelled adequately by DFAs. This new, extended machine will be referred to as $\zeta$, the Zeta state machine. $\zeta$ will retain the core states, alphabet, transition function and initial state as $\beta$, but we are going to add the ability for $\zeta$ to establish a session, send a remote peer encrypted packets, and to process incoming packets. $\bot$ is treated as a unique, nondeterministic state within $\zeta$. Internally, $\zeta$ is always in the $\bot$ state. Whenever an input is received that would cause a transition out of the $\bot$ state, $\zeta$ will stay in the $\bot$ state, but spawn a copy of itself that is initialized to the correct transition state, either $A_1$ or $B_2$. If this new instance of $\zeta$ enters the $\bot$ state, it will be deleted from memory. The original $\zeta$ will still exist in the $\bot$ state, ready to spawn more copies. This is directly analogous to a nondeterministic transition within an NFA. This is how ZKE handles multiple session to a single peer, each session can be considered its own independent instance of the $\zeta$ state machine, running concurrently with each other. If we are only interested in considering one session to one peer, we can safely ignore this rule. @@ -514,11 +514,11 @@ The following are the 4 cryptographic primitives ZKE is based upon. We will be a \newcommand{\COUNTER}{\algn{Count}} \newcommand{\KID}{\algn{KID-Gen}} -\begin{definition}[SHA-512 \cite{fips_sha2}] +\begin{definition}[H][SHA-512 \cite{fips_sha2}] Let $\HASH(M)$ be the SHA-512 hashing algorithm, where $M$ is the string input to be hashed. It has a 512-bit output. \end{definition} -\begin{definition}[KBKDF \cite{fips_kbkdf}] +\begin{definition}[H][KBKDF \cite{fips_kbkdf}] Let $\KDF(\textit{K}_{\textit{IN}}, \textit{Label}, \textit{Context}, N)$ be the KBKDF key derivation algorithm, instantiated in HMAC-Counter mode using SHA-512. Variable $\textit{K}_{\textit{IN}}$ is the input key material, $\textit{Label}$ is some static label, $\textit{Context}$ is additional input key material, and $N$ is the number of 512-bit outputs to be produced. $\KDF(\textit{K}_{\textit{IN}}, \textit{Label}, \textit{Context}, N)$ produces as output $(x_1,\ldots,x_N)$, a tuple of $N$ 512-bit outputs. Given $i\in \{1,\ldots,N\}$, we will use the notation $\KDF(\textit{K}_{\textit{IN}}, \textit{Label}, \textit{Context}, N)_i$ to refer to the $i$th output of $\KDF$. When assigning a single 512-bit output to a variable or field that is 256-bits in size, it is assumed that the output is being truncated to just the first 256-bits. @@ -526,17 +526,17 @@ The following are the 4 cryptographic primitives ZKE is based upon. We will be a So $k\gets \KDF(x, l, y, 3)_2$ represents computing KBKDF on inputs $\textit{K}_{\textit{IN}}= x,\, \textit{Label}=l,\, \textit{Context}=y$ and $L=3\cdot 512$, and setting variable $k$ equal to bits $512$ to $1023$ of the output. If $k$ is a variable of size 256-bits, then $k$ is set equal to bits $512$ to $767$ of the output. \end{definition} -\begin{definition}[AES-GCM \cite{fips_aesgcm}] +\begin{definition}[H][AES-GCM \cite{fips_aesgcm}] Let $\AEAD(K, N, H, M)$ be the AES-GCM Authenticated Encryption with Additional Data algorithm, where $K$ is the encryption key, $N$ is the nonce or IV, $H$ is the additional authentication data, and $M$ is the plaintext message to be encrypted. $\AEAD(K, N, H, M)$ produces as output $c||t$, a ciphertext, $c$, concatenated with its 128-bit (16 byte) authentication tag, $t$. \end{definition} -\begin{definition}[P384 \cite{fips_p384}] +\begin{definition}[H][P384 \cite{fips_p384}] Let $\DHGEN()$ be the P384 elliptic curve Diffie-Helman key generation algorithm. $\DHGEN()$ outputs a random keypair, $(x, g^x)$, where $x$ is the private key and $g^x$ is the public key. $g$ is the generator of the P384 elliptic curve group. \end{definition} Given $(x, g^x)$ and $(y, g^y)$, two output keypairs from $\DHGEN()$, a \emph{key agreement} between these keys can be performed by computing $(g^x)^y$ or $(g^y)^x$. It is the case that $(g^x)^y=(g^y)^x=g^{xy}$. This value, $g^{xy}$, is considered the output key material of Diffie-Helman key agreement. -\begin{definition}[Kyber1024 \cite{kyber}] +\begin{definition}[H][Kyber1024 \cite{kyber}] Let $(\KEMGEN, \KEMENC, \KEMDEC)$ be the Kyber1024 key encapsulation mechanism. $\KEMGEN()$ randomly generates a keypair, $(e_{priv}, e_{pub})$, where $e_{priv}$ is the private key and $e_{pub}$ is the public key. $\KEMENC(e_{pub})$ takes as input a Kyber1024 public key, and outputs the pair $(e_{key}, e_{kem})$, where $e_{key}$ is the symmetric key and $e_{kem}$ is the encapsulated ciphertext of $e_{key}$. $\KEMDEC(e_{priv}, e_{kem})$ takes as input a private key and an encapsulated ciphertext, and outputs $e_{key}$, the decryption of $e_{kem}$. Both \KEMENC and \KEMDEC can output $\bot$, the null value, which implies authentication failure due to invalid input keys. \end{definition} @@ -566,7 +566,7 @@ All of these variables are independent \emph{per instance of} $\zeta$. So each i What constitutes a ``single, unique remote peer'' is up to the upper protocol to decide. Usually remote peers are identified and differentiated by their static public keys ($g^u$ or $g^v$). However ZKE does not strictly enforce a one-to-one relationship between static public keys and identity specifically so the upper protocol is able to rotate the static public keys of peers. -\begin{definition}[Session Counter] +\begin{definition}[H][Session Counter] Every instance of $\zeta$ contains a single monotonically increasing counter, that is initialized to 0. We will use the notation $\COUNTER()$ to represent incrementing this counter by 1 and returning the previous counter value. So the very first call to $\COUNTER()$ within $\zeta$ will return 0, the second call will return 1, and so on. @@ -576,7 +576,7 @@ What constitutes a ``single, unique remote peer'' is up to the upper protocol to ZKE uses a 64-bit (8 byte) counter, but AES-GCM uses a 96-bit (12 byte) nonce/IV. The Noise protocol does specify that, in order to use a counter value as an AES nonce, it should be encoded as a big-endian integer with 4 bytes of zero padding to the left of it. However, for good reason, we have decided to utilize the rightmost byte of that 4 byte padding to store the packet type number, as depicted in \figureref{fig:nonce}. This accomplishes two goals. First it explicitly authenticates the packet type of a packet, which makes it infeasible for an attacker to change the packet type field of a header without triggering an authentication failure. We could have used the additional authentication data parameter of AES-GCM to accomplish this, but the Noise protocol already makes extensive use of this parameter. Second, this nonce construction reduces the risk of catastrophic nonce reuse due to implementation error, specifically during key exchanges. While a correctly implemented counter would be sufficient for security, this adds an extra layer of defence. Given a packet type number $p$, and a counter value $c$, we will use the notation $p||c$ to represent this nonce construction. -\begin{figure} +\begin{figure}[H] \caption{Construction of the AES-GCM 96-bit nonce/IV.}\label{fig:nonce} \centering \begin{bytefield}[bitwidth=3.5em]{10} @@ -586,12 +586,12 @@ ZKE uses a 64-bit (8 byte) counter, but AES-GCM uses a 96-bit (12 byte) nonce/IV \end{bytefield} \end{figure} -\begin{definition}[Key Id Generation] +\begin{definition}[H][Key Id Generation] \algn{KID-Gen} is a stateful algorithm that outputs a locally unique, uniform random 32-bit string. The output of this algorithm will be used as the \emph{key id} for a session key, allowing the local peer to multiplex many keys for many remote peers simultaneously. The output of $\algn{KID-Gen}()$ must be locally unique from all other key ids currently in use. $\algn{KID-Gen}()$ may only repeat an output if that output is currently not being used as a key id. \end{definition} -\begin{definition}[Persistent State] +\begin{definition}[H][Persistent State] The variables $\texttt{rk}$ and $\texttt{rf}$ are considered the \emph{persistent state} of ZKE. The values stored in these variables are not lost when a session ends, and can be \emph{restored} at any time to initiate a new session. $\texttt{rk}$ is a tuple of up to two 256-bit \emph{ratchet keys}. Similarly, $\texttt{rf}$ is a tuple of up to two 256-bit \emph{ratchet fingerprints}. $\texttt{rk}$ is initialized to $(0^{256}, \bot)$ and $\texttt{rf}$ is initialized to $(\varepsilon, \bot)$. @@ -603,7 +603,7 @@ $\bot$ represents the ``null'' value. When a variable is set to $\bot$, it means It is assumed that prior to any usage of ZKE, Alice and Bob will generate their static keypairs with $\DHGEN()$. It is also assumed that Alice already knows Bob's public key, $g^v$, prior to any attempt to connect to Bob. Bob does not necessarily know Alice's public key. -\begin{table} +\begin{table}[H] \caption{Intermediate Values of the Noise XKhfs+psk2 and the Noise KKpsk0 Handshakes \cite{noise_protocol} \cite{noise_hfs} -- $(u, g^u)$ and $(v, g^v)$ are respectively the static keypairs of Alice and Bob within \emph{the current Noise handshake}, and the label $L=\texttt{"ZSSP"}$. The ciphertext of packets is hashed and not the plaintext. The following transition algorithms implicitly compute and have access to the values described here. This syntax for defining cryptographic variables comes from Benjamin Dowling et.~al.~\cite{wireguard_analysis}} \centering \renewcommand{\arraystretch}{1.05} @@ -655,7 +655,7 @@ If packet decryption fails because the AEAD MAC is inauthentic, this is consider Prior to the execution of any of the following algorithms, $\zeta$ will check if it is in the correct state, if it is allowed to perform the related state transition, that the received key id matches the expected key id, and that the packet has the correct type number. If any of these checks fail execution is aborted and the packet is ignored. -\begin{algorithm}\label{alg:x1} +\begin{algorithm}[H]\label{alg:x1} \caption{Transition $\delta(\bot, \tau)=A_1$ -- Alice creates and sends a ``Hello'' packet to initialize a session with Bob, \figureref{packet:handshake_hello}. Alice knows Bob's static public key, $g^v$, prior to execution. By sending a Hello packet to Bob, Alice is implicitly trusting Bob.} \begin{algorithmic} \Require $g^v$ @@ -677,7 +677,7 @@ The ratchet fingerprint, \texttt{rf}, is a sacrificial ASK that does nothing mor Including the ratchet fingerprint in the Hello packet does not compromise identity hiding, because the ratchet fingerprint is replaced with every single handshake. In the event that Bob's private keys are compromised, and all ratchet fingerprints used in Hello packets to Bob can be decrypted, all an attacker would see are several indistinguishable 256-bit strings. The one exception is if a peer reuses the same ratchet fingerprint. This would allow an attacker who has compromised Bob's static private key to learn that two Hello packets come from the same peer, but this does not given any information about that peer's static keys or identity. Ratchet fingerprints in normal operation are never reused, this can only happen if the initial Noise XK handshake is aborted before completion, preventing one or more of the participating peers from confirming a new ratchet fingerprint. -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(\bot, X_1)=B_2$ -- Bob has received Alice's Hello packet and replies with the second message of Noise XK, \figureref{packet:handshake_response}. Input $\pi_1$ is a security flag, a bit set by the upper protocol. Bob will only allow Alice to connect with zero persistent state if $\pi_1=0$. If Alice sent an unrecognized ratchet fingerprint and $\pi_1=0$, instead of rejecting Alice's session, Bob will ask Alice if they would like to connect with zero persistent state. ZKE has superior security properties when $\pi_1=1$, but usability suffers.}\label{alg:recv_x1} \begin{algorithmic} \Require $(0,\ 0||c,\ X_1),\, \pi_1,$ @@ -712,7 +712,7 @@ Including the ratchet fingerprint in the Hello packet does not compromise identi \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(A_1, X_2)=A_3$ -- Alice has received Bob's reply and can now send a Handshake Completion packet, \figureref{packet:handshake_complete}. Input $\pi_2$ is a security flag, a bit set by the upper protocol. Bob may ask Alice if they would like to connect with zero persistent state instead of the current persistent state. If $\pi_2=0$ then Alice will accept this request, and reset their ratchet keys. Input \texttt{identity} is an arbitrary string provided by the upper protocol. It is expected to contain some form of cryptographic identifier or certificate for this peer, but it could also be the empty string.}\label{alg:recv_x2} \begin{algorithmic} \Require $(\texttt{kid}^1_1,\ 1||c,\ X_2),\, \pi_2,\, \texttt{identity}$ @@ -750,7 +750,7 @@ Packet types $X_2$ and $K_1$ represent the second to last message of Noise XK an Similarly, the new ratchet key and fingerprint will not have been derived by the remote peer yet. So this peer will have to save these keys to persistent storage, but not yet delete the previous ratchet key and fingerprint until the remote peer sends a key confirmation. This means that for a brief period of time Alice has two sets of ratchet keys and fingerprints saved, instead of just one. We want to make sure Alice and Bob never have more than two of these keys saved at a time. So during the Noise XK handshake if Alice has two sets of keys and fingerprints, they must send both fingerprints to Bob, and delete the key and fingerprint that Bob chooses not to use as the PSK. -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(B_2, X_3)=S_1$ -- Bob receives the final packet of Noise XK. Input $\algn{Accept}$ is a function provided by the upper protocol that takes as input Alice's identity and outputs security flags $(\pi_3, \pi_4)$, $\pi_3$ can be $\bot$. If $\pi_3=\bot$, Bob will reject Alice's session. If $\pi_3=1$, and Bob is aware of a ratchet key Alice should have, but Alice is not connecting with it, Bob will reject Alice's session (similar to when $\pi_2=1$). If Bob rejects Alice's session and $\pi_4 = 0$, Bob will send a packet to Alice explicitly rejecting their session.}\label{alg:recv_x3} \begin{algorithmic} \Require $(\texttt{kid}_2,\ 2||0,\ X_3),\,\algn{Accept}$ @@ -792,7 +792,7 @@ When packet $X_3$ is received, Bob might refuse to start a session with Alice ba Packet types $X_3$ and $K_2$ represent the final messages of Noise XK and Noise KK, respectively. The peer who receives these packets can be sure that the remote peer has derived an identical Noise key already, and so the new key can be reliably used immediately. -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(A_3, C_1)=S_2$ and $\delta(R_2, C_1)=S_2$ -- A key confirmation for either the Noise XK initial handshake or Noise KK rekeying has been received. This peer must send an Acknowledgement, \figureref{packet:key_conf}, to let the remote peer know that it has been received.}\label{alg:key_conf} \begin{algorithmic} \Require $(\texttt{kid}^{\texttt{i} + 1}_{\texttt{r}},\ 3||c,\ C_1)$ @@ -807,7 +807,7 @@ Packet types $X_3$ and $K_2$ represent the final messages of Noise XK and Noise Packet types $C_2$ and $D$ have trivial transition algorithms. They merely decrypt the received packet with the most recent key exchange key, $\texttt{kek}^\texttt{i}_\texttt{r}$. If authentication succeeds then $\zeta$ transitions state. -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(S_2, \tau)=R_1$ -- This peer, whom will be henceforth be referred to as Alice, has decided to initiate rekeying. They create and send a Rekey Initiation packet, \figureref{packet:rekey}, to the remote peer, Bob. The entire Noise KK message is encrypted under the key exchange key for additional security.} \begin{algorithmic} \State $\texttt{kid}^{\texttt{i} + 1}_\texttt{r} \gets \KID()$ @@ -821,7 +821,7 @@ Packet types $C_2$ and $D$ have trivial transition algorithms. They merely decry \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(S_2, K_1)=R_2$ and $\delta(R_1, K_1)=R_2$ -- Bob has received Alice's request to rekey and sends a Rekey Completion packet, \figureref{packet:rekey}, in reply. Bob has now finished Noise KK and has obtained a new Noise key. A new pair of key ids are generated so Bob can tell apart packets encrypted with the new key from those encrypted with the previous key.} \begin{algorithmic} \Require $(\texttt{kid}^\texttt{i}_\texttt{r},\ 5||c,\ K_1)$ @@ -844,7 +844,7 @@ Packet types $C_2$ and $D$ have trivial transition algorithms. They merely decry \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Transition $\delta(R_1, K_2)=S_1$ -- Alice has received Bob's reply and so can also finish Noise KK. They send a Key Confirmation, \figureref{packet:key_conf}, to signal the completion of the handshake. The second to last Noise key is deleted for forward secrecy.} \begin{algorithmic} \Require $(\texttt{kid}^\texttt{i}_\texttt{r},\ 6||c,\ K_2)$ @@ -864,7 +864,7 @@ Packet types $C_2$ and $D$ have trivial transition algorithms. They merely decry We want to minimize the number of Noise keys alive in memory for the sake of perfect forward secrecy, in case the content of a peer's memory is stolen by an attacker. However we have to keep at least the last 2 keys around for reliability. Otherwise a packet that was sent before rekeying could arrive out of order, after the rekey is completed, and not be decryptable. -\begin{algorithm} +\begin{algorithm}[H] \caption{Data transport send -- The upper protocol has decided to send the remote peer an encrypted payload. Input \texttt{payload} is an arbitrary string provided by the upper protocol.} \begin{algorithmic} \Require $\texttt{payload}$ @@ -874,7 +874,7 @@ We want to minimize the number of Noise keys alive in memory for the sake of per \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Data transport received -- A data transport packet has been received. It is decrypted and its payload is given to the upper protocol to handle.} \begin{algorithmic} \Require $(\texttt{kid}^i_r,\ 8||c,\ P)$ @@ -914,7 +914,7 @@ Without some kind of mitigation, an attacker consume a small amount of their ban The protocol is initialized with a random 256-bit string \texttt{salt}. As the name implies, this will be used as a salt for SHA-512. When Alice sends their first Hello packet, they execute \algorithmref{alg:challenge_empty}, and append the output to their Hello packet. Under normal conditions Bob will simply ignore this part of Alice's Hello packet and allow the key exchange protocol to proceed. However if Bob is under load, Bob may choose to execute \algorithmref{alg:challenge_create}. This algorithm is overwhelmingly likely to output a \texttt{challenge}, which is then sent to Alice. Alice then computes \algorithmref{alg:challenge_response} upon Bob's \texttt{challenge}, which outputs a \texttt{response}. \texttt{response} is re-appended to Alice's Hello packet, and it is resent to Bob. Both \texttt{response} and \texttt{challenge} are a sequence of bytes with identical internal structure, documented in \figureref{packet:challenge_internal}. -\begin{figure} +\begin{figure}[H] \caption{Bob's Challenge $\texttt{challenge}$, and Alice's Response $\texttt{response}$ -- This is the internal structure of both the challenge and response strings Alice and Bob send each other. They are included as payloads within a larger packet.}\label{packet:challenge_internal} \centering \begin{bytefield}[bitwidth=6.5em]{4} @@ -923,7 +923,7 @@ The protocol is initialized with a random 256-bit string \texttt{salt}. As the n \end{bytefield} \end{figure} -\begin{figure} +\begin{figure}[H] \caption{Challenge Packet -- Whereas Alice's response is sent appended to their Hello packet, Bob's challenge is sent on its own. This usually means it requires a small amount of framing to be considered a well-formed packet that Alice can receive. The ``Peer Identifier'' is defined by the upper protocol to allow for multiplexing between multiple peers. In ZSSP, the Peer Identifier is set to the key id included in Alice's Hello packet, $X_1\texttt{.key\_id}$. In ZSSP challenge packets are identified with packet type number `9'.}\label{packet:challenge} \centering \begin{bytefield}[bitwidth=6em]{4} @@ -942,7 +942,7 @@ To prevent a legitimate Alice from unintentionally straining Bob while Bob is un Implementations may choose to rotate the \texttt{salt} variable periodically. While the protocol as we have described it so far has strong replay protection, it does not automatically expire sent challenges after a set amount of time. This means challenges might never expire, and could be saved up to be used later. We do not consider this a practical DOS attack vector, but for applications that do, rotating \texttt{salt} on a periodic schedule is one of the best solutions. -\begin{algorithm} +\begin{algorithm}[H] \caption{Alice generates a null response -- The returned value is appended to Alice's initial Hello packet to Bob.}\label{alg:challenge_empty} \begin{algorithmic} \State $\texttt{response.counter} \gets 0^{64}$ @@ -952,7 +952,7 @@ Implementations may choose to rotate the \texttt{salt} variable periodically. Wh \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Bob decides whether to issue a challenge to a Hello packet -- Input \texttt{response} is the last 32 bytes of Alice's Hello packet. Input $a$ contains the ``address'' of the lower datagram protocol from which the packet was received. So when the datagram protocol is UDP, $a$ contains the IP address and port of Alice. This algorithm is stateful, so it has a stateful counter $d$, and can remember counter values $c$ it has seen before, similar to counter-based AEAD decryption. If $\bot$ is returned, this means Bob will not be sent a challenge packet, but instead Alice's Hello packet will be allowed to be processed by the upper protocol.}\label{alg:challenge_create} \begin{algorithmic} \Require $\texttt{response},\, a$ @@ -971,7 +971,7 @@ Implementations may choose to rotate the \texttt{salt} variable periodically. Wh \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{Alice responds to a challenge from Bob -- Input \texttt{previous\_response} is the contents of the \texttt{response} that was appended to Alice's last sent Hello packet. The returned value replaces it in the next Hello packet.}\label{alg:challenge_response} \begin{algorithmic} \Require $\texttt{challenge},\, \texttt{previous\_response}$ @@ -1005,7 +1005,7 @@ The upper protocol must identify every packet with a \emph{packet nonce}. For ea Implementations must support a fragment count of at least 48. Implementations may choose and enforce a maximum length of the final reassembled packet. Since fragment numbers and counts are stored as 1 byte integers, the maximum possible fragment count that can be encoded is 256. If the fragment count for a packet is 256, the fragment count field of the packet header should be set to 0. Implementations that choose to support fragment counts of 256 must interpret a 0 in the fragment count field as a fragment count of 256. -\begin{figure} +\begin{figure}[H] \caption{Header of the ZeroTier Fragmentation Protocol -- The ``Peer Identifier'' is given by the upper protocol to allow for multiplexing between multiple peers. In ZSSP, the Peer Identifier is set to the most recent key id of the remote peer. The ``Packet Nonce'' is also given by the upper protocol, it is expected to contain metadata on behalf of the upper protocol, and as the name implies it should be unique per packet. \figureref{fig:header_nonce} describes how this Nonce is constructed in ZSSP.}\label{packet:header} \centering \begin{bytefield}[bitwidth=6.5em]{4} @@ -1015,7 +1015,7 @@ Implementations must support a fragment count of at least 48. Implementations ma \end{bytefield} \end{figure} -\begin{figure} +\begin{figure}[H] \caption{Construction of the packet nonce within ZSSP -- Notice that this construction is identical with the ZSSP AES-GCM Nonce, but with two less bytes of padding.}\label{fig:header_nonce} \centering \begin{bytefield}[bitwidth=3.5em]{9} @@ -1057,14 +1057,14 @@ The Noise XK handshake packets, as specified by Noise, do not use a unique count We are going to prove that the ZSSP header authentication algorithm is existentially unforgeable under an adaptive chosen message attack. However our algorithm does not fit the standard syntax of message authentication codes. This means we must prove security under a different security experiment than the standard message authentication code experiment. We choose to use the syntax of a message transmission scheme \cite{modern_crypto}, and prove authenticated communication under the secure message transmission experiment, \algorithmref{alg:header_auth}. -\begin{definition}[Message Transmission Scheme \cite{modern_crypto}] +\begin{definition}[H][Message Transmission Scheme \cite{modern_crypto}] A message transmission scheme is a tuple of algorithms $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$. \algn{Gen} is the key generation algorithm, \algn{EncMac} is the authenticated encryption algorithm, and \algn{Dec} is the decryption and verification algorithm. A message transmission scheme is \emph{correct} if for all keys $k\gets \algn{Gen}(1^n)$ and messages $m$, $$\algn{Dec}_k(\algn{EncMac}_k(m)) = m.$$ \end{definition} -\begin{algorithm} +\begin{algorithm}[H] \caption{The secure message transmission experiment, $\algn{Auth}_{\mathcal{A},\, \Pi}(n)$ \cite{modern_crypto}}\label{alg:header_auth} \begin{algorithmic} \Require $n$ @@ -1076,12 +1076,12 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithmic} \end{algorithm} -\begin{definition}[Authenticated Communication \cite{modern_crypto}] +\begin{definition}[H][Authenticated Communication \cite{modern_crypto}] Message transmission scheme, $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$ achieves authenticated communication if for all probabilistic poly-time adversaries $\mathcal{A}$, there exists a negligible function $\algn{negl}$ such that: $$\prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] \leq \algn{negl}(n).$$ \end{definition} -\begin{definition}[Pseudorandom Permutation \cite{modern_crypto}] +\begin{definition}[H][Pseudorandom Permutation \cite{modern_crypto}] Given the security parameter $n$, a keyed permutation, $F$, and a probabilistic poly-time distinguishers $D$, define the advantage of $D$ to be: $$\mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) = |\prob[D^{F_k(\cdot), F_k^{-1}(\cdot)}(1^n) = 1] - \prob[D^{f(\cdot), f^{-1}(\cdot)}(1^n) = 1]|,$$ where $k\gets\$\,\{0,1\}^n$ and $f$ is a truly random permutation. @@ -1091,7 +1091,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{definition} -\begin{algorithm} +\begin{algorithm}[H] \caption{$\algn{Gen}(1^n)$ of the ZSSP header authentication algorithm -- We are implicitly assuming here that the header key is truly random, or at least computationally indistinguishable from random.}\label{alg:header_gen} \begin{algorithmic} \Require $1^n$ @@ -1100,7 +1100,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{$\algn{EncMac}_k(m)$ of the ZSSP header authentication algorithm -- Input $m$ is bytes 4 to 20 of a fragment, which is the portion of the fragment that ZFP encrypts. Function $F$ is AES-256. For the sake of the security proof we will assume that the input block size of AES-256 is not constant, but instead is equal to $n$. For this reason we also assume $m$ is able to grow to be of size $n$.}\label{alg:header_encmac} \begin{algorithmic} \Require $m$ @@ -1108,7 +1108,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithmic} \end{algorithm} -\begin{algorithm} +\begin{algorithm}[H] \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we assume that the size of the packet nonce $N$ is able to grow proportionally to $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} \begin{algorithmic} \Require $c$ @@ -1122,14 +1122,14 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} -\begin{theorem}\label{theorem:frag_proof} +\begin{theorem}[H]\label{theorem:frag_proof} If $F:\{0,1\}^n\to\{0,1\}^n$ is a strong psuedorandom permutation, and $\prob[\algn{Vrfy}(N) = 1]$ is negligible in $|N|$ for uniform random $N$, then $\Pi=(\text{\algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, \algorithmref{alg:header_dec}})$ achieves authenticated communication, with advantage bound: $$\prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] \leq \mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) + \frac{2^n}{2^n-q(n)}\prob[\algn{Vrfy}(N) = 1],$$ where $N$ is uniform random, and $q(n)$ is the upper bound on the total number of queries $\mathcal{A}$ asks its oracle. \end{theorem} -\begin{proof} +\begin{proof}[H] Given $\mathcal{A}$ an adversary for $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$, we construct $D$, \algorithmref{alg:header_d}, a distinguisher for $F$. Assume without loss of generality $\mathcal{A}$ will never output a string which it has previously received from its oracle. @@ -1168,7 +1168,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{flalign*} \end{proof} -\begin{algorithm} +\begin{algorithm}[H] \caption{The implementation of $\algn{Vrfy}(N)$ for ZSSP -- We are assuming that the input $N$ is being interpreted as $p||c$, the packet nonce construction of \figureref{fig:header_nonce}. $D$ is a stateful, finite array of integers, initialized to -1, that stores the value of previously authenticated counters. $D$ is updated after ZSSP decrypts a received packet. ZSSP explicitly does not verify that the padding is zero, for the sake of possible future revisions.}\label{alg:header_vrfy} \begin{algorithmic} \Require $p||c$ @@ -1192,7 +1192,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \algorithmref{alg:header_vrfy} shows how ZSSP validates packet nonces. Notice that $p$ must be in range 1 through 8 to be considered valid. Also notice that, regardless of the value of $p$, $c$ must fall into some range of integers that is at most $2^{24}$ in size. If we assume the adversary makes no oracle queries, this implies that the advantage against ZSSP header authentication is bound above by -\begin{flalign*} +\begin{flalign*}[H] \prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] &\leq \mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) + \prob[\algn{Vrfy}(N) = 1] \\ &\leq \algn{negl}(n) + \frac{8}{2^8}\cdot\frac{2^{24}}{2^{64}} \\ &= \algn{negl}(n) + 2^{-5}\cdot 2^{-40} \\ From e4312bda6c09a8995e352cb23e87dd958e316567 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Thu, 26 Oct 2023 11:07:01 -0400 Subject: [PATCH 34/44] updated whitepaper with more common language --- whitepaper/zssp.pdf | Bin 422305 -> 423909 bytes whitepaper/zssp.tex | 37 ++++++++++++++++++++----------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index fca731a6cdd45082515b399553c985aa5d9e261f..ffcb16c205d207c24d2c2be9763e006da488e5cc 100644 GIT binary patch delta 133419 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

  • a^bh2K1IJ_h><>O+LyKFYnb{&^RS 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 z zMOx0%?MgMA-}-7*=-k<>Ug^&`;ZiS?sWZ!pN!=>ZLp$!OC8y{O2c^d)WsW-@W8ttBB{ut7^HjDU4V8eueWd`2YXF z44>xAU8k=aUXA>B*1qSt@dX?Ge7AGX59XfId$v^n%)#rQ3i!+aJ(K^OH1T%e!Aeud zD=Qlnlw0KA+)qF5tQHb>=D;DqD)HclM`*Y#nRM{hOwe|15>6qviuUO%5EUCtX4zC%HrHREfm!h8&n+BZ^B3BQJW1Rmefz8Im)#rA zPW$&%iCws~eDQ_1CvTLMo6f#{div{{qM7#(O!%;&=4GNNXM5Vx*4+Bv@6HPT>EH5k z*N#2fZ@)-5iqV&i%WQzR5rIfs)T60&o4u5Oqqu;S&c8&$4{c1yguXnO6>OqE}fzqFhMyrtvU z`&bw~>^M{)!q6HTu<6yZdM?el#kn^GB>FBK&WH;A@pk(W2PV!i|Jpx$?}`;lt>;mi z^=4<{7V#C4D>5?MS%jA??dkn*B0v3p-gM11PjgSks~XO}u=Z0Emv2i+d3RFT%ngEE z+G^RU@r?V{7z(}Wamg_g+IQDuhq=&Qqe(4%i%(j}24%;wsk!{VT~j$Vs<8e>tm@75 z%h9sDTBe1Ll^bto?0vI3`KOSlpY-~K1^B4fhU zna(p-y%JdJ5vA~)H?3jDl(g42YC$#)mP&eBIh~e%U7b_oM1$9he!luAZ<|kt7waM& zrpvtdWKW-BJtT0lBJwGppZDc!BCM_&^*fUHFbWp97j!hXusBTa-7VnUV)}c+{c@$Z z0=$V`uRSL*+&+CV)#-Y`#O}FMYCk&k?%f>)EM}p3iAq+#7qkH<%=JQY9e5seRIx5UT$ansJF zy1P!E{$q8=U*X}Y+(W6#hmz-)-(0smv8OER5&N#KyFwMCd3XI~V*YvMa*|c}+*rFO zzB;>S>QD3C^?38P31&Z!T(W->fA^DPQI(|7IxX{SHq|q^*jX6ggzq)nEn8a>u**lP z?6~||FU#}y;woOc)t4JM+s{st5h}CpKYF)f&hyExQ@NjQP6<+S2-e-#`beexfG2O_ z*(m)(4yP{~xv!qR^{e4BL7j{1dJ>GhMH;rvIW2mr-+1y;52e@Bc-?Z<|K_}BSD#n* zIQy4?|Newy!jlflDqc)8PdTI_sahbkbemyvP4+C-hr(x!)uzl?CVIS{soc~uQIq%Z zX8p@Qdvz73El_yCpt5`4w@~|EtNt)UJ!BNIoW`Jk+U?xjnbMg{_%9qVc_U~tP4ipF>nbO? zKX+o7GE>}huBkc%L>t0=H6k+JM^*a-97t5SyQrn8pR2{2%6!0c^Pxlc|o|GP^t=lKsb)LC-`|`ut zRgYgxD46r*v^2Z(g)TEKv(0udewrr4ojA3?ZHfJ z70i#!Dfu|z04&VP#tX~jpc)^0 z=KDOLIlZC7-Z;ft`PN1I56gV({~vg~`sdlVrE!5ztK5IJPip(ucy7`c{-cqCR{EcB zzfKM^RO-|EYSp+&Q>3S9#o3LDNs?}d(vK$1YS)b1cKl=1zl(-;E~dfr!uFoA*K>bY zFzxXdbJuTD8%2MkzQ@_x(V$RLQnQKplg}T0c|4e*e<>JU4VtyY#l!er{ z>FIxtjO(-c&(hz$Q~$eGgLrcJy3;|?JC&8*Zl8TSaOan+kEU|gR(qYUTg@@KWbGYw zj{BEQ@|XB&D5!1mI-PMhgy(O~MD+^exUcsvr0ML|{e1rDpFF|({TFJu-?L6lT%XEr zyO-7MCDYsGg;m*S*{7C7IL{A=aF#ciV0uRWVEv89BG>#nubwhob8q>EGjW`O>a4H6 zetomFT(UpzL5%72vpSo;T6(!`C~5zawEtep5(SskY+KHTuv7Ubm{Tfb-(8Lna}QIA zkryja-+iO(lKRoho?QlunX?Y`9od^<#WA_FNS4#_mQHNf%CrRitoEgUoA=)rm~|`H zFKxC*O`k~p0+;TdKhwS>raGTbcY4$;aJRYbZ$$2|BOZV9cTfJ2B3^LACjMUg(d9C; zHaSoDv2A(R(KGt9IImh=`03x9H?CeOO%cTb3J#|&6nC+S&Xi3(Zhd0k zzY6BJ{azC?lkOx=O!rLQTEBmhm59d5c2?C@3)Xh_3w~i-`c-(px!Ozj!zwo~AK1R; zlk;D(sri3&U$J>8^>cWBeG|v>|6etSY*3wFV)FO>XYWj5d)R)W;RV|^79qbQALXJy z|3B<+CcN#U*?i|!oi?jxy*qw`zwOvDl}`_Qo^fVB?l;KrmH6_m-jJuOKY}yD&*SjC zx02eolxrrm+a{~ZzfWHBVl#8cy!JIYa(T^5WcS;y|MzZEVw1s>S#x&H_o)($EPwN# zX{WeKB$mk+QzP)?i=}}XZ1Sc5_OXw<>sue_KU^qwxORf~HV!81ZI7RHscl`)aY04C zLg;bCzUb9UN?$J-nBp1Sg8@4Q`YlA1B$o6Q%u_TPxKI(BO!DCs%KKb845-<*OOH zd=6_&Ec@jz=xvjI%AogAqMuBqm{8)XUzY37vKV?F@=4~e=1gWVNndzI#Kk3AE)sLA_$m%|~G;;<)iPt>&!vE4X2C%y1PD?1}wg`4f)dld)N6uXVyyB$jq zeIV9<@LxTf&19j72tBS{drwF2%ItCt+_(EdW`IuSlgQe?k^dj3mHKb5Os&hy-lg}6 zE8k_p`Zod_0>Vat z=7ULfo=xjtafRn!v*fxgd}*!0HKn@?-d%e8dcFMFx;fr*_3ZkmZ|4SI(Av1Ti{T?@ zPqAdlR>tUiVL!Xx?cUv_p!e!)T4=__tM*sSP4d(<6cV@Qy#KU)R@uX&Hl8YZN8hCc z-rgHwuzJs16G^4=|I-4TST@YyDmecmU|UJ7SVQ}>z6l3??_SWjv&a2H<>n=f44j|3 zc=qo1NEPsVdp^O#Ve91jDXpHPm z`^-vLO1U$2-}9r3cHS?s`{Z$8xB5Q*`yv8~@-E^UFA{d=o_=-ha5mo?ud1N^y7%f# zHa}HNvsc`zcv$U81h2mS_rT(w_j6o1IgTHhB`Xr-z{Fwpz;@yC28X5MQ}!EdnrXsu z`}B;P^9y&H%iOrcW#6OAqsa9V| z@=lKXO;4S7Ss&|CwdrAr5SL_Ty`tF7dPtXTwyRkd&xDr@uIrb~xT#c_-F|g*rItg& zm6q-DlTIFan!BxkJ9D$zySayjCO*C?%eHa?cdOFH=1V%Wil?&0znd88&i#x@reMy_ z+g7K()z4ehColH;q*e0-d6OGFU(`QKyjdCX@r%ZmK=XU<{_K>?CLF- zPmD7{Z<^d%z3F^>)q#yXlV>SAy^T|QXJgHNb&>}EnG?Iw zN@m@UHJ)hwTOrfCR55@lylaYJhu;3L7o^lq{ZL7=ul@LCXa6-$j`x|ZE9(0_+G1L* zvp*FS<(|G6RXFdKSk&U<$Nt-W3zRM>I#qW(be%!@^Ui{!zj&{8+bTFjPyR7ERIL6u zPifcGM>R*i=Kp2*-{rf6|BKQxwv_gVmrs@GD1G?<>Bgxo+Z6bYhy=8Jf2_e7oSE^J z`P(9{SK$Fy_Z;%7c2}PJGJehJRWZ}|*Uzflb)o;T=)MiHkN;;ENM#0?d|}?kQt)iW zWyiY>)tBv0hCgNHzV~vGov*Go^QwsJXKi}}J>}VWT?DuMynWG{#f?q+%*uiZjSU+f zw7vQpyZ^)r*@oI#Nsen71Z@n@im&8+{4456d$PIv`-a=Oj|0}4-xDoa=-A7B=G4nV z=Pw%dQg;oTK5lh8|E71g9Gg$h?yArbld|5|cQ04uJ$N2FUB6%s$Bh>8VvZS2;ii`y z^Vcj;3w8dS*>P?6>B399>sq9&e{k!D<>>J2TE~@hWXJ5-ug-U_FOu9SDxP&9TR+pv zkUwu$Qs}emPglLksCFpd-1(lt>+`-XEZdeyzrUVv?QZ>3Htt7DRqu7M9y+DKpr?~^ z+3e7!U2>6EZcja^pFgX}XI54AG)2Ed3>-YtOSo1)vf=zRdtFA&6osx%!I15dskhRO ze&P(h>RTDh5_|B-9mf7<6#z>&TAH=g`5<-f~vr%O>NKX>s_50~OtCRXWsWsBVF6Yd=P zyKJT4-10UCgPq$&op=^K510}seWG&5d(DHpIp)pV`d;&(aF>Slh3_TI{L9~4E_&3y zS)jt$JBIn6`zfb=-%p6R=p3Fn@xnw+^MZ*Jj&CY<{ryt#U}BBS!FM_fA2z=#k{5ry zJiYg;?aCco!D@XQL=q-Q+S^KcY&NLx{O`l&=fQUAvnuob-`%+@@0>oqQdEp7o9=cn9Fyuge|-7s1d+weqOATe zGb;;NWtCP1c5oz%s2||E?rgSzIlJkGGjqP&ait%}_Jqya?z1O#<4J8{=^4G2T%l#h z>WlMB8fy0++QItpskiyF-KGw`&DR}IU;KCL%-WZ+HX*6b2lrlL&eQaKy!ltb!6O%{ ze=bR%{$Ts(IkA%xEdCpaCCpd#-?(9x-5Zxl;@r!)CtlQ4?_E=0Zu$7@d-plUOtZL; zn=CGwVs5A2xi{wP$_)o5?@-p+_aQXkqeY>7WX((U`sWRbFN#y0ey-hje9o4bCnat{ z@_uJdhweW7`)-h2yT!EKg>TAlpIcrc{7!qS&klQDwcvQ2o!6&)n8M8UXGv1}1k6l~RT)jH$3!W_RIJ)7PaD4JC$DFCXN!kZ(K62fVpKALf<;y%*$8|I8thQEL z{o1p-%XvBP**Saqxu#~XZLykb@o9$hy$Z32lMh%$E8cYk|N3DN<5;*sz$8h|cFMC^ zmsx{SY)t07oHW61-5l2UTmMZ|xbbP}yr9b(#-B?rF!YJs`I>vtc`JMUhRX(`lTX|X zNqJY~wQr@&%o)2DZ%RFxay>WV4Yy?#-du z+#iG`~lohyO!Hruo|2ECPr^705*jHk=?*?|RwqeLLpdfBg&J zV)ukSGr!7xlKho<`_`i^PR|>iy_w>-KHao|`z4df+J)XHEb{M`D}V5;R-dzR?XBFE z+S|W0uWNbCAGJ~ZcIZ2?3B8NYo6nxgDP>T5!f1;~!twe!-@p9WraMclcjc6W+K<@y z_V3@!XCQS(^UghyO7^g0Ie<%Je=^%KE~15T_$=~ zYgYWsIX?BdB^wL0?$3>6*4`$1vi^Ebo)~%dXYlJQ|e={ve)esJJ+NtZe%lIwd4*5Rem8BUH@2sQQCa>Dy9jL4v+W2w0IJ3hdr8AoK|7Pp!l>OYb zVfM=x;b&KcL|){nWm;lBeIZ-6%jS$dTi0y=l)LgPfBka5kY%pbx$m-e?W#8U+^v|| zzWmd&`kf}PdrZ{1rm1cUH-9G7HhKOXds4*&k++|2=cB;_{?VKJ$1# zlq;CEIruV~ZCLcFPimKX^W7ac!??3eu6P7me^#8m)#zDNlID?frUnOMXWYrpVP5ms zvE9^Vwt(%IIQ^L)jDwsXb0s@ZWC=gwACQ+T|5{gP+oiQG$9fwMM=yxIk#gnmnTXV- z^>0;bEjx-YR91H&-oJ;zNci#s+DY$XFr;r%X!-% zIEs0qne+TzeytYfcP}oBm~~_CneerL3)V|k-Hx!oyzNxk=`+{sd?Q0npFbnLy5{oL z*#)yw{m-eU8y)MfbyfpyYVVr$dsWo0b6hW0Grg=|)i1PX+23v7G6V02Jzf8;`r`FU z_bED7`EpX}iDx#kKVNv6KU(;F``Z6mx<;v`KQ0IS;wgLa=aBOJI@zvG9NV6&r=8S=$($zQ2^^ zds32FwMqJRcs^!YWtj+z7&Wqe*}h}DYjfhNX+fW-T~qwAH{#_AmUr`B=DeLH z*R%WLhijFYXI#23ZgAr~eQMM7;6I!pi(M1070n1KR?z5AIq_kI;`u{YuC3WI=UVDN z_KybqQ>Sy)FlsOx8<~L*zS$cc*?;F4XdZ9I_JT&)Svh9w+3hs~pJ+5bbh)R{@Yd!F zUv;`f;R!?jle7Q)ymB?AxNXu}2M(4uCad4STD86}&vo}>y<4@PmD=`S)VsGbqBS$- zO~|UlJ}d7&{PXC!c%t0Xz@3xl|NSNWJ5bx#^({wW#Dg0j$|Y;xx81LP{QqD5!=vHr zi}wawo$0o@XKQnJ&7+04{z~kr`u*wa;k)+o|NbaVa{d4DVespJ(tnC|*VotAI(of7 zwc$)i+iT6u8+ty)%DE>_d9r8D``5>|u~%>RUu3a@{ZDUG{=0957fi3l%0%dF^V#>M zw0ebp@0NG-ew1%$U%CFcbtudE@>afg6JuEFoo)NGm;ApgcPrwy@z;bX$rZWtcD7pn zvAMeUzBb>z`%5DeX6<@({$3CJoL4FCYJWtI?y|il7v3)FBZ}=ZRF?Db5nTYbY1*`NQ-i=#r@gul>a?Jtz zZ-3{WV!mB}xGi+v;hq!rZ_2hUo4V+sp>*|{;B!OgHcS{Vwx=#;vSu^CKr>*bgvR9NB2bTfe@NwWWN^oAiGN4lbCGQzY=p{>tM{ z@BQ!P62E6oOM1C#^Bb1TngtHhe#^vXJ)FO8YYeN;gjwB^Y)SRW*Ta1zt^d`!)HOZH zeN!T(W9E1I0M8%mc?ElP7R7#%lipZ#mO(*>r$LVGW~lDond~PHiJebzacr|KxBdQf zuXFT0^#H!u+qar|d{?)}9~aQLG$~-(hVZ{7!SzkP2h<#Wi~W5kZ{i3JJ#a1aw7sjR z&e}<`83pr1ZfNmtmI=_Q=PT9RQ@FNf>iNSur_16NuTM;y@F?S^bW!E{#*?n|*33LB z?I(1zfJr^&ytvhzb>_9cQQTJ;cU150wa_}O@hj+dz{#&>A#p5%>+_Q~u9c4Ke{67N zj)zYH_g%?`Y?YS>d*|fbEk0Z1@!{a7MxiffSblSJPhfn=5x#*p<9&X)yn6kCLrSeq zl46}}KC6qmhwr^Mp-1)jB6HnW?>s(*9XYtV%E0$iudZV~>c*Qkow0DR)?6Z=@cUsv__UuqyQ|7(UHg7HwWRsPyOIM37-QB-E__?# zVDUBU^~t1_T`E7e+}g;t@zTrxjxX=sYCOL?Tl-eTES*`?H$PK+dEIn9$7iFzIn%TA z8Ext}i|U1+I~cI}kmE{g)Vo-gHc!%Da^X<8`HE5|&ZFAzH9qcDRz278=?ZVu z7rrHS3rkn&q^)H>dGCrz(#m@0g+ttBXfr;kgf)FHUs@yne);G@Whf zl7>DPW>#j+{I~lLc*>eNdZ#9esn0(n(e}!-6s~Tdlm79ZQ12(C%obratd?bzn^pefs3hV z!wrW`k_pca#3d}^kh|e?q+_k~@ukbpeGf_2O^lpV!Pyp}!*-?avZ?4x|2aC5tWN^w zaJMHFdar1#XHeJocviONz{!I%KJ0iO6~}V)Q^e6bolno0e|zb;`q-SqNxC0`)h-6Q zw0ADCe0I2h*VFrj-{P`0PDHe?e4noFzAI@%;hZWjEe31jxsBJ~A5-W&+H%SxOdx%( zxPbM_Rw3@0drwSq?>VJWyOHzKktICJGq@fVi9b+S{&xds)EVFU<=w_7{_uV>-c%rK zbzSVxkHq^Q1JA}5FIQC3%y(P%X=A!}v(jHPUyn)4XSn>%iRk)&-pnQ6{m!dvZ3p7! z@=mOX7Ao7PQ@1WL@wxfIFYz;`+ORP`ZVPOSu=$%#ey5B*pY7`7|oJbR;y z3E3a)TFuGAXFG~INm4Ia{w@xxq z3;M&O7&=#1a*43&PKzg2#k}4sA{LtF{L{~Ln*VyScIL6ko0-@TFY^n&a(=JJ%lgI* zP3dZmca67a?Q)#;af^4uj;HqB`=e@F`Xdx;mXzp7E1%gvtze7po18fYEg2``IOpDp zeBmJ`$h}Old=B6DNUiy6B(tns{v6T`^8UvdW>S4F=F#${UmpD4_5Rjo9pA9eQlIb3 zzEw#5mQ?NVO}ij&TlchB)ds$p6V0FBWGmgQpZC!@X+l?l@X4vQ{AGy`#MEO~E zn>7|J+QL^K^JdAyBcU1B9kZ5R;?!Dm?x&Gu$dAGNg` zr`~K-uKRO)*O8^CPjz%T_BUsW=jTs*+mtffCbZz3T%gzy*Qaf7-^iJ*xSO!GUj0DW z%!?kJ0$&(zSHxLw3F_{PyzA@ydC%6P?#}Fo`P{e8*P9{Paif0c&gU#m4WW`}+K-<6 zaw5_DrG7u>oV0$XomLg?v%`|FfC34Vs$7!R+A7$t7JUv=hB%c-;X$TM^a*2_|H9tGZOb2D(qRzTr2m^)#B*9XD6!aEsm#c zo%1i@Ze(s#rS8mN0&VraDo)3q#kv~3PZr9l?~{Idi{HCnYJJq4)Fq)8 zEp*LeDzzdU=W)euymEM^=bJ@So=z3sR9?Sv=XUOgcAqAEixHC`QC2p z9qzIfJeT1TPWZUja>3!t294{JyAoo|vtQnlzB@rj%R%{-n_G=jbMVP4Jp}<4w^z+O z7bC}TcD1d`|MbkG-?KxQ*W7jq=Ge~mNzQQHrk*G2f0!npVrmwRo1-ss*nUrho^{^# zZHY{+_1iepm2{cd>SK1+>nyUmtQT}Nad%o$#P>X5Z1{ zmf>8VdUQM`=5bwN-C*J-v3tT%VW+2>mk&HW{AS@aZqAHPjly?sbjrl(eEFlz)X$|* z$jHYzt>DS(C7hqLX53nLCqR!s!s7q-2+fbrqMJ7sGnUpLy&gF4*rl)G?~1en*j+M@ zM)!#O&OTXDZ4^J%b%WRPmp)5`Uq>BpoN=GEL;C2}_l_*=Qe-PgT(Y2_O9GIP%faUpx9c+Xj}{*1l%{e82moBeoJ-n3c4rMLXn+DS%@ zEKDn1q*q?q@V@dvd%a*l=56JQjt5eg7&91Vnd_RH-$~f8;QppLSAS3AeLr<_U$ps8 zuhw7Qtao3Z*3gnh_YS9tXG!^VW5ycIXEy8LfgDtq7H$ECW*Y!-YIix-`mVe8ClXZnai zh@p!8^wCvve7%hxJLH$}9&Jh0>AgCqp6lo)@h%UWzWzOaucbFO#RnvwWfx!W6wkp> zDZAt4RTY1FqT9^OP$~&yNceVGQDXbmRMxO(giSGFt zcJF6>pW%i+ri`HYr%G#Hf8A+2d9gg}{mat(c+W)djOhFpb9+@AqwwwOo$Ie8=Pa6j z-KFS=OEdG)ZwaUPK0Q+^_0!n7>2PSknYDAJx9rh>ktN>L&2HnqYEsnP+DkW`{bQ5% zMLm7pGCyF^@7A@}lRoowo%{Ojo^{0X{&$*f0$;8+dsfyz_;B^LiTlx(6)uVlhhsXq zPJ2kqJH&ZRi??n=?e~DsPs^nKJY+FqdX@Y0^LiN>6+>3`?F-}rSM3Ne?Ek6obC%P( znuGj?e?GTtd>^?QkA*;y3^4g9|g~iHO@ibo&*v z?08#|_0b~sv!ZnwhwDA}&bi8+{WR%Lw6>?gS}~I%Yo*7#zi33<V(U&`KDx$voNZ_W1i zN&z~I^X6R7jeb)eMSy!Zb*=XtJ6H_FJnH9h!{@aT&kpP07?f7r&E^$sCgh1F8k zZrN?p`4OCvJC@EkR8jVmFJZa+>z!c_^k$Xooo9+al&BN;C-O;@hOW)Wt6JQQXXn;m z-rBy~hZWr`j(U=6~W2!=%#6uXn%Cj=QvH=Wj{Z zdV#eJwl5w1=KT_X`QxM%Z>#aWE#G3=W=vX~_vgj0)zi$cAM}XXFEHVt;oaj)b<4}v zGk*M7v!T(nc#-t;nxf!BC8;jHHFsiK8;)4y7&fiha47tGZLQ6xuo8pWp1+L#7&lZd zo-J6j^{v5)dfz_zN7G_IsQ!Mj$TBp=xcTd*u(ziJZ(O>)HlxvRPR%54ZU;V@-Gw=l zJLj!o{8Qu>deXS)PwBzm8Q1$gMB>_x2{0YZ4-^q9S$h4y`s4lES1S8qnbkLk&gxqj zfJYj(N@eEXcKf!wzI8*q60_iG%Zj(#O>%GP1(@Wx~cgPWLN5%;x-ae!ZSu_0$_v>$f>hQp+kWE#~iDefQP#uj2N5 zDoRU#zP`F&&&l!E>D9+S{FAGzd-C)9V~)(-rvr%jKg}BwdsXcH#=C{TSMJyA)}4Mo@V9LEwzGFvuKw;@XO*ydi+vKwtm-(XN&tPOIHfdo4w|B+H1t+!erUO`_V zZE?s1SHb*k)(5zxCm%7Gyp4D1w|5mKvCgxbUhS=2k|rCIx5#CEeB#c$ikNbRH4CrA zXf5fBdY&8m@Z2Sd6&fnd|D5|~SJ`LYG}C*3r%&6me&3IGy$N9@NA2F%cg-^By|#Rr z+pA2KIL`-@O9QtqU&P44UA^bq6LYo+M?`x?UtBP1=KCsHlBX1Pc+U0>hr(;`z1i_I z{o!?kj)aqJGyA*kYf2eUzml|eKD?eWae2;!NNe|x%crl`H#a-;;=#w+pVQxKxwAJ; z)qVGP!t|x9zvW%tF^zx6x~SvK=K_w`FPod)UE4b4sMNPd;oo#F$L;$!k^9|YMfPXv zK>|Xt(=RW2&!YWcTA%k@P5VoEX5P0Gwc0=anjUbo?FW}u{O(O_c2+p;=seL~B0SaE zuI|U4!;C840fq7@pEndgu+3id^|o{1B`r>GUk#gS+hZil`?g9y3ex!V<=NTnC%2x* zd=0MWo*5d#vuV|G1zTpp2>meY@WkE6nb5cmK;(F-@M=(X1-#US#mh ziHLt!(Q*3rqCJm4nd%>#S`$9sYWru~9+7F;3KfS7*hF0>sHHrfCfU8k;gm(t>+K!_ zk_FLIo*ug7a5gtMM*Ql$*M~Mpac)y6I<(y-#WcPoxIV<&h6{Qc)~tlXq`Oz9yLV zV10Y)-`%G+$}QIXkeb=p6n;=}UFDZod=cMooJ;S>>Uk#A#T&<3&VKD+gqmyg^uH^v zFdky!2zgbwZJ$*AmkLIMB^BH}Y7x)=Xnsz6FBit>vhrWY|Dq_32CpfaHPYp40+|zk zo{*5~I<@uArDw7CpX{5jxy0nc(p7iDrkIw*H2=9HW_{x=&$s7aP5bxj)`&0mKKdu( zd(DKmHBwrpm-I9{TA0pR>lAMFS%2R2q)m5rthz(SR36m}8+Xbc_3b=( zEb)C;*74k)nio5nLcV-f&Aqm$swFYCmy6MRNm-$*)hfZJ@-C@7+aHBL%U(y>yDxZZ zwCslbpC2z7g-eRUFY)wCY@Oa!e}Qx3o0ba=P7O`&7lmd&nE2(=-u0g+c^|!bOLtY% z?xmOQp1nU3d{MK|zRqo?Q&ahij|(yq#k<9NWjjukKI70>&{nST+N3LkpLH7J^zNcB ze>MKcEIRDz`bV96$z!ISKDU(SZZKHowL&4qU=?pu$)>D*?EiAbOK%-7y%{}W;x6&} zb$PEBfBwVrC1DyD`!p$8-A5G$tFQK4SDWKBhiB8(>V}s#6$-a<3Kitc<< zH+LCh?yfbDJRBT0eaf_8DE(mVIA>d5cF!wMzpE+2?()ygf^J-YVwo_Jg)e>5Y5m7P z4$sL8x_H8(W2F;U-=4VotSw8Y{hTSAAXE2lw{!6QN2j>8-kiOzZ#MB#$5yk;!Uk3% z`X@3X&iuV5UcZHR#gjjcsTB{U*ZqEPzCQIvUU{c6=kaNZ*Es%)?OF6KV9t(CiBED7 zoNr4k8dSTk@!m?$P85Av$C$YM!PeETsRdhCS@-{OSakG+hs1&|eLg zHc0E#k!?=PFK~Fd-u`CNJeN6R<(;<-ini?se)oCEhuP#@zoM>Je{tQstuY@3nMK@p zGO}Jbr~AieyI$;IdN=dL|Mc~f z3MPHMIFU=K_o9`xN#)ItDvv`Hcf@v17m}Xx>cO6N5zY6C9B*DPQ+Q_mDP-xn%Zf~M zw=(8^HgRd~W;EG2&o%Fz-;1JznI_Xh4_{mGqQ0E@Xyr7kQw{ z)@e4sVjHimd1{qyt?a8+Uc6#FbJ3}7!rp5a%M_X~aOFCxV&!ot!!NKt$=NE+_C?2y3Tv6< znpzh<%f=Rlr?>k#tbFE9kXwCf&ct~OzTI2*Nol^Ya@=95^S4yb=3H`!{QaC`T1&8Y zr^d&hTlRdp#JDtZ!iqD@j`|HUr&_OuOo+0TYGw^+I2X*|+Sto>SvgH+%49B|jA!cC zcARz54>Aibmb)%->9d2YP<_rdy$jF3%8NYz_1^Nl;QGnJd^ZA4xHwdt$&l*o+1kHl zt!qA;$*)6=sfi3z>TVsono(RF_9gv7h}ewfo!%^``%<1nI0wIyxtM>ju>5M6la=(L zOP(g?ns({OS6(^SnXTff{6eFqZqtoPjRr5ef28>7ZD)Rv^yT)t{1bako9lPhzg=GG zI`h{Kn}binkM7Gqa(q|5QFG+s3yf94vmM-v8ch#)C^dZa7brjAl;nKo>E1b)OZ;kc znb)3~FTBr0>|IlOWA3YM7 z!)6|+Dy*t2cgYCmQ~V}5$HJv%TztYWgK^4$EQo#Dw5 zi$&~DEp)SfW;?^0QCV?g-%J+Kl`TSBEnf0SDX*UY;?r9`-mP2i*v)uxW~QL#*9$t8 zzfbd2_AlS0;4736Bze;WBp39GA{pDh=%^uN43C zxXuspyISk6A2c)KPyNz0_wSTVyer~tdrYY0u71Oeor!d*#VV(Q~&>Zof6{&Ch~fW@bwt z`LcQHGuoys+o|rqX5Hk>HxpSoXIKPY|36JIja5t4Q1f_`)uEX51mn|-uQWZ+W|mH0 zeR9Erxx1q;d@7V_NpJ{hn|8-;nUwDWhQ<$$vzI*530SaPa7tI|)uinylbjs#X8n=r zkEl1=?Xsr0w8>BD-VGm5jhShE7Y#&ab+_28kYZk6{l3}YyU)A(C!hNZp82HAEb)8( zo14rVgOUykb!%&}Ri2vkZQd3m2a^-uGT9_^_8wjAr5vGDb!A3V{4%HADL%FnEO>Q} zl+Kqraab*~*|YD<{DzGWcwI9mI8IrfBef*)+ZG1<`pv=fPrO*(&Q!0>*~>fS>UFtZr2w$xOhYhSWl!rgUr_Qg}R zFQ#3pvg+9UrSqka^$n+;GZ?N<%R9;=E3en*FL>j|=hVhe<$CxqX{w-}AhD_>INW>NK4V8@o3@oXOP9ZdqL|XS8N^?`t8RT_2Y}?~8c)`;W!! zAA2mC;~E7eA}{90wmmpN)!OX*J=@Qh6?i|*t>HVZcTQQy*Eg53asIPJQI9 z8dGoYKjG5uJLiR`D%h^PwKVYod!W{mn%{?K|5ZE{yk6q?qaEQh%k6FM%a^R!Tikw^ z{g2`Mm*w>wd+X$@ngYJGJ&*gwF7wVm_Wq1XiI)SmmftwDCtAX>OwA$$S#PEi>t3RIkuxv#q&y5TBq^0$end~dq@ngC~_eLwO6*|=inOC|0lk2{gcuz9! zaMQXwPyelaFZE#2DdG1Ic~&#k*PpX-Vt>1A*Obmu-Rm1}oW8^sV(@wQwmViPk6Z&= z<{WJMHY0b#s?7HjW=3VdpPJck^ry7^v~X9|gq3?M%|mUC#00t6;(qmQw=KM1C;veu zw*I`Wjq3KeD^~@#IdeI`eIBKMa?j254QvaJX>&=sY~CpOxsjoTg<;-QZ<(ZXU%%I% z-#GhpAj8*%tFn(hSp3G>`taJ-cX#b)TbSpaC*Cvl#bMn~vW|yuY>s$5rP%OP9Dn*{ zqoTr{6SmCWX0kL|>U`}DD~mha0wo=J8<@*C&7nb z?VsHA^=`up6=bXZ;ObqK4VDPCHruvhs}HSGG_B9ne{0zzIj{W(92UV42sUK z%rKR(db?Uh%udbN(%)$HlRK5nduqNuYG66O&?(}Tre*FX?>{!ZMpn53KREArJW)^l z#JQ}+ZpPKa^*q^Yq?)f8d5LHB{JzlH*w$pvUF&%yNpj;8Q0w;>(zNHFbY4bHu*df3}o<(BonSHpb2 z?w)w|XWqvp!V>qxI40!hzS9y|lO!Tj=q;1&DE}r@*ZFYAvuUE%r~XD9_x77DRhG*g zC?}-#ap8ruy-f$#>ADnjJygEYwNX9s^c&kAAzvjy-TsK1b6wp<+>J_hi1;d3rzym1 zt8ZGnXz2;ml-M#$ry6FXLC0LxleEsukcPO7b^TVCW4+D3mc{*=knSJ2o?N#eu zc-hx~;*h?l`svJ;r2BR29hJVVDm2*I)3Kt#XJOCdBvyWb;EjgqT78>WTJ**0voEMV zE*Nl8{jgqVrs1)3YZr3wi9hVI{;?NB^Lyi~segpO{}8Zr*UtIFB;9s+<*mjiAx+AP zYTu<|@|EVZz6h;ev;5MDcj-5eADww&U&D;^vX^s`AJ)q$+~K|{uxVD*xkEqse;2mh zIi;$o)gB=&6|i+qkB3c{Z)cj5kK+p;-7T8yPpbZBQ0aXAaKowU+F1v8SW3*Yym2(r zMeMdtt4d+~>-wGHynFI*pX54p=+d_z+<*RM6+DT*%rS}AcKMrwv-X%Ozl-{II#R=Y za%=yjWfDf#9~lj9)ptZs*NauGInAY~X6d)}i~o~9n$69^C#rGRDF?TS zb1qCi7raELUmYcV8ezLPw5P3{9*aC&6~6E*gdPm zBCituw3P2p^u9Usz}m-l%;v6E24-r<+1GBJqw=6VPv=&TvC#h1Yvw_jEsQ}E9RKis zJYjLHU0;*wZDdT#?3q)AIozzi&2~vM70{gd{j))H-mFGf1D<13_Gc~YxsmJ{r&2b3 z<@R+4cj!!MKeErUD(Xk`HC}30L(URIF9n5?`1m_IS0^&hV_x7VpC0aUH?4D}yxw&Cc z{g>@5kJ@T?M$OE8x-ZC=adwm4q(t`(>uHI&njllBC$HBZ&j|go9s8JPOzNYs@yA?S=G4RX<4!Csj%^2t|CcAePxbiZ|p)R?7EFm zRmsg3EAHM6`fMs+-?7hpeyx0~IG@Glw_Pg(1kXP9i}qUZL72NKX~Uw*8t<)&veoO| zySvPAX9 zjSa7^Pm!1&Rln>=#OWu$HuF9fSZSrpFmY*U^U>T?sfcIB(S|QJ>~L^?WMujMP#{ly zfVl6L2qrt-(?N$+PpQPIRiE6Nz~vm&%=+L;n9}b(Ot-GC6J5sm%-|cV$_$sPB=3U^ z+h;zK3F9sEUH40oH#X4jc}vl@y-U3P-5v>DaP;A63Jfb?T6MDixk#{d*trK%`fO%O z2cEeenf;oFXLgR|9lb|yCiN~jxT9#%T(-}%GI%=k9~FIE%*`+N{E5}qW|K`bME*>aFKW{%{J62aSR-b`H@lDDwT{m+SG;g?hFJV*HUxPwbsdXP34lnm$|30y0=lUhTf@E`*xWy+m8UAfudhL>9Z|FpB z$JRL)W)-*OUYWD_MEjHaOuGYp^1r?A%)avLu63i0`kbzL(m5JGSQl>A=h(aRO8vCW zpH>(yQhpOv8NT6kqUzmc5*MC6;E&f>wlVudq}LXUWl>I7PcJ@JuvPSRyJ+M}i;vdL zwQmntKAxtpA@$mFqnKK1(Aphknw`%+vRF3f0R(p@|4W!HgOTzh6+V7nWZ6McU2 zPk|FGvfdNcD|cyo9orw)#%OoODcjN2xFNo%UL^ZZrokp3-c7fJUtZjLhgTwX`%&i3 zoyuG@wajWFQx-qykqv7r?SJG^ekiu{#dKDMH=A2--g1@e-rgX1QdGIdk10ASbYi(S z%gQ$?QZMId8|qEbJ(U#idh+=c-`|-}R=pRoKjWv|zdPJ_a#ZPr$K0o0@iw%cnG&pf zZ;w#=yFc~H_M%z8RbF=4HGiEVkba@^q~F8KKdir>n!74?iIBm5O}qU4e|2w6WoYmI zblK*vtw7l3%PAJG?#{ls+j9Te^wY~fX!!gQnQ&cjUmK4mkGaHDE&HqMbac|oCQUo+0mQ&A({0ci&8n z^LCZSul4U=iRmz2V9;5nbvnT?`hc|F2{(D>DwD*L@QX=dk6z!{IWwMF)+R8%eBB)- zm(AN9KTMjrXu4x!;39FK`VIF*PqrIecyQoC@{zip|J<7v?9%L$7Ey1IYOQBE`tXmg zamY>aiE~`{U3$gYrGNLZywk_|+rvHzztwxSMYQnZ#ISU~`A$D>KjZrKYm!vng#+Jp zILhM>U7M<~W)1g>(08j1;x~P6&)nnlIR3h@cuRw>-`s=S{`_C^NOSHF#WVlx^+n%* ztY>$1e8KLpIjm0Nl)d)KlD*&mGyHYzJ%p|EG+A-J2(z&fWE%9Y)Xlyp+dkIrUnI!V z!FF%jQRgKhhdHhtue#1S$v3Ts!A{OZ_v;p!(rlfT~&>+~K zv~g90`puKC(x$H2S9$P3{iY=Ca}{$oa}@J_*eAwYe|atWuU>y$T+Oej)1uQio->J#&GlcgLo3|gCI0W{tFKpg&tJE% zc4EY${rjpq-qjzN-yBm{Khq=0$WVLfq{4X*56Rbgg{k_~abI~Iv;G~=3poX&A7-mh zOFmLBn6~zlMR<&2@~rhH-bwSK=f#&6MlPU{smzCtz<-Jy0zh*_`h4kWsn=`^qd`ow1H0HbEv}fh4 zWvV9ISsPxzxW8kWRK~CHUwdq0HoW*|A+XhIX5i`1CexJ4pOl5x-HfQHmFH@W-Q3D_L$xRz9q9Qw&xT>nu_cV^k|*5a3I=EGO_Y;0pWh%@5gL{+!4e zIYqT&@&ChfE(x+o*t^BU9?NpLR-mawl%=b|?x-;%?;pNTUea-LQ+pOXk>q(-Q zZNf6v6xT;y4AY7BXgqf2n5+NXb+izfjEoRitzil~XnvHYR?Z|BpC3+6HOgie5 z7M5^orh10phxxB;cHNQ`z1onKwq@3g!}<0i&RcEG^e;}ET)!g!?H7mpu@9%6KcIh2 z=T?)hthCIT#?{IjS)~LfOibJOWbv-4jFL+YPY1C#Oi8ia*cYAG#hiON^mkVO?-=Ps ziQ|o*H{U&b;CHu(jdL-}Ypw|QSx1dzc`Jk$sC5h5?rPepaAMw4hKc%bcCHWD%Oc*l zE%$cl2@e0o`|e%$y?Aj;ePPU;=tZVNd-v)6TD9b1c>MlfT?_{U%f4@SzAN`YWogRA z+qx6AZ1%I>Q8{_yY&_GQhR5eZUs>un+z&mx(K=-5(!v`%J8MH_awg9)3n&dY=jD~X zbuf9dRjn(#!``MRM?%G(NBt;@+Et{O9@fhz{Zg>upTz~88z%!qReSs130l{mdp>`` zf|u4Im!zg#nZV~DeAFQNK~&z|cENoc1U)$9h5j&AvTiuJs)V7S==&A5^ZdP!-@aWk zZA(Fs#z!OO8BUfg;i{oJMtgf6F){si4!l#_%oyEiBIY&uhVP0Wo81p9F>r~hzufu5 ze7pR~M?QVW{>&6z-hQh#JbUTmm?z$%7WJXYykh2BANxCfm=vXqM0KaJ9LsRO_IA#j z{Q{?EJuRG;VrTl*?1^&3oG1L19I~rVF25e8cydAif+E{j^Mb{`Brm_C!8a*U{mq;1 z3uRipmpOkFH=Pi=f8w$x&)&+?pK1+l+8z&Ys5~>_{Gj*9=QQj4dyyw2Hcb3Jzn*V_ zL)KHJdX*{-g;u7sF$*r7v=phm$fH+}(41zutrtH#rcZX6 z*;uCP?YPuy5TmqBU~C`-<#*nooTdxy}8>dFH(ObrBnacW6Bin8hOAc4lVk=F{3TTfQe;m?heN zp*U39#9x2wB$Hi6I)~S22XKCmxU~D^?PWJY%JhR5F$dIcV6l{Ge|0#ayX?_f;iC}_ zT}PKbJbZN46PdoSf9sCU+Ns=f;^XYDt*%^;!?PnI&#v0)peUps`E5t;2bTtxnF~#X zKPA`aG^=Z!Q_%c2W8Ukhk6UG)Y?~SM(Cb`(c${jv6yx;pYgMOa*z+&^d}(7nb z6O5!+C^e){`)JJ4df9J(Se=}qSaO5FT*r6E&j|>ft6zRjaFfnKHK%_PhlI2(yUL_L z-71{dySqh5mH)wJ1vX3DD;pAy&QDk7H5Y4UxKzZu$~upcuPO4P#!nM#zfUukXB=11 zu5muRwS4!kl}t;S&NI6G<)3m}_3o?CZGV<%2cEcI&f3=hU9FAf9OItu3BN8@&9UDv zCqI+%)V!qUbJ91~`#pKT=&b*GzG>xA3rsH0y+322wCAIPcOAn#_iUdWVXZMCXxEO~ z6%wDO>YP2$sZ;dDaH0HG-I8`ejl=fKTE3V1>ToqZzZ&;Eng6utlHFCR3o@QN)%(0j zl-So$b znBl;5p|}~Q{%&u5%MU699$y}6%yrT@=hD@qrO9)|)@%qBDL!e$Q~6%}!t#_K^A@b) z-zKs-^VuPbDZyUvd8cL{-uCknbG>lfd`ku2_e$9(r`9et`5@Nikns5MwznG+j`-P^ zd`;t6uyCPN)}(0TlsJu#TlcTwlfGQpnc|yaJMs2H-hW01?at5I{P0;}A;0z8*K+<0 zlKx`+^>6P9EMIW$rp!W-ZO5CHH(cl}vFlmh7Oz~H(=+K<-^4B3CY5FQv3&cM@VqOp zeucUF=RF=4o((&=Zp6#9Z_=+ciT@h<+~i8fz82B2A~*NvF7LB=-1M83R`m89yzX!? z^fJHIhU8bp#M*mJ0zGia#QrU;Vo%bFHHZJOG56FMtdrSGq8_(-{%k|%cML+4@ z%_LLw`<$LsRgFZuhV)*yY}2p?fujd&xh*Q$X4mHj2)GI--H=`78kO5N>q$rd^p!mZ zB{QQ!o?YB$T3Rs6W&OWjrlvKn2PeL24!ynZUicTCJJK;fdOTnC?0BIl^PoG;DcU4t zzI2Ig@59+o@BBS5LHD`u=|$2n7i{;DF#N|-c=@)t<^1F$=-J?bBptDvDr>@WvyGgFSlN&<6FbYX(es=eRSsR*wS#kSx5KOR zU#86A64PJ|F1Fm5w(-o;a8JE=PYjjkGS>P9PFv{0(rUWo=`yR3*oy(r^Uf@qQ@`BA zZaUky%`F@<;XBv!n=auzdZBD@te<^c<255q?>pz?A~yM`pINfIzNL)&lHip+^WKJs z-F|d~M?~zpR`=2f5vgbGIummHCWc!~>eoBTu-JZrX!7oDAEsDvPFH0R_`Bh3?6OAz zj`Q{J*QPt#y*ZGYSd{tPef1`b>R;2YGBBCc@1Ho?rgxvJxz+ug=$vBP=mT>{+gRr!f;XF9E3c~V&-oxL_? zZLvk$&#igsnVVMXZ;6p<=PCA|cX2|Fo!hduH8Xw0Bb+BbWUIfKUf=ZP@6)GGT9#?G zf41?9$P<{?A)NVF`~0-8r|KC+*jUY`&)&hP!DM1FdEq+E`n}fK{ZF<{y#GDigo)+C zgS3==U#uS3S@eI+<+ID#BrLIEF8{1N-|dg`GQ)zZ%isO0dF9#}w7UG7pP590i`Yp} z?`VzIrmJcD183*QW&T)iR+YS^Q+RH^&!b0IW}N-@<<;NS7Qr*M%s%a$9bPE&wJ4-S zZowm&!o&YLf6sNV7q5Tt|L)(_>*Lb%l4IsPoq6w$eOy4{{@Z^9{yx-?-@kAF&)a|J z$7w45>i<4}(eLvgo>%Mb*B73WBK?XimL@qGn;9 z$>ab3?(W`x!CH5bTw2#TbE~SVT|12{uar6WYlND}XubOsQs&$neD&wTS<7=w8Dn^QkeT^BvJVN2^y7 zd@H0Q$|qR|Jh)TE>Nc~Ni)Z!1gElkIJY6Yzv}G#8{GBg1zO}h~_12^Fi_R{|-8s{E zn&XnGA6Wn1Ogy}9wcc?1{mXJqObt7FxA8Ij z`_;ZZW<~0vT{pM+#(!u2q^4ZUmT~fkH7WC-+SJDKw{_;p+J#;*F=`+}>&??5naU(2rbxc&)$e z%`OIoKyN7tzN}sATjsp4=ldGCYra>|#H+qBcDAywbv5~w3}JM# zzD`!ySe6vqt~8_VNW|&&OFu-d`+Opma;bq`6$XI@%xh(Xw+x59SEEfAb7Ru(&N^r(UF=nnX?lWZ?9T@ zc;_3B*)#MX7>k@c+g|fu%D3~9O_*dv)PEOsQ7MsaGZ|86bKaE;*V*tW*J-!duSxX| zlY_pVJrMhA))}QK9y?BTtYT;o-CUh!AV1};!4`Ekf&EkF{px04^rbbo?cQI7Wk05g z)o$OGRlojAWXLDOE2k_^u3{_*e5_-Uve9fdzu1cdYPIdZRQDcdE_XR{d&}F(=P5NM z3d=rkn337L^|WT|i>DVXPcs~l*4u6I=+aE?<(nr&r`Wt=mcV&s57LUL+ zc8w`P>+K2{Wu-63r11XGTAzJmifra1g}<}!b}Y1-sNKA^{+7A?Q-N1I&+Yy?Q~T<1 z-EFcLUKl_5bmi(JqgOfw1_Fiqw?WT%%*Y{p15y@8gy7_{K^9sGo`&)ziXHVF# z&HZ(FODQH{bkX>7oPEaBY(Z&3o&bz zq=XH^^WNQ%s?g(@7vqz|v)wL>(Sj|%MK5fL>-^Q~2M$HdaQZWI)#@E>cT8G8{#se- zo!n@8-9Lh*ZOX$%@>}FPp7I`E{(&o7acYlR!TJq{?>Hs3udAwGx7+KMw`26XG7 zn|K~2HwrN@+AP-FaBgj(qu**Jp1&q8^?vcmPrn;(|7dnNsPawpJHdci!FeI;X&0 z#8yAElUFr?R|l zy0L8K{BO5KH*M+Kd_;#sIFq67lH`mAnS^B;A1B6iT?{hgTWH&Uw$A74#yfnIq8L8q z@+f|pb33;=ao56*wYdsD2k$iYOL`R^-6$*B!27stas2{*#jgV23N75Qz8=L-h*tPf2cN;(9??Tr%#h>~%;h2h^n(T_b$DjYbyzk$Bt&-U0WjjwM zNx15K;5C+BaqN5Dg+C_FC&ac`uZRmU*utC_rSkC7qu)ou9O5mSAAFLl*O;nVd&0zs zYZ}+P!>vo-%~yz$S2_ENf1b>_>Fe%YFX;)gTcaXhmBf4?Yn!~T>aCnF#}(qEbaZ%} zT9()!?)->D~NIz=&nbFU+*v?jg=gq5A@5(m@J^Z%)N#2D*Mq#bU zvfYbHJ3B+C>G+(kDPD1-?wpwL4bT zHRw=@&&=~I)AWp2YA8)^QHrW);}H~e%oLoktjpiS_1~1#{U*+L<0nsNp7uQaN$X3O z1rmz8vp;!Vp18Ds?f09VQ(`T48U#Eq`1Gn(e6v%S+-}bq{w@cNAE=1-QA%ja9oJ$0K(-gdTYKk|N<;PXX)LOhp_jJn$HnHk%@O!wYc zAmaD$?&19ppTwuG=q$FK*L>SFog<`H^ zJLWFDf1)z4BI){{8`G4S{pK&Zz9l63L+j`I=2>a_t1~}on$E3knXzkQ*XNxZ%+4JY z_Y|1qwA6mX)chUw!mNHv&Im9tHj6)he88|`p6l=8o1T3u9^Ia6({t~0&dZJ`H(zvk zIEn0=5)czOk!eQa7xlw-7Hg03ZH``MW3_F@+gp!+g^JadKd4@l;}*X!fGOjf_w8-G zzZiIbGw$3m_ovN6ZO4U8Kd$IC9h%D9yEE#rAIsC+wH5qrpT0j|9AjF~`YO9bL48HY z`}0o{J(g%}50`uYqJg2J$YGQA#(j+m_H(yA@IJWjNt^0_rq63t_c7ivE?*ri8Z&2V zQKtE_tCq3Hxie}rc%|)%PoKF_@n5x0=)|WG^V0pcpLN~Ex;CVD{Ft6~Ms0IF@7LO^ z7g_~Wk8CLjWVMW5cWwFdWYg$53H5Tn^S7rTaqg5{5&kz|{;9;XIS1leUa0?EbdNbsq)P8$K$kXMXW1bot2$fxjX(8?JBp+o^0JY?_diC$w4Ws=C6KmunVU zuWphL-m+;!SF+PgI}zERBI`KJ*}R0)r2e>SNtcHnQ9C*9*xXOvM_ngnnM!v3oO47s zN%GBZS2f>2^QIrAy-Oq5UT51Z&1}$}s_@LPZPK#(6tC=4TO+yl_%)U9W}WR7Jx404 z?xLvr7p2vQ#gk+HoHk!?W`AMA^{?~ZS#8+AZL@g7rR0d(;*CrHC}st3lGAQ}ZC;t) zeZl*-e|ub}p!58ICmSAApS$t6#@~O^^LvI09uJ>$=O25rCvjt=UcttO?dm0^f+l|4 zMMbR)4nB58Z1wUBY_qhT4q8WD{2>YOU2nNQ>1+NqKIz~a3Vw%gy}8KZ==D!WKR;*2yF*&{1tWL5)-xSieM!00QuX{7 z^$rcoTj@t?>P|;b_PQ|1Ni5;`tmE5mhiQxdNRDgJOFWdG!(tJ3cHWy6)2;{I`gv#0 z+%19&#q~c3R7}h%H0!^2HNka9?M(iX>z|lz%`d-@`XupuX_%$P7w6j_&rJI()sVTa zEpldexLnfg?|<%Gu(V$KDV^tFz01Exe{a7z=kR7F=h8DL{|9+JdA$2V`H?P}i%~wt zHzCb7g+_}(tQsG_;SAlNcC?N@fI_IELEsTW-Q+)rPbJ~x`V`pu69*0jBI@9v$s z^u`sR^&6S*HeF2CRjo3%^*5Yu8Jy}S+`+8y?BVpdPZh53p7TW8yg7JoUZ=>)Dbe@q zm9Kn!Ab(uP{KPG7-$S!>z8O1BZd%6lI_Xt+~RcA~Fc*Dh$=lNN#eW5tp&S-Jm(=X1Pz zvEMa=!=>j(>eQA)Ut*-P!{cTrO}3eCCi%OO<5zwCzdO}2_F1p*-TNWTpqTG=f5MLo zf7=eO*z#kpP3|hYAFKCGIB-C|_UE(spvxajH&0mdA%7>={JqwErW%jk`Et1a|KXZ{ zDD|LrdJgArVC%EPqnf+c?6dIa28PTKK6m3?%%>xc2S|YpVv8E zdRl&+u71DnmS25T#$j<6Ggkh&jsIBZ%{lNR=j8mmFSo3iVe8JvvA}Ujm*MR@zZjbS zyM})@H}XDjP#MlJ!C}vh4+d>ME8bgu3OS?1H#_cLNpz)Vs_O2Bd_MbAGjyw8f4NX_ z^>L2t1{NW8=YvHg;akHLc-CmGpv?r{4TArT((LZQHp&XRh?O zIUP=vm||eEPCN5?s_10h(udrIbGEL$KR@+J(!Zk%|8mZ+Jt&l~a^dKuyq9|xXK!Eq zD>wY~G=b?K4fbBxV%N-?aEalgf@;xG_nXe;-zH6LKYQW8?Za;2IWx~So{%}D*&Mm@ zko)J!?k}%x>)l#%_RWqLwjKB4+3O$c2i@zp*Si=gWzE4|x+?i`(Vxtd{Pn@JWlfr% z9ocrmTzT6;axUUR;CdB)OyQzL+q?Cu3hJ8(F+J--eX6g4mS@q=L*&m{h^>^l%3Z?%{@4l;M zSt0c-UZITpHht{4f)iZt_w0!SAy~3nR_KI)Mr+l*Seem?}-`6U(&l8g# zIi*Uk{b)If*XOmDlA*!NBe_SnmG6HDPSrI%zVm>8QG zLU#X3-<))3+sD{=!~BO~COnQ!;rE_IY?2MnIUY1M*iLSP^BWyyKFendud3P4-{;U| z9OLOXrzrBsMFy$b@?^7HvgH@wb*FRv>n+O?Uv1$Ny0JT0Hmz`v^_+Qsf9afAY@=2F z>E`;~JNg!wm~NHsIK=e5t$zC5?|HxXZvUU2Kkx6$`p|Xd8~Hvfh3_^m50BWhvdo@! ze*OPPS7*9J>n$L=R{`38}Jkeik-scy-;ZBkzi)VE|Ig39=GXYj_Lwiey;p8W>5fAUX$-s8<#e|ns=E9^ zM6T@$tJRx_d8xBL-IchhQg~e5s^a4((}b=2Z?1mOz5h>d`hLeP^NW9%N$vdDpisel zV^&yS#S7+tmp?irw>yeGeDOGgeV#(p!4Ee>Lhs5Q7JYnI{E6D98;g|cMPC`YKWo(z z-`IK2T~L=T^Ji(=mP@G;qDS?#Hw7HE-1KvK{GwRa$qtPMn%#Gq8|RfpN*or~j+@8O}RT6$`IEvWkOy$Km|@&7tSj6M3Rme9=37*}$uKV#D#xu3T{% zj1I@F8g)5eJlE*GGHbHIl69K)$@RbO1OA!c`SJb63^(FQt z!Pd9xntySc2)_-szx?}ll*s#ScJFeduP%F9cX!cT$+s83`4=3$`{Z#<;7&f_xw#X+ zTt4}6cg`o3_!6=9rCtBKZS{1|Y<FZ|RK| z>Fa_*g) zY+NK`X4K5psmJTT=GGRa`1Ez}e$E-WZm0C;(8L?b>OFRMZcjVzxT*5Q{mchDtDSz% z<=|$zD|CEK^qt$yYb*CLMfz;E_#t*!t*>{_*}bRjHqEPB#1-~-CsiLUz(p$_oTEzYxXViUhh^Nqc*=0W)(=vB%+xnZ$9a8E`t}eN@ zFYL2b+_kR~EwZntHQ7o;bo0JiAGTn>h*O+z{@pFpR^+DesqILU=&y0xdMvU~iDgxD#Ucdwk->ms_tSZMzJt8RIP*T25IqpLQn zaF59mTcg&s`gO0r&HrXlbo+}y+?QqbPuAtfw0&LWeEs|7$Z5GhxF#5Q#J*EplU_gJ z6kq$kX|qFY%ud9Wy9F3M;NabPRwCrm1`!V~=Sb$n4Qr>1Kl41=U8!W1E-i3nUc^F) z&GXbdmYph3vYZ{K%GYxzkxwX6g-K@e3=NUUNh}f*baEd=A@Vz+-pH^hfm<3ny?M;0S2r%hFo;qkTf$lp?=-4}a%nMctM*`#j@UxlJC6_aWCeZ>Mcm zyVjgj`|oY`#059`Iwmy6FPkwrsnL6ew7+=UW=me47oWXiXR-_ZJLkAffc3LTr)1B^ zb>H4harV1!HkrY&eMa;xzKfG8r!{Fl5?;u4DJfPn z_4BFi44v$t{zTND+$(ROh@YfSRT() z*a7Bf^4p(t zn9ZBG@X;a%eIvWhXO*S=eT zVao0PJ9!J6&+gur!RB>Tqeb1g^$*)t>n3&`>8yB-OiPp(}O6LU5U1=Be z{93<|sW|(7zuxp6C$b8|vX~=W(?TX$c6$lw^R@9Eb#stcxKj^6W>KnLaqGzuV!+UMAVG^XR1= z90{G`!moc6FVC7T5Ho)VPvJ+MPx2iXOOkc_rV!1 z*;5VY3KAH$G^%XeJl{)Sjyr+jNd|-S(>v~S(!Q`2c3T-5o%m2;73tB;cPI6TJbU{r zi`u<=d^UXcwf*V1{{>fW>aUQakLMYAFS%62C1~Y7+2`l8ReNTOCdQ?#i>v-$rmPwo zxWf3ULyB=?Ykl{_g&!Bo@^0U^t^ZEN&v~DHF3YiUxOD2ZXc=@?&-^a=Mk@cE?_+64Z;$p0 zOR+s0p0kQ_m^Lk3DkFR=Hd~S{SKRkg?S`Fq*sG7#O4d#2;+w%*?`Jce^^vXSdY7Wp z+lu(yWy7tX)wMJ?U}1#wR^?sf&Cln-CQ-TMu+)SW* ze=X2|ZT-(mf71Cl7WcsZrwUcYc~3Ru4oNH*^r-o@^jNO4=jv|3B(LUG-X)Ro+!w=V zIq|m#Z%xR#KY#YGfaDz;LXUp9^S|w~Xz`z>E`=$3itLtNS{<~hh$r~wCzHI+^(wp8 z2Rc^1^#626rd9L7<;T$i=KKFYlAOb)^uoU0{qPC>J-NEief+{LWW_c%cdlYvtr(fl zCHQ_}y-ok7ZFlEOI~(>zEvbI6E^Wrgeeah&w(UQ9@iN~`mem@6uM52RDdJczlepr@ zq-YCi#)Qp3m%1}cNPN(}*tqs>3|r(c{+J~?J6ISMYR)a{vWYsKw{8yK?vNJOH-h^$ z(sy(o_O3s&=JCW+MtipzJ$U+@IqIl~zR#2Ns)rI6y7x`yzLhNgTcXAc>ZJjsS0T`XXDVaqbL6a{kp_&_pL~5ma6pXu=fIyMRR{XI`?jQ=*-piZ9wMl}oYc?t{lO9)C*LO545tugxyK>(4JXCG@2V ze!p$J%=zxDr_a-sICq|o{=9mRY5z94xRm#gQ>r=_teN_0XKCl*Y5oyMHGT-OIWq2l zw6yWhn?;Z1j+)-6Sn=^6Z~30%rXIS6Yg4Y)H_Of5{B-KN?Vr6Jm!$gycByD=edCaL zY18}Hsmm>Mrp^$*|6|9R#>ww$t;#b_G%L?P?=0lTFw^|BXR)A-R(NT4_>V)!lnlF6 z)wII*pO_qUV-wo}15Lq+6XS(FemP~QpPK5|s&#$0#qTcPth$La=kHXi{6FOd!@iIm zsZF}aFU_dG9G}Fue`lU*Oj15y&=vOIMftNo|Ebp8?=mGv?C8a7wLyDN&AfKc@3U~F z>CMvAEXTW_*)zWU+V^_CS+Q}kVz+|y+rP6MlmE_A4&{oooHSL5;}&UW1R?tOI2vR|LBz3;uXd!2pMF=IX9=ve~|*txd~Zbh7QvBXcWSvN1;6*QWPbAbs%=2YuQ(0g)z|xX?YLlT&v(z4%j9vv-pgW+^;H)+ z=Ehu2%=F>mF?(sK-6^(u_2VK%p$}&4&Y!p@i`U$8^r)*}ut_}E;i3FGC*zP{v8g-c zrxttn?RsR)r!@a%_1A!w#YgOKUi^^G`QBXbU3mSRuLW<8gdg$ZImKozIc10I*Q-fi zKNn1G%e1IrmDV~v(mDw`_9cy_8F~)50s)`mpuNUbS3KTw|imh%3R<7x<1A8 z!}m`|mkX%@F4$O? z$)~bp`?C<;-F*@63$-3~Ckg#t|MkAin@2l%ltY2ADXzBi-L;e8be8~Mv})OR;d&e2hDoMRJUe1#{O&r;EH z+t&E~rKal_%1G`OFnF_W->TKG--T_tnZM|)`FW8)Zqi#XdbRs4m42Hek-hh(-2A^k zb$k}7oHF~gb0%n|%%+enassWI=Xm!&eq&zuYxc=M`g!wfzglgqm(D$`;(O)Uw|`9C zx9>iS{qSk|^Y!`b>-PV>zS(0!UFmPjJ^y*@_dWmg`#MMF?vsbW=c*k`Ona*q7$`Bb z<>Jqu0bxh4_WJo=kU!Puy?oow)9+8Mdb7Sn%0}S=+rEu?ReB-3+v=WNTa^eYNh6Xzs?zRln;CUd^tZJ)iHX+4@!NY=@P!G`2n8wu8+fttlw%^J)3n z+a9R?c8=rT7aFLn*Q6&ib*5&DFe{lmG2o^F88R(;Ua$kM^DY z?mkoF{pn@TzD>8^^Hi?#{`2UZ+Vi|UoZCd^`|Sz6@u*$@ov+5Eii-Gw=;Wy{?cscm4$Gn$pZ-eMkKW%xgK&m0*+4)ub685^g} z|IPf)kh4l*_Zy)H$D6{~T28+^arp0qWycOXdX)du4f?q4%M~>RVbNcVtld?|OO8(c zRvB4-sq=eBz`bOlJ@3~EPGZ}?ulD!jTX|)?m+M6~8XPK%$l!K5exsql{EX6%RG$Tk z>VM=CuDA4jjA>T26h8cfGxMow+|Pw>X5KLuL=WuRy~mZ!cTM`MT?|1t=Iu85en(A+ zWx}3Y=D9cJ`(jcz*b6qD*uKJ3psg(O%M(l9^ShoO+qH5#YeCypy&bY)R$`U9uJ+b~ z4HqRM#U|#}hr1|0dt1knGTWGEd*HE*gogo76gI`A#mMd0bT->cK&RZ*P9tbf$Jw8stGqdUdEo*Ts~`IqzD#FkxODP~ z{5qL=CnaZOwq7oJ#M@fDT|xA@R(|JEk$1cS_We@GsW;x7i7(gY zcdZjX8u(09m0Rq)~A|$ls^<7-`%AXMUeane6NlLPpFQn`_^0{lHPvSYL z(i|yP{aMy+3wAj%yw+qWVSlFG@RaA{rIu8?XY6_H$+;}|PMb{Ly327j)0`BZ`h^~M zwoTspXWHeAg_aL)#7G^kI~d33{lU|5rS7M`DH=V$Pn2c1R_|FOJ>$ge{wZhO4+c1% zI>~3we9IFK;cq49*xbH6fs9hSwnA35KgV?8NYVyE`5+-R=n zZ&||EHy_>_yEk{j;>8TPA_=^kav$FaZj9Ph|Ec28&y9N~-&^x#0mCP*XJXoFi=CAp zu$BsF%|7<1RgY!H1s*@GPTe`xUzY?1r>BOlyu1CZ;8gind%L)UO&h)@t;&$qj@VG{ z@OIUMPpg7kc*|dK&RFF7_qCCsyT8;y)BCa^Z|@zxVRZWh-wcr_yk$zW#rY1cI^M>W z;qdOzj_$4XyH)K@xwV~n#I2>A!yXf%!1q01!O;zy3Ivx|AC~eI=XrOkHg?gByqoeb zJ0lk|d&Hicn>?+&p;Pz;+x&|g&r2wa?n+#`)z<#iJ3l_n%Y`4B&Q!DI#T>rB%5mqR zpnD&~xA2Lb3`ZXrt~0o2 z*SaibJGS}-l(2A?>+rL>S zOC0j*mNju%oNoSc*;eLweS|ZA7<-R})}9WLxI+)SW*EFUdP|OLk^kyV5{so|4bED` z2z0nOMcK$m&iWy^d)c%geQ%kAD{m>E4gYp#(S%u@{#Q5?I5amLnqR6r!Eft<-qULH zxR1?ib~P^GIhwOi^XLMrjhAzHBm?-v)?5=6AkPWPWH)3`W$N80fpd>aK+ zjxCsRSh&S-z4?K=DhV9BzMuFMc-zy%e8)PSciQQ<#phPk6tL|sI=-W6xA}x)JSOku z_|HYu-&UEhVCyQbf_^~}eUXc%%cGp!S5B%I3$~2;^Ky3j>~etyw}Y>X>hn@JT-tnv zN5?fV>xh@E*qgo-zm4ntD-|M~avOx6G6Z#>*%Fi6ZGS%1`=CzAu7t>v^#^+oZdmz{ z@lAwNc8ma9{$|4GjEK2EzYP`+Ic0vF0uXRTUG7P{6JiB4Kv&BuNh%$ z4lj&9)nM(Hw&wUckvCG7!r6D0ZsssJB~vglNl4~G(;w4%cR#U2W=mFv_&G11PLX9U zzck-Ai6Lk9szn>b7ACp!T3O!@u7l^~Cn< z!@23_9)=yAsQta}O~}U$zZuuw>+TM?AH2tAu}=HZlPWsbJjG^Nu-S0#k6+S#^GM>f z8B>bRE-YIy$Eo1Xj_FaI>n~qeCUB*HuEsjIIdxiA8*NS13&Z;U2pNjbyio7*?XUgfn>%_r;dxBrtBp>7iEDZR-#vh}c zyIN@eu|toVm@eJ>P<~?DVn~56v4U5pugA-CgNKlUmY^<&_rJn- zzfQ(1=8AflF*9=UaU(&-HNkqK`vm8A)px2bpESdu=-m8w^7U(E=5Q<4e6UrT*Hv(| zDQf2B6$ZYO^k)eBZVf!hzv86bre_8RIA(0H5ZGyb^JeR#ctvG7EGI4t&*b;=rwg6*0|))Is59F#BFK^=Lo)>BdU2> z?aZb(^_@Y_o4rx zbx`@&v)AT#KA$a~^Dz5ez$p`jJJxy=SI+mdxca~+X>zOPn@YE&2QOz-%zA6#C6ik8 z_)4|%%cYB14CX&9Pm$%EE0OP@RvCOs@qx{XPrHxKd7QVPev)_gIr(khH}Sa^h#c>{ zCb0d*a3^-M?hUkxB22PPZGZZ=5^n_6`jVyMxPqI^`KXeVP#R zTfm3sajlc2Rdv~}XS;VQvXvyC6Fyz^$Yx{AYe$6={rjOu&m{^a{8XRct>P|tWQUXE zIlCvfivP*nY`y1s$Y+a?$%ToR3--mIsPWtBKeB{b;(_dgqi@W9?4sB9j|Sl1jS51-NzX(r%T$ z@!eJClp?GD=`c&u^P-ifd-*Qw{4XEwS3**H}GHOw|J`&pbf{#Uwnz$w1vx<#hs)yIHs-F^F`N?)x zr-k%dleMRfoMNA(u`jec+Mc@a^l>?%DJuW2nTfvcQa!6H{JJZE%QW;AyUOBHSB;44 z(kAt*UC#16V&41UM&Q$E!!_5W!>ljfV|dc+{p10I!Ho^H({Zo@~WC!*-cW zAn%6c>6)i3Pux|0-gP;nYBi7P+4(EyvtNB_EmEWxwvE}#_|%o@FRMOJdF#>Vn^!8% zFD78{^jZjyM2)hg$|=p*&y`X=c0St*E@UndUVr#!jWolqeYVZVolkllUnta6|M%V0 z8K34bP8Ui4@xZUXL!DLmiY`QS>P38}QtGzQt zbWTezQY_hN5R^G%$N#@N!W_|89+y@7U7fSK`s1Z1bEo*<{`^tZp-m@p&!JyW;)5nm z+UC|Qe=~T?v@`1xO2zuu%XIt~ykvXDW?ydBxpNOK_5@Gh`*KYE^C`J{#YX~D?{Ot* zA8$(Hty~((*V}8jV~a+!g~K1`H(t{%4zK#2UN>j@$F;i!nro(RW%*xlUG2TaiN(z; ziXIh98F!XmpJcJ1GwExp-pOBu>NnGEg^u{ID>zoJeb{+MZJ@aBuEf>n{WW&@DXXs! z2>Q=;^n~^lbIS?;I?NrHToxAJGoij+BFtd&0VQ+m$C@vxa^DV)al#p(@k7vREN_eMRJ#8HqKA(vF@y_U?%F{B;%z2WQ`o z%;>T`XWH?3-vsT*l8V>I^UMo1Lxgt!xx(*Ry?S$`NQZ4-!i7(JP0ro(Y&y%e@9FPI zse1c6yCQaZXQX!Iuzj#IO8K-$pt|UgIM=5P&Tb!z7u-b+`V8efY@Dgle?7%^K97?- zt{(e%(dCwTe2N>jFZgy`KJmO{VP|l8<=OWM29`E^d;|aSP5Wzlwy(rW&c5W`2i~^@ z@7w485Lq$fbGqUzo;@-ad-8HmKVGxi=Ej6SC%o+H6PC;_JXz5e5&88kqg_DDYVGXg zI+vXv?XLffKH&CFi}l1cW5MdTHBy{hmzj@PW!Ly!(EIr2pyAuT)bBTxr}!;;l6=ry z;Qf<-6V^+9+!xqYa$jOaO6C3^*2|_97M`k+E-sw$>{Fj#mEOI7g29r;GFvYG3-h?) zcxtguV*ks3D=O<-pUmIu5-afJ=L)lcPOaT{3M`mwzFK*TYZ)-l*5dgx>7Kx~r61fU zonn3KRCp{?LcRIm58a}R+dn9udzn-BA!mzRm0n<^MIBd8-9utf{wj|8s7&&GYkxyFUHdAz+m1uqN2Z<#TtjP5tiAD<_F16<=&M z7h3+(AgG(0+sfvPP7KeI9+_i1Ge7YEQ^=jU=H->-623KW9MqHvpLn^VU4q%H@atRWZ&@35 zchk#Vb=&glPL;L6QIKR$e)<>?C#_x%opMyO=m)?G~^jQ68-=v#!gu}kA-dFTw z{k7bPBZq7&v%@Q&FHf!7vy*jU469K7T@Jf@b4V(l=k!P;gg1$)znm!L#UWTgHTC>8Uek zFtT;byT18IQ~DYM7p{~(8tYks`b#yZmRy|XI{Do#L*q$$rAmpnp4?Y^ad4gJp73u^gyf06*qTxEU#mb&*r+AlQO;4Cx=bo z;?s>;lg#cKT@u=!xxU7tN%Y`!-L8vw|9$$y!WJaks$KD^N@{=7-iHqq5A^zcX*+!7 z_m{N&{~RJj@9dtve_h`8+3JG)mwW3SX6rAWyThFS2cJafDvLEWu6hx6Cs||`T z>fefgEB1P*u`qRgLB2zS+Ir=THa^k450BMGRC8Qbo?af!kgnL_{>qWtlj~acpUSGL zWz}q}&mC0g=QqpdKV~MUv+j1*z7_II4uxcJ{5q3AscTWv85PzLoxY8C&a*0(?S5G~ zNnm--s!i6RZiR=A9_jsCyW8@KGOLPKb46KRynKCgXwyZdnxDBrt`EM}HQ6sUUGn1V z=JR$+dXLW>Qff1@jaJE?rVuI=IA!AAH#~_!OnaU@-KeM|xr;%y!CIraE^*c7te91Y zmz>h{XRYB7t&!2JlaQI-cUkO^1h4YRkb8oQltRAp{S{p#)!!&}V$TH~$>g8$*G{XZ zdEX8d{$yBFUt{A`@iy*{W`pq`fo9`lFO+9+MoJ$icr%sTz znWz4Qt=~}n=<2hcZ(qN-IrGWS+}(A-do#s2I&ztKpWK-cEnTmEt$X*)We2C++*kI} z`0Kh`g8VyJ%8g!xYsqEo-eG)YSk7rrCXWf3P9Z;i|LKg6Ro@Nm|k>cXQ`T)EsdN(-zmw%!}3DVd1go zhf2);jQFL8c(g7GTDJa4s<&*dc{3*|W#5-lr|=nSUj2uRgjfFUT6CPRvN3R~P1BYB zO-;-u^WN|tUvuR_nTm&?oYBlrzxQZdid@g6{#R0Fzs#NotHopY?q%7qbytl3MYha; zhh}d3EWhB^><124j$73!{Mu6}m;BT&YEP&6gai4C-;eKncW3hLRcohxU6vOtQ6KKj zwDP`lYrCJT_G{yY4f?xTuVg+il90Hb^=WPNi^!yVlGhU?y^aZdj=Uts>M+Ckgn&q# zE9aldEs-ACf9f>DGix%d_@`YenVs${+k8WGc}7!v$Dz`sy?yP!MGtu%@;SZ2;RpM3 z-k|P9vogH+*LKN9O|{#iRhAL@<;Sk)H<#4Eh}?O;Hs@_lz}9{>N74DQkG`*doqPGN zLxOKoeDZRh9ZHekC+Eln>&8CMekHK&Pl?1~#{4ktEqi_A4Wr|irY)NhGwpX8+hK!6 z-_I+~{p|T{a?9~qg^U-cCZ7#+xb<%P2bmpSPu@(hDw_8&uxq`f+3M3bbE{`hh@E&g zpfx0+^jN)S24_Y5P3atwN1_WEwoCj-`&`KsuVl`+-R?kF{jwcQAFiw};8#eR*~56G z{N$yUEnCHOI$i!{#WYNm%QvED^-(+ZG{@_}g z;L`uxcMmbmoVUwy?`hs;PJer(y;3YKe^m1`Zt}It>ez_PIP@}*tNpRu ztV4l}|1t&sue;+b8-Mlto||tO+O*1Fn!T+meOuX6^d>fDcYe-oj+ofn9QBtrx9k5n zr_%c&Ws9%!pT1XzrWG!dwN*N7@ZePcIeoKhw|^Zj4PW{CYSM};x_>6vidw$ed9e8~ z`;{kO*3F99>iJB{O`uub<*~-c(&bX0esEpgtKjm#JUi>&<;DebwT#2PnOT=Q9q!#W zU7`AelRVetmk% zy}fVtu3c-Qzn2spc%ap2uq^-N=6TCIV$W^MzVMxMtxP4O(~EaCOCL7>?l~m5&Z>R- zzZ4GpnEE+V6Wy0P|M>FsMM=hcKaW$txU|I#s=224nopl|t|#qAz?Gjn^$&Bh?BoBw z&f|7v+U;HO)0Xe#RacXkSde%&OTK*a+@{X!xo?wI=Xzz=7~Q)z{dT48%O!74FIU?y zJ^yC^D;vKx72-#-yo0xG%2r+NKB;v1UuSEvb6e*L+_8QBv;MpON1n+lw~x=ze7o~Y z@|J$XSfRupd%qbba^<%O`!APN;Qe*~-SL^6tLEMde$3mQ_{8xX^6B#Kd0&^z53Q8o2!DR!!LfFi z9j{}h?ku-iS8LbR{^4VJx#Q*I0<*M?IUQD3<-1!;$e7#wYGk=klbrl&**E#t^y;_k z)^tn{{<)96qg8djNl(nyt6z(zSQpRTU%x-IEyS~O{@SMU@P{6&cpV&mZm^RwS|+t` z)t|fT&&TbUU6opY=OW`Kp-Ik4ECG6_eyZ&?>3ZShd-+r5?MDl88sE!h^K9N>VEkzN z>U;Cr{~QPgK8fOSt!T+p)!SzAs-_d*`0{I@6$C52E-pS5)6R zevVDKwZ8gW+Qw~}yZ=g_itc|rtN!;-^@vlpJd9;qznMI1@G!sXvCrY!#p5e?@vbQS zllC_+S~n;_c8hkPPU3M`{?o-u z!lx4JzD~6LczW-|3;n%1&t6Qs)So}S;>!G^FXr}c`QGAU%4q&6Fm}En$C3C67mS1x z!XEyZu=(Yk|BMaoKA$lAI>v@((-mXcq$jTr;NiEhHRjj-@8+vZS4~~>ChDHW z%Vysq)6=qi^`AY}y!3Xsyty&!0oN>vm^Dv=R#dE#a95vmQB9pyH+1>MV~@HT`np!H z+T4=vant8ZRieL=b}9&lc7sqeFxlp^b-zWDITK)oLIgMq4!>boUajF-Ps zy7^j1Pc3<>sBE&>{7#v*!50EwyNIhUV7`}hOs4aq=39T!)m#aYA8fshyqn$!9^1}R zf6-2BTT;&|&qcSGOM31u5oCVsWRTuB!`nb()i;SnTr)xxJ=c_ktv#y{Sj2PhBa@ZP z2g`bcLrF!4yVr|wy4v{*h=-h&AG%6d2CJ0CFJ z7v5^>WH8D1oxt)d8J{(*67)oiq;j4ux^c8&{q!cktur?VPp&*wk+eAEh~~71LS;Tz zmjrM4Zkc$Kp+n4Pn!+L(23`&|_EwHni-HfbPMhXiFUHfEez-|dVe?ux`}D&?&S{p+ z2`ke|6cU-dcRrAR(#dBwxs$;=XIJCK83B?C+6}5{dh0fv6pT2^r!KrtTXMdFvYF(B zg}WRQc&1EG+O$pGv?EzzZP4$qQd6fRZA-f9jo-{%on+j+a~5aLmh6@iN$r(eZ}=Z5 zP_Rk&knd@(tv6f3K6&~{-e``F&55=J+vZ*5TzYeJ`sSa-(~ z1^b`oF>$Cc72nM{xMjaI!)&!o>4x_|{a;_bTDiGUJmK5VnX~t2+{?Z5d+Gikk9Tbh z-IJLXakuEQj=A}=<==kg{3|Zryel@|)O@XPmi*tg(s9J)i%7cjj?>y=nhvpWPq3Hs17g*{csl|IYv9 z|NLHWg{*{ecm(Uy2g+vN+SM8SEibfv9QYn>6`N3d+3WY6v-{)sMp(XiE52SlKks_) z{#|?S>4bTokDnD&w#}}sP~hdozq|^UoLSe%`+QM!sq(Or)URroeq#Bf)>BI=CO&#t zzwO-zr_jAOZ?Hdb<@=zd{84GXa$KMDlJ+Gl6(?O{bP=-UP_mx1H~RAhzArEA&da_y zxpO=7@hji2$R^m`VC-A2m3d1~tyJ45Ge~*<$!LzHs=tEHZVx~Iz%l#N%*zr>uf{H| zl`-b%e~=`=6!fX7VTx)+_Xa_;Di@#R9Vagr3QN}CiKyV*y-aM|^am%MvRZq*>I}@6 zsm(dIGPwU;UFoiVzZrWEedD`$Q15q7$A`_P6K-CTk=!2D???QC!c7gjKo)~WsQtD65kVZp<| zQ%lzd&&H>?B>@3bd z&xtGkzP8}Qgv5v$vREfS-QB;m zIQi-u{n#6qg%(T~W!z-gM6=pu&nR`34w=8OL|CLz@LVvlHcmCq4j4)W4 zW5#waG1{J??)}jdSCcOP`0(|=`0Hn9-#-0ywPj;U%U<^zhdDae{K~e8}sBBw4e}bH$ z%krohMK9V$^~EnAo8ERRJSz}LzpeSUQ(;}KP3-dC<=&0ljtad7o;uIDPVDVcea|udi}S}X zuaAB`yMFrFvn?AJi#jiSdhJ%Heds5aI1hnCSF7}mXWyT7byuVGo#u72i~1Y$=D*wF zcyGC|_64?|EcFYc_;1v1zFoX(@201Vd5tbBPRo>;_H#i_rnzvB`0g1Sa=ownRqx5MX51#q@T{JE3 zU)9!skE=G%x|itic&e9lnHXz8$AX_$B4vIW650+o1${Vw6l^rAFOL>j-Qk{W)s}lXJFjw`E|CEbgWA9zO6m|JK3K?4{YIUgDhBA1~eerqzN!@1&mqtM!7M>7iddP0HgF7ifBH zWYvn66jayYQrDhyi!=Kti%h-ilT~HW-J2Cwu(}_NF-r;Ev|Rb>wEpb7C$fsCT|2Z; zduwW}b+6A2muUx`uCx?diq0^uSlBm_<9V=`)aer~?3sbapQe@^?^vpPb=~~FWEKC) zMe24peIvaBG>*(+@O9vsrSzw0$Nfk9v*Prpb+7gBoBaELNJHN><=GAkd=EWMRD75w zRsMR7KfAQjtGDOg3e4RQDo{D$T$Wo<`HO!nioVAsrbqo})L=HVFq^LUkwvRMa`K&R zf_2x|&j@*%xNXtGLiw_tL9-`acUS$maIKBYH)hkrcbA$R&*Ibc`d71yaRQ6SnT^*x zHa(i+eVUtPw{&gI-Cje?{);>PADrpQNfZq}F(XZRLZl<-SDV;#`Qfjts<-c$QE>2hh;se>SV^J1 zi*piH+Sk`tXodvav&pSGl$BS&6UsXAgpcByFU;|6iAuA$EL3ttcz@0G5IXiULq@+x z?5z0mo1GR*&oaztiSwCZ`uJ+EecpSm`cLPV`_~^Zw%xb-ROHrg<)>wNBH|1rBK%M1 z?u}~uJ=f&JC;NW|rHMZ(w$IsB=o~fkN$Y}DiqEuoHcl)tsn=2duq5NOY37b+7Y#xU zW>}taHja7iRA4*H#rUeUfAZTMmA&<=zAp1xTKMy7@CB~W2R$FQvAxua(TgBUR?h=ZR3Rg`LCa@t>3m+d;4C=_op@M zek_&V^Y#0*)lav4dMxv>;PuzmDGtT9+>3(GM4k&M`cayev$*^~(aY!G!t)d-9lu(_ zUc_aX9= z6e%r^I{NzMi%ProOwQW%&&9+qFmVrkU+ zFFK>xL)*f9RrKwMG>@qcnX4<09(Ca`+*kJctZTN!xl5MMHJ&Y;md)0-(C>25*{FkW z&HSnpuRUK8lK*$-cbkf5TR8hRXBqFEap7aV)U~yB?@X(nz2we%pX9AL*E>G>&8Ow| zwSP0dobeUhoxNj;8K-;S$GDnTOuRelmR|U}x~}J;KpEfB8P8_$s(a09l6dR-@$IL& z?SE|+E?i$Cp^@|G7W@513AV*+yuKzq6mOawVy`M1DceXP z%eWux)T_U+F>8kBd;TT|enSC14$EqRGoG8brwDs;d569_GOua<2@XD{{kAXUBwXyS z^*E$AMD5I7v+jM*hs4LJ4-1o+E83m%1UEX>OVGCTWR zs!M8%9&P-v(az&y+MlKNEt5C-NBNr&F6fif(-QJUY*(G=fh;RNaq4)VDi>= z2aa-iZ8G4onfJ`>T3^1@>({=%syldYxh|D^{c*{%2TNjS=YL)n7?Ay|&qtMyYwI@& z4)*%BNj(25-9i;+mDLA)QR{!=dphErRe{56seLETDX?XjFI1fQ(CqNK<%&*+PoL3Q zHsOWTqQH8Gg5{fI808kW{CB(gN>}O7+&ZlTOXa5j+i-JTI3MHTpMTTB&xXA&vW(U} zB)g@?!G+sJXZPCEjdF*Tj~-jPIaA{E;a`!*T8%v9TYt>36A^#!UB6&|MSW0XIlBg{ z3zJeQmrQ^{RL}IQZ};q5D_eH-^=!4f2YWaSvyUYT1SrA@bpDgHCctf(;YsBwyLVN|e$ut# z%h(&PoT2cqWa|gB%{)_^kN^88t)R5W;&bNW`t5tx&bo8psr~M!XMRS2LRio7#WMcfkEDg@7 z_CHmh_U(|e!P|v~h732XoD6)PH0fQt93@c5dD`&Fj)yu}cGaxHtb2SaUEUP~$<;p#$zM zZ@!(4-Fhx`+6=}<`SUWFK^jkNxT@~3?v=DCchM=4*`sss6l1dJ;cfiO83QZbO)~ZU zPfzW9&cAhes=j~yy>;83+AKM~LS{GXzuI{|O{I=9zq7*EzRsHbx%W)d!tG@RGxeVv z-tAg=XAe)&`t6PE2RbfSUOgY2GKrn5Db?t}JdwOj4@CD{&baL$rQ+g!^ZHi)ZI-j$ z<#w68DDwZ>vUL}0pcuy{y%)cP;&;})&bQQPRhN6np>%=e!-ci=Sxf6%lD$`|Zax+I zd!?4d+i0&S?RJ(0p_A87yS#tu>ePsK@ z@>GRib+LQbh3`K5XYKyD@XK7i-tC7rN!?!)d+d1}pQX@M2B{SP2^$}N=hkg%e9V0Q zfBk`TDcde6X_WhAU8rf9bL91@0OzTbYI%DXuD^bP<4MhY-Me1rjQ-tMyD>dTE-`-A z;a=AFRxGg>)fvrg7A#SjcB^)>$rY*j-#@oSz0x|8#ZVJr;>TnoZNd|5k#BI^BdtpP zUTNER7REzH7nbNW%AfJ%RA5qh;l4^nz`UX5UdfmGgh+uHjuzGGYjW%!k{>48UU@7~ zT`lt^q0{~7fjc*?<_+D{}kC7x8!29?>ozLI?0I7Pm<5PU@!Ec zR?+`u*b)xim-S(Dl-Ez@KmD5Tr=wm$^r@3?Cng%@JBYVR6h_#-@%iy}?dNFD4e_@l z4}{7ITueL^{!26``)a}Ky5P5qqD=2`c1}3mwJ6Fo?5@nUkI(g|pOs^ov+3Tlv){vJ zE_=ExD{t!UnA$kSh9f57TKo3r%oeG;y~Y0OL5sKblS&gfVp|S#*LOZi5qi>j#BY{% zj=HbxJQoqZS<<|}7AQQ|Vovf=)H!Bx>}H^V@rzZ*nPzCbf0?qd<%T{Z*D2mJ)!{`x zERTE|xi!5#e&B0jTEOGZ;!vg|k1xdaAo%i|% zELqBz|Gv>UV!6|WCg)k5G8qTI+h%;+eoE#@+Jc4KKHoQ&yv`Cf`AKE^32U}}1{aqc z=_|hL@%BQQ$;Evgi~dg!@_%1hs9XD0KS(MfGp8}(I`eLYiO+t#-4r8!>6MB9$FGNu z-~79`^=+A$&bNq_o#ku>H$!+NxhKs0`0{`=GE}{zd@9OZLBQ!R1A}n%uH3xBv9qP#E3)^2hp{KH_Tv%5P7p zKT~|4b<%}LADwh*FSsuaur2-!6MH|J|#~6O&ifhhCNqd%1aO0Y}Z@Wx@AOJVACh zrcQIIN8$OhpH?}W)~rci!@kPrO!CH@fToxWa;}_TB)klc2Qb;T3Eemx=#(z#JLP;y z>ud}8*~gRr@5q_8=CjuH+s%(PO{{}bI}L7Va(rEp{5I++XZhy(SLseiHyQ3Q(hd3W zFh9g^WtC^aewVpEQJ*I(C~|AoUOapwAfis{RDt~(7>X zj_LpASIk@3`1z!m>4O!sPygYQDp>I<)@<&({@?E(G50-w+w$>peaNNHN2@j{?3c@% zpWrTUAuxYM_NVJFqyFdze>hNoLFewe8JtIaZ;MFqYbjTFuD+5VF8zJy-zAmSQ;uK! zJ57I6fRYo}x{3LThaSIB-QMkg!TE&bhrsJOnb-Ijwll;YQR*|>6KP$;CVyo?>|M5# zf1^LQ*glV{V=1{9?QOeER_c_Fv6nsbdHNxRnf-ZGgzJoa+dtOld1HgHo0l7*B{oWN4`EPt5sl(2IH&_Yya77H&*K$*xZt) zvVHsYZD-hWPd`~;Jg3WZg;P_7=5ki^XA748?5j`KTGo=*_s|6c5KP4AIq!PxLPI7yU=S3cVQ;}3HWcKItb={NOo?NWa;f#5(ZpEov zv&vT6*JYJ%cbTbzf2| zQO?zVf>7_ChxaG`-ji(`4bX4c-`4>rLa-UY2BKffL-sWFN1nUd> z8-$Ox?X2?%ewk4t+R%AQIDeUZ&`c|rU4Ye6gL6dlcYvckWgiod@aV+(_mfpv~UhKPbs`6Bx-05DaE9<&uxC!WOKBD~T z$~k7?pakn#6Wl5c4{g>7_#5!0;k^3ZJGUm+M>lgzTrfP>cC)H8VuAem_L~_;7(VxO z@Jw6GlHK)KY=PzshsF<0n>MQn?7zgKf9dyP~4!d-uYG(L4NIN|T~adCRhCdr0F zFB^Mn@74b>snG5VJH;9C-7q26HE{-OS+zLFDtE^M(Z&TznhpJvO+x$I6Lzp?@!qaD z@bY~7TFc~|Z{fe6pLo_~$@>3pfYQC{1;6aQ>Y6!Bo?khZc1Qa1$7nUBo!Tv#p6o}r zJ*^U+*wXYQ##P|cx|2^V8#d2rU_8$l^CR=9VZ&;E1D>?{_q-2o&bPWfn`w@b$FBv4 zW;zE>ZC)mCalkPCX-`VSlOB!bTHO)6wdZ@LE;Z+#wr~BhN8tg7f+nU!9Cp%WFn!ZK zJ#$lw{Qf4cIn5mTJTGgRrd)eJ`-$b1_ zR@D&M!pw2d-}$RWx6B01d#?OPC+V=NZ)je>@vQNhsX24@<;&bmoBB=hT)oiDV&?eU z2XC%IW zL|WOW|4J%>+d}W&Xn#N7{=eA#CvU{9KfKRAo9?%H(M$PTW%cp7*T1dZt-b5t%UR!! zTrJ!FK8d4!$K0jrtw%zw()NdDOWr%Q>0ju5Y%@Z`q_bfBU#wf88YUwr7!B@0s^8 zi#jeAt#?rfY!5hOIr~{sqq9VwM5A-Uszc{4F`YPlweIni--=6A7 z6IIP0;QApI=+9Ii)V)xszFeZ+qiEs_-WZ_n+J?p4m#55!O3(%W)vU*79; zc6-cpW@UX%*uOdK`LTcXsrEOEG7mBB3t79gI@-+CqRUyvFj4KtB3+$7Z>4t~`(P+^ zB{%wR-W~tdwe36HxR)$^_2QV=wT`cS^=kxjM1veE#DAXLqO~b>&OM_9(n~ECmY<`<}e2`DoLhHuraxuYqHV1HC(FGWZ$>rOXs_( M4^DAC- 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 delta 131712 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

    UrFE$2MkzW(5<=bH>zbVEL>ofWe8 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 SljAlpH8JB-Rdw}u;{pJ|D`WHk diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index df80997..a4a8b56 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -171,7 +171,7 @@ If we disable all security features, we get \emph{Opportunistic Mode} ZSSP. This \hline Ratcheted Forward Secrecy & \color{BlueViolet} Yes & \color{BlueViolet} Yes \\ \hline - Silence is a Virtue & \color{BlueViolet} Yes & \color{Red} No \\ + Silence is Golden & \color{BlueViolet} Yes & \color{Red} No \\ \hline Key-Compromise Impersonation & \color{BlueViolet} Resistant & \color{BlueViolet} Resistant \\ \hline @@ -191,7 +191,7 @@ If we disable all security features, we get \emph{Opportunistic Mode} ZSSP. This \item Forward Secret Identity Hiding -- The identities of peers are always either not transmitted or are encrypted with forward secrecy to an authenticated peer. An attacker cannot test candidate static public keys without the corresponding private key. \item Quantum Forward Secrecy -- A quantum computer powerful enough to break elliptic-curve cryptography is not sufficient to decrypt recordings of messages sent between peers. \item Ratcheted Forward Secrecy -- In order to break forward secrecy an attacker must record and break every single key exchange two peers perform, in order, starting from the first key exchange that uses a ratchet key the attacker has access to. This, among other things, improves forward secrecy under a weak or compromised random number generator. - \item Silence is a Virtue -- A peer will not respond to any anonymous, inauthentic or replayed message. + \item Silence is Golden -- A peer will not respond to any anonymous, inauthentic or replayed message. \item Key-Compromise Impersonation -- The attacker has the static private keys of two peers, and attempts impersonate some other peer to them. \item Compromise-and-Impersonate -- The attacker has the static private keys of a single peer, and attempts to impersonate them to any other peer. \item Single Key-Compromise MitM -- The attacker has the static private keys of a single peer, and attempts to become a Man-in-the-Middle between them and any other peer. @@ -218,7 +218,7 @@ If this is the first time Alice and Bob are communicating, Alice will send an em Since the ratchet fingerprint is included in the first message of Noise XK, with weak forward secrecy, there is some concern it could violate identity hiding. However, since the ratchet fingerprint is a constantly rotating ASK, information about the communicating peers can only be leaked by it if the same ratchet fingerprint is used twice. In normal operation, not only will the ratchet fingerprint only be used once, but it will be deleted with the ratchet key when the key exchange is completed, providing replay protection. Furthermore, if the same ratchet fingerprint is used more than once, all this will reveal is that the same pair of peers are initiating a session with each other, and only if Bob's private key is compromised. -Actually this protocol give ZSSP a lot of useful properties. For one thing Bob can require Alice to include a recognized, nonempty ratchet fingerprint in their first message. This is how ZSSP can achieve Silence is a Virtue despite the fact that the first Noise XK packet is usually anonymous and replayable. It also allows Bob to authenticate Alice's identity immediately, as opposed to waiting for Alice's next message. This protocol also is integral to how Alice and Bob are able to coordinate the ratchet key management described in \sectionref{sec:key_management} without any additional round trips. +Actually this protocol give ZSSP a lot of useful properties. For one thing Bob can require Alice to include a recognized, nonempty ratchet fingerprint in their first message. This is how ZSSP can achieve ``Silence is Golden'' despite the fact that the first Noise XK packet is usually anonymous and replayable. It also allows Bob to authenticate Alice's identity immediately, as opposed to waiting for Alice's next message. This protocol also is integral to how Alice and Bob are able to coordinate the ratchet key management described in \sectionref{sec:key_management} without any additional round trips. If Alice has corrupted their storage, Alice can either send the empty string or send whatever corrupted ratchet fingerprint they still have to Bob. If Bob sees the empty string, and Bob is in opportunistic mode, Bob completes the key exchange with the zero ratchet key, making it possible for Alice to connect. If Alice sent a corrupted ratchet fingerprint, or Bob is the one who corrupted their storage, and if Bob is in opportunistic mode, Bob will ignore the unrecognized ratchet fingerprint and instead uses the zero ratchet key as the PSK. When Alice receives Bob's reply, if Alice is in opportunistic mode, Alice will decrypt Bob's reply with both the ratchet key they intended to use and the zero ratchet key, and go with the one that successfully decrypts the reply. This allows Alice and Bob to reset their ratchet keys in such a way that an attacker cannot perform a downgrade attack without at least one peer's static private key. And if Alice and Bob are in persistent mode, a downgrade attack is simply not possible. @@ -475,7 +475,7 @@ At the end of this section we will have defined $\zeta$, which is the high-level \end{itemize} The timer system has the property that all timers are generated locally, checked locally, and are never sent ``over the wire''. This has the advantage of making it difficult to impossible for a remote attacker to manipulate a peer's timers. The system has also been intentionally designed to make it impossible for $\zeta$ to ever get indefinitely stuck in one state. If it could, it would open up the possibility that an attacker could intentionally cause this to happen, which would be a form of a DOS attack. The rekeying timer for state $S_1$ is randomized to deter traffic analysis of ZSSP, and to prevent peers from simultaneously entering state $R_1$, which would be redundant and inefficient. - It is important to note from this definition that there is no such thing as a ``heartbeat'' in ZKE, nor ZSSP as a whole. ZKE, on its own, does not require ``keep-alive'' messages to be periodically sent between peers. Instead, the only packets ZKE will automatically send are those which are strictly necessary to maintain strong forward secrecy. This makes ZKE ideal for applications where silence is considered a virtue. It is up to the upper protocol to implement a heartbeat or keep-alive system if it is deemed necessary. + It is important to note from this definition that there is no such thing as a ``heartbeat'' in ZKE, nor ZSSP as a whole. ZKE, on its own, does not require ``keep-alive'' messages to be periodically sent between peers. Instead, the only packets ZKE will automatically send are those which are strictly necessary to maintain strong forward secrecy. This makes ZKE ideal for applications where a silent protocol is preferred. It is up to the upper protocol to implement a heartbeat or keep-alive system if it is deemed necessary. $\zeta$, being a cryptographic protocol, also has many rules relating to how it must cryptographically process incoming or outgoing packets, and how those packets can influence state transitions of $\beta$. Below is a numbered list of all of these rules. \begin{enumerate} @@ -788,7 +788,7 @@ Similarly, the new ratchet key and fingerprint will not have been derived by the \end{algorithmic} \end{algorithm} -When packet $X_3$ is received, Bob might refuse to start a session with Alice based on their static key and identity. The preferred way for Bob to do this is to simply do nothing, and ignore Alice's packets. This would follow the ``silence is a virtue" principle of security. However there are some applications where, usually for UX reasons, Alice needs to be able tell apart having a bad connection with Bob from Bob rejecting Alice's identity. If Bob always goes silent Alice has no reliable way to tell these two situations apart. Since both Bob and Alice have the key exchange key at this point in the handshake, it was a very natural and secure extension of the protocol to allow Bob to notify Alice that the session has been refused. +When packet $X_3$ is received, Bob might refuse to start a session with Alice based on their static key and identity. The preferred way for Bob to do this is to simply do nothing, and ignore Alice's packets. This would follow the ``Silence is Golden" principle of security. However there are some applications where, usually for UX reasons, Alice needs to be able tell apart having a bad connection with Bob from Bob rejecting Alice's identity. If Bob always goes silent Alice has no reliable way to tell these two situations apart. Since both Bob and Alice have the key exchange key at this point in the handshake, it was a very natural and secure extension of the protocol to allow Bob to notify Alice that the session has been refused. Packet types $X_3$ and $K_2$ represent the final messages of Noise XK and Noise KK, respectively. The peer who receives these packets can be sure that the remote peer has derived an identical Noise key already, and so the new key can be reliably used immediately. @@ -885,15 +885,15 @@ We want to minimize the number of Noise keys alive in memory for the sake of per \subsection{Security Flags}\label{sec:security_flags} -ZKE has 4 security flags, $\pi_1, \pi_2, \pi_3 \andb \pi_4$. Each of these flags is a bit that, when sent to 1, change the behavior of the protocol to be more secure. In particular, setting $\pi_2 = \pi_3 = 1$ dramatically improve ZKE's post-compromise resistance, and setting $\pi_1 = \pi_4 = 1$ obeys the ``Silence is a Virtue'' principle of security. However setting these flags to 1 come with usability downsides that could make ZKE unsuitable for particular applications or particular users. Hence why these features are flags that the upper protocol is allowed to choose between. +ZKE has 4 security flags, $\pi_1, \pi_2, \pi_3 \andb \pi_4$. Each of these flags is a bit that, when sent to 1, change the behavior of the protocol to be more secure. In particular, setting $\pi_2 = \pi_3 = 1$ dramatically improve ZKE's post-compromise resistance, and setting $\pi_1 = \pi_4 = 1$ obeys the ``Silence is Golden'' principle of security. However setting these flags to 1 come with usability downsides that could make ZKE unsuitable for particular applications or particular users. Hence why these features are flags that the upper protocol is allowed to choose between. Below is a description of each security flag, and the security versus usability tradeoff that occurs when it is set to 1. It should be noted that all communicating peers need not have the exact same set of flags. It will be possible for them to communicate even if their flags differ. Also, a peer may set their flags per remote peer, this is why flags $\pi_3$ and $\pi_4$ are returned by a function that takes as input the identity of the remote peer. This would, for example, allow a user to place much stricter authentication requirements upon a credentials server than a friend's laptop. \begin{itemize} - \item Hello Requires Recognized Ratchet, $\pi_1$ -- Used in \algorithmref{alg:recv_x1}. When this flag is set Alice is required to present a recognized, nonzero ratchet fingerprint, or else Bob will remain silent. This satisfies the Silence is a Virtue principle of security, since a peer can only acquire a valid ratchet fingerprint through some pre-existing trust relationship. However, this means a legitimate Alice must establish out-of-band an initial ratchet key and fingerprint with Bob. Bob and Alice can share a one time password to be used as the first ratchet key and fingerprint, or Bob can connect to Alice first if Alice has $\pi_1=0$, or Bob can temporarily set $\pi_1=0$ until Alice has completed their first key exchange. + \item Hello Requires Recognized Ratchet, $\pi_1$ -- Used in \algorithmref{alg:recv_x1}. When this flag is set Alice is required to present a recognized, nonzero ratchet fingerprint, or else Bob will remain silent. This satisfies the Silence is Golden principle of security, since a peer can only acquire a valid ratchet fingerprint through some pre-existing trust relationship. However, this means a legitimate Alice must establish out-of-band an initial ratchet key and fingerprint with Bob. Bob and Alice can share a one time password to be used as the first ratchet key and fingerprint, or Bob can connect to Alice first if Alice has $\pi_1=0$, or Bob can temporarily set $\pi_1=0$ until Alice has completed their first key exchange. \item Initiator Disallows Downgrade, $\pi_2$ -- Used in \algorithmref{alg:recv_x2}. When this flag is set Alice is resistant to Compromise-And-Impersonate and MitM, because Alice will never allow their ratchet key to be reset to zero. However it requires that Bob never accidentally corrupt their persistent ratchet key. \item Responder Disallows Downgrade, $\pi_3$ -- Used in \algorithmref{alg:recv_x3}. When this flag is set Bob is resistant to Compromise-And-Impersonate and MitM, because Bob will never allow their ratchet key to be reset to zero. However it requires that Alice never accidentally corrupt their ratchet key. It is recommended that $\pi_2=\pi_3$ for any given pair of peers. - \item Responder Silently Rejects, $\pi_4$ -- Used in \algorithmref{alg:recv_x3}. When this flag is set Bob will not send a session rejected packet to Alice, but instead just silently ignore Alice if Bob does not approve of their identity. This also follows the Silence is a Virtue principle, but it prevents Alice from knowing Bob will never allow Alice to connect in their current configuration. In this state Alice will keep attempting the handshake until the upper protocol times-out the session. It is recommended that $\pi_1=\pi_4$ for any given pair of peers. + \item Responder Silently Rejects, $\pi_4$ -- Used in \algorithmref{alg:recv_x3}. When this flag is set Bob will not send a session rejected packet to Alice, but instead just silently ignore Alice if Bob does not approve of their identity. This also follows the Silence is Golden principle, but it prevents Alice from knowing Bob will never allow Alice to connect in their current configuration. In this state Alice will keep attempting the handshake until the upper protocol times-out the session. It is recommended that $\pi_1=\pi_4$ for any given pair of peers. \end{itemize} When $\pi_2 = \pi_3 = 1$, ZKE strictly requires all users to either have access to reliable persistent storage, or have access to some out-of-band mechanism for one to be reauthenticated in the event they lose or corrupt their persistent storage. This, unfortunately, is not always feasible in a real-time environment. For one thing there are many embedded devices which only have access to persistent ROM, but for another, there are far too many realistic scenarios in which an inexperienced user accidentally loses or corrupts their persistent storage. People often do not realize that they cannot always rollback an application's data directory to a previously backed-up state, and expect the application to work. Furthermore, very few people have redundant drives, as in RAID, so a hard drive failure will likely cause them to lose most if not all of their ratchet keys. When a user can no longer connect with peers because they have corrupted their ratchet keys, some will perceive this as a bug with the application, rather than the protocol working as intended. @@ -991,7 +991,7 @@ Implementations may choose to rotate the \texttt{salt} variable periodically. Wh We have intentionally avoided involving any of the cryptographic variables from the upper key exchange protocol in this protocol. This is to enforce strict protocol independence, to avoid accidentally compromising some security property of the key exchange protocol. In particular this protocol will preserve identity hiding, since neither Bob nor Alice include static, identifying values in their challenge or response. From an analytical perspective, within most AKE security experiments, we can almost always prove that the security of a key exchange protocol plus ZCP can be reduced to the security of just the key exchange protocol. This is because an adversary which just attacks the key exchange is always capable of accurately simulating both Alice and Bob's side of ZCP to an adversary which attacks both the key exchange and ZCP. -This protocol violates the ``Silence is a Virtue'' principle of security. So we recommend disabling it entirely if security flag $\pi_1=1$. In general we expect many administrators will have this protocol turned off by default, but will manually enable it in the event a CPU exhaustion attack is detected. Just the fact that this protocol is available to be enabled at any time will likely deter attackers from performing a CPU exhaustion attack against ZSSP. +This protocol violates the Silence is Golden principle of security. So we recommend disabling it entirely if security flag $\pi_1=1$. In general we expect many administrators will have this protocol turned off by default, but will manually enable it in the event a CPU exhaustion attack is detected. Just the fact that this protocol is available to be enabled at any time will likely deter attackers from performing a CPU exhaustion attack against ZSSP. \section{ZeroTier Fragmentation Protocol} @@ -1053,11 +1053,11 @@ The Hello packet defragmentation buffer is significantly easier to DOS than a se The challenge packet, \figureref{packet:challenge}, is small enough that it never requires fragmentation. So Bob does not use the header key to authenticate the header of the challenge packet they send Alice. Bob would not be able to derive the header key anyways, since Bob has not processed Alice's Hello packet. The last 8 bytes of the packet nonce are randomized so challenge packets do not collide with each other. The Noise XK handshake packets, as specified by Noise, do not use a unique counter, but instead use counter values of 0 or 1. This creates a problem for fragmenting Hello packets, $X_1$ and Response packets, $X_2$, because we need a way for each of these packets to be fragmented with unique packet nonce values, and not just packet nonce values of $0||0$ and $1||0$. Otherwise, these packets will end up colliding and corrupting each other in the defragmentation buffer. For $X_1$ packets, the last 8 bytes of the final AES-GCM MAC is used as the counter value within the packet nonce. This essentially treats the MAC as a random number which is attached to each fragment. The MAC was chosen instead of an actual random number because it allows Bob to trivially authenticate that the received packet nonce is exactly the packet nonce Alice sent, by simply checking if it is equal to the MAC. A modification of this policy is used for $X_2$ packets. Since we use ZPF authenticated headers with the fragments of $X_2$ packets, to provide robust authentication we want the counter value used to always be in a $2^{16}$ integer range. For this reason we only use the last 2 bytes of the final AES-GCM MAC as the random counter value for the packet nonce of $X_2$ fragments. The risk of accidental collision is far, far less than that of $X_1$ packets, so we consider 2 bytes sufficient. $X_3$ use a counter value of 0, since, due to the structure of ZKE, a packet nonce of $2||0$ will always be unique for the $X_3$ packet of a given key exchange. Both peers have synchronized state at this point in the handshake, so Alice can statefully prevent two different, colliding $X_3$ packets from being generated. -\subsection{Proof of Security} +\subsection{Mathematical Background} We are going to prove that the ZSSP header authentication algorithm is existentially unforgeable under an adaptive chosen message attack. However our algorithm does not fit the standard syntax of message authentication codes. This means we must prove security under a different security experiment than the standard message authentication code experiment. We choose to use the syntax of a message transmission scheme \cite{modern_crypto}, and prove authenticated communication under the secure message transmission experiment, \algorithmref{alg:header_auth}. -\begin{definition}[H][Message Transmission Scheme \cite{modern_crypto}] +\begin{definition}[H][Message Transmission Scheme \cite{modern_crypto}]\label{def:mts} A message transmission scheme is a tuple of algorithms $\Pi = (\algn{Gen}, \algn{EncMac}, \algn{Dec})$. \algn{Gen} is the key generation algorithm, \algn{EncMac} is the authenticated encryption algorithm, and \algn{Dec} is the decryption and verification algorithm. A message transmission scheme is \emph{correct} if for all keys $k\gets \algn{Gen}(1^n)$ and messages $m$, @@ -1082,14 +1082,17 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{definition} \begin{definition}[H][Pseudorandom Permutation \cite{modern_crypto}] - Given the security parameter $n$, a keyed permutation, $F$, and a probabilistic poly-time distinguishers $D$, define the advantage of $D$ to be: + Given the security parameter $n$, a keyed permutation, $F_k:\{0,1\}^n\to\{0,1\}^n$, and a probabilistic poly-time distinguishers $D$, define the advantage of $D$ to be: $$\mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) = |\prob[D^{F_k(\cdot), F_k^{-1}(\cdot)}(1^n) = 1] - \prob[D^{f(\cdot), f^{-1}(\cdot)}(1^n) = 1]|,$$ - where $k\gets\$\,\{0,1\}^n$ and $f$ is a truly random permutation. + where $k\gets\$\,\{0,1\}^n$ and $f:\{0,1\}^n\to\{0,1\}^n$ is a truly random permutation. - An efficient, keyed permutation, $F$, is a strong pseudorandom permutation if for all probabilistic poly-time distinguishers $D$, there exists a negligible function $\algn{negl}$ such that: + An efficient, keyed permutation, $F_k$, is a strong pseudorandom permutation if for all probabilistic poly-time distinguishers $D$, there exists a negligible function $\algn{negl}$ such that: $$\mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) \leq \algn{negl}(n),$$ \end{definition} +\subsection{Proof of Security} + +Algorithms \algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, and \algorithmref{alg:header_dec} define the ZSSP header authentication algorithm using the syntax of a Message Transmission Scheme, \definitionref{def:mts}. These definitions are then used in \theoremref{theorem:frag_proof} to reduce the security of the ZSSP header authentication algorithm to the security of AES-256. \begin{algorithm}[H] \caption{$\algn{Gen}(1^n)$ of the ZSSP header authentication algorithm -- We are implicitly assuming here that the header key is truly random, or at least computationally indistinguishable from random.}\label{alg:header_gen} @@ -1109,7 +1112,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \end{algorithm} \begin{algorithm}[H] - \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we assume that the size of the packet nonce $N$ is able to grow proportionally to $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} + \caption{$\algn{Dec}_k(c)$ of the ZSSP header authentication algorithm -- Function $F^{-1}$ is inverse of AES-256. Function $\algn{Vrfy}$ is some algorithm provided by the upper protocol for verifying that the packet nonce is valid. For the sake of the security proof we assume that the the packet nonce $N$ is able to grow in size proportional to $n$. The version of $\algn{Vrfy}$ used by ZSSP is described by \algorithmref{alg:header_vrfy}.}\label{alg:header_dec} \begin{algorithmic} \Require $c$ \State $m \gets F_k^{-1}(c)$ @@ -1123,7 +1126,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti \begin{theorem}[H]\label{theorem:frag_proof} - If $F:\{0,1\}^n\to\{0,1\}^n$ is a strong psuedorandom permutation, and $\prob[\algn{Vrfy}(N) = 1]$ is negligible in $|N|$ for uniform random $N$, then $\Pi=(\text{\algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, \algorithmref{alg:header_dec}})$ achieves authenticated communication, with advantage bound: + If $F_k:\{0,1\}^n\to\{0,1\}^n$ is a strong psuedorandom permutation, and $\prob[\algn{Vrfy}(N) = 1]$ is a negligible function in $|N|$ for uniform random $N$, then $\Pi=(\text{\algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, \algorithmref{alg:header_dec}})$ achieves authenticated communication, with advantage bound: $$\prob[\algn{Auth}_{\mathcal{A},\, \Pi}(n) = 1] \leq \mathbf{Adv}^\text{ind-prp}_{D,\,F}(n) + \frac{2^n}{2^n-q(n)}\prob[\algn{Vrfy}(N) = 1],$$ where $N$ is uniform random, and $q(n)$ is the upper bound on the total number of queries $\mathcal{A}$ asks its oracle. @@ -1150,7 +1153,7 @@ We are going to prove that the ZSSP header authentication algorithm is existenti Since $f$ is a truly random permutation, it is the case that $f^{-1}(\mathcal{A}^{f(\cdot)}(1^n))$ outputs a uniform random string, $m$, from the set of strings $\mathcal{A}$ did not queried to $f(\cdot)$. Let $Q$ be a random variable that represents the set of queries asked while executing $\mathcal{A}^{f(\cdot)}(1^n)$. - Given $m$ an output of $f$, let $\mathcal{N}(m)$ be defined as the packet nonce of $m$. + Let $m\in\{0,1\}^n$ be a uniform random variable, and let $\mathcal{N}(m)$ be defined as the packet nonce of $m$. \begin{flalign*} \text{So } \prob_f[D^{f(\cdot), f^{-1}(\cdot)}(1^n) = 1] &= \prob[\algn{Vrfy}(\mathcal{N}(f^{-1}(\mathcal{A}^{f(\cdot)}(1^n)))) = 1] \\ &= \prob[\algn{Vrfy}(\mathcal{N}(m)) = 1\,|\, m \notin Q] \\ From cb61b1d11966c8e68d911a2b7bf50e1b12f90224 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Wed, 1 Nov 2023 15:47:59 -0400 Subject: [PATCH 35/44] improved expiration handling --- performance/src/zeta.rs | 122 ++++++++++++++++++++++------------------ 1 file changed, 68 insertions(+), 54 deletions(-) diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index ce2d6d4..e6199a8 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -38,7 +38,6 @@ pub struct Session { pub(crate) s_remote: Crypto::PublicKey, send_counter: AtomicU64, - session_has_expired: AtomicBool, pub(crate) window: Window, pub(crate) defrag: [Mutex>; SESSION_MAX_FRAGMENTS_OOO], @@ -236,20 +235,12 @@ fn create_ratchet_state( ) } fn get_counter(session: &Session, state: &MutableState) -> Option<(u64, bool)> { - if session.session_has_expired.load(Ordering::Relaxed) { - None - } else { - let c = session.send_counter.fetch_add(1, Ordering::Relaxed); - if c > THREAD_SAFE_COUNTER_HARD_EXPIRE { - session.session_has_expired.store(true, Ordering::SeqCst); - } - if c > state.key_creation_counter + EXPIRE_AFTER_USES { - session.session_has_expired.store(true, Ordering::SeqCst); - return None; - } - let rekey_at = state.key_creation_counter + Crypto::SETTINGS.rekey_after_key_uses; - Some((c, c > rekey_at)) + let c = session.send_counter.fetch_add(1, Ordering::Relaxed); + if c > THREAD_SAFE_COUNTER_HARD_EXPIRE || c > state.key_creation_counter + EXPIRE_AFTER_USES { + return None; } + let rekey_at = state.key_creation_counter + Crypto::SETTINGS.rekey_after_key_uses; + Some((c, c > rekey_at)) } /// Generate a random local key id that is currently unused. @@ -380,7 +371,6 @@ pub(crate) fn trans_to_a1>( queue_idx, s_remote, send_counter: AtomicU64::new(0), - session_has_expired: AtomicBool::new(false), window: Window::new(), state_machine_lock: Mutex::new(()), state: RwLock::new(MutableState { @@ -771,13 +761,14 @@ pub(crate) fn received_x2_trans( session: &Arc>, state: &MutableState, packet_type: u8, mut payload: ArrayVec, send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), -) -> bool { +) -> Result<(), bool> { if let Some((c, _)) = get_counter(session, &state) { if let (Some(kek), Some(kid)) = (state.key_ref(false).send.kek.as_ref(), state.key_ref(false).send.kid) { let nonce = to_nonce(packet_type, c); @@ -785,12 +776,12 @@ fn send_control( payload.extend(tag); set_header(&mut payload, kid.get(), &nonce); send(&mut payload, Some(&state.hk_send)); - true + Ok(()) } else { - false + Err(false) } } else { - false + Err(true) } } /// Corresponds to Transition Algorithm 4 found in Section 4.3. @@ -915,7 +906,6 @@ pub(crate) fn received_x3_trans::new(); c1.extend([0u8; HEADER_SIZE]); - send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send); + // This session is new so the result is overwhelmingly likely to be `Ok(())`. + let _ = send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send); drop(state); Ok((session, should_warn_missing_ratchet, reduced_service_time)) @@ -1041,16 +1032,24 @@ pub(crate) fn received_c1_trans::new(); c2.extend([0u8; HEADER_SIZE]); - if !send_control(session, &state, PACKET_TYPE_ACK, c2, send) { - return Err(fault!(OutOfSequence, true)); + match send_control(session, &state, PACKET_TYPE_ACK, c2, send) { + Ok(()) => Ok((just_establised, reduced_service_time)), + Err(true) => { + drop(state); + session.expire(); + Err(fault!(ExpiredCounter, true)) + } + Err(false) => Err(fault!(OutOfSequence, true)), } - - Ok((just_establised, reduced_service_time)) } /// Corresponds to the trivial Transition Algorithm described for processing C_2 packets found in /// Section 4.3. @@ -1140,7 +1139,8 @@ pub(crate) fn received_d_trans( session.expire(); Ok(()) } -// Corresponds to the timeout timer Transition Algorithm described in Section 4.1 - Definition 3. +/// Corresponds to the timeout timer Transition Algorithm described in Section 4.1 - Definition 3. +/// Returns `None` if this session should be expired. fn timeout_trans>( app: &mut App, ctx: &Arc>, @@ -1243,8 +1243,10 @@ fn timeout_trans>( drop(kex_lock); let state = session.state.read().unwrap(); - send_control(session, &state, PACKET_TYPE_REKEY_INIT, k1, send); - Some(resend_timer) + match send_control(session, &state, PACKET_TYPE_REKEY_INIT, k1, send) { + Err(true) => None, + _ => Some(resend_timer), + } } ZetaAutomata::S1 { .. } => { log!(app, TimeoutKeyConfirm(session)); @@ -1261,6 +1263,7 @@ fn timeout_trans>( } } /// Corresponds to the timer rules of the Zeta State Machine found in Section 4.1 - Definition 3. +/// Returns `None` if this session should be expired. pub(crate) fn process_timers>( app: &mut App, ctx: &Arc>, @@ -1308,8 +1311,10 @@ pub(crate) fn process_timers> } }; - send_control(session, &state, packet_type, control_payload, send); - Some(resend_next) + match send_control(session, &state, packet_type, control_payload, send) { + Err(true) => None, + _ => Some(resend_next), + } } else { Some(ts) } @@ -1363,7 +1368,7 @@ pub(crate) fn received_k1_trans::initialize(PROTOCOL_NAME_NOISE_KK); let hash = &mut Crypto::Hash::new(); @@ -1452,12 +1457,11 @@ pub(crate) fn received_k1_trans Ok(reduced_service_time), + Err(false) => Err(fault!(OutOfSequence, true)), + Err(true) => Err(fault!(ExpiredCounter, true)), } - - Ok(reduced_service_time) })(); if matches!(result, Err(ReceiveError::ByzantineFault { .. })) { @@ -1503,7 +1507,7 @@ pub(crate) fn received_k2_trans::new(); c1.extend([0u8; HEADER_SIZE]); - if !send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send) { - return Err(fault!(OutOfSequence, true)); + match send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send) { + Ok(()) => Ok(reduced_service_time), + Err(false) => Err(fault!(OutOfSequence, true)), + Err(true) => Err(fault!(ExpiredCounter, true)), } - - Ok(reduced_service_time) } else { unreachable!() } @@ -1605,7 +1609,17 @@ pub(crate) fn send_payload( } let state = session.state.read().unwrap(); - let (c, mut should_rekey) = get_counter(session, &state).ok_or(SessionExpired)?; + if matches!(&state.beta, ZetaAutomata::Null) { + return Err(SessionExpired); + } + let (c, mut should_rekey) = match get_counter(session, &state) { + Some(c) => c, + None => { + drop(state); + session.expire(); + return Err(SessionExpired); + } + }; let nonce = to_nonce(PACKET_TYPE_DATA, c); let key = state.key_ref(false); @@ -1770,22 +1784,22 @@ impl Session { ) { let _kex_lock = self.state_machine_lock.lock().unwrap(); let mut state = self.state.write().unwrap(); - let mut kids_to_remove = None; if !matches!(&state.beta, ZetaAutomata::Null) { - self.session_has_expired.store(true, Ordering::Relaxed); - kids_to_remove = Some([state.keys[0].recv.kid, state.keys[1].recv.kid]); + state.beta = ZetaAutomata::Null; + + let kids_to_remove = [state.keys[0].recv.kid, state.keys[1].recv.kid]; state.keys = [DuplexKey::default(), DuplexKey::default()]; state.resend_timer = AtomicI64::new(i64::MAX); state.timeout_timer = i64::MAX; - state.beta = ZetaAutomata::Null; - } - if let Some(session_queue) = session_queue { - session_queue.remove(self.queue_idx); - } - if let (Some(ctx), Some(kids_to_remove)) = (ctx, kids_to_remove) { - let mut session_map = ctx.session_map.write().unwrap(); - for kid_recv in kids_to_remove.iter().flatten() { - session_map.remove(kid_recv); + + if let Some(session_queue) = session_queue { + session_queue.remove(self.queue_idx); + } + if let Some(ctx) = ctx { + let mut session_map = ctx.session_map.write().unwrap(); + for kid_recv in kids_to_remove.iter().flatten() { + session_map.remove(kid_recv); + } } } } From 8bc70487627964c62ab52adc3329f6a494d4b615 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Mon, 6 Nov 2023 07:13:14 -0800 Subject: [PATCH 36/44] Fix single typo --- whitepaper/zssp.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index a4a8b56..75262e0 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -1203,7 +1203,7 @@ Algorithms \algorithmref{alg:header_gen}, \algorithmref{alg:header_encmac}, and \end{flalign*} If we assume the adversary does make oracle queries, then their advantage bound is only negligibly larger than the advantage above. -The range $2^{24}$ was chosen because changing its value makes the protocol worst. One byte less of range, $2^{16}$, makes it possible for one peer to have $2^{16}$ of their packets dropped. This would put their counter out of the allowed range, and cause all future packets to be dropped. One byte more of range, $2^{32}$, makes it easier than it need to be for an attacker to forge a valid header. +The range $2^{24}$ was chosen because changing its value makes the protocol worse. One byte less of range, $2^{16}$, makes it possible for one peer to have $2^{16}$ of their packets dropped. This would put their counter out of the allowed range, and cause all future packets to be dropped. One byte more of range, $2^{32}$, makes it easier than it need to be for an attacker to forge a valid header. The security experiment we have used does not consider replay protection, however it should be clear that \algorithmref{alg:header_vrfy} does indeed provide replay protection. Once any packet is fully authenticated by ZSSP, and its counter is added to array $D$, it is the case that its packet nonce will no longer be valid according to \algorithmref{alg:header_vrfy}. If a packet is dropped or corrupted, its fragments could only be replayed until some other received packet updated the relevant index of $D$. This prevents a type of DOS attack where the attacker simply replays valid fragments to keep the defragmentation buffer full. From b69db6e167a233f8cc1aa1a026c956856ffa0cb2 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Mon, 13 Nov 2023 11:52:12 -0500 Subject: [PATCH 37/44] added more debug info --- performance/examples/basic_test.rs | 12 +-- performance/examples/benchmark.rs | 10 +-- performance/src/result.rs | 83 ++++++++++++----- performance/src/zeta.rs | 137 +++++++++++++++-------------- performance/src/zssp.rs | 87 +++++++++--------- 5 files changed, 184 insertions(+), 145 deletions(-) diff --git a/performance/examples/basic_test.rs b/performance/examples/basic_test.rs index 0f8e449..526094a 100644 --- a/performance/examples/basic_test.rs +++ b/performance/examples/basic_test.rs @@ -187,9 +187,6 @@ fn alice_main( pkt, &mut output_data, ) { - Ok((Unassociated, _)) => { - //println!("[alice] ok"); - } Ok((Associated(_, event), _)) => match event { Established => { up = true; @@ -201,9 +198,12 @@ fn alice_main( Control => (), _ => panic!(), }, + Ok(_) => { + //println!("[alice] ok"); + } Err(e) => { println!("[alice] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e) = e { + if let ReceiveError::ByzantineFault(e, _) = e { assert!(!e.unnatural()) } } @@ -278,7 +278,6 @@ fn bob_main( pkt, &mut output_data, ) { - Ok((Unassociated, _)) => {} Ok((Associated(s, event), _)) => match event { NewSession | NewDowngradedSession => { println!("[bob] new session, took {}s", current_time as f32 / 1000.0); @@ -300,9 +299,10 @@ fn bob_main( Control => (), _ => panic!(), }, + Ok(_) => {} Err(e) => { println!("[bob] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e) = e { + if let ReceiveError::ByzantineFault(e, _) = e { assert!(!e.unnatural()) } } diff --git a/performance/examples/benchmark.rs b/performance/examples/benchmark.rs index c304d14..415fc8b 100644 --- a/performance/examples/benchmark.rs +++ b/performance/examples/benchmark.rs @@ -156,9 +156,6 @@ fn alice_main( pkt, &mut output_data, ) { - Ok((Unassociated, _)) => { - //println!("[alice] ok"); - } Ok((Associated(_, event), _)) => match event { Established => { up = true; @@ -170,9 +167,10 @@ fn alice_main( Control => (), _ => panic!(), }, + Ok(_) => {} Err(e) => { println!("[alice] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e) = e { + if let ReceiveError::ByzantineFault(e, _) = e { assert!(!e.unnatural()) } } @@ -238,7 +236,6 @@ fn bob_main( pkt, &mut output_data, ) { - Ok((Unassociated, _)) => {} Ok((Associated(s, event), _)) => match event { NewSession | NewDowngradedSession => { println!("[bob] new session, took {}s", current_time as f32 / 1000.0); @@ -260,9 +257,10 @@ fn bob_main( Control => (), _ => panic!(), }, + Ok(_) => {} Err(e) => { println!("[bob] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e) = e { + if let ReceiveError::ByzantineFault(e, _) = e { assert!(!e.unnatural()) } } diff --git a/performance/src/result.rs b/performance/src/result.rs index 007d9f2..877ddd9 100644 --- a/performance/src/result.rs +++ b/performance/src/result.rs @@ -138,8 +138,11 @@ impl ByzantineFault { } /// An error that occurred during the receipt of a given packet. -#[derive(Debug)] -pub enum ReceiveError { +/// +/// Keep in mind that when one of these occurs it inherently means that the packet from the remote +/// peer has either not been authenticated or has failed authentication. As such, an attacker could +/// trigger any of these. These errors should only be used for debugging and tracing. +pub enum ReceiveError { /// A type of fault that can occur because a remote peer sent us a bad packet. /// Such packets will be ignored by ZSSP but a user of ZSSP might want to log /// them for debugging or tracing. @@ -147,11 +150,11 @@ pub enum ReceiveError { /// Because an unauthenticated remote peer can force these to occur with specific /// contained information, it is recommended in production to either drop these /// immediately, or log them safely to a local output stream and then drop them. - ByzantineFault(ByzantineFault), + ByzantineFault(ByzantineFault, Option>>), /// Rekeying failed and session secret has reached its hard usage count limit. /// The associated session will no longer function and has to be dropped. - MaxKeyLifetimeExceeded, + MaxKeyLifetimeExceeded(Arc>), /// Either the `ApplicationLayer::incoming_session` or `ApplicationLayer::check_accept_session` /// callback rejected the remote peer's attempt to establish a new session. @@ -163,19 +166,35 @@ pub enum ReceiveError { /// An error was returned by the `output_buffer` passed to receive. /// The received packet was dropped. - WriteError(std::io::Error), + WriteError(std::io::Error, Arc>), } macro_rules! fault { ($name:expr, $unnatural:ident) => { - ReceiveError::ByzantineFault(crate::result::ByzantineFault { - #[cfg(feature = "debug")] - file: file!(), - #[cfg(feature = "debug")] - line: line!(), - error: $name, - unnatural: $unnatural, - }) + ReceiveError::ByzantineFault( + crate::result::ByzantineFault { + #[cfg(feature = "debug")] + file: file!(), + #[cfg(feature = "debug")] + line: line!(), + error: $name, + unnatural: $unnatural, + }, + None, + ) + }; + ($name:expr, $unnatural:ident, $session:ident) => { + ReceiveError::ByzantineFault( + crate::result::ByzantineFault { + #[cfg(feature = "debug")] + file: file!(), + #[cfg(feature = "debug")] + line: line!(), + error: $name, + unnatural: $unnatural, + }, + Some($session.clone()), + ) }; } pub(crate) use fault; @@ -183,12 +202,17 @@ pub(crate) use fault; /// Result generated by the context packet receive function, with possible payloads. #[derive(Clone)] pub enum ReceiveOk { - /// Packet superficially appeared valid but is not associated with a session yet. + /// The received packet superficially appeared valid but is not associated with a session yet. /// This can occur because the packet was only a fragment of a larger packet, /// or if it was a control packet that does not go through full Noise authentication. Unassociated, - /// Packet was authentic and belongs to this specific session. + /// The received packet was authentic and belongs to this specific session. Associated(Arc>, SessionEvent), + /// The received packet was a fragment of a larger packet. + /// + /// ***The authenticity of this fragment cannot be fully known yet.*** + /// This return value should only be used for debugging and tracing purposes. + Fragment(Arc>), } /// Something that can occur to an associated session when a packet is received successfully, /// including receiving a payload of decrypted, authenticated data. @@ -290,15 +314,30 @@ impl Display for ByzantineFault { } impl Error for ByzantineFault {} -impl Display for ReceiveError { +impl std::fmt::Debug for ReceiveError +where + Crypto::SessionData: std::fmt::Debug, +{ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - ReceiveError::ByzantineFault(e) => e.fmt(f), - ReceiveError::MaxKeyLifetimeExceeded => f.write_str("max key lifetime exceeded"), - ReceiveError::Rejected => f.write_str("attempt to establish session rejected"), - ReceiveError::StorageError(e) => e.fmt(f), - ReceiveError::WriteError(e) => e.fmt(f), + Self::ByzantineFault(arg0, arg1) => f.debug_tuple("ByzantineFault").field(arg0).field(arg1).finish(), + Self::MaxKeyLifetimeExceeded(arg0) => f.debug_tuple("MaxKeyLifetimeExceeded").field(arg0).finish(), + Self::Rejected => f.write_str("Rejected"), + Self::StorageError(arg0) => f.debug_tuple("StorageError").field(arg0).finish(), + Self::WriteError(arg0, arg1) => f.debug_tuple("WriteError").field(arg0).field(arg1).finish(), } } } -impl Error for ReceiveError {} + +impl Display for ReceiveError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ReceiveError::ByzantineFault(e, _) => e.fmt(f), + ReceiveError::MaxKeyLifetimeExceeded(_) => f.write_str("max key lifetime exceeded"), + ReceiveError::Rejected => f.write_str("attempt to establish session rejected"), + ReceiveError::StorageError(e) => e.fmt(f), + ReceiveError::WriteError(e, _) => e.fmt(f), + } + } +} +impl Error for ReceiveError where Crypto::SessionData: std::fmt::Debug {} diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index e6199a8..a62cadf 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use std::io::Write; use std::num::NonZeroU32; use std::ops::{Deref, DerefMut}; -use std::sync::atomic::{AtomicBool, AtomicI64, AtomicU64, Ordering}; +use std::sync::atomic::{AtomicI64, AtomicU64, Ordering}; use std::sync::{Arc, Mutex, MutexGuard, RwLock, RwLockReadGuard, Weak}; use arrayvec::ArrayVec; @@ -425,7 +425,7 @@ pub(crate) fn received_x1_trans), -) -> Result, ReceiveError> { +) -> Result, ReceiveError> { use FaultType::*; // <- s // ... @@ -445,13 +445,13 @@ pub(crate) fn received_x1_trans), -) -> Result<(bool, Option), ReceiveError> { +) -> Result<(bool, Option), ReceiveError> { use FaultType::*; // <- e, ee, ekem1, psk // -> s, se if HANDSHAKE_RESPONSE_SIZE != x2.len() { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -588,25 +588,25 @@ pub(crate) fn received_x2_trans= COUNTER_WINDOW_MAX_SKIP_AHEAD || &n[AES_GCM_NONCE_SIZE - 3..] != &x2[x2.len() - 3..] { - return Err(fault!(FailedAuth, true)); + return Err(fault!(FailedAuth, true, session)); } let mut should_warn_missing_ratchet = false; let mut result = (|| { let a1 = if let ZetaAutomata::A1(a1) = &state.beta { a1 } else { - return Err(fault!(FailedAuth, true)); + return Err(fault!(FailedAuth, true, session)); }; let mut noise = a1.noise.clone(); let mut i = 0; // Process message pattern 2 e token. let e_remote = noise .read_e_no_init(hash, hmac, &mut i, &x2) - .ok_or(fault!(FailedAuth, true))?; + .ok_or_else(|| fault!(FailedAuth, true, session))?; // Process message pattern 2 ee token. noise.mix_dh(hmac, &a1.e_secret, &e_remote); // Process message pattern 2 ekem1 token. @@ -614,14 +614,14 @@ pub(crate) fn received_x2_trans::new(); x3.extend([0u8; HEADER_SIZE]); @@ -734,7 +734,7 @@ pub(crate) fn received_x2_trans), -) -> Result<(Arc>, bool, Option), ReceiveError> { +) -> Result<(Arc>, bool, Option), ReceiveError> { use FaultType::*; // -> s, se if x3.len() < HANDSHAKE_COMPLETION_MIN_SIZE { @@ -813,7 +813,8 @@ pub(crate) fn received_x3_trans), -) -> Result<(bool, Option), ReceiveError> { +) -> Result<(bool, Option), ReceiveError> { use FaultType::*; if c1.len() != KEY_CONFIRMATION_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -982,18 +983,18 @@ pub(crate) fn received_c1_trans { drop(state); session.expire(); - Err(fault!(ExpiredCounter, true)) + Err(fault!(ExpiredCounter, true, session)) } - Err(false) => Err(fault!(OutOfSequence, true)), + Err(false) => Err(fault!(OutOfSequence, true, session)), } } /// Corresponds to the trivial Transition Algorithm described for processing C_2 packets found in @@ -1060,11 +1061,11 @@ pub(crate) fn received_c2_trans Result, ReceiveError> { +) -> Result, ReceiveError> { use FaultType::*; if c2.len() != ACKNOWLEDGEMENT_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -1072,20 +1073,20 @@ pub(crate) fn received_c2_trans( kid: NonZeroU32, n: &[u8; AES_GCM_NONCE_SIZE], d: &[u8], -) -> Result<(), ReceiveError> { +) -> Result<(), ReceiveError> { use FaultType::*; if d.len() != SESSION_REJECTED_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); let state = session.state.read().unwrap(); if Some(kid) != state.key_ref(true).recv.kid || !matches!(&state.beta, ZetaAutomata::A3 { .. }) { - return Err(fault!(OutOfSequence, true)); + return Err(fault!(OutOfSequence, true, session)); } let tag = d[..].try_into().unwrap(); if !Crypto::Aead::decrypt_in_place(state.key_ref(true).recv.kek.as_ref().unwrap(), n, &[], &mut [], tag) { - return Err(fault!(FailedAuth, true)); + return Err(fault!(FailedAuth, true, session)); } let (_, c) = from_nonce(n); if !session.window.update(c) { - return Err(fault!(ExpiredCounter, true)); + return Err(fault!(ExpiredCounter, true, session)); } drop(state); @@ -1329,7 +1330,7 @@ pub(crate) fn received_k1_trans), -) -> Result, ReceiveError> { +) -> Result, ReceiveError> { use FaultType::*; // -> s // <- s @@ -1337,7 +1338,7 @@ pub(crate) fn received_k1_trans psk, e, es, ss // <- e, ee, se if k1.len() != REKEY_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -1345,7 +1346,7 @@ pub(crate) fn received_k1_trans true, @@ -1354,18 +1355,18 @@ pub(crate) fn received_k1_trans::new(); k2.extend([0u8; HEADER_SIZE]); @@ -1459,8 +1460,8 @@ pub(crate) fn received_k1_trans Ok(reduced_service_time), - Err(false) => Err(fault!(OutOfSequence, true)), - Err(true) => Err(fault!(ExpiredCounter, true)), + Err(false) => Err(fault!(OutOfSequence, true, session)), + Err(true) => Err(fault!(ExpiredCounter, true, session)), } })(); @@ -1478,11 +1479,11 @@ pub(crate) fn received_k2_trans), -) -> Result, ReceiveError> { +) -> Result, ReceiveError> { use FaultType::*; // <- e, ee, se if k2.len() != REKEY_SIZE { - return Err(fault!(InvalidPacket, true)); + return Err(fault!(InvalidPacket, true, session)); } let kex_lock = session.state_machine_lock.lock().unwrap(); @@ -1490,22 +1491,22 @@ pub(crate) fn received_k2_trans Ok(reduced_service_time), - Err(false) => Err(fault!(OutOfSequence, true)), - Err(true) => Err(fault!(ExpiredCounter, true)), + Err(false) => Err(fault!(OutOfSequence, true, session)), + Err(true) => Err(fault!(ExpiredCounter, true, session)), } } else { unreachable!() @@ -1707,7 +1708,7 @@ pub(crate) fn receive_payload_in_place( nonce: &[u8; AES_GCM_NONCE_SIZE], fragments: &mut [Crypto::IncomingPacketBuffer], mut output_buffer: impl Write, -) -> Result<(), ReceiveError> { +) -> Result<(), ReceiveError> { use FaultType::*; debug_assert!(!fragments.is_empty()); @@ -1717,10 +1718,12 @@ pub(crate) fn receive_payload_in_place( state.keys[1].nk.as_ref() } else { // Should be unreachable unless we are leaking kids somewhere. - return Err(fault!(UnknownLocalKeyId, true)); + return Err(fault!(UnknownLocalKeyId, true, session)); }; - let mut cipher = specified_key.ok_or(fault!(OutOfSequence, true))?.start_dec(nonce); + let mut cipher = specified_key + .ok_or_else(|| fault!(OutOfSequence, true, session))? + .start_dec(nonce); let (_, c) = from_nonce(nonce); // NOTE: This only works because we check the size of every received fragment in the receive @@ -1736,25 +1739,25 @@ pub(crate) fn receive_payload_in_place( cipher.decrypt_in_place(&mut fragment[..tag_idx]); if !cipher.finish((&fragment[tag_idx..]).try_into().unwrap()) { - return Err(fault!(FailedAuth, true)); + return Err(fault!(FailedAuth, true, session)); } if !session.window.update(c) { // This error is marked as not happening naturally, but it could occur if something about // the transport protocol is duplicating packets. - return Err(fault!(ExpiredCounter, true)); + return Err(fault!(ExpiredCounter, true, session)); } for i in 0..fragments.len() - 1 { let result = output_buffer.write(&fragments[i].as_ref()[HEADER_SIZE..]); if let Err(e) = result { - return Err(ReceiveError::WriteError(e)); + return Err(ReceiveError::WriteError(e, session.clone())); } } let fragment = &fragments[fragments.len() - 1].as_ref()[HEADER_SIZE..]; let result = output_buffer.write(&fragment[..tag_idx]); if let Err(e) = result { - return Err(ReceiveError::WriteError(e)); + return Err(ReceiveError::WriteError(e, session.clone())); } Ok(()) diff --git a/performance/src/zssp.rs b/performance/src/zssp.rs index 6ae7018..77bff82 100644 --- a/performance/src/zssp.rs +++ b/performance/src/zssp.rs @@ -71,7 +71,9 @@ impl ContextInner { } } -fn parse_fragment_header(incoming_fragment: &[u8]) -> Result<(usize, usize, [u8; AES_GCM_NONCE_SIZE]), ReceiveError> { +fn parse_fragment_header( + incoming_fragment: &[u8], +) -> Result<(usize, usize, [u8; AES_GCM_NONCE_SIZE]), ReceiveError> { let fragment_no = incoming_fragment[FRAGMENT_NO_IDX] as usize; let fragment_count = incoming_fragment[FRAGMENT_COUNT_IDX] as usize; if fragment_no >= fragment_count || fragment_count > MAX_FRAGMENTS { @@ -206,7 +208,7 @@ impl Context { remote_address: &impl Hash, mut incoming_fragment_buf: Crypto::IncomingPacketBuffer, output_buffer: impl Write, - ) -> Result<(ReceiveOk, Option), ReceiveError> { + ) -> Result<(ReceiveOk, Option), ReceiveError> { use crate::result::FaultType::*; let ctx = &self.0; send_unassociated_mtu = send_unassociated_mtu.max(MIN_TRANSPORT_MTU); @@ -234,40 +236,38 @@ impl Context { ); } - { - //vrfy - if packet_type == PACKET_TYPE_HANDSHAKE_RESPONSE { - if !matches!(&state.beta, ZetaAutomata::A1(_)) { - // A resent handshake response from Bob may have arrived out of order, - // after we already received one. - return Err(fault!(OutOfSequence, false)); - } - if incoming_counter >= COUNTER_WINDOW_MAX_SKIP_AHEAD { - return Err(fault!(ExpiredCounter, true)); - } - } else if PACKET_TYPE_USES_COUNTER_RANGE.contains(&packet_type) { - // For DOS resistant reply-protection we need to check that the given counter is - // in the window of valid counters immediately. - // But for packets larger than 1 fragment we can't actually record the - // counter as received until we've authenticated the packet. - // So we check the counter window twice, and only update it the second time - // after the packet has been authenticated. - if !session.window.check(incoming_counter) { - // This can occur naturally if packets arrive way out of order, or - // if they are duplicates. - // This can also be naturally triggered if Bob has just successfully - // received the first session key and is reject all of Alice's resends. - // This can also occur if a session was manually expired, but not - // dropped, and the remote party is still sending us data. - return Err(fault!(ExpiredCounter, false)); - } - } else if packet_type == PACKET_TYPE_HANDSHAKE_COMPLETION { - // This can be triggered if Bob successfully received a session key and - // needs to reject all of Alice's resends of PACKET_TYPE_NOISE_XK_PATTERN_3. - return Err(fault!(InvalidPacket, false)); - } else { - return Err(fault!(InvalidPacket, true)); + //vrfy + if packet_type == PACKET_TYPE_HANDSHAKE_RESPONSE { + if !matches!(&state.beta, ZetaAutomata::A1(_)) { + // A resent handshake response from Bob may have arrived out of order, + // after we already received one. + return Err(fault!(OutOfSequence, false, session)); } + if incoming_counter >= COUNTER_WINDOW_MAX_SKIP_AHEAD { + return Err(fault!(ExpiredCounter, true, session)); + } + } else if PACKET_TYPE_USES_COUNTER_RANGE.contains(&packet_type) { + // For DOS resistant reply-protection we need to check that the given counter is + // in the window of valid counters immediately. + // But for packets larger than 1 fragment we can't actually record the + // counter as received until we've authenticated the packet. + // So we check the counter window twice, and only update it the second time + // after the packet has been authenticated. + if !session.window.check(incoming_counter) { + // This can occur naturally if packets arrive way out of order, or + // if they are duplicates. + // This can also be naturally triggered if Bob has just successfully + // received the first session key and is reject all of Alice's resends. + // This can also occur if a session was manually expired, but not + // dropped, and the remote party is still sending us data. + return Err(fault!(ExpiredCounter, false, session)); + } + } else if packet_type == PACKET_TYPE_HANDSHAKE_COMPLETION { + // This can be triggered if Bob successfully received a session key and + // needs to reject all of Alice's resends of PACKET_TYPE_NOISE_XK_PATTERN_3. + return Err(fault!(InvalidPacket, false, session)); + } else { + return Err(fault!(InvalidPacket, true, session)); } // Handle defragmentation. @@ -282,7 +282,8 @@ impl Context { &mut fragment_buffer, ); if fragment_buffer.is_empty() { - return Ok((ReceiveOk::Unassociated, None)); + drop(state); + return Ok((ReceiveOk::Fragment(session), None)); } else { // We have not yet authenticated the sender so we do not report // receiving a packet from them. @@ -308,12 +309,12 @@ impl Context { &mut fragment_buffer, ); if fragment_buffer.is_empty() { - return Ok((ReceiveOk::Unassociated, None)); + return Ok((ReceiveOk::Fragment(session), None)); } else { for fragment in fragment_buffer.as_ref() { buffer .try_extend_from_slice(&fragment.as_ref()[HEADER_SIZE..]) - .map_err(|_| fault!(InvalidPacket, true))?; + .map_err(|_| fault!(InvalidPacket, true, session))?; } // We have not yet authenticated the sender so we do not report // receiving a packet from them. @@ -407,7 +408,7 @@ impl Context { log!(app, DIsAuthClosedSession(&session)); (SessionEvent::Rejected, None) } - _ => return Err(fault!(InvalidPacket, true)), // This is unreachable. + _ => return Err(fault!(InvalidPacket, true, session)), // This is unreachable. } }; Ok((ReceiveOk::Associated(session, ret.0), ret.1)) @@ -428,11 +429,9 @@ impl Context { ReceivedRawFragment(packet_type, incoming_counter, fragment_no, fragment_count) ); - { - //vrfy - if packet_type != PACKET_TYPE_HANDSHAKE_COMPLETION || incoming_counter != 0 { - return Err(fault!(InvalidPacket, true)); - } + //vrfy + if packet_type != PACKET_TYPE_HANDSHAKE_COMPLETION || incoming_counter != 0 { + return Err(fault!(InvalidPacket, true)); } let mut buffer = ArrayVec::::new(); From 31019ec1052327c2bdbd31475c8557030c4d7bb3 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Mon, 13 Nov 2023 12:09:12 -0500 Subject: [PATCH 38/44] added docs --- performance/src/crypto_impl/openssl.rs | 1 + performance/src/crypto_impl/p384_impl.rs | 2 ++ performance/src/crypto_impl/sha512.rs | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/performance/src/crypto_impl/openssl.rs b/performance/src/crypto_impl/openssl.rs index 873d0f8..852cb1e 100644 --- a/performance/src/crypto_impl/openssl.rs +++ b/performance/src/crypto_impl/openssl.rs @@ -177,6 +177,7 @@ impl<'a> AesGcmDecContext for OpenSSLAesGcmDec<'a> { } } +/// A pool of OpenSSL AES-GCM ciphers. pub struct OpenSSLAesGcmPool { enc: [Mutex; 8], dec: [Mutex; 8], diff --git a/performance/src/crypto_impl/p384_impl.rs b/performance/src/crypto_impl/p384_impl.rs index 1ad96f4..7c4856d 100644 --- a/performance/src/crypto_impl/p384_impl.rs +++ b/performance/src/crypto_impl/p384_impl.rs @@ -3,6 +3,7 @@ use rand_core::{CryptoRng, RngCore}; use crate::crypto::*; +/// An alias for the P384PublicKey type from the p384 crate. pub type CrateP384PublicKey = PublicKey; impl P384PublicKey for CrateP384PublicKey { fn from_bytes(raw_key: &[u8; P384_PUBLIC_KEY_SIZE]) -> Option { @@ -15,6 +16,7 @@ impl P384PublicKey for CrateP384PublicKey { } } +/// An alias for the P384KeyPair type from the p384 crate. pub type CrateP384KeyPair = EphemeralSecret; impl P384KeyPair for CrateP384KeyPair { type PublicKey = PublicKey; diff --git a/performance/src/crypto_impl/sha512.rs b/performance/src/crypto_impl/sha512.rs index 1a1bd4d..65717c2 100644 --- a/performance/src/crypto_impl/sha512.rs +++ b/performance/src/crypto_impl/sha512.rs @@ -2,7 +2,7 @@ use hmac::{Hmac, Mac}; use sha2::{Digest, Sha512}; use crate::crypto::*; - +/// An alias for the Sha512 type from the sha2 crate. pub type CrateSha512 = Sha512; impl Sha512Hash for CrateSha512 { fn new() -> Self { @@ -20,6 +20,7 @@ impl Sha512Hash for CrateSha512 { } } +/// A type that implements HMAC SHA512 using the hmac and sha2 crates. pub struct CrateHmacSha512; impl Sha512Hmac for CrateHmacSha512 { fn new() -> Self { From 04e9571d1cc0afe97d7ffdeb4f6e6fe795aec3fd Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 21 Nov 2023 13:25:11 -0500 Subject: [PATCH 39/44] added expiration readout --- performance/Cargo.toml | 2 +- performance/examples/basic_test.rs | 8 +- performance/examples/benchmark.rs | 8 +- performance/src/result.rs | 197 +++++++++++++++++------------ performance/src/zeta.rs | 112 ++++++++-------- performance/src/zssp.rs | 44 +++++-- 6 files changed, 213 insertions(+), 158 deletions(-) diff --git a/performance/Cargo.toml b/performance/Cargo.toml index bb8cb89..2142c0d 100644 --- a/performance/Cargo.toml +++ b/performance/Cargo.toml @@ -3,7 +3,7 @@ authors = ["ZeroTier, Inc. ", "Adam Ierymenko { println!("[alice] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e, _) = e { - assert!(!e.unnatural()) + if let ReceiveError::ByzantineFault(e) = e { + assert!(!e.unnatural) } } } @@ -302,8 +302,8 @@ fn bob_main( Ok(_) => {} Err(e) => { println!("[bob] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e, _) = e { - assert!(!e.unnatural()) + if let ReceiveError::ByzantineFault(e) = e { + assert!(!e.unnatural) } } } diff --git a/performance/examples/benchmark.rs b/performance/examples/benchmark.rs index 415fc8b..c0dd19d 100644 --- a/performance/examples/benchmark.rs +++ b/performance/examples/benchmark.rs @@ -170,8 +170,8 @@ fn alice_main( Ok(_) => {} Err(e) => { println!("[alice] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e, _) = e { - assert!(!e.unnatural()) + if let ReceiveError::ByzantineFault(e) = e { + assert!(!e.unnatural) } } } @@ -260,8 +260,8 @@ fn bob_main( Ok(_) => {} Err(e) => { println!("[bob] ERROR {:?}", e); - if let ReceiveError::ByzantineFault(e, _) = e { - assert!(!e.unnatural()) + if let ReceiveError::ByzantineFault(e) = e { + assert!(!e.unnatural) } } } diff --git a/performance/src/result.rs b/performance/src/result.rs index 877ddd9..5811f4e 100644 --- a/performance/src/result.rs +++ b/performance/src/result.rs @@ -1,5 +1,5 @@ use std::error::Error; -use std::fmt::Display; +use std::fmt; use std::sync::Arc; use crate::application::CryptoLayer; @@ -41,6 +41,14 @@ pub enum SendError { DataTooLarge, } +/// The contained session has just expired. +/// +/// An expired session is no longer "owned" by the ZSSP context. +/// Therefore it is no longer capable of sending, receiving or being serviced, +/// so it should be dropped. +#[derive(Clone)] +pub struct ExpiredError(pub Arc>); + /// A type of fault occurred because we received a bad packet. /// /// An unauthenticated attacker can intentionally trigger any of these, so it is best to @@ -71,11 +79,22 @@ pub enum FaultType { /// Because an unauthenticated remote peer can force these to occur with specific /// contained information, it is recommended in production to either drop these /// immediately, or log them safely to a local output stream and then drop them. -#[derive(Debug)] -pub struct ByzantineFault { +pub struct ByzantineFault { + /// The session associated with this fault, if there was one. + /// + /// The sender specified this session within their packet, but they were not authenticated, + /// so the sender could theoretically be anyone. + pub session: Option>>, + /// This field is true if this fault caused the session it was attached to to expire. + /// An expired session is no longer "owned" by the ZSSP context. + /// Therefore it is no longer capable of sending, receiving or being serviced, + /// so it should be dropped. + /// + /// If this returns true then it is guaranteed that the `session` field is occupied. + pub caused_expiration: bool, /// The type of fault that has occurred. Be cautious if you choose to read this /// value, as an attacker has control over it. - pub(crate) error: FaultType, + pub error: FaultType, /// Some byzantine faults within ZSSP are naturally occurring, i.e. they can occur /// between two well behaved and trusted parties executing the protocol. /// This boolean is false if this is one of these faults. If you go to the file and @@ -88,7 +107,7 @@ pub struct ByzantineFault { /// persevered (i.e. bits have been flipped) to be unnatural. /// ZSSP also considers collisions of what are supposed to be uniform random /// numbers to be unnatural. - pub(crate) unnatural: bool, + pub unnatural: bool, /// The file of this implementation of ZSSP from which this error was generated. #[cfg(feature = "debug")] pub(crate) file: &'static str, @@ -99,43 +118,6 @@ pub struct ByzantineFault { #[cfg(feature = "debug")] pub(crate) line: u32, } -// I don't like getter methods but in this case they are the only way to implement -// conditionally compiled struct fields without the feature flag causing breaking changes. -impl ByzantineFault { - /// The type of fault that has occurred. Be cautious if you choose to read this - /// value, as an attacker has control over it. - pub fn error(&self) -> FaultType { - self.error - } - /// Some byzantine faults within ZSSP are naturally occurring, i.e. they can occur - /// between two well behaved and trusted parties executing the protocol. - /// This boolean is false if this is one of these faults. If you go to the file and - /// line number specified by this error you will find a comment describing - /// how and why exactly this fault can occur naturally. - /// - /// Faults that can occur because the underlying communication medium is lossy and - /// sequentially inconsistent (as in UDP) are considered naturally occurring. - /// However ZSSP considers faults that occur because data integrity has not been - /// persevered (i.e. bits have been flipped) to be unnatural. - /// ZSSP also considers collisions of what are supposed to be uniform random - /// numbers to be unnatural. - pub fn unnatural(&self) -> bool { - self.unnatural - } - /// The file of this implementation of ZSSP from which this error was generated. - #[cfg(feature = "debug")] - pub fn file(&self) -> &'static str { - self.file - } - /// The line number of this implementation of ZSSP from which this error was - /// generated. As such this number uniquely identifies each possible fault that - /// can occur during ZSSP. Advanced user can use this information to debug more - /// complicated usages of ZSSP. - #[cfg(feature = "debug")] - pub fn line(&self) -> u32 { - self.line - } -} /// An error that occurred during the receipt of a given packet. /// @@ -150,7 +132,7 @@ pub enum ReceiveError { /// Because an unauthenticated remote peer can force these to occur with specific /// contained information, it is recommended in production to either drop these /// immediately, or log them safely to a local output stream and then drop them. - ByzantineFault(ByzantineFault, Option>>), + ByzantineFault(ByzantineFault), /// Rekeying failed and session secret has reached its hard usage count limit. /// The associated session will no longer function and has to be dropped. @@ -171,30 +153,31 @@ pub enum ReceiveError { macro_rules! fault { ($name:expr, $unnatural:ident) => { - ReceiveError::ByzantineFault( - crate::result::ByzantineFault { - #[cfg(feature = "debug")] - file: file!(), - #[cfg(feature = "debug")] - line: line!(), - error: $name, - unnatural: $unnatural, - }, - None, - ) + ReceiveError::ByzantineFault(crate::result::ByzantineFault { + #[cfg(feature = "debug")] + file: file!(), + #[cfg(feature = "debug")] + line: line!(), + error: $name, + unnatural: $unnatural, + session: None, + caused_expiration: false, + }) }; ($name:expr, $unnatural:ident, $session:ident) => { - ReceiveError::ByzantineFault( - crate::result::ByzantineFault { - #[cfg(feature = "debug")] - file: file!(), - #[cfg(feature = "debug")] - line: line!(), - error: $name, - unnatural: $unnatural, - }, - Some($session.clone()), - ) + fault!($name, $unnatural, $session, false) + }; + ($name:expr, $unnatural:ident, $session:ident, $e:ident) => { + ReceiveError::ByzantineFault(crate::result::ByzantineFault { + #[cfg(feature = "debug")] + file: file!(), + #[cfg(feature = "debug")] + line: line!(), + error: $name, + unnatural: $unnatural, + session: Some($session.clone()), + caused_expiration: $e, + }) }; } pub(crate) use fault; @@ -265,8 +248,8 @@ pub enum SessionEvent { DowngradedRatchetKey, } -impl Display for OpenError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Display for OpenError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { OpenError::IdentityTooLarge => f.write_str("identity too large"), OpenError::StorageError(e) => e.fmt(f), @@ -275,8 +258,8 @@ impl Display for OpenError { } impl Error for OpenError {} -impl Display for SendError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Display for SendError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let str = match self { SendError::MtuTooSmall => "mtu too small", SendError::SessionExpired => "session has expired", @@ -288,8 +271,23 @@ impl Display for SendError { } impl Error for SendError {} -impl Display for FaultType { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Debug for ExpiredError +where + Session: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("ExpiredError").field(&self.0).finish() + } +} +impl fmt::Display for ExpiredError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "session expired") + } +} +impl Error for ExpiredError where Session: fmt::Debug {} + +impl fmt::Display for FaultType { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let str = match self { FaultType::UnknownLocalKeyId => "packet contained an unknown key id", FaultType::InvalidPacket => "invalid packet received", @@ -302,25 +300,57 @@ impl Display for FaultType { } impl Error for FaultType {} -impl Display for ByzantineFault { +// I don't like getter methods but in this case they are the only way to implement +// conditionally compiled struct fields without the feature flag causing breaking changes. +impl ByzantineFault { + /// The file of this implementation of ZSSP from which this error was generated. #[cfg(feature = "debug")] - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + pub fn file(&self) -> &'static str { + self.file + } + /// The line number of this implementation of ZSSP from which this error was + /// generated. As such this number uniquely identifies each possible fault that + /// can occur during ZSSP. Advanced user can use this information to debug more + /// complicated usages of ZSSP. + #[cfg(feature = "debug")] + pub fn line(&self) -> u32 { + self.line + } +} +impl fmt::Debug for ByzantineFault +where + Session: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ByzantineFault") + .field("session", &self.session) + .field("caused_expiration", &self.caused_expiration) + .field("error", &self.error) + .field("unnatural", &self.unnatural) + .field("file", &self.file) + .field("line", &self.line) + .finish() + } +} +impl fmt::Display for ByzantineFault { + #[cfg(feature = "debug")] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{} ({}:{})", self.error, self.file, self.line) } #[cfg(not(feature = "debug"))] - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.error.fmt(f) } } -impl Error for ByzantineFault {} +impl Error for ByzantineFault where Session: fmt::Debug {} -impl std::fmt::Debug for ReceiveError +impl fmt::Debug for ReceiveError where - Crypto::SessionData: std::fmt::Debug, + Crypto::SessionData: fmt::Debug, { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - Self::ByzantineFault(arg0, arg1) => f.debug_tuple("ByzantineFault").field(arg0).field(arg1).finish(), + Self::ByzantineFault(arg) => f.debug_tuple("ByzantineFault").field(arg).finish(), Self::MaxKeyLifetimeExceeded(arg0) => f.debug_tuple("MaxKeyLifetimeExceeded").field(arg0).finish(), Self::Rejected => f.write_str("Rejected"), Self::StorageError(arg0) => f.debug_tuple("StorageError").field(arg0).finish(), @@ -328,11 +358,10 @@ where } } } - -impl Display for ReceiveError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +impl fmt::Display for ReceiveError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - ReceiveError::ByzantineFault(e, _) => e.fmt(f), + ReceiveError::ByzantineFault(e) => e.fmt(f), ReceiveError::MaxKeyLifetimeExceeded(_) => f.write_str("max key lifetime exceeded"), ReceiveError::Rejected => f.write_str("attempt to establish session rejected"), ReceiveError::StorageError(e) => e.fmt(f), @@ -340,4 +369,4 @@ impl Display for ReceiveError { } } } -impl Error for ReceiveError where Crypto::SessionData: std::fmt::Debug {} +impl Error for ReceiveError where Crypto::SessionData: fmt::Debug {} diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index a62cadf..cde05a5 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -594,12 +594,16 @@ pub(crate) fn received_x2_trans= COUNTER_WINDOW_MAX_SKIP_AHEAD || &n[AES_GCM_NONCE_SIZE - 3..] != &x2[x2.len() - 3..] { return Err(fault!(FailedAuth, true, session)); } + + if !matches!(&state.beta, ZetaAutomata::A1(_)) { + return Err(fault!(FailedAuth, true, session)); + } let mut should_warn_missing_ratchet = false; let mut result = (|| { let a1 = if let ZetaAutomata::A1(a1) = &state.beta { a1 } else { - return Err(fault!(FailedAuth, true, session)); + unreachable!(); }; let mut noise = a1.noise.clone(); let mut i = 0; @@ -749,14 +753,15 @@ pub(crate) fn received_x2_trans { + match &mut result { + Err(ReceiveError::ByzantineFault(_)) => { let kex_lock = session.state_machine_lock.lock().unwrap(); let state = session.state.read().unwrap(); let current_time = app.time(); - timeout_trans(app, ctx, session, kex_lock, state, current_time, send); + // We can only reach this point if we are in state A1, and state A1 cannot expire. + debug_assert!(timeout_trans(app, ctx, session, kex_lock, state, current_time, send).is_ok()); } - Ok((ref mut packet, _)) => send(packet, Some(&session.state.read().unwrap().hk_send)), + Ok((packet, _)) => send(packet, Some(&session.state.read().unwrap().hk_send)), _ => {} } result.map(|(_, reduced_service_time)| (should_warn_missing_ratchet, reduced_service_time)) @@ -1047,7 +1052,7 @@ pub(crate) fn received_c1_trans { drop(state); session.expire(); - Err(fault!(ExpiredCounter, true, session)) + Err(fault!(ExpiredCounter, true, session, true)) } Err(false) => Err(fault!(OutOfSequence, true, session)), } @@ -1141,7 +1146,7 @@ pub(crate) fn received_d_trans( Ok(()) } /// Corresponds to the timeout timer Transition Algorithm described in Section 4.1 - Definition 3. -/// Returns `None` if this session should be expired. +/// Returns `Err(())` if this session should be expired. fn timeout_trans>( app: &mut App, ctx: &Arc>, @@ -1150,9 +1155,9 @@ fn timeout_trans>( state: RwLockReadGuard<'_, MutableState>, current_time: i64, send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), -) -> Option { +) -> Result { match &state.beta { - ZetaAutomata::Null => None, + ZetaAutomata::Null => Err(()), ZetaAutomata::A1(_) | ZetaAutomata::A3 { .. } => { let identity = match &state.beta { ZetaAutomata::A1(a1) => &a1.identity, @@ -1199,7 +1204,7 @@ fn timeout_trans>( drop(kex_lock); send(&mut x1, None); - Some(resend_timer) + Ok(resend_timer) } ZetaAutomata::S2 => { // Corresponds to Transition Algorithm 6 found in Section 4.3. @@ -1245,33 +1250,33 @@ fn timeout_trans>( let state = session.state.read().unwrap(); match send_control(session, &state, PACKET_TYPE_REKEY_INIT, k1, send) { - Err(true) => None, - _ => Some(resend_timer), + Err(true) => Err(()), + _ => Ok(resend_timer), } } ZetaAutomata::S1 { .. } => { log!(app, TimeoutKeyConfirm(session)); - None + Err(()) } ZetaAutomata::R1 { .. } => { log!(app, TimeoutK1(session)); - None + Err(()) } ZetaAutomata::R2 { .. } => { log!(app, TimeoutK2(session)); - None + Err(()) } } } /// Corresponds to the timer rules of the Zeta State Machine found in Section 4.1 - Definition 3. -/// Returns `None` if this session should be expired. +/// Returns `Err(())` if this session should be expired. pub(crate) fn process_timers>( app: &mut App, ctx: &Arc>, session: &Arc>, current_time: i64, send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), -) -> Option { +) -> Result { let kex_lock = session.state_machine_lock.lock().unwrap(); let state = session.state.read().unwrap(); if state.timeout_timer <= current_time { @@ -1284,16 +1289,16 @@ pub(crate) fn process_timers> // Corresponds to the resend timer rules found in Section 4.1 - Definition 3. let (packet_type, control_payload) = match &state.beta { - ZetaAutomata::Null => return None, + ZetaAutomata::Null => return Err(()), ZetaAutomata::A1(a1) => { log!(app, ResentX1(session)); send(&mut a1.x1.clone(), None); - return Some(resend_next); + return Ok(resend_next); } ZetaAutomata::A3(a3) => { log!(app, ResentX3(session)); send(&mut a3.x3.clone(), Some(&state.hk_send)); - return Some(resend_next); + return Ok(resend_next); } ZetaAutomata::S1 => { log!(app, ResentKeyConfirm(session)); @@ -1301,7 +1306,7 @@ pub(crate) fn process_timers> c1.extend([0u8; HEADER_SIZE]); (PACKET_TYPE_KEY_CONFIRM, c1) } - ZetaAutomata::S2 => return Some(state.timeout_timer), + ZetaAutomata::S2 => return Ok(state.timeout_timer), ZetaAutomata::R1 { k1, .. } => { log!(app, ResentK1(session)); (PACKET_TYPE_REKEY_INIT, k1.clone()) @@ -1313,11 +1318,11 @@ pub(crate) fn process_timers> }; match send_control(session, &state, packet_type, control_payload, send) { - Err(true) => None, - _ => Some(resend_next), + Err(true) => Err(()), + _ => Ok(resend_next), } } else { - Some(ts) + Ok(ts) } } } @@ -1382,7 +1387,7 @@ pub(crate) fn received_k1_trans::new(); k2.extend([0u8; HEADER_SIZE]); @@ -1461,12 +1466,15 @@ pub(crate) fn received_k1_trans Ok(reduced_service_time), Err(false) => Err(fault!(OutOfSequence, true, session)), - Err(true) => Err(fault!(ExpiredCounter, true, session)), + Err(true) => Err(fault!(ExpiredCounter, true, session, true)), } })(); - if matches!(result, Err(ReceiveError::ByzantineFault { .. })) { - session.expire(); + match &result { + Err(ReceiveError::ByzantineFault(fault)) if fault.caused_expiration => { + session.expire(); + } + _ => {} } result } @@ -1493,23 +1501,19 @@ pub(crate) fn received_k2_trans Ok(reduced_service_time), Err(false) => Err(fault!(OutOfSequence, true, session)), - Err(true) => Err(fault!(ExpiredCounter, true, session)), + Err(true) => Err(fault!(ExpiredCounter, true, session, true)), } } else { - unreachable!() + // Some rekey packet may have arrived extremely delayed. + return Err(fault!(OutOfSequence, false, session)); } })(); - if matches!(result, Err(ReceiveError::ByzantineFault { .. })) { - session.expire(); + match &result { + Err(ReceiveError::ByzantineFault(fault)) if fault.caused_expiration => { + session.expire(); + } + _ => {} } result } diff --git a/performance/src/zssp.rs b/performance/src/zssp.rs index 77bff82..b2c3e9a 100644 --- a/performance/src/zssp.rs +++ b/performance/src/zssp.rs @@ -17,7 +17,7 @@ use crate::fragged::Assembled; use crate::handshake_cache::UnassociatedHandshakeCache; use crate::indexed_heap::IndexedBinaryHeap; use crate::proto::*; -use crate::result::{fault, FaultType, OpenError, ReceiveError, ReceiveOk, SendError, SessionEvent}; +use crate::result::{fault, ExpiredError, FaultType, OpenError, ReceiveError, ReceiveOk, SendError, SessionEvent}; use crate::zeta::*; #[cfg(feature = "logging")] use crate::LogEvent::*; @@ -631,9 +631,14 @@ impl Context { /// /// * `app` - Interface to application using ZSSP /// * `send_to` - Function to get a sender and an MTU to send something over an active session - pub fn service>(&self, mut app: App, send_to: impl SendTo) -> i64 { + pub fn service>(&self, mut app: App, mut send_to: impl SendTo) -> i64 { let current_time = app.time(); - let next_service_time = self.service_inner(app, send_to, current_time); + let next_service_time = loop { + match self.service_inner(&mut app, send_to, current_time) { + Ok(ts) => break ts, + Err((_, s)) => send_to = s, + } + }; let max_interval = Crypto::SETTINGS .fragment_assembly_timeout .min(Crypto::SETTINGS.rekey_timeout) @@ -649,21 +654,33 @@ impl Context { /// an `Option`. This option can contain an updated, reduced timestamp at which this /// function ought to be called again. /// + /// If this returns an error then it means that a session has timed-out and has been expired. + /// An expired session is no longer "owned" by the ZSSP context. + /// Therefore it is no longer capable of sending, receiving or being serviced, + /// so it should be dropped. + /// + /// A return type of `Err` effectively means that this function should be called again immediately. + /// This function should be called repeatedly in a loop until `Ok` is returned. + /// /// This function should only be used if the caller has direct access to a scheduler that allows /// them to dynamically modify the interval at which this function is repeatedly called. /// /// * `app` - Interface to application using ZSSP /// * `send_to` - Function to get a sender and an MTU to send something over an active session - pub fn service_scheduled>(&self, mut app: App, send_to: impl SendTo) -> i64 { - let current_time = app.time(); - self.service_inner(app, send_to, current_time) - } - fn service_inner>( + pub fn service_scheduled>( &self, mut app: App, - mut send_to: impl SendTo, + send_to: impl SendTo, + ) -> Result> { + let current_time = app.time(); + self.service_inner(&mut app, send_to, current_time).map_err(|e| e.0) + } + fn service_inner, F: SendTo>( + &self, + app: &mut App, + mut send_to: F, current_time: i64, - ) -> i64 { + ) -> Result, F)> { let ctx = &self.0; let mut session_queue = ctx.session_queue.lock().unwrap(); let mut queue_service_time = i64::MAX; @@ -682,17 +699,18 @@ impl Context { continue; } }; - let result = process_timers(&mut app, ctx, &session, current_time, |packet, hk_send| { + let result = process_timers(app, ctx, &session, current_time, |packet, hk_send| { if let Some((sender, mut mtu)) = send_to.init_send(&session) { mtu = mtu.max(MIN_TRANSPORT_MTU); send_with_fragmentation(sender, mtu, packet, hk_send); } }); - if let Some(next_timer) = result { + if let Ok(next_timer) = result { queue_service_time = queue_service_time.min(next_timer); session_queue.change_priority(queue_idx, Reverse(next_timer)); } else { session.expire_inner(Some(ctx), Some(&mut session_queue)); + return Err((ExpiredError(session), send_to)); } } // This is the only place where `ctx.next_service_time` can be increased. This only works @@ -713,7 +731,7 @@ impl Context { let t2 = defrag_service_time.min(handshake_service_time); let t1 = ctx.next_service_time.fetch_min(t2, Ordering::Relaxed); - t1.min(t2) + Ok(t1.min(t2)) } /// Returns the exact timestamp at which either `Context::service` or /// `Context::service_scheduled` should be called again. From 202346768b236cfd88f73f7dae4e25fd9ff96ea6 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 21 Nov 2023 13:32:39 -0500 Subject: [PATCH 40/44] cargo clippy --- performance/src/application.rs | 4 ++-- performance/src/frag_cache.rs | 8 ++++---- performance/src/fragged.rs | 4 ++-- performance/src/handshake_cache.rs | 2 +- performance/src/proto.rs | 6 +++--- performance/src/symmetric_state.rs | 2 +- performance/src/zeta.rs | 24 ++++++++++++------------ performance/src/zssp.rs | 2 +- reference/src/proto.rs | 1 - 9 files changed, 26 insertions(+), 27 deletions(-) diff --git a/performance/src/application.rs b/performance/src/application.rs index 5a1a00b..c128a0f 100644 --- a/performance/src/application.rs +++ b/performance/src/application.rs @@ -323,7 +323,7 @@ pub trait Sender { /// Send the given fragment on this interface and then return whether or not an error occured. /// /// If `true` is returned then sending is cancelled and this instance of `Sender` is dropped. - fn send_frag<'a>(&'a mut self, frag: &mut [u8]) -> bool; + fn send_frag(&mut self, frag: &mut [u8]) -> bool; } /// A trait to genericize the process of borrowing the resources necessary to repeatedly @@ -353,7 +353,7 @@ pub trait SendTo { } impl bool> Sender for F { - fn send_frag<'a>(&'a mut self, frag: &mut [u8]) -> bool { + fn send_frag(&mut self, frag: &mut [u8]) -> bool { self(frag) } } diff --git a/performance/src/frag_cache.rs b/performance/src/frag_cache.rs index 8c7de57..6e3789b 100644 --- a/performance/src/frag_cache.rs +++ b/performance/src/frag_cache.rs @@ -93,7 +93,7 @@ impl UnassociatedFragCache { } else if self.map[idx1].key == key { idx1 } else if self.map[idx0].key == 0 || self.map[idx1].key == 0 { - if (fragment_count as usize) > self.frags_unused_size { + if fragment_count > self.frags_unused_size { // There are not enough free fragment slots so attempt to expire a bunch of entries. let _ = self.check_for_expiry_inner(Crypto::SETTINGS.resend_time as i64, current_time); } @@ -117,7 +117,7 @@ impl UnassociatedFragCache { let mut new_expiry = None; if self.map[idx].key == 0 { // This is a new entry so initialize it. - if (fragment_count as usize) <= self.frags_unused_size { + if fragment_count <= self.frags_unused_size { new_expiry = Some(current_time + Crypto::SETTINGS.fragment_assembly_timeout as i64); let entry = &mut self.map[idx]; entry.key = key; @@ -148,7 +148,7 @@ impl UnassociatedFragCache { entry.packet_size = new_size; entry.fragment_have |= got; - let frag_idx = (entry.frags_idx as usize + fragment_no as usize) % self.frags.len(); + let frag_idx = (entry.frags_idx as usize + fragment_no) % self.frags.len(); self.frags[frag_idx].write(fragment); if entry.fragment_have == 1u64.wrapping_shl(fragment_count as u32) - 1 { @@ -183,7 +183,7 @@ impl UnassociatedFragCache { return expiry; } } - return i64::MAX; + i64::MAX } fn invalidate(&mut self, idx: usize) { diff --git a/performance/src/fragged.rs b/performance/src/fragged.rs index 59b876d..546d2cd 100644 --- a/performance/src/fragged.rs +++ b/performance/src/fragged.rs @@ -53,8 +53,8 @@ impl Fragged { if got & self.have == 0 && self.count == fragment_count as u32 { self.have |= got; unsafe { - self.frags.get_unchecked_mut(fragment_no as usize).write(fragment); - if self.have == 1u64.wrapping_shl(self.count as u32) - 1 { + self.frags.get_unchecked_mut(fragment_no).write(fragment); + if self.have == 1u64.wrapping_shl(self.count) - 1 { self.have = 0; self.count = 0; self.nonce = u64::MAX; diff --git a/performance/src/handshake_cache.rs b/performance/src/handshake_cache.rs index 0b637ee..6c7a7d1 100644 --- a/performance/src/handshake_cache.rs +++ b/performance/src/handshake_cache.rs @@ -61,7 +61,7 @@ impl UnassociatedHandshakeCache { cache.expiries[idx] = expiry; cache.handshakes[idx] = Some(state); self.has_pending.store(true, Ordering::Release); - return Some(expiry); + Some(expiry) } pub(crate) fn remove(&self, local_id: NonZeroU32) -> bool { let mut cache = self.cache.write().unwrap(); diff --git a/performance/src/proto.rs b/performance/src/proto.rs index b64ad0b..5b1c3cb 100644 --- a/performance/src/proto.rs +++ b/performance/src/proto.rs @@ -94,8 +94,8 @@ pub(crate) const LABEL_RATCHET_STATE: &[u8; 4] = b"ASKR"; pub(crate) const LABEL_HEADER_KEY: &[u8; 4] = b"ASKH"; pub(crate) const LABEL_KEX_KEY: &[u8; 4] = b"ASKK"; -pub(crate) const EXPIRE_AFTER_USES: u64 = 1 << 32 - 1; -pub(crate) const THREAD_SAFE_COUNTER_HARD_EXPIRE: u64 = u64::MAX - 1 << 16; +pub(crate) const EXPIRE_AFTER_USES: u64 = (1 << 32) - 1; +pub(crate) const THREAD_SAFE_COUNTER_HARD_EXPIRE: u64 = u64::MAX - (1 << 16); /// Determines the number of counters a session will remember. If a counter arrives over /// this amount out of order relative to other received counters, it is likely to be /// rejected on the basis that the session can't remember if this counter was replayed. @@ -137,7 +137,7 @@ pub(crate) const HANDSHAKE_RESPONSE_SIZE: usize = P384_PUBLIC_KEY_SIZE + KYBER_CIPHERTEXT_SIZE + AES_GCM_TAG_SIZE + KID_SIZE + AES_GCM_TAG_SIZE; pub(crate) const HEADERED_HANDSHAKE_RESPONSE_SIZE: usize = HANDSHAKE_RESPONSE_SIZE + HEADER_SIZE; -pub(crate) const HANDSHAKE_COMPLETION_MIN_SIZE: usize = P384_PUBLIC_KEY_SIZE + AES_GCM_TAG_SIZE + 0 + AES_GCM_TAG_SIZE; +pub(crate) const HANDSHAKE_COMPLETION_MIN_SIZE: usize = P384_PUBLIC_KEY_SIZE + AES_GCM_TAG_SIZE + AES_GCM_TAG_SIZE; pub(crate) const HANDSHAKE_COMPLETION_MAX_SIZE: usize = HANDSHAKE_COMPLETION_MIN_SIZE + IDENTITY_MAX_SIZE; pub(crate) const HEADERED_HANDSHAKE_COMPLETION_MAX_SIZE: usize = HANDSHAKE_COMPLETION_MAX_SIZE + HEADER_SIZE; diff --git a/performance/src/symmetric_state.rs b/performance/src/symmetric_state.rs index c9ea5a8..2b45049 100644 --- a/performance/src/symmetric_state.rs +++ b/performance/src/symmetric_state.rs @@ -19,7 +19,7 @@ impl Clone for SymmetricState { Self { k: self.k.clone(), ck: self.ck.clone(), - h: self.h.clone(), + h: self.h, _app: PhantomData, } } diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index cde05a5..4247274 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -184,12 +184,12 @@ impl SymmetricState { } fn mix_dh(&mut self, hmac: &mut Crypto::Hmac, secret: &Crypto::KeyPair, remote: &Crypto::PublicKey) { let mut ecdh_secret = Zeroizing::new([0u8; P384_ECDH_SHARED_SECRET_SIZE]); - secret.agree(&remote, &mut ecdh_secret); + secret.agree(remote, &mut ecdh_secret); self.mix_key(hmac, ecdh_secret.as_ref()); } fn mix_dh_no_init(&mut self, hmac: &mut Crypto::Hmac, secret: &Crypto::KeyPair, remote: &Crypto::PublicKey) { let mut ecdh_secret = Zeroizing::new([0u8; P384_ECDH_SHARED_SECRET_SIZE]); - secret.agree(&remote, &mut ecdh_secret); + secret.agree(remote, &mut ecdh_secret); self.mix_key_no_init(hmac, ecdh_secret.as_ref()); } } @@ -262,7 +262,7 @@ fn remap( let weak = if let Some(Some(weak)) = state.key_ref(true).recv.kid.as_ref().map(|kid| session_map.remove(kid)) { weak } else { - Arc::downgrade(&session) + Arc::downgrade(session) }; let new_kid_recv = gen_kid(session_map.deref(), ctx.rng.lock().unwrap().deref_mut()); session_map.insert(new_kid_recv, weak); @@ -332,7 +332,7 @@ pub(crate) fn trans_to_a1>( ) -> Result<(Arc>, Option), OpenError> { let RatchetStates { state1, state2 } = app .restore_by_identity(&s_remote, &session_data) - .map_err(|e| OpenError::StorageError(e))? + .map_err(OpenError::StorageError)? .unwrap_or_default(); let mut session_queue = ctx.session_queue.lock().unwrap(); @@ -450,7 +450,7 @@ pub(crate) fn received_x1_trans Option<(NonZeroU32, SymmetricState)> { let mut noise = noise.clone(); - let mut payload = payload.clone(); + let mut payload = payload; // Process message pattern 2 psk token. noise.mix_key_and_hash(hash, hmac, ratchet_key); // Process message pattern 2 payload. @@ -774,7 +774,7 @@ fn send_control( mut payload: ArrayVec, send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), ) -> Result<(), bool> { - if let Some((c, _)) = get_counter(session, &state) { + if let Some((c, _)) = get_counter(session, state) { if let (Some(kek), Some(kid)) = (state.key_ref(false).send.kek.as_ref(), state.key_ref(false).send.kid) { let nonce = to_nonce(packet_type, c); let tag = Crypto::Aead::encrypt_in_place(kek, &nonce, &[], &mut payload[HEADER_SIZE..]); @@ -1386,7 +1386,7 @@ pub(crate) fn received_k1_trans::new(); c1.extend([0u8; HEADER_SIZE]); - match send_control(&session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send) { + match send_control(session, &state, PACKET_TYPE_KEY_CONFIRM, c1, send) { Ok(()) => Ok(reduced_service_time), Err(false) => Err(fault!(OutOfSequence, true, session)), Err(true) => Err(fault!(ExpiredCounter, true, session, true)), } } else { // Some rekey packet may have arrived extremely delayed. - return Err(fault!(OutOfSequence, false, session)); + Err(fault!(OutOfSequence, false, session)) } })(); diff --git a/performance/src/zssp.rs b/performance/src/zssp.rs index b2c3e9a..c63f12e 100644 --- a/performance/src/zssp.rs +++ b/performance/src/zssp.rs @@ -483,7 +483,7 @@ impl Context { // This can occur naturally because either Bob's incoming_sessions cache got // full so Alice's incoming session was dropped, or the session this packet // was for was dropped by the application. - return Err(fault!(UnknownLocalKeyId, false)); + Err(fault!(UnknownLocalKeyId, false)) } } } else { diff --git a/reference/src/proto.rs b/reference/src/proto.rs index 6a08419..779ca53 100644 --- a/reference/src/proto.rs +++ b/reference/src/proto.rs @@ -83,7 +83,6 @@ pub(crate) const LABEL_RATCHET_STATE: &[u8; 4] = b"ASKR"; pub(crate) const LABEL_HEADER_KEY: &[u8; 4] = b"ASKH"; pub(crate) const LABEL_KEX_KEY: &[u8; 4] = b"ASKK"; -//pub(crate) const EXPIRE_AFTER_USES: u64 = (1 << 32) - 1; pub(crate) const HARD_EXPIRATION: u64 = u64::MAX; /// Determines the number of counters a session will remember. If a counter arrives over /// this amount out of order relative to other received counters, it is likely to be From b62727f099100f17fcb939e680fea6ef3f2aad35 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 21 Nov 2023 13:33:57 -0500 Subject: [PATCH 41/44] pushed version no --- performance/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/performance/Cargo.toml b/performance/Cargo.toml index 2142c0d..18997fa 100644 --- a/performance/Cargo.toml +++ b/performance/Cargo.toml @@ -3,7 +3,7 @@ authors = ["ZeroTier, Inc. ", "Adam Ierymenko Date: Tue, 21 Nov 2023 15:02:05 -0500 Subject: [PATCH 42/44] added better fingerprint support --- performance/examples/basic_test.rs | 7 +++- performance/examples/benchmark.rs | 5 ++- performance/src/application.rs | 64 ++++++++++++++++++++++++++++-- performance/src/crypto_impl/mod.rs | 2 + performance/src/frag_cache.rs | 1 + performance/src/zeta.rs | 12 ++++-- 6 files changed, 80 insertions(+), 11 deletions(-) diff --git a/performance/examples/basic_test.rs b/performance/examples/basic_test.rs index e3d6f03..ea749d4 100644 --- a/performance/examples/basic_test.rs +++ b/performance/examples/basic_test.rs @@ -63,6 +63,7 @@ impl CryptoLayer for TestApplication { type SessionData = u128; type IncomingPacketBuffer = Vec; + type FingerprintData = (); } #[allow(unused)] impl ApplicationLayer for &TestApplication { @@ -82,6 +83,7 @@ impl ApplicationLayer for &TestApplication { &mut self, remote_static_key: &CrateP384PublicKey, identity: &[u8], + _: Option<&()>, ) -> AcceptAction { AcceptAction { session_data: Some(1), @@ -93,15 +95,16 @@ impl ApplicationLayer for &TestApplication { fn restore_by_fingerprint( &mut self, ratchet_fingerprint: &[u8; RATCHET_SIZE], - ) -> Result, std::io::Error> { + ) -> Result, std::io::Error> { let ratchets = self.ratchets.lock().unwrap(); - Ok(ratchets.rf_map.get(ratchet_fingerprint).cloned()) + Ok(ratchets.rf_map.get(ratchet_fingerprint).cloned().map(|r| (r, ()))) } fn restore_by_identity( &mut self, remote_static_key: &CrateP384PublicKey, session_data: &u128, + _: Option<&()>, ) -> Result, std::io::Error> { let ratchets = self.ratchets.lock().unwrap(); Ok(ratchets.peer_map.get(session_data).cloned()) diff --git a/performance/examples/benchmark.rs b/performance/examples/benchmark.rs index c0dd19d..513c486 100644 --- a/performance/examples/benchmark.rs +++ b/performance/examples/benchmark.rs @@ -53,6 +53,7 @@ impl AsRef<[u8]> for PooledVec { #[allow(unused)] impl DefaultCrypto for TestApplication { type SessionData = (); + type LookupData = (); type IncomingPacketBuffer = PooledVec; } @@ -76,6 +77,7 @@ impl ApplicationLayer for &TestApplication { &mut self, remote_static_key: &CrateP384PublicKey, identity: &[u8], + _: Option<&()>, ) -> AcceptAction { AcceptAction { session_data: Some(()), @@ -87,7 +89,7 @@ impl ApplicationLayer for &TestApplication { fn restore_by_fingerprint( &mut self, ratchet_fingerprint: &[u8; RATCHET_SIZE], - ) -> Result, std::io::Error> { + ) -> Result, std::io::Error> { Ok(None) } @@ -95,6 +97,7 @@ impl ApplicationLayer for &TestApplication { &mut self, remote_static_key: &CrateP384PublicKey, session_data: &(), + _: Option<&()>, ) -> Result, std::io::Error> { Ok(None) } diff --git a/performance/src/application.rs b/performance/src/application.rs index c128a0f..250edde 100644 --- a/performance/src/application.rs +++ b/performance/src/application.rs @@ -153,6 +153,22 @@ pub trait CryptoLayer: Sized { /// each session. type SessionData; + /// Type for arbitrary opaque object that is attached to a new connection attempt if Alice sends + /// us a ratchet fingerprint recognized by `restore_by_fingerprint`. + /// + /// If Alice continues to connect + /// with us, then this object will be passed to `check_accept_session` and `restore_by_identity`. + /// This is useful if the ratchet fingerprint was derived from a one-time password, in which + /// case `FingerprintData` can contain metadata regarding the one-time password. This can be + /// used by `check_accept_session` and `restore_by_identity` to perform additional + /// authentication checks, such as validating the one-time password as an invitation code. + /// + /// `FingerprintData` can also be used with extreme caution to cache database resources that can + /// speed up the expected future calls to `check_accept_session` and `restore_by_identity`. + /// If this is done, the implementor is required in `check_accept_session` to verify that the + /// cached resources in `FingerprintData` indeed belong to the specified remote peer. + type FingerprintData; + /// Data type for incoming packet buffers. /// /// This can be something like `Vec` or `Box<[u8]>` or it can be something like a pooled @@ -190,6 +206,9 @@ pub trait ApplicationLayer: Sized { /// If this function is configured to always return true, it means peers will not be able to /// connect to us unless they had a prior-established ratchet key with us. This is the best way /// for the paranoid to enforce a manual allow-list. + /// + /// Corresponds to the "Hello Requires Recognized Ratchet, π_1" security flag of Transition + /// Algorithm 2 within the ZSSP whitepaper. fn hello_requires_recognized_ratchet(&mut self) -> bool; /// This function is called if we, as Alice, attempted to open a session with Bob using a /// non-empty ratchet key, but Bob does not have this ratchet key and wants to downgrade @@ -206,15 +225,29 @@ pub trait ApplicationLayer: Sized { /// least one party is misconfigured and got their ratchet keys corrupted or lost, or Bob has /// been compromised and is being impersonated. An attacker must at least have Bob's private /// static key to be able to ask Alice to downgrade. + /// + /// Corresponds to the "Initiator Disallows Downgrade, π_2" security flag of Transition + /// Algorithm 3 within the ZSSP whitepaper. fn initiator_disallows_downgrade(&mut self, session: &Arc>) -> bool; /// Function to accept sessions after final negotiation. - /// The second argument is the identity that the remote peer sent us. The application - /// must verify this identity is associated with the remote peer's static key. + /// + /// The implementor must verify that three arguments, `remote_static_key`, `identity` and + /// optionally `fingerprint_data` all belong to the same remote peer, using whatever definition + /// of "same remote peer" that the upper protocol chooses. + /// `fingerprint_data` is an opaque type that is only `Some` if Alice sent us a ratchet + /// fingerprint that was successfully restored by `restore_by_fingerprint`. /// /// To prevent desync, if this function specifies that we should connect, no other open session /// with the same remote peer must exist. Drop or call expire on any pre-existing sessions /// before returning. - fn check_accept_session(&mut self, remote_static_key: &Crypto::PublicKey, identity: &[u8]) -> AcceptAction; + /// + /// Corresponds to the **Accept** call of Transition Algorithm 4 within the ZSSP whitepaper. + fn check_accept_session( + &mut self, + remote_static_key: &Crypto::PublicKey, + identity: &[u8], + fingerprint_data: Option<&Crypto::FingerprintData>, + ) -> AcceptAction; /// Lookup a specific ratchet state based on its ratchet fingerprint. /// This function will be called whenever Alice attempts to connect to us with a non-empty @@ -222,10 +255,24 @@ pub trait ApplicationLayer: Sized { /// /// If a ratchet state with a matching fingerprint could not be found, this function should /// return `Ok(None)`. + /// + /// This function can also return an opaque `FingerprintData` object. If Alice continues to connect + /// with us, then this object will be passed to `check_accept_session` and `restore_by_identity`. + /// This is useful if the ratchet fingerprint was derived from a one-time password, in which + /// case `FingerprintData` can contain metadata regarding the one-time password. This can be + /// used by `check_accept_session` and `restore_by_identity` to perform additional + /// authentication checks, such as validating the one-time password as an invitation code. + /// + /// `FingerprintData` can also be used with extreme caution to cache database resources that can + /// speed up the expected future calls to `check_accept_session` and `restore_by_identity`. + /// If this is done, the implementor is required in `check_accept_session` to verify that the + /// cached resources in `FingerprintData` indeed belong to the specified remote peer. + /// + /// Corresponds to the **Restore** call of Transition Algorithm 2 within the ZSSP whitepaper. fn restore_by_fingerprint( &mut self, ratchet_fingerprint: &[u8; RATCHET_SIZE], - ) -> Result, std::io::Error>; + ) -> Result, std::io::Error>; /// Lookup the specific ratchet states based on the identity of the peer being communicated with. /// This function will be called whenever Alice attempts to open a session, or Bob attempts /// to verify Alice's identity. @@ -240,10 +287,13 @@ pub trait ApplicationLayer: Sized { /// This function is not responsible for deciding whether or not to connect to this remote peer. /// Filtering peers should be done by the caller to `Context::open` as well as by the /// function `ApplicationLayer::check_accept_session`. + /// + /// Corresponds to the **Restore** call of Transition Algorithm 1 and 4 within the ZSSP whitepaper. fn restore_by_identity( &mut self, remote_static_key: &Crypto::PublicKey, session_data: &Crypto::SessionData, + fingerprint_data: Option<&Crypto::FingerprintData>, ) -> Result, std::io::Error>; /// Atomically commit the update specified by `update_data` to storage, or return an error if /// the update could not be made. @@ -306,12 +356,18 @@ pub struct AcceptAction { pub session_data: Option, /// Whether or not we will accept a connection with the remote peer when they do not have a /// ratchet key that we think they should have. + /// + /// Corresponds to the "Responder Disallows Downgrade, π_3" security flag of Transition + /// Algorithm 4 within the ZSSP whitepaper. pub responder_disallows_downgrade: bool, /// Whether or not to send an explicit rejection packet to the remote peer if we do not create /// a session with them. /// /// This field will not be used if `session_data` is `Some` and the remote peer passes all other /// authentication checks. + /// + /// Corresponds to the "Responder Silently Rejects, π_4" security flag of Transition + /// Algorithm 4 within the ZSSP whitepaper. pub responder_silently_rejects: bool, } diff --git a/performance/src/crypto_impl/mod.rs b/performance/src/crypto_impl/mod.rs index 96254a5..acf86e2 100644 --- a/performance/src/crypto_impl/mod.rs +++ b/performance/src/crypto_impl/mod.rs @@ -38,6 +38,7 @@ pub use openssl_sys; #[cfg(feature = "default-crypto")] pub trait DefaultCrypto { type SessionData; + type LookupData; type IncomingPacketBuffer: AsMut<[u8]> + AsRef<[u8]>; } #[cfg(feature = "default-crypto")] @@ -54,5 +55,6 @@ impl crate::application::CryptoLayer for C { type Kem = CrateKyber1024PrivateKey; type SessionData = C::SessionData; + type FingerprintData = C::LookupData; type IncomingPacketBuffer = C::IncomingPacketBuffer; } diff --git a/performance/src/frag_cache.rs b/performance/src/frag_cache.rs index 6e3789b..8f52d54 100644 --- a/performance/src/frag_cache.rs +++ b/performance/src/frag_cache.rs @@ -257,6 +257,7 @@ fn test_cache() { type Kem = CrateKyber1024PrivateKey; type SessionData = (); + type FingerprintData = (); type IncomingPacketBuffer = Vec; } diff --git a/performance/src/zeta.rs b/performance/src/zeta.rs index 4247274..e55c76e 100644 --- a/performance/src/zeta.rs +++ b/performance/src/zeta.rs @@ -68,6 +68,7 @@ pub(crate) struct MutableState { /// Corresponds to State B_2 of the Zeta State Machine found in Section 4.1 - Definition 3. pub(crate) struct StateB2 { ratchet_state: RatchetState, + lookup_data: Option, kid_send: NonZeroU32, pub kid_recv: NonZeroU32, pub hk_send: Zeroizing<[u8; AES_256_KEY_SIZE]>, @@ -331,7 +332,7 @@ pub(crate) fn trans_to_a1>( send: impl FnOnce(&mut [u8], Option<&Crypto::PrpEnc>), ) -> Result<(Arc>, Option), OpenError> { let RatchetStates { state1, state2 } = app - .restore_by_identity(&s_remote, &session_data) + .restore_by_identity(&s_remote, &session_data, None) .map_err(OpenError::StorageError)? .unwrap_or_default(); @@ -472,11 +473,13 @@ pub(crate) fn received_x1_trans {} - Ok(Some(rs)) => { + Ok(Some((rs, data))) => { + lookup_data = Some(data); ratchet_state = Some(rs); break; } @@ -551,6 +554,7 @@ pub(crate) fn received_x1_trans { let RatchetStates { state1, state2 } = rss.unwrap_or_default(); From 7ce255fbff308247ee9db6dc1ee62b74be9289e9 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 21 Nov 2023 15:17:39 -0500 Subject: [PATCH 43/44] overwrite pdf --- performance/src/result.rs | 1 - whitepaper/zssp.pdf | Bin 423909 -> 423914 bytes 2 files changed, 1 deletion(-) diff --git a/performance/src/result.rs b/performance/src/result.rs index 5811f4e..38ee6b7 100644 --- a/performance/src/result.rs +++ b/performance/src/result.rs @@ -16,7 +16,6 @@ pub enum OpenError { /// The session could not be openned as a result. StorageError(std::io::Error), } - /// An error that can occur when attempting to send data over a session. /// Depending on the error type trying again may not work. #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index ffcb16c205d207c24d2c2be9763e006da488e5cc..465e1916e5572496ff52b1e31721a98027bcd651 100644 GIT binary patch delta 5252 zcmaF*Uh>s@$%YojElj@{nN1DMCMU9JOjl)M;;$FyetmjUV>QRo)@JqxC$7bcD)Qfx zJijKfY|lnpPU(L?Ur$Sk{*;kc=J|lB+%@#twJp(qKL)Sft-2{?a>_|@agl##g=QI? z>R4ix7&Kwd#+1tHkFT0m_@uf%`nTkvc3t|4mP(Ps4sIr&+UnKcy*yy|^+$bK>Bo!4 zszPcVm%7x#>t8c#t_wTaef0T#+uE|ypPyc>?mol$_xtMLqW{AGq&1$`pXWZ}5;Q?6 z-SX68$1P5(3-lh&i7uRHK3#K<&c59E1p)H5muG%w4Q|O~Eta^o{P(|OLK~G%dM?~y z<{~*UMnzL~kwD+2iBIJs{VD=^*4P!Y+);kuvaxWT{3ahOsd(1nmQYdCvfs?wz0PBW&Jgye+hZWHv>@HiLBqWFH6&pc)eZ4QYKG6!1c zhsiMS_{DHI;om)mdH+{#-fMY4vv~=>R{b22u2oDXe-AMB{nScVVOM$XVi_8FBz53+?Q5 zO5Nj_Hn?>cHyIi<@Ll1*vna>uU0~&bu+3l6eI~}a@@RIPds6+KZ5QLFa@ML$y|k0z z9g_9-KYv|Uz1&?^E8pC!q*N`Ev#&3$InvQT^yb7J9DFm?{{0Y875Wg?@V-cmlQq_F zfr@j0)1(B)N1GcqF!G(X42gOr!oFe4CFL_pG7cPdQmc+fiZu9q)T`2%_C(U6QMRTx zcV6MzCzroCKR#i$dJBKyv=dFzKW_1zE4#dg{XuR?9A0t^a%1&6^+7WOXpN>whxA0{=`6_$W_A|qE$KfCVr?Z1~4J$N{F zHPoI@*nRZan%Y0_y1SpWF02g8|F-tAgX@J1RzZ&|ic<>CJ=+=aK%h;!-tB?Fj8$7U zmoR+F+I!#XYu$+zH?HozyfNpt(9}KKw=8Isl)JNK<*j#}rRwJmz8F6Dv)r-y-Rq+0 z{jT9gobye-mx?+Mn5x^No4gt{Fcq>YF1pK2LtOc*CnL`F1IL_8T|E`36tTo^gch z``_XS&mAHkQ$uxc|K7c?xb0Dsfu@slqrOGNqP5dP|K4KAN_AJ8aPZbk&X&zFkF?mo z-B)Uj2(iDP`#SaRV%ZPfp~>P=>G9>h`SNknV!3H5aFf{rkonoBTt9bJn`m>$ksK{&k;w%wpC}0i`9$?Ab@Ej@yTE zY~#{Y*wg(eB}(+BmS4W)2FcBbt|rDO9r$fAA(2nCX&8BVi0GOwE{u$Bo-C`i1SAeN|epfu^pACsW8gWuN7uw|X(m@3}Xw&Sz3 zd$N)gin3{9vE(!DPU~P&R?8%@Yu{Ff_!ge+BXJG+CS~EhV#Grb5SeGpDj?9 z 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 Date: Tue, 21 Nov 2023 15:23:46 -0500 Subject: [PATCH 44/44] overwrite pdf --- whitepaper/zssp.pdf | Bin 423914 -> 423914 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index 465e1916e5572496ff52b1e31721a98027bcd651..2170db8d5a3e34bc8156d5893583e13273ed28c4 100644 GIT binary patch delta 114 zcmaF$Uh>s@$%Yoj7N!>F7M2#)Eo_|m%*Mv1(|PjQ6hMsa`uS{ZOwNXmW(MZYrj{nI mhGs^NCZ=x27G^HSriKQN<}T(&2BvljHiVRHuP9_IVgmpZ)g1r; delta 114 zcmaF$Uh>s@$%Yoj7N!>F7M2#)Eo_|m%!WpW(|PjQ6hMsa`uS{ZOwO*BmafK*hORCa m=9bQ`ZYFMSu9i-g#%{)rPEM{SW@dH@HiVRHuP9_IVgmq2!5&-y

  • t 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%0DG6uvRkpDhuY=BQLy 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