为什么军队和政府不使用特殊的操作系统?我的意思是,如果他们不使用基于 Windows、Linux 和 Mac 的通用操作系统并创建自己的操作系统,他们将非常安全。还是我弄错了?
为什么政府/军队不使用特殊的操作系统?
构建“自己的操作系统”不是一个可行的选择有很多原因。
1.研究成本
要在不使用任何现有代码的情况下从头开始构建新的操作系统,需要大量研究。即使在今天,也只有四五个普遍使用的内核,如 Unix、Linux 内核、BSD、XNU 和 Windows NT。
2. 通过默默无闻的安全性
这是一个经过验证的概念,通过默默无闻的安全性很少有帮助。是的,这是一个新的操作系统,所以没有“黑客”知道它是如何工作的,但事实是,有关它的加班信息将通过前员工或心怀不满的员工透露。甚至可能通过研究人员自己。
作为一个“定制”操作系统,它本身就有安全问题,除了最初的研究人员之外,没有人能够识别或修复它们。
3.成本,成本和成本
即使制作了这样的操作系统,也必须保留一个专门的维护团队来修补各种问题。您还需要定制防御软件等以在该机器上完美运行。如果被仿真,该软件中的任何漏洞都会继续存在。为了制作定制软件,操作系统规范会被公开,因此我们需要定制办公软件、邮件客户端等。
归根结底,制作操作系统系统并将其仅用于防御是不可行的。正如我之前所说的,通过阻塞的安全性很少有助于安全性,它只会让它变得更加“耗时”,但归根结底,成本大大超过了收益。
GreenHills Software 是一家专门为军用嵌入式系统创建操作系统的公司。他们的 INTEGRITY 系统使用经过正式验证(甚至更少的错误)的微内核(更少的代码和更少的错误)。
这种只有最基本的软件组件可以重复使用的特殊用途领域,可能是唯一可以部署自定义操作系统的领域。几乎在其他任何地方,与外部世界、普通用户和每隔几年使用新硬件的交互需求将完全耗尽您所有的开发资源。
此外,据我所知,如何管理非常大的软件项目还不是很清楚。如果你有钱和人在几年内构建一个新的操作系统,它很可能会更昂贵,需要更长的时间,而且完全无聊。
最后,新的定制开发可以改进的地方并不多。在满足所有用户和策略执行者的要求后,您可能会注意到您的专用操作系统变得与现有解决方案非常相似。例如,用几千行代码想象你的最小操作系统很酷。可以说你有安全保障。现在您需要一个带有 SSL/X509 的 Web 浏览器。最简单的实现可能是内核大小的数倍。如果你不使用现有的库,它将充满兼容性和安全漏洞。
今天操作系统设计可以改进的主要领域是——也许——转向微内核操作系统。Perseus 和 Nizza 架构中提出的设计可以让您在常规商品操作系统旁边运行具有高度隔离保证的安全关键应用程序,并让商品应用程序引用安全应用程序来执行诸如签署文档、建立会话等任务密钥等。最近的例子是 Genode、TrustVisor 和 Qubes OS。但是,要使这种设计可扩展到许多高度隔离的隔间中的许多应用程序,您需要一个现代微内核。所以 Qubes 和 TrustVisor 已经被淘汰了。
添加在: 刚刚注意到每个人都在关注美国和制造内核,所以也许有些旁注:美国、德国、法国以及可能还有大多数其他政府已经并且仍在为某些目的研究强化操作系统。德国政府正在使用 SINA 盒子,这是一种强化的 Linux plus 智能卡,它为不太关键的任务实现了 VPN 网关。让您想知道他们将什么用于关键 VPN。他们资助了替代操作系统设计的研究。今天,他们正在资助 Android 的虚拟化,因此您可以在其他大部分标准的 Android 手机上运行隔离隔间。美国的 SELinux 很出名,法国政府也有类似的系统。NSA 现在也在尝试将 SELinux 引入 Android。以这种方式花费数百万的事实基本上证实了上述问题。
几个数据点。部署和使用安全操作系统的巨大成本更多来自实施和持续保证,而不是研究。自 Multics 以来,许多研究项目都对安全性提出了很好的想法并推进了最先进的技术,但这些系统中很少有比展示概念证明更多的功能。有可用的安全操作系统。谷歌“AESEC”。这个可验证安全的 A1 级操作系统是在英特尔架构上运行的 Multics 的后代。
Multics 不是定制系统:它是霍尼韦尔的标准产品,销售给政府、行业和教育机构;它未能成功,因为没有足够的客户愿意为安全支付额外费用。
Multics 在当时提供了丰富的功能集,但它依赖于 1980 年代微型计算机流行时未提供的硬件功能。客户选择购买大量不安全的小型计算机,而不是购买单一的大型安全系统。Multics 的安全性不依赖于默默无闻,而是依赖于架构、设计、规范的实施和持续的保证。当 Multics 被出售时,它是“现代的”并且具有与其他当代系统相当或更好的功能。Multics 开创了虚拟内存、多处理器支持、加密、图形 API 和网络。(它没有“数千个驱动程序”,但 Multics 中的设备驱动程序无法撤消安全性。)
(我是怎么知道的:我在 Multics 上工作了 16 年,而工业和政府的操作系统安全工作不止于此。)
至少有一些证据表明他们确实使用自定义操作系统。最后几台 Multics 机器似乎是NSA 通往 Internet 的网关。我承认 Multics 只是“自定义操作系统”的这一面,而不是完全自定义的操作系统。Fred Cohen 1984 年的开创性论文“计算机病毒 - 理论与实验”在第 5 节“计算机病毒实验”中提到了在 Univac 1108 机器上运行的“基于 Bell-LaPadula 的系统” 。该系统的描述似乎故意含糊其辞。这听起来也是定制的,除了政府之外,还有谁会关心做 Bell-LaPadula 呢?