2

これが正しいセクションかどうかは 100% ではありませんが、プログラムの仕方の問題なので、そう思います。

コンピューター ネットワークのコースを学習した後、試してみたいアイデアがいくつか浮かびました。これらのことの 1 つは、「ルーター」でローカルにホストされている Web ページに自動的にログインすることです。

したがって、サイトはローカルで、192.168.150.1 としましょう。「無料ログイン」リンクをクリックすると、疑似アカウントでログインします。これを Alice と呼びます (IP アドレスは 192.168.150.74 です。次のような GET リクエストを送信するリンク:

192.168.0.1/login?dst=&username=T-Alice

今、wireshark を使用してパケット ストリームを確認しましたが、暗号化されています。これがパケット ストリームです。

No.     Time        Source                Destination           Protocol Info
      1 0.000000    192.168.150.74        192.168.150.1         TCP      50704 > https [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=37133 TSER=0 WS=7
      2 0.001304    192.168.150.1         192.168.150.74        TCP      https > 50704 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 SACK_PERM=1 TSV=17344316 TSER=37133 WS=1
      3 0.001372    192.168.150.74        192.168.150.1         TCP      50704 > https [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSV=37133 TSER=17344316
      4 0.001969    192.168.150.74        192.168.150.1         TLSv1    Client Hello
      5 0.003568    192.168.150.1         192.168.150.74        TCP      https > 50704 [ACK] Seq=1 Ack=406 Win=6864 Len=0 TSV=17344316 TSER=37133
      6 0.010537    192.168.150.1         192.168.150.74        TLSv1    Server Hello, Certificate, Server Hello Done
      7 0.010587    192.168.150.74        192.168.150.1         TCP      50704 > https [ACK] Seq=406 Ack=1132 Win=16896 Len=0 TSV=37134 TSER=17344316
      8 0.013352    192.168.150.74        192.168.150.1         TLSv1    Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
      9 0.051304    192.168.150.1         192.168.150.74        TCP      https > 50704 [ACK] Seq=1132 Ack=732 Win=7936 Len=0 TSV=17344321 TSER=37134
     10 0.269299    192.168.150.1         192.168.150.74        TLSv1    Change Cipher Spec, Encrypted Handshake Message
     11 0.270405    192.168.150.74        192.168.150.1         TLSv1    Application Data
     12 0.271888    192.168.150.1         192.168.150.74        TCP      https > 50704 [ACK] Seq=1191 Ack=1377 Win=9226 Len=0 TSV=17344343 TSER=37160
     13 0.288841    192.168.150.1         192.168.150.74        TLSv1    Application Data, Application Data
     14 0.328065    192.168.150.74        192.168.150.1         TCP      50704 > https [ACK] Seq=1377 Ack=2625 Win=19840 Len=0 TSV=37166 TSER=17344344

今、私が聞きたいこと(そしてやりたいこと..)は次のとおりです。

この安全な接続を設定して、そのGET情報をルーターとログインしますか?または、コードでこれを行う簡単な方法はありますか? プログラムに 192.168.150.1 を「訪問」させて、パケットの作成と SSL をカーネルに任せることはできますか? (-> SSLはアプリケーション自体で処理する必要があると思っていましたが..)

Windows と UNIX のソリューション/ガイダンスはどちらも大歓迎です..両方のためにこれを作りたいと思います.

これが「紛らわしい」場合は申し訳ありませんが、質問をできるだけ明確にしようとしました:p-手動でページにアクセスしてリンクをクリックしたかのように、GET情報をルーターに送信する際に少し助けてください。 .

4

2 に答える 2

3

おそらく学習目的で HTTP プログラミング (GET コマンドの送信など) を自分で処理したいが、SSL/TLS を処理してくれるものが必要な場合はstunnel、そのサーバーに似たようなものを使用して、トンネルのローカル エンドに接続する独自のアプリケーション。

一般に、SSL/TLS もサポートする HTTP ライブラリを使用することをお勧めします。Libcurl はこの良い例です。

于 2012-12-19T14:27:53.233 に答える
1

もちろん可能ですが、次のシーケンスを実装する必要があります。

  1. HTTPSサーバーへのSSL接続を作成します
  2. HTTPGETリクエストを送信します
  3. サーバーからの応答を読み取る
  4. HTTP応答のHTMLコンテンツを解析します

opensslを使用してサーバーにHTTPページをリクエストする例はたくさんありますが、Googleで「opensslhttpsexample」を検索してこれを見つけました。私の意見での本当の課題は、 stackoverflowですでに説明されているHTMLコンテンツを解析することです。

C ++で実装する前に、Pythonを使用してこれを試すことをお勧めします。幸運を祈ります!

于 2012-12-19T14:31:37.660 に答える