Hi Pieter,

On 15/03/19 17:01, Pieter Hulshoff wrote:
Hi,

Op vr 15 mrt. 2019 om 16:11 schreef <pippin...@protonmail.com <mailto:pippin...@protonmail.com>>:

    "TLS authentication (HMAC firewall)

    To explain the concept of TLS authentication in simpler terms, the
    idea here is to have a unique TLS key, a certificate, that is
    known and used by the server and its clients. A shared secret if
    you will, that will be used to digitally sign and verify packets
    in both directions. What this does is make it possible for the
    OpenVPN protocol to easily recognize if packets are truly VPN
    packets from a known VPN client, or if they are garbage packets
    from unknown sources. Every OpenVPN packet by itself contains
    encrypted information inside of it, but on top of that, the packet
    itself is signed digitally...................."


My apologies, I meant with regards to the data packets rather than the control packets.

In general though: I understand why packets are signed (with a TLS/HMAC/GCM tag). What I don't understand is why that tag is transmitted before the encrypted data rather than after the encrypted data. This choice has some impact with regards to streaming data transmission (e.g. in a hardware based crypto machine). Especially in telecom, latency and packet delay variation are extremely important parameters, which is why MACsec transmits the GCM tag at the end of the packet (right before the FCS (CRC)).


who says it is transmitted before the encrypted data? where in the source is that specified? If you look at crypto.c routines openvpn_encrypt_aead vs openvpn_encrypt_v1 you will find that the HMAC part seems to be added at the end (e.g. look for
  hmac_start = BEND(&work);

regards,

JJK

_______________________________________________
Openvpn-users mailing list
Openvpn-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-users

Reply via email to