从Flash客户端验证文件的真实性,而不显示密钥

时间:2014-01-09 12:38:19

标签: python flash security hash digital-signature

我正在构建一个在Web上运行的Flash应用程序,用户可以使用我的服务(使用Python构建)访问和创建自己的内容。具体来说:用户发送一些数据;在服务器上执行一些转换;然后将完成的内容发送回用户,由客户端应用程序呈现。

我希望能够阻止客户端呈现虚假内容,我可以通过传递密钥哈希以及服务器生成的主要内容来实现。然后,客户端将使用相同的密钥再次对内容进行哈希处理,并确认哈希/签名是否匹配。如果存在不匹配,则可以假设内容不真实。

我遇到的问题是将密钥保存在SWF中是不安全的。我已经考虑了一些混淆密钥的方法,但我知道如果攻击者想要它,他们可以很容易地得到它。一旦攻击者拥有了这一点,他们就可以开始创建自己的内容,以便在不知不觉中被客户接受。

我是否有另一种方法可以在客户端验证文件的签名,而不会暴露用于创建该签名的方法?

1 个答案:

答案 0 :(得分:2)

  

我是否有另一种方法可以在客户端验证文件的签名,而不会暴露用于创建该签名的方法?

公钥加密。您在客户端只有一个公钥,并要求服务器端的私钥生成一个签名供其验证。

你想要阻止的攻击是什么?如果您担心无辜用户和服务器之间的中间人攻击,那么明智的选择就是TLS(HTTPS)。这是一种预先熟化的,已知良好的实现,包括公钥加密。滚动你自己的加密是非常可取的,这很容易出错。