我创建的程序是c++
,它依赖于我的Ubuntu 14.04桌面上的文件夹中包含的敏感信息。我需要一些方法来保护这些信息。
基本上我在我的应用程序上设置了两个按钮。一个用于加密文件夹,另一个用于解密文件夹。但是,我没有加密经验,甚至不知道你是否可以加密文件夹本身。我发现的大多数教程只讨论加密文本。一位朋友建议使用AES加密,但同样,我只能找到显示如何加密文本的教程。
有谁知道保护这些文件夹的方法?它们包含大量关于患者信息的图像(.bmp和.png文件类型)以及一些文本文件。显然,最快的方法是最好的,只要它们不按下按钮就不容易访问。
答案 0 :(得分:4)
加密不是一些可以放弃某些数据的魔术棒,并加密它。如果您的应用程序有一个自动"解密"数据,这意味着其他任何人都可以做到这一点。要使此按钮按照您的描述工作,您的应用程序必须在逻辑上知道解密数据所需的所有内容。如果是这样,一个坚定的攻击者可以简单地获取你的应用程序的副本,调试它,找出它如何解密数据,以及游戏结束。
至少需要一个密码来解密数据;因此单独的应用程序不足以实现加密和解密。
就实际技术而言,Linux上提供通用加密功能的两个主要软件库是OpenSSL和GnuTLS。两者都提供了所有标准对称和非对称密码套件的可比较实现。
我相信GnuTLS是一个更好的API,这就是我推荐的。 GnuTLS的C API设计自然适用于轻量级C ++ OO包装外观。 GnuTLS库提供了大量文档,因此您的第一步是阅读文档;此时,您应该拥有在应用程序中实施加密的所有足够信息。
答案 1 :(得分:1)
只是一个简单的观点。
你将不得不制作一个blob,你可以将其作为文件系统安装。当人们使用它时,您还必须决定如何控制对该文件系统的访问。此外,人们将如何同步访问。做错了,两个人会同时写到同一个区域并创建一个没有人会解密的东西!
请查看dm-crypt和TrueCrypt的源代码,但是如果您想限制访问权限超出您的操作系统支持的权限系统,您可能会发现自己的方式。
答案 2 :(得分:1)
您需要构建私有文件系统,因此每个文件操作员都必须通过您的应用程序。你可以加密文件包含给用户。