I'm looking for a relatively light weight way to secure both integrity and confidentiality for files being uploaded in a point-to-point integration. The use case is uploading batch files for processing. The files contain sensitive data, and should be protected until processing starts.

We'll be using SFTP, but I'm looking to provide an extra layer of security to prevent breach of confidentiality or integrity in case of misconfiguration or vulnerabilities in the SFTP server.

Some considerations:

  1. The key pairs used should be replaceable. This means that the encryption and signature keys must be identified as part of the encrypted file or signature.
  2. The algorithms used should be replaceable. If we for example use RSA + SHA-256 for signatures now, we should be able to replace this later without a coordinated deployment between the uploader and recipient.
  3. The integration should be low maintenance and low complexity. I'm looking to avoid PKI and certificates unless there are strong reasons not to.
  4. The files should be protected both under transport and when they're at rest.
  5. The solution should be platform agnostic.

I've been considering creating a custom solution, but I'm thinking this is something that's probably been solved a number of times before.

Is there a good standard (or "best practice") for ensuring integrity and confidentiality of uploaded files?

2 Answers 2


Assuming you've setup your SFTP server to use public key authentication only, you're pretty much safe with it.

It is always possible to add another layer of security, for instance, a VPN between your endpoints but, in your specific case, you're just exchanging the risks in one software for the same risk with another one: if your VPN software has a vulnerability or is missconfigured, there is usually no need to exploit the underlying SFTP software to gain access to the system. You're still getting something if the VPN stack runs as a limited (and different) user but that is not typically the case.

In other words, the solution you're asking for (an additional encryption layer) does not provide protection against the proposed threat model (misconfiguration or software vulnerability). In such a case, the best practice is to go for the simpler model since additional complexity is usually more expensive to deploy and maintain and it also increases the attack surface.

  • Thanks for your suggestion! I've changed the question a bit: it's highly desirable to protect especially the confidentiality of the file while it's at rest until it's being processed. So the goal is not really to provide provide security on top of SFTP, but rather protection after the files have been transferred with SFTP.
    – lillesand
    Jul 14, 2015 at 13:20

PGP is the established way to provide confidentiality and integrity of files. I'm not sure what else you need here. You need to track they keys yourself, but you can easily come up with a system for that.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .