主题
第六章 网络安全:加密、HTTPS 与防护
1. 安全到底在保什么:三个基本目标
网络天生是不安全的:数据要经过无数你不认识的路由器和线路,任何一跳都可能有人偷看、篡改、冒充。网络安全的所有技术,归根到底在保三件事:
- 机密性:内容不被无关的人看到——对应"加密"。
- 完整性:内容没有被中途篡改——对应"散列与校验"。
- 身份认证:对方真的是他声称的那个人——对应"数字签名与证书"。
拿到安全类考题,先问"这道题在保三个目标里的哪一个",思路立刻清晰。
2. 对称加密 vs 非对称加密
2.1 对称加密:一把钥匙锁和开
对称加密:加密和解密用同一把密钥。像家门锁——配了同一把钥匙的人都能开。代表算法:AES、DES(DES 已因密钥过短被淘汰,考试还常出现)。
优点是快,适合加密大量数据。致命短板是密钥分发问题:双方必须先安全地共享这把钥匙,可是在不安全的网络上,钥匙本身怎么送过去?用另一把钥匙加密这把钥匙?那另一把又怎么送?无限套娃。
2.2 非对称加密:一对钥匙各司其职
非对称加密:每人生成一对在数学上关联的钥匙——公钥公开给全世界,私钥绝不示人。规则是:公钥加密的内容只有对应私钥能解开,私钥签的名任何人都能用公钥验证。代表算法:RSA。
它优雅地解决了密钥分发:想给我发密信?用我公开的公钥加密即可,全世界只有握着私钥的我能解开——根本不需要事先共享任何秘密。像一个对外公开的投信口:谁都能投(公钥加密),只有信箱主人有钥匙取(私钥解密)。
代价是慢:非对称加密的运算量比对称加密大成百上千倍,用它加密整部电影不现实。
| 维度 | 对称加密 | 非对称加密 |
|---|---|---|
| 密钥数量 | 加解密同一把 | 公钥私钥一对 |
| 速度 | 快,适合大数据量 | 慢,只适合少量数据 |
| 密钥分发 | 困难(先有鸡还是先有蛋) | 容易(公钥随便发) |
| 代表算法 | AES、DES | RSA |
| N 人互相通信需要的密钥 | 约 N² 量级(每两人一把) | 2N 把(每人一对) |
于是实践中的标准答案是混合使用:先用非对称加密安全地交换一把临时的对称密钥,之后的大量数据全部用对称加密传输——非对称解决"钥匙怎么送",对称解决"数据传得快"。记住这句话,HTTPS 就懂了一半。
3. 散列、数字签名与证书:信任是怎么建立的
3.1 散列:数据的"指纹"
散列函数(哈希函数,如 SHA-256)把任意长度的数据压成一段固定长度的短值(摘要)。三个关键性质:同样的输入永远得到同样的输出;改动一个比特,输出面目全非;无法从输出反推输入。
它保的是完整性:发文件时附上摘要,接收方重算一遍比对,值不同就说明文件被改过——像商品上的防拆封条。注意:散列不是加密,它不可逆、也没有密钥,不能用来"解密还原"。
3.2 数字签名:私钥签名、公钥验证
加密解决"别人看不懂",但怎么证明"这段话确实是我说的,而且我不能抵赖"?把非对称加密反过来用:
- 发送方先对内容做散列得到摘要,再用自己的私钥对摘要加密——这就是数字签名。
- 接收方用发送方的公钥解开签名得到摘要,再自己对内容重算散列比对。对得上,说明两件事同时成立:内容没被改(完整性),且签名者必然握有私钥(身份认证与不可抵赖)。
注意方向与加密相反:加密是"公钥加密、私钥解密",签名是"私钥签名、公钥验证"。一个防偷看,一个防冒充,考试最爱考这组方向。
3.3 数字证书与 CA:公钥本身怎么防伪
还剩最后一个漏洞:我从网上拿到"你的公钥",怎么确定它真是你的、而不是攻击者中途调包塞给我的假公钥?这需要一个**权威第三方——CA(证书颁发机构)**做担保:
- 网站向 CA 申请证书,CA 核实身份后,把"该域名 + 该公钥"打包,用 CA 自己的私钥签名,生成数字证书。
- 浏览器收到证书后,用预装在操作系统/浏览器里的 CA 公钥验证签名,验证通过就信任证书里的公钥。
- CA 也分层级:根 CA 给中间 CA 签发证书,中间 CA 给网站签发证书,一级担保一级,形成信任链,最终锚定在设备预装的根证书上。
一句大白话点透:证书就是"公钥的身份证",CA 是发证机关,根证书是"大家出厂时就约好相信的公章"。
4. HTTPS/TLS 握手:把前面的积木拼起来
HTTPS = HTTP + TLS(传输层安全协议,前身叫 SSL),端口 443。TLS 握手做的事,就是把本章前三节的工具组合成一套流程:用证书认证身份,用非对称加密交换密钥,用对称加密传输数据。
逐步拆解它分别在保什么:
- 验证证书:确认对面真是这个域名的服务器,不是冒牌货——身份认证。
- 用服务器公钥加密密钥材料:只有真服务器(有私钥)能解开,窃听者拿不到——安全地完成了对称密钥分发。
- 之后全部用对称会话密钥:大流量数据加密要快——机密性与性能兼得。
- 每条消息附带校验值——完整性,防篡改。
为什么不全程用非对称?太慢。为什么不全程用对称?钥匙送不过去。TLS 的精髓就是让两者各干最擅长的事。这套设计正是"混合加密"的教科书级应用。
5. 常见攻击:考概念,懂原理与防范即可
| 攻击 | 一句话原理 | 攻击的对象/层面 | 防范思路 |
|---|---|---|---|
| DDoS 分布式拒绝服务 | 操纵大量"肉鸡"同时访问,耗尽服务器资源,让正常用户挤不进来 | 可用性 | 流量清洗、CDN 分流、限流 |
| ARP 欺骗 | 在局域网内伪造 ARP 应答"我才是网关",骗大家把流量发给攻击者 | 局域网、链路层 | 静态 ARP 绑定、交换机防护功能 |
| 钓鱼 | 伪造以假乱真的网站或邮件,骗用户主动交出账号密码 | 人(社会工程学) | 核对域名与证书、安全意识教育 |
| SQL 注入 | 在输入框里填入拼接的 SQL 语句片段,让服务器把"数据"当"命令"执行 | Web 应用、数据库 | 参数化查询、输入校验 |
| XSS 跨站脚本 | 把恶意脚本注入网页,在其他访问者的浏览器里执行,窃取 Cookie 等 | Web 应用、其他用户的浏览器 | 输出转义、输入过滤 |
| 中间人攻击 | 攻击者插在通信双方之间,两头分别冒充对方,转发并偷看全部内容 | 机密性、认证 | 证书校验、HTTPS |
其中中间人攻击值得多看一眼,因为它正是数字证书要防的场景:没有证书时,攻击者可以在密钥交换阶段把自己的公钥调包给双方,此后双方自以为在加密通信,实际每句话都经攻击者转手。ARP 欺骗就是局域网里实施中间人攻击的常用手段——把这两个考点连起来记。
两组高频辨析:
- SQL 注入 vs XSS:都是"把输入当代码执行",但 SQL 注入攻击的是服务器端的数据库,XSS 攻击的是其他用户的浏览器。记"注入打服务器,脚本打浏览器"。
- DDoS 的特点:它不窃取数据、不入侵系统,纯粹让服务"忙死",破坏的是可用性;且因为流量来自海量真实设备,很难简单封堵。
6. 恶意程序:病毒、蠕虫、木马怎么区分
这是安全类考题的另一大票仓。三者都属于恶意程序,区别在传播方式和存在形态:
| 类型 | 核心特征 | 传播是否需要人 | 白话画像 |
|---|---|---|---|
| 病毒 | 寄生在其他文件或程序里,随宿主被执行而激活并感染更多文件 | 需要(用户运行了带毒文件) | 借尸还魂,离开宿主活不了 |
| 蠕虫 | 独立程序,利用系统漏洞在网络中自动复制扩散 | 不需要 | 自己长腿,顺着网线爬满全网 |
| 木马 | 伪装成正常软件骗你安装,潜伏后开后门供攻击者远程控制或窃密 | 需要(用户被骗安装) | 特洛伊木马,重在潜伏与控制,一般不自我复制 |
三句话锁定考点:病毒讲寄生,蠕虫讲自主传播,木马讲伪装与控制。判断题常拿"蠕虫需要宿主文件""木马会自我复制"设坑——蠕虫独立存活不需宿主,典型木马不以自我复制为特征。
顺带两条密切相关的常识:
- 勒索软件:加密受害者文件索要赎金的恶意程序,防范核心是离线备份——数据有备份,勒索就失去筹码。
- 杀毒软件靠特征库与行为分析识别恶意程序,因此要及时更新;"装了杀毒软件就不会中毒"属于绝对化错误表述。
7. 认证的加固:你知道的、你有的、你是的
密码(口令)是最常见的认证手段,但单一口令一旦泄露就全盘皆输。认证要素分三类:你知道的(密码、暗号)、你有的(手机验证码、U 盾、硬件令牌)、你是的(指纹、人脸)。双因素认证就是要求至少两类要素同时通过——攻击者偷到密码,还差你的手机;捡到手机,还差密码。银行转账"密码 + 短信验证码"就是典型组合。注意:密码加"密保问题"不算双因素,两者都属于"你知道的"。
8. 防火墙、入侵检测与 VPN:三种防护设施的定位
| 设施 | 定位白话 | 工作方式 |
|---|---|---|
| 防火墙 | 网络边界的门卫 | 按预设规则(IP、端口、协议)放行或拦截流量,重在"挡" |
| 入侵检测系统 IDS | 院子里的监控报警器 | 监听分析流量,发现可疑行为报警,本身一般不拦截 |
| VPN 虚拟专用网 | 公网上打的加密隧道 | 把数据加密封装后穿越公网,异地如同接入内网专线 |
三者互补而非替代:防火墙挡在门口按规则拦,但拦不住"符合规则的坏流量";IDS 负责发现漏网之鱼,但只报警不动手(能自动拦截的升级版叫 IPS);VPN 解决的则是另一个问题——在不安全的公网上开辟安全通道,出差员工访问公司内网就是典型场景。
一句大白话点透:防火墙管"进不进得来",IDS 管"进来后有没有干坏事",VPN 管"路上安不安全"。
9. 口令怎么存才安全:散列加盐
网站服务器绝不应该明文保存用户密码——数据库一旦泄露,所有账号立即沦陷。正确做法用到了本章的散列:
- 只存散列值:注册时把密码散列后入库,登录时把输入再散列一次比对。管理员和黑客都看不到原始密码,而散列不可逆,反推不出来。
- 加盐:只散列还不够——攻击者可以事先算好"常见密码 → 散列值"的大字典(彩虹表)反查。对策是给每个用户的密码拼上一段随机字符串(盐)再散列,同样的密码在不同用户那里散列结果完全不同,预先算表的招数就废了。
这个例子把"散列保完整性、不可逆、不是加密"三个性质用活了,也解释了一个生活现象:正规网站的"找回密码"只能重置、不能告诉你原密码——它自己也不知道。如果某网站能把原密码发给你,说明它在明文存储,赶紧换密码。
10. 场景对号入座:需求到技术的映射
安全题的另一种问法是给场景选技术,用这张表对号:
| 场景需求 | 该用的技术 |
|---|---|
| 传输大量数据要保密且快 | 对称加密 |
| 在不安全信道上分发密钥 | 非对称加密(或混合加密) |
| 确认文件下载后没被篡改 | 散列比对 |
| 证明合同确实由某人签署且不可抵赖 | 数字签名 |
| 确认网站公钥的真实归属 | 数字证书与 CA |
| 出差员工安全访问公司内网 | VPN |
| 按规则阻断进出内网的流量 | 防火墙 |
| 发现网内的异常行为并告警 | 入侵检测系统 |
| 登录环节防止密码泄露即失守 | 双因素认证 |
例题:某单位要求"公文在网上传输时,接收方能验证公文由发送方发出且内容未被篡改",应采用的技术是?
解析:需求点是"来源认证 + 完整性 + 不可抵赖",标准答案是数字签名。若题目只要求"内容不被第三方看到",才选加密;若只要求"检测是否被改动",散列即可。抓住题干里的动词——"验证来源"选签名,"防止偷看"选加密,"检查改动"选散列。
本章要点回顾
| 知识点 | 一句话结论 |
|---|---|
| 安全三目标 | 机密性防偷看、完整性防篡改、认证防冒充 |
| 对称加密 | 一把钥匙,快,难在密钥分发;AES |
| 非对称加密 | 公钥加密私钥解,慢但钥匙好分发;RSA |
| 混合加密 | 非对称送钥匙、对称传数据,两者取长补短 |
| 散列 | 定长指纹,不可逆、无密钥,保完整性,不是加密 |
| 数字签名 | 私钥签名、公钥验证,保完整性加不可抵赖 |
| 证书与 CA | 证书是公钥的身份证,信任链锚定预装根证书 |
| TLS 握手 | 验证书、换密钥、转对称,HTTPS 端口 443 |
| 攻击辨析 | DDoS 毁可用性、ARP 欺骗骗局域网、注入打库、XSS 打浏览器 |
| 恶意程序 | 病毒寄生、蠕虫自主传播、木马伪装开后门 |
| 双因素认证 | 知道的、有的、是的,至少取两类 |
| 口令存储 | 只存散列且加盐;能找回原密码的网站在明文存储 |
| 场景选型 | 验来源用签名、防偷看用加密、查改动用散列 |
| 防护三件套 | 防火墙拦、IDS 报警、VPN 打加密隧道 |
做题提醒
- 加密与签名的钥匙方向必须分清:加密是"公钥加密、私钥解密",签名是"私钥签名、公钥验证"。选项把方向调换是最常见的坑。
- "非对称加密比对称加密更安全,所以应全程使用"是错误表述——非对称的优势在密钥分发,不在"更安全",且速度慢,实际采用混合加密。
- 散列函数不可逆、没有密钥,"MD5/SHA 是一种加密算法,可以解密还原"是错误说法。
- 数字证书验证的是"公钥属于谁",证书由 CA 用CA 的私钥签名,浏览器用CA 的公钥验证——不是用网站的公钥验证证书。
- SQL 注入攻击服务器数据库,XSS 攻击其他用户的浏览器,别互换;DDoS 破坏的是可用性,不窃密。
- 防火墙不能防范一切攻击(尤其来自内部的和藏在正常流量里的),"装了防火墙就绝对安全"的绝对化表述一律判错。
- 病毒、蠕虫、木马的区分点:病毒需寄生宿主、蠕虫独立且自动传播、木马靠伪装且一般不自我复制;"蠕虫必须依附宿主文件"判错。
- 双因素认证要求两类不同要素;"密码加密保问题"同属"你知道的",不构成双因素。
