security - 处理跨多个程序的加密文件以确保数据的安全性和保密性
问题描述
我有以下情况,需要一些建议。我有 3 个程序 A、B 和 C 我有一个以某种格式编写的文件并且它是加密的。程序 A 可以解密文件,程序 B 将文件格式转换为另一种所需的格式,程序 C 加密来自 B 的输出文件。现在此行为的建议流程是解密文件并将其写入桌面,然后将其转换为B 将输出写入磁盘,然后使用 C 对其进行加密。但这并不安全,因为在步骤 B 之后仍然没有加密时有人可以查找文件。我们如何处理这种情况以确保文件的安全性和保密性该文件中的数据?
解决方案
这是一个涉及工作流程而不是软件代码本身的广泛问题,因此我将提供一些高级信息。
你是正确的,如果可能的话,你永远不应该将解密的数据写入磁盘。几乎总是有更好的方法来处理此类工作流,并且应该以其他方式解决阻止它的限制。
例如,通常最好由单个应用程序处理 A、B 和 C 的功能,而不是单独的应用程序。这允许您使用安全内存来处理函数,因此您不会写出解密的数据。
如果由于外部要求/限制而无法做到这一点,那么您可以考虑一些选项(就像其他人提到的那样),例如在不同的应用程序进程之间使用基于套接字的安全通信。这假定每个应用程序都在套接字上运行/侦听,以便它们可以安全地通信,所以如果这不是真的,你需要一种不同的方法。您是在编写应用程序 A、B 和 C,还是由其他人创建的?为此,应用程序 A 通过安全套接字连接到 B,调用一个函数(例如在您的情况下为“convert”),然后发送要转换的数据的数据流。
如果您不能使用安全套接字,或者如果机器位于没有进程间通信的不同系统上,您将需要一个安全传输层,以便应用程序可以安全地来回传输文件。这可以使用 TLS 和其他具有不同编码数据格式的方法来完成。我假设在您的示例中它们位于同一台机器上,因为它们都能够看到相同的文件,因此最后一点可能不适用于您。
我希望这会有所帮助。
推荐阅读
- python - -0 是 min() 的问题,还是其他问题?
- python - 在熊猫中,如何检查两个字符串是否与现有数据框中任何行中的多列匹配并将其删除
- node.js - Twillio accountid 和令牌问题
- delphi - 自定义控件中的子面板是否可以接受来自设计器的控件?
- angular - TypeError:无法读取 null 的属性“环境”
- java - 在 Dropwizard 中添加依赖项
- python - python没有用shell脚本执行
- arrays - 为什么数组类型没有 Add() 方法,尽管它们实现了 IList
? - c# - 如何使用类属性在 .NET Core 2.1 上获取 JSON 响应
- python - 使用 beautifulsoup 进行 HTML 解析适用于大多数 URL,除了我想要的那个