私はHTTP Webサーバー上で安全なトランザクションを作成する必要があるプロジェクトを持っています。私は完全にクライアント(モバイルアプリケーション)を制御し、サーバーを制御します。クライアントがサーバーのデータベースに格納されている値を追加または減算できるシステムを開発したいと考えています。格納された値は通貨ベースであるため、数値が正確であることが重要です。私の質問は、誰かがHTTPトラフィックを再現し、自由に値を削除または追加することを防ぐ方法です。誰かがクライアントからパケットを取得し、サーバーの通貨の値に変更するために必要なHTTP POSTパラメータを表示し、いつでもそれらのパケットを再現することができます。HTTPトラフィックを再現性のないように強化するアイデア
私の最初の考えは、クライアントに新しい通貨の値を公開鍵で暗号化してから、サーバーにそれを秘密鍵で復号化させることでした。また、タイムスタンプとそのユーザー名を新しい通貨の値とともに埋め込んで暗号化してから、リクエストが常に異なるようにします。その後、サーバーはタイムスタンプをチェックして、それが過去10秒であれば拒否します。このアプローチの1つの問題は、クライアントまたはサーバが同期時間に基づいていない場合です。サーバはNTPと同期されますが、クライアントが正しくなるという保証はありません。
他のアイデアをいただければ幸いです。私は低レベルの実装の詳細を探しているわけではなく、高レベルの概要だけを探しています。理想的には、トランザクションのレートが高くなるため、ソリューションはクライアントまたはサーバーのどちらにも課税されません。