Why not object capability languages?
a year ago
- #Programming Languages
- #Supply Chain Attacks
- #Security
- 由于软件深层依赖链导致供应链攻击日益增多。
- 对象能力语言提出通过不透明对象(能力)进行沙箱隔离以限制操作。
- 能力机制已应用于句柄、文件描述符和JWT令牌,但尚未在单个程序内部实现。
- 挑战包括定义威胁模型、防止内存篡改及复用现有代码。
- Java的Joe-E子集展示了纯能力编程所需的根本性改变。
- '上帝对象'问题凸显——main()必须封装所有环境权限。
- Java的SecurityManager曾提供非纯能力系统,但因复杂性和使用率低被弃用。
- Spectre攻击通过越权内存访问使进程内沙箱隔离复杂化。
- Chrome的Mojo系统展现了采用进程间通信的真实对象能力体系。
- 硬件隔离与内存保护密钥(MPK)可降低开销,但需谨慎实施。