由开放原子开源基金会牵头发起的第二届开放原子大赛聚焦实际应用与产业落地,设置了五种赛事:巅峰挑战赛、实战竞技赛、训练学习赛、商业落地赛和学术会议赛。在实战竞技赛道中,OurBMC社区及其理事单位飞腾信息技术有限公司、麒麟软件有限公司、openKylin社区共同创建“计算机系统安全可信方案设计与实现”赛题,旨在推动安全可信技术在计算机系统领域的深入探索与应用。
大赛自启动以来,汇聚了来自全国各地的 150 多位精英选手,携 21 份精彩作品,投身这场为期四个月的激烈实战竞技中。在此期间,各参赛队伍不仅积累了宝贵的实践经验,也深化了对比赛的理解与感悟。本期,社区特别邀请获奖高校团队分享 「走进OurBMC第二届开放原子大赛,共同践行开放包容、共创共赢的开源精神」,让更多人领略开源的魅力,感受技术的磅礴力量。
PART.01
· 参赛背景
作为信息安全和可信计算方向的研究生,我们很早就注意到了BMC技术在可信计算领域的优势和应用,并进行了相关研究和开发工作,我们一直十分关注OurBMC社区,在项目中也有使用到OurBMC开放的源代码。此前,团队在OurBMC官网和微信公众号上看到比赛通知,恰巧比赛的内容和我们之前的研究内容有一定的关联性,对办赛方提供的新型BMC板卡的硬件架构也很感兴趣,因此决定参赛,同时希望借此机会与同行进行交流和沟通,使我们的可信计算方案更加完善。
· 核心方案
针对目前服务器存在的安全需求,团队选择了基于BMC可信子系统的可信启动方案,该方案包括BMC侧和Host侧的可信功能的设计和实现。在BMC侧需要提供可信功能,具体包括TPCM通信模块、主动度量模块、可信支撑机制以及TCM功能;Host侧需要完成后续可信链的建立,在系统启动时,一级度量一级,一级信任一级,把可信扩展到整个系统,具体包括TPCM通信转发模块、可信度量代理等功能。整体方案以BMC作为可信子系统,在BMC侧构建可信功能,能够实现对主机BIOS的可信度量,将信任扩展到主机上,同时BMC侧还能接收来自主机的度量请求并完成度量判定操作。为了进一步确保系统运行的安全,方案增加了动态度量功能,能够在系统运行后对Host侧内核模块进行动态度量并对其完整性进行判定,能够及时发现运行中的错误,以确保系统运行中安全可信。
· 参赛过程及心得
在确定参加此次比赛后,我们在老师的统一带领下很快便确定了队伍的成员。为了能够拿出更切合比赛主题的参赛方案,老师带着我们认真研读比赛要求、赛题内容,多次开会讨论最终确定参赛的方案。在方案确定后,团队便依据每个人的专长分配具体工作任务。但是,在比赛过程中,我们还需要平衡比赛和课程,合理分配学习和项目开发的时间,每个人都为比赛付出巨大的精力和努力。此次比赛对我们来说是一次宝贵的学习和成长经历,经过此次比赛不仅提升了自己的技术能力,还学会了如何在团队中协作和沟通。最重要的是,我们体会到了将理论知识应用于实际问题中的乐趣和成就感。
· 我对社区说
OurBMC社区是开源精神和技术创新的典范,其 “开放包容、共创共赢” 的开源精神值得赞赏,更值得我们学习。在这里我们真诚的感谢OurBMC社区的每一位成员,你们的辛勤工作和卓越贡献不仅推动了BMC技术的发展,也为整个开源社区树立了榜样。希望OurBMC社区能够发展的越来越好,拥有更加美好的未来!
PART.02
· 参赛背景
我们通过开放原子基金会、OurBMC社区公众号途径了解到本次比赛,参赛初衷是希望利用在学校里学到的专业知识和技能,解决当今服务器安全可信启动方案领域所遇到的问题,为提升服务器安全性做出贡献。希望我们凭借自己的努力为国内BMC技术领域的发展带来新的思路和解决方案。
· 核心方案
本作品用BMC板卡中的TPCM作为信任锚点,构建高效、灵活的计算机系统安全启动方案。这一方案与传统的可信计算方案存在关键不同:传统的可信计算技术依赖于主板上内置的TPM硬件模块,而本作品的信任根位于BMC板卡的可信执行环境中,具有更好的隔离性。并且,本作品将可信计算中关键的度量操作转移到BMC板卡上来执行,进一步提高度量操作的安全性。本作品支持关键组件度量、节点间通信等功能。为了验证本作品的设计,团队成员在X86主机、飞腾BMC载板上实现了原型系统。
· 参赛过程及心得
在参赛过程中,我们在编译和移植OpenBMC文件系统时遇到了困难和挑战,例如不知道如何在Yocto工程中使用BitBake工具编译文件系统;对于OpenBMC的启动也无从下手。这些问题既是挑战也是机遇,我们做了大量文献阅读,积极向赛事技术支持团队请教,攻克技术难题。由于学业课程也比较多,我们充分利用科研任务以外的所有时间来参与比赛。技术的高难度和学业的高强度虽导致作品完成度不高,留下一点小遗憾,但最后可以成功晋级决赛并获奖也是对这段挑战和机遇的肯定。
· 我对社区说
在本次大赛中,我们不仅看到其它参赛企业和高校同学如何基于BMC实现了安全可信方案,与其他参赛选手的的交流也让我们对BMC技术栈有了更深的理解。希望能有更多的BMC技术开发者加入到OurBMC社区中来,一起完善和丰富BMC技术栈。
PART.03
· 参赛背景
在学校做过操作系统内核相关的科研项目,对操作系统从底到顶的执行过程非常感兴趣。在开放原子大赛网站看到了可信启动相关比赛内容,想借此来提升自己对于现代操作系统启动阶段的执行过程与启动过程中的安全问题的理解,也借此比赛了解企业技术人员在开发上的思想与科研中思想的异同。
· 核心方案
作品核心是复现并优化安全启动过程。首先实现了基于UEFI的安全启动流程,包括实现了UEFI启动shim、shim启动grub、grub启动内核以及UEFI验签shim、shim验签grub和内核等详细过程,并在复赛阶段实现了openEuler对于安全启动流程的国密支持。
· 参赛过程及心得
基于丰富的科研项目经验,团队在UEFI安全启动的复现过程中遇到的挑战相对较少。然而,在实现国密算法加密的过程中,由于依赖openEuler的加密工具,存在工具链部署复杂、关键软件包缺失等难题。为克服这一难题,团队深入探索了多个版本的openEuler,精心搜寻并匹配了必要的软件包。经过团队的不懈奋斗,我们最终顺利部署了所需的工具链,并在openEuler平台上成功实现了基于国密算法的加密与验证流程。
· 我对社区说
OurBMC社区提供的开源大赛对于学生来说不仅提供了学习企业中实际开发过程的机会,还为我们提供了真真正正上手实现开发过程的机会。学习BMC开源技术栈的实现原理,不仅帮助我们将课程中的理论与现实代码相结合,也提升了我们开发实际项目的能力。
PART.04
· 参赛背景
参加本次大赛,主要基于两方面的考虑:一方面,我们期望通过比赛这一实战平台,验证团队在可信度量、密码服务等核心技术领域的研发成果,检验其实际应用效能;另一方面,我们也渴望借此机会与众多行业内的专家和团队进行深度交流与学习,不断拓宽我们的视野,丰富我们的研究视角和思路,共同推动该领域的创新与发展。
· 核心方案
获奖作品核心思想是保护计算平台从上电启动到正常运行过程中的所有行为,确保各阶段操作的安全与可信。主要采用以下关键机制:
- 可信静态度量:在设备上电至操作系统加载过程中,对系统进行静态度量,确保启动链路中的安全性和完整性;
- 可信动态度量:在操作系统运行中,对各类软件、进程或关键操作的行为进行动态度量,及时识别并阻断异常;
- 可信密钥管理与密码服务支撑:基于安全硬件的密钥管理和密码服务,使密钥的生成、分发、存储和调用全流程都在可信环境中完成,为系统提供安全通信与数据保护的基础。
通过这些功能的有机结合,我们的方案能够从平台启动阶段到运行过程的全周期提供可信保障,为BMC系统的安全与稳定奠定坚实基础。
· 参赛过程及心得
在比赛中,我们经历了如何高效组队、合理分工以及在繁忙的学业和研究任务中挤出时间进行项目开发的挑战。最困难的部分莫过于在短时间内对赛题进行深入解析和快速实现,但团队成员紧密协作、互相支持,让我们既收获了宝贵的技术经验,也在压力下彼此见证了成长。这次参赛不仅帮助我们在可信计算领域完成了一次阶段性检验,也为后续科研和实践提供了丰富的启示。
· 我对社区说
随着硬件和系统架构的不断演进,BMC技术在保障数据中心和云端服务器的安全运维中扮演着越发关键的角色。我们由衷地感谢OurBMC社区在知识共享和开放生态构建方面的努力,让更多开发者和研究人员有机会深入探索、交流与实践。同时,开源模式也为可信计算带来了更多可能性——它鼓励我们去思考如何在更广阔的协作环境中共建安全、共享成果,从而推动可信计算和BMC技术的加速融合发展。希望未来能与社区伙伴携手并进,共同打造更加安全、开放的计算生态。
首届 OurBMC 开源大赛已圆满落幕,但开源不断,创新不止,期待更多的开发者成为开源世界的英勇探索者。OurBMC 社区诚邀业界广大同仁积极参与社区建设和交流,一起为社区和 BMC 生态贡献力量,共同取得更加卓越的成就。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。