Let's assume a simple network with a (Windows) server and a (Windows) workstation. Turns out the question of how to securely transfer files between the two isn't obvious considering:
- I define
securein this context as preventing an attacker with control of any of the two devices to propagate his control to the second. Confidentiality and integrity of the data transmitted is secondary.
- We want to set up a strict filtering between the two devices, using a L4 firewall. By strict I mean that we want to prevent any other use than file transfer, enforced by the firewall. Thinks of it as if I had only a firewall between 2 companies, and I was responsible for the security of the link between the two. Except, a hacker has control of one of the two companies, and try to get a hold on the second. Now, I can enforce the protocol used as the other company will comply and limit the use of the network ports that will be opened to only the agreed protocol, so that for example it will only use a HTTPS client to connect to port 443.
- The protocol would be better based on open standards, and not have any internet dependency; also, bonus points if the solution has available implementation on Windows.
- I am not considering the risk of vulnerability in either the client or the server.
2. prevents us from using a few classical protocols such as
SMB, as this protocol is not dedicated to be a file transfer protocol but also resource sharing, control, etc. It also prevents us from using
rsync over SSH, as these are encapsulated over
SSH, and we would not be able to distinguish between the two on a network level. Also,
FTPS is awful in terms of firewall opening requests as it takes all the firewall unfriendliness of
I was thinking about a
HTTPS server, because we could create a server that is purpose-specific so propagation of a threat would be made harder. But I would like the client to be able to remove files as well so some logic will be required and a specific app will probably need to be maintained. Would
WebDAV over SSL with Digest authentication match the security requirements?
I am starting to feel like there is no easy answer except saying: we need to limit the emphasis on the network security, as there is no protocol that would allow us to ensure the level of security we want without imposing security requirements on the machines, and for example making sure a
SSH server is properly configured to only allow
SFTP. This is a shame as the original question is pretty simple.