gpgにSHA1が含まれないようにする方法は?

gpgにSHA1が含まれないようにする方法は?

apt-get署名が無効で、InReleaseファイルが署名されていないと文句を言います(参照Centosを使用して.debパッケージに署名する背景として)。私が確認したサーバーでは実際に署名されgpgましたInRelease

すべてDebian 9、APT、および「GPG エラー: ...InRelease: 次の署名が無効です。」、次の操作を行う必要があります。

GPGプリファレンスからSHA-1を削除するには、$ HOME / .gnupg / gpg.confで個々のダイジェストプリファレンスと個々のダイジェストプリファレンスを調整します。これにより、新しいキーが問題を繰り返すのを防ぎます。

私の担当者の設定を確認した後、リリースファイル(およびInRelease Clearsign署名)と個々のパッケージファイルの両方にSHA1が表示されたので、これがうまくいくと思います。

~/.gnupg/gpg.confdefault-preference-listで説明されているハッシュアルゴリズムを使用してから、利用可能な場合は、最初に使用するアルゴリズムを一覧表示することを示すようです。

[michael@bigbox ~]$ cat ~/.gnupg/gpg.conf
# Prioritize stronger algorithms for new keys.
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 BZIP2 ZLIB ZIP Uncompressed
# Use a stronger digest than the default SHA1 for certifications.
cert-digest-algo SHA512

man gpg状態:

--personal-digest-preferences string プライベートダイジェスト設定リストを文字列に設定します。利用可能なアルゴリズムのリストを取得するにはgpg --versionを使用し、デフォルト設定をまったく指定しない場合はnoneを使用します。 GPGはすべての受信者が使用できるアルゴリズムのみを選択するため、ユーザーは受信者キーのデフォルト設定によって選択されたアルゴリズムを安全に無視できます。このリストで最も高いダイジェストアルゴリズムは、暗号化なしで署名するときにも使用されます(例:--clear-signまたは--sign)。

gpg --version実際にSHA1が含まれていることがわかります。

michael@bigbox ~]$ gpg --version
gpg (GnuPG) 2.0.22
libgcrypt 1.5.3
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, ?, ?, ELG, DSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

私には鍵が一つだけだ。

[michael@bigbox ~]$ gpg --list-keys
/home/michael/.gnupg/pubring.gpg
--------------------------------
pub   2048R/542342AE 2018-02-08
uid                  Michael Jones <[email protected]>
sub   2048R/4D73CC3A 2018-02-08

そして一度試してみてください...

[michael@bigbox ~]$ gpg --edit-key 542342AE
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

pub  2048R/542342AE  created: 2018-02-08  expires: never       usage: SC
                     trust: ultimate      validity: ultimate
sub  2048R/4D73CC3A  created: 2018-02-08  expires: never       usage: E
[ultimate] (1). Michael Jones <[email protected]>

gpg> setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
Set preference list to:
     Cipher: AES256, AES192, AES, CAST5, 3DES
     Digest: SHA512, SHA384, SHA256, SHA224, SHA1
     Compression: ZLIB, BZIP2, ZIP, Uncompressed
     Features: MDC, Keyserver no-modify
Really update the preferences? (y/N)

まだSHA1そこにいる?

上記の投稿を参考にしてくださいDebian 9、APT、および「GPG エラー: ...InRelease: 次の署名が無効です。」personal-digest-preferences規定を二度調整しなければならなかったのですが$HOME/.gnupg/gpg.conf、また変えなければならない部分があるのではないかと心配です。

重要ではないと思いますが、Centos7を実行しています。

gpgにSHA1が含まれないようにする方法は?

ベストアンサー1

DEBパッケージとリポジトリについては、明示的に署名を生成することについて話しています。これは、既知の受信者キーを使用してメッセージを暗号化して署名することとは異なります。存在するその状況、gpg は、受信者の主な基本設定をユーザーのローカル設定と組み合わせて、適切なアルゴリズム選択を開発します。

残念ながら、現在スタンドアロン署名に使用できるオプションはあまりありません。 GPG-2でも暗号化アルゴリズムを無効にするオプションのみがあり、ダイジェスト(署名)アルゴリズムは無効にすることはできません。

したがって、あなたができる唯一のことは、デフォルト設定で固定ダイジェスト(署名)アルゴリズムを明示的に定義することです。なぜならそれ署名を作成するためにローカルGPGインストールを呼び出すときにDebianツールが使用します。明らかに、これは署名アルゴリズムの自動選択を妨げるという欠点がある。これは、このオプションが設定されていると、SHA1のみをサポートする受信者が署名を確認できなくなることを意味します。

とにかく、以下を設定してください。~/.gnupg/gpg.conf

digest-algo SHA256

たぶんそこに個人的な好みのリストを置く必要があるかもしれません。これは新しいキーを生成するときのデフォルト値に影響します(ただし、それでも直面した問題はすぐには解決されず、害もありません)。

personal-digest-preferences SHA512,SHA384,SHA256,SHA224
default-preference-list SHA512,SHA384,SHA256,SHA224,AES256,AES192,AES,CAST5,3DES,BZIP2,ZIP,ZLIB,Uncompressed

SHA1と3DESはPGPプロトコルの最小共通分母であるため、ソフトウェアに組み込まれています。プロトコルの他の(弱い)実装との相互運用性を確保するために、設定リストの最後に自動的に追加されます。

バラよりRFC4880セクション13.2

SHA1は必ず実装する必要があるハッシュアルゴリズムなので、リストに明示的に表示されない場合はデフォルトは終了です。

さらに、SHA1はまだただV4指紋の作成に使用/許可されるアルゴリズム(参照:セクション12.2)

今、次のステップに進む時間になったようです。しかし、標準がアップグレードされない限り、私たち(ユーザー)ができることはあまりありません…

おすすめ記事