如果这是正确的部分,则不是 100%,但我认为是这样,因为这是一个关于如何编程的问题。
在学习了计算机网络课程之后,我有了一些我想尝试的东西的想法。其中之一是自动登录到本地托管在我们的“路由器”上的网页。
所以该站点是本地的,比如说 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
现在我想问(并做..)是:
是否可以制作一个程序(最好用 C 或 C++,但 lang 并不重要,除非其中一些有更好的库 ..)为我建立这个安全连接,所以我可以将该 GET 信息设置为路由器并登录?或者在代码中有更简单的方法来做到这一点?我可以让程序“访问”192.168.150.1 并将数据包创建和 SSL 留给内核吗?(--> 即使我认为 SSL 必须由应用程序本身处理..)
欢迎 Windows 和 unix 解决方案/指导。我想为两者做这个。
抱歉,如果这“令人困惑”,我试图尽可能清楚地提出问题:p - 所以我希望在将 GET 信息发送到路由器方面得到一些帮助,就好像我手动访问了该页面并单击了链接一样.