summaryrefslogtreecommitdiffstats
path: root/src/compat
diff options
context:
space:
mode:
authorLev Stipakov <lstipakov@gmail.com>2014-11-23 17:17:11 +0200
committerGert Doering <gert@greenie.muc.de>2014-11-27 15:10:05 +0100
commit65eedc353349d2967fc03c54da807727e416e1b0 (patch)
treeccbea0a0472f3172c1ceae593449c8707f700a5b /src/compat
parent3341a98c2852d1d0c1eafdc70a3bdb218ec29049 (diff)
downloadopenvpn-65eedc353349d2967fc03c54da807727e416e1b0.tar.gz
openvpn-65eedc353349d2967fc03c54da807727e416e1b0.tar.xz
openvpn-65eedc353349d2967fc03c54da807727e416e1b0.zip
Peer-id patch v7
Added new packet format P_DATA_V2, which includes peer-id. If server supports, client sends all data packets in the new format. When data packet arrives, server identifies peer by peer-id. If peer's ip/port has changed, server assumes that client has floated, verifies HMAC and updates ip/port in internal structs. Changes in v7: A few nitpicks. Changes in v6: Fixed: Make sure float won't happen if hmac check failed (regression). Fixed: Access outside of bounds of array, which has caused memory corruption and crash. Various review fixes. Changes in v5: Protection agains replay attack by commiting float changes only after existing packet processing flow has completed. If peer floats to an address which is already taken by another active session, drop float packet, otherwise disconnect existing session. Changes in v4: Handles correctly float to an address which is used by another peer. This also has fixed crash on assert in multi_client_disconnect. Changes in v3: Bugfix: If float happens after TLS renegotiation and there are no data packets between reneg and float, server will not recognize floated client. Acked-by: Steffan Karger <steffan.karger@fox-it.com> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1416755831-21250-1-git-send-email-lstipakov@gmail.com> URL: http://article.gmane.org/gmane.network.openvpn.devel/9270 Signed-off-by: Gert Doering <gert@greenie.muc.de>
Diffstat (limited to 'src/compat')
0 files changed, 0 insertions, 0 deletions