> On a related note, however, I have some doubts about the usefulness of
> this "randomisation rotor".
> 
> First, it currently does not really randomise anything, since on most
> architectures the total number of chunks always divides 256, so that
> using merely `r' as the random offset instead of `bp->rotor + r' would
> not change the distribution for the random variable thus obtained.
> Moreover, in the rare cases where it actually has a noticeable effect,
> this distribution is no longer uniform (and very biased) anyway, so the
> proper way to randomise these choices would be to call getrbyte() twice,
> not to add one random byte to a previously used random byte.

Many minor randomizations are surprisingly effective because an
attacker only gets 1 attack try.

Why?  Because other layers have also perturbed their addresses, or
other addresses which an attacker needs.

So the attacker has numerous small hurdles.  There's a banana on the
road, but there's snare wire above it.

It is too easy to fall into the trap of "I'm looking at the only defense".

Reply via email to