> Arne Schwabe <[email protected]> hat am 29.04.2022 13:31 geschrieben:
> Am 29.04.22 um 12:28 schrieb Frank Lichtenheld:
> >> Instead of allocating a connection for each client on the initial packet
> >> OpenVPN will now send back a response that contains an HMAC based cookie
> >> that the client will need to respond to. This eliminates the amplification
> >> attack and resource exhaustion attacks. For tls-crypt-v2 client HMAC based
> >> handshake is not used yet.
> >
> > I think this is not very helpful in understanding the change. In trying to
> > understand it, this is my personal explanation I came up with. Not sure
> > whether it is correct, but maybe it can be useful:
> >
> > "Instead of allocating a connection for each client on the initial
> > HARD_RESET_CLIENT packet OpenVPN server will now create its own session id
> > for the HARD_RESET_SERVER packet as an HMAC of client data. This way it can
> > verify the session id on the second packet of
> > the client (ACK or CONTROL) and only create the connection then."
> >
> > "This eliminates the amplification [...]" (unchanged)
>
>
> New try:
>
> Instead of allocating a connection for each client on the initial packet
> OpenVPN will now calculate a session id based on a HMAC that serves as
> verifiable cookie that can be checked for authenticity when the client
> responds with it. This eliminates the amplification attack and resource
> exhaustion attacks. For tls-crypt-v2 clients the HMAC based handshake
> is not used yet.
I'm not sure why you are against including more low-level details here,
but I think this is good enough to not warrant further discussion.
> >> +
> >> + bool ret = check_session_id_hmac(state, from, hmac, handwindow);
> >> +
> >> + const char *peer = print_link_socket_actual(&m->top.c2.from, &gc);
> >> + if (!ret)
> >> + {
> >> +
> >> + msg(D_MULTI_MEDIUM, "Packet with invalid or missing SID from
> >> %s", peer);
> >
> > Not a review, but rather a question: What actually happens to the
> > connection in this
> > code path?
>
> The packet is simply dropped. This can happen when clients send ACK +
> CONTROL_V1 (clienthello) as response and the ACK (that contains the
> session id) and the ACK gets lost. OpenVPN 3 client already combine the
> packet and do not suffer the problem and for OpenVPN 2.x the later
> patches in the series also ensure that all packets have the session id
> in them.
>
> This is will be an extra resend for the affected clients.
Okay, thanks.
Regards,
--
Frank Lichtenheld
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel