Python:加密作为防止数据篡改的手段

Mar*_*off 1 python encryption data-integrity tampering

我公司的许多客户都在研究基础上使用我们的数据采集软件.由于一般研究的性质,一些客户要求加密数据以防止篡改 - 如果他们的数据被证明是伪造的,可能会有严重的后果.

我们的一些二进制软件使用存储在源中的密码加密输出文件,该密码看起来像随机字符.在软件级别,我们可以打开加密文件以进行只读操作.如果有人真的想找到密码以便他们可以改变数据,那么这是可能的,但这将是很多工作.

我正在研究使用Python来快速开发另一个软件.要复制加密功能以阻止/阻止数据篡改,我到目前为止提出的最好的想法是使用ctypesDLL进行文件读/写操作,以便加密和解密的方法"足够"模糊处理.

我们清楚地意识到"无法破解"的方法是无法实现的,但与此同时,我显然不满意只是在Python源代码中以纯文本形式使用加密/解密方法.我认为,"非常强烈的数据篡改劝阻"已经足够好了.

使用Python获得加密或其他数据完整性证明的最佳方法是什么? 我看到另一篇文章谈论生成"防篡改签名",但如果签名是用纯Python生成的,那么为任意数据生成签名都是微不足道的.我们或许可以打电话回家来证明数据的完整性,但这似乎对所有参与者来说都是一个很大的不便.

Mar*_*ler 12

作为一般原则,您不希望使用加密来防止篡改,而是希望使用数字签名.加密为您提供机密性,但您追求诚信.

计算数据的哈希值,并将哈希值存储在您知道无法对其进行篡改或对其进行数字签名的位置.

在您的情况下,您似乎想确保只有您的软件可以生成文件?就像你说的那样,当你的用户可以访问软件时,就不可能有一种非常安全的方法来实现这一点,因为他们可以将它拆开并找到你所包含的任何密钥.鉴于这种约束,我认为您使用DLL的想法与您可以做到的一样好.