江湖传说
Thompson在Bell实验室的时候,他的同事发现
他
不
需
要
任
何
密
码
就
能
登
录
其
他
人
的
机
器
。
\color{red}{他不需要任何密码就能登录其他人的机器。}
他不需要任何密码就能登录其他人的机器。
Thompson:Unix和c的发明者,图灵奖得主,Go语言的发明者。
Reflection on Trusting Trust
T h o m p s o n 的 图 灵 获 奖 演 讲 \color{red}{Thompson的图灵获奖演讲} Thompson的图灵获奖演讲
Thompson在编译器的编译器中植入木马。
其他漏洞
CVE-2015-8370
Linux开机漏洞:连按28下的BackSpace可入侵系统
CVE-2016-4484
Linux神奇漏洞:长按回车键70秒,Root权限到手。
2015年 XcodeGhost风波
ios中超4000款APP被感染。
Worse is Better 设计原则
-----Unix/C 背后的设计原则
U
n
i
x
a
n
d
C
a
r
e
t
h
e
u
l
t
i
m
a
t
e
c
o
m
p
u
t
e
v
i
r
u
s
e
s
.
\color {red} {Unix and C are the ultimate compute viruses.}
UnixandCaretheultimatecomputeviruses.
Unix and C are the ultimate compute viruses.
重新定义C和Unix?
- C是危险的语言,缺乏数学的形式化描述,能否换成其他语言?
- 编程习惯问题、效率问题等,很难让人改变语言。
- 方法:定义一个可形式化描述的C的子集用于开发OS。
- Unix:从当时的数千行,膨胀到当前的数千万行
- 需要从架构层面重新思考设计与实现
- 有效减少TCB // 可信机
- 对TCB进行Formal Verification
业界/历史OS安全事件的教训
- 结果可信
- 过程可信
- 韧性
鸿蒙:面向安全可信、确定时延的新一代自研OS内核
- 架构设计–最小化可信基
- 安全手段:如何保障可信基的可信性
- 如何提供对应的保护–最小权限原则
- 如何使得操作系统可以安全的演化
- 模块化、服务化架构支持OTA组件级升级
- Microreboot快速故障/安全攻击恢复。
架构:可信基最小原则
Linux创新乏力,新型应用与新型设备不断涌现,安全可信、确定时延成为满足新业务需求的关键特性
- Linux代码规模大,漏洞多,不能过业务行业认证。
- Linux内核操作与调用路径长且不可预测,长尾时延大,。
- Linux宏内核架构设计,代码模块化程度低,影响可定制、易升级、热升级能力。
- LINUX生命周期管理受制于社区,版本更新不受控,维护成本巨大。
业界:可信的操作系统不会“免费”
应用+硬件驱动OS演化,内涵不断扩大,孕育泛在新机会
宏内核 vs. 微内核
- 宏 内 核 \color{red}{宏内核} 宏内核所有操作系统功能都在内核态。如Unix、Linux
- 微 内 核 \color{red}{微内核} 微内核仅必要的功能放在内核态,其余组件放在用户态,铜鼓IPC进行通信。
- 混 合 内 核 \color{red}{混合内核} 混合内核介于以上两者之间,借用微内核的组件化,借用宏内核的核心功能内核态提高性能。
关于微内核的几点误区
- 嵌入式小内核因为小所有叫微内核
- 内核小可能只是功能少,比如没有现代操作系统虚存、进程等支持,不代表就是微内核。
- 既然叫微内核,那么架构应该差不多。
- 微内核只是一种架构原则,除了保留内核态“最小”功能外,用户态功能如何组装达成性能、功能、生态与安全等,具有很大的架构设计空间。
- 微内核的架构设计灵活性、复杂性远超其他内核架构。
- 有了几千到几万行“微核”就可以支撑业务应用了。
- 微核值包含极小的OS基础能力,还需要按照微内核架构设计实现各种系统服务(如文件服务、网络服务、存储服务、应用编程接口等)才能实现一个较完整的微内核。
- 优点在于可以实现较强的模块化、服务化,从而面向不同场景做到可配置。
Why微内核
优势:模块化成都高、可移植性好、可扩展性强,可定制化强,易于演化,安全性高。
缺点:性能可能成瓶颈(IPC的开销)
微内核案例:iOS演化的历史—成功
微内核案例-IBM Workspace OS —失败
微内核案例:谷歌Fuchsia,基于微内核架构,构建面向终端的下一代运行环境
鸿蒙微内核
针对自研芯片的IPC软硬件协同方案:消除微内核性能瓶颈。
证明TCB的可信性
他证清白:行业软件高级别安全认证中的形式化诉求