黑客是怎么看到你数据的?

一个程序员在咖啡厅蹭 WiFi,突然收到一封邮件提醒:"你的账号在陌生设备登录了"。他懵了------自己明明用的是陌生 WiFi,但账号却被别人登录了。他从来没连过什么钓鱼网站,密码也没泄露,怎么回事?

今天聊聊网络抓包的原理,以及怎么保护自己的隐私。


原文地址

墨渊书肆/黑客是怎么看到你数据的?


先搞清楚:数据是怎么传出去的?

快递员取件

你发一条消息,就像打电话叫快递员来取件:

yaml 复制代码
你 → 快递员 → 快递站 → ... → 收件人

网络请求也是一样的道理。你的电脑把数据交给路由器,路由器再交给下一站,一站一站传过去,最终到达服务器。

问题来了:一路上谁都能拆开看。


明文时代:谁都能看

HTTP 是明信片

早期互联网用的是 HTTP 协议,就像寄明信片------不装信封,谁都能看。

yaml 复制代码
┌─────────────────────────────────┐
│ 寄件人:你                       │
│ 收件人:mail.example.com        │
│ 内容:                           │
│                                 │
│ 账号:Tom                        │
│ 密码:123456                     │
│                                 │
└─────────────────────────────────┘

在咖啡厅、机场这些公共网络里,只要有人装了网络监控软件,就能看到你在访问什么网站、发什么内容。

那个年代的 hacker 就是这么干的。 不用什么高科技,在同一个 WiFi 下,用系统自带的网络查看器就够了。


加密时代:HTTPS 是什么?

HTTPS = HTTP + 加密

后来有了 HTTPS,就像给明信片加了信封,只有收件人能拆开看。

yaml 复制代码
你 ←──── 加密通道(锁着)────→ 网站
        (只有你和网站知道钥匙)

HTTPS 用的是 TLS/SSL 协议,用非对称加密的方式,让只有你和网站能解密内容。中间经过的每一站都只能看到加密后的乱码。

HTTPS 能防住谁?

  • 防不住:和你在同一网络的人(比如咖啡厅的黑客)
  • 防不住:你电脑上装了证书的抓包工具(比如 Charles)
  • 能防住:网络路径上的其他人(运营商、路由器)

也就是说,HTTPS 防的是"网络路径上的窃听",但防不住你电脑上的"内鬼"。


狡猾的黑客:中间人攻击是怎么回事?

Wireshark:网络层的监控摄像头

在介绍 Charles 之前,先说另一个工具------Wireshark

Wireshark 是网络协议分析工具,能抓到网卡上经过的所有数据包。它工作在网络层,能看到 TCP、UDP、ICMP 等各种协议,不只是 HTTP。

简单说:Wireshark 就像在网络链路上装了个监控摄像头,所有经过的车都能看到。

但 Wireshark 只能看到加密后的乱码,对 HTTPS 无能为力。它适合安全工程师分析网络攻击、查网络底层问题。

Charles:应用层的伪装者

Charles 不一样,它工作在应用层,专门针对 HTTP/HTTPS。

Charles 不暴力破解加密,而是说服你的电脑信任它

yaml 复制代码
Charles 的套路:
1. 伪造"收件人"的身份证
2. 你把信给了 Charles(以为在给快递员)
3. Charles 解密看完,再用真身份证寄给收件人
4. 收件人回信,Charles 再加密寄给你

整个过程你毫不知情,还以为在和网站直接通信。

关键是:你的电脑信任了 Charles 的证书。 通常是你自己装的------公司监控软件告诉你"需要装证书才能上网",你点了确定。

Wireshark 和 Charles:各适合什么场景?

工具 适合场景 工作层级
Wireshark 网络协议分析、安全分析、查网络底层问题 网络层(能看到所有包)
Charles Web/移动端调试、接口分析、修改请求重放 应用层(只看 HTTP/HTTPS)

Wireshark 适合安全工程师分析攻击,Charles 适合开发者调试接口。


HTTPS 真的安全吗?

证书系统是怎么被利用的?

HTTPS 的安全性依赖于证书------网站向权威机构申请证书,证明"这个网站是我"。

但如果有人拿到了假的证书呢?

yaml 复制代码
正常 HTTPS 握手:
你 → 请求网站证书 → 网站给你证书 → 你验证证书 → 加密通信

被 Charles 劫持后:
你 → 请求网站证书 → Charles 拦截 → Charles 给你假证书 → 你验证通过 → Charles 解密 → Charles 和网站建立真连接

你的电脑怎么知道证书是假的?因为证书里有一个"颁发者"信息,正常应该是 DigiCert、Google 这些知名机构。如果是 Charles Debug Proxy、TrustAny 这样的名字,就要警惕了。

银行 App 为什么安全?

很多人不知道,大多数银行、支付宝、微信支付这些 App 用的不是普通的 HTTPS,而是证书锁定(Certificate Pinning)

普通 HTTPS:你电脑里存着"信任的证书机构列表",Charles 只要拿到任何一个被信任的证书就能伪造。

证书锁定:App 里直接写死了"我只信任这个证书",Charles 伪造的证书直接被拒绝。就像公司门禁卡只能刷特定的门,换张卡刷不开。


怎么知道有人在偷看?

1. 看代理设置

打开电脑的网络设置,如果代理指向了一个陌生的 IP,立刻警觉。

yaml 复制代码
正常:
代理设置 → 空(直连)

可疑:
代理设置 → 192.168.1.100:8888

2. 看证书颁发者

访问 HTTPS 网站时,点击地址栏的锁图标。如果证书颁发者是 Charles Debug ProxyTrustAnyFiddler 这些名字,说明你的流量正在被人解密。

3. 看公司网络审计

大公司通常有网络审计系统,你访问了哪些网站、什么时候访问的,都有记录。这也是为什么公司电脑会要求装证书------不是黑客,是合规需要。


怎么保护自己?

1. 公共 WiFi 不要访问敏感信息

咖啡厅、机场的 WiFi 谁都能连,不安全。黑客可能就在你旁边,用简单的工具就能抓到同网络里所有的明文流量。

重要操作尽量用手机流量。

2. 不装来路不明的证书

"安装证书才能上网"------遇到这种情况要警惕。

正常场景:

  • 公司电脑需要监控网络安全,会提前通知你安装证书
  • 抓包调试时,Charles 会提示你安装证书

异常场景:

  • 浏览器突然弹出"安装证书"框
  • 不在调试状态,突然要求安装证书

装证书之前,想一想:我现在在干什么?

3. 看网址栏的锁

现在大多数网站都默认 HTTPS 了。访问的时候瞄一眼地址栏,有锁标的说明是加密的,没锁标的要小心。

4. 开启 VPN

VPN 会在你的电脑和服务器之间建立一条加密隧道。即使在公共 WiFi 里,黑客也只能看到你连了 VPN,看不到具体在访问什么。

就像你把信封放进快递箱,再交给快递员。 快递员只能看到箱子,看不到里面是什么。

5. 重要操作用专属网络

转账、登录账号、输入密码这些操作,尽量在自己信任的网络环境下进行。家里的 WiFi比公共 WiFi 安全,自己流量最安全。


总结

互联网早期,数据像明信片一样裸奔。后来有了 HTTPS,数据装进了信封。

但信封可以被伪造。Charles 这类工具就是用证书伪造的方式,让加密形同虚设。

保护自己其实不难:公共网络不传敏感信息、不装来路不明的证书、看好网址栏的锁、重要操作用信任的网络

网络安全不是工程师的事,是每个人的事。

相关推荐
ihuyigui1 小时前
国际企业办公短信接口
前端·后端·架构
网络研究院1 小时前
管理瘫痪、人员短缺:深度解析 NIST NVD 为什么审不动漏洞了?
网络·安全·漏洞·管理·危机
lpd_lt1 小时前
服务端类vue等页面AI测试方向
前端·vue.js·人工智能
AugustRed1 小时前
A2UI 完整学习指南(含 Java 后端 + 前端实战示例)
java·开发语言·前端
王莎莎-MinerU1 小时前
Agent 时代,科学数据 API 需要重新设计
大数据·前端·数据库·人工智能·个人开发
jingling5551 小时前
自建技术博客实战(三):工具专栏——地图定位、声音复刻与 rembg 抠图
android·开发语言·前端·ai·nextjs
小小小小宇2 小时前
Chrome 插件在新开页生效
前端
橘子味的冰淇淋~2 小时前
优化前端性能之从“全局引入”改为“按需引入”
前端·javascript·vue.js
沐灵洛2 小时前
构建 Mac App Store 应用须知(全)
前端