web-dev-qa-db-ja.com

gpgにSHA1が含まれないようにするにはどうすればよいですか?

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

Debian 9、APT、および「GPGエラー:... InRelease:次の署名は無効でした:」 に従って、次のことを行う必要があります。

$ HOME/.gnupg/gpg.confのpersonal-digest-preferencesおよびpersonal-digest-preferencesを調整して、GPA設定からSHA-1を削除します。これにより、新しいキーで問題が発生するのを防ぎます。

Reprepro設定を確認すると、Releaseファイル(およびInReleaseクリアサインの署名)と個々のPackagesファイルの両方にSHA1が表示されているため、これが成功することを願っています。

~/.gnupg/gpg.confは、default-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パーソナルダイジェストプリファレンスのリストを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

キーは1つだけです。

[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を2回調整する必要があることを懸念しているため、心配です潜在的に変更が必要な他の何かがあること。

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

GpgにSHA1が含まれないようにするにはどうすればよいですか?

5
user1032531

DEBパッケージとリポジトリに関しては、明示的に署名を作成することについて話している。これは、既知の受信者キーのメッセージを暗号化して署名することとは異なります。 その場合では、gpgは受信者のキー設定を独自のローカル設定と組み合わせて使用​​して、適切なアルゴリズムの選択を行います

残念ながら、現時点ではスタンドアロン署名に利用できるオプションはあまりありません。 GPG-2でも、暗号アルゴを禁止するオプションはありますが、ダイジェスト(署名)アルゴを禁止するオプションはありません。

したがって、実行できる唯一のことは、設定で固定ダイジェスト(署名)アルゴを明示的に定義することです。 thatが使用されるので、debianツールがローカルのGPGインストールを呼び出して署名を作成する場合。明らかに、これには署名アルゴリズムの自動選択を妨げる欠点があります。つまり、そのオプションを設定すると、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は引き続きonlyアルゴリズムであり、V4フィンガープリントの生成に使用/許可されています( を参照)セクション12.2

さて、次に進む時間かもしれませんが、標準がアップグレードされない限り、私たち(ユーザー)ができることは多くありません。 。

2
Ichthyo

GpgにSHA1が含まれないようにするには、--weak-digest SHA1を設定して弱いダイジェストパラメータを使用するか、gpg.confにweak-digest SHA1の行を含めます。

0
cbsmith