lsd0003

LSD0003: Set Union
Log | Files | Refs | README

commit 79c94b3f3ce9ce7b052a1d99086371e49ab52e4c
parent 011b65bf65bd6d7461c3ae29fae5fd8aa488913d
Author: Elias Summermatter <elias.summermatter@seccom.ch>
Date:   Sun, 28 Feb 2021 21:29:33 +0100

Added some more sc

Diffstat:
Mdraft-summermatter-set-union.xml | 54+++++++++++++++++++++++++++++++++---------------------
1 file changed, 33 insertions(+), 21 deletions(-)

diff --git a/draft-summermatter-set-union.xml b/draft-summermatter-set-union.xml @@ -2041,8 +2041,8 @@ FUNCTION get_bucket_id (key, number_of_buckets_per_element, ibf_size) <section anchor="security_states_finish_closing" numbered="true" toc="default"> <name>Finish Closing</name> <t> - In case not all sent demands or inquiries have ben answered in time the operation - has failed and MUST be terminated. + In case not all sent demands or inquiries have ben answered in time a pre defined + timeout the operation has failed and MUST be terminated. </t> <!-- FIXME: In state diagram in finish closing only Elements can be received. What happens if i receive an offer? --> <t>Security considerations for received messages:</t> @@ -2065,16 +2065,20 @@ FUNCTION get_bucket_id (key, number_of_buckets_per_element, ibf_size) <dl> <dt><xref target="messages_se" format="title" /></dt> <dd> - In case the Strata Estimator does not decoded the + In case the Strata Estimator does not decode the operation MUST be terminated to prevent to get to a unresolvable state. <!-- IMPLEMENT: If in expect SE state the strata estimator does not decode terminate the operation --> - Also a check should be in place that prevents the set difference to be - unpassable large, in case its to large the operation MUST be terminated. + The set difference calculated from the strata estimator needs to be plausible, + to ensure this multiple factors need to be considered: The absolute plausible maximum of + elements in a set which has to be predefined according + to the use case and the maximal plausible element increase since the last + successful set reconciliation which should be either predefined or can be calculated + with the gaussian distribution function over all passed set reconciliations. <!-- IMPLEMENT: Terminate if in check expect se state for a max size difference is exceeded --> </dd> <dd> In case of compressed strata estimators the decompression algorithm has to - be protected against + be protected against decompression memory corruption (memory overflow). </dd> </dl> </section> @@ -2084,16 +2088,17 @@ FUNCTION get_bucket_id (key, number_of_buckets_per_element, ibf_size) <dl> <dt><xref target="messages_full_element" format="title" /></dt> <dd> - Besides formally validate the received element its good to do a - plausibility check and count the received valid elements and compare - it to the calculated set difference. In case the difference in the count of the received - elements is unportable high the operation MUST be terminated, because the other peer - could try to waste our bandwidth. + The peer in <strong>Full Receiving</strong> state needs to check + that exactly the number of elements is received from the remote peer as + he initially committed too. If the remote peer transmits less or + more elements the operation MUST be terminated. </dd> <dt><xref target="messages_full_done" format="title" /></dt> <dd> - After the full done message is received no <xref target="messages_full_element" format="title" /> - message should be received. + When the full done message is received from the remote peer all + elements that the remote peer has committed to needs to be received + otherwise the operation MUST be terminated. After receiving the + full done message no future elements should be accepted. <!-- FIXME: Check that after full done in full receiving no elements can be received anymore! Additional state? --> </dd> </dl> @@ -2104,18 +2109,25 @@ FUNCTION get_bucket_id (key, number_of_buckets_per_element, ibf_size) <dl> <dt><xref target="messages_ibf" format="title" /></dt> <dd> - In case an IBF message is received by the peer a active/passive role change - is initiated if the max role change threshold is not reached. In this case all - open demands and offers are waited to be fulfilled to prevent retransmission before switching - to other state. + In case an IBF message is received by the peer a active/passive role switch + is initiated by the active decoding remote peer. In this instance the peer should + wait for all open offers and demands to be fulfilled to prevent + retransmission before switching into active decoding operation mode. + A switch into active decoding mode should only be permitted for + a predefined number of times as described in the top section + of the security section. <!-- IMPLEMENT: What does happen here in the code? --> </dd> <dt><xref target="messages_inquiry" format="title" /></dt> <dd> - In case an inquiry message is received it should be ensured - that an inquiry for an element is just answered once, for this - there needs to be a list with all requested inquiries to prevent - an attacker from a replay attack. + A check needs to be in place that prevents receiving a inquiry + for an element multiple times or more inquiries than are plausible. + The amount of inquiries that is plausible can be estimated by considering + known values as the remote set size, the local set size, the + predefined absolute maximum of elements in the set which is defined + by real world limitations. + To implement this restrictions a list with all received inquiries + should be stored and new inquiries should be checked against. </dd> <dt><xref target="messages_demand" format="title" /></dt> <dd>