2011-06-22 4 views
1

私はtwistedを使用してサーバーを作成しています。 問題は、自分のコードを保護する必要があることです。私はそれを公開したくないので、私はPythonコードの難読化またはコンパイルに本当に集中していません。 私の問題は、私のねじれたアプリケーションがrootのuidで実行されなければならず、多くの人がこのサーバーにrootアクセスできることです。 読めるかどうかは気にしないが、修正できないようにしたい! 私はねじれを使用していることを知って、最高の解決策は何ですか?私はtwisted、tapconvert、mktapの中でtwistedが自分のコードを "暗号化"することができることを見てきましたが、それについての良い文書は見つかりませんでした。 誰かが私を助ける?ねじれたファイルを暗号化するには?

お返事ありがとうございます=) よろしくお願いいたします。

/!EDIT: 別の質問がありました。ねじれたドキュメントのこの部分に従ってコードを書いています:http://twistedmatrix.com/documents/current/core/howto/application.html twisty -y server.py --logfileのようなコマンドを使ってサーバを起動します... 私はそれをやっているので、私は自分のコードを隠すためにcx_Freezeのようなソフトウェアを使うことはできないと思いますか?

答えて

4

ここでは多くの問題があります。

私のねじれたアプリケーションは、これは悪いですルートUID

で実行する必要があります。アプリケーションに脆弱性が存在する場合、それらはルートとして実行することによってより深刻になります。ルートとして実行しない方法を見つけることを検討する必要があります。たとえば、番号の小さいポートにバインドできるようにrootとして実行する場合は、代わりにauthbindを使用することを検討してください。

多くの人々は、このサーバ

へのrootアクセス権を持っているおそらく、あなたが実際にそれを必要とする人々への特権アクセスを制限する必要があります。それがオプションでない場合は、おそらくあなたがを信頼できる人に少なくとも人のアクセスを制限するべきです。マシンに根を持っている人は、マシン上で必要なものを何でもでき、あなたが夢を見ているスキームを倒すことができます。

読めるかどうか気にしませんが、修正できないようにしたいと思います。

あなたはそれを変更しないように頼んでください。

私はtwisted、tapconvert、mktapでtwistedが自分のコードを "暗号化"することができましたが、それについての良い文書は見つかりませんでした。誰でも私を助ける?

twistdとmktapの暗号化機能を使用しても構いません。これらは誰でもあなたのコードを変更することを妨げません。せいぜい、誰かがそれを読んでしまうのを防ぐかもしれない。あなたが言ったように、これはあなたの目標でもありません。たとえそれがあなたの目標であったとしても、ルートアクセス権を持つ人はこれらのファイルを簡単に解読できるので、そこでは助けにはならない。

誰かにコードを渡す場合は、何かと自分が望むすべてを行うことができると期待してください。サーバーにコードを置くと、そのサーバーへのルートアクセス権を持つすべての人に効果的にコードを渡します。だから、

、暗号化およびその他の技術的な問題について考えることを停止し、あなたの目標を達成するためにいくつかの他の方法を考える - 、信用できない管理者を発射コードに適切なライセンスを使用して、実際の契約を得る、など

+0

お返事ありがとうございます。私のソフトをrootのuidで動かす主な理由は、ルートとしても動作する必要がある他のバイナリをある時点で起動する必要があるからです。私は現在、この問題に取り組んでいます。私は信頼していない人からサーバーへのアクセスを削除しようとしていますが、これを達成するには数回かかるでしょう。とにかく、誰かがそれを読んでしまうのを防ぐのに興味があります、おそらくそれは悪い同僚にそれを修正することを妨げるでしょう)。私はtwistdの暗号化の仕組みについての私の "文化"にも興味があります。リンクがあれば...ありがとう! – unpythonicguy

0

私の知る限りルートユーザーがプレーンテキストファイルを変更できないようにする方法はありません。ルートはちょうどそれです、彼らはそれを修正することを含めて彼らが望む何でもすることができます。とにかく多くの人がマシンにrootアクセスできるのはなぜですか?

あなたが気になる場合、あなたが実際には2つのオプションがあります(ツイストはそれをしないか、どのようならば、私は知らない)

    1. 暗号化あなたが好きな方法でファイルをあなたのプラットフォーム用のコードをコンパイルしてください。 Pythonコンパイラがいくつかありますが、Linuxで動作するかどうかはわかりません。私は自由なソフトウェアだから、コードを読んで変更するようにしたい。それを守ることは私の心配ではありません。

    私はライセンスで合法的に保護するという3つ目の選択肢があると思います。しかし、彼らがあなたのライセンスに違反した場合、それを裁判所に連れて行くコストがあります。

    多くのオプションはありません。ごめんなさい。

    アンソニー

  • +0

    あなたの答えをありがとう。私のソフトウェアは私の会社の内部使用のみです。サーバーはFreeBSDを実行しており、約10人がrootアクセス権を持っていますが、これは本当の問題だと私は知っています...しかし状況は簡単には変更できません。私はtapconvert、mktapとtwistdはファイルを暗号化するオプションを持っていたのでねじれについて尋ねましたが、どのように動作するのかわかりません。 – unpythonicguy

    +0

    データを暗号化したり、コードをコンパイルしても、コードが変更されたり、意味のある方法で読み取られることはありません。これは悪いアドバイスです。どちらの方法で実行してもコンパイルされたコード(特にPythonの場合)は読みやすくなります。 – Glyph

    関連する問題