「設定 - MOK」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
23行目: 23行目:
不適切な管理は、システムのセキュリティを脅かす可能性がある。<br>
不適切な管理は、システムのセキュリティを脅かす可能性がある。<br>
また、MOKの操作には技術的な知識が必要であり、誤った操作によってシステムが起動できなくなる可能性もある。<br>
また、MOKの操作には技術的な知識が必要であり、誤った操作によってシステムが起動できなくなる可能性もある。<br>
<br><br>
== 鍵ペア ==
秘密鍵ファイル (.priv) および DERファイル (.der) は、公開鍵暗号方式における鍵ペアを表現するファイルである。<br>
これらのファイルは、カーネルモジュールの署名と検証に重要な役割を持つ。<br>
<br>
* 秘密鍵ファイル (.priv)
*: 秘密鍵は非常に重要で機密性の高い情報である。
*: 主にモジュールへの署名に使用する。
*: <br>
*: 秘密鍵の特徴
*: 署名の生成に使用する。
*: 厳重に保護する必要があり、決して公開してはならない。
*: 一般的に、暗号化されたフォーマットで保存される。
*: <br>
* DERファイル (.der)
*: このファイルは公開鍵を含んでいる。
*: 公開鍵は広く共有され、署名の検証に使用する。
*: DER (Distinguished Encoding Rules) ファイルは、公開鍵証明書のエンコーディング形式を指す。
*: <br>
*: 公開鍵の特徴
*: 署名の検証に使用する。
*: システムのMOKリストに登録される。
*: 自由に配布可能であり、セキュリティ上の問題はない。
<br>
これらのファイルの生成プロセスは、以下に示すようになる。<br>
# 鍵ペアの生成
#: OpenSSL等のツールを使用して、秘密鍵と公開鍵のペアを生成する。
#: <u>モジュールの署名時には.privファイルを使用する。</u>
# 秘密鍵の保存
#: 生成された秘密鍵を.privファイルとして保存する。
# 公開鍵の抽出とエンコード
#: 秘密鍵から公開鍵を抽出およびDER形式でエンコードした後、.derファイルとして保存する。
#: <u>署名の検証やMOKへの登録時には.derファイルを使用する。</u>
<br>
<u>※注意</u><br>
<u>不正アクセスされると、攻撃者がモジュールに偽の署名を行える可能性があるため、.privファイルの管理には特に注意を払う必要がある。</u><br>
<u>一方、.derファイルは公開情報であるため、厳重な管理は不要である。</u><br>
<br>
これらのファイルを適切に使用することにより、MOKシステムはセキュアブート環境下でもカスタムモジュールの安全な使用を可能にしている。<br>
<br><br>
<br><br>



2024年10月8日 (火) 05:07時点における版

概要

MOK (Machine Owner Key) は、Linuxシステムにおけるセキュアブートの拡張機能として重要な役割を持つ。

セキュアブートは、元々、UEFIファームウェアがブートローダの署名を検証して、信頼できるソフトウェアのみが起動できるようにする仕組みであった。
しかし、この仕組みではユーザが自身のカーネルモジュールを署名して使用することが困難であった。

そこで登場したのがMOKである。
MOKは、ユーザや組織が独自の暗号鍵を使用してカーネルモジュールに署名して、それをシステムに登録できるようにする仕組みである。
これにより、Microsoft等の大手ベンダーの鍵に依存せずに、自作やサードパーティ製のカーネルモジュールを安全に使用できるようになった。

MOKの仕組みは、以下に示す手順で機能する。

  1. まず、ユーザは自身の公開鍵と秘密鍵のペアを生成する。
  2. 秘密鍵を使用してカーネルモジュールに署名して、公開鍵をシステムのMOKリストに登録する。
  3. システムの起動時にて、shim (特殊なブートローダ) がMOKリストを参照して、登録された公開鍵を使用してカーネルモジュールの署名を検証する。


MOKの管理には、主にmokutilというツールを使用して、新しい鍵の登録、既存の鍵の削除、現在のMOKリストの表示等を行うことができる。
ただし、セキュリティ上の理由から、MOKリストの変更は次回の起動時にMOKマネージャーのGUIで確認する必要がある。

MOKのメリットは、セキュアブートの恩恵を受けつつ、システムの柔軟性を維持できることである。
例えば、カスタムドライバやサードパーティ製のカーネルモジュールを使用する必要がある場合でも、MOKを使用することで安全に導入できる。

一方で、MOKの使用には注意点もある。
不適切な管理は、システムのセキュリティを脅かす可能性がある。
また、MOKの操作には技術的な知識が必要であり、誤った操作によってシステムが起動できなくなる可能性もある。


鍵ペア

秘密鍵ファイル (.priv) および DERファイル (.der) は、公開鍵暗号方式における鍵ペアを表現するファイルである。
これらのファイルは、カーネルモジュールの署名と検証に重要な役割を持つ。

  • 秘密鍵ファイル (.priv)
    秘密鍵は非常に重要で機密性の高い情報である。
    主にモジュールへの署名に使用する。

    秘密鍵の特徴
    署名の生成に使用する。
    厳重に保護する必要があり、決して公開してはならない。
    一般的に、暗号化されたフォーマットで保存される。

  • DERファイル (.der)
    このファイルは公開鍵を含んでいる。
    公開鍵は広く共有され、署名の検証に使用する。
    DER (Distinguished Encoding Rules) ファイルは、公開鍵証明書のエンコーディング形式を指す。

    公開鍵の特徴
    署名の検証に使用する。
    システムのMOKリストに登録される。
    自由に配布可能であり、セキュリティ上の問題はない。


これらのファイルの生成プロセスは、以下に示すようになる。

  1. 鍵ペアの生成
    OpenSSL等のツールを使用して、秘密鍵と公開鍵のペアを生成する。
    モジュールの署名時には.privファイルを使用する。
  2. 秘密鍵の保存
    生成された秘密鍵を.privファイルとして保存する。
  3. 公開鍵の抽出とエンコード
    秘密鍵から公開鍵を抽出およびDER形式でエンコードした後、.derファイルとして保存する。
    署名の検証やMOKへの登録時には.derファイルを使用する。


※注意
不正アクセスされると、攻撃者がモジュールに偽の署名を行える可能性があるため、.privファイルの管理には特に注意を払う必要がある。
一方、.derファイルは公開情報であるため、厳重な管理は不要である。

これらのファイルを適切に使用することにより、MOKシステムはセキュアブート環境下でもカスタムモジュールの安全な使用を可能にしている。


署名の解除

MOKの署名はカーネルモジュールに適用された暗号学的な署名であり、1度適用されると、その署名自体を「解除」することはできない。

しかし、運用上では以下に示すような対応が可能である。

  • カーネルモジュールの削除
    署名されたモジュールファイルを削除すれば、そのモジュールはもう使用されない。
    ただし、これは署名を「解除」するのではなく、署名されたファイルを除去するだけである。
  • MOKリストからの鍵の削除
    MOKリストから署名に使用した公開鍵を削除することにより、その鍵で署名された全てのモジュールが無効になる。
    これは、mokutilコマンドを使用して行うことができる。
    sudo mokutil --delete <DERファイル名>.der

    このコマンドを実行した後、次回の起動時にMOKマネージャーのGUIで削除を確認する必要がある。


※注意
単にカーネルモジュールを削除しても、MOKリストから署名鍵が削除されるわけではない。
これらの操作は、システムのセキュリティに影響を与える可能性があるため、十分に注意して行う必要がある。

MOKの署名自体を解除することはできないが、上記の方法を使用して署名されたモジュールの使用を防いだり、システム全体でMOK検証を無効にすることが可能である。