「由开放原子开源基金会牵头发起的第二届开放原子大赛聚焦实际应用与产业落地,设置了五种赛事:巅峰挑战赛、实战竞技赛、训练学习赛、商业落地赛和学术会议赛。在实战竞技赛道中,OurBMC社区及其理事单位飞腾信息技术有限公司、麒麟软件有限公司、openKylin社区共同创建“计算机系统安全可信方案设计与实现”赛题,旨在推动安全可信技术在计算机系统领域的深入探索与应用。」
大赛自启动以来,汇聚了来自全国各地的 150 多位精英选手,携 21 份精彩作品,投身这场为期四个月的激烈实战竞技中。在此期间,各参赛队伍不仅积累了宝贵的实践经验,也深化了对比赛的理解与感悟。本期,社区特别邀请获奖企业团队分享「走进OurBMC第二届开放原子大赛,共同践行开放包容、共创共赢的开源精神」,让更多人领略开源的魅力,感受技术的磅礴力量。
PART.01
· 参赛背景
作为 OurBMC 社区理事成员单位,浪潮计算机积极响应社区活动,为开源社区贡献一份力量。同时也想通过本次大赛与 BMC 技术大牛过招,进一步提升团队成员的 BMC 专业能力。
· 核心方案
在本次大赛中,浪潮计算机团队以 飞腾服务器芯片搭配浪潮自研主板为硬件基础,设计出基于 BMC 形态的“计算”与“防护”并行的主动免疫双体系结构方案,颠覆了行业现行的以“CPU 内置可信根,BIOS 与 TPM/TCM 芯片交互度量计算部件的方案”。本次获奖作品基于 BMC 功能核和可信核的防护部件作为服务器完整性度量的起点,可实现防护部件主动度量、主动防御,包含双系统安全启动以及对计算部件 CPU、内存、PCIE、Grub、Shim、Kernel、Initrd、OS APP 的逐级可信度量,并将度量结果在 bmcweb 展示,进而为服务器信息系统构建安全可信的计算环境和通信环境,以提升信息系统主动、动态、整体、精准的防御能力,最终构筑“可信”、“可管”、“可控”的服务器可信安全防护能力。
· 参赛过程及心得
在接到赛题后,我们识别出两大解题路径:一是聚焦于 BMC 可信子系统的可信启动方案设计,二是安全启动方案的实施。鉴于可信计算领域已汇聚了众多高校、服务器及固件制造商的深厚研究,我们意识到,唯有提出一个更为全面且贴合可信 3.0 标准的方案,方能脱颖而出。因此,我们决定融合这两个方向,实现一个综合性的解决方案。
面对时间紧迫与任务繁重的双重挑战,我们依托自身优势和过往经验,对赛题进行了深入剖析。为了更严格地遵循 BMC 的 TPCM 技术规范,我们对 BMC 芯片进行了创新划分,将其分为可信核与功能核,并将 TCM 芯片迁移至 BMC 端,从而改变了原有的与 BIOS 的交互模式,转而与 BMC 进行交互,构建了一套适用于当前主板的防护组件。
此外,我们积极与 BIOS、系统软件及 CPLD 团队开展沟通与合作,共同制定了与 BIOS 及操作系统可信启动的交互策略,并成功实现了这一策略。最终,我们打造出一套集防护与主动度量计算于一体的完整方案。
· 我对社区说
感谢 OurBMC 社区提供了一个如此卓越的平台,让固件开发者得以深入探索 BMC 领域的奥秘。在这里,知识共享的氛围浓厚,每一次的技术交流和讨论都让开发者受益匪浅。OurBMC 社区不仅是大家学习成长的摇篮,更是结识志同道合朋友的桥梁。未来,浪潮计算机期待与 OurBMC 社区一同前行,在 BMC 技术的浪潮中乘风破浪。最后衷心祝愿 OurBMC 社区蓬勃发展,越办越精彩!
PART.02
· 参赛背景
我们通过 OurBMC 社区公众号获知了本次大赛的相关信息,组队参加本次大赛主要基于以下几点考虑:首先想通过参加本次大赛了解目前业界高水平的公司和高校在安全方面的最新研究成果,进而拓展自己的知识,并借此机会跟其它参赛队伍交流安全方案的优缺点;其次想和大家分享一下移动云硬件团队在服务器安全方面做的工作,并期待大赛的评审专家及参赛同行对我们的方案提出宝贵的指导意见,助力我们在服务器安全领域不断前行,迈向新的高度。
· 核心方案
本次获奖作品是“BMC 安全启动方案设计”,其核心思想是使用一块最高安全等级的安全芯片,在 BMC 和 BIOS 启动前,对 BMC 和 BIOS 的 flash 固件进行全面的校验,校验通过,则服务器正常启动;校验失败,则进入主备切换或者固件恢复过程。升级动作同样也是由安全芯片执行,BMC 需要将固件上传到指定区域,由安全芯片执行验签和校验过程之后才会对 BMC 或 BIOS 镜像进行升级。同时,利用安全芯片内置的 PUF 区域实现 TPCM 功能,结合虚拟化平台驱动和 UEFI 功能,实现对 Linux Grub 校验以及对虚拟机提供可信计算的服务。
· 参赛过程及心得
在本次 OurBMC 开源大赛中,我们迅速组建了一支技术实力互补、充满活力的团队,团队成员间展现出极高的协同性,通过紧密无间的合作,共同投入到赛题的深入解析之中。我们广泛搜集并仔细研读了大量相关资料,经过激烈的讨论与思维碰撞,成功攻克了多个技术难题,这一过程展现了团队强大的问题解决能力。在紧张的比赛与日常工作的双重压力下,我们团队展现出了出色的时间管理能力,通过明确的分工与详尽的时间规划,我们确保了比赛准备与日常工作之间的平衡,实现了效率的最大化。同时,我们也看到了其他参赛队伍的优秀作品,这些优秀作品为我们后续在服务器安全领域的研究提供了宝贵的参考与启示。
· 我对社区说
当前,众多主流厂商纷纷投身于 OpenBMC 的开发浪潮中,携手打造了一个统一的开发平台。我们热切期望与国内 CPU、GPU、网卡及存储卡等领域的厂商携手合作,在 BMC 的带外管理功能与故障诊断技术上深度融合,全面提升信创平台的可用性、功能丰富度及维护便捷性。当然,作为社区理事成员单位,我们会与社区携手推动 BMC 技术的持续创新,共同促进 BMC 生态的繁荣发展,让 OurBMC 成为国内 BMC 开发者共享智慧、交流技术的首选舞台。
PART.03
· 参赛背景
作为热衷于技术探索与实践的开发者,我们深知开源比赛所蕴含的深远意义与多重价值。首先我们想通过本次实践机会,提高自身在代码编写、复杂软件开发、项目管理等多方面的能力;其次想通过参与本次开源比赛,了解 BMC 领域的最新技术趋势,以拓宽自身的技术视野,更为自身在快速迭代的技术世界中保持竞争力奠定基础。更重要的是,OurBMC 社区组织的本次开源大赛,让我们有机会将自己的智慧与热情贡献给开源社区,实现个人价值,同时也让我们有机会在业界获得认可,有助团队未来的职业发展。
· 核心方案
本次获奖作品核心思想是 基于飞腾腾云S5000C平台实现 UEFI Secure Boot 功能,确保计算机在启动时只加载经过认证的软件,并在原有安全启动功能上添加导出签名、导出所有安全启动项变量、模式的切换等功能。具体包括以下几个主模块:
① 固件和操作系统之间的信任链建立:在计算机启动时,UEFI 固件首先执行。UEFI 固件会检查固件级别的签名,确保固件本身是可信的。然后 UEFI 固件会加载一个经过签名的启动加载程序,这个启动加载程序负责加载操作系统。
② 密钥管理:UEFI Secure Boot 使用一组密钥来验证启动过程中的软件组件。
③ 签名验证:在操作系统加载之前,UEFI 固件会检查启动加载程序(如GRUB)的签名。如果签名有效,加载启动程序,然后加载操作系统。如果签名无效,不加载启动程序,计算机停止启动过程。
④ 用户控制:用户可以在 BIOS 设置中启用或禁用 Secure Boot。用户还可以添加或删除数据库中的密钥,以控制哪些软件可以启动。
⑤ 恢复出厂设置:用户可以使用恢复出厂设置功能,将系统恢复到初始的安全启动配置。
· 参赛过程及心得
针对本次赛题,我们原本就已经有一套完整的实现方案,关键在于如何把代码层面的内容以书面的形式、大众能听懂的方式呈现出来。另外,面对工作与比赛的双重压力,我们精心制定了详尽的目标规划,明确每一项任务的完成时限,确保在既定的时间框架内高效达成既定目标。在此基础上,我们充分利用个人休息与空余时间,全身心地投入到比赛中,不断打磨作品,力求在每一个细节上都达到极致。最终,我们的作品以其出色的创意、精湛的技术实现以及清晰的文档表达,赢得了评委专家的高度认可和赞誉。这不仅是对我们团队技术实力的肯定,更是对我们团队协作精神和不懈努力的最好证明。
· 我对社区说
作为开源技术爱好者,我们希望 OurBMC 社区能够进一步加强社区内的交流与合作,给社区开发者提供互相分享经验、解决问题、共同进步的机会,形成良好的开源生态。同时也建议社区开展开源教育和培训相关的活动,培养更多具有开源意识和能力的人才,为社区注入新鲜血液。此外,社区可以多举办开源活动,促进各方开源人才的交流沟通,推动 BMC 开源技术的发展。
PART.04
· 参赛背景
昆仑太科一直深耕于计算机系统安全可信技术的研发,致力于推动该领域的持续进步。在获悉 OurBMC 社区举办主题为 “计算机系统安全可信方案设计与实现” 的第二届开放原子大赛后,我们团队迅速捕捉到了这一赛事与我们技术理念高度共鸣。秉持着开放交流、共同进步的核心价值观,我们希望借助这一高端平台,展现我们在安全可信技术栈方面的创新突破与实践成果。我们积极参与比赛,不仅是为了检验和提升自身技术实力,更是为了践行开源共享的精神,为推动整个行业的健康发展贡献一份力量。我们坚信,通过参与此次大赛,能够进一步激发团队的创新活力,促进技术交流与碰撞,共同探索计算机系统安全可信的新边界。
· 核心方案
本方案精心打造了 一个全方位的安全启动流程,通过在各计算机运行层级实施严格的逐级数字签名验证机制来确保安全。该流程预先生成 PK、KEK、DB 等公私钥对,以 PK 签 KEK、KEK 签 DB、DB 签 Shim、Grub、Kernel 等方式,保障启动流程文件的安全与完整。UEFI BIOS 依 BIOS 内 DB 公钥验签 Shim,Shim 再验签 Grub、Grub 验签 Kernel,形成严密验证链路。本方案特色鲜明:
① 全栈式验签机制:支持 UEFI - Shim - Grub - Kernel 全栈验签,筑牢系统启动安全防线。
② 增强的证书安全层级:新增了 PK 对 KEK、KEK 对 DB 的签名验证环节,进一步提升了证书的安全级别。
③ 内置官方黑名单:内置 UEFI 社区官方黑名单,有效阻断不可信启动程序。
④ Shim 管理与维护便利:引入 Shim 并配备独立证书与 SBAT 数据,便利整机与 OS 厂商维护管理。
⑤ 多平台全栈安全启动:用户可利用自有证书在多平台实现全栈安全启动,适用于各类安全敏感应用场景。
· 参赛过程及心得
在剖析“计算机系统安全可信方案设计与实现”赛题时,我们的团队凭借敏锐的洞察力,精准定位了构建系统级安全可信流程的关键技术——打造从 UEFI 至内核的完整验证链条。为此,我们选择了逐级验签策略,并巧妙地引入了 Shim 层,以期在增强系统灵活性的同时,进一步提升其安全性。但是身为 BIOS 固件工程师,虽在 BIOS 领域较为熟悉,但在 grub、shim、kernel 等方面涉足尚浅。面对这一挑战,我们的团队并未退缩,而是积极投身于相关技术的拓展学习中,通过紧密的协作与不懈的努力,最终实现了从理论到实践的跨越。此次参赛经历,深刻彰显了团队协作与持续学习在应对复杂挑战时的核心作用,更让我们对安全启动机制有了更为深入的理解,这无疑是我们团队技术进阶道路上的一笔宝贵财富。
· 我对社区说
昆仑太科有幸在 OurBMC 这一充满活力的开源平台与同行并肩。作为社区发起者之一,在大赛中荣获二等奖,既是团队专业能力的有力见证,更是对社区开源理念的积极践行。我们笃定开源是技术创新的核心引擎,未来昆仑太科将矢志深耕,与社区成员携手奋进,全力推动 OurBMC 社区繁荣发展,为铸就安全可信计算机系统添砖加瓦。
PART.05
· 参赛背景
作为国产化自主可控数字技术领域的先锋企业,我们从 OurBMC 社区建立之初就一直关注社区动态和活动。在 OurBMC 社区组织的首届开放原子大赛中,我们的参赛作品也荣登榜单。期待在本次的大赛中能有更多的机会与来自全国各地的 BMC 开发者和安全领域的专家有更深入的交流,也希望能够获取更多关于 BMC 方面的知识和经验。
· 核心方案
本次参赛作品是 关于服务器安全启动相关的技术研究,其核心流程是基于 BMC 模块,将 TPM 功能植入到 BMC 软件中,进而通过 BMC 实现对服务器的安全启动。具体实现思路是基于 BMC 内部模拟 TPM 为可信根,并将其分为四个度量模块,模块之间递进式构建起服务器安全启动信任链:
① 服务器 BIOS 可信度量,BMC 主动获取 BIOS 端代码进行度量,若是度量成功允许正常启动,度量失败则需要进行更新操作。
② 服务器 GRUB 可信度量,通过发送 IPMI 信息和模拟 USB,将 bootload 代码给到 BMC 进行度量操作。
③ 服务器内核可信度量,通过发送 IPMI 信息和模拟 USB,将内核及重要文件代码给到 BMC 进行度量操作。
④ 服务器重要应用可信度量,上层 APP 应用调用 TPM-TSS 栈,将需要度量的数据通过内核中编写的 IPMI 驱动发送给 BMC 端进行度量操作。
· 参赛过程及心得
首先要感谢本次比赛的主办方,他们的辛勤工作和细心筹备为比赛的顺利进行提供了坚实的保障。尤其是在比赛的准备阶段,工作人员举办了一场赛题答疑培训,这对我们理解和把握赛题非常重要。在比赛中,我觉得最具挑战性的就是我们对 TPM 安全启动不太熟悉,但又需要在有限的时间内,准确而精炼地提炼出作品的亮点,这不仅是对我们专业能力的考验,更是对我们思维敏捷性和创造力的挑战。最后,对于如何平衡比赛和工作,我觉得最重要的是保持初心。
· 我对社区说
OurBMC 社区的发展和建设对我们国内 BMC 技术、生态和规范发展有着至关重要的影响,加速我们追赶国外技术的脚步。作为一个专注于 BMC 开发的技术人员,我热切期盼能有更多同行在 OurBMC 社区内积极分享开发旅程中的宝贵心得、精彩成果,以及遇到的挑战与难题。同时也希望更多的人能够加入到 OurBMC 社区,共建创新平台,推动行业生态繁荣发展。
第二届开放原子大赛已圆满落幕,但开源不断,创新不止,期待更多的开发者成为开源世界的英勇探索者。OurBMC社区诚邀业界广大同仁积极参与社区建设和交流,一起为社区和BMC生态贡献力量,共同取得更加卓越的成就。
关于OurBMC
OurBMC 社区是开发者交流和创新 BMC 开源技术的根社区,社区秉承 “开放、平等、协作、创新” 原则,坚持 “开源、共建” 的合作方式,旨在共同推进 BMC 技术快速发展,辐射上下游形成产业共振,加速构建繁荣的信息系统软硬件生态。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。