2012-06-23

Ubuntuのセキュアブートへの対応

[Phoronix] Ubuntu's Plans To Implement UEFI SecureBoot: No GRUB2

Canonicalは、UbuntuをプレインストールしたOEM品の販売も視野にいれているため、セキュアブートに使う秘密鍵を公開できないことは、GPLv3に抵触するのではないかと考えているそうだ。そのため、セキュアブート環境でのブートローダーは、GRUB2ではなく、Intelのefilinuxを改造して使うことを考えているそうだ。ブートローダーをMS鍵で署名して、そこから先は独自の鍵で署名する。

Fedoraのセキュアブート対応を振り返ると、まずMS鍵で署名された軽量のブートローダーをブートさせ、そのブートローダーから、GRUB 2をブートさせ、そこからLinuxカーネルをブートさせる。ただし、GRUB2は未署名のモジュールを読み込まないようにしておき、Linuxカーネルも未署名のドライバーは読み込まないようにする。

Canonicalは、Fedoraのような軽量ブートローダーという道は取らなかったようだ。

しかし、GPLv3に抵触するというのは解せない。

If you convey an object code work under this section in, or with, or specifically for use in, a User Product, ..., the Corresponding Source conveyed under this section must be accompanied by the Installation Information.

もし、この著作物であるオブジェクトコードを、この条項で定義するユーザープロダクトに、あるいは同梱して配布し、あるいはユーザープロダクトで特別に使うために配布した場合、[中略]、この条項による対応するソースは、インストール情報と共に提供されねばならない。

とある。だから、単にプレインストールのみではなく、MS鍵が同梱されているハードウェアでセキュアブートを使うためのソフトウェアは、すべてこの、「ユーザープロダクトで特別に使うため」に該当するはずだ。したがって、OEM生産によるUbuntuプレインストールかどうかにかかわらず、単にインストールディスクの配布だけでも、この条件には当てはまるはずだ。

さらに、「インストール情報」というのは、

“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

ユーザープロダクトに対する「インストール情報」とは、任意の手法、手続き、認証鍵、あるいは他の情報等で、改変版ソースによる改変版の配布物をユーザープロダクトで実行しするために必要なものである。この情報は、改変されたオブジェクトコードが、改変されたという事実だけで、機能を阻害し、あるいは影響してはならない。

とあるので、Fedoraのように、自前の鍵で署名する方法を提供すれば、十分ではないのか。そもそも、このユーザーブロダクトであるPCでは、セキュアブートを無効にする方法がある。それで十分だという気がしないでもない。

ユーザープロダクトとは、簡単に言えば、利用者に所有権や支配権が、無期限、あるいはある一定期間引き渡される物のことである。この場合はセキュアブートを実装したコンピューター。

ちなみに、GPLv3は、受け取り手により改変版のオブジェクトコードが使用された場合、サポートや保証、アップデートを打ち切っても良いとしている。

No comments: