加载中...

本篇要回答的问题:从病毒、木马到敏感信息窃取,操作系统的安全能力是怎么一步步演进的?在"网络链路不可信"的假设下,如何做到防窃听、防篡改、防钓鱼?

本讲是操作系统的最后一个子系统:安全管理。安全是个基础架构问题——最好从最底层就开始设计,所有人走同一道门最好查。全篇分两条线:一条是软件信息安全(病毒→木马→敏感信息窃取的演进,及隔离/签名/沙盒/权限管控等机制),另一条是网络环境安全(数字签名、对称/非对称加密、HTTPS 与数字证书)。

病毒与木马:操作系统安全能力的演进

时期 操作系统 内存模式 恶意软件 特征
早期 DOS(实模式) 物理地址空间,互相可读写 病毒 信任模式;繁衍自己,破坏系统
PC 联网 Windows(保护模式) 内存地址空间隔离 木马 隐藏窃取隐私,经网络外传
移动 iOS/Android 隔离 + 沙盒 + 签名 过度索权的"正常"软件 有实用功能,背地获利

关键洞见:保护模式隔离了跨进程内存,但木马靠把自己复制进正常软件的同一进程,照样一览无余。

逐步加码的防御机制:

机制 解决什么 本质
保护模式 进程间内存隔离 CPU 级隔离
数字签名 防止软件被篡改附加木马 白名单技术
App Store 软件发布封闭化 + 发布前安全扫描 苹果首创的封闭环境
沙盒 Sandbox 软件间文件系统隔离 iOS 引入
权限管控 敏感信息授予 iOS 运行时索权 > Android 安装时索权

关键判断:iOS 在使用过程中索权远强于 Android 在安装时索权——“还没见到软件真身就让用户判断,用户只能无脑接受;运行到特定场景再索权,才有合理决策依据”。

移动时代恶意软件边界已模糊:复制繁衍能力被操作系统阻止,于是恶意软件和普通软件一样靠诱导下载、再过度索取敏感信息(通讯录、短信、GPS、支付密码、录音录像权限等)获利。

网络环境的信息安全:三类风险

中间节点(交换机、路由器、WiFi)带来三级风险:

风险 含义 防御手段
被窃听 监听你访问/提交的内容 加密
被篡改 截获并修改内容(插广告、换 apk、改 404 页) 数字签名 / 加密
被钓鱼 冒充服务方与你通讯(假银行官网) HTTPS + 数字证书

防篡改:数字签名

受数字签名保护的文档结构

适用场景:电子合同/公章、网络请求授权——不在乎被看到,在乎是不是某人真写的

组成 作用
要防篡改的内容 信息原文
密钥提示 keyHint 多密钥时定位对应密钥(单密钥可省)
指纹 对内容用密钥 + 摘要算法生成的信息摘要

摘要算法常用 HMAC MD5 / HMAC SHA1。验证时重算摘要 textDigestExp,与 textDigest 相同则未被篡改。

防窃听 + 防篡改 + 防钓鱼:加密与 HTTPS

加密类型 密钥 特点
对称加密 加解密同一密钥 快,符合直觉
非对称加密 公钥(公开)+ 私钥(自留) 慢;公钥加密只有私钥能解,私钥签名公钥可验

关键洞见:非对称加密一箭双雕——公钥加密解决定向发送,私钥签名解决来源验证;但它慢,所以实战是结合两者:用非对称加密只传一个临时随机密码 random-key,之后会话全用 random-key 做对称加密。

剩下的难题:B 怎么把公钥安全交给 A? 网络不可信时引入第三方权威机构 G 与数字证书

步骤 动作
1 A 向 B 请求数字证书
2 B 返回证书(含 domain、B-public-key、颁发人 G)
3 A 用已持有的 G-public-key 验证证书确由 G 认证
4 A 核对证书中 domain 与目标域名一致,才信任其中的公钥

关键判断:数字证书最重要的不是怎么传,而是它记录了"域名 domain 对应公钥是 B-public-key,由 G 公证"这一事实——所以可提前生成、随意公开传递。

局限:HTTPS 不能完全解决钓鱼——它假设用户对域名可靠性有判断力。所以 Chrome 等浏览器会建立不靠谱域名数据库做风险提示。

总结

软件安全态势从病毒(破坏)→ 木马(窃密)→ 敏感信息窃取(正常与恶意边界模糊)演进,操作系统用保护模式、数字签名、App Store、沙盒、权限管控逐层加固。网络层面在"链路不可信"假设下,用数字签名防篡改,用对称+非对称加密 + HTTPS 数字证书做到防窃听、防篡改、防钓鱼。

先把"是什么"回答清楚

概念 一句话说明
保护模式 CPU 隔离进程内存,互相不可访问
数字签名 白名单防篡改;指纹 = 密钥 + 摘要算法
沙盒 Sandbox 软件间文件系统隔离
非对称加密 公钥加密私钥解、私钥签名公钥验
数字证书 权威机构 G 对"域名↔公钥"做的公证
HTTPS 靠数字证书安全获取网站公钥后再通讯

一句话速记

软件靠隔离+签名+沙盒+索权守住本机,网络靠数字签名防篡改、非对称传密钥+对称传正文防窃听、证书+G 公证防钓鱼。

几条值得记住的判断

  • 安全要从最底层设计,门窗越少越好查——但互联网故意不把安全放最底层(下讲会讲原因)。
  • iOS 运行时索权 > Android 安装时索权:有场景才有合理决策。
  • HTTPS 防不住钓鱼,最终仍依赖用户对域名的判断力。

思考题

正常软件与恶意软件的边界正越来越模糊——很多耳熟能详的常规软件也在过度索取它根本不需要的权限。回到你负责的产品:你申请的每一项系统权限,是否都能对应到一个用户能理解的使用场景?如果不能,这项权限是不是该删掉?

公告栏
这是我的个人知识库。
记录技术,也记录生活 —— 读过的、试过的、想明白的,都堆在这儿。
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
15.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
全局知识图谱
当前页面 已访问 文章 标签
ESC 关闭 · 滚轮缩放 · 拖拽移动 · Ctrl+G 开关