Android 中加密媒体(图片、视频和音频)的最安全方法
Safest method to Encrypt media (pictures,videos and audio) in Android
我必须确保我的应用程序获取的媒体(图片、视频和音频)已加密并且在应用程序范围之外不可见。为此我不确定我是否应该使用 AES 加密或 Libsodium。从论坛上看,这两种方法都受到好评,因此在内存需求、速度和整体安全性方面,哪种方法最强、最有效。
其次,在应用程序没有任何 Internet 连接的离线情况下,这是管理加密密钥的最安全方式?
Libsodium 是一个备受推崇的库,AES(高级加密标准)是一种非常安全的加密算法,它们不是一回事。
Libsodium 在 GCM 模式下提供 AES,这非常好,因为它包含身份验证。
Libsodium 的问题是可用的算法有限,因此互操作性很低。
安全性在很大程度上取决于您的实施的安全性,加密中的任何错误或误用都会破坏安全性。
定义您要保护的对象,从好奇的青少年到资金充足的政府,并设计安全性以满足您需要的级别。
管理密钥是一个非常困难的问题。在 phone 上通常是某种形式的密钥存储库,这可能是您能做的最好的。但这取决于用户是否有良好的密码。
如果您想要一个非常安全的系统,请支付密码领域专家审查您的方案和代码的费用。
更新:
唯一安全的密钥管理是不在设备上拥有密钥;根据我的 SME(主题专家)。要求用户在每次调用应用程序时输入密码,并确保在每次使用后关闭应用程序。然后,您将需要添加代码以限制访问尝试的速率,并可能出现指数退避延迟。最后,用户必须有一个非常好的密码。
我必须确保我的应用程序获取的媒体(图片、视频和音频)已加密并且在应用程序范围之外不可见。为此我不确定我是否应该使用 AES 加密或 Libsodium。从论坛上看,这两种方法都受到好评,因此在内存需求、速度和整体安全性方面,哪种方法最强、最有效。
其次,在应用程序没有任何 Internet 连接的离线情况下,这是管理加密密钥的最安全方式?
Libsodium 是一个备受推崇的库,AES(高级加密标准)是一种非常安全的加密算法,它们不是一回事。
Libsodium 在 GCM 模式下提供 AES,这非常好,因为它包含身份验证。
Libsodium 的问题是可用的算法有限,因此互操作性很低。
安全性在很大程度上取决于您的实施的安全性,加密中的任何错误或误用都会破坏安全性。
定义您要保护的对象,从好奇的青少年到资金充足的政府,并设计安全性以满足您需要的级别。
管理密钥是一个非常困难的问题。在 phone 上通常是某种形式的密钥存储库,这可能是您能做的最好的。但这取决于用户是否有良好的密码。
如果您想要一个非常安全的系统,请支付密码领域专家审查您的方案和代码的费用。
更新:
唯一安全的密钥管理是不在设备上拥有密钥;根据我的 SME(主题专家)。要求用户在每次调用应用程序时输入密码,并确保在每次使用后关闭应用程序。然后,您将需要添加代码以限制访问尝试的速率,并可能出现指数退避延迟。最后,用户必须有一个非常好的密码。