上司から、.NET で開発された Web ベースのアプリケーションを保護する方法を見つけるという任務が与えられました。合意により、当社で開発された製品は会社の資産であり、開発者でなくてもコードにアクセスできます。しかし、私の上司は、開発者がコードを盗んで自宅から起動しようとした場合に製品を保護する方法を知りたがっていますか?
これを制御する方法を教えてください。
上司から、.NET で開発された Web ベースのアプリケーションを保護する方法を見つけるという任務が与えられました。合意により、当社で開発された製品は会社の資産であり、開発者でなくてもコードにアクセスできます。しかし、私の上司は、開発者がコードを盗んで自宅から起動しようとした場合に製品を保護する方法を知りたがっていますか?
これを制御する方法を教えてください。
開発者が持っている場合:
できることはあまりありません。難読化やコード保護などは、コンパイラがコードを確認した後にのみ有効になります。開発者が自分のマシンで完全なエンド ツー エンド コードをコンパイルできるようにすると仮定すると、顧客がコードを盗むのを防ぐために通常配置できるものを無効にすることは難しくありません。
とは言っても、Web ベースのアプリケーションの場合、難読化のようなものを防御メカニズムの最前線として使用することはありません。があなたのサイトを侵害し、あなたのアセンブリのコピーを取得しました。
最終的に、これが、このようなものに関する保護がコンピューター言語ではなく法律用語で書かれている理由です。
(ところで、これはこの質問の複製であり、いくつかの素晴らしい回答があります-残念ながら、これを再タグ付けした後にのみ発見しました)
開発者がコードを部分的に記憶し、自宅で毎日再入力するとどうなるでしょうか。あなたの上司に尋ねてください、彼はそれについてどうしますか? 「メン・イン・ブラック」のように開発者のメモリをリセットしますか? 笑。シュリンクには、上司の態度を表す医学用語があります。
私のアドバイスは次のとおりです。上司に任せるか、信頼できる他の開発者を雇うように伝えてください。
頭のてっぺんから...すべてのUSBポート、CD-ROMドライブをリッピングし、インターネットを無効にします。
ソースコードを保護することはできません。
彼の塩分に値する開発者は、自分が書いたものを再現する方法を正確に知っています。彼はそれを作った人なので、彼は再びそれを行うことができます.
あなたができる唯一のことは、特許と著作権で製品を法的に保護することです.
上司に、自分の開発者を信頼するよう伝えてください。そして、開発者に良い給料を与えるように彼/彼女に伝えてください。コードは開発者によって記述されるため、どのように独自のコードを書き換えることができます。
合法化、そしてそれがあなたにできるすべてです。
通常、これは技術的な問題ではありません。弁護士を雇うことで、開発者のコードの盗難を管理します。
再配布可能な.NETコードを「保護」することは十分に困難ですが、自分の開発者からコードを保護することは(ほぼ)不可能だと思います。
更新: チャレンジのために、建設的な提案もあります。スパイネットワークのように開発者を組織します。地理的に離れた場所で合意された仕様に基づいて個々のモジュールで作業し、情報ハブとして機能させます。モジュールを自分で、または1人の信頼できる人の助けを借りて統合します。このように、アプリケーションを「自宅で」動作させるためのすべての要素を開発者が持っているわけではありません。
ソース管理ソフトウェアを正しく使用します (Visual Studio Team System にはこれが組み込まれています)。次に、誰がコードを持っているかを知る必要があります。
これにより、コードの実行と配布が停止されることはありませんが、コードを最後にチェックアウトした人がコードの所在について責任を負うことになります。