私のアプリケーションにはいくつかのコンポーネントがあり、Origin Verified という意味で安全な通信が必要です。これらのコンポーネントは共通の秘密を共有できません。したがって、非対称鍵暗号化を選択する必要があります。A
2つのコンポーネントがあり、B
AがデータF
を送信し、それが本当に送信されたことを確認する必要があるB
と仮定しますB
A
A
秘密鍵を使用してのダイジェストH
を生成するリクエスト パラメータに を添付し、発信元/送信者を送信および宣言する提供された に対してダイジェストを検証するF
A
A_pub
H
F
A
B
H
A_pub
F
どうやら問題ないように見えますが、他のコンポーネントV
が で同じことを行いV_pub
、自分自身を と主張しているA
場合でも、これはopensslで作成されB
ているため、要求が送信されたと考えられます。A
H
V_prv
この攻撃を防御したいV
ecparam
secp112r1
キーの長さを最小限に抑えるために使用しています。キーは繰り返し変更されます。
--編集--
A
、B
およびV
一意のによって識別されるアプリケーション コンポーネントURI
です。現在、安全なページ フローを制限することを目的としています。たとえば、 、 、 URL であると想定できます。A
私B
がV
望むのは、 にのみA
処理でき、 ... にB
のみB
進むことができC
、そのためのグローバル/アプリケーション全体のセッションを維持したくありません。そのため、状態/セッションなしの方法で渡さB
れた特別なパラメーターに基づいて、このリンクの発信元を確認できます。A
また、より一般的であるほど、他のシナリオでも実装するための再利用性が高くなります。
A_pub
信頼できるグローバルストレージにチェックサムを維持することを考えたことがあります。しかし、それはオーバーエンジニアリングではないでしょうか?
私の頭に浮かぶ別の方法は、公開鍵に関する元のURLを照会することです。しかし、私はそれを避けたいです。