政府领域的 Linux:美国国防部内部的开源创新
在 1993 年为其医院实施集成软件解决方案之前,军方在其计算机服务方面遇到了瓶颈。武装部队的每个分支机构都使用不同的遗留系统和人工程序来控制医疗用品和设备、设施、承包商和记录的流动。然后,美国国防部 (DoD) 使用通用标准平台自动化了流程,以便为每个兵种进行医疗后勤。当您管理的医院和医疗保健设施像军方一样多时,基于标准的解决方案和协调的自动化至关重要。
国防部负责卫生事务的助理部长接受了所谓的“国防部信息优势倡议”。简而言之,随着服务人员被部署到不同的战区,新的和更好的标准变得至关重要。这就是国防医疗后勤标准支持 (DMLSS)计划发挥作用的地方。DMLSS 系统是由四个主要兵种使用的自动化信息系统,旨在为军事医院和其他医疗机构提供医疗后勤支持。
DMLSS 为四个兵种提供了一个通用的标准平台,用于进行医疗后勤。它提供端到端的信息技术,使各兵种能够以电子方式订购和接收产品及服务,并创建和发布付款发票。DMLSS 还提供记录保存服务,例如库存控制。该系统符合国防部的会计标准,使主计长办公室能够更有效地编制其财务记录。最后,DMLSS 充当国防部医疗资产的记录来源。
DMLSS 的项目管理办公室 (PMO) 位于弗吉尼亚州福尔斯教堂。持续的开发和支持设施位于马里兰州德特里克堡的联合医疗后勤职能开发中心。在德特里克堡,程序员支持需要密码学的应用程序中的开源组件。他们开源的组件包括 Stunnel、Apache, ModSSL 和 OpenSSL。
虽然 Stunnel 本身不包含任何密码代码,但它依赖于外部 SSL 库,例如 OpenSSL。ModSSL 通过安全套接字层 (SSL v2/v3) 和传输层安全 (TLS v1) 协议为 Apache 1.3 WebServer 提供强大的密码学,这在一定程度上得益于开源 SSL/TLS 工具包 OpenSSL。OpenSSL 项目是一项协作努力,旨在开发一个强大、商业级、全功能且开源的工具包,该工具包实现了 SSL v2/v3 和 TLS v1 协议,以及一个全强度通用密码库。
PMO 支持开源的使用,并将其视为一种使能技术。随着 DMLSS 成为整个军方的标准,部门负责人享受了他们计划的成功。它已荣获 17 个奖项,从 1997 年的政府信息技术领导奖开始,最近在 2003 年荣获电子商务转型奖。
我们中的一些人可能难以想象,但在 2000 年 1 月,国家安全局的成员颁布了一项政策,要求任何使用信息保障的军事计划都必须使其产品通过国家标准与技术研究院 (NIST) 的验证。DMLSS 的开源组件缺乏这种称为 FIPS 140-2 验证的验证。
这导致 DMLSS 的技术经理 Steve Marquess 承担了寻找 OpenSSL 库替代品的任务,因为 OpenSSL 库在 DMLSS 中被广泛使用。这也让他踏上了一段将意外发现与国防部指挥系统的现实相结合的旅程。经过几个月的研究,Steve 说他“发现了两件事:没有多少商业软件可用,而且现有的软件非常昂贵。其次,OpenSSL 已经被多次验证。”
由于 OpenSSL 具有 BSD 风格的许可证,许多供应商只是抓取了源代码并将其合并到他们的专有产品中。这些供应商实际上想要数十万美元的许可费。正如 Steve 所证实的那样,“作为一名纳税人,我感到非常恼火。但这让我意识到几件事。首先,如果 OpenSSL 已经过验证,那么我们有可能再次做到这一点。其次,如果我们能做到,我们可以为该计划节省大量资金。”
Steve 将这个想法告诉了他的上级:PMO 运营主管 Debbie Bonner 和当时的 DMLSS 项目经理 Dan Magee 上校。两人都积极鼓励 Steve 继续前进。Steve 说:“[对于 Debbie Bonner 和 Magee 上校来说] 最容易走的路是拿出大量纳税人的钱来购买专有软件,但他们反而支持了这种跳出框框的举动。我认为这需要胆量,尤其是在几乎所有人都告诉我们这是不可能的情况下。”
Steve 曾尝试但不成功地让各种供应商和组织参与该项目的合作。特别是该计划在惠普的供应商似乎有些不情愿。但是,惠普 DMLSS 客户代表 Jeff Cohen 希望看到该计划向前推进。因此,Jeff 联系了惠普通用标准组的 Gary Gross(有关通用标准的定义,请参见此处),并安排了内部资金和资源分配,以帮助支付该项目的费用。
虽然他现在得到了 PMO 的支持以及惠普的一些资金,但 Steve 仍然需要一种外包工作的方法。他打电话给当时在惠普工作的 Bruce Perens 并寻求帮助。在听取了这个想法后,Bruce 决定他喜欢它,并推荐 开源软件协会 作为唯一来源供应商。
Bruce 还推荐了 OpenSSL 项目的 Ben Laurie 来准备用于测试的库。四方举行了一次电话会议,项目启动了。开源软件协会的 John Weathersby 成为唯一来源提供商,并处理所有行政和非技术管理角色。此外,OSSI 成为该项目的单一联系点。
该项目的首要目标之一是向受国家安全局 NSTISSP 第 11 号指令(见下文注释)影响的国防部其他部门和其他政府机构提供开源库。这涉及到找到一种方法来获得以源代码形式分发的软件的验证。然而,实际上无法做到这一点。因此,测试实验室收到了源代码而不是二进制文件。这允许实验室编译代码,在两个代表性平台(SuSE Linux 和 HP UX)上创建二进制文件,并验证代码生成的二进制文件。然后他们可以丢弃二进制文件。
通常,对于 FIPS 140 验证,供应商提供二进制代码,该代码经过验证,就像它分发给客户一样。FIPS 140 要求对二进制代码进行运行时完整性检查。但是,开源软件以源代码形式分发。因此,这里的技巧是产生一种机制,通过该机制可以将加密指纹从原始源代码一直链接到最终的运行时可执行文件。
项目团队必须实现几个里程碑,这大约花费了 18 个月。里程碑包括源代码修改、编写安全策略和运行验证测试。Ben Laurie 编写了源代码修改。首先,他必须隔离源代码的关键部分,以便在日常维护过程中不会对其进行修改。这允许 OpenSSL 项目为想要编译 FIPS 代码的人维护 FIPS 代码。其次,Ben 必须编写测试驱动程序来处理 270 多个测试向量,以证明算法的价值。
Steve 编写了安全策略文档,该文档后来被拆分为安全文档和用户指南。他还编写了供应商证据文档,这需要完成一个冗长的模板。最后,Steve 将源代码提供给 DOMUS IT 安全实验室的 FIPS 140 项目经理 Christian Brych 进行测试。
在 2004 年 5 月 10 日星期一,国家标准与技术研究院 (NIST) 发布通知,宣布 OpenSSL 的 AES、DES、3DES、DSA 和 SHA-1 算法已获得验证。验证通知可以在以下 NIST 站点找到
虽然算法的成功验证并不意味着 OpenSSL 已获得 FIPS 140-2 验证,但 NIST 对这些算法的验证确实标志着一个重要的里程碑。Steve Marquess 耐心地等待 OpenSSL 的最终验证。如果验证通过,Steve 希望看到开源分发模型得到增强。他说:“虽然过去的所有验证都被视为专有数据,但我们将发布测试驱动程序、输入和输出测试向量以及供应商的证据文档。虽然我找到了大量可用的安全策略文档,但我从未见过一份供应商文档。因此,我希望这将使下一个人的工作更容易。”
注释:国家安全电信和信息系统安全策略 (NSTISSP) 第 11 号指令,有关“另一只靴子”的一些相关信息可以在此处找到。
自 2001 年 1 月 1 日起,应优先采购已根据以下规定进行评估和验证的 COTS IA 和支持 IA 的 IT 产品(用于进入、处理、存储、显示或传输国家安全信息的系统):
信息安全技术评估共同准则国际互认协议;
国家安全局 (NSA)/国家标准与技术研究院 (NIST) 国家信息保障合作伙伴关系 (NIAP) 评估和验证计划;或
NIST 联邦信息处理标准 (FIPS) 验证计划。
美国各部门和机构负责人负责确保遵守本政策的要求。
除了 DMLSS、惠普和 John Weathersby 的资助外,IBM 的 Doc Shankar 通过 Linux 技术中心为 SuSE Linux 上 X86 平台的测试提供了资金。
Tom Adelstein 与他的妻子 Yvonne 住在德克萨斯州达拉斯市,并在当地和全国范围内担任 Linux 和开源软件顾问。他是即将出版的书籍 使用 Java 桌面系统探索 Linux 的合著者,该书由 O'Reilly and Associates 出版。Tom 还为各种关于 Linux 技术和营销问题的出版物撰写了大量文章,担任客座编辑。