加密Web应用程序的文件

时间:2011-05-24 19:16:30

标签: file encryption iis-7

我的任务是在我们的网络服务器上研究我们收到的客户文件的加密。我们正在运行IIS7环境,当通过HTTPS从我们的客户端传输文件时,我们希望以加密方式将这些文件存储到磁盘。我是一名网络工程师,软件开发人员已经向我推荐了一个操作系统实现。我查看了BitLocker和EFS,但我不知道为什么或如何我需要这个,因为我们不关心从我们的安全数据中心窃取物理驱动器的人。在IIS7中,这在软件端会不会更容易?

3 个答案:

答案 0 :(得分:1)

HTTPS将逐点加密数据。一旦它到达服务器(并且你正在存储它),它就是未加密的。

要进一步加密数据,您有几个选项:加密整个驱动器(BitLocker / EFS样式)或加密单个文件,在这种情况下(imho)最简单的解决方案将是简单地将文件存储在数据库中,并使用数据库的内置或您选择的编程语言API加密来加密和解密存储和检索文件。

加密整个驱动器的缺点是你会在生产服务器上失去性能 - 通常是一件坏事。

答案 1 :(得分:0)

.Net有一些很好的API用于加密文件。您可以使用AES-256(在.Net C#中称为Rijndael)来加密所有文件,然后再将它们存储在磁盘上。然后使用机器证书(C#中的X509Certficate2)中的RSA密钥加密AES密钥。将加密的AES密钥(以及初始化向量,如果使用CBC)与加密文件一起存储。

当您需要解密文件时,请使用计算机证书中的私钥解密AES密钥,然后使用该AES密钥解密文件的其余部分。

答案 2 :(得分:0)

选择范围很广:

  • 内置存储数据加密的DBMS
  • OS'文件系统(NTFS)的加密功能。 NTFS允许您使用加密证书加密单个文件,加密证书存储在Windows证书存储区中。它是可导出的,因此您可以将其复制以备份。
  • 由第三方软件创建的虚拟磁盘(例如TrueCrypt)。此类软件通常支持密码和证书或PGP密钥(取决于软件)进行加密
  • 您的软件使用our Virtual Storage products之一创建的虚拟磁盘。使用此选项几乎可以无限制地选择加密机制。