如何加密扭曲的文件?

时间:2011-06-22 10:06:18

标签: python encryption twisted obfuscation

我正在使用twisted来创建服务器。 问题是,我必须保护我的代码。因为我不想发布它,所以我并没有真正考虑混淆或编译python代码。 我的问题是,我的扭曲应用程序必须使用root uid运行,很多人都有root访问权限。 我不在乎他们是否可以阅读,但我想确定他们无法修改它! 什么是最好的解决方案,知道我使用扭曲?我在twistd,tapconvert和mktap中看到扭曲可以“加密”我的代码,但我没有找到任何关于它的好文档。 有人帮我吗?

预先感谢任何答案=) 祝你有愉快的一天!

/!\编辑: 我还有另外一个问题,我已经根据扭曲文档的这一部分编写了我的代码:http://twistedmatrix.com/documents/current/core/howto/application.html所以我使用像twistd -y server.py --logfile这样的命令来启动服务器... 既然我这样做,我想我不能使用像cx_Freeze这样的软件隐藏我的代码吗?

2 个答案:

答案 0 :(得分:4)

这里有很多问题。

  

我的扭曲应用程序必须使用root uid运行

这很糟糕。如果您的应用程序中存在漏洞,那么通过以root身份运行它们将变得更加严重。您应该考虑找到一种不以root身份运行的方法。例如,如果您只以root身份运行以便绑定到编号较小的端口,请考虑使用authbind代替。

  

很多人都拥有对此服务器的root权限

也许您应该限制对实际需要它的人的特权访问。如果这不是一个选项,那么您或许应该至少限制对您可信任的人的访问权限。在计算机上拥有root权限的人可以在该计算机上执行任何他们想要的操作,并击败您梦寐以求的任何计划。

  

我不在乎他们是否可以阅读,但我确定他们无法修改它!

那么你应该让他们不要修改它。

  

我在twistd,tapconvert和mktap中看到扭曲可以“加密”我的代码,但我没有找到任何关于它的好文档。有人帮我吗?

你不应该费心去尝试使用twistd和mktap的加密功能。这些不会阻止任何人更改您的代码。充其量他们可能会阻止某人阅读其中的一些内容。正如你所说,这甚至不是你的目标。即使这是你的目标,拥有超级用户权限的人也可以轻松解密这些文件,因此它甚至无法提供帮助。

如果您向某人提供代码,希望他们能够随心所欲地做任何事情。如果您将代码放在服务器上,那么您实际上是将其提供给对该服务器具有root访问权限的所有人。

所以,不要再考虑加密和其他技术问题,并考虑其他方法来实现目标 - 解雇不值得信任的管理员,在代码上使用适当的许可证,获得实际合同等等。

答案 1 :(得分:0)

AFAIK,无法阻止root用户修改纯文本文件。 Root就是这样,他们可以随心所欲地做任何事情,包括修改。为什么这么多人都可以根本访问机器?

如果你担心,你真的有两个选择:

  1. 以您想要的任何方式加密文件(我不知道Twisted是否这样做或者如何)

  2. '编译'您平台的代码。有一些Python编译器,但我不知道它们是否适用于Linux。我是一个自由软件的人,所以我希望人们阅读和修改我的代码。保护它并不关心我。

  3. 我想你确实有第三种选择,可以通过许可合法地保护它。但是如果他们违反了你的许可证,那么将他们告上法庭是有代价的。

    选择不多。遗憾。

    安东尼