🛡️ 第一章 信息安全的基本概念
📄 一句话概括

四个词各管一段——访问权限管"能到哪儿",认证管"你是谁",授权管"你能干什么",最小权限原则管"该给多少"。

📝 本节和前面几节的关系

上一节(成本、便利性、安全性的考量)讲了怎么挑措施。这一节开始讲最基础也最有效的那一类措施——管权限。

它同时也是前面几条线的汇合点:出现内部违规的原因 说"机会是唯一能当天改的东西",权限就是机会的具体形态;信息安全的三要素 说"机密性必须靠事前守",权限就是事前守的主要手段。

一、四个词,先各归各位

这四个词特别容易混。用一句话记住各自的职责:

词 一句话 回答的问题 把握不好会怎样
访问权限 能进入的范围 他能到哪儿? 到了不该到的地方
认证 确认你是谁 你是你吗? 别人用你的身份进来
授权 你能做什么 你能干什么? 能做不该做的事
最小权限原则 该给多少 给到刚好够吗? 权限越攒越多

它们的关系是一条链:先认证确认身份 → 再授权给出权利 → 访问权限划出范围 → 用最小权限原则控制"给多少"。

认证和授权必须分清,这是新手最常混淆的一对:

认证是"进门",授权是"进屋之后能开哪几个抽屉"。

一个人可以认证成功(确实是本人),但没有任何授权(新人还没分配任务)。反过来,授权存在的前提一定是认证通过。攻破这两者的后果也不一样:认证被攻破 = 别人冒充你;授权被配错 = 你自己做了不该做的事(甚至你自己都没意识到)。

二、访问权限:范围要"默认关闭"

访问权限管的是边界:哪些资源可以被访问、从哪些地方、什么时候。它的关键设计思想只有一条:

默认关闭,按需开放。

这句话听着简单,但现实中的系统常常是反过来的——默认开放,出了问题再关。典型表现:

"默认开放"的问题在于:你永远不知道自己漏关了哪一个。而"默认关闭"的好处是:漏了就是功能不可用,会被立刻发现并修好——错误的方向从"悄悄泄露"变成"立刻报错"。这是安全设计中一个很有价值的思路:让错误以可见的方式发生。

三、认证:三个因子和它们的强弱

认证手段按"依赖什么"分成三类:

因子 是什么 例子 弱点
你知道的 知识 口令、PIN、密保问题 会被猜、被骗、被复用
你拥有的 物品 手机、硬件密钥、工牌 会被偷、被复制、被补办
你本身的 生物特征 指纹、人脸、虹膜 泄露了改不了

单独用任何一类算单因子。而"多因子"的严格要求是:来自不同的类别。所以:

认证这一块后面还有整整五节要展开(针对密码的攻击 到 利用个人身体信息),这里只需要先立住这个框架。

四、授权:从"给个人"变成"给角色"

授权管的是"这个人能做什么"。它的演化路线很清晰:

按角色授权的好处有三个:

  1. 清楚:新人的权限来自岗位,不用每次重新讨论。
  2. 可查:审计时问"这个角色有哪些权限",答案是一份清单,而不是几百个人的记录。
  3. 好改:岗位职责变了,改一次角色定义,所有这个角色的人一起生效。

角色化之后,最容易出的问题变成了"角色本身太肥"——某个角色为了让少数人方便,加了一些只有个别场景才需要的权限,于是所有人都多了这些权限。所以角色定义也需要定期"减肥"。

五、最小权限原则:它的价值是"限制塌方范围"

最小权限原则的完整表述是:每个账号、每个程序,只应拥有完成其任务所必需的最小权限,并且只在必需的时间内拥有。

它常被误解成"尽量少给",那不是它的本意。它的三条实际含义是:

为什么它值得单独立为"原则"?因为它的作用不止是"少给点权限",而是:

让一次失守不至于变成一次塌方。

举两个真实场景:

这就是最小权限的真正价值:它假设"一定会有一次被攻破",然后让那次攻破的后果可控。

六、动手 Demo:权限体检器

下面这个 Demo 只看第二件事——现有的权限里,有多少是岗位根本不需要的。

# 对每个账号算出:现有权限 − 岗位所需权限 = 多余的那部分
extra = has - need
missing = need - has

实跑输出:

====================================================================================
一、逐个账号体检
====================================================================================
  zhang.s   出纳      ⚠️ 多 2 项 
  li.w      销售      ⚠️ 多 2 项 缺 1 项:改价 10% 以内
  wang.q    运维      ⚠️ 多 2 项 
  zhao.m    实习生    ⚠️ 多 2 项 
  sun.k     前员工    ⚠️ 多 2 项 
  chen.j    财务主管  ⚠️ 多 1 项 
  liu.y     外包开发  ⚠️ 多 1 项 
  hu.d      人事      ⚠️ 多 2 项 

====================================================================================
二、多余的权限明细(按多余项数排序)
====================================================================================
  zhang.s   出纳      多余:修改收款账号、审批付款单
  wang.q    运维      多余:删日志、查数据库
  zhao.m    实习生    多余:下载内部文档、发外部邮件
  sun.k     前员工    多余:查看报销系统、登录 VPN
  hu.d      人事      多余:改工资表、查工资表
  li.w      销售      多余:导出全部客户、改价 30% 以内
  chen.j    财务主管  多余:改收款账号
  liu.y     外包开发  多余:改生产库

  合计多余权限 14 项

  ④ 上面每一行都是同一个毛病:权限是按【当时方便】给的,
     之后就没人回头收。最刺眼的是 sun.k——
     一个已经离职的人,还留着报销系统和 VPN 的入口。

  ⑤ 最小权限原则不是【尽量少给】,而是:
     按岗位给、按需要给、到期就收。
     它真正的价值是让一次失守不至于变成一次塌方——
     出纳的账号就算被攻破,也不该能改收款账号。

读这个输出:八行里八行都有多余权限——这不是夸张,这是真实系统里最常见的样子。再看两条特别值得注意的:zhang.s 出纳 同时能"录入付款单"和"审批付款单",这是职责分离失效(一个人能自己提、自己批);li.w 销售 有一点"缺权限"(没有改价 10% 以内的权限),说明这份档案不只是"给多了",也有没维护到的部分——权限治理的问题往往同时包含"给多了"和"给错了"。

七、⚠️ 2026 现状

30 秒实验

打开你手机上任意一个 App 的"设置 → 隐私 / 权限",做三件事:

  1. 看它申请了哪几项权限(位置、通讯录、相册、麦克风……)。
  2. 逐条问:这个功能真的需要这项权限吗?
  3. 把不需要的关掉,把"仅使用期间允许"改成"仅此一次"。

这个过程就是最小权限原则的最小实践版——从"我可能用得上"改成"这次确实要用"。顺便想一想:如果你是一个系统管理员,你手上的权限里有几项是"从来没用过、但一直留着"的?

常见误区

  1. 错误:认证通过了就是安全的,授权不重要。——纠正:认证解决"你是谁",授权解决"你能干什么"。绝大多数内部事故不是"别人冒充了你",而是你(或你的账号)做了越界的事——而这属于授权配置问题。

  2. 错误:最小权限原则就是权限给得越少越安全。——纠正:给得太少会让人干不了活,最后的结果是大家共用管理员账号或申请特批。正确的目标是"够用且不多"——权限与职责对齐,临时需求用临时授权解决。

  3. 错误:权限配好一次就不用再管了。——纠正:权限会随时间自然变肥(转岗、加项目、临时授权忘记收),这几乎必然发生。所以需要定期复核,把清理做成一个固定动作,而不是一次运动。

  4. 错误:给共享账号设一个强口令就安全了。——纠正:共享账号的根本问题不是口令强弱,而是事后无法定位到具体的人(破坏可追溯性),也无法做最小权限(每个人都需要全部功能)。它通常是不得已的临时方案,必须记录、限期、有替代计划。

自测三问(点开对答案) 1. "登录时输入口令"和"登录后能查看工资表",分别属于哪个环节? —— 输入口令是**认证**(确认你是谁),能查看工资表是**授权**(你能干什么)。**这两件事由不同机制负责**:认证失败挡住的是入口,授权配错挡住的是越界访问。 2. 为什么说最有价值的最小权限设计,是"不让出纳账号能改收款账号"这种? —— 因为它**限制了一次失守的后果**。认证不能被攻破是理想,但现实一定会有被攻破的时候;这时真正救你的不是"没被攻破",而是**攻破之后也做不了最危险的事**。这就是最小权限的价值定位:**不是防失守,是限制塌方范围。** 3. 为什么"新建文件夹默认所有人可读"是一个糟糕的默认值? —— 因为它让**漏配变成"悄悄泄露"而不是"立刻报错"**。改成默认关闭之后,忘了授权的结果是功能不可用(会被立刻发现并修好),而不是数据静默外泄。**让错误以可见的方式发生,是这一节最值得带走的设计思想。**

相关笔记