0

セキュリティテスト証明書を取得する予定です。そのため、Paros ツールを使用してシステムをテストしています。システムはフロント エンドで GWT で記述され、データベース接続は Hibernate を介して行われます。このツールを使用してアプリケーションをテストすると、制限が必要な動作が発生します。

このツールは、サーバーに渡されるデータを表示できます。これは問題ありませんが、ツールを使用してデータを変更すると、データベース側のシステムで更新されます。これはセキュリティ上の大きな問題です。

誰かがこれで私を導くことができますか?

4

1 に答える 1

1

この問題の解決策をまだ探している場合は、リクエストの署名を使用できます。以前に言及しなかった理由は、要求の署名を確認したのは 1 回だけで、関連する証明書があり、ほとんどが Web Services Security Standard を使用していたからです。別の機会に、リクエスト署名の実装をモバイル アプリケーション向けにすることをお勧めしました。デバイス上にある証明書を使用して署名を実行でき、サーバーがこの署名を検証できるため (基本的に、公開キー暗号化メカニズム)。

コメントで述べたように、これには複数の側面があります。1 つは XSRF を防止することです。これには基本的に、攻撃者がリクエストをリプレイできないようにするための nonce を含めたり、認証されたユーザーに害を及ぼす可能性のあるリクエストを作成したりします。Javascript を使用して作成したものはすべて、攻撃者も作成できるため、このナンスはサーバーから取得する必要があります。このノンスにより、リクエストが時間固有であり、後でリプレイできないことが保証されます。

ただし、nonce では、ユーザーが敵対的なネットワークにいる攻撃を阻止することはできず、攻撃者はすべてのトラフィックに対して MitM 攻撃を実行しています。攻撃者は引き続きリクエストを変更できます。サーバーはそのナンスをこれまでに見たことがないため、リクエストを有効なものとして受け入れます。これを防ぐには、適切な対策を講じる必要があります。1 つは、すべてのトラフィックを SSL 経由にすること、2 つは、改ざんを防ぐためにすべてのリクエストに署名を付ける必要があることです。特に攻撃者が同じ署名を実行できないようにする必要がある場合、署名部分は特に困難です。私が見た例には、webapp の証明書レベルの認証と、これらの証明書を使用して署名を実行することが含まれます。これは、開発していると思われるアプリケーションの要件が厳しすぎる可能性があります。

PHP でこれを行う方法の例を次に示しますただし、このメカニズムを目的に合わせて調整できるかどうかはわかりません。OAuthも考えられる別の方法かもしれませんが、アプリケーションがそのように動作するのを見たことがないので、よくわかりません。

申し訳ありませんが、特定の方法論やコードの例はありませんが、私が見たほとんどの実装は、実際のコードの観点ではなく、設計の観点からのみです。

于 2012-09-05T18:56:28.003 に答える