为那些拥有秘密的人设计的应用程序。
该项目的目标是创建一个图像存储应用程序,最大程度地强调数据的保密性。同时,它允许用户在方便和保护之间选择一个微妙的平衡。如果你担心有人在追踪你,我们会将保护力度加强到最大。如果你只是需要隐藏手机被别人拿到的重要文件,我们提供较少的保护。
常见功能:
图片对相册和其他应用程序不可见;它们存储在应用程序的内部目录中,文件名和扩展名已修改。
对应用程序的访问受到密码和伪装功能的保护,类似于音乐应用程序内的应用程序。另外的安全措施是为了防止未经授权的访问,当30次尝试失败后,应用程序将清除存储和所有数据。
应用程序以使用高级加密标准对照片进行加密的形式捕捉和存储照片。
安全概念:所有数据仅存储在用户的设备上;不应用存储用户图像、缩略图、密钥和密码的服务器端架构。但是,用户可以以加密和解密的形式分享图像(自担风险)。接收其他用户的图像并使用相似的加密密钥解密它们是可能的。
数据存储特点:
缩略图存储在应用程序的内部目录中,文件扩展名为“.p”,且未加密。可以在设置中选择缩略图的像素比例,从1x1像素(不可见)到100x100像素(大致可辨别的内容)。
原始图像存储在应用程序的内部目录中。当使用加密时,文件保存为“.kk”扩展名。如果用户选择不使用加密,则文件保存为“.o”扩展名。当用户分享一个解密的图像时,会创建一个带有“.peekaboo”扩展名的临时文件。在此形式下,文件可以通过任何可用的方法发送。一旦用户关闭此图像的查看窗口,解密的副本将从设备中删除。加密图像仅以加密形式存储。用户可以通过设置菜单更改加密设置。
加密密钥和密码以安全形式存储在设备上。基于安全原因,没有恢复密钥和密码的选项。如果忘记访问应用程序的密码,最好的解决方案是卸载并重新安装应用程序。在丢失加密密钥的情况下,可以在不重新安装应用程序的情况下创建另一个密钥;然而,使用旧密钥保存的图像将无法访问。
加密系统操作特点:
该应用程序有三种加密模式:
永久加密密钥(方便和保护之间的平衡)。用户想出或生成一个加密密钥,该密钥保存在设备上。该密钥用于根据高级加密标准对文件进行加密。文件以加密形式存储在设备上,即使能够访问设备的内存(或接收从设备发送的加密文件),攻击者也无法在没有加密密钥的情况下读取内容。密钥以受保护的哈希函数形式存储在应用程序中。
可变加密密钥。如果用户输入一个密钥并勾选“不保存加密密钥”选项,密钥将不会存储在应用程序中,并且每次输入时都会被请求。密钥仅在应用程序打开时存在。最高级别的安全性;然而,如果忘记旧密钥,则先前使用此密钥保存的文件将无法访问。
不加密。
加密功能使用高级加密标准(AES)+安全哈希算法(SHA)对图像进行加密。
AES(高级加密标准)
该应用程序的功能实现了使用高级加密标准(AES)对图像进行加密的算法。该算法使用对称密钥和AES标准来确保在传输或存储过程中的图像安全性。
总体过程:
• 从应用程序创建和提取主密钥,用作形成加密密钥的基础。
• 对主密钥应用SHA哈希函数以获取固定长度的密钥。
• 使用AES算法初始化密码对象,并使用获得的密钥。
• 使用AES对来自原始流的数据进行加密。
• 将加密数据写入输出文件。
• 关闭流。
SHA(安全哈希算法)
哈希函数具有以下关键特征:
• 哈希长度。 SHA生成固定长度的哈希值(出于安全考虑,哈希值的长度不公开)。
• 抗碰撞性。 SHA提供高度的抗碰撞性,防止不同输入消息产生相同的哈希值。 SHA理论上可能发生碰撞,但要发生碰撞需要大量的计算资源。
应用程序的主密钥用作形成加密密钥的基础。使用SHA将主密钥转化为固定长度,确保获取固定长度的哈希,然后将其用作加密密钥。