[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Forward secrecy in spiped
On 04/30/14 00:28, Frederick Akalin wrote:
> On Tue, Apr 29, 2014 at 11:53 PM, Colin Percival <cperciva@tarsnap.com
> <mailto:cperciva@tarsnap.com>> wrote:
> > + * is_zero_or_one(x, len):
> > + * Returns non-zero if the big-endian value stored at (${x}, ${len}) is equal
> > + * to either 0 or 1.
>
> This is wrong. We need to detect 1; we don't need to detect 0. (A validly
> signed 0 implies that someone who has the shared key is not following the
> protocol, in which case we've already lost.)
>
> Isn't that an argument for detecting 0 even if -g isn't specified? It seems to
> be to be better to drop connections which are detected to not be conforming.
There's lots of "impossible" values -- all quadratic non-residues, for example
-- but there's no point checking for all of them. There's always going to be
ways that a participant can deliberately sabotage the protocol (by revealing
the negotiated keys, if nothing else); the point of the protocol is to protect
compliant hosts from non-participants. Even the -g option isn't about any level
of cryptographic security; it's purely about detecting misconfigurations.
--
Colin Percival
Security Officer Emeritus, FreeBSD | The power to serve
Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid