パッケージの信頼性の意味と管理方法

信頼性とは
追加の鍵を信頼させる

apt が複数のパッケージ入手先にアクセスできることはセキュリティ脆弱性に繋がる可能性があります。Joe Random Hacker の gargleblast パッケージをインストールするために、Joe が公開しているパッケージアーカイブをあなたの sources.list ファイルに追加すると仮定しましょう。しかし Joe のアーカイブには、libc6ssh などのパッケージの、彼の「カスタム」バージョンも――あなたに気付かれずに――含まれている可能性があります。……あなたの個人情報を盗んだりシステムにバックドアを開けたりするバージョンです! もしこれらのパッケージのバージョン番号が正規の Debian パッケージのバージョン番号よりも大きかったら、apt は次の更新時に軽率にもこれらをシステムにインストールしてしまい、Joe が汚い仕事を気付かれずに行うのを可能にしてしまうでしょう。Joe はまた、あなたの Debian アーカイブのミラーに侵入し、含まれている正規のソフトウェアを彼が細工したバージョンに置き換えてしまうかもしれません。

幸いにも、このマニュアルが対象としているような新しいバージョンの aptaptitude には、このような種類の攻撃を打ち負かす手助けとなる内蔵の防御機能が備わっています。apt は、Debian 公式ミラーで配布されているパッケージが Debian 開発者がアップロードしたパッケージと同一であることを検証するのに、有名な暗号化ソフトウェア GPG に基づいた強力なセキュリティ機構を使用しています。その結果 aptitude は、Debian 以外の入手先からパッケージをインストールしようとしたり、Debian の入手先からインストールしたパッケージを Debian 以外の入手先に由来するバージョンに更新しようとしたりすると、警告を発します。

[警告]警告

apt のセキュリティ機構によって、アーカイブミラーの内容が Debian のマスターアーカイブの内容と同一であることについては完璧に近い保証が提供されます。しかしこの機構は万能薬ではありません。例えば、改竄されたパッケージが Debian のマスターアーカイブに紛れ込むことは、理論的には多数の方法で可能です。

信頼できる入手先のみからソフトウェアをインストールするようにすることは、悪意のあるパッケージに対する有力な防御になります。しかし、それでも、ソフトウェアのインストールにつきものの危険性をすべて取り除けるわけではありません。

信頼性とは

apt では、アーカイブの管理者がアーカイブのインデックスの署名を提供することが可能です。この署名は (事実上) 偽造できず、インデックスに載っているパッケージファイルが管理者がアーカイブに置こうとしたファイルと同一であること、つまりアーカイブの内容が作成されてから改竄されていないことを意味します[9]。署名は、管理者の公開鍵と一致するか調べることで検証できます。Debian アーカイブの公開鍵は apt とともに、通常 Debian CD に含めて配布されています。

aptitude は、アーカイブのインデックスをダウンロードする際に、インデックスが適切に署名されているか調べます。署名がなされていない場合、aptitude はそのアーカイブから入手するパッケージファイルを信頼しません (その意味については、以下の情報を参照してください)。インデックスに署名があってもそれが間違っているか検証できない場合は、aptitude は警告を表示し、そのアーカイブから入手するパッケージを信頼することを拒否します。

後でインストールの実行を行うときに、aptitude はパッケージが信頼できる入手先からのものか調べます。信頼されていないパッケージをインストールしようとしている場合、またはパッケージを信頼されているバージョンから信頼されていないバージョンに更新しようとしている場合は、警告が表示され、ダウンロードを中断する機会が与えられます。

追加の鍵を信頼させる

Debian のメインアーカイブに加えて追加のアーカイブを apt が信頼するようにできると便利だと感じるでしょう。追加のアーカイブを apt に信頼させるには、信頼させたい各アーカイブのパッケージインデックスの署名に使用する公開鍵を取得しなければなりません。公開鍵は通常、名前が .asc で終わるテキストファイルで、おそらくサイトの管理者によって配布されているか、公開鍵サーバからダウンロード可能です。公開鍵の意味や取得方法についてさらに詳しく知りたい場合は、GPG のウェブページを参照してください。

apt が信頼する鍵の一覧は鍵輪ファイル /etc/apt/trusted.gpg に格納されています。GPG 鍵を取得したら、コマンド gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --import newkey.asc を実行すると鍵をこの鍵輪ファイルに追加できます。すると aptitude は、newkey.asc に含まれている鍵で署名されているあらゆるアーカイブを信頼するようになります。

[警告]警告

APT の鍵輪に追加されると、アーカイブの鍵は Debian のメインミラー自体と完全に同様に信頼されます! 鍵輪への追加は、追加しようとしている鍵が正しく、かつ鍵を所持する個人が信頼に値する有能な人物であるときちんと確信している場合にのみ行うべきです。



[9] 上述のとおり、これは、アーカイブ内のパッケージがセキュアであるという意味ではなく、ましてや悪意がないという意味でもありません。単にパッケージが本物だということを示すにすぎません。