Don't use rejected auth events
This commit is contained in:
parent
b8a8d132b2
commit
a80ff2f69f
1 changed files with 7 additions and 3 deletions
|
@ -285,8 +285,8 @@ First we define:
|
||||||
events, the auth check algorithm is applied to each event in turn. The state
|
events, the auth check algorithm is applied to each event in turn. The state
|
||||||
events used to auth are built up from previous events that passed the auth
|
events used to auth are built up from previous events that passed the auth
|
||||||
checks, starting from a base set of state. If a required auth key doesn't
|
checks, starting from a base set of state. If a required auth key doesn't
|
||||||
exist in the state, then the one in the event's auth_events is used. (See
|
exist in the state, then the one in the event's auth_events is used if the
|
||||||
_Variations_ and _Attack Vectors_ below).
|
auth event is not rejected. (See _Variations_ and _Attack Vectors_ below).
|
||||||
|
|
||||||
The algorithm proceeds as follows:
|
The algorithm proceeds as follows:
|
||||||
|
|
||||||
|
@ -446,7 +446,7 @@ reapply the unconflicted state at the end).
|
||||||
|
|
||||||
Events that have been rejected due to failing auth based on the state at the
|
Events that have been rejected due to failing auth based on the state at the
|
||||||
event (rather than based on their auth chain) are handled as usual by the
|
event (rather than based on their auth chain) are handled as usual by the
|
||||||
algorithm.
|
algorithm, unless otherwise specified.
|
||||||
|
|
||||||
Note that no events rejected due to failure to auth against their auth chain
|
Note that no events rejected due to failure to auth against their auth chain
|
||||||
should appear in the process, as they should not appear in state (and the
|
should appear in the process, as they should not appear in state (and the
|
||||||
|
@ -473,6 +473,10 @@ Intuitively using rejected events feels dangerous, however:
|
||||||
duplicated event will pass auth. Therefore ignoring rejected events wouldn't
|
duplicated event will pass auth. Therefore ignoring rejected events wouldn't
|
||||||
reduce any potential attack vectors
|
reduce any potential attack vectors
|
||||||
|
|
||||||
|
We specifically don't use rejected auth events in the iterative auth checks, as
|
||||||
|
in that case the auth events aren't re-authed like the rest of the events in the
|
||||||
|
list.
|
||||||
|
|
||||||
|
|
||||||
### Attack Vectors
|
### Attack Vectors
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue