Skip to content

第六章 网络安全:加密、HTTPS 与防护


1. 安全到底在保什么:三个基本目标

网络天生是不安全的:数据要经过无数你不认识的路由器和线路,任何一跳都可能有人偷看、篡改、冒充。网络安全的所有技术,归根到底在保三件事:

  1. 机密性:内容不被无关的人看到——对应"加密"。
  2. 完整性:内容没有被中途篡改——对应"散列与校验"。
  3. 身份认证:对方真的是他声称的那个人——对应"数字签名与证书"。

拿到安全类考题,先问"这道题在保三个目标里的哪一个",思路立刻清晰。

2. 对称加密 vs 非对称加密

2.1 对称加密:一把钥匙锁和开

对称加密:加密和解密用同一把密钥。像家门锁——配了同一把钥匙的人都能开。代表算法:AES、DES(DES 已因密钥过短被淘汰,考试还常出现)。

优点是,适合加密大量数据。致命短板是密钥分发问题:双方必须先安全地共享这把钥匙,可是在不安全的网络上,钥匙本身怎么送过去?用另一把钥匙加密这把钥匙?那另一把又怎么送?无限套娃。

2.2 非对称加密:一对钥匙各司其职

非对称加密:每人生成一对在数学上关联的钥匙——公钥公开给全世界,私钥绝不示人。规则是:公钥加密的内容只有对应私钥能解开,私钥签的名任何人都能用公钥验证。代表算法:RSA。

它优雅地解决了密钥分发:想给我发密信?用我公开的公钥加密即可,全世界只有握着私钥的我能解开——根本不需要事先共享任何秘密。像一个对外公开的投信口:谁都能投(公钥加密),只有信箱主人有钥匙取(私钥解密)。

代价是:非对称加密的运算量比对称加密大成百上千倍,用它加密整部电影不现实。

维度对称加密非对称加密
密钥数量加解密同一把公钥私钥一对
速度快,适合大数据量慢,只适合少量数据
密钥分发困难(先有鸡还是先有蛋)容易(公钥随便发)
代表算法AES、DESRSA
N 人互相通信需要的密钥约 N² 量级(每两人一把)2N 把(每人一对)

于是实践中的标准答案是混合使用先用非对称加密安全地交换一把临时的对称密钥,之后的大量数据全部用对称加密传输——非对称解决"钥匙怎么送",对称解决"数据传得快"。记住这句话,HTTPS 就懂了一半。

3. 散列、数字签名与证书:信任是怎么建立的

3.1 散列:数据的"指纹"

散列函数(哈希函数,如 SHA-256)把任意长度的数据压成一段固定长度的短值(摘要)。三个关键性质:同样的输入永远得到同样的输出;改动一个比特,输出面目全非;无法从输出反推输入

它保的是完整性:发文件时附上摘要,接收方重算一遍比对,值不同就说明文件被改过——像商品上的防拆封条。注意:散列不是加密,它不可逆、也没有密钥,不能用来"解密还原"。

3.2 数字签名:私钥签名、公钥验证

加密解决"别人看不懂",但怎么证明"这段话确实是我说的,而且我不能抵赖"?把非对称加密反过来用

  1. 发送方先对内容做散列得到摘要,再用自己的私钥对摘要加密——这就是数字签名
  2. 接收方用发送方的公钥解开签名得到摘要,再自己对内容重算散列比对。对得上,说明两件事同时成立:内容没被改(完整性),且签名者必然握有私钥(身份认证与不可抵赖)。

注意方向与加密相反:加密是"公钥加密、私钥解密",签名是"私钥签名、公钥验证"。一个防偷看,一个防冒充,考试最爱考这组方向。

3.3 数字证书与 CA:公钥本身怎么防伪

还剩最后一个漏洞:我从网上拿到"你的公钥",怎么确定它真是你的、而不是攻击者中途调包塞给我的假公钥?这需要一个**权威第三方——CA(证书颁发机构)**做担保:

  1. 网站向 CA 申请证书,CA 核实身份后,把"该域名 + 该公钥"打包,用 CA 自己的私钥签名,生成数字证书
  2. 浏览器收到证书后,用预装在操作系统/浏览器里的 CA 公钥验证签名,验证通过就信任证书里的公钥。
  3. CA 也分层级:根 CA 给中间 CA 签发证书,中间 CA 给网站签发证书,一级担保一级,形成信任链,最终锚定在设备预装的根证书上。

一句大白话点透:证书就是"公钥的身份证",CA 是发证机关,根证书是"大家出厂时就约好相信的公章"

4. HTTPS/TLS 握手:把前面的积木拼起来

HTTPS = HTTP + TLS(传输层安全协议,前身叫 SSL),端口 443。TLS 握手做的事,就是把本章前三节的工具组合成一套流程:用证书认证身份,用非对称加密交换密钥,用对称加密传输数据

逐步拆解它分别在保什么:

  1. 验证证书:确认对面真是这个域名的服务器,不是冒牌货——身份认证。
  2. 用服务器公钥加密密钥材料:只有真服务器(有私钥)能解开,窃听者拿不到——安全地完成了对称密钥分发。
  3. 之后全部用对称会话密钥:大流量数据加密要快——机密性与性能兼得。
  4. 每条消息附带校验值——完整性,防篡改。

为什么不全程用非对称?太慢。为什么不全程用对称?钥匙送不过去。TLS 的精髓就是让两者各干最擅长的事。这套设计正是"混合加密"的教科书级应用。

5. 常见攻击:考概念,懂原理与防范即可

攻击一句话原理攻击的对象/层面防范思路
DDoS 分布式拒绝服务操纵大量"肉鸡"同时访问,耗尽服务器资源,让正常用户挤不进来可用性流量清洗、CDN 分流、限流
ARP 欺骗在局域网内伪造 ARP 应答"我才是网关",骗大家把流量发给攻击者局域网、链路层静态 ARP 绑定、交换机防护功能
钓鱼伪造以假乱真的网站或邮件,骗用户主动交出账号密码人(社会工程学)核对域名与证书、安全意识教育
SQL 注入在输入框里填入拼接的 SQL 语句片段,让服务器把"数据"当"命令"执行Web 应用、数据库参数化查询、输入校验
XSS 跨站脚本把恶意脚本注入网页,在其他访问者的浏览器里执行,窃取 Cookie 等Web 应用、其他用户的浏览器输出转义、输入过滤
中间人攻击攻击者插在通信双方之间,两头分别冒充对方,转发并偷看全部内容机密性、认证证书校验、HTTPS

其中中间人攻击值得多看一眼,因为它正是数字证书要防的场景:没有证书时,攻击者可以在密钥交换阶段把自己的公钥调包给双方,此后双方自以为在加密通信,实际每句话都经攻击者转手。ARP 欺骗就是局域网里实施中间人攻击的常用手段——把这两个考点连起来记。

两组高频辨析:

  1. SQL 注入 vs XSS:都是"把输入当代码执行",但 SQL 注入攻击的是服务器端的数据库,XSS 攻击的是其他用户的浏览器。记"注入打服务器,脚本打浏览器"。
  2. DDoS 的特点:它不窃取数据、不入侵系统,纯粹让服务"忙死",破坏的是可用性;且因为流量来自海量真实设备,很难简单封堵。

6. 恶意程序:病毒、蠕虫、木马怎么区分

这是安全类考题的另一大票仓。三者都属于恶意程序,区别在传播方式和存在形态

类型核心特征传播是否需要人白话画像
病毒寄生在其他文件或程序里,随宿主被执行而激活并感染更多文件需要(用户运行了带毒文件)借尸还魂,离开宿主活不了
蠕虫独立程序,利用系统漏洞在网络中自动复制扩散不需要自己长腿,顺着网线爬满全网
木马伪装成正常软件骗你安装,潜伏后开后门供攻击者远程控制或窃密需要(用户被骗安装)特洛伊木马,重在潜伏与控制,一般不自我复制

三句话锁定考点:病毒讲寄生,蠕虫讲自主传播,木马讲伪装与控制。判断题常拿"蠕虫需要宿主文件""木马会自我复制"设坑——蠕虫独立存活不需宿主,典型木马不以自我复制为特征。

顺带两条密切相关的常识:

  1. 勒索软件:加密受害者文件索要赎金的恶意程序,防范核心是离线备份——数据有备份,勒索就失去筹码。
  2. 杀毒软件靠特征库与行为分析识别恶意程序,因此要及时更新;"装了杀毒软件就不会中毒"属于绝对化错误表述。

7. 认证的加固:你知道的、你有的、你是的

密码(口令)是最常见的认证手段,但单一口令一旦泄露就全盘皆输。认证要素分三类:你知道的(密码、暗号)、你有的(手机验证码、U 盾、硬件令牌)、你是的(指纹、人脸)。双因素认证就是要求至少两类要素同时通过——攻击者偷到密码,还差你的手机;捡到手机,还差密码。银行转账"密码 + 短信验证码"就是典型组合。注意:密码加"密保问题"不算双因素,两者都属于"你知道的"。

8. 防火墙、入侵检测与 VPN:三种防护设施的定位

设施定位白话工作方式
防火墙网络边界的门卫按预设规则(IP、端口、协议)放行或拦截流量,重在"挡"
入侵检测系统 IDS院子里的监控报警器监听分析流量,发现可疑行为报警,本身一般不拦截
VPN 虚拟专用网公网上打的加密隧道把数据加密封装后穿越公网,异地如同接入内网专线

三者互补而非替代:防火墙挡在门口按规则拦,但拦不住"符合规则的坏流量";IDS 负责发现漏网之鱼,但只报警不动手(能自动拦截的升级版叫 IPS);VPN 解决的则是另一个问题——在不安全的公网上开辟安全通道,出差员工访问公司内网就是典型场景。

一句大白话点透:防火墙管"进不进得来",IDS 管"进来后有没有干坏事",VPN 管"路上安不安全"

9. 口令怎么存才安全:散列加盐

网站服务器绝不应该明文保存用户密码——数据库一旦泄露,所有账号立即沦陷。正确做法用到了本章的散列:

  1. 只存散列值:注册时把密码散列后入库,登录时把输入再散列一次比对。管理员和黑客都看不到原始密码,而散列不可逆,反推不出来。
  2. 加盐:只散列还不够——攻击者可以事先算好"常见密码 → 散列值"的大字典(彩虹表)反查。对策是给每个用户的密码拼上一段随机字符串()再散列,同样的密码在不同用户那里散列结果完全不同,预先算表的招数就废了。

这个例子把"散列保完整性、不可逆、不是加密"三个性质用活了,也解释了一个生活现象:正规网站的"找回密码"只能重置、不能告诉你原密码——它自己也不知道。如果某网站能把原密码发给你,说明它在明文存储,赶紧换密码。

10. 场景对号入座:需求到技术的映射

安全题的另一种问法是给场景选技术,用这张表对号:

场景需求该用的技术
传输大量数据要保密且快对称加密
在不安全信道上分发密钥非对称加密(或混合加密)
确认文件下载后没被篡改散列比对
证明合同确实由某人签署且不可抵赖数字签名
确认网站公钥的真实归属数字证书与 CA
出差员工安全访问公司内网VPN
按规则阻断进出内网的流量防火墙
发现网内的异常行为并告警入侵检测系统
登录环节防止密码泄露即失守双因素认证

例题:某单位要求"公文在网上传输时,接收方能验证公文由发送方发出且内容未被篡改",应采用的技术是?

解析:需求点是"来源认证 + 完整性 + 不可抵赖",标准答案是数字签名。若题目只要求"内容不被第三方看到",才选加密;若只要求"检测是否被改动",散列即可。抓住题干里的动词——"验证来源"选签名,"防止偷看"选加密,"检查改动"选散列。

本章要点回顾

知识点一句话结论
安全三目标机密性防偷看、完整性防篡改、认证防冒充
对称加密一把钥匙,快,难在密钥分发;AES
非对称加密公钥加密私钥解,慢但钥匙好分发;RSA
混合加密非对称送钥匙、对称传数据,两者取长补短
散列定长指纹,不可逆、无密钥,保完整性,不是加密
数字签名私钥签名、公钥验证,保完整性加不可抵赖
证书与 CA证书是公钥的身份证,信任链锚定预装根证书
TLS 握手验证书、换密钥、转对称,HTTPS 端口 443
攻击辨析DDoS 毁可用性、ARP 欺骗骗局域网、注入打库、XSS 打浏览器
恶意程序病毒寄生、蠕虫自主传播、木马伪装开后门
双因素认证知道的、有的、是的,至少取两类
口令存储只存散列且加盐;能找回原密码的网站在明文存储
场景选型验来源用签名、防偷看用加密、查改动用散列
防护三件套防火墙拦、IDS 报警、VPN 打加密隧道

做题提醒

  1. 加密与签名的钥匙方向必须分清:加密是"公钥加密、私钥解密",签名是"私钥签名、公钥验证"。选项把方向调换是最常见的坑。
  2. "非对称加密比对称加密更安全,所以应全程使用"是错误表述——非对称的优势在密钥分发,不在"更安全",且速度慢,实际采用混合加密。
  3. 散列函数不可逆、没有密钥,"MD5/SHA 是一种加密算法,可以解密还原"是错误说法。
  4. 数字证书验证的是"公钥属于谁",证书由 CA 用CA 的私钥签名,浏览器用CA 的公钥验证——不是用网站的公钥验证证书。
  5. SQL 注入攻击服务器数据库,XSS 攻击其他用户的浏览器,别互换;DDoS 破坏的是可用性,不窃密。
  6. 防火墙不能防范一切攻击(尤其来自内部的和藏在正常流量里的),"装了防火墙就绝对安全"的绝对化表述一律判错。
  7. 病毒、蠕虫、木马的区分点:病毒需寄生宿主、蠕虫独立且自动传播、木马靠伪装且一般不自我复制;"蠕虫必须依附宿主文件"判错。
  8. 双因素认证要求两类不同要素;"密码加密保问题"同属"你知道的",不构成双因素。