鍵による署名は弱い digest アルゴリズム (SHA1) を使用しています
「apt(-get) update」実行時、リポジトリーによっては以下のように「鍵 ◯◯◯◯による署名は弱い digest アルゴリズム (SHA1) を使用しています」と表示されます。以下は「Google Chrome」のリポジトリーで出力されるメッセージです。
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: 鍵 4CCA1EAF950CEE4AB83976DCA040830F7FAC5991 による署名は弱い digest アルゴリズム (SHA1) を使用しています
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: 鍵 3B068FB4789ABE4AEFA3BB491397BC53640DB551 による署名は弱い digest アルゴリズム (SHA1) を使用しています
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: 鍵 3B068FB4789ABE4AEFA3BB491397BC53640DB551 による署名は弱い digest アルゴリズム (SHA1) を使用しています
英語環境だと、以下のようにメッセージが出力されます。
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: Signature by key 4CCA1EAF950CEE4AB83976DCA040830F7FAC5991 uses weak digest algorithm (SHA1)
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: Signature by key 3B068FB4789ABE4AEFA3BB491397BC53640DB551 uses weak digest algorithm (SHA1)
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: Signature by key 3B068FB4789ABE4AEFA3BB491397BC53640DB551 uses weak digest algorithm (SHA1)
メッセージの意味
このメッセージは、パッケージの検証に使用している鍵が、脆弱なアルゴリズムである「SHA-1」をダイジェストアルゴリズムに使用して作成されていることを意味しています。「SHA-1」は、APTでのサポートが将来廃止される予定です。
APTでは、よりセキュリティー強度の高い「SHA-2(SHA256以上)」への移行を促しています。
メッセージの行頭に「W(Warning)」が表示されている通り、現状は警告メッセージという扱いです。
リポジトリーの鍵
リポジトリーの鍵はパッケージの検証に使用され、正規のパッケージかどうかをチェックします。リポジトリーの鍵は、「ソフトウェアとアップデート」の「認証」タブで確認できます。
APTのSHA-1サポート廃止
APTのSHA-1のサポート廃止について、Debianの開発者でありUbuntuのメンバーであるJulian Andres Klode氏が、以下のように記述しています。- Dropping SHA-1 support in APT(2016/3/14)
明日行われる新しいバージョンのAPTのリリースは、Debian unstableと来たるUbuntu 16.04におけるSHA-1チェックサムのサポートの転機となる。
私は我々のSHA-1に対する攻撃に関し事実や情報を把握していないが、Ubuntu 16.04は5年間サポートされ、Ubuntuのシステム管理ツールである「Landscape」はこの5年間で多くの変更が行われるだろう。
SHA-1のサポートを無効にするには我々のテストスイートにちょっとしたパッチを当てる必要があるが、この対応は後で対応が迫られた時に行うよりも、今対応するのが最善である。
SHA-1のサポートを無効にすることで、明日からいくつかのサードパーティーのリポジトリーが動作しなくなるだろう。
例えば私がこの記事を書くのに使用しているウェブブラウザーを提供しているリポジトリーがそうなるだろう。
SHA-1のサポートを無効にすることでDebianの派生ディストリビューションのセキュリティーは強固になるが、もし派生ディストリビューションがSHA-1のサポートの無効に関しコミュニティーで合意を形成するならば、いくつかのサードパーティーのリポジトリーが動作しなくなる点について確認して欲しい。
いくつかのサードパーティーのリポジトリーが動作しなくなる点はちょっとした不幸だが、我々は現実的な選択肢を持っていない。
技術的な制約により、我々が賢明な方法で警告を表示することは困難である。
一点警告事項があり、GPG署名は依然SHA-1を使用するだろう。
私がAPTでSHA-1ベースの署名を拒否するために必要なコードを用意する一方、依然多くのサードパーティーのリポジトリーは、ダイジェストアルゴリズムにSHA-1を採用した鍵でReleaseファイルを署名している。
いくつかのリポジトリーは、未だに1024bitのDSA鍵を使用している。
私はUbuntu 16.04がリリースされた後GPG署名をSHA-2へ移行させる計画を立てており、Ubuntu 16.10では確実にSHA-2へ移行する。
移行時期は2016年6月から8月辺りになる。(可能であればDebConf期間中に)
私はUbuntu 16.04向けにSRU(Stable Release Update)を用意し、2017年1月にアップデートを提供する計画だ。
サードパーティーのリポジトリーは、新しいダイジェストアルゴリズムをGPGの設定に指定し、新しいリポジトリーの鍵へ移行する良い機会である。
- Clarifications and updates on APT + SHA1(2016/3/15)
本日APT 1.2.7がリリースされた。
昨日私が書いた内容にもかかわらず、ダイジェストアルゴリズムにSHA-1を採用した鍵でReleaseファイルを署名しているリポジトリーには、警告メッセージを出力するようにした。
APTが通信に使用する処理に警告メッセージを追加し、プロトコルを拡張した。
W: gpgv:/var/lib/apt/lists/apt.example.com_debian_dists_sid_InRelease: The repository is insufficiently signed by key
1234567890ABCDEF0123456789ABCDEF01234567 (weak digest)
現時点では警告メッセージを出力するが、SHA-1のサポートは廃止していない点に留意して欲しい。
我々はそれらのリポジトリーが信用に足るリポジトリーだと考えていないだけだ。
これはSHA-1を廃止したいという意味である。
なぜならば、SHA-2が使用されていないリポジトリーは動作しないためだ。
しかしSHA-2の署名に加えSHA-1の署名もまだ使われるため、それらを削除しても意味がない。(MD5Sumフィールドも同様)
我々はいくつかの小さいバグも修正しているよ!
ユーザーへの影響
現状SHA-1を使用して署名を行っているリポジトリーは警告メッセージが表示されるだけですが、将来SHA-1を使用して署名を行っているリポジトリーが利用できなくなる予定です。従ってユーザーとして気にすることは、以下の点です。
- 「署名は弱いdigestアルゴリズム (SHA1) を使用しています」メッセージが出力されているリポジトリーがないかチェックする
- リポジトリーの管理者にSHA-2への移行をお願いする
- そのリポジトリーやリポジトリーの鍵が更新された時に、Ubuntuに登録しているリポジトリーの情報を更新する
「3.」の情報は、リポジトリーを管理しているコミュニティーやプロジェクトから情報が得られるので、その情報に従い作業することになります。
リポジトリーのチェック
リポジトリーのチェックは、「端末」から以下のコマンドを実行します。
sudo apt update
赤枠内のように、警告メッセージが表示されるリポジトリーは、SHA-1を使用して署名を行っているリポジトリーです。
「Synaptic」から確認するには、「再読み込み」ボタンをクリックします。
SHA-1を使用して署名を行っているリポジトリーがあれば、以下のように警告メッセージが表示されます。
参考
- Ubuntu 16.04-APT displays warning because Google Repository is still using SHA-1
- The repository is insufficiently signed by key 4CCA1EAF950CEE4AB83976DCA040830F7FAC5991 (weak digest)
- message "The repository is insufficiently signed by key (weak digest)" is poorly worded
- Dropping SHA-1 support in APT
- Clarifications and updates on APT + SHA1