This is something sadly not being focused on from any hypervisor that i know to do that by default/design.
Thats mean any local app can sniff the connection/s and even manipulate them.
What we can do about it is either:
- Restricted file permission
We can make the connection isolated via unix socket file e.g file location /tmp/whonix-network.sock and we restrict this file.
and in GW:
-netdev socket,id=net0,unix=/tmp/whonix.sock,server=on
in WS:
-netdev socket,id=net0,unix=/tmp/whonix.sock,server=off
- Using stunnel or spiped on host
Mechanism how it will work:
- The Workstation sends cleartext traffic to a local port (e.g.,
5555). stunnellistens on5555, encrypts the traffic using TLS, and sends it to another local port (e.g.,6666).- A second
stunnelprocess listens on6666, decrypts the traffic, and hands it to the Gateway’s listening port.
But again somewhat we back to square one issue with local encryption how much it can be protected from local privileged attack (unless we can add linux file permission to where the encryption library (TLS) happening?).
- Internal VM to VM Encryption
This will neglect the reliability on KVM or anything on the host, instead it will use an internal tool to encrypt the data in WS (e.g wireguard), send the data encrypted to the GW then read it in the VM.
But this will break stream isolation or any control over any packet coming from WS, as they will be all encrypted before leaving WS.
Im not aware of any other method than these.