Bug fix for multi-stanza key use and replay attack detection
authorMichael Rash <mbr@cipherdyne.org>
Sun, 8 Jul 2012 01:31:30 +0000 (21:31 -0400)
committerMichael Rash <mbr@cipherdyne.org>
Sun, 8 Jul 2012 01:31:30 +0000 (21:31 -0400)
commitba3b7d1d11d681549f1bb27e0af1307499fad0d5
tree45ff64f6623449e578c19781597fdeac390120df
parentfcf40b5e6d18edf6f8d6e3cd7b526be1947c4a76
Bug fix for multi-stanza key use and replay attack detection

This commit fixes a bug where the same encryption key used for two stanzas in
the access.conf file would result in access requests that matched the second
stanza to always be treated as a replay attack.  This has been fixed for
the fwknop-2.0.1 release, and was reported by Andy Rowland.  Now the fwknopd
server computes the SHA256 digest of raw incoming payload data before
decryption, and compares this against all previous hashes.  Previous to this
commit, fwknopd would add a new hash to the replay digest list right after
the first access.conf stanza match, so when SPA packet data matched the
second access.conf stanza a matching replay digest would already be there.
CREDITS
client/config_init.c
lib/fko.h
lib/fko_context.h
lib/fko_digest.c
lib/fko_funcs.c
server/incoming_spa.c
server/replay_cache.c
server/replay_cache.h