1

Java でソケットを使用して Kerberos サーバー/クライアントを実装しました。クライアントはサービス TGT をサーバーに送信し、サーバーはクライアントが本物であることを認識しています。

私の主な関心事は、詮索する「中間者」攻撃です。誰かが TGT をキャプチャして、クライアントになりすますことができます。

純粋な Java 実装では、これは問題ではありません。以降の通信は、スヌーパーにはないサービス セッション キー (GSSContext.wrap()/GSSContext.unwrap()) で暗号化されるためです。

ただし、クライアント アプリは C# で書き直す必要があります。

通信の暗号化を維持するための2つのオプションは次のとおりです。

  1. C# で独自の wrap() および unwrap() メソッドを作成する
  2. SSL/TLS を使用します。

オプションとして SSL を検討する前に、オプション 1 は可能ですか?

4

1 に答える 1

3

オプション 1 には、時間がある場合とない場合がある重いコードの移植が含まれます。オプション 2 は良さそうです。

制約に依存するオプション 3 があります。SSL/TLS よりも高速なプライベート暗号化 TCP チャネルを使用しますが、前述のように適用できない場合があります。セッションキー(秘密である)によって初期化された対称暗号化を使用できます

于 2009-10-20T14:56:42.013 に答える