2012-01-27 20 views
0

私はDSSを使用してソフトウェアライセンスをエンドユーザーに配布することを検討しています。偽のデジタル署名からソフトウェアライセンスを保護する方法は?

基本的に、ソフトウェアライセンスは、ソフトウェアモジュールと企業情報を含む単純なテキストファイル/ xmlファイルです。このファイルは、秘密鍵を使用して署名されます。

ソフトウェアライセンスとデジタル署名は、エンドユーザーのコンピュータに展開されます。アプリケーションが起動すると、既知の公開鍵でソフトウェアライセンスが有効かどうかが確認されます。有効な場合は、ソフトウェアライセンスの情報を読み取り、使用が許可されている機能を有効にします。

しかし、これはこのプロトコルの弱点です。ソフトウェアライセンスは読み取り可能なテキストファイルです。誰でも公開鍵/秘密鍵のペアを生成し、ソフトウェアライセンスに署名し、ソフトウェアを偽の公開鍵でパッチすることができます。検証プロセスに合格し、独自のソフトウェアライセンスを作成することができます。

偽のデジタル署名から保護する良い方法はありますか?

答えて

2

著作権侵害からソフトウェアを完全に保護することは不可能です。何があっても、何らかの形で公開鍵を配布しなければならず、海賊はそれを自分のものと交換することができます。しかし、あなたはそれをより困難にしようとすることができます。たとえば、公開鍵を実行可能ファイルに文字列として埋め込むことによって実現できます。見つけにくくするために基本的な暗号化を行うことさえできます。

しかし、あなたのソフトウェアがクラックする価値がある場合は、がクラックされます。

3

コードを開発するためにどのツールを使用しているのかわかりませんが、.NETフレームワークでこれを実現する方法はexcellent descriptionです(http://www.codeproject.com/Articles/4940/Using-XML-Digital-Signatures-for-Application-Licenを参照)。公開鍵は、アプリケーション自体のコードに埋め込まれています。 Rubyプラグインのライセンスを取得するために、これと同じスキームを使用しました。

本当に誰かがあなたの保護を傷つけることに決めたら、彼らはそれをします。しかし、このスキームはあなたのソフトウェアを奪い取ろうとする人の99.9%を抑えるでしょう。

+0

私は99.9%をどこから得るのだろうか:)誰かが実際にそれを解きたいと思ったら、彼らはそれを壊してしまいます。残りのユーザーは、インターネット上の亀裂を探します。 –

+0

フリーソフトウェアを望んでいるほとんどの人は、コーディングの見通しによって阻まれるカジュアルなユーザーです。私はこの計画が防水であるとは思わないが、日和見の海賊を抑止すべきである。そして、それはまったく保護よりも血まみれの良い光景です。 頑丈で徹底的な泥棒が私たちの最善の努力にもかかわらず家に入るだろうが、ドアと窓を開けたままにしておくことを薦めている人はいない。それは愚かな議論です。 – deadlyvices

0

誰でも公開鍵/秘密鍵のペアを生成し、ソフトウェアライセンスに署名し、ソフトウェアを偽の公開鍵でパッチすることができます。検証プロセスに合格し、独自のソフトウェアライセンスを作成することができます。

偽のデジタル署名から保護する良い方法はありますか?

誰かがデジタル署名のチェックを完全に無効にするのを防ぐのと同じ方法です。あなたの質問は、あなたの2番目のストーリー左端のウィンドウに泥棒が来るのを防ぐ方法を尋ねるようなものです。それは彼が通過しようとしている窓ではなく、どんな場合でも、あなたは彼があなたの他の窓から来るのを妨げるのと同じ方法で彼を守っています。

+0

これはコメントのほうが多く、答えは少ないですね。 – mkl

+0

@mkl私は正直なところ、この質問に対する最良の答えだと信じています。私は質問をdownvoteでした。 –

関連する問題