保护用户的客户端数据

信息安全 加密 渗透测试 客户端 正直
2021-08-27 02:55:38

所以我的问题,一般来说,是加密测试问题,以便客户端测试应用程序可以访问问题,而学生不能。在我看来,最简单的方法是使用对称密钥算法,将密钥硬编码在应用程序中,对问题进行加密和解密。问题当然是任何具有一定安全意识的学生都可以恢复密钥。

假设基于服务器的方法不可行(没有互联网连接),有没有办法在这种情况下保护问题,以便应用程序可以解密它们,学生不能,并且密钥不存储在应用程序中?我怀疑我知道答案,但我想听听那些比我更有知识的人。

1个回答

不,如果用户完全控制系统及其硬件(可能还有很多钱;攻击硬件可能会变得非常昂贵),您就无法完全保护数据。

如果这只是为了防止作弊,那么以模糊的方式对加密密钥进行硬编码(这样字符串就不会找到它)应该就足够了(任何打破它的学生都可能无论如何都应该得到一个好成绩)。

如果您将硬件与软件一起分发(如果没有互联网,您将如何将其传递给学生?)您可以采用 raz 建议的方法:使用基于计算机硬件的密钥加密数据(例如,通过添加硬件PUF;但同样,对硬件的访问意味着它可以被破坏)。

您还可以研究受信任的计算,它试图实现您想要的(但是,完全访问硬件意味着可以用足够的金钱和时间绕过它)。