SSH鍵のコピーかエージェント転送か?異なる二つのリスク
署名は鍵ファイルではなく、委任されたエージェントは開示ではありません。プロトコルの事実とエンドポイントの信頼という問いを分けてから対応してください。
VPN 経由で SSH 鍵を使うログインは、秘密鍵がネットワーク事業者に渡されたという意味ではなく、その安心は人が聞くより狭いものです。公開鍵認証が送るのは公開鍵と、クライアントがローカルで作る署名です。エージェント転送は別の露出を伴う別の仕組みで、あなたが管理していないマシンに使える認証能力を残すことがあります。負うべき対応は、そのどちらが実際に起きたかで変わります。
公開鍵認証が送るもの
標準的な公開鍵方式では、クライアントが公開鍵を提示し、サーバーがその鍵を受け入れるかを決め、クライアントが秘密鍵でチャレンジに署名します。秘密鍵は自分のファイルかエージェントの中にとどまります。ネットワークを渡るのは公開鍵と、そこから生じる署名です。そのやり取りのどこにも、サーバー、トンネル、経路上の誰かが秘密の素材を保持する必要はありません。
認証の仕様がその証明を定めており、秘密鍵はリクエストのフィールドではありません。
これはプロトコルについての説明であり、関与するすべてのエンドポイントの人物証明ではありません。ホストの身元確認は依然として健全でなければなりません。自分が誰かを証明できないサーバーは、意図しない目的のために署名を集めている可能性があるからです。借りた VM、受け継いだ踏み台、見慣れない拡張機能を動かすノート PC は、三つの別々の信頼の問いです。それらを、本当に決着している暗号の問いから切り離してください。
エージェント転送が委任するもの
エージェント転送は、リモートホストからあなたのマシン上のエージェントへ戻るチャネルを開くので、そのホスト上のプロセスは秘密鍵を一切持たずにエージェントへ署名を要求できます。鍵はあるべき場所にとどまり、能力はとどまりません。その転送されたソケットに到達できるものは何であれ、セッションの間、読み込まれた身元の一つとして認証操作を要求できます。これが委任された権限であり、転送が公開鍵の受け渡しより狭い方針に値する理由です。
コピーされた鍵ファイルは開示です。転送されたエージェントは許可であり、二つは異なる対応を必要とします。
名前を付けた必要と名前を付けたホストのためにだけ転送を有効にし、設定が言っているように見えることではなく、クライアントが実際に何をするかを確認してください。効いている設定が重要です。ホストブロックはグローバルな既定値を静かに上書きするからです。同じ理屈はサーバー側にも当てはまり、配備が決して必要としないなら転送を完全に拒否できます。
対応を選ぶ前に証拠を読む
秘密鍵ファイルや同等の署名用身元が露出したと考えられる場合、対応は組織の手順による交換と失効、さらにそれを信頼していたすべてのサービスからの受け入れ解除です。ローカルのコピーを一つ消しても、見えないコピーは無効になりません。
懸念が一時的なエージェントのアクセスなら、対応はより狭くなります。不要な委任を止め、関与したセッションと身元を確認し、交換が必要かどうかはインシデントの責任者に決めさせてください。ここでは証拠が重要です。観測された持ち出しがないことは認証が悪用されなかった証拠にならず、経路の変化だけでは鍵が盗まれたという診断になりません。どの構成要素を信頼したのか、転送が有効だったのか、実際に何が観測されたのかを書き留めてください。その記録に合う対応を選び、最も劇的なものを選ばないでください。
ssh-add -l
ssh -G host.example | grep -i forwardagent
変更の前と後に実行して、比較に意味を持たせてください。以前に確立したセッションは、今の設定が何と言おうと、与えられた委任を保持します。
交換できない二つの制御
秘密の素材を守ること、誰がその署名を要求できるかを制限すること、相手の身元を確認することは三つの関連する制御であり、どれも他の代わりにはなりません。ホスト鍵を確認せずに転送を外したチームは、問題の半分を直しただけです。経路が変わったから鍵を交換したチームは、何も直していません。
侵害されたエンドポイントは四つ目の問いです。自分のマシン上の特権ソフトウェアは、パケットを観測するよりはるかに多くを行えるからです。
何かに触れる前にインシデントをその分類に振り分け、それぞれに担当者を置いてください。何を信頼し、何を委任し、何を確認したかの短い記録を残してください。その記録が、次の見直しを別の議論ではなく安価にするからです。どの分類か分からなければ、良性のケースを仮定せずに不明と書いてください。区別は実務的であり、学術的ではありません。資格情報を交換するのか、セッションを取り消すのか、単に転送をやめるのかを決めるものです。