Java でソケットを使用して Kerberos サーバー/クライアントを実装しました。クライアントはサービス TGT をサーバーに送信し、サーバーはクライアントが本物であることを認識しています。
私の主な関心事は、詮索する「中間者」攻撃です。誰かが TGT をキャプチャして、クライアントになりすますことができます。
純粋な Java 実装では、これは問題ではありません。以降の通信は、スヌーパーにはないサービス セッション キー (GSSContext.wrap()/GSSContext.unwrap()) で暗号化されるためです。
ただし、クライアント アプリは C# で書き直す必要があります。
通信の暗号化を維持するための2つのオプションは次のとおりです。
- C# で独自の wrap() および unwrap() メソッドを作成する
- SSL/TLS を使用します。
オプションとして SSL を検討する前に、オプション 1 は可能ですか?