信息安全的三个基本目标——机密性、完整性、可用性(合称 CIA);三者不是并列的清单,而是三个不同的失效方式,其中最晚被发现的往往是机密性。
前面三节看的是"危险从哪来"(威胁的分类)和"人为什么会动手"(出现内部违规的原因)。这一节换一个坐标轴:不看威胁来自哪里,看它把什么弄坏了。
这样一来,前面那些零散的例子就能归位了:泄露客户名单破坏的是机密性,篡改金额破坏的是完整性,网站打不开破坏的是可用性。三要素是全课的通用坐标——后面每一节讲措施时,都会回到"它在保哪一个"。
一、三个词,三句话
| 要素 | 一句话 | 出事时的样子 |
|---|---|---|
| 机密性(C) | 不该看的人看不到 | 资料被拷走、被偷看、被泄露 |
| 完整性(I) | 不该改的没被改 | 数字被改、记录被替换、指令被篡改 |
| 可用性(A) | 该用的时候能用 | 系统打不开、服务中断、数据取不出 |
英文首字母合起来是 CIA(Confidentiality / Integrity / Availability)。这个缩写容易让人联想到别的东西,但在安全领域它只指这三样。
三个定义里都藏着"相对性",这一点必须讲清:
- 机密性不是"谁都不能看",而是"不该看的人看不到"——该看的人当然要能看到。
- 完整性不是"一个字都不能改",而是"改动是被授权的、可追溯的"——业务本身就在改数据。
- 可用性不是"永远不出故障",而是"在承诺的时间范围内可用"——所以"99.9% 可用"这种说法才有意义。
记住这个"相对性",可以避开很多无效讨论。比如有人问"数据要不要加密",正确答案不是"要"或"不要",而是"谁能看、通过什么方式看"。
二、机密性:最晚被发现的那一个
三要素里,机密性的失效方式最特别:
- 可用性出事,你立刻知道——网站打不开、系统进不去,第一分钟就有人报。
- 完整性出事,你也能查——对不上账、数字不对,对账的时候会发现。
- 机密性出事,你这边一切正常。
数据被拷走一份,原系统不会少一根毫毛,性能不掉、功能不缺、日志里可能只有一行普通记录。也就是说:
机密性事故是"先发生在别人那里"的——你在对方开始使用它之后,才知道它没了。
这个特性直接决定了两件事:
- 机密性必须靠"事前"守——权限、加密、最小化。等发现的时候,事情已经发生完了。
- 机密性的防护效果很难验证——不像可用性可以压测,你没法"测一下数据有没有被偷走"。所以它更依赖制度与审计,而不是临时检查。
三、完整性:破坏的是"信任"
完整性的特殊之处在于:它保护的是你对数据的信任。
一个数字被改了,损失不只是"这个数字错了",而是"我以后还敢不敢相信这套系统里的数"。
所以完整性事故的典型后果是连锁的:
- 财务数据被改 → 对账不平 → 报表不可信 → 决策的基础动摇
- 日志被删 → 查不出谁干的 → 责任无法追究 → 同类事件会再来一次
- 代码被植入后门 → 发布出去的每个版本都不可信 → 要全部回滚重验
完整性的技术手段也比较特别,它的核心是"能不能发现改动",而不是"能不能阻止改动"——因为完全阻止改动很难,而让改动无法隐藏是可做到的:校验值、哈希、数字签名、版本记录、审计日志,都属于这一类。
一句话:完整性防不住"改",但可以做到"改了你就瞒不住"。
四、可用性:唯一能被"善意"破坏的要素
可用性事故有一个别处没有的特点:它常常不是攻击造成的,而是自己造成的。
- 一次配置改错,服务全挂
- 一次促销把系统压垮
- 一次清理磁盘的操作删掉了要用的数据
- 一次升级引入的缺陷
也就是说,可用性是三要素里唯一"正常操作也经常破坏"的一个。这带来两个推论:
- 可用性的设计必须考虑"操作失误",不只是"恶意攻击"。变更前的备份、分步发布、可回滚,都是可用性措施。
- 可用性有很大的"成本项"性质——要更高可用性,就要更多冗余,成本上升很快。所以可用性目标通常写成"分级"的:核心系统要求极高,边缘系统可以接受短暂中断。
五、三要素会打架
最后要讲的是最实用的一点:三个目标之间经常互相冲突。
| 冲突 | 现象 |
|---|---|
| 机密性 vs 可用性 | 加密越严,取用越麻烦;审批越多,响应越慢 |
| 完整性 vs 可用性 | 数据要校验、要复核,就必然变慢;严到极致就没人用 |
| 机密性 vs 完整性 | 过度保密会让审计看不到内容,反而查不出改动 |
没有"三样都拉满"的方案。任何一套安全措施,本质上都是在三者之间选一个位置。这也是下一节(成本、便利性、安全性的考量)要接着讲的内容——把它变成一笔能算的账。
六、动手 Demo:安全事件的三要素归因器
下面这个 Demo 用多标签方式给 10 个事件归因,并回答一个问题:三要素里,哪一个被破坏时最难被立刻发现?
def tag(c, i, a):
out = []
if c:
out.append("机密性")
if i:
out.append("完整性")
if a:
out.append("可用性")
return out # 一个事件可以同时破坏多个要素
实跑输出:
==============================================================================
一、逐事件归因(一个事件可以同时破坏多个要素)
==============================================================================
编号 事件 C I A 归到哪几个要素
--------------------------------------------------------------------------
E01 客户数据库被拖走 ● · · 机密性
E02 转账金额被改成别的数 · ● · 完整性
E03 网站被打瘫三小时 · · ● 可用性
E04 报价单被偷看后照抄,抢走订单 ● · · 机密性
E05 工资表被员工看到又悄悄改了几行 ● ● · 机密性、完整性
E06 勒索软件加密全部文件,业务停摆 · · ● 可用性
E07 合同扫描件被替换成改过金额的版本 · ● · 完整性
E08 服务器被占满带宽,对外服务时断时续 · · ● 可用性
E09 源码仓库被入侵,代码被拿走 ● · · 机密性
E10 监控日志被删,事后查不出谁动过 ● ● ● 机密性、完整性、可用性
==============================================================================
二、汇总
==============================================================================
机密性 5 次 █████
完整性 4 次 ████
可用性 4 次 ████
只看被破坏的次数,三要素排得很平均;
但在这 10 个事件里,有 2 个同时踩了两个以上要素——
现实中的事件很少只破坏一个要素,是【一个口子进来、几样一起坏】。
④ 真正要记住的差别在【发现难度】上:
可用性出事你立刻知道(网站打不开、系统进不去);
完整性出事你也能查(对不上账、数字不对);
唯独机密性出事——数据被抄走一份——你这边一切正常,
往往在对方已经用上之后才知道。
所以三要素里,机密性最需要靠【事前】的权限和加密来守。
读这个输出:最值得看的是最后一行 E10——"监控日志被删"同时踩了三个要素,而它恰好是最难被发现的那种:日志没了这件事本身,只有在你需要它的时候才知道。这就是三要素的用法:给一个事故定性,然后决定先补哪一块。
七、⚠️ 2026 现状
- 三要素的框架没有变,但"可用性"的边界扩展了。今天谈可用性不只是"服务器别停"——云服务的额度耗尽、第三方 API 停服、域名或证书过期、依赖包被上游删库,都会让你的服务停摆。"可用性 = 我自己的机器正常"这个等式已经不成立。
- 完整性多了一个新场景:数据的"训练用途"。数据没有被动过一个字,但被用于了未告知的用途——这在监管和合规层面会被视为对当事人权益的侵害。也就是说,完整性开始包含"用途是否被擅自改变"这个维度。
- 机密性的主战场从存储转到了流转。数据存在自己库里的时候反而是相对可控的;真正难管的是它被复制出去以后——临时分享链接、截图、导出成表格、贴进 AI 工具。当下的多数措施(水印、导出审计、外发审批)都在往"流转环节"集中。
30 秒实验
打开你最近使用过的一个在线服务(邮箱、网盘、公司系统都行),想三个问题:
- 如果它今天被陌生人看到了内容——你介意吗?介意的话,它的机密性对你还不够。
- 如果它今天有一个数字被改了,你能发现吗——有没有对账、校验或历史记录?
- 如果它今天打不开了,你能撑多久——有没有替代路径?
三个答案里最让你不舒服的那一个,就是这套服务在你这里最薄的那一环。这一节要带走的动作就是这一句:先知道自己最怕哪一样坏,再谈措施。
常见误区
-
错误:安全就是保密,把机密性做好就行了。——纠正:三要素是三个不同的失效方式。只做保密、不做完整性,会出现"数据没问题但数字被改了";只做保密和完整性、不做可用性,会出现"什么都保住了但业务开不了门"。
-
错误:可用性是运维的事,跟安全无关。——纠正:可用性攻击是最便宜的攻击之一——不需要技术高明,让服务打不开就够了。而且可用性事故也大量来自内部操作失误。它从来都在安全范围内。
-
错误:数据加密了就绝对安全。——纠正:加密保护的是存储和传输,但数据在使用时必须是明文(程序要读它)。所以加密不能替代权限控制、不能替代审计、更不能替代"少收集一点"。加密是机密性的一个手段,不是机密性的全部。
-
错误:完整性就是"别让人改数据"。——纠正:业务每天都在合法地改数据,完整性做不到"阻止改动"。它的现实目标是让未授权的改动被发现——校验值、版本记录、审计日志,都属于这一类。
自测三问(点开对答案)
1. 一个员工把自己手机上的客户资料截图发到了工作群,破坏了哪一(几)个要素? —— 主要是**机密性**(不该看到的人看到了),同时如果这个资料后来被转发到外部,还会持续扩大。**注意它也可能顺带破坏完整性**:因为群里的版本可能不是最新版本,被当成准确版本使用。 2. 为什么说"机密性事故是先发生在别人那里的"?这对措施选择有什么影响? —— 因为**数据被复制走之后,你这边不会出现任何异常**——服务正常、性能正常、日志里也未必有醒目记录。所以机密性的措施必须**前置**(权限、加密、最小化收集、导出审计),很难靠"事后发现"来补救。 3. 一个系统把口令的加密强度提到了最高,但允许任何人执行删除操作。它的三要素里哪一项最薄? —— **可用性**(也可能连带完整性)。这是一个典型的"抓错了重点"的例子:**看起来很安全**(加密做得很足),但**一条最基础的控制(谁能删)缺了**。- ☐ 下一节(1-6 三要素以外的特性)
相关笔记
- 出现内部违规的原因 —— 上一篇:内部违规的三个条件,堵机会最有效
- 三要素以外的特性 —— 下一篇:三要素管不到的地方:真实性、可追溯、不可抵赖、可靠
- 成本、便利性、安全性的考量 —— 三要素打架时怎么办:把取舍算成账
- 🛡️ 网络与信息安全 · 索引 —— 全课路线图