デジタル人材の育成
現在普及しているコンピュータにはハードウェアのリセットからOSの起動までを担う、ファームウェアが搭載されている。ファームウェアは通常ハードウェアベンダにより、プロプライエタリなソフトウェアとして提供されており、ユーザに対してはそのソースコードが公開されてはいないため、ユーザがファームウェアを修正することは困難となっている。こうしたことから、既存のファームウェアを置き換えることを目的としたcorebootと呼ばれるオープンソースプロジェクトが存在する。corebootにより生成されるファームウェアはcoreboot本体とpayloadの2つの部分から構成される。payloadには様々なソフトウェアを搭載することができ、例えばSeaBIOSと呼ばれるLegacy BIOSの実装などが存在する。現在の一般的なPC向けファームウェアの規格であるUEFIに対応するオープンソースのファームウェアはIntelにより開発が進められているTianoCoreのみであり、corebootにおいてそのpayloadとして使うことのできるUEFI対応のファームウェアはTianoCoreのみである。プロプライエタリなファームウェアはTianoCoreをリファレンスとして実装されているものが多く、TianoCoreのUEFI実装に脆弱性が存在した場合、その影響は非常に大きいものとなる。
本プロジェクトでは、coreboot上にTianoCore に置き換わるUEFI対応のコンパクトでオープンなpayloadを開発する。UEFIの規格は非常に巨大であるが、通常のOSの起動には使われていない機能も多い。そのため、Attack Surfaceを減らすためにも、UEFI規格のうち必要最小限の機能を備えたベアボーンとしてpayloadを実装し、その他の機能は必要に応じてプラグインとして追加できるようにする。コンパクトでオープンなファームウェアを実現することにより、脆弱性に対して堅牢な環境を実現するだけでなく、PXEブートなどのネットワークブートの仕組みと絡めることによるBare Metalクラウドへの応用などの効果が期待できる。
16bit時代から続くIBM PC/AT互換機のファームウェアでデファクトスタンダードだったBIOSは使われることが少なくなり、最近の64bitマシンではBIOSの代わりにUEFIのファームウェアが搭載されることが普通になってきた。既存のUEFIのリファレンス実装の一つであるTianoCoreとは別のオープンソースのUEFI実装をフルスクラッチで行なうという提案である。サブセットで小さなものを作るというよりも、ベアボーンとプラグインによる実装で必要なものだけを選んでフットプリントの小さいファームウェアを自由に構築できるというところがポイントである。PXEブートなどのネットワークブートの仕組みと絡めると、BareMetalクラウドへの応用が広がるかもしれない。地味なプロジェクトに感じられるかもしれないが、コツコツと開発を続け、PCファームウェアの世界でもオープンソースによる自由な開発が進む流れの一翼を担うことを期待したい。