ルーティング情報は常に平文で送信されることを知っています(単純化しすぎていますが、我慢してください)。したがって、非標準ポートを使用するクライアントとサーバーの間にSSHトンネルが存在し、トンネルが安全な鍵交換を使用して暗号化されるシナリオでは共有シークレットを使用して、トラフィック自体がSSHであることを識別できますか? (例:レイヤー3ヘッダー情報は明確ですか?)
また、このトラフィックがSSHであることを知る他の方法はありますか?
ありがとう。
TL; DR:SSHパケットがSSHであるとどのように判断できますか?
トラフィック自体はSSLによって暗号化されているため、他のSSLプロトコル(HTTPS、OpenVPNなど)との違いを確認するのは困難です。
ただし、攻撃者が通信全体をキャプチャすると、ハンドシェイクも取得され、そこから攻撃者はSSHであることを明確に確認できます。彼はまた、sshクライアントとホストのIP(トンネルエンドポイント)とそれらが使用するポートも確認します。彼はトンネルを通る交通を見ることができません。
私の理解では、トンネルが確立されると、レイヤー4より上のトラフィックは意味不明になります。したがって、非標準のポートを使用している場合、暗号化されたトラフィックを区別することは不可能ではないにしても難しいでしょう。つまりSSH、SSL、またはその他の暗号化方法を区別することはできません。それが間違っていれば、私は訂正されてうれしいです。
攻撃者がTCPセッション全体にアクセスできる場合、トランスポートプロトコルがsshであることを知るのに十分な手がかりがあります。sshを実行していることがわかっているサーバーのポート22にtelnetで接続してみてください。方法を確認するための標準ポート。
攻撃者がトラフィック分析を行う場合、攻撃者はsshターミナルトラフィックとsshポートフォワーディングトラフィックを区別できる可能性があります(ただし、コンテンツを直接特定することはできません)。基本的に、タイピングは、HTMLのダウンロード、データのダウンロード、またはデータの転送のようには見えません。
攻撃者がいずれかのエンドポイントのすべてのネットワークトラフィックにアクセスできる場合、攻撃者はそのエンドポイントを通過するトラフィックのどの特定の部分もトンネルを通過したかを特定できる可能性があります...しかし、あなたはすでにその時点で多くを失った。プライバシーを守ることはあまりありません。
しかし、明確な情報はそれほど多くありません。ここに深刻なリスクがあるとは思えませんが、あなたの懸念を知らなければ、それらに対処することは困難です。