このプロセスは、認証されていないソフトウェアの起動を防ぎます。私はそれらを見ることができませんが、これには利点があるかもしれません。
ハードウェアから起動できるものと起動できないものを制御する新しいセキュリティメカニズムがあります。セキュリティ機能。手遅れになるまで、必要な気がしません。しかし、私は脱線します。
Linuxのメーリングリストでスレッドを読みました。RedHatの従業員がLinus Torvaldsに、PEバイナリを解析し、カーネルをセキュアブートモードで起動するための複雑なアクションを実行する機能を実装するチェンジセットをプルするように依頼しています(理解できる限り) )。
GPUファームウェアのようなドライバーは、セキュアブートに合わせて署名する必要があります。そうしないと、別のルートキットになります。現状では、これらのドライバーはPE形式で署名されています。とにかくカーネルはそれらなしでブートできますが、ハードウェアは動作しません。カーネルでのPE形式の解析は、すべてのハードウェアベンダーに各ディストリビューションのBLOBに署名するよう依頼するか、これを行うためのユーザースペースフレームワークを設定するよりも、技術的に簡単な選択です。Linusは、Microsoftのペニスを吸わないことにしました。それは技術的な議論ではありません。
ホームユーザーとしてUEFIとセキュアブートを使用すると、どのようなメリットがありますか?
最も目に見える機能はUEFI高速ブートです。いくつかのWindows 8ロゴデスクトップを手に入れましたが、それらは非常に高速で起動するため、起動メニューを表示するのに失敗することがよくあります。IntelとOEMは、これに関してかなりの技術を持っています。
あなたが情熱を持って肥大化とコードの複製を嫌うタイプのLinuxユーザーであれば、ファームウェアレベルでマルチブートを管理し、ブートローダーを完全に削除することもできます。UEFIは、カーネルに直接起動するか、ファームウェアメニューで他のOSを起動することを選択できるブートマネージャーを提供します。少し手を加える必要があるかもしれませんが。
また、起動時およびファームウェアメニュー内のより洗練されたグラフィックス。起動時のセキュリティの向上(セキュアブート)。その他の機能(IPv4 / 6ネットブート、2TB +ブートデバイスなど)は、主にエンタープライズユーザー向けです。
とにかく、Linusが言ったように、BIOS / UEFIは「OSをロードしてそこから抜け出す」だけであり、UEFIは確かに高速起動のホームユーザーにはそう見えます。確かに内部のBIOSよりも多くの機能を実行しますが、ホームユーザーのことを言っている場合、彼らはそれを気にしません。
この署名はどのように行われますか?
理論的には、バイナリを秘密鍵で暗号化して署名を生成します。次に、公開鍵を使用して署名を検証し、秘密鍵の所有者がバイナリに署名したことを確認してから、バイナリを検証します。ウィキペディアで詳細を参照してください。
技術的には、バイナリのハッシュのみが署名され、署名はPE形式と追加の形式の調整でバイナリに埋め込まれます。
手続き的に、公開キーはOEMによってファームウェアに保存されます。これはマイクロソフトのものです。次の2つの選択肢があります。
- あなた自身の鍵のペアを生成し、しっかりと管理し、ファームウェアにあなた自身の公開鍵をインストールし、そしてあなた自身の秘密鍵(とバイナリに署名sbsignのUbuntuから、またはpesignのFedoraから)、または
- バイナリをマイクロソフトに送信し、署名してもらいます。
誰が署名/証明書を取得できますか?支払われますか?公開できますか?(Linuxのソースコードで利用できるはずですよね?)
署名/証明書はバイナリに埋め込まれているため、すべてのユーザーが署名を取得する必要があります。誰でも独自のCAをセットアップし、自分用の証明書を生成できます。ただし、Microsoftに証明書を生成してもらいたい場合は、Verisignを使用して身元を確認する必要があります。プロセスの費用は99ドルです。公開鍵はファームウェアにあります。秘密鍵はマイクロソフトの安全な場所にあります。証明書は署名されたバイナリです。ソースコードは含まれません。
署名を提供する唯一の機関はマイクロソフトですか?それらを提供する独立した基盤があるべきではありませんか?
PKIの管理、IDの確認、既知のすべてのOEMおよびハードウェアベンダーとの調整のプロセスと比較すると、技術面はかなり単純です。費用がかかります。マイクロソフトには、インフラストラクチャ(WHQL)と長年の経験があります。したがって、彼らはバイナリに署名することを申し出ます。独立した財団は誰もが同じことを提供するためにステップアップできますが、これまでのところ誰もそれを行っていません。
IDF 2013でのUEFIセッションから、Canonicalはタブレットファームウェアに独自のキーを追加し始めたようです。そのため、CanonicalはMicrosoftを経由せずに独自のバイナリに署名できます。しかし、彼らはあなたのことを知らないので、あなたのためにバイナリに署名する可能性は低いです。
これは、オープンソースおよび無料のカーネル、ホビイスト/アカデミックカーネル開発者などにどのような影響を与えますか。
カスタムビルドカーネルは、署名されていないため、セキュアブートで起動しません。ただし、オフにすることもできます。
セキュアブートの信頼モデルは、カーネルのいくつかの側面を制限します。たとえあなたが現在rootであっても、/ dev / kmemに書き込むことでカーネルを破壊することはできません。再開時にカーネルイメージがブートキットに変更されないようにする方法がないため、ディスクに休止状態にすることはできません(アップストリームで動作しているため)。カーネルがパニックになったときにコアをダンプすることはできません。kdump(kexec)のメカニズムを使用してブートキットを起動できるためです(アップストリームでも動作します)。これらは議論の余地があり、Linusによってメインラインカーネルに受け入れられませんが、一部のディストリビューション(Fedora、RHEL、Ubuntu、openSUSE、SUSE)には独自のセキュアブートパッチが付属しています。
個人的には、セキュアブートカーネルの構築に必要なモジュール署名に10分かかりますが、実際のコンパイルには5分しかかかりません。モジュール署名をオフにしてccacheをオンにすると、カーネルの構築に1分しかかかりません。
UEFIは、BIOSとはまったく異なるブートパスです。すべてのBIOSブートコードがUEFIファームウェアによって呼び出されることはありません。
Hispalinuxと呼ばれるスペインのLinuxユーザーグループは、Europan Comissionの件名でMicrosoftに対して苦情を申し立てました。
上記のように、Microsoft以外の誰も公共サービスを行うためにステップアップしていません。現在、Microsoftがこれを悪用する意図があるという証拠はありませんが、Microsoftが事実上の独占を濫用してパワートリップを行うことを防ぐものもありません。そのため、FSFとLinuxのユーザーグループは実用的ではなく、建設的に問題を解決するために実際には座っていないかもしれませんが、Microsoftに圧力をかけてその影響について警告することは非常に必要です。
心配する必要がありますか?プロプライエタリなソフトウェアも、信頼できる企業によって署名されたソフトウェアも使用することを拒否します。私は今までそうしてきたので、続けたいです。
セキュアブートを採用する理由:
- 実際のセキュリティ攻撃ベクトルを排除します。
- これは、ユーザーがハードウェアをより自由に制御できるようにする技術的なメカニズムです。
- Linuxユーザーは、Microsoftがセキュアブートポリシーの独占に踏み切る前に、セキュアブートメカニズムを理解し、積極的に行動する必要があります。
UEFI
それ自体はそれほど問題ではありませんが、セキュアブートが問題になる場合があります。