3

皆さん、

興味深い技術的課題があります。ソフトウェアの使用状況を追跡する安全な監査ファイルを作成して、ライセンス料を使用状況に基づいて設定し、使用頻度の低い人にとって手頃な価格にする方法。

具体的には、TickZoom はヘッジファンド向けのアルファ世代の取引プラットフォームを販売しており、現在、サポートを含めて月額 2,000 ドルのライセンス費用がかかります (まもなく 2 倍以上に値上がりします)。これは機関にとっては問題ありませんが、個人にとっては高すぎます。個人は、固定料金を支払う余裕ができるまで、ソフトウェアを使用して得た利益の一部と引き換えに、より低い価格を要求することがよくあります.

私たちはその提案が好きです。しかし、プラットフォーム上で実際に生み出された利益を監査する信頼できる方法と、ユーザーが監査ファイルを削除または上書きして実際よりも低い利益を報告することで「ゲーム」を行うのを防ぐ方法が必要です。

このアプリケーションは C# で記述されており、システムのこの部分は難読化されており、少なくともコードの解読が困難になっています。

もう 1 つの要件は、取引が発生するたびにファイルに書き込むことです。これにより、ユーザーが合計料金に何らかの不一致があると感じた場合に、より詳細な監査が可能になります。そうすれば、個々のトレード利益をブローカーのステートメントと比較できます。

もちろん、ファイルが暗号化されることが想定されています。

しかし、それを「改ざん防止」にする方法についてのアイデアはありますか? 特に単純な削除の試みに対して?

私の最初の推測は、ソフトウェアが常に既存の監査ファイルを必要とするようにすることです。そうしないと、実行を拒否します。

次に、ソフトウェアを配布すると、「空の」監査ファイルがパッケージ化されますが、実際には、何らかの改ざん防止検証が行われています。

ユーザーがファイルを「改ざん」しようとする次の明らかな手法は、誰かがその元の「空の」ファイルを単にバックアップし、後でそれを使用して後で監査ファイルを上書きし、システムをだましてそれが新たなスタートであると思わせることです。

おそらく、ある種の「最終更新タイムスタンプ」と有効期限を含めることで解決できます。

また、まったく異なるソリューションのアイデアも歓迎します。この場合、取引が中央サーバーに記録されるように、「家に電話」機能を追加する必要があるかもしれません。しかし、これは不利なように思われ、ミッション クリティカルなアプリケーションに別の障害点を追加する可能性があります。一般的に、彼らは明らかに正当な理由で「家に電話」機能を非常に嫌います。

敬具、ウェイネック

4

3 に答える 3

5

問題のステートメントは次のとおりです。

  • 私たちはクライアントを信頼していません。クライアントは敵対的である可能性があります。
  • 信頼できるデータをクライアントに送信してもらいたいのです。

この問題の解決策はありません。「Bob という名前の 2 人の男と、Bill という名前の 2 人の男を見つけたいのですが、Bob は Bill より 1 フィート背が高く、Bill は Bob より 1 フィート背が高い」と言うのもよいでしょう。あなたはその財産を持つ2人の男を見つけるつもりはありません.

敵対的なクライアントが所有している可能性のある、所有していないマシンからの情報は絶対に信頼できません。私のアドバイスは、不可能な問題を解決しようとして貴重な時間を無駄にしないことです。その時間を、あなたが所有し、信頼しているサーバーを、敵対的なクライアントに対して堅牢にすることに費やしてください。

于 2010-01-27T22:45:33.737 に答える
2

いいえ、すべての収益をリアルタイムでサーバーに報告する以外にできることはないと思いますが、それでも問題があります.

- 編集:

私が見ているように、あなたは唯一の選択肢です:

  • システムを Web ベース (または少なくともシン クライアント) に変換し、サーバー上ですべてのトランザクションを実行します。

明らかに、ローカルベースのシステム全体をすでに開発している場合、これはおそらくかなり非現実的です。

  • 破るのが「難しい」手の込んだスキームを考え、人々がそれを破らないことを願っています

そして、このメソッド内で、ショップがXを稼いでいるかどうかを示すある種のプロファイリングと、突然X-sigificantAmountを組み合わせて、もはや利益を上げていないことを判断できます。 ) しかし、これはかなりプライバシーの侵害に近いものであり、まったく適切ではない可能性があります。

実際には、可能性のある利益に対してリスクを比較検討するか、これらの人々に販売する方法について別の角度を見つける必要があると思います (つまり、インターフェース/アプリ自体に総資金の X のみを管理させ、それが超過した場合は、プロバージョンなど)。

于 2010-01-25T03:33:17.583 に答える
1

ユーザーがソフトウェアとのセッションを終了するたびに、監査ログに基づいてハッシュを生成します。ハッシュを暗号化し、それを別のファイル (おそらくバイナリ内に隠されている) またはレジストリに書き出します。

次にユーザーがアプリケーションを開いたときに、ログ ファイルを読み取り、ハッシュを再生成して、記録された値と一致するかどうかを確認します。そうでない場合は、「Audit file tampered with」というエラー メッセージが表示されてアプリケーションをシャットダウンします。

完全にばかげているわけではありませんが、かなりしっかりしています。

また、この質問をチェックしてください

于 2010-01-25T05:54:54.240 に答える