デジタル署名で否認防止と整合性がどのように達成されるかは理解していますが、まだ把握していないのは認証です。
私は C# でクライアント サーバー アプリケーションを開発しています。これは、デジタル証明書とデジタル署名による認証が可能である必要があります。(SignedCms.CheckSignature() を使用して) 署名の有効性と整合性をチェックする方法は知っていますが、関連する部分をどのように認証するのでしょうか?
例えば:
- クライアントはサーバーにデジタル署名を要求します。
- クライアントは署名を受け取り、それを検証します。
- 検証が成功した場合は、続行します。
クライアントは中間者攻撃の被害者となり、ステップ 2 で有効な署名を受け取る可能性があります。検証は成功しますが、クライアントは適切なサーバーと通信していません。
私は何が欠けていますか?