2

ssh(OpenSSH)を介して接続されたサーバーとクライアントの両方について、いくつかの一意のセッション識別子(これをUSIDとします)を取得する方法があるかどうか疑問に思います。

これは、特定の(カスタム)ソフトウェア(a.exe)の実行を制限するために使用されるため、他のユーザー(潜在的にroot)がその実行可能ファイルにアクセスできる場合でも、特定のsshセッションを介してのみ実行できます。

  • マシンC(クライアント)からマシンS(サーバー)へのsshセッションが開かれた後、マシンC ( USIDを認識している)はマシンX(サードパーティサーバー)のレコードを更新し、このUSIDが"であることを通知します。安全な"。
  • マシンSのa.exeは、呼び出されると、現在のセッションのUSIDが「安全」であるかどうかを確認し(この情報はXによって提供されます)、否定的な応答を受け取った場合は実行を停止します。

XCXSの間の通信チャネルは安全であるため、ここでの唯一の問題は、独自のsshクライアントやサーバーを作成せずにそのUSIDを取得することです。

何か案は?

4

1 に答える 1

1

ラウンドアバウトのように思えますが、あなたはKerberosを再実装しようとしています。GSSAPIでクライアントとサーバー間のトランスポートを保護したいようです。したがって、クライアントはサーバーに対して認証する必要があります。

これを行う一般的な方法は、キータブを使用してプリンシパルに「kinit」し、このクレデンシャルをサーバーに渡すことです。Kerberosは、偽造がかなり難しいことを保証します。

これはおそらく、上記で説明した方法よりも少し脆弱ではないでしょう。

-エース

于 2010-02-09T21:32:53.443 に答える