公钥加密 - GnuPG 加密所有文件上传



我想在上传文件时对其进行加密,通常发生的事情是将其写入磁盘,然后您可以从那里对其进行加密,我想在此之前对其进行加密。是否有任何用于http服务器或应用程序框架的模块可以允许我这样做,我不想为此花费大量时间编写软件,但是如果需要,我会这样做。

重要的是,没有未加密的记录会接触硬盘。

硬盘驱动器已经使用 aes 加密,但由于服务器可以在我不知情的情况下由第三方访问,我宁愿有某种方法可以防止实际数据被/that/容易泄露。

系统管理员回答:预先加密数据的虚拟硬盘保存区。 从不接触磁盘,问题解决了。 不?

这是我收到的答案,但尚未测试,在我测试了它的功能之前,我不会将其标记为答案。

答案是这个 django 项目,它是用于泄漏网站的,它将整个文件读取到内存中,然后对其进行加密。http://gitorious.org/deaddrop/deaddrop/blobs/master/drop/views.py

但是,有一种方法可以将数据分块

http://docs.djangoproject.com/en/1.3/topics/http/file-uploads/

还有一个问题,即httpd正在处理文件上传,并且可以忽略依赖于...所以我需要对它进行大量测试,然后才能确定它在做什么。

然而,也就是说,

我很确定你可以用 wsgi 做到这一点,我很确定 django 在你用 apache mod_wsgi时会做到这一点......不确定其他Web服务器使用什么,我更喜欢使用更轻量级的东西。

编辑:如果有人碰巧对此进行了严格的测试,并将其作为答案发布,我会将其标记为答案。

我最终做的是使用mod_wsgi.。

有了它,我可以将上传作为流,然后使用 PyCrypto 对其进行加密效果很好

        inputLength  = int(environ.get('CONTENT_LENGTH', 0))
        input = environ['wsgi.input']
        f = open(dropDir + '/input','w')
        while 1:
                remain = inputLength - f.tell()
                if remain <= 0: break
                chunk = input.read(min(chunksize, remain))
                if  not chunk: break
                f.write(crypt.encrypt(chunk))
        f.close()

当我这样做时,我最终使用有状态密码加密整个postdata并将其写入一个文件,然后在使用GnuPG加密后将密钥保存到另一个文件中。

最新更新