web-dev-qa-db-ja.com

暗号化する前にパケットを見ることができますか?

つまり、たとえばFacebookにいる場合、私が送信するすべてのパケットはNIC=暗号化されます。ただし、暗号化される前にそのパケットのフェーズが必要です。ブラウザ(I考える)そのパケットを作成して後で暗号化する必要があるので、これらのパケットを作成するマシン上にいる場合、暗号化する前にそれらを見ることができますか?

そうであれば、これを実行できるマルウェアはありますか?私は管理者/ルート権限でそれができることは確かだと思いますが、それらなしではどうですか?

17
ShinobiUltra

ブラウザ拡張機能が利用できるので、実際にトラフィックを読み取ることはかなり可能です。マルウェアとWebブラウザーの両方が同じユーザーとして実行されている(したがって、ブラウザープロファイルディレクトリに書き込むことができる)場合、ブラウザー拡張機能のインストールは比較的簡単に実行できます。

Web Developer Toolsを開くこともできます。通常は、 F12 Networkingタブにアクセスします。暗号化されてネットワークにプッシュされる前のすべてのトラフィックが表示されます。

上記の方法は、通信を妨害しない受動的な方法です。アクティブなメソッドは中間者攻撃(MitM)を実行し、転送される前に実際にデータを変更します(TylerlがFiddlerの例を説明しています)。

27
Lekensteyn

ブラウザーからのネットワークトラフィックは、ブラウザーがsend()を呼び出してネットワークに配置する前に暗号化されます。したがって、暗号化する前にそれを傍受するには、送信する前に、つまり、ブラウザ自体の中で傍受する必要があります。これは不可能ではありませんが、大変な作業です。

別の方法は、ネットワークから出る前にトラフィックを復号化し、検査してから、送信途中で再暗号化する fiddler などの「中間者」プロキシを設定することです。通常、SSLはこれを防止するように設計されているため、許可するにはコンピューターによるある程度の協力が必要です(つまり、ブラウザーはフィドラーの公開鍵を信頼する必要があります)が、これはすべてフィドラーの設定方法の一部であるため、問題ありません。 -十分に文書化されています。

23
tylerl

ブラウザーは(私が思うに)そのパケットを作成し、後でそれを暗号化する必要があります。それで、それらのパケットを作成しているマシン上にいる場合、暗号化する前にそれらを見ることができますか?

いいえ、それはそれがどのように機能するかではありません。ブラウザ内では、データは暗号化され、暗号化されたデータのみがブラウザとネットワークスタックの間で受け渡されます。ネットワークスタックは、暗号化されたデータをパケットに分割し、受信した暗号化されたデータをパケットから再構成して、ブラウザーが復号化できるようにデータのストリームに戻します。ブラウザが処理するレベルにはパケットはなく、ブラウザは暗号化と復号化を処理します。

したがって、あなたの質問は誤った前提に基づいています。

4
David Schwartz